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}