1package com.fs.starfarer.api.impl.campaign.rulecmd;
3import java.util.ArrayList;
4import java.util.Collections;
5import java.util.Comparator;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.rules.ExpressionAPI;
12import com.fs.starfarer.api.campaign.rules.MemoryAPI;
13import com.fs.starfarer.api.campaign.rules.Option;
14import com.fs.starfarer.api.campaign.rules.RuleAPI;
15import com.fs.starfarer.api.campaign.rules.RulesAPI;
16import com.fs.starfarer.api.impl.campaign.DevMenuOptions;
17import com.fs.starfarer.api.impl.campaign.rulecmd.FireAll.OptionAdder;
18import com.fs.starfarer.api.util.Misc;
19import com.fs.starfarer.api.util.Misc.Token;
20import com.fs.starfarer.api.util.Misc.VarAndMemory;
25 protected InteractionDialogAPI
dialog;
37 String trigger =
params.get(0).string;
38 if (
params.get(0).isVariable()) {
40 trigger = var.memory.getString(var.name);
49 if (rule ==
null)
return false;
60 private void applyRule(RuleAPI rule) {
71 List<OptionAdder> options =
new ArrayList<OptionAdder>();
72 for (Option option : rule.getOptions()) {
74 options.add(
new OptionAdder(option));
76 for (ExpressionAPI e : rule.getScriptCopy()) {
77 if (e.doesCommandAddOptions()) {
78 options.add(
new OptionAdder(e));
82 if (!options.isEmpty()) {
83 Collections.sort(options,
new Comparator<OptionAdder>() {
84 public int compare(OptionAdder o1, OptionAdder o2) {
86 if (diff < 0)
return -1;
87 if (diff > 0)
return 1;
93 dialog.getOptionPanel().clearOptions();
95 for (OptionAdder option : options) {
99 if (Global.getSettings().isDevMode()) {
100 DevMenuOptions.addOptions(
dialog);
105 addText(rule.getId(), rule.pickText());
109 private void addText(String
ruleId, String text) {
110 if (text ==
null || text.isEmpty())
return;
113 text = Global.getSector().getRules().performTokenReplacement(
ruleId, text,
dialog.getInteractionTarget(),
memoryMap);
122 dialog.getTextPanel().addParagraph(text);
static SettingsAPI getSettings()
static SectorAPI getSector()
InteractionDialogAPI dialog
Map< String, MemoryAPI > memoryMap
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static boolean fire(String ruleId, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap, String params)