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