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.Token;
011
012/**
013 *      MakeOtherFleetAvoidContact <avoid contact>
014 *
015 * Copyright 2015 Fractal Softworks, LLC
016 */
017public class MakeOtherFleetAvoidContact extends BaseCommandPlugin {
018
019        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
020
021                if (dialog == null) return false;
022                if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false;
023                
024                boolean avoid = true;
025                if (params.size() >= 1) {
026                        avoid = params.get(0).getBoolean(memoryMap);
027                }
028                
029                CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget();
030                
031                if (avoid) {
032                        fleet.getMemoryWithoutUpdate().set(MemFlags.MEMORY_KEY_AVOID_PLAYER_SLOWLY, avoid);
033                } else {
034                        fleet.getMemoryWithoutUpdate().unset(MemFlags.MEMORY_KEY_AVOID_PLAYER_SLOWLY);
035                }
036                
037                
038                return true;
039        }
040
041}
042
043
044
045
046