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.rules.MemoryAPI; 009import com.fs.starfarer.api.util.Misc.Token; 010import com.fs.starfarer.api.util.Misc.VarAndMemory; 011 012/** 013 * Usage: AbortWait $waitHandle 014 * 015 */ 016public class AbortWait extends BaseCommandPlugin { 017 018 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 019 VarAndMemory handle = params.get(0).getVarNameAndMemory(memoryMap); 020 021 if (handle.memory.contains(handle.name)) { 022 Wait wait = (Wait) handle.memory.get(handle.name); 023 024 Global.getSector().removeScript(wait.getWaitScript()); 025 Global.getSector().removeScript(wait.getLeashScript()); 026 wait.getIndicator().getContainingLocation().removeEntity(wait.getIndicator()); 027 028 wait.getFinished().memory.unset(wait.getFinished().name); 029 wait.getInterrupted().memory.unset(wait.getInterrupted().name); 030 wait.getInProgress().memory.unset(wait.getInProgress().name); 031 032 handle.memory.unset(handle.name); 033 } 034 035 return true; 036 } 037 038}