1package com.fs.starfarer.api.impl.campaign.abilities;
3import java.util.ArrayList;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.BattleAPI;
10import com.fs.starfarer.api.campaign.BuffManagerAPI.Buff;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.econ.MarketAPI;
13import com.fs.starfarer.api.fleet.FleetMemberAPI;
14import com.fs.starfarer.api.impl.campaign.intel.BaseIntelPlugin;
15import com.fs.starfarer.api.impl.campaign.terrain.CRRecoveryBuff;
16import com.fs.starfarer.api.ui.LabelAPI;
17import com.fs.starfarer.api.ui.TooltipMakerAPI;
18import com.fs.starfarer.api.util.Misc;
19import com.fs.starfarer.api.util.Misc.FleetMemberDamageLevel;
35 return FleetMemberDamageLevel.LOW;
44 if (fleet ==
null)
return;
51 true,
null, member.getShipName() +
" suffers damage from " +
spec.
getName() +
" activation");
80 if (fleet ==
null)
return;
88 boolean needsSync =
false;
91 member.getBuffManager().removeBuff(buffId);
94 Buff test = member.getBuffManager().getBuff(buffId);
99 member.getBuffManager().addBuff(
new CRRecoveryBuff(buffId, 0f, buffDur));
123 List<FleetMemberAPI> result =
new ArrayList<FleetMemberAPI>();
127 if (fleet ==
null)
return result;
131 if (Math.round(member.getRepairTracker().getCR() * 100) < Math.round(crLoss * 100)) {
141 return Math.round(crLoss * 100f) / 100f;
146 if (fleet ==
null)
return 0f;
154 if (fleet ==
null)
return 0f;
160 cost += member.getDeploymentCostSupplies() * crCostMult;
180 if (fleet ==
null)
return;
198 String preventsRecovery =
"";
200 preventsRecovery =
" Prevents combat readiness recovery while active.";
204 String years =
"year's";
207 tooltip.
addPara(
"Consumes %s light " + years +
" worth of fuel and reduces the combat readiness "
208 +
"of all ships by %s of a combat deployment." + preventsRecovery,
214 tooltip.
addPara(
"Reduces the combat readiness "
215 +
"of all ships by %s of a combat deployment." + preventsRecovery,
220 tooltip.
addPara(
"Consumes %s light " + years +
" worth of fuel." + preventsRecovery,
227 tooltip.
addPara(
"Ships with insufficient combat readiness may suffer damage when the ability is activated.", pad);
232 if (supplyCost > 0 && fuelCost > 0) {
233 tooltip.
addPara(
"Consumes %s fuel and reduces the combat readiness" +
234 " of all ships, costing up to %s supplies to recover." + preventsRecovery, pad,
238 }
else if (supplyCost > 0) {
239 tooltip.
addPara(
"Reduces the combat readiness" +
240 " of all ships, costing up to %s supplies to recover." + preventsRecovery, pad,
243 }
else if (fuelCost > 0) {
244 tooltip.
addPara(
"Consumes %s fuel." + preventsRecovery, pad,
250 if (!addedReason && fuelCost > 0 && fuelCost > fleet.
getCargo().
getFuel()) {
251 tooltip.
addPara(
"Not enough fuel.", bad, pad);
257 if (!nonReady.isEmpty()) {
258 tooltip.
addPara(
"Some ships don't have enough combat readiness " +
259 "and may suffer damage if the ability is activated:", pad,
266 if (nonReady.size() > max + 1) {
272 if (!member.isFighterWing()) {
273 str += member.getShipName() +
", ";
274 str += member.getHullSpec().getHullNameWithDashClass();
276 str += member.getVariant().getFullDesignationWithHullName();
296 if (engagedInHostilities) {
312 return super.getCooldownFraction() < 1f;
317 return super.isUsable() &&
326 return super.getCooldownFraction();
335 return super.getCooldownColor();
static SettingsAPI getSettings()
static boolean CODEX_TOOLTIP_MODE
static SectorAPI getSector()
transient AbilitySpecAPI spec
boolean isActiveOrInProgress()
CampaignFleetAPI getFleet()
void addIncompatibleToTooltip(TooltipMakerAPI tooltip, boolean expanded)
void addInitialDescription(TooltipMakerAPI tooltip, boolean expanded)
List< FleetMemberAPI > getNonReadyShips()
void applyStatsEffect(float amount, float level)
boolean addNotUsableReasonBeforeFuelCost(TooltipMakerAPI tooltip, boolean expanded)
FleetMemberDamageLevel getActivationDamageLevel()
float getCRCost(FleetMemberAPI member)
float getActivationAtLowCRShipDamageProbability()
void applyEffect(float amount, float level)
float computeSupplyCost()
void addNotUsableReasonAfterFuelCost(TooltipMakerAPI tooltip, boolean expanded)
float getCooldownFraction()
void applyFleetVisual(float amount, float level)
boolean canRecoverCRWhileActive()
void fleetOpenedMarket(MarketAPI market)
boolean isCooldownRenderingAdditive()
void createTooltip(TooltipMakerAPI tooltip, boolean expanded)
void unapplyStatsEffect()
void fleetLeftBattle(BattleAPI battle, boolean engagedInHostilities)
static final String INDENT
static String ucFirst(String str)
static Color getNegativeHighlightColor()
static Color getGrayColor()
static void applyDamage(FleetMemberAPI member, Random random, FleetMemberDamageLevel level, boolean withCRDamage, String crDamageId, String crDamageReason, boolean withMessage, TextPanelAPI textPanel, String messageText)
static Color scaleAlpha(Color color, float factor)
static Color getHighlightColor()
static String getRoundedValueMaxOneAfterDecimal(float value)
static String getRoundedValue(float value)
Color getColor(String id)
FleetDataAPI getFleetData()
FleetLogisticsAPI getLogistics()
FaderUtil getSharedFader()
void removeFuel(float quantity)
List< FleetMemberAPI > getMembersListCopy()
CampaignUIAPI getCampaignUI()
float getFuelCostPerLightYear()