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