Starsector API
Loading...
Searching...
No Matches
CivilDisorder.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.events;
2
3import java.awt.Color;
4import java.util.HashMap;
5import java.util.Map;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.comm.MessagePriority;
9import com.fs.starfarer.api.campaign.events.CampaignEventTarget;
10import com.fs.starfarer.api.util.Misc;
11import com.fs.starfarer.api.util.WeightedRandomPicker;
12
13public class CivilDisorder extends BaseEventPlugin {
14
15 private float elapsedDays = 0f;
16 private CampaignEventTarget eventTarget;
17
18 private boolean started = false;
19 private int stage = 0;
20 private String type;
21
22 // called when there's the possibility of the event happening
23 // doesn't mean it'll actually happen, needs to pass the internal probability check first
24 public void init(String type, CampaignEventTarget eventTarget) {
25 this.type = type;
26 this.eventTarget = eventTarget;
27 }
28
29 // event passed the probability check and is happening
30 public void startEvent() {
31 started = true;
32 }
33
34 public void advance(float amount) {
35 if (Global.getSector().isPaused()) return;
36 if (!started) return;
37
38 //System.out.println("Advance() in TestEvent called");
39 float days = Global.getSector().getClock().convertToDays(amount);
40
41 elapsedDays += days;
42
43 if (elapsedDays > 0 && stage == 0) {
44 WeightedRandomPicker<String> picker = new WeightedRandomPicker<String>();
45 picker.add("start1");
46 picker.add("start2");
47 picker.add("start3");
48 Global.getSector().reportEventStage(this, picker.pick(), MessagePriority.SECTOR);
49 stage++;
50 }
51
52 if (elapsedDays > 1 && stage == 1) {
53 WeightedRandomPicker<String> picker = new WeightedRandomPicker<String>();
54 picker.add("ending1");
55 picker.add("ending2");
56 picker.add("ending3");
57 picker.add("ending4");
58 Global.getSector().reportEventStage(this, picker.pick(), MessagePriority.SECTOR);
59 stage++;
60 }
61
62 if (elapsedDays > 2 && stage == 2) {
63 WeightedRandomPicker<String> picker = new WeightedRandomPicker<String>();
64 picker.add("end1");
65 picker.add("end2");
66 Global.getSector().reportEventStage(this, picker.pick(), MessagePriority.SECTOR);
67 stage++;
68 }
69 }
70
71 public boolean isDone() {
72 return elapsedDays > 5f || stage >= 3;
73 }
74
75 public CampaignEventTarget getEventTarget() {
76 return eventTarget;
77 }
78
79 public String getEventType() {
80 return type;
81 }
82
83 // tokens that are used in reports.csv for the stages of this event
84 public Map<String, String> getTokenReplacements() {
85 Map<String, String> map = new HashMap<String, String>();
86
87 map.put("$market", eventTarget.getEntity().getName());
88 map.put("$rulingFaction", eventTarget.getEntity().getFaction().getDisplayName());
89 map.put("$rulingParty", eventTarget.getEntity().getFaction().getDisplayName());
90
91 map.put("$theRulingFaction", eventTarget.getEntity().getFaction().getDisplayNameWithArticle());
92 map.put("$TheRulingFaction", Misc.ucFirst(eventTarget.getEntity().getFaction().getDisplayNameWithArticle()));
93
94 return map;
95
96 }
97
98 // how far to send an "event is possible" type report
99 public MessagePriority getWarningWhenPossiblePriority() {
100 return MessagePriority.SECTOR;
101 }
102
103 // how far to send an "event is likely" type report
104 public MessagePriority getWarningWhenLikelyPriority() {
105 return MessagePriority.SECTOR;
106 }
107
108 // pick an event_stage for an "event is likely" report.
109 // called every so often while an event is likely.
110 public String getStageIdForLikely() {
111 WeightedRandomPicker<String> picker = new WeightedRandomPicker<String>();
112 picker.add("possible1");
113 picker.add("possible2");
114 picker.add("possible3");
115 picker.add("possible4");
116 return picker.pick();
117 //return "likely";
118 }
119
120 // pick an event_stage for an "event is possible" report.
121 // called every so often while an event is possible.
122 public String getStageIdForPossible() {
123 WeightedRandomPicker<String> picker = new WeightedRandomPicker<String>();
124 picker.add("possible1");
125 picker.add("possible2");
126 picker.add("possible3");
127 picker.add("possible4");
128 return picker.pick();
129 }
130
131 public void cleanup() {
132 // TODO Auto-generated method stub
133
134 }
135
136 public void setParam(Object param) {
137
138 }
139
141 // TODO Auto-generated method stub
142 return false;
143 }
144
145 public Color[] getHighlightColors(String stageId) {
146 // TODO Auto-generated method stub
147 return null;
148 }
149
150 public String[] getHighlights(String stageId) {
151 // TODO Auto-generated method stub
152 return null;
153 }
154
155}
156
157
158
159
static SectorAPI getSector()
Definition Global.java:59
void init(String type, CampaignEventTarget eventTarget)