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;
37 String trigger =
params.get(0).string;
38 if (
params.get(0).isVariable()) {
49 if (rule ==
null)
return false;
60 private void applyRule(
RuleAPI rule) {
71 List<OptionAdder> options =
new ArrayList<OptionAdder>();
74 options.add(
new OptionAdder(option));
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;
95 for (OptionAdder option : options) {
99 if (Global.getSettings().isDevMode()) {
100 DevMenuOptions.addOptions(
dialog);
109 private void addText(String
ruleId, String text) {
110 if (text ==
null || text.isEmpty())
return;
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)
static List< Token > tokenize(String string)
TextPanelAPI getTextPanel()
SectorEntityToken getInteractionTarget()
OptionPanelAPI getOptionPanel()
LabelAPI addParagraph(String text)
String getString(String key)
List< Option > getOptions()
void runScript(InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
List< ExpressionAPI > getScriptCopy()
RuleAPI getBestMatching(String currentRule, String trigger, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)