Starsector API
Loading...
Searching...
No Matches
CompromisedStorage.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.hullmods;
2
3import com.fs.starfarer.api.combat.BaseHullMod;
4import com.fs.starfarer.api.combat.MutableShipStatsAPI;
5import com.fs.starfarer.api.combat.ShipAPI;
6import com.fs.starfarer.api.combat.ShipAPI.HullSize;
7import com.fs.starfarer.api.impl.campaign.ids.Stats;
8
9public class CompromisedStorage extends BaseHullMod {
10
11public static final float CAPACITY_PENALTY_PERCENT = 25f;
12
13 public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
14 float effect = stats.getDynamic().getValue(Stats.DMOD_EFFECT_MULT);
15
16 stats.getMaxCrewMod().modifyMult(id, 1f - (CAPACITY_PENALTY_PERCENT * effect) / 100f);
17 stats.getFuelMod().modifyMult(id, 1f - (CAPACITY_PENALTY_PERCENT * effect) / 100f);
18 stats.getCargoMod().modifyMult(id, 1f - (CAPACITY_PENALTY_PERCENT * effect) / 100f);
19
20 CompromisedStructure.modifyCost(hullSize, stats, id);
21 }
22
23 public String getDescriptionParam(int index, HullSize hullSize, ShipAPI ship) {
24 float effect = 1f;
25 if (ship != null) effect = ship.getMutableStats().getDynamic().getValue(Stats.DMOD_EFFECT_MULT);
26
27 if (index == 0) return "" + (int) Math.round(CAPACITY_PENALTY_PERCENT * effect) + "%";
28 if (index >= 1) return CompromisedStructure.getCostDescParam(index, 1);
29 return null;
30 }
31
32 public boolean isApplicableToShip(ShipAPI ship) {
33 return true;
34 }
35
36 public String getUnapplicableReason(ShipAPI ship) {
37 return null;
38 }
39}
40
41
42
43
void modifyMult(String source, float value)
void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)
String getDescriptionParam(int index, HullSize hullSize, ShipAPI ship)
static String getCostDescParam(int index, int startIndex)
static void modifyCost(HullSize hullSize, MutableShipStatsAPI stats, String id)
MutableShipStatsAPI getMutableStats()