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.CampaignFleetAPI;
008import com.fs.starfarer.api.campaign.InteractionDialogAPI;
009import com.fs.starfarer.api.campaign.SectorEntityToken;
010import com.fs.starfarer.api.campaign.rules.MemoryAPI;
011import com.fs.starfarer.api.characters.PersonAPI;
012import com.fs.starfarer.api.util.Misc.Token;
013
014/**
015 * ShowPersonVisual <optional - minimal mode> <optional person id>
016 */
017public class ShowPersonVisual extends BaseCommandPlugin {
018
019        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
020                
021                SectorEntityToken target = dialog.getInteractionTarget();
022
023                boolean minimal = false;
024                if (params.size() > 0) {
025                        minimal = params.get(0).getBoolean(memoryMap);
026                }
027                if (params.size() > 1) {
028                        String id = params.get(1).getString(memoryMap);
029                        PersonAPI person = Global.getSector().getImportantPeople().getData(id).getPerson();
030                        dialog.getVisualPanel().showPersonInfo(person, minimal);
031                } else if (target.getActivePerson() != null) {
032                        dialog.getVisualPanel().showPersonInfo(target.getActivePerson(), minimal);
033                } else {
034                        if (target instanceof CampaignFleetAPI) {
035                                CampaignFleetAPI fleet = (CampaignFleetAPI) target;
036                                if (fleet.getCommander() != null) {
037                                        dialog.getVisualPanel().showPersonInfo(fleet.getCommander(), minimal);
038                                }
039                        }
040                }
041                
042                //dialog.getVisualPanel().showSecondPerson(Global.getSector().getPlayerFaction().createRandomPerson());
043        
044                return true;
045        }
046
047}