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 013/** 014 * @author Alex Mosolov 015 * 016 * MakeOtherFleetImportant <reason> <true or false?> <expire?> 017 * 018 * Copyright 2015 Fractal Softworks, LLC 019 */ 020public class MakeOtherFleetImportant extends BaseCommandPlugin { 021 022 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 023 024 if (dialog == null) return false; 025 if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false; 026 027 if (params.size() == 1) { 028 CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget(); 029 boolean value = params.get(0).getBoolean(memoryMap);; 030 if (value) { 031 Misc.makeImportant(fleet, Misc.genUID()); 032 } else { 033 Misc.clearFlag(fleet.getMemoryWithoutUpdate(), MemFlags.ENTITY_MISSION_IMPORTANT); 034 } 035 return true; 036 } 037 038 String reason = params.get(0).getString(memoryMap); 039 boolean value = params.get(1).getBoolean(memoryMap);; 040 float expire = -1f; 041 if (params.size() >= 3) { 042 expire = params.get(2).getFloat(memoryMap); 043 } 044 045 CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget(); 046 if (value) { 047 Misc.makeImportant(fleet, reason, expire); 048 } else { 049 Misc.makeUnimportant(fleet, reason); 050 } 051 return true; 052 } 053 054} 055 056 057 058 059