Class FleetEncounterContext
java.lang.Object
com.fs.starfarer.api.impl.campaign.FleetEncounterContext
- All Implemented Interfaces:
FleetEncounterContextPlugin
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
static enum
static class
static enum
protected static class
protected static class
Nested classes/interfaces inherited from interface com.fs.starfarer.api.campaign.FleetEncounterContextPlugin
FleetEncounterContextPlugin.DataForEncounterSide, FleetEncounterContextPlugin.DisengageHarryAvailability, FleetEncounterContextPlugin.EngagementOutcome, FleetEncounterContextPlugin.FleetMemberData, FleetEncounterContextPlugin.PursueAvailability, FleetEncounterContextPlugin.Status
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected float
protected boolean
protected BattleAPI
static final float
protected boolean
protected int
protected float
static final float
static final float
static final float
static final float
protected boolean
protected boolean
protected boolean
static final float
static final float
protected CargoAPI
static float
protected boolean
protected boolean
protected Map<FleetMemberAPI,
CampaignFleetAPI> protected boolean
protected boolean
protected float
protected Map<FactionAPI,
Float> protected float
protected boolean
protected boolean
protected Map<FleetMemberAPI,
Float> protected List<FleetMemberAPI>
protected CombatDamageData
static final float
protected List<FleetMemberAPI>
protected float
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
adjustPlayerReputation
(InteractionDialogAPI dialog, String ffText) boolean
adjustPlayerReputation
(InteractionDialogAPI dialog, String ffText, boolean okToAdjustAlly, boolean okToAdjustEnemy) void
protected void
applyBoardingSelfDestruct
(FleetMemberAPI member, CrewCompositionAPI boardingParty, FleetEncounterContext.BoardingAttackType attackType, List<FleetMemberAPI> boardingTaskForce, CampaignFleetAPI attacker, CampaignFleetAPI defender, FleetEncounterContext.BoardingResult result) protected void
protected void
applyCrewLosses
(EngagementResultAPI result) protected void
applyExtendedCRLossIfNeeded
(EngagementResultForFleetAPI result, FleetMemberAPI member) Only matters in non-auto-resolved battles.void
applyPursuitOption
(CampaignFleetAPI pursuingFleet, CampaignFleetAPI otherFleet, CampaignFleetAIAPI.PursuitOption pursuitOption) protected void
protected void
protected void
applyShipLosses
(EngagementResultAPI result) void
autoLoot()
boardShip
(FleetMemberAPI member, CampaignFleetAPI attacker, CampaignFleetAPI defender) void
calculateAndApplyCrewLosses
(EngagementResultForFleetAPI result, boolean playerInvolved) boolean
canOutrunOtherFleet
(CampaignFleetAPI fleet, CampaignFleetAPI other) protected void
There may be members with no source fleet if they were added to combat using scripts.float
protected void
computeCrewLossFromBoarding
(FleetEncounterContext.BoardingResult result, FleetMemberAPI member, CrewCompositionAPI boardingParty, float attackerStr, float defenderStr) protected void
protected float
computeLossFraction
(FleetMemberAPI member, EngagementResultForFleetAPI result, float hullFraction, float hullDamage) protected void
computeMissedLaunchLosses
(FleetEncounterContext.BoardingResult result, CrewCompositionAPI boardingParty) float
protected float
computeRecoverableFraction
(FleetMemberAPI member, EngagementResultForFleetAPI result, float hullFraction, float hullDamage) boolean
Player won, and it's over - no more fighting is *possible* in this encounter.boolean
boolean
The difference from didPlayerWinEncounterOutright() is that the opposing fleet may still choose to re-engage.engageBoardableShip
(FleetMemberAPI toBoard, CampaignFleetAPI fleetItBelongsTo, CampaignFleetAPI attackingFleet) void
protected void
gainOfficerXP
(FleetEncounterContextPlugin.DataForEncounterSide data, float xp) void
gainXP()
protected void
gainXP
(FleetEncounterContextPlugin.DataForEncounterSide side, FleetEncounterContextPlugin.DataForEncounterSide otherSide) void
generateLoot
(List<FleetMemberAPI> recoveredShips, boolean withCredits) protected void
generatePlayerLoot
(List<FleetMemberAPI> recoveredShips, boolean withCredits) float
float
getBoardingSuccessPercent
(FleetMemberAPI member, CampaignFleetAPI attacker, CampaignFleetAPI defender) float
int
getDataFor
(CampaignFleetAPI participantOrCombined) float
getDeployCost
(FleetMemberAPI member) float
getDisengageHarryAvailability
(CampaignFleetAPI fleet, CampaignFleetAPI otherFleet) getLoot()
getLoser()
float
getPursuitAvailability
(CampaignFleetAPI fleet, CampaignFleetAPI otherFleet) getRecoverableShips
(BattleAPI battle, CampaignFleetAPI winningFleet, CampaignFleetAPI otherFleet) float
float
protected void
handleCargoLooting
(List<FleetMemberAPI> recoveredShips, boolean takingFromPlayer) boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
void
letBoardableGo
(FleetMemberAPI toBoard, CampaignFleetAPI fleetItBelongsTo, CampaignFleetAPI attackingFleet) protected void
lootHullMods
(FleetMemberAPI member, ShipVariantAPI variant, float mult) protected void
lootWeapons
(FleetMemberAPI member, ShipVariantAPI variant, boolean own, float mult, boolean lootingModule) protected void
lootWings
(FleetMemberAPI member, ShipVariantAPI variant, boolean own, float mult) float
float
performPostVictoryRecovery
(EngagementResultForFleetAPI winnerResult, EngagementResultForFleetAPI loserResult) float
Returns average recovery per ship, in the range from 0 to 1.static void
prepareModuleForRecovery
(FleetMemberAPI member, String moduleSlotId, boolean retainAllHullmods, boolean retainKnownHullmods, boolean clearSMods, float weaponRetainProb, float wingRetainProb, Random salvageRandom) static void
prepareShipForRecovery
(FleetMemberAPI member, boolean retainAllHullmods, boolean retainKnownHullmods, boolean clearSMods, float weaponRetainProb, float wingRetainProb, Random salvageRandom) void
void
recoverCrew
(CampaignFleetAPI fleet) static void
recoverShips
(List<FleetMemberAPI> ships, FleetEncounterContext context, CampaignFleetAPI winningFleet, CampaignFleetAPI otherFleet) void
setAllyFPHullDamageToEnemies
(float allyFPHullDamageToEnemies) void
setAutoresolve
(boolean isAutoresolve) void
void
setComputedDifficulty
(boolean computedDifficulty) void
setDifficulty
(float difficulty) void
setEngagedInActualBattle
(boolean engagedInActualBattle) void
setEngagedInHostilities
(boolean engagedInHostilities) void
setNoHarryBecauseOfStation
(boolean noHarryBecauseOfStation) void
setOtherFleetHarriedPlayer
(boolean otherFleetHarriedPlayer) void
setPlayerFPHullDamageToEnemies
(float playerFPHullDamageToEnemies) void
setSalvageRandom
(Random salvageRandom) void
setTextPanelForXPGain
(TextPanelAPI textPanelForXPGain) protected void
tallyOfficerTime
(FleetEncounterContextPlugin.DataForEncounterSide data, EngagementResultForFleetAPI result) protected void
boolean
-
Field Details
-
sideData
-
engagedInHostilities
protected boolean engagedInHostilities -
engagedInActualBattle
protected boolean engagedInActualBattle -
playerOnlyRetreated
protected boolean playerOnlyRetreated -
playerPursued
protected boolean playerPursued -
playerDidSeriousDamage
protected boolean playerDidSeriousDamage -
battle
-
otherFleetHarriedPlayer
protected boolean otherFleetHarriedPlayer -
ongoingBattle
protected boolean ongoingBattle -
isAutoresolve
protected boolean isAutoresolve -
runningDamageTotal
-
origSourceForRecoveredShips
-
alreadyAdjustedRep
protected boolean alreadyAdjustedRep -
textPanelForXPGain
-
noHarryBecauseOfStation
protected boolean noHarryBecauseOfStation -
lastOutcome
-
SELF_DESTRUCT_CHANCE
public static final float SELF_DESTRUCT_CHANCE- See Also:
-
CIV_SELF_DESTRUCT_CHANCE
public static final float CIV_SELF_DESTRUCT_CHANCE- See Also:
-
ENGAGE_ESCAPE_CHANCE
public static final float ENGAGE_ESCAPE_CHANCE- See Also:
-
ENGAGE_DISABLE_CHANCE
public static final float ENGAGE_DISABLE_CHANCE- See Also:
-
ENGAGE_DESTROY_CHANCE
public static final float ENGAGE_DESTROY_CHANCE- See Also:
-
LAUNCH_CLEAN_ESCAPE_CHANCE
public static final float LAUNCH_CLEAN_ESCAPE_CHANCE- See Also:
-
DOCK_SUCCESS_CHANCE
public static final float DOCK_SUCCESS_CHANCE- See Also:
-
LAUNCH_SUCCESS_CHANCE
public static final float LAUNCH_SUCCESS_CHANCE- See Also:
-
recoverableShips
-
storyRecoverableShips
-
playerFPHullDamageToEnemies
protected float playerFPHullDamageToEnemies -
allyFPHullDamageToEnemies
protected float allyFPHullDamageToEnemies -
playerFPHullDamageToAllies
protected float playerFPHullDamageToAllies -
playerFPHullDamageToAlliesByFaction
-
xpGained
protected float xpGained -
loot
-
creditsLooted
protected int creditsLooted -
preEngagementCRForWinner
-
MAX_XP_MULT
public static float MAX_XP_MULT -
difficulty
protected float difficulty -
computedDifficulty
protected boolean computedDifficulty
-
-
Constructor Details
-
FleetEncounterContext
public FleetEncounterContext()
-
-
Method Details
-
isAutoresolve
public boolean isAutoresolve() -
setAutoresolve
public void setAutoresolve(boolean isAutoresolve) -
getBattle
- Specified by:
getBattle
in interfaceFleetEncounterContextPlugin
-
setBattle
-
getDataFor
public FleetEncounterContextPlugin.DataForEncounterSide getDataFor(CampaignFleetAPI participantOrCombined) - Specified by:
getDataFor
in interfaceFleetEncounterContextPlugin
-
getWinnerData
- Specified by:
getWinnerData
in interfaceFleetEncounterContextPlugin
-
getLoserData
- Specified by:
getLoserData
in interfaceFleetEncounterContextPlugin
-
isEngagedInHostilities
public boolean isEngagedInHostilities()- Specified by:
isEngagedInHostilities
in interfaceFleetEncounterContextPlugin
-
setEngagedInHostilities
public void setEngagedInHostilities(boolean engagedInHostilities) -
setOtherFleetHarriedPlayer
public void setOtherFleetHarriedPlayer(boolean otherFleetHarriedPlayer) - Specified by:
setOtherFleetHarriedPlayer
in interfaceFleetEncounterContextPlugin
-
isOtherFleetHarriedPlayer
public boolean isOtherFleetHarriedPlayer()- Specified by:
isOtherFleetHarriedPlayer
in interfaceFleetEncounterContextPlugin
-
updateDeployedMap
-
clearNoSourceMembers
There may be members with no source fleet if they were added to combat using scripts.- Parameters:
result
-
-
isEngagedInActualBattle
public boolean isEngagedInActualBattle() -
setEngagedInActualBattle
public void setEngagedInActualBattle(boolean engagedInActualBattle) -
processEngagementResults
-
tallyOfficerTime
protected void tallyOfficerTime(FleetEncounterContextPlugin.DataForEncounterSide data, EngagementResultForFleetAPI result) -
getPursuitAvailability
public FleetEncounterContextPlugin.PursueAvailability getPursuitAvailability(CampaignFleetAPI fleet, CampaignFleetAPI otherFleet) - Specified by:
getPursuitAvailability
in interfaceFleetEncounterContextPlugin
-
getDisengageHarryAvailability
public FleetEncounterContextPlugin.DisengageHarryAvailability getDisengageHarryAvailability(CampaignFleetAPI fleet, CampaignFleetAPI otherFleet) - Specified by:
getDisengageHarryAvailability
in interfaceFleetEncounterContextPlugin
-
getDeployCost
-
isLowRepImpact
public boolean isLowRepImpact() -
isNoRepImpact
public boolean isNoRepImpact() -
adjustPlayerReputation
- Specified by:
adjustPlayerReputation
in interfaceFleetEncounterContextPlugin
-
adjustPlayerReputation
public boolean adjustPlayerReputation(InteractionDialogAPI dialog, String ffText, boolean okToAdjustAlly, boolean okToAdjustEnemy) -
getTextPanelForXPGain
-
setTextPanelForXPGain
-
isNoHarryBecauseOfStation
public boolean isNoHarryBecauseOfStation() -
setNoHarryBecauseOfStation
public void setNoHarryBecauseOfStation(boolean noHarryBecauseOfStation) -
applyAfterBattleEffectsIfThereWasABattle
public void applyAfterBattleEffectsIfThereWasABattle() -
performPostVictoryRecovery
Description copied from interface:FleetEncounterContextPlugin
Returns average recovery per ship, in the range from 0 to 1.- Specified by:
performPostVictoryRecovery
in interfaceFleetEncounterContextPlugin
- Returns:
-
performPostEngagementRecoveryBoth
-
performPostVictoryRecovery
public float performPostVictoryRecovery(EngagementResultForFleetAPI winnerResult, EngagementResultForFleetAPI loserResult) -
applyPursuitOption
public void applyPursuitOption(CampaignFleetAPI pursuingFleet, CampaignFleetAPI otherFleet, CampaignFleetAIAPI.PursuitOption pursuitOption) -
getLastEngagementOutcome
- Specified by:
getLastEngagementOutcome
in interfaceFleetEncounterContextPlugin
-
isBattleOver
public boolean isBattleOver() -
wasLastEngagementEscape
public boolean wasLastEngagementEscape() -
didPlayerWinLastEngagement
public boolean didPlayerWinLastEngagement() -
didPlayerWinMostRecentBattleOfEncounter
public boolean didPlayerWinMostRecentBattleOfEncounter()The difference from didPlayerWinEncounterOutright() is that the opposing fleet may still choose to re-engage.- Returns:
-
didPlayerWinEncounterOutright
public boolean didPlayerWinEncounterOutright()Player won, and it's over - no more fighting is *possible* in this encounter.- Returns:
-
getCreditsLooted
public int getCreditsLooted() -
getSalvageMult
-
getCargoLootMult
-
engageBoardableShip
public FleetEncounterContext.EngageBoardableOutcome engageBoardableShip(FleetMemberAPI toBoard, CampaignFleetAPI fleetItBelongsTo, CampaignFleetAPI attackingFleet) -
boardShip
public FleetEncounterContext.BoardingResult boardShip(FleetMemberAPI member, CampaignFleetAPI attacker, CampaignFleetAPI defender) -
getBoardingSuccessPercent
public float getBoardingSuccessPercent(FleetMemberAPI member, CampaignFleetAPI attacker, CampaignFleetAPI defender) -
computeMissedLaunchLosses
protected void computeMissedLaunchLosses(FleetEncounterContext.BoardingResult result, CrewCompositionAPI boardingParty) -
computeCrewLossFromBoarding
protected void computeCrewLossFromBoarding(FleetEncounterContext.BoardingResult result, FleetMemberAPI member, CrewCompositionAPI boardingParty, float attackerStr, float defenderStr) -
applyBoardingSelfDestruct
protected void applyBoardingSelfDestruct(FleetMemberAPI member, CrewCompositionAPI boardingParty, FleetEncounterContext.BoardingAttackType attackType, List<FleetMemberAPI> boardingTaskForce, CampaignFleetAPI attacker, CampaignFleetAPI defender, FleetEncounterContext.BoardingResult result) -
letBoardableGo
public void letBoardableGo(FleetMemberAPI toBoard, CampaignFleetAPI fleetItBelongsTo, CampaignFleetAPI attackingFleet) -
getStoryRecoverableShips
-
getRecoverableShips
public List<FleetMemberAPI> getRecoverableShips(BattleAPI battle, CampaignFleetAPI winningFleet, CampaignFleetAPI otherFleet) -
recoverShips
public static void recoverShips(List<FleetMemberAPI> ships, FleetEncounterContext context, CampaignFleetAPI winningFleet, CampaignFleetAPI otherFleet) -
prepareShipForRecovery
public static void prepareShipForRecovery(FleetMemberAPI member, boolean retainAllHullmods, boolean retainKnownHullmods, boolean clearSMods, float weaponRetainProb, float wingRetainProb, Random salvageRandom) -
prepareModuleForRecovery
public static void prepareModuleForRecovery(FleetMemberAPI member, String moduleSlotId, boolean retainAllHullmods, boolean retainKnownHullmods, boolean clearSMods, float weaponRetainProb, float wingRetainProb, Random salvageRandom) -
gainXP
public void gainXP() -
gainOfficerXP
-
getPlayerFPHullDamageToEnemies
public float getPlayerFPHullDamageToEnemies() -
setPlayerFPHullDamageToEnemies
public void setPlayerFPHullDamageToEnemies(float playerFPHullDamageToEnemies) -
getAllyFPHullDamageToEnemies
public float getAllyFPHullDamageToEnemies() -
setAllyFPHullDamageToEnemies
public void setAllyFPHullDamageToEnemies(float allyFPHullDamageToEnemies) -
computeFPHullDamage
protected void computeFPHullDamage() -
computePlayerContribFraction
public float computePlayerContribFraction()- Specified by:
computePlayerContribFraction
in interfaceFleetEncounterContextPlugin
-
gainXP
protected void gainXP(FleetEncounterContextPlugin.DataForEncounterSide side, FleetEncounterContextPlugin.DataForEncounterSide otherSide) -
addPotentialOfficer
public void addPotentialOfficer() -
generateLoot
-
getSalvageRandom
-
setSalvageRandom
-
generatePlayerLoot
-
getSalvageValueModPlayerShips
public float getSalvageValueModPlayerShips() -
handleCargoLooting
-
getLoot
-
lootHullMods
-
lootWings
-
lootWeapons
protected void lootWeapons(FleetMemberAPI member, ShipVariantAPI variant, boolean own, float mult, boolean lootingModule) -
autoLoot
public void autoLoot() -
hasWinnerAndLoser
public boolean hasWinnerAndLoser() -
getWinner
- Specified by:
getWinner
in interfaceFleetEncounterContextPlugin
-
getLoser
- Specified by:
getLoser
in interfaceFleetEncounterContextPlugin
-
canOutrunOtherFleet
-
applyResultToFleets
-
fixFighters
-
applyCrewLosses
-
applyShipLosses
-
applyCREffect
-
applyExtendedCRLossIfNeeded
protected void applyExtendedCRLossIfNeeded(EngagementResultForFleetAPI result, FleetMemberAPI member) Only matters in non-auto-resolved battles.- Parameters:
member
-
-
applyShipLosses
-
computeLossFraction
protected float computeLossFraction(FleetMemberAPI member, EngagementResultForFleetAPI result, float hullFraction, float hullDamage) -
computeRecoverableFraction
protected float computeRecoverableFraction(FleetMemberAPI member, EngagementResultForFleetAPI result, float hullFraction, float hullDamage) -
calculateAndApplyCrewLosses
-
recoverCrew
-
getDifficulty
public float getDifficulty() -
setDifficulty
public void setDifficulty(float difficulty) -
isComputedDifficulty
public boolean isComputedDifficulty() -
setComputedDifficulty
public void setComputedDifficulty(boolean computedDifficulty) -
computeBattleDifficulty
public float computeBattleDifficulty()
-