001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.Global;
007import com.fs.starfarer.api.campaign.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.TextPanelAPI;
009import com.fs.starfarer.api.campaign.rules.MemoryAPI;
010import com.fs.starfarer.api.fleet.FleetMemberAPI;
011import com.fs.starfarer.api.util.Misc;
012import com.fs.starfarer.api.util.Misc.Token;
013import com.fs.starfarer.api.util.Misc.VarAndMemory;
014
015/**
016 *      RemoveShip <fleet member reference>
017 */
018public class RemoveShip extends BaseCommandPlugin {
019
020        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
021                if (dialog == null) return false;
022                
023                VarAndMemory var = params.get(0).getVarNameAndMemory(memoryMap);
024//              ShipVariantAPI variant = (ShipVariantAPI) var.memory.get(var.name);
025//              FleetMemberAPI member = Global.getFactory().createFleetMember(FleetMemberType.SHIP, variant);
026                
027                FleetMemberAPI member = (FleetMemberAPI) var.memory.get(var.name);
028                if (member != null) {
029                        Global.getSector().getPlayerFleet().getFleetData().removeFleetMember(member);
030                        addShipLossText(member, dialog.getTextPanel());
031                }
032                return true;
033        }
034
035        public static void addShipLossText(FleetMemberAPI member, TextPanelAPI text) {
036                text.setFontSmallInsignia();
037                text.addParagraph("Lost " + member.getVariant().getFullDesignationWithHullNameForShip(), Misc.getNegativeHighlightColor());
038                text.highlightInLastPara(Misc.getHighlightColor(), member.getVariant().getFullDesignationWithHullNameForShip());
039                text.setFontInsignia();
040        }
041}