001package com.fs.starfarer.api.impl.campaign.tutorial;
002
003import java.util.Map;
004
005import com.fs.starfarer.api.Global;
006import com.fs.starfarer.api.campaign.CampaignFleetAPI;
007import com.fs.starfarer.api.campaign.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.InteractionDialogPlugin;
009import com.fs.starfarer.api.campaign.OptionPanelAPI;
010import com.fs.starfarer.api.campaign.TextPanelAPI;
011import com.fs.starfarer.api.campaign.VisualPanelAPI;
012import com.fs.starfarer.api.campaign.rules.MemoryAPI;
013import com.fs.starfarer.api.combat.EngagementResultAPI;
014
015public class TutorialRespawnDialogPluginImpl implements InteractionDialogPlugin {
016
017        public static enum OptionId {
018                INIT,
019                LOAD,
020                EXIT,
021                ;
022        }
023        
024        protected InteractionDialogAPI dialog;
025        protected TextPanelAPI textPanel;
026        protected OptionPanelAPI options;
027        protected VisualPanelAPI visual;
028        
029        protected CampaignFleetAPI playerFleet;
030        
031        public void init(InteractionDialogAPI dialog) {
032                this.dialog = dialog;
033                textPanel = dialog.getTextPanel();
034                options = dialog.getOptionPanel();
035                visual = dialog.getVisualPanel();
036
037                playerFleet = Global.getSector().getPlayerFleet();
038                
039                visual.showImagePortion("illustrations", "space_wreckage", 640, 400, 0, 0, 480, 300);
040                
041                optionSelected(null, OptionId.INIT);
042        }
043        
044        public Map<String, MemoryAPI> getMemoryMap() {
045                return null;
046        }
047        
048        public void backFromEngagement(EngagementResultAPI result) {
049                // no combat here, so this won't get called
050        }
051        
052        public void optionSelected(String text, Object optionData) {
053                if (optionData == null) return;
054                
055                OptionId option = (OptionId) optionData;
056                
057                if (text != null) {
058                        //textPanel.addParagraph(text, Global.getSettings().getColor("buttonText"));
059                        dialog.addOptionSelectedText(option);
060                }
061                
062                switch (option) {
063                case INIT:
064                        textPanel.addParagraph("Your fleet has been defeated!");
065                        
066                        textPanel.addParagraph("Normally, if this happens you and your remaining crew will " +
067                                        "spend some time \"behind the scenes\" assembling a smaller fleet of recovered " +
068                                        "ships.");
069        
070                        textPanel.addParagraph("During the course of this tutorial, the only available option is to reload the last save.");
071                        
072                        options.clearOptions();
073                        options.addOption("Load last save", OptionId.LOAD, null);
074                        options.addOption("Exit to main menu", OptionId.EXIT, null);
075                        break;
076                case LOAD:
077                        
078                        dialog.dismiss();
079                        Global.getSector().getCampaignUI().quickLoad();
080                        break;
081                case EXIT:
082                        dialog.dismiss();
083                        Global.getSector().getCampaignUI().cmdExitWithoutSaving();
084                        break;
085                }
086        }
087        
088
089        
090        
091        public void optionMousedOver(String optionText, Object optionData) {
092
093        }
094        
095        public void advance(float amount) {
096                
097        }
098        
099        public Object getContext() {
100                return null;
101        }
102}
103
104
105