1package com.fs.starfarer.api.impl.campaign.skills;
3import java.util.HashSet;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.characters.PersonAPI;
9import com.fs.starfarer.api.combat.BaseEveryFrameCombatPlugin;
10import com.fs.starfarer.api.combat.BattleObjectiveAPI;
11import com.fs.starfarer.api.combat.CombatEngineAPI;
12import com.fs.starfarer.api.combat.CombatFleetManagerAPI;
13import com.fs.starfarer.api.combat.DeployedFleetMemberAPI;
14import com.fs.starfarer.api.combat.ShipAPI;
15import com.fs.starfarer.api.combat.ViewportAPI;
16import com.fs.starfarer.api.impl.campaign.ids.BattleObjectives;
17import com.fs.starfarer.api.impl.campaign.ids.Stats;
18import com.fs.starfarer.api.input.InputEventAPI;
23 public static final String
BONUS_ID =
"comm_relay_script_bonus";
31 private ShipAPI prevPlayerShip =
null;
32 private int skipFrames = 0;
33 private Set<CombatFleetManagerAPI> needsCleanup =
new HashSet<CombatFleetManagerAPI>();
34 public void advance(
float amount, List<InputEventAPI> events) {
35 if (engine ==
null)
return;
41 if (playerShip != prevPlayerShip) {
42 prevPlayerShip = playerShip;
59 if (commander ==
null) {
68 boolean relaysOnly = modifier == 1f;
71 if (member.isFighterWing())
continue;
76 if (total > 0) relaysOnly =
false;
81 if (obj.getOwner() == manager.
getOwner() && BattleObjectives.COMM_RELAY.equals(obj.getType())) {
97 String icon = Global.getSettings().getSpriteName(
"ui",
"icon_tactical_coordinated_maneuvers");
98 String title =
"command network";
101 String data =
"+" + (int)Math.round((withMult - 1f) * 100f) +
"% cp recovery rate";
102 boolean debuff =
false;
104 data =
"" + (int)Math.round((withMult - 1f) * 100f) +
"% cp recovery rate";
126 if (needsCleanup.contains(manager)) {
127 needsCleanup.remove(manager);
130 if (member.isFighterWing())
continue;
131 if (member.getShip() ==
null)
continue;
132 member.getShip().getMutableStats().getMaxSpeed().unmodify(
BONUS_ID);
void modifyFlat(String source, float value)
static final String COMMAND_POINT_RATE_FLAT
static final String COMMAND_POINT_RATE_COMMANDER
void renderInUICoords(ViewportAPI viewport)
void init(CombatEngineAPI engine)
static final float RATE_BONUS_PER_COMM_RELAY
boolean hasInputPriority()
static final Object KEY_STATUS
void renderInWorldCoords(ViewportAPI viewport)
void cleanUpIfNeeded(CombatFleetManagerAPI manager)
void advance(float amount, List< InputEventAPI > events)
static final String BONUS_ID
DynamicStatsAPI getDynamic()
MutableCharacterStatsAPI getStats()
void maintainStatusForPlayerShip(Object key, String spriteName, String title, String data, boolean isDebuff)
CombatFleetManagerAPI getFleetManager(FleetSide side)
List< BattleObjectiveAPI > getObjectives()
List< DeployedFleetMemberAPI > getDeployedCopyDFM()
PersonAPI getFleetCommander()
CombatTaskManagerAPI getTaskManager(boolean ally)
MutableStat getCPRateModifier()
float getValue(String id)