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