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());
    }