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.rules.MemoryAPI; 009import com.fs.starfarer.api.impl.campaign.ids.MemFlags; 010import com.fs.starfarer.api.util.Misc; 011import com.fs.starfarer.api.util.Misc.Token; 012 013public class MakeOtherFleetAllowDisengage extends BaseCommandPlugin { 014 015 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 016 017 if (dialog == null) return false; 018 if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false; 019 020 String reason = "generic"; 021 boolean value; 022 float expire = 0f; 023 if (params.size() >= 2) { 024 reason = params.get(0).getString(memoryMap); 025 value = params.get(1).getBoolean(memoryMap); 026 if (params.size() >= 3) { 027 expire = params.get(2).getFloat(memoryMap); 028 } 029 } else if (params.size() < 1) { 030 value = true; 031 } else { 032 value = params.get(0).getBoolean(memoryMap); 033 } 034 035 MemoryAPI memory = dialog.getInteractionTarget().getMemoryWithoutUpdate(); 036 Misc.setFlagWithReason(memory, MemFlags.MEMORY_KEY_MAKE_ALLOW_DISENGAGE, reason, value, expire); 037 038 return true; 039 } 040 041}