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.CampaignFleetAPI;
008import com.fs.starfarer.api.campaign.FleetAssignment;
009import com.fs.starfarer.api.campaign.InteractionDialogAPI;
010import com.fs.starfarer.api.campaign.SectorEntityToken;
011import com.fs.starfarer.api.campaign.rules.MemoryAPI;
012import com.fs.starfarer.api.util.Misc.Token;
013
014/**
015 *      MakeOtherFleetDoThing <entity id> <duration> <text> <withClear>
016 *
017 * Copyright 2015 Fractal Softworks, LLC
018 */
019public class MakeOtherFleetDoThing extends BaseCommandPlugin {
020
021        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
022
023                if (dialog == null) return false;
024                if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false;
025                
026                String id = params.get(0).getString(memoryMap); 
027                String text = params.get(2).getString(memoryMap); 
028                float dur = params.get(1).getFloat(memoryMap); 
029                
030                boolean clear = false;
031                if (params.size() > 3) {
032                        clear = params.get(3).getBoolean(memoryMap);
033                }
034                
035                SectorEntityToken entity = Global.getSector().getEntityById(id);
036                if (entity == null) return false;
037                
038                CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget();
039                
040                if (clear) {
041                        fleet.clearAssignments();
042                }
043
044                fleet.addAssignment(FleetAssignment.GO_TO_LOCATION, entity, 1000f);
045                fleet.addAssignment(FleetAssignment.ORBIT_PASSIVE, entity, dur, text);
046                
047                return true;
048        }
049
050}
051
052
053
054
055