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/** 016 * GiveOtherFleetAssignment <assignment> <duration> <actionText> <optional target id> 017 */ 018public class GiveOtherFleetAssignment 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 if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false; 023 024 CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget(); 025 026 FleetAssignment assignment = FleetAssignment.valueOf(params.get(0).getString(memoryMap)); 027 float duration = params.get(1).getFloat(memoryMap); 028 String actionText = null; 029 if (params.size() > 2) { 030 actionText = params.get(2).getString(memoryMap); 031 } 032 033 SectorEntityToken target = null; 034 if (params.size() > 3) { 035 String id = params.get(3).getString(memoryMap); 036 target = Global.getSector().getEntityById(id); 037 } 038 fleet.getAI().addAssignmentAtStart(assignment, target, duration, actionText, null); 039 return true; 040 } 041 042}