Starsector API
Loading...
Searching...
No Matches
AdaptivePhaseCoils.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.HullMods;
8import com.fs.starfarer.api.impl.campaign.ids.Stats;
9import com.fs.starfarer.api.impl.combat.PhaseCloakStats;
10
11public class AdaptivePhaseCoils extends BaseHullMod {
12
13 public static float FLUX_THRESHOLD_INCREASE_PERCENT = 50f;
14
15 public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
16 stats.getDynamic().getMod(
17 Stats.PHASE_CLOAK_FLUX_LEVEL_FOR_MIN_SPEED_MOD).modifyPercent(id, FLUX_THRESHOLD_INCREASE_PERCENT);
18 }
19
20 public String getDescriptionParam(int index, HullSize hullSize) {
21 if (index == 0) return "" + (int) Math.round(FLUX_THRESHOLD_INCREASE_PERCENT) + "%";
22 if (index == 1) return "" + (int) Math.round(PhaseCloakStats.BASE_FLUX_LEVEL_FOR_MIN_SPEED * 100f) + "%";
23 if (index == 2) return "" + (int)Math.round(
24 PhaseCloakStats.BASE_FLUX_LEVEL_FOR_MIN_SPEED * 100f *
25 (1f + FLUX_THRESHOLD_INCREASE_PERCENT/100f)) + "%";
26 return null;
27 }
28
29 @Override
30 public boolean isApplicableToShip(ShipAPI ship) {
31 if (ship.getVariant().hasHullMod(HullMods.PHASE_ANCHOR)) return false;
32 return ship.getHullSpec().isPhase();
33 }
34
35 @Override
36 public String getUnapplicableReason(ShipAPI ship) {
37 if (ship.getVariant().hasHullMod(HullMods.PHASE_ANCHOR)) {
38 return "Incompatible with Phase Anchor";
39 }
40 if (!ship.getHullSpec().isPhase()) {
41 return "Can only be installed on phase ships";
42 }
43 return super.getUnapplicableReason(ship);
44 }
45
46}
47
String getDescriptionParam(int index, HullSize hullSize)
void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)