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.intel.events.EstablishedPolityScript;
13import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
14import com.fs.starfarer.api.util.IntervalUtil;
15import com.fs.starfarer.api.util.Misc;
16
17
18
20
21 public static final String PLPE_FLEET = "$PLPE_fleet";
22
23 public static String KEY = "$PLPE_ref";
27
28
29 protected IntervalUtil interval = new IntervalUtil(0.1f, 0.3f);
30
31
32 public PerseanLeaguePunitiveExpedition(GenericRaidParams params) {
33 super(params);
34
36 }
37
38 @Override
39 protected void notifyEnding() {
40 super.notifyEnding();
41
43 }
44
45 @Override
46 protected void notifyEnded() {
47 super.notifyEnded();
48 }
49
50
51 @Override
52 public String getNoun() {
53 return "punitive expedition";
54 }
55
56 @Override
57 public String getForcesNoun() {
58 return super.getForcesNoun();
59 }
60
61
62 @Override
63 public String getBaseName() {
64 return Misc.ucFirst(getFaction().getPersonNamePrefix()) + " " + "Punitive Expedition";
65 }
66
67
68 @Override
69 protected CampaignFleetAPI createFleet(int size, float damage) {
70
71 Random r = getRandom();
72
73 Vector2f loc = origin.getLocationInHyperspace();
74
76 m.setFleetTypeMedium(FleetTypes.TASK_FORCE); // default would be "Patrol", don't want that
77 m.beginFleet();
78
79 m.createFleet(params.style, size, params.factionId, loc);
80 if (size >= 8) {
81 m.triggerSetFleetDoctrineOther(5, 0); // more capitals in large fleets
82 }
84
85 m.setFleetSource(params.source);
87 m.setFleetDamageTaken(damage);
88
91 //m.triggerMakeHostile();
93
94 CampaignFleetAPI fleet = m.createFleet();
95
96 return fleet;
97 }
98
99 @Override
100 public void abort() {
101 if (!isAborted()) {
104
105 for (CampaignFleetAPI curr : getFleets()) {
106 curr.getMemoryWithoutUpdate().unset(PLPE_FLEET);
107 }
108 }
109 super.abort();
110 }
111
112
113
114 @Override
115 public void advance(float amount) {
116 super.advance(amount);
117
118 float days = Misc.getDays(amount);
119 interval.advance(days);
120
121 if (interval.intervalElapsed()) {
123 String reason = "PLPunEx";
124 for (CampaignFleetAPI curr : getFleets()) {
125 Misc.setFlagWithReason(curr.getMemoryWithoutUpdate(), MemFlags.MEMORY_KEY_MAKE_HOSTILE,
126 reason, true, 1f);
127 }
128
129 }
130 }
131 }
132
133
134
135}
136
137
138
139
static SectorAPI getSector()
Definition Global.java:65
static String ucFirst(String str)
Definition Misc.java:559
static float getDays(float amount)
Definition Misc.java:4663
static boolean setFlagWithReason(MemoryAPI memory, String flagKey, String reason, boolean value, float expire)
Definition Misc.java:1439
void set(String key, Object value)