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}