Load mob speeds from the race rune's rune_speed

MobBase walk/walkCombat/run/runCombat now come from rune_speed
WALK/COMBATWALK/RUN/COMBATRUN instead of static_npc_mobbase_race.

Parity (JSON-Refactor-Plan/scripts/p33.py, compared as Java floats):
2375/2375 loaded mobbases identical, every one has a race row on dev.
No value changes. The 253 unused race rows (no mobbase) and the
fly/swim columns had no reader.

LOAD_ALL_MOBBASE_SPEEDS and static_npc_mobbase_race are now unread;
they go in Task 3.6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MagicBotandClaude Opus 5.5 committed 2026-10-23 14:44:32 -04:00
1 parent 12fa84d379
commit 063ebb9717
1 file changed
+4 -1
+4 -1
View File
@@ -78,6 +78,10 @@ public class MobBase extends AbstractGameObject {
this.fsm = mbEnums.MobBehaviourType.valueOf(fsmName);
this.notEnemy = EnumSet.copyOf(rune.rune_not_enemy_monster_types);
this.enemy = EnumSet.copyOf(rune.rune_enemy_monster_types);
this.walk = rune.rune_speed.getOrDefault(mbEnums.MovementType.WALK, 0f);
this.walkCombat = rune.rune_speed.getOrDefault(mbEnums.MovementType.COMBATWALK, 0f);
this.run = rune.rune_speed.getOrDefault(mbEnums.MovementType.RUN, 0f);
this.runCombat = rune.rune_speed.getOrDefault(mbEnums.MovementType.COMBATRUN, 0f);
} else {
Logger.error("Mobbase " + this.getObjectUUID() + " has no race rune " + this.loadID);
this.firstName = "";
@@ -118,7 +122,6 @@ public class MobBase extends AbstractGameObject {
this.mask += MBServerStatics.MASK_RAT;
this.mobBaseStats = (rune != null) ? new MobBaseStats(rune) : MobBaseStats.GetGenericStats();
DbManager.MobBaseQueries.LOAD_ALL_MOBBASE_SPEEDS(this);
//load effects for mobbase
this.effectsList = DbManager.MobBaseQueries.GET_RUNEBASE_EFFECTS(this.loadID);