private void OnTriggerEnter(Collider other)
        {
            if (!enter && IsPlayerCollided(other))
            {
                Debug.Log($"entered({GetInstanceID()})");

                if (IsAuroraLeaking() && !Main.isAuroraRadiationBypassed)
                {
                    LeakingRadiation.main.radiatePlayerInRange.CancelInvoke();
                    Main.isAuroraRadiationBypassed = true;
                }

                bool flag = GameModeUtils.HasRadiation() && (NoDamageConsoleCommand.main == null || !NoDamageConsoleCommand.main.GetNoDamageCheat());

                if (flag)
                {
                    InvokeRepeating("RadiateUranuim", 0f, 0.2f);
                    InvokeRepeating("DoDamage", 0f, updateInterval);
                }

                Main.isPlayerInRadiationZone = true;
                enter = true;
                exit  = false;
            }
        }
        public static bool Radiate(RadiatePlayerInRange __instance)
        {
            bool flag = GameModeUtils.HasRadiation() && (NoDamageConsoleCommand.main == null || !NoDamageConsoleCommand.main.GetNoDamageCheat());

            PlayerDistanceTracker tracker = (PlayerDistanceTracker)AccessTools.Field(typeof(RadiatePlayerInRange), "tracker").GetValue(__instance);
            float distanceToPlayer        = GetDistance(tracker);

            if (radiated = distanceToPlayer <= __instance.radiateRadius && flag && __instance.radiateRadius > 0f)
            {
                float num  = Mathf.Clamp01(1f - distanceToPlayer / __instance.radiateRadius);
                float num2 = num;
                if (Inventory.main.equipment.GetCount(TechType.RadiationSuit) > 0)
                {
                    num -= num2 * 0.5f;
                }
                if (Inventory.main.equipment.GetCount(TechType.RadiationHelmet) > 0)
                {
                    num -= num2 * 0.23f * 2f;
                }
                if (Inventory.main.equipment.GetCount(TechType.RadiationGloves) > 0)
                {
                    num -= num2 * 0.23f;
                }
                num = Mathf.Clamp01(num);
                Player.main.SetRadiationAmount(num);
            }
            else
            {
                Player.main.SetRadiationAmount(0f);
            }

            return(false);
        }
        static void Postfix(RadiatePlayerInRange __instance)
        {
            __instance.radiateRadius = radiateRadius_tmp;

            var tracker = __instance.GetComponent <PlayerDistanceTracker>();

            bool flag = GameModeUtils.HasRadiation() && (NoDamageConsoleCommand.main == null || !NoDamageConsoleCommand.main.GetNoDamageCheat());

            float distanceToPlayer = tracker.distanceToPlayer;

            if (distanceToPlayer <= __instance.radiateRadius && flag && __instance.radiateRadius > 0f)
            {
                float num = Mathf.Clamp01(1f - distanceToPlayer / __instance.radiateRadius);

                float num2 = num;

                if (checkHelmet())
                {
                    num -= num2 * 0.23f * 2f;
                }

                if (checkSuit())
                {
                    num -= num2 * 0.5f;
                }

                if (checkGloves())
                {
                    num -= num2 * 0.23f;
                }

                num = Mathf.Clamp01(num);

                Player.main.SetRadiationAmount(num);
            }
        }
 public static bool GetRadiationActive()
 {
     // If LeakingRadiation isn't null, ship has exploded and radiation is enabled
     return(LeakingRadiation.main != null && CrashedShipExploder.main.IsExploded() && GameModeUtils.HasRadiation() && LeakingRadiation.main.currentRadius > 1);
 }