Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }