public override void Tick() { base.Tick(); if (this.shieldField != null) { if (this.power != null) { this.shieldField.enabled = this.power.PowerOn; } this.shieldField.ShieldTick(this.flag_direct, this.flag_indirect, this.flag_fireSupression, this.flag_InterceptDropPod, this.flag_shieldRepairMode); switch (this.shieldField.status) { case enumShieldStatus.Disabled: case enumShieldStatus.Loading: this.power.powerOutputInt = (float)this.shieldPowerRequiredCharging; break; case enumShieldStatus.Charging: this.power.powerOutputInt = (float)this.shieldPowerRequiredCharging; break; case enumShieldStatus.Sustaining: this.power.powerOutputInt = (float)this.shieldPowerRequiredSustaining; break; } } else { this.shieldField = new ShieldField(this, this.Position, this.shieldMaxShieldStrength, this.shieldInitialShieldStrength, this.shieldShieldRadius, this.shieldRechargeTickDelay, this.shieldRecoverWarmup, this.shieldBlockIndirect, this.shieldBlockDirect, this.shieldFireSupression, this.shieldInterceptDropPod, this.shieldStructuralIntegrityMode, this.colourRed, this.colourGreen, this.colourBlue, this.SIFBuildings); } }
public override void SpawnSetup(Map map, bool respawningAfterLoad) { Building_Shield.UI_DIRECT_OFF = ContentFinder <Texture2D> .Get("UI/DirectOff", true); Building_Shield.UI_DIRECT_ON = ContentFinder <Texture2D> .Get("UI/DirectOn", true); Building_Shield.UI_INDIRECT_OFF = ContentFinder <Texture2D> .Get("UI/IndirectOff", true); Building_Shield.UI_INDIRECT_ON = ContentFinder <Texture2D> .Get("UI/IndirectOn", true); Building_Shield.UI_FIRE_OFF = ContentFinder <Texture2D> .Get("UI/FireOff", true); Building_Shield.UI_FIRE_ON = ContentFinder <Texture2D> .Get("UI/FireOn", true); Building_Shield.UI_INTERCEPT_DROPPOD_OFF = ContentFinder <Texture2D> .Get("UI/FireOff", true); Building_Shield.UI_INTERCEPT_DROPPOD_ON = ContentFinder <Texture2D> .Get("UI/FireOn", true); Building_Shield.UI_REPAIR_ON = ContentFinder <Texture2D> .Get("UI/RepairON", true); Building_Shield.UI_REPAIR_OFF = ContentFinder <Texture2D> .Get("UI/RepairOFF", true); Building_Shield.UI_SHOW_ON = ContentFinder <Texture2D> .Get("UI/ShieldShowOn", true); Building_Shield.UI_SHOW_OFF = ContentFinder <Texture2D> .Get("UI/ShieldShowOff", true); base.SpawnSetup(map, respawningAfterLoad); this.power = this.GetComp <CompPowerTrader>(); if (this.def is ShieldBuildingThingDef) { this.shieldMaxShieldStrength = ((ShieldBuildingThingDef)this.def).shieldMaxShieldStrength; this.shieldInitialShieldStrength = ((ShieldBuildingThingDef)this.def).shieldInitialShieldStrength; this.shieldShieldRadius = ((ShieldBuildingThingDef)this.def).shieldShieldRadius; this.shieldPowerRequiredCharging = ((ShieldBuildingThingDef)this.def).shieldPowerRequiredCharging; this.shieldPowerRequiredSustaining = ((ShieldBuildingThingDef)this.def).shieldPowerRequiredSustaining; this.shieldRechargeTickDelay = ((ShieldBuildingThingDef)this.def).shieldRechargeTickDelay; this.shieldRecoverWarmup = ((ShieldBuildingThingDef)this.def).shieldRecoverWarmup; this.shieldBlockIndirect = ((ShieldBuildingThingDef)this.def).shieldBlockIndirect; this.shieldBlockDirect = ((ShieldBuildingThingDef)this.def).shieldBlockDirect; this.shieldFireSupression = ((ShieldBuildingThingDef)this.def).shieldFireSupression; this.shieldInterceptDropPod = ((ShieldBuildingThingDef)this.def).shieldInterceptDropPod; this.shieldStructuralIntegrityMode = ((ShieldBuildingThingDef)this.def).shieldStructuralIntegrityMode; this.colourRed = ((ShieldBuildingThingDef)this.def).colourRed; this.colourGreen = ((ShieldBuildingThingDef)this.def).colourGreen; this.colourBlue = ((ShieldBuildingThingDef)this.def).colourBlue; this.SIFBuildings = ((ShieldBuildingThingDef)this.def).SIFBuildings; } else { Log.Error("Shield definition not of type \"ShieldBuildingThingDef\""); } if (this.shieldField != null) { return; } this.shieldField = new ShieldField(this, this.Position, this.shieldMaxShieldStrength, this.shieldInitialShieldStrength, this.shieldShieldRadius, this.shieldRechargeTickDelay, this.shieldRecoverWarmup, this.shieldBlockIndirect, this.shieldBlockDirect, this.shieldFireSupression, this.shieldInterceptDropPod, this.shieldStructuralIntegrityMode, this.colourRed, this.colourGreen, this.colourBlue, this.SIFBuildings); }