private void SolarFlareShieldTick(int tickAmount)
 {
     if ((Find.TickManager.TicksGame) % tickAmount == 0)
     {
         if (compPowerTrader == null || compPowerTrader.PowerOn)
         {
             coordinator.hasActiveShield = true;
             GameCondition gameCondition =
                 Find.World.GameConditionManager.GetActiveCondition(GameConditionDefOf.SolarFlare);
             if (gameCondition != null)
             {
                 compPowerTrader.PowerOutput = -properties.shieldingPowerDrain;
                 rotatorAngle += properties.rotatorSpeedActive * tickAmount;
                 RoomGroup roomGroup = parent.GetRoomGroup();
                 if (roomGroup != null && !roomGroup.UsesOutdoorTemperature)
                 {
                     roomGroup.Temperature += properties.heatingPerTick * tickAmount;
                 }
                 if ((Find.TickManager.TicksGame) % (5 * tickAmount) == 0)
                 {
                     foreach (Building building in parent.Map.listerThings.ThingsInGroup(ThingRequestGroup.BuildingArtificial))
                     {
                         Building_CommsConsole console = building as Building_CommsConsole;
                         if (console != null)
                         {
                             CompPowerTrader consoleCompPowerTrader = console.TryGetComp <CompPowerTrader>();
                             if (consoleCompPowerTrader != null)
                             {
                                 consoleCompPowerTrader.PowerOn = false;
                             }
                         }
                     }
                 }
             }
             else
             {
                 compPowerTrader.PowerOutput = -compPowerTrader.Props.basePowerConsumption;
                 rotatorAngle += properties.rotatorSpeedIdle * tickAmount;
             }
         }
         else
         {
             coordinator.hasActiveShield = false;
         }
     }
 }