001package com.fs.starfarer.api.impl.hullmods;
002
003import com.fs.starfarer.api.combat.BaseHullMod;
004import com.fs.starfarer.api.combat.MutableShipStatsAPI;
005import com.fs.starfarer.api.combat.ShipAPI;
006import com.fs.starfarer.api.combat.ShipCommand;
007import com.fs.starfarer.api.combat.ShipAPI.HullSize;
008
009public class ShieldAlwaysOn extends BaseHullMod {
010
011        public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
012        }
013                
014        public String getDescriptionParam(int index, HullSize hullSize) {
015                return null;
016        }
017        
018        @Override
019        public void advanceInCombat(ShipAPI ship, float amount) {
020                super.advanceInCombat(ship, amount);
021
022                if (!ship.isAlive()) return;
023                
024                //CombatEngineAPI engine = Global.getCombatEngine();
025                
026                // so the ship AI can't control it
027                ship.blockCommandForOneFrame(ShipCommand.TOGGLE_SHIELD_OR_PHASE_CLOAK);
028                ship.blockCommandForOneFrame(ShipCommand.VENT_FLUX);
029                
030                String id = "shield_always_on";
031                ship.getMutableStats().getOverloadTimeMod().modifyMult(id, 2f); // frigate hull size; makes it 8 sec base
032                
033                if (ship.getFluxTracker().isOverloadedOrVenting()) {
034                        ship.getMutableStats().getFluxDissipation().modifyMult(id, 10f);
035                } else {
036                        ship.getMutableStats().getFluxDissipation().modifyMult(id, 1f);
037                        if (!ship.getShield().isOn()) {
038                                ship.getShield().toggleOn();
039                        }
040                        if (ship.getFluxLevel() > 0.99f) {
041                                ship.getFluxTracker().beginOverloadWithTotalBaseDuration(5f);
042                        }
043                }
044                
045        }
046}
047
048
049
050
051
052
053
054
055
056
057