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.ImportantPeopleAPI.PersonDataAPI;
011import com.fs.starfarer.api.characters.PersonAPI;
012import com.fs.starfarer.api.impl.campaign.intel.contacts.ContactIntel;
013import com.fs.starfarer.api.util.Misc.Token;
014
015/**
016 * RemoveContact <optional person id>
017 */
018public class RemoveContact extends BaseCommandPlugin {
019
020        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
021                
022                SectorEntityToken entity = dialog.getInteractionTarget();
023                if (entity == null) return false;
024                
025                PersonAPI person = null;
026                if (params.size() > 0) {
027                        String personId = params.get(0).getString(memoryMap);
028                        PersonDataAPI data = Global.getSector().getImportantPeople().getData(personId);
029                        if (data != null) {
030                                person = data.getPerson();
031                        }
032                }
033                
034                if (person == null) {
035                        person = entity.getActivePerson();
036                }
037                if (person == null) return false;
038                
039                ContactIntel.removeContact(person, dialog);
040                return true;
041        }
042
043}
044
045
046
047
048
049
050
051