public static void Emit(object data, int EmissionRadius) { GameObject gameObject = (GameObject)data; Components.Cmps <MinionIdentity> liveMinionIdentities = Components.LiveMinionIdentities; Vector2 vector = gameObject.transform.GetPosition(); int num = Grid.PosToCell(vector); int num2 = EmissionRadius * EmissionRadius; int max_depth = Mathf.CeilToInt((float)EmissionRadius); DetermineCellsInRadius(num, 0, max_depth, cellsInRange); DrawVisualEffect(num, cellsInRange); for (int i = 0; i < liveMinionIdentities.Count; i++) { MinionIdentity minionIdentity = liveMinionIdentities[i]; if ((UnityEngine.Object)minionIdentity.gameObject != (UnityEngine.Object)gameObject.gameObject) { Vector2 vector2 = minionIdentity.transform.GetPosition(); float num3 = Vector2.SqrMagnitude(vector - vector2); if (num3 <= (float)num2) { int item = Grid.PosToCell(vector2); if (cellsInRange.Contains(item) && minionIdentity.GetSMI <StaminaMonitor.Instance>().IsSleeping()) { minionIdentity.Trigger(-527751701, data); minionIdentity.Trigger(1621815900, data); } } } } cellsInRange.Clear(); }
private void Emit(object data) { GameObject gameObject = (GameObject)data; float value = Db.Get().Amounts.Temperature.Lookup(this).value; Equippable equippable = GetComponent <SuitEquipper>().IsWearingAirtightSuit(); if ((Object)equippable != (Object)null) { equippable.GetComponent <Storage>().AddGasChunk(SimHashes.Methane, 0.1f, value, byte.MaxValue, 0, false, true); } else { Components.Cmps <MinionIdentity> liveMinionIdentities = Components.LiveMinionIdentities; Vector2 a = gameObject.transform.GetPosition(); for (int i = 0; i < liveMinionIdentities.Count; i++) { MinionIdentity minionIdentity = liveMinionIdentities[i]; if ((Object)minionIdentity.gameObject != (Object)gameObject.gameObject) { Vector2 b = minionIdentity.transform.GetPosition(); float num = Vector2.SqrMagnitude(a - b); if (num <= 2.25f) { minionIdentity.Trigger(508119890, Strings.Get("STRINGS.DUPLICANTS.DISEASES.PUTRIDODOUR.CRINGE_EFFECT").String); minionIdentity.gameObject.GetSMI <ThoughtGraph.Instance>().AddThought(Db.Get().Thoughts.PutridOdour); } } } int gameCell = Grid.PosToCell(gameObject.transform.GetPosition()); SimMessages.AddRemoveSubstance(gameCell, SimHashes.Methane, CellEventLogger.Instance.ElementConsumerSimUpdate, 0.1f, value, byte.MaxValue, 0, true, -1); KBatchedAnimController kBatchedAnimController = FXHelpers.CreateEffect("odor_fx_kanim", gameObject.transform.GetPosition(), gameObject.transform, true, Grid.SceneLayer.Front, false); kBatchedAnimController.Play(WorkLoopAnims, KAnim.PlayMode.Once); kBatchedAnimController.destroyOnAnimComplete = true; } KFMOD.PlayOneShot(GlobalAssets.GetSound("Dupe_Flatulence", false), base.transform.GetPosition()); }