|
本帖最后由 一碗汤 于 2022-1-28 21:54 编辑
主要内容为:部分基础数据后的中文备注
注://线后的用不了我不懂
模板:stats.get*().modifyMult(id, ZYCC)
stats.get*()中*应为//后说明的数据
modifyFlat是为数据加减(id,)中的数
modifyPercent是以原数据的百分比为数据加减(id,)中的数,如果为1f则增加原始数据的百分之1,如果为-1f则减少原始数据的百分之1
modifyMult是以上两个计算后为最终数据乘以(id,)中的数 |
public class zycc0 extends BaseHullMod {
public static final float ZYCC = 2f;
public static String MR_DATA_KEY = "core_reload_data_key";
public void applyEffectsToFighterSpawnedByShip(ShipAPI fighter, ShipAPI ship, String id) {//战机效果
MutableShipStatsAPI stats = fighter.getMutableStats();//有它才能修改战机
//自身
stats.getCRPerDeploymentPercent().modifyMult(id, 1f/ZYCC);//部署消耗战备
stats.getBaseCRRecoveryRatePercentPerDay().modifyMult(id, ZYCC);//战备恢复速率
stats.getSuppliesToRecover().modifyMult(id, 1f/ZYCC);//部署补给成本
stats.getPeakCRDuration().modifyMult(id, ZYCC);//峰值时间
stats.getSuppliesPerMonth().modifyMult(id, 1f/ZYCC);//维护时所消耗的补给量/月
stats.getCRLossPerSecondPercent().modifyMult(id, 1f/ZYCC);//战备值(CR)衰减的速率
stats.getCargoMod().modifyMult(id, ZYCC);//载货量
stats.getMaxCrewMod().modifyMult(id, ZYCC);//最大载员
stats.getMinCrewMod().modifyMult(id, 1f/ZYCC);//必要载员
stats.getCrewLossMult().modifyMult(id, 1f/ZYCC);//人员战损
stats.getFuelMod().modifyMult(id, ZYCC);//燃料容量
stats.getMaxBurnLevel().modifyFlat(id, ZYCC);//最大宇宙航速
stats.getFuelUseMod().modifyMult(id, 1f/ZYCC);//燃料消耗
stats.getSightRadiusMod().modifyMult(id, ZYCC);//探测器范围
stats.getSensorProfile().modifyMult(id, 1f/ZYCC);//被侦测范围
stats.getSensorStrength().modifyMult(id, ZYCC);//探测器强度
stats.getHullBonus().modifyMult(id, ZYCC);//结构
stats.getHullDamageTakenMult().modifyMult(id, 1f/ZYCC);//结构所受伤害
stats.getHullCombatRepairRatePercentPerSecond().modifyMult(id, ZYCC);//船体战斗修复率百分比每秒
stats.getMaxCombatHullRepairFraction().modifyMult(id, ZYCC);//最大战斗船体修复分数
//getMaxHullRepairFraction()//最大船体修复
//getHullRepairRatePercentPerSecond()//船体修复率百分比每秒
stats.getArmorBonus().modifyMult(id, ZYCC);//装甲
stats.getArmorDamageTakenMult().modifyMult(id, 1f/ZYCC);//装甲所受伤害
stats.getEffectiveArmorBonus().modifyMult(id, ZYCC);//有效装甲加成
//stats.getDynamic().stats.getMass().modifyMult(id, ZYCC);//质量
stats.getFluxCapacity().modifyMult(id, ZYCC);//幅能容量
stats.getFluxDissipation().modifyMult(id, ZYCC);//幅能耗散
stats.getVentRateMult().modifyMult(id, ZYCC);//强制幅能排散速率
stats.getHardFluxDissipationFraction().modifyMult(id, ZYCC);//硬幅能耗散速率
stats.getOverloadTimeMod().modifyMult(id, 1f/ZYCC);//过载时间
stats.getPhaseCloakCooldownBonus().modifyMult(id, 1f/ZYCC);//相位线圈的冷却时间
stats.getDynamic().getStat(Stats.PHASE_TIME_BONUS_MULT).modifyMult(id, ZYCC);//相位时间增益
stats.getFighterRefitTimeMult().modifyMult(id, 1f/ZYCC);//战机联队重返战场所需要的时间
stats.getDynamic().getStat(Stats.REPLACEMENT_RATE_DECREASE_MULT).modifyMult(id, 1f/ZYCC);//战机损失时整备下降速率
stats.getDynamic().getStat(Stats.REPLACEMENT_RATE_INCREASE_MULT).modifyMult(id, ZYCC);//整备恢复速率
stats.getFighterWingRange().modifyMult(id, ZYCC);//战机联队的最大交战距离
stats.getHangarSpaceMod().modifyMult(id, ZYCC);//机库空间模组
stats.getNumFighterBays().modifyMult(id, ZYCC);//机库数
stats.getZeroFluxSpeedBoost().modifyMult(id, ZYCC);//零通量加速
stats.getMaxSpeed().modifyMult(id, ZYCC);//舰船战斗航速
stats.getAcceleration().modifyMult(id, ZYCC);//舰船加速度
stats.getDeceleration().modifyMult(id, ZYCC);//舰船减速度
stats.getTurnAcceleration().modifyMult(id, ZYCC);//舰船转向加速
stats.getMaxTurnRate().modifyMult(id, ZYCC);//舰船转向角速
stats.getShieldUpkeepMult().modifyMult(id, 1f/ZYCC);//护盾幅能消耗
stats.getShieldDamageTakenMult().modifyMult(id, 1f/ZYCC);//护盾所受伤害
stats.getShieldArcBonus().modifyMult(id, ZYCC);//护盾角度
stats.getShieldTurnRateMult().modifyMult(id, ZYCC);//护盾转向速度
stats.getShieldUnfoldRateMult().modifyMult(id, ZYCC);//护盾展开速度
stats.getSystemCooldownBonus().modifyMult(id, 1f/ZYCC);//系统冷却时间
stats.getSystemRegenBonus().modifyMult(id, ZYCC);//系统充能速度
stats.getSystemUsesBonus().modifyMult(id, ZYCC);//系统次数
stats.getSystemRangeBonus().modifyMult(id, ZYCC);//系统范围
stats.getWeaponDamageTakenMult().modifyMult(id, 1f/ZYCC);//武器所受伤害
stats.getEngineDamageTakenMult().modifyMult(id, 1f/ZYCC);//引擎所受伤害
stats.getWeaponHealthBonus().modifyMult(id, ZYCC);//武器生命值
stats.getEngineHealthBonus().modifyMult(id, ZYCC);//引擎生命值
stats.getEmpDamageTakenMult().modifyMult(id, 1f/ZYCC);//武器引擎所受Emp伤害
stats.getCombatWeaponRepairTimeMult().modifyMult(id, 1f/ZYCC);//武器修理时间
stats.getCombatEngineRepairTimeMult().modifyMult(id, 1f/ZYCC);//引擎修理时间
//武器
stats.getBallisticAmmoBonus().modifyMult(id, ZYCC);//实弹武器备弹量
//stats.getBallisticAmmoRegenMult().modifyMult(id, ZYCC);//实弹武器填装速度
//stats.getBallisticProjectileSpeedMult().modifyMult(id, ZYCC);//实弹武器子弹速度
stats.getBallisticRoFMult().modifyMult(id, ZYCC);//实弹武器射速
stats.getBallisticWeaponDamageMult().modifyMult(id, ZYCC);//实弹武器伤害
stats.getBallisticWeaponFluxCostMod().modifyMult(id, 1f/ZYCC);//实弹武器幅能消耗
stats.getBallisticWeaponRangeBonus().modifyMult(id, ZYCC);//实弹武器射程
stats.getEnergyAmmoBonus().modifyMult(id, ZYCC);//能量武器备弹量
//stats.getEnergyAmmoRegenMult().modifyMult(id, ZYCC);//能量武器填装速度
//stats.getEnergyProjectileSpeedMult().modifyMult(id, ZYCC);//能量武器子弹速度
stats.getEnergyRoFMult().modifyMult(id, ZYCC);//能量武器射速
stats.getEnergyWeaponDamageMult().modifyMult(id, ZYCC);//能量武器伤害
stats.getEnergyWeaponFluxCostMod().modifyMult(id, 1f/ZYCC);//能量武器幅能消耗
stats.getEnergyWeaponRangeBonus().modifyMult(id, ZYCC);//能量武器射程
//光束武器吃能量武器加成
//stats.getBeamWeaponDamageMult().modifyMult(id, ZYCC);//光束武器伤害
//stats.getBeamWeaponFluxCostMult().modifyMult(id, 1f/ZYCC);//光束武器幅能消耗
//stats.getBeamWeaponRangeBonus().modifyMult(id, ZYCC);//光束武器射程
stats.getMissileAmmoBonus().modifyMult(id, ZYCC);//鱼雷武器备弹量
//stats.getMissileAmmoRegenMult().modifyMult(id, ZYCC);//鱼雷武器填装速度
stats.getMissileRoFMult().modifyMult(id, ZYCC);//鱼雷武器射速
stats.getMissileMaxSpeedBonus().modifyMult(id, ZYCC);//鱼雷航速
stats.getMissileAccelerationBonus().modifyMult(id, ZYCC);//鱼雷加速度
stats.getMissileMaxTurnRateBonus().modifyMult(id, ZYCC);//鱼雷转向加速
stats.getMissileTurnAccelerationBonus().modifyMult(id, ZYCC);//鱼雷转向角速
stats.getMissileHealthBonus().modifyMult(id, ZYCC);//鱼雷生命值
stats.getMissileWeaponDamageMult().modifyMult(id, ZYCC);//鱼雷武器伤害
stats.getMissileWeaponFluxCostMod().modifyMult(id, 1f/ZYCC);//鱼雷武器幅能消耗
stats.getMissileWeaponRangeBonus().modifyMult(id, ZYCC);//鱼雷武器射程
stats.getEccmChance().modifyMult(id, 1f/ZYCC);//导弹被电子反制或热诱弹拦截的概率
stats.getAutofireAimAccuracy().modifyMult(id, ZYCC);//自动射击精度
//截止
stats.getSightRadiusMod().modifyMult(id, ZYCC);//战斗探测范围
stats.getSensorStrength().modifyMult(id, ZYCC);//战斗探测强度
stats.getSensorProfile().modifyMult(id, 1f/ZYCC);//被侦测范围
//不知道生不效生效
stats.getMissileGuidance().modifyFlat(id, ZYCC);//鱼雷制导
//截止
fighter.setHeavyDHullOverlay();//有它才能修改战机
}
public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {//舰船效果
//不知道生不效生效
stats.getMissileGuidance().modifyFlat(id, ZYCC);//鱼雷制导
//截止
//武器
stats.getBallisticAmmoBonus().modifyMult(id, ZYCC);//实弹武器备弹量
//stats.getBallisticAmmoRegenMult().modifyMult(id, ZYCC);//实弹武器填装速度
//stats.getBallisticProjectileSpeedMult().modifyMult(id, ZYCC);//实弹武器子弹速度
stats.getBallisticRoFMult().modifyMult(id, ZYCC);//实弹武器射速
stats.getBallisticWeaponDamageMult().modifyMult(id, ZYCC);//实弹武器伤害
stats.getBallisticWeaponFluxCostMod().modifyMult(id, 1f/ZYCC);//实弹武器幅能消耗
stats.getBallisticWeaponRangeBonus().modifyMult(id, ZYCC);//实弹武器射程
stats.getEnergyAmmoBonus().modifyMult(id, ZYCC);//能量武器备弹量
//stats.getEnergyAmmoRegenMult().modifyMult(id, ZYCC);//能量武器填装速度
//stats.getEnergyProjectileSpeedMult().modifyMult(id, ZYCC);//能量武器子弹速度
stats.getEnergyRoFMult().modifyMult(id, ZYCC);//能量武器射速
stats.getEnergyWeaponDamageMult().modifyMult(id, ZYCC);//能量武器伤害
stats.getEnergyWeaponFluxCostMod().modifyMult(id, 1f/ZYCC);//能量武器幅能消耗
stats.getEnergyWeaponRangeBonus().modifyMult(id, ZYCC);//能量武器射程
//光束武器吃能量武器加成
//stats.getBeamWeaponDamageMult().modifyMult(id, ZYCC);//光束武器伤害
//stats.getBeamWeaponFluxCostMult().modifyMult(id, 1f/ZYCC);//光束武器幅能消耗
//stats.getBeamWeaponRangeBonus().modifyMult(id, ZYCC);//光束武器射程
stats.getMissileAmmoBonus().modifyMult(id, ZYCC);//鱼雷武器备弹量
//stats.getMissileAmmoRegenMult().modifyMult(id, ZYCC);//鱼雷武器填装速度
stats.getMissileRoFMult().modifyMult(id, ZYCC);//鱼雷武器射速
stats.getMissileMaxSpeedBonus().modifyMult(id, ZYCC);//鱼雷航速
stats.getMissileAccelerationBonus().modifyMult(id, ZYCC);//鱼雷加速度
stats.getMissileMaxTurnRateBonus().modifyMult(id, ZYCC);//鱼雷转向加速
stats.getMissileTurnAccelerationBonus().modifyMult(id, ZYCC);//鱼雷转向角速
stats.getMissileHealthBonus().modifyMult(id, ZYCC);//鱼雷生命值
stats.getMissileWeaponDamageMult().modifyMult(id, ZYCC);//鱼雷武器伤害
stats.getMissileWeaponFluxCostMod().modifyMult(id, 1f/ZYCC);//鱼雷武器幅能消耗
stats.getMissileWeaponRangeBonus().modifyMult(id, ZYCC);//鱼雷武器射程
stats.getEccmChance().modifyMult(id, 1f/ZYCC);//导弹被电子反制或热诱弹拦截的概率
stats.getProjectileSpeedMult().modifyMult(id, ZYCC);//弹丸飞行速度
stats.getMaxRecoilMult().modifyMult(id, 1f/ZYCC);//武器射击时的最大后坐力
stats.getRecoilPerShotMult().modifyMult(id, 1f/ZYCC);//武器射击时的后坐力衰减
stats.getRecoilDecayMult().modifyMult(id, 1f/ZYCC);//武器射击时的后坐力衰减
stats.getAutofireAimAccuracy().modifyMult(id, ZYCC);//自动射击精度
stats.getDamageToFighters().modifyMult(id, ZYCC);//对战机伤害
stats.getDamageToMissiles().modifyMult(id, ZYCC);//对鱼雷伤害
stats.getWeaponTurnRateBonus().modifyMult(id, ZYCC);//非光束炮台转向速度
stats.getBeamWeaponTurnRateBonus().modifyMult(id, ZYCC);//光束炮台转向速度
//截止
//自身
stats.getCRPerDeploymentPercent().modifyMult(id, 1f/ZYCC);//部署消耗战备
stats.getBaseCRRecoveryRatePercentPerDay().modifyMult(id, ZYCC);//战备恢复速率
stats.getSuppliesToRecover().modifyMult(id, 1f/ZYCC);//部署补给成本
stats.getPeakCRDuration().modifyMult(id, ZYCC);//峰值时间
stats.getSuppliesPerMonth().modifyMult(id, 1f/ZYCC);//维护时所消耗的补给量/月
stats.getCRLossPerSecondPercent().modifyMult(id, 1f/ZYCC);//战备值(CR)衰减的速率
stats.getCargoMod().modifyMult(id, ZYCC);//载货量
stats.getMaxCrewMod().modifyMult(id, ZYCC);//最大载员
stats.getMinCrewMod().modifyMult(id, 1f/ZYCC);//必要载员
stats.getCrewLossMult().modifyMult(id, 1f/ZYCC);//人员战损
stats.getFuelMod().modifyMult(id, ZYCC);//燃料容量
stats.getMaxBurnLevel().modifyFlat(id, ZYCC);//最大宇宙航速
stats.getFuelUseMod().modifyMult(id, 1f/ZYCC);//燃料消耗
stats.getSightRadiusMod().modifyMult(id, ZYCC);//探测器范围
stats.getSensorProfile().modifyMult(id, 1f/ZYCC);//被侦测范围
stats.getSensorStrength().modifyMult(id, ZYCC);//探测器强度
stats.getHullBonus().modifyMult(id, ZYCC);//结构
stats.getHullDamageTakenMult().modifyMult(id, 1f/ZYCC);//结构所受伤害
stats.getHullCombatRepairRatePercentPerSecond().modifyMult(id, ZYCC);//船体战斗修复率百分比每秒
stats.getMaxCombatHullRepairFraction().modifyMult(id, ZYCC);//最大战斗船体修复分数
//getMaxHullRepairFraction()//最大船体修复
//getHullRepairRatePercentPerSecond()//船体修复率百分比每秒
stats.getArmorBonus().modifyMult(id, ZYCC);//装甲
stats.getArmorDamageTakenMult().modifyMult(id, 1f/ZYCC);//装甲所受伤害
stats.getEffectiveArmorBonus().modifyMult(id, ZYCC);//有效装甲加成
//stats.getDynamic().stats.getMass().modifyMult(id, ZYCC);//质量
stats.getFluxCapacity().modifyMult(id, ZYCC);//幅能容量
stats.getFluxDissipation().modifyMult(id, ZYCC);//幅能耗散
stats.getVentRateMult().modifyMult(id, ZYCC);//强制幅能排散速率
stats.getHardFluxDissipationFraction().modifyMult(id, ZYCC);//硬幅能耗散速率
stats.getOverloadTimeMod().modifyMult(id, 1f/ZYCC);//过载时间
stats.getPhaseCloakCooldownBonus().modifyMult(id, 1f/ZYCC);//相位线圈的冷却时间
stats.getDynamic().getStat(Stats.PHASE_TIME_BONUS_MULT).modifyMult(id, ZYCC);//相位时间增益
stats.getFighterRefitTimeMult().modifyMult(id, 1f/ZYCC);//战机联队重返战场所需要的时间
stats.getDynamic().getStat(Stats.REPLACEMENT_RATE_DECREASE_MULT).modifyMult(id, 1f/ZYCC);//战机损失时整备下降速率
stats.getDynamic().getStat(Stats.REPLACEMENT_RATE_INCREASE_MULT).modifyMult(id, ZYCC);//整备恢复速率
stats.getFighterWingRange().modifyMult(id, ZYCC);//战机联队的最大交战距离
stats.getHangarSpaceMod().modifyMult(id, ZYCC);//机库空间模组
stats.getNumFighterBays().modifyMult(id, ZYCC);//机库数
stats.getZeroFluxSpeedBoost().modifyMult(id, ZYCC);//零通量加速
stats.getMaxSpeed().modifyMult(id, ZYCC);//舰船战斗航速
stats.getAcceleration().modifyMult(id, ZYCC);//舰船加速度
stats.getDeceleration().modifyMult(id, ZYCC);//舰船减速度
stats.getTurnAcceleration().modifyMult(id, ZYCC);//舰船转向加速
stats.getMaxTurnRate().modifyMult(id, ZYCC);//舰船转向角速
stats.getShieldUpkeepMult().modifyMult(id, 1f/ZYCC);//护盾幅能消耗
stats.getShieldDamageTakenMult().modifyMult(id, 1f/ZYCC);//护盾所受伤害
stats.getShieldArcBonus().modifyMult(id, ZYCC);//护盾角度
stats.getShieldTurnRateMult().modifyMult(id, ZYCC);//护盾转向速度
stats.getShieldUnfoldRateMult().modifyMult(id, ZYCC);//护盾展开速度
stats.getSystemCooldownBonus().modifyMult(id, 1f/ZYCC);//系统冷却时间
stats.getSystemRegenBonus().modifyMult(id, ZYCC);//系统充能速度
stats.getSystemUsesBonus().modifyMult(id, ZYCC);//系统次数
stats.getSystemRangeBonus().modifyMult(id, ZYCC);//系统范围
stats.getWeaponDamageTakenMult().modifyMult(id, 1f/ZYCC);//武器所受伤害
stats.getEngineDamageTakenMult().modifyMult(id, 1f/ZYCC);//引擎所受伤害
stats.getWeaponHealthBonus().modifyMult(id, ZYCC);//武器生命值
stats.getEngineHealthBonus().modifyMult(id, ZYCC);//引擎生命值
stats.getEmpDamageTakenMult().modifyMult(id, 1f/ZYCC);//武器引擎所受Emp伤害
stats.getCombatWeaponRepairTimeMult().modifyMult(id, 1f/ZYCC);//武器修理时间
stats.getCombatEngineRepairTimeMult().modifyMult(id, 1f/ZYCC);//引擎修理时间
stats.getDynamic().getMod(Stats.MAX_LOGISTICS_HULLMODS_MOD).modifyMult(id, ZYCC);//可装备后勤船体模组
stats.getDynamic().getStat(Stats.ELECTRONIC_WARFARE_PENALTY_MULT).modifyMult(id, 1f/ZYCC);//电子战失利所造成的武器射程减少
//装配点
//stats.getDynamic().getMod("hullmods_mod").modifyMult(id, 1f/ZYCC);//船插
stats.getDynamic().getMod("small_missile_mod").modifyMult(id, 1f/ZYCC);//小鱼雷
stats.getDynamic().getMod("medium_missile_mod").modifyMult(id, 1f/ZYCC);//中鱼雷
stats.getDynamic().getMod("large_missile_mod").modifyMult(id, 1f/ZYCC);//大鱼雷
stats.getDynamic().getMod("small_ballistic_mod").modifyMult(id, 1f/ZYCC);//小实弹
stats.getDynamic().getMod("medium_ballistic_mod").modifyMult(id, 1f/ZYCC);//中实弹
stats.getDynamic().getMod("large_ballistic_mod").modifyMult(id, 1f/ZYCC);//大实弹
stats.getDynamic().getMod("small_energy_mod").modifyMult(id, 1f/ZYCC);//小能量
stats.getDynamic().getMod("medium_energy_mod").modifyMult(id, 1f/ZYCC);//中能量
stats.getDynamic().getMod("large_energy_mod").modifyMult(id, 1f/ZYCC);//大能量
stats.getDynamic().getMod(Stats.BOMBER_COST_MOD).modifyMult(id, 1f/ZYCC);//轰炸机
stats.getDynamic().getMod(Stats.FIGHTER_COST_MOD).modifyMult(id, 1f/ZYCC);//战斗机
stats.getDynamic().getMod(Stats.INTERCEPTOR_COST_MOD).modifyMult(id, 1f/ZYCC);//拦截机
stats.getDynamic().getMod(Stats.SUPPORT_COST_MOD).modifyMult(id, 1f/ZYCC);//支援机
}
public String getDescriptionParam(int index, HullSize hullSize, ShipAPI ship) {
if (index == 0) return "" + (ZYCC-1f);
// if (index == 0) return "" + (int)((ZYCC - 1f) * 100f) + "%";
// if (index == 0) return "" + (int)((ZYCC - 1f) * 100f);
return null;
}
@Override
public boolean affectsOPCosts() {//部分属性需要它才能修改
return true;
}
public static class PeriodicReloadData {
IntervalUtil interval = new IntervalUtil(10f, 15f);//弹药填装时间s/次//目前为10秒或15秒
}
public void advanceInCombat(ShipAPI ship, float amount) {//目前未设置装填弹药的种类或装填条件限制,即随时全弹药填装
super.advanceInCombat(ship, amount);
if (!ship.isAlive()) return;
CombatEngineAPI engine = Global.getCombatEngine();
String key = MR_DATA_KEY + "_" + ship.getId();
PeriodicReloadData data = (PeriodicReloadData) engine.getCustomData().get(key);
if (data == null) {
data = new PeriodicReloadData();
engine.getCustomData().put(key, data);
}
data.interval.advance(amount);
if (data.interval.intervalElapsed()) {
for (WeaponAPI w : ship.getAllWeapons()) {
if (w.usesAmmo() && w.getAmmo() < w.getMaxAmmo()) {
w.setAmmo(w.getMaxAmmo());
}
}
}
}
}
|
|