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}