1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage;
5import java.util.Random;
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;
42 protected TextPanelAPI
text;
47 protected InteractionDialogAPI
dialog;
76 public boolean execute(String ruleId, InteractionDialogAPI
dialog, List<Token> params, Map<String, MemoryAPI>
memoryMap) {
80 String command = params.get(0).getString(
memoryMap);
81 if (command ==
null)
return false;
91 if (command.equals(
"genLoot")) {
104 long seed =
memory.getLong(MemFlags.SALVAGE_SEED);
105 Random random = Misc.getRandom(seed, 100);
107 DropData d =
new DropData();
109 d.group =
"blueprints";
114 d.group =
"rare_tech";
118 CargoAPI extra = BaseSalvageSpecial.getCombinedExtraSalvage(
memoryMap);
119 salvage.addAll(extra);
120 BaseSalvageSpecial.clearExtraSalvage(
memoryMap);
121 if (!extra.isEmpty()) {
122 ListenerUtil.reportExtraSalvageShown(
planet);
124 salvage.addSpecial(
new SpecialItemData(
"industry_bp",
"planetaryshield"), 1);
127 dialog.getVisualPanel().showLoot(
"Salvaged", salvage,
false,
true,
true,
new CoreInteractionListener() {
128 public void coreUIDismissed() {
133 PlanetaryShieldIntel intel = (PlanetaryShieldIntel)
Global.
getSector().getIntelManager().getFirstIntel(PlanetaryShieldIntel.class);
136 intel.endAfterDelay();
138 intel.sendUpdateIfPlayerHasIntel(PSIStage.DONE,
false);
140 long xp = PlanetaryShieldIntel.FINISHED_XP;
148 planet.getMemoryWithoutUpdate().unset(MiscellaneousThemeGenerator.PLANETARY_SHIELD_PLANET);
149 Global.
getSector().getMemoryWithoutUpdate().unset(MiscellaneousThemeGenerator.PLANETARY_SHIELD_PLANET_KEY);
150 PlanetaryShield.unapplyVisuals(
planet);
static SectorAPI getSector()
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
RedPlanet(SectorEntityToken entity)
CampaignFleetAPI playerFleet
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
InteractionDialogAPI dialog
void init(SectorEntityToken entity)
Map< String, MemoryAPI > memoryMap
static CargoAPI generateSalvage(Random random, float valueMult, float overallMult, float fuelMult, List< DropData > dropValue, List< DropData > dropRandom)