public void TryGiveRad(Fougerite.Player pl) { if (pl.IsOnline && !pl.IsDisconnecting && pl.IsAlive) { foreach (var key in ZonesDictionary) { try { Vector3 loc = Util.GetUtil().ConvertStringToVector3(key.Key); int range = Convert.ToInt32(key.Value); var PlayerDist = Util.GetUtil().GetVectorsDistance(pl.Location, loc); if (PlayerDist < range) { pl.AddRads(RadLevelHight); pl.InventoryNotice(RadLevelHight + " Rads"); } else { pl.AddRads(RadLevelLow); pl.InventoryNotice(RadLevelLow + " Rads"); } } catch (Exception ex) { Debug.Log(Name + " Error B:" + ex.ToString()); continue; } } } }
public void RadZoneBehaviour_AddRads(uint id) { if (SpawnManager.SpawnedObjects.TryGetValue(id, out var spawnableObjectBehaviour)) { var radZoneBehaviour = spawnableObjectBehaviour.GetComponent <RadZoneBehaviour>(); var rads = radZoneBehaviour.Rads; var amountToReduce = 0f; foreach (var armorItem in FougeritePlayer.Inventory.ArmorItems) { if (armorItem.Name == "Rad Suit Vest") { amountToReduce += rads * 0.30f; } else if (armorItem.Name == "Rad Suit Pants") { amountToReduce += rads * 0.20f; } else if (armorItem.Name == "Rad Suit Helmet") { amountToReduce += rads * 0.15f; } else if (armorItem.Name == "Rad Suit Boots") { amountToReduce += rads * 0.1f; } } FougeritePlayer.AddRads(radZoneBehaviour.Rads - amountToReduce); } }