舰船的改装机库部署点惩罚修改
舰船的改装机库部署点惩罚怎么修改为0啊,想问问大佬的改法,找到了ConvertedHangarNoPenalty这个文件但是把1改成0没有反应stats.getDynamic().getMod(Stats.CONVERTED_HANGAR_NO_DP_INCREASE).modifyFlat(id, 0);泥嚎,我将我的思路提供给你,希望可以帮助你解决这个问题! 残殇 发表于 2025-3-1 14:08
泥嚎,我将我的思路提供给你,希望可以帮助你解决这个问题!
首先在starsector-core\data\hullmods下找到hull_mods.csv这个文件,打开以后搜索“改装机库”,可以看到与其相关的各项参数,其中“com.fs.starfarer.api.impl.hullmods.ConvertedHangar”应当是其代码实现的地方,你可以在starsector-core下的starfarer.api.zip中寻找相应的代码,并加以修改。 十分感谢你的指点,我找错了方向,根据你的提示我将改装机库的惩罚分为了两类方法:
1. 全局调整 DP 惩罚比例(简单修改)
修改 FIGHTER_OP_PER_DP 的数值即可改变 OP 到 DP 的转换比例。
java
public static float FIGHTER_OP_PER_DP = 10; // 原值为5,改为10后 DP 惩罚减半
效果:每 10 OP 的飞机会增加 1 DP(原为每 5 OP)。
适用场景:希望全面降低所有舰船的 DP 惩罚。
2. 按舰船类型差异化调整
根据舰船类型(如巡洋舰、主力舰)设置不同的 OP/DP 比例。
java
public static int computeDPModifier(float fighterOPCost, HullSize hullSize) {
float opPerDP = FIGHTER_OP_PER_DP;
if (hullSize == HullSize.CRUISER) {
opPerDP = 15; // 巡洋舰每15 OP 增加1 DP
} else if (hullSize == HullSize.CAPITAL_SHIP) {
opPerDP = 20; // 主力舰每20 OP 增加1 DP
}
int mod = (int) Math.ceil(fighterOPCost / opPerDP);
return Math.max(mod, MIN_DP);
}
在 applyEffectsBeforeShipCreation 中调用时传入 hullSize:
java
float dpMod = computeDPModifier(getFighterOPCost(stats), hullSize);
效果:巡洋舰和主力舰会有更低的 DP 惩罚。
适用场景:希望大型舰船承受更少惩罚。
配置建议
降低全局惩罚:推荐方案 1,简单有效。
差异化调整:方案 2 可让大型舰船更灵活。
残殇 发表于 2025-3-1 14:08
泥嚎,我将我的思路提供给你,希望可以帮助你解决这个问题!
感谢你提供的思路我去试试
页:
[1]