001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.campaign.CampaignFleetAPI;
007import com.fs.starfarer.api.campaign.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.ai.ModularFleetAIAPI;
009import com.fs.starfarer.api.campaign.rules.MemoryAPI;
010import com.fs.starfarer.api.util.Misc;
011import com.fs.starfarer.api.util.Misc.Token;
012
013/**
014 *      MakeOtherFleetGoAway <withClear>
015 *
016 * Copyright 2015 Fractal Softworks, LLC
017 */
018public class MakeOtherFleetGoAway extends BaseCommandPlugin {
019
020        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
021
022                if (dialog == null) return false;
023                if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false;
024                
025                boolean clear = false;
026                if (params.size() >= 1) {
027                        clear = params.get(0).getBoolean(memoryMap);
028                }
029                
030                CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget();
031                
032                if (clear && fleet.getAI() != null) {
033                        fleet.getAI().setActionTextOverride(null);
034                }
035                
036                if (fleet.getAI() instanceof ModularFleetAIAPI) {
037                        ModularFleetAIAPI mAI = (ModularFleetAIAPI) fleet.getAI();
038                        mAI.getTacticalModule().forceTargetReEval();
039                }
040                
041                Misc.giveStandardReturnToSourceAssignments(fleet, clear);
042                
043                
044                return true;
045        }
046
047}
048
049
050
051
052