Starsector API
Loading...
Searching...
No Matches
OperationsCenter.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.hullmods;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.characters.PersonAPI;
5import com.fs.starfarer.api.combat.BaseHullMod;
6import com.fs.starfarer.api.combat.CombatEngineAPI;
7import com.fs.starfarer.api.combat.CombatFleetManagerAPI;
8import com.fs.starfarer.api.combat.DeployedFleetMemberAPI;
9import com.fs.starfarer.api.combat.MutableShipStatsAPI;
10import com.fs.starfarer.api.combat.ShipAPI;
11import com.fs.starfarer.api.combat.ShipAPI.HullSize;
12import com.fs.starfarer.api.impl.campaign.ids.Stats;
13
14public class OperationsCenter extends BaseHullMod {
15
16 public static final float RECOVERY_BONUS = 250f;
17 public static final String MOD_ID = "operations_center_mod";
18
19 public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
20 }
21
22 public String getDescriptionParam(int index, HullSize hullSize) {
23 if (index == 0) return "" + (int) RECOVERY_BONUS + "%";
24 return null;
25 }
26
27
28
29 @Override
30 public void advanceInCombat(ShipAPI ship, float amount) {
31 CombatEngineAPI engine = Global.getCombatEngine();
32 if (engine == null) return;
33
34 CombatFleetManagerAPI manager = engine.getFleetManager(ship.getOriginalOwner());
35 if (manager == null) return;
36
37 DeployedFleetMemberAPI member = manager.getDeployedFleetMember(ship);
38 if (member == null) return; // happens in refit screen etc
39
40 boolean apply = ship == engine.getPlayerShip();
41 PersonAPI commander = null;
42 if (member.getMember() != null) {
43 commander = member.getMember().getFleetCommander();
44 if (member.getMember().getFleetCommanderForStats() != null) {
45 commander = member.getMember().getFleetCommanderForStats();
46 }
47 }
48 apply |= commander != null && ship.getCaptain() == commander;
49
50 if (apply) {
51 ship.getMutableStats().getDynamic().getMod(Stats.COMMAND_POINT_RATE_FLAT).modifyFlat(MOD_ID, RECOVERY_BONUS * 0.01f);
52 } else {
53 ship.getMutableStats().getDynamic().getMod(Stats.COMMAND_POINT_RATE_FLAT).unmodify(MOD_ID);
54 }
55 }
56
57}
58
59
60
61
62
63
64
65
static CombatEngineAPI getCombatEngine()
Definition Global.java:63
String getDescriptionParam(int index, HullSize hullSize)
void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)