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 GlitchedSensorArray extends BaseHullMod {
010        public static final float RANGE_MULT = 0.9f;
011        public static final float SENSOR_MULT = 0.5f;
012        
013        public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
014                float effect = stats.getDynamic().getValue(Stats.DMOD_EFFECT_MULT);
015                float rangeMult = RANGE_MULT + (1f - RANGE_MULT) * (1f - effect);
016                float sensorMult = SENSOR_MULT + (1f - SENSOR_MULT) * (1f - effect);
017                
018                
019                stats.getBallisticWeaponRangeBonus().modifyMult(id, rangeMult);
020                stats.getEnergyWeaponRangeBonus().modifyMult(id, rangeMult);
021                stats.getSensorStrength().modifyMult(id, sensorMult);
022                CompromisedStructure.modifyCost(hullSize, stats, id);
023        }
024                
025        public String getDescriptionParam(int index, HullSize hullSize, ShipAPI ship) {
026                float effect = 1f;
027                if (ship != null) effect = ship.getMutableStats().getDynamic().getValue(Stats.DMOD_EFFECT_MULT);
028                float rangeMult = RANGE_MULT + (1f - RANGE_MULT) * (1f - effect);
029                float sensorMult = SENSOR_MULT + (1f - SENSOR_MULT) * (1f - effect);
030                
031                if (index == 0) return "" + (int) Math.round((1f - rangeMult) * 100f) + "%";
032                //if (index == 1) return "50%";
033                if (index == 1) return "" + (int) Math.round((1f - sensorMult) * 100f) + "%";
034                if (index >= 2) return CompromisedStructure.getCostDescParam(index, 2); 
035                return null;
036        }
037        
038        
039}
040
041
042
043