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.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.SectorEntityToken;
009import com.fs.starfarer.api.campaign.rules.MemoryAPI;
010import com.fs.starfarer.api.characters.AbilityPlugin;
011import com.fs.starfarer.api.util.Misc.Token;
012
013
014/**
015 * ActivateAbility <fleet id> <ability id>
016 */
017public class ActivateAbility extends BaseCommandPlugin {
018
019        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
020                
021                String entityId = params.get(0).getString(memoryMap);
022                String abilityId = params.get(1).getString(memoryMap);
023
024                SectorEntityToken entity = Global.getSector().getEntityById(entityId);
025                if (entity == null) return false;
026                
027                AbilityPlugin ability = entity.getAbility(abilityId);
028                if (ability == null) return false;
029                
030                ability.activate();
031
032                return ability.isActiveOrInProgress();
033        }
034
035}