Starsector API
Loading...
Searching...
No Matches
WeaponDrills.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.skills;
2
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.HullSize;
11import com.fs.starfarer.api.ui.TooltipMakerAPI;
12
13public class WeaponDrills {
14
15 public static float DAMAGE_PERCENT = 10;
16
17 public static class Level1 extends BaseSkillEffectDescription implements ShipSkillEffect, FleetTotalSource {
18
19 public FleetTotalItem getFleetTotalItem() {
20 return getCombatOPTotal();
21 }
22
23 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String id, float level) {
24 if (!isCivilian(stats)) {
25 float damBonus = computeAndCacheThresholdBonus(stats, "wd_dam", DAMAGE_PERCENT, ThresholdBonusType.OP_LOW);
26 stats.getBallisticWeaponDamageMult().modifyPercent(id, damBonus);
27 stats.getEnergyWeaponDamageMult().modifyPercent(id, damBonus);
28 stats.getMissileWeaponDamageMult().modifyPercent(id, damBonus);
29 }
30 }
31
32 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String id) {
36 }
37
38 public String getEffectDescription(float level) {
39 return null;
40 }
41
42 public void createCustomDescription(MutableCharacterStatsAPI stats, SkillSpecAPI skill,
43 TooltipMakerAPI info, float width) {
44 init(stats, skill);
45
46 FleetDataAPI data = getFleetData(null);
47 float damBonus = computeAndCacheThresholdBonus(data, stats, "wd_dam", DAMAGE_PERCENT, ThresholdBonusType.OP_LOW);
48
49 info.addPara("+%s weapon damage for combat ships (maximum: %s)", 0f, hc, hc,
50 "" + (int) damBonus + "%",
51 "" + (int) DAMAGE_PERCENT + "%");
52 addOPThresholdInfo(info, data, stats, OP_LOW_THRESHOLD);
53
54 //info.addSpacer(5f);
55 }
56
57 public ScopeDescription getScopeDescription() {
58 return ScopeDescription.ALL_SHIPS;
59 }
60 }
61
62
63
64}
65
66
67
68
69
void modifyPercent(String source, float value)
void addOPThresholdInfo(TooltipMakerAPI info, FleetDataAPI data, MutableCharacterStatsAPI cStats)
void init(MutableCharacterStatsAPI stats, SkillSpecAPI skill)
float computeAndCacheThresholdBonus(MutableShipStatsAPI stats, String key, float maxBonus, ThresholdBonusType type)
LabelAPI addPara(String format, float pad, Color hl, String... highlights)