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