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.HullSize; 006import com.fs.starfarer.api.impl.campaign.ids.Stats; 007 008public class RuggedConstruction extends BaseHullMod { 009 010 public static float DEPLOYMENT_COST_MULT = 0.5f; 011 012// public static float MIN_HULL = 30f; 013// public static float MAX_HULL = 40f; 014// 015// public static float MIN_CR = 30f; 016// public static float MAX_CR = 40f; 017// 018// public static float CR_LOSS_WHEN_DISABLED = 0.1f; 019// public static float REPAIR_FRACTION = 0.5f; 020 021 public static float DMOD_EFFECT_MULT = 0.5f; 022 public static float DMOD_AVOID_CHANCE = 50f; 023 024 public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) { 025 stats.getDynamic().getStat(Stats.DMOD_EFFECT_MULT).modifyMult(id, DMOD_EFFECT_MULT); 026 //stats.getDynamic().getMod(Stats.DMOD_AVOID_PROB_MOD).modifyFlat(id, DMOD_AVOID_CHANCE * 0.01f); 027 stats.getDynamic().getMod(Stats.DMOD_ACQUIRE_PROB_MOD).modifyMult(id, (1f - DMOD_AVOID_CHANCE * 0.01f)); 028 029 stats.getDynamic().getMod(Stats.INDIVIDUAL_SHIP_RECOVERY_MOD).modifyFlat(id, 1000f); 030 031 //stats.getDynamic().getStat(Stats.CR_LOSS_WHEN_DISABLED_MULT).modifyMult(id, CR_LOSS_WHEN_DISABLED); 032 //stats.getDynamic().getMod(Stats.INSTA_REPAIR_FRACTION).modifyFlat(id, REPAIR_FRACTION + 0.45f); 033 //stats.getDynamic().getMod(Stats.INSTA_REPAIR_FRACTION).modifyFlat(id, REPAIR_FRACTION); 034 035 036// stats.getDynamic().getMod(Stats.RECOVERED_HULL_MIN).modifyFlat(id, MIN_HULL * 0.01f); 037// stats.getDynamic().getMod(Stats.RECOVERED_HULL_MAX).modifyFlat(id, MAX_HULL * 0.01f); 038// stats.getDynamic().getMod(Stats.RECOVERED_CR_MIN).modifyFlat(id, MIN_CR * 0.01f); 039// stats.getDynamic().getMod(Stats.RECOVERED_CR_MAX).modifyFlat(id, MAX_CR * 0.01f); 040 041// stats.getMinArmorFraction().modifyFlat(id, 0.1f); 042// stats.getBeamDamageTakenMult().modifyMult(id, 0.5f); 043 044 stats.getSuppliesToRecover().modifyMult(id, DEPLOYMENT_COST_MULT); 045 } 046 047 public String getDescriptionParam(int index, HullSize hullSize) { 048 if (index == 0) return "" + (int) Math.round((1f - DMOD_EFFECT_MULT) * 100f) + "%"; 049 if (index == 1) return "" + (int) DMOD_AVOID_CHANCE + "%"; 050 if (index == 2) return "" + (int) Math.round((1f - DEPLOYMENT_COST_MULT) * 100f) + "%"; 051 return null; 052 } 053 054 @Override 055 public boolean affectsOPCosts() { 056 return true; // probably intended even though it doesn't, actually -am 057 } 058 059} 060 061 062 063 064 065 066 067