Starsector API
Loading...
Searching...
No Matches
NavBuoyEffect.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.combat.BattleObjectiveAPI;
8import com.fs.starfarer.api.combat.CombatEngineAPI;
9import com.fs.starfarer.api.combat.ShipAPI;
10import com.fs.starfarer.api.impl.campaign.skills.CoordinatedManeuversScript;
11
13
14// public static final String NEBULA_NAVIGATION_KEY = "nebula_navigation";
15
16
17// public static final String NAV_BUOY_ID = "nav_buoy";
18// public static final float NAV_BUOY_TOP_SPEED_BONUS = 15f;
19// public static final float NAV_BUOY_MANEUVERABILITY_BONUS = 25f;
20// public static final int NAV_BUOY_COMMAND_POINTS = 1;
21
22 public static final float NAV_BUOY_FOG_LIFT_RADIUS = 999f;
23
24 private List<ShipStatusItem> items = new ArrayList<ShipStatusItem>();
25
26 private String id;
27
28 public void init(CombatEngineAPI engine, BattleObjectiveAPI objective) {
29 super.init(engine, objective);
30
31 id = "nav_buoy_boost_" + objective.toString();
32
33// ShipStatusItem item = new ShipStatusItem(objective.getDisplayName(),
34// String.format("+%d top speed, +%d%% maneuver",
35// (int) NAV_BUOY_TOP_SPEED_BONUS,
36// (int) NAV_BUOY_MANEUVERABILITY_BONUS),
37// false);
38// items.add(item);
39
40// item = new ShipStatusItem("Nav Buoy Deployed",
41// "nebula navigation",
42// false);
43// item.setKey(NEBULA_NAVIGATION_KEY);
44// items.add(item);
45 }
46
47 public void advance(float amount) {
48// boolean zeroHasNav = false;
49// boolean oneHasNav = false;
50// for (BattleObjectiveAPI obj : engine.getObjectives()) {
51// if (obj.getOwner() == 0 && NAV_BUOY_ID.equals(obj.getType())) {
52// zeroHasNav = true;
53// }
54// if (obj.getOwner() == 1 && NAV_BUOY_ID.equals(obj.getType())) {
55// oneHasNav = true;
56// }
57// }
58//
59// for (ShipAPI ship : engine.getShips()) {
60// //if (ship.isFighter() || ship.isFrigate()) continue;
61// if (ship.getOwner() == objective.getOwner()) {
62// ship.getMutableStats().getMaxSpeed().modifyFlat(id, NAV_BUOY_TOP_SPEED_BONUS);
63// ship.getMutableStats().getAcceleration().modifyPercent(id, NAV_BUOY_MANEUVERABILITY_BONUS);
64// ship.getMutableStats().getDeceleration().modifyPercent(id, NAV_BUOY_MANEUVERABILITY_BONUS);
65// ship.getMutableStats().getTurnAcceleration().modifyPercent(id,NAV_BUOY_MANEUVERABILITY_BONUS);
66// } else {
67// ship.getMutableStats().getMaxSpeed().unmodify(id);
68// ship.getMutableStats().getAcceleration().unmodify(id);
69// ship.getMutableStats().getDeceleration().unmodify(id);
70// ship.getMutableStats().getTurnAcceleration().unmodify(id);
71// }
77// }
78
79// giveCommandPointsForCapturing(NAV_BUOY_COMMAND_POINTS);
80
82 }
83
84
85 public String getLongDescription() {
86 float min = Global.getSettings().getFloat("minFractionOfBattleSizeForSmallerSide");
87 int total = Global.getSettings().getBattleSize();
88 int maxPoints = (int)Math.round(total * (1f - min));
89 return String.format(
90 "+%d%% top speed\n" +
91 "%d%% base total maximum\n" +
92 //"can be improved by skills\n\n" +
93 "+%d bonus deployment points\n" +
94 "up to a maximum of " + maxPoints + " points",
95 (int)CoordinatedManeuversScript.PER_BUOY,
96 (int)CoordinatedManeuversScript.BASE_MAXIMUM,
98// return String.format(
99// "command points: +%d\n" +
100// "\n" +
101// "ship maneuverability: +%d%%\n" +
102// "ship top speed: +%d\n",
103// //"ships unaffected by nebula interference\n",
104// //"no bonus to fighters\n" +
105// //"no bonus to frigates",
106// NAV_BUOY_COMMAND_POINTS,
107// (int) NAV_BUOY_TOP_SPEED_BONUS,
108// (int) NAV_BUOY_MANEUVERABILITY_BONUS);
109 }
110
111 public List<ShipStatusItem> getStatusItemsFor(ShipAPI ship) {
112// if (ship.getOwner() == objective.getOwner()) {
119// return items;
120// }
121 return null;
122 }
123}
124
125
126
127
128
129
130
static SettingsAPI getSettings()
Definition Global.java:51
void init(CombatEngineAPI engine, BattleObjectiveAPI objective)
List< ShipStatusItem > getStatusItemsFor(ShipAPI ship)