Starsector API
Loading...
Searching...
No Matches
ExpandedDeckCrew.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 ExpandedDeckCrew extends BaseHullMod {
10
11 public static float RATE_DECREASE_MODIFIER = 15f;
12 public static float RATE_INCREASE_MODIFIER = 25f;
13
14 public static float CREW_PER_DECK = 20f;
15
16
17 public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
18 stats.getDynamic().getStat(Stats.REPLACEMENT_RATE_DECREASE_MULT).modifyMult(id, 1f - RATE_DECREASE_MODIFIER / 100f);
19 stats.getDynamic().getStat(Stats.REPLACEMENT_RATE_INCREASE_MULT).modifyPercent(id, RATE_INCREASE_MODIFIER);
20
21 int crew = (int) (stats.getNumFighterBays().getBaseValue() * CREW_PER_DECK);
22 stats.getMinCrewMod().modifyFlat(id, crew);
23 }
24
25 public String getDescriptionParam(int index, HullSize hullSize) {
26 if (index == 0) return "" + (int) RATE_DECREASE_MODIFIER + "%";
27 if (index == 1) return "" + (int) RATE_INCREASE_MODIFIER + "%";
28 if (index == 2) return "" + (int) CREW_PER_DECK + "";
29 return null;
30 }
31
32 public boolean isApplicableToShip(ShipAPI ship) {
33 int baysModified = (int) ship.getMutableStats().getNumFighterBays().getModifiedValue();
34 if (baysModified <= 0) return false; // only count removed bays, not added bays for this
35
36 int bays = (int) ship.getMutableStats().getNumFighterBays().getBaseValue();
37// if (ship != null && ship.getVariant().getHullSpec().getBuiltInWings().size() >= bays) {
38// return false;
39// }
40 return ship != null && bays > 0;
41 }
42
43 public String getUnapplicableReason(ShipAPI ship) {
44 return "Ship does not have standard fighter bays";
45 }
46}
47
48
49
50
void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)
String getDescriptionParam(int index, HullSize hullSize)