1package com.fs.starfarer.api.impl.campaign.skills;
5import com.fs.starfarer.api.campaign.FleetDataAPI;
6import com.fs.starfarer.api.characters.FleetStatsSkillEffect;
7import com.fs.starfarer.api.characters.FleetTotalItem;
8import com.fs.starfarer.api.characters.FleetTotalSource;
9import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
10import com.fs.starfarer.api.characters.ShipSkillEffect;
11import com.fs.starfarer.api.characters.SkillSpecAPI;
12import com.fs.starfarer.api.combat.MutableShipStatsAPI;
13import com.fs.starfarer.api.combat.ShipAPI.HullSize;
14import com.fs.starfarer.api.fleet.MutableFleetStatsAPI;
15import com.fs.starfarer.api.impl.campaign.ids.Stats;
16import com.fs.starfarer.api.ui.TooltipMakerAPI;
17import com.fs.starfarer.api.util.Misc;
48 public String getEffectDescription(
float level) {
59 info.
addPara(
"+%s weapon damage for combat ships (maximum: %s)", 0f,
hc,
hc,
60 "" + (
int) damBonus +
"%",
67 public ScopeDescription getScopeDescription() {
68 return ScopeDescription.ALL_SHIPS;
82 public void createCustomDescription(MutableCharacterStatsAPI stats,
SkillSpecAPI skill,
91 info.
addPara(
"+%s effectiveness of ground operations such as raids", 0f,
hc,
hc,
95 public String getEffectDescription(
float level) {
96 return "+" + (int)(
ATTACK_BONUS) +
"% effectiveness of ground operations such as raids";
99 public String getEffectPerLevelDescription() {
103 public ScopeDescription getScopeDescription() {
104 return ScopeDescription.FLEET;
108 public static class Level3
implements FleetStatsSkillEffect {
109 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
110 stats.getDynamic().getStat(Stats.PLANETARY_OPERATIONS_CASUALTIES_MULT).modifyMult(
id,
CASUALTIES_MULT,
"Tactical drills");
113 public void unapply(MutableFleetStatsAPI stats, String
id) {
114 stats.getDynamic().getStat(Stats.PLANETARY_OPERATIONS_CASUALTIES_MULT).unmodifyMult(
id);
117 public String getEffectDescription(
float level) {
118 return "-" + (int)Math.round((1f -
CASUALTIES_MULT) * 100f) +
"% marine casualties suffered during ground operations such as raids";
121 public String getEffectPerLevelDescription() {
125 public ScopeDescription getScopeDescription() {
126 return ScopeDescription.FLEET;
void modifyPercent(String source, float value)
void unmodifyPercent(String source)
void modifyPercent(String source, float value)
void unmodifyPercent(String source)
static final String PLANETARY_OPERATIONS_MOD
static FleetDataAPI getFleetData(MutableShipStatsAPI stats)
FleetTotalItem getCombatOPTotal()
void addOPThresholdInfo(TooltipMakerAPI info, FleetDataAPI data, MutableCharacterStatsAPI cStats)
void init(MutableCharacterStatsAPI stats, SkillSpecAPI skill)
static boolean isCivilian(MutableShipStatsAPI stats)
float computeAndCacheThresholdBonus(MutableShipStatsAPI stats, String key, float maxBonus, ThresholdBonusType type)
static float OP_THRESHOLD
static float DAMAGE_PERCENT
static float CASUALTIES_MULT
static Color getBasePlayerColor()
static Color getGrayColor()
MutableStat getMissileWeaponDamageMult()
MutableStat getBallisticWeaponDamageMult()
MutableStat getEnergyWeaponDamageMult()
DynamicStatsAPI getDynamic()
StatBonus getMod(String id)