001package com.fs.starfarer.api.impl.campaign.skills; 002 003import com.fs.starfarer.api.campaign.FleetDataAPI; 004import com.fs.starfarer.api.characters.FleetTotalItem; 005import com.fs.starfarer.api.characters.FleetTotalSource; 006import com.fs.starfarer.api.characters.MutableCharacterStatsAPI; 007import com.fs.starfarer.api.characters.ShipSkillEffect; 008import com.fs.starfarer.api.characters.SkillSpecAPI; 009import com.fs.starfarer.api.combat.MutableShipStatsAPI; 010import com.fs.starfarer.api.combat.ShipAPI.HullSize; 011import com.fs.starfarer.api.ui.TooltipMakerAPI; 012 013public class WeaponDrills { 014 015 public static float DAMAGE_PERCENT = 10; 016 017 public static class Level1 extends BaseSkillEffectDescription implements ShipSkillEffect, FleetTotalSource { 018 019 public FleetTotalItem getFleetTotalItem() { 020 return getCombatOPTotal(); 021 } 022 023 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String id, float level) { 024 if (!isCivilian(stats)) { 025 float damBonus = computeAndCacheThresholdBonus(stats, "wd_dam", DAMAGE_PERCENT, ThresholdBonusType.OP_LOW); 026 stats.getBallisticWeaponDamageMult().modifyPercent(id, damBonus); 027 stats.getEnergyWeaponDamageMult().modifyPercent(id, damBonus); 028 stats.getMissileWeaponDamageMult().modifyPercent(id, damBonus); 029 } 030 } 031 032 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String id) { 033 stats.getBallisticWeaponDamageMult().unmodifyPercent(id); 034 stats.getEnergyWeaponDamageMult().unmodifyPercent(id); 035 stats.getMissileWeaponDamageMult().unmodifyPercent(id); 036 } 037 038 public String getEffectDescription(float level) { 039 return null; 040 } 041 042 public void createCustomDescription(MutableCharacterStatsAPI stats, SkillSpecAPI skill, 043 TooltipMakerAPI info, float width) { 044 init(stats, skill); 045 046 FleetDataAPI data = getFleetData(null); 047 float damBonus = computeAndCacheThresholdBonus(data, stats, "wd_dam", DAMAGE_PERCENT, ThresholdBonusType.OP_LOW); 048 049 info.addPara("+%s weapon damage for combat ships (maximum: %s)", 0f, hc, hc, 050 "" + (int) damBonus + "%", 051 "" + (int) DAMAGE_PERCENT + "%"); 052 addOPThresholdInfo(info, data, stats, OP_LOW_THRESHOLD); 053 054 //info.addSpacer(5f); 055 } 056 057 public ScopeDescription getScopeDescription() { 058 return ScopeDescription.ALL_SHIPS; 059 } 060 } 061 062 063 064} 065 066 067 068 069