1package com.fs.starfarer.api.impl.campaign;
3import java.util.HashMap;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.InteractionDialogAPI;
8import com.fs.starfarer.api.campaign.InteractionDialogPlugin;
9import com.fs.starfarer.api.campaign.OptionPanelAPI;
10import com.fs.starfarer.api.campaign.SectorEntityToken;
11import com.fs.starfarer.api.campaign.TextPanelAPI;
12import com.fs.starfarer.api.campaign.VisualPanelAPI;
13import com.fs.starfarer.api.campaign.rules.MemKeys;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.characters.CharacterCreationData;
16import com.fs.starfarer.api.combat.EngagementResultAPI;
17import com.fs.starfarer.api.impl.SharedSettings;
18import com.fs.starfarer.api.impl.campaign.rulecmd.DumpMemory;
19import com.fs.starfarer.api.impl.campaign.rulecmd.FireAll;
20import com.fs.starfarer.api.impl.campaign.rulecmd.FireBest;
26 private static enum OptionId {
32 private static enum State {
38 private TextPanelAPI textPanel;
39 private OptionPanelAPI options;
40 private VisualPanelAPI visual;
42 private CharacterCreationData data;
45 private State state = State.OPTIONS;
46 private HashMap<String, MemoryAPI> memoryMap;
56 createInitialOptions();
61 memoryMap =
new HashMap<String, MemoryAPI>();
74 visual.showNewGameOptionsPanel(data);
79 if (state == State.OPTIONS) {
80 String name = data.getCharacterData().getName();
81 if (name ==
null || name.isEmpty()) {
82 options.setEnabled(OptionId.CONTINUE_CHOICES,
false);
84 options.setEnabled(OptionId.CONTINUE_CHOICES,
true);
86 }
else if (state == State.CHOICES) {
102 if (optionData ==
null)
return;
104 if (text !=
null && state == State.CHOICES) {
109 if (optionData instanceof String) {
118 memory.
set(
"$option", optionData);
119 memory.
expire(
"$option", 0);
122 OptionId option = (OptionId) optionData;
129 case CONTINUE_CHOICES:
134 visual.showPersonInfo(data.getPerson(),
true);
135 options.clearOptions();
136 state = State.CHOICES;
143 private void createInitialOptions() {
144 options.clearOptions();
146 options.addOption(
"Continue", OptionId.CONTINUE_CHOICES,
null);
150 private OptionId lastOptionMousedOver =
null;
160 return FireAll.
fire(
null, dialog, memoryMap, trigger);
static SettingsAPI getSettings()
static FactoryAPI getFactory()
static final String LOCAL
static final String GLOBAL
static void setBoolean(String key, boolean value)
static void saveIfNeeded()
static boolean optBoolean(String key, boolean defaultValue)
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static final String OPTION_ID
static boolean fire(String ruleId, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap, String params)
static boolean fire(String ruleId, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap, String params)
TextPanelAPI getTextPanel()
VisualPanelAPI getVisualPanel()
SectorEntityToken getInteractionTarget()
void addOptionSelectedText(Object optionId)
void setPromptText(String promptText)
void setOptionOnEscape(String text, Object optionId)
OptionPanelAPI getOptionPanel()
MemoryAPI getMemoryWithoutUpdate()
void expire(String key, float days)
void set(String key, Object value)