Starsector API
Loading...
Searching...
No Matches
PerseanLeaguePunitiveExpedition.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.intel.group;
2
3import java.util.Random;
4
5import org.lwjgl.util.vector.Vector2f;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
10import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
11import com.fs.starfarer.api.impl.campaign.intel.PerseanLeagueMembership;
12import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
13import com.fs.starfarer.api.util.IntervalUtil;
14import com.fs.starfarer.api.util.Misc;
15
16
17
19
20 public static final String PLPE_FLEET = "$PLPE_fleet";
21
22 public static String KEY = "$PLPE_ref";
23 public static PerseanLeaguePunitiveExpedition get() {
24 return (PerseanLeaguePunitiveExpedition) Global.getSector().getMemoryWithoutUpdate().get(KEY);
25 }
26
27
28 protected IntervalUtil interval = new IntervalUtil(0.1f, 0.3f);
29
30
31 public PerseanLeaguePunitiveExpedition(GenericRaidParams params) {
32 super(params);
33
34 Global.getSector().getMemoryWithoutUpdate().set(KEY, this);
35 }
36
37 @Override
38 protected void notifyEnding() {
39 super.notifyEnding();
40
41 Global.getSector().getMemoryWithoutUpdate().unset(KEY);
42 }
43
44 @Override
45 protected void notifyEnded() {
46 super.notifyEnded();
47 }
48
49
50 @Override
51 public String getNoun() {
52 return "punitive expedition";
53 }
54
55 @Override
56 public String getForcesNoun() {
57 return super.getForcesNoun();
58 }
59
60
61 @Override
62 public String getBaseName() {
63 return Misc.ucFirst(getFaction().getPersonNamePrefix()) + " " + "Punitive Expedition";
64 }
65
66
67 @Override
68 protected CampaignFleetAPI createFleet(int size, float damage) {
69
70 Random r = getRandom();
71
72 Vector2f loc = origin.getLocationInHyperspace();
73
74 FleetCreatorMission m = new FleetCreatorMission(r);
75 m.setFleetTypeMedium(FleetTypes.TASK_FORCE); // default would be "Patrol", don't want that
76 m.beginFleet();
77
78 m.createFleet(params.style, size, params.factionId, loc);
79 if (size >= 8) {
80 m.triggerSetFleetDoctrineOther(5, 0); // more capitals in large fleets
81 }
82 m.triggerSetFleetFlag(PLPE_FLEET);
83
84 m.setFleetSource(params.source);
85 m.setFleetDamageTaken(damage);
86
87 m.triggerSetWarFleet();
88 m.triggerMakeLowRepImpact();
89 //m.triggerMakeHostile();
90 m.triggerMakeAlwaysSpreadTOffHostility();
91
92 CampaignFleetAPI fleet = m.createFleet();
93
94 return fleet;
95 }
96
97 @Override
98 public void abort() {
99 if (!isAborted()) {
101 for (CampaignFleetAPI curr : getFleets()) {
102 curr.getMemoryWithoutUpdate().unset(PLPE_FLEET);
103 }
104 }
105 super.abort();
106 }
107
108
109
110 @Override
111 public void advance(float amount) {
112 super.advance(amount);
113
114 float days = Misc.getDays(amount);
115 interval.advance(days);
116
117 if (interval.intervalElapsed()) {
119 String reason = "PLPunEx";
120 for (CampaignFleetAPI curr : getFleets()) {
121 Misc.setFlagWithReason(curr.getMemoryWithoutUpdate(), MemFlags.MEMORY_KEY_MAKE_HOSTILE,
122 reason, true, 1f);
123 }
124
125 }
126 }
127 }
128
129
130
131}
132
133
134
135
static SectorAPI getSector()
Definition Global.java:59