1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.CargoAPI;
9import com.fs.starfarer.api.campaign.FactionAPI;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.OptionPanelAPI;
12import com.fs.starfarer.api.campaign.SectorEntityToken;
13import com.fs.starfarer.api.campaign.TextPanelAPI;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.combat.ShipHullSpecAPI;
16import com.fs.starfarer.api.combat.ShipVariantAPI;
17import com.fs.starfarer.api.impl.campaign.DerelictShipEntityPlugin;
18import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
19import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.ShipRecoverySpecial;
20import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.ShipRecoverySpecial.PerShipData;
21import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.ShipRecoverySpecial.ShipCondition;
22import com.fs.starfarer.api.util.Misc;
23import com.fs.starfarer.api.util.Misc.Token;
31 public static final String
TRAPPED =
"$trapped";
32 public static final String
LOCKED =
"$locked";
43 protected TextPanelAPI
text;
47 protected InteractionDialogAPI
dialog;
49 private Map<String, MemoryAPI> memoryMap;
52 public boolean execute(String ruleId, InteractionDialogAPI
dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
55 this.memoryMap = memoryMap;
67 PerShipData shipData = plugin.
getData().ship;
68 boolean nameKnown = ShipRecoverySpecial.isNameKnown(shipData.condition);
73 ShipVariantAPI variant = shipData.variant;
74 if (variant ==
null && shipData.variantId !=
null) {
78 ShipCondition condition = shipData.condition;
82 conStr =
"nearly undamaged";
85 conStr =
"in good condition";
88 conStr =
"showing signs of damage";
94 conStr =
"heavily damaged";
98 if (variant ==
null) {
99 String str =
"A derelict ship, drifting through space.";
100 text.addParagraph(str);
102 String hullType =
"";
103 ShipHullSpecAPI spec = variant.getHullSpec();
104 if (spec.hasHullName()) hullType += spec.getHullNameWithDashClass();
105 if (spec.hasDesignation()) {
106 if (!hullType.isEmpty()) hullType +=
" ";
107 hullType += spec.getDesignation().toLowerCase();
110 String str =
"A derelict " + hullType +
", drifting through space.";
112 text.addParagraph(str);
115 text.addParagraph(
"It is " + conStr +
", " +
116 "though determining whether it's recoverable or not will require closer examination.");
134 return Misc.getStringWithTokenReplacement(format,
entity, memoryMap);
static SettingsAPI getSettings()
static SectorAPI getSector()
DerelictShipData getData()
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
static final String TRAPPED
String getString(String format)
static final String LOCKED
CampaignFleetAPI playerFleet
static final float BREAK_KEEP_FRACTION
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
InteractionDialogAPI dialog
static final String CAN_UNLOCK
ShipVariantAPI getVariant(String variantId)