001package com.fs.starfarer.api.combat;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.loading.FighterWingSpecAPI;
007import com.fs.starfarer.api.loading.FormationType;
008import com.fs.starfarer.api.loading.WingRole;
009
010public interface FighterWingAPI {
011
012        public static class ReturningFighter {
013                public ShipAPI fighter;
014                public FighterLaunchBayAPI bay;
015                public ReturningFighter(ShipAPI fighter, FighterLaunchBayAPI bay) {
016                        this.fighter = fighter;
017                        this.bay = bay;
018                }
019        }
020        
021        /**
022         * Which launch bay the fighter should be returning to, if it's returning.
023         * @param fighter
024         * @return
025         */
026        FighterWingAPI.ReturningFighter getReturnData(ShipAPI fighter);
027        
028        
029        int getWingOwner();
030        void setWingOwner(int owner);
031        
032        List<ShipAPI> getWingMembers();
033        
034        WingRole getRole();
035        FormationType getFormation();
036
037        boolean isDestroyed();
038
039        String getWingId();
040
041        boolean isAlly();
042
043        ShipAPI getLeader();
044
045        FighterLaunchBayAPI getSource();
046
047        ShipAPI getSourceShip();
048
049        float getRange();
050
051        FighterWingSpecAPI getSpec();
052
053        
054        boolean isReturning(ShipAPI fighter);
055        void orderReturn(ShipAPI fighter);
056        void stopReturning(ShipAPI fighter);
057
058
059        List<ReturningFighter> getReturning();
060
061
062        void removeMember(ShipAPI member);
063
064        void setSourceBay(FighterLaunchBayAPI sourceBay);
065
066        void addMember(ShipAPI ship);
067        void setSourceShip(ShipAPI sourceShip);
068        boolean isLeader(ShipAPI ship);
069
070
071        Map<String, Object> getCustomData();
072
073
074        void setLeader(ShipAPI leader);
075}
076
077
078
079