Starsector API
Loading...
Searching...
No Matches
RedPlanet.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage;
2
3import java.util.List;
4import java.util.Map;
5import java.util.Random;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.CargoAPI;
10import com.fs.starfarer.api.campaign.CoreInteractionListener;
11import com.fs.starfarer.api.campaign.FactionAPI;
12import com.fs.starfarer.api.campaign.InteractionDialogAPI;
13import com.fs.starfarer.api.campaign.OptionPanelAPI;
14import com.fs.starfarer.api.campaign.PlanetAPI;
15import com.fs.starfarer.api.campaign.SectorEntityToken;
16import com.fs.starfarer.api.campaign.SpecialItemData;
17import com.fs.starfarer.api.campaign.TextPanelAPI;
18import com.fs.starfarer.api.campaign.econ.MarketAPI;
19import com.fs.starfarer.api.campaign.listeners.ListenerUtil;
20import com.fs.starfarer.api.campaign.rules.MemoryAPI;
21import com.fs.starfarer.api.impl.campaign.econ.impl.PlanetaryShield;
22import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
23import com.fs.starfarer.api.impl.campaign.intel.bar.events.PlanetaryShieldIntel;
24import com.fs.starfarer.api.impl.campaign.intel.bar.events.PlanetaryShieldIntel.PSIStage;
25import com.fs.starfarer.api.impl.campaign.procgen.SalvageEntityGenDataSpec.DropData;
26import com.fs.starfarer.api.impl.campaign.procgen.themes.MiscellaneousThemeGenerator;
27import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
28import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.BaseSalvageSpecial;
29import com.fs.starfarer.api.util.Misc;
30import com.fs.starfarer.api.util.Misc.Token;
31
35public class RedPlanet extends BaseCommandPlugin {
36
39 protected PlanetAPI planet;
42 protected TextPanelAPI text;
45 protected MemoryAPI memory;
46 protected MarketAPI market;
48 protected Map<String, MemoryAPI> memoryMap;
50
51
52 public RedPlanet() {
53 }
54
58
75
76 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
77 this.dialog = dialog;
78 this.memoryMap = memoryMap;
79
80 String command = params.get(0).getString(memoryMap);
81 if (command == null) return false;
82
84 init(entity);
85
87
90
91 if (command.equals("genLoot")) {
92 genLoot();
93 }
94
95 return true;
96 }
97
98 protected void genLoot() {
99
102
104 long seed = memory.getLong(MemFlags.SALVAGE_SEED);
105 Random random = Misc.getRandom(seed, 100);
106
107 DropData d = new DropData();
108 d.chances = 5;
109 d.group = "blueprints";
111
112 d = new DropData();
113 d.chances = 1;
114 d.group = "rare_tech";
116
117 CargoAPI salvage = SalvageEntity.generateSalvage(random, 1f, 1f, 1f, 1f, planet.getDropValue(), planet.getDropRandom());
119 salvage.addAll(extra);
121 if (!extra.isEmpty()) {
123 }
124 salvage.addSpecial(new SpecialItemData("industry_bp", "planetaryshield"), 1);
125 salvage.sort();
126
127 dialog.getVisualPanel().showLoot("Salvaged", salvage, false, true, true, new CoreInteractionListener() {
128 public void coreUIDismissed() {
129 dialog.dismiss();
132
134 if (intel != null) {
135 Global.getSector().addScript(intel);
136 intel.endAfterDelay();
137 //intel.sendUpdate(PSIStage.DONE, textPanel);
138 intel.sendUpdateIfPlayerHasIntel(PSIStage.DONE, false);
139 }
142 }
143 });
146
147
151
152// if (keptPromise) {
153// if (random.nextFloat() > 0.5f) {
154// SectorEntityToken loc = planet.getContainingLocation().createToken(planet.getLocation());
155// spawnPiratesToInvestigate(loc, 50f + random.nextFloat() * 50f);
156// if (random.nextFloat() > 0.5f) {
157// spawnPiratesToInvestigate(loc, 50f + random.nextFloat() * 50f);
158// }
159// }
160// }
161 }
162
163}
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
static SectorAPI getSector()
Definition Global.java:65
static void reportExtraSalvageShown(SectorEntityToken entity)
void sendUpdateIfPlayerHasIntel(Object listInfoParam, TextPanelAPI textPanel)
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static CargoAPI generateSalvage(Random random, float valueMult, float overallMult, float fuelMult, List< DropData > dropValue, List< DropData > dropRandom)
static CargoAPI getCombinedExtraSalvage(Map< String, MemoryAPI > memoryMap)
static Random getRandom(long seed, int level)
Definition Misc.java:2973
void addSpecial(SpecialItemData data, float quantity)
void addScript(EveryFrameScript script)
void addDropRandom(String group, int chances)
void showLoot(String title, CargoAPI otherCargo, boolean generatePods, CoreInteractionListener listener)
void addXP(long xp, TextPanelAPI textPanel, boolean withMessage, boolean allowBonusXP, boolean withLevelUp)
MutableCharacterStatsAPI getStats()