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) {
33 stats.getBallisticWeaponDamageMult().unmodifyPercent(id);
34 stats.getEnergyWeaponDamageMult().unmodifyPercent(id);
35 stats.getMissileWeaponDamageMult().unmodifyPercent(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 addOPThresholdInfo(TooltipMakerAPI info, FleetDataAPI data, MutableCharacterStatsAPI cStats)
void init(MutableCharacterStatsAPI stats, SkillSpecAPI skill)
float computeAndCacheThresholdBonus(MutableShipStatsAPI stats, String key, float maxBonus, ThresholdBonusType type)