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.ShipAPI.HullSize;
007import com.fs.starfarer.api.impl.campaign.ids.Stats;
008
009public class ErraticInjector extends BaseHullMod {
010
011        public static float FUEL_PERCENT = 50;
012        public static float ZERO_FLUX_PENALTY = 10;
013        
014        public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
015                float effect = stats.getDynamic().getValue(Stats.DMOD_EFFECT_MULT);
016                stats.getFuelUseMod().modifyPercent(id, FUEL_PERCENT * effect);
017                
018                stats.getZeroFluxSpeedBoost().modifyFlat(id, -ZERO_FLUX_PENALTY * effect);
019                
020                CompromisedStructure.modifyCost(hullSize, stats, id);
021        }
022        
023        public String getDescriptionParam(int index, HullSize hullSize, ShipAPI ship) {
024                float effect = 1f;
025                if (ship != null) effect = ship.getMutableStats().getDynamic().getValue(Stats.DMOD_EFFECT_MULT);
026                if (index == 0) return "" + (int)Math.round(FUEL_PERCENT * effect) + "%";
027                if (index == 1) return "" + (int)Math.round(ZERO_FLUX_PENALTY * effect) + "";
028                if (index >= 2) return CompromisedStructure.getCostDescParam(index, 2);
029                return null;
030        }
031
032
033}