|
|
发表于 2026-9-27 13:02:13
|
显示全部楼层
[Thread-2] ERROR com.fs.starfarer.combat.CombatMain - java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Float (java.lang.String and java.lang.Float are in module java.base of loader 'bootstrap')
java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Float (java.lang.String and java.lang.Float are in module java.base of loader 'bootstrap')
at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.beginTable(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.beginTable(Unknown Source)
at data.hullmods.FSD_HarmonicFluxWheel.addPostDescriptionSection(FSD_HarmonicFluxWheel.java:86)
at com.fs.starfarer.api.campaign.impl.items.ModSpecItemPlugin.createTooltip(ModSpecItemPlugin.java:217)
at com.fs.starfarer.campaign.ui.trade.CargoDataGridView$1.createImpl(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.create(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.beforeShown(Unknown Source)
at com.fs.starfarer.ui.OOOo.showTooltip(Unknown Source)
at com.fs.starfarer.ui.O0Oo.??0000(Unknown Source)
at com.fs.starfarer.ui.O0Oo.processInput(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.campaign.ui.trade.CargoDataGridView.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.g$Oo.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.g.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.campaign.ui.G.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.class.I.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.oo0O.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui._.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.oo0O.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.o0Oo.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.oo0O.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.L.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.ui.interfacenew.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.interfacenew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.OOOo.processInput(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.processInput(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
----------------------------------------------------------------------
我自己修了一下,修复如下
原因:beginTable 和 addRow 中,String 和 Float 混用导致类型转换错误
----------------------------------------------------------------------
@Override
public void addPostDescriptionSection(
TooltipMakerAPI tooltip, HullSize hullSize, ShipAPI ship, float width, boolean isForModSpec) {
float pad = 10.0f;
float pads = 3.0f;
Color highlight = Misc.getHighlightColor();
tooltip.addPara("同心-级的核心之一,据传其设计蓝本来自波江座的某个幅能管控技术极其发达的势力。", pads);
tooltip.addPara("所有大型武器能量获得 %s 点基础射程,射击精度提升至最佳水平;", pad, highlight, "200");
tooltip.addPara(
"当战舰幅能水平低于 %s 时,可以通过对外造成伤害额外积累业力,每 %s 点伤害提供 %s 业力;", pad, highlight, "67%", "1000", "1%");
tooltip.addPara(
"来自能量武器的软幅能不会立刻结算,而是只结算 %s,剩余的 %s 会优先进入容量等同于战舰基础幅容的缓冲带,并以硬幅能的形式返还,返还需要消耗业力;",
pad, highlight, "50%", "50%");
tooltip.addPara("幅能水平与业力消耗和返还速率关系:", pad);
// 修复:beginTable 的列宽/参数应全部使用 Float,且变体参数必须是 Float 类型
tooltip.beginTable(Misc.getGrayColor(), Color.BLACK, Color.BLACK, 20f,
140f, "幅能水平",
140f, "每100点幅能的业力消耗",
100f, "返还速率");
// 修复:每一行的数据都使用 String,避免混合类型导致的 ClassCastException
tooltip.addRow(
highlight, "幅能水平<33%",
highlight, "0.02",
highlight, "300");
tooltip.addRow(
highlight, "33%<=幅能水平<67%",
highlight, "0.01",
highlight, "200");
tooltip.addRow(
highlight, "幅能水平>=67%",
highlight, "0.005",
highlight, "100");
tooltip.addTable("", 0, pad);
tooltip.addPara(
"战舰强制排幅时,战舰获得 %s 机动性加成,缓冲带内的幅能会被立刻清空,同时根据缓冲带内的幅能总量强化舰船的最高航速,强化量:(缓冲带幅能总量/战舰最大幅能容量)*战舰最高航速*"
+ " %s",
pad, highlight, "200%", "2");
} |
|