001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.ArrayList;
004import java.util.List;
005import java.util.Map;
006
007import com.fs.starfarer.api.Global;
008import com.fs.starfarer.api.campaign.CampaignFleetAPI;
009import com.fs.starfarer.api.campaign.FleetMemberPickerListener;
010import com.fs.starfarer.api.campaign.InteractionDialogAPI;
011import com.fs.starfarer.api.campaign.rules.MemoryAPI;
012import com.fs.starfarer.api.fleet.FleetMemberAPI;
013import com.fs.starfarer.api.util.Misc.Token;
014
015public class SetFlagship extends BaseCommandPlugin {
016
017        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
018
019                final CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
020                List<FleetMemberAPI> members = new ArrayList<FleetMemberAPI>();
021                for (FleetMemberAPI member : playerFleet.getFleetData().getMembersListCopy()) {
022                        if (member.isFighterWing()) continue;
023                        members.add(member);
024                }
025                if (!members.isEmpty()) {
026                        dialog.showFleetMemberPickerDialog("Select new flagship", "Ok", "Cancel", 
027                                        3, 7, 58f, false, false, members,
028                        new FleetMemberPickerListener() {
029                                public void pickedFleetMembers(List<FleetMemberAPI> members) {
030                                        if (members != null && !members.isEmpty()) {
031                                                FleetMemberAPI selectedFlagship = members.get(0);
032                                                playerFleet.getFleetData().setFlagship(selectedFlagship);
033                                                //addText(getString("selectedFlagship"));
034                                        }
035                                }
036                                public void cancelledFleetMemberPicking() {
037                                        
038                                }
039                        });
040                }
041                
042                return true;
043        }
044
045}