001package com.fs.starfarer.api.impl.campaign.rulecmd.missions;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.campaign.InteractionDialogAPI;
007import com.fs.starfarer.api.campaign.InteractionDialogPlugin;
008import com.fs.starfarer.api.campaign.SectorEntityToken;
009import com.fs.starfarer.api.campaign.TextPanelAPI;
010import com.fs.starfarer.api.campaign.econ.MarketAPI;
011import com.fs.starfarer.api.campaign.rules.MemoryAPI;
012import com.fs.starfarer.api.characters.PersonAPI;
013import com.fs.starfarer.api.impl.campaign.missions.hub.BaseMissionHub;
014import com.fs.starfarer.api.impl.campaign.missions.hub.MissionHub;
015import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
016import com.fs.starfarer.api.util.Misc.Token;
017
018/**
019 *      MissionHubCMD <command>
020 */
021public class MissionHubCMD extends BaseCommandPlugin { 
022
023        protected SectorEntityToken entity;
024        protected InteractionDialogPlugin originalPlugin;
025        protected InteractionDialogAPI dialog;
026        protected Map<String, MemoryAPI> memoryMap;
027        protected PersonAPI person;
028        protected MissionHub hub;
029        protected MarketAPI market;
030        protected TextPanelAPI text;
031
032        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, final Map<String, MemoryAPI> memoryMap) {
033                this.dialog = dialog;
034                this.memoryMap = memoryMap;
035                if (dialog == null) return false;
036
037                String command = params.get(0).getString(memoryMap);
038                if (command == null) return false;
039                
040                entity = dialog.getInteractionTarget();
041                originalPlugin = dialog.getPlugin();
042                market = entity.getMarket();
043                
044                text = dialog.getTextPanel();
045                person = dialog.getInteractionTarget().getActivePerson();
046                
047                hub = BaseMissionHub.get(person);
048                
049                if (command.equals("hasHub")) {
050                        return hub != null && person != null;
051                }
052                
053                return true;
054        }
055        
056}
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074