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