From b5c3d8c3fd9b5d1c6dc64a240bdf9225cbb5d3c7 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Mon, 26 Oct 2026 05:33:29 -0400 Subject: [PATCH] Read the Charm/Fear level cap ramp as a float, fix the Track flag tests levelCapRamp is a float column (e.g. 0.65) but was read with getInt, so the Charm level cap never grew with trains. Charm caps now add ramp * trains. FearPowerAction gets the same fix; nothing builds it today. TrackPowerAction tested (flags & 1024) == 1, which is always false. No caller reads trackPlayer/trackCorpse, so that part changes nothing. Co-Authored-By: Claude Opus 5.5 --- src/engine/powers/poweractions/CharmPowerAction.java | 6 +++--- src/engine/powers/poweractions/FearPowerAction.java | 6 +++--- src/engine/powers/poweractions/TrackPowerAction.java | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/engine/powers/poweractions/CharmPowerAction.java b/src/engine/powers/poweractions/CharmPowerAction.java index 189713d6..c9e1f644 100644 --- a/src/engine/powers/poweractions/CharmPowerAction.java +++ b/src/engine/powers/poweractions/CharmPowerAction.java @@ -26,12 +26,12 @@ import java.sql.SQLException; public class CharmPowerAction extends AbstractPowerAction { private int levelCap; - private int levelCapRamp; + private float levelCapRamp; public CharmPowerAction(ResultSet rs) throws SQLException { super(rs); this.levelCap = rs.getInt("levelCap"); - this.levelCapRamp = rs.getInt("levelCapRamp"); + this.levelCapRamp = rs.getFloat("levelCapRamp"); } @Override @@ -52,7 +52,7 @@ public class CharmPowerAction extends AbstractPowerAction { return; //make sure mob isn't too high level - int cap = this.levelCap + (this.levelCapRamp * trains); + int cap = (int) (this.levelCap + (this.levelCapRamp * trains)); if (mob.getLevel() > cap && pb.getToken() != 1577464266) return; diff --git a/src/engine/powers/poweractions/FearPowerAction.java b/src/engine/powers/poweractions/FearPowerAction.java index 8ce58787..91a62d2b 100644 --- a/src/engine/powers/poweractions/FearPowerAction.java +++ b/src/engine/powers/poweractions/FearPowerAction.java @@ -27,12 +27,12 @@ import java.sql.SQLException; public class FearPowerAction extends AbstractPowerAction { private int levelCap; - private int levelCapRamp; + private float levelCapRamp; public FearPowerAction(ResultSet rs) throws SQLException { super(rs); this.levelCap = rs.getInt("levelCap"); - this.levelCapRamp = rs.getInt("levelCapRamp"); + this.levelCapRamp = rs.getFloat("levelCapRamp"); } @Override @@ -51,7 +51,7 @@ public class FearPowerAction extends AbstractPowerAction { return; //make sure mob isn't too high level - int cap = this.levelCap + (this.levelCapRamp * trains); + int cap = (int) (this.levelCap + (this.levelCapRamp * trains)); if (mob.getLevel() > cap || mob.getLevel() > 79) return; diff --git a/src/engine/powers/poweractions/TrackPowerAction.java b/src/engine/powers/poweractions/TrackPowerAction.java index ebdabeab..83aa0d4e 100644 --- a/src/engine/powers/poweractions/TrackPowerAction.java +++ b/src/engine/powers/poweractions/TrackPowerAction.java @@ -42,8 +42,8 @@ public class TrackPowerAction extends AbstractPowerAction { this.effectID = rs.getString("effectID"); int flags = rs.getInt("flags"); - this.trackPlayer = ((flags & 1024) == 1) ? true : false; - this.trackCorpse = ((flags & 2048) == 1) ? true : false; + this.trackPlayer = ((flags & 1024) != 0) ? true : false; + this.trackCorpse = ((flags & 2048) != 0) ? true : false; String trackFilter = rs.getString("trackFilter"); this.trackAll = trackFilter.equals("All") ? true : false; this.trackDragon = trackFilter.equals("Dragon") ? true : false;