001package com.fs.starfarer.api.impl.campaign.intel.bar;
002
003import java.util.Map;
004
005import com.fs.starfarer.api.Global;
006import com.fs.starfarer.api.campaign.InteractionDialogAPI;
007import com.fs.starfarer.api.campaign.InteractionDialogPlugin;
008import com.fs.starfarer.api.campaign.rules.MemoryAPI;
009import com.fs.starfarer.api.combat.EngagementResultAPI;
010import com.fs.starfarer.api.impl.campaign.DevMenuOptions;
011import com.fs.starfarer.api.impl.campaign.rulecmd.DumpMemory;
012import com.fs.starfarer.api.impl.campaign.rulecmd.missions.BarCMD;
013
014public class BarEventDialogPlugin implements InteractionDialogPlugin {
015        protected InteractionDialogAPI dialog;
016        protected InteractionDialogPlugin originalPlugin;
017        protected Map<String, MemoryAPI> memoryMap;
018        protected PortsideBarEvent event;
019        protected BarCMD cmd;
020
021        public BarEventDialogPlugin(BarCMD cmd, InteractionDialogPlugin originalPlugin, PortsideBarEvent event, Map<String, MemoryAPI> memoryMap) {
022                this.cmd = cmd;
023                this.originalPlugin = originalPlugin;
024                this.event = event;
025                this.memoryMap = memoryMap;
026        }
027
028        public void init(InteractionDialogAPI dialog) {
029                this.dialog = dialog;
030                
031                event.init(dialog, memoryMap);
032                if (event.isDialogFinished()) {
033                        endEvent();
034                } else {
035                        if (Global.getSettings().isDevMode()) {
036                                DevMenuOptions.addOptions(dialog);
037                        }
038                }
039        }
040        public void optionSelected(String optionText, Object optionData) {
041                if (optionText != null) {
042                        //dialog.getTextPanel().addParagraph(optionText, Global.getSettings().getColor("buttonText"));
043                        dialog.addOptionSelectedText(optionData);
044                }
045                if (optionData == DumpMemory.OPTION_ID) {
046                        new DumpMemory().execute(null, dialog, null, getMemoryMap());
047                        return;
048                } else if (DevMenuOptions.isDevOption(optionData)) {
049                        DevMenuOptions.execute(dialog, (String) optionData);
050                        return;
051                }
052                
053                event.optionSelected(optionText, optionData);
054                if (event.isDialogFinished()) {
055                        endEvent();
056                } else {
057                        if (Global.getSettings().isDevMode()) {
058                                DevMenuOptions.addOptions(dialog);
059                        }
060                }
061        }
062        
063        public void endEvent() {
064                dialog.setPlugin(originalPlugin);
065                cmd.returningFromEvent(event);
066//              if (withContinue) {
067//                      FireBest.fire(null, dialog, memoryMap, "BarEventFinished");
068//              } else {
069//                      FireBest.fire(null, dialog, memoryMap, "BarEventFinishedNoContinue");
070//              }
071        }
072        
073        public void advance(float amount) {
074        }
075        public void backFromEngagement(EngagementResultAPI battleResult) {
076        }
077        public Object getContext() {
078                return null;
079        }
080        public Map<String, MemoryAPI> getMemoryMap() {
081                return memoryMap;
082        }
083        public void optionMousedOver(String optionText, Object optionData) {
084        }
085}