1package com.fs.starfarer.api.impl.campaign.skills;
3import com.fs.starfarer.api.campaign.FleetDataAPI;
4import com.fs.starfarer.api.characters.FleetTotalItem;
5import com.fs.starfarer.api.characters.FleetTotalSource;
6import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
7import com.fs.starfarer.api.characters.ShipSkillEffect;
8import com.fs.starfarer.api.characters.SkillSpecAPI;
9import com.fs.starfarer.api.combat.MutableShipStatsAPI;
10import com.fs.starfarer.api.combat.ShipAPI;
11import com.fs.starfarer.api.combat.ShipAPI.HullSize;
12import com.fs.starfarer.api.fleet.FleetMemberAPI;
13import com.fs.starfarer.api.impl.campaign.ids.Strings;
14import com.fs.starfarer.api.ui.TooltipMakerAPI;
15import com.fs.starfarer.api.util.Misc;
26 if (ship ==
null)
return false;
30 if (member ==
null)
return false;
44 float timeMult = 1f / ((100f + rateBonus) / 100f);
59 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
60 stats.getFighterRefitTimeMult().unmodifyMult(
id);
63 public String getEffectDescription(
float level) {
67 public void createCustomDescription(MutableCharacterStatsAPI stats, SkillSpecAPI skill,
68 TooltipMakerAPI info,
float width) {
74 info.addPara(
"+%s faster fighter replacement rate (maximum: %s)", 0f,
hc,
hc,
75 "" + (
int) rateBonus +
"%",
80 info.addPara(
"+%s ship top speed (maximum: %s)", 0f,
hc,
hc,
81 "" + (
int) speedBonus +
"%",
85 info.addPara(
indent +
"Effect increased by %s for ships with officers, including flagship",
87 "" + Misc.getRoundedValueMaxOneAfterDecimal(
OFFICER_MULT) + Strings.X);
90 public ScopeDescription getScopeDescription() {
91 return ScopeDescription.ALL_CARRIERS;
void modifyPercent(String source, float value)
void modifyMult(String source, float value)
static FleetDataAPI getFleetData(MutableShipStatsAPI stats)
FleetTotalItem getFighterBaysTotal()
static boolean hasFighterBays(MutableShipStatsAPI stats)
void init(MutableCharacterStatsAPI stats, SkillSpecAPI skill)
float computeAndCacheThresholdBonus(MutableShipStatsAPI stats, String key, float maxBonus, ThresholdBonusType type)
void addFighterBayThresholdInfo(TooltipMakerAPI info, FleetDataAPI data)
static float REPLACEMENT_RATE_PERCENT
static float OFFICER_MULT
static boolean isOfficer(MutableShipStatsAPI stats)
static float TOP_SPEED_PERCENT
MutableStat getFighterRefitTimeMult()
MutableStat getMaxSpeed()
CombatEntityAPI getEntity()
FleetMemberAPI getFleetMember()