Commit Graph
41 Commits
Author SHA1 Message Date
MagicBotandClaude Opus 5.5 ccc9d9f0ed Drop the server-made mobbase rows and the dead mobbase columns
The 406 ID <> loadID mobbases (15000-17266) were junk: no RUNE file, nothing
on dev references them. MobBase now always reads its core fields from the
race rune and logs an error if the rune is missing; the loader skips any
ID <> loadID rows still present. GetClassType only matched those IDs, so it
always returned 2518 and is replaced by the constant.

DB: MBDATA/JSON-Refactor-Plan/sql/3.6-mobbase-cleanup.sql deletes the rows,
the 10 orphan static_npc_mobbase_effects rows (17061/17122/17154) and drops
13 columns no longer read: lootTableID, name, level, health, atr, defense,
minDmg, maxDmg, noaggro, raceType, fsm, notEnemy, enemy.

Value changes: none for the 2375 loaded mobbases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:03:27 -04:00
MagicBotandClaude Opus 5.5 c74cb127dc Load MobBase core fields from the race rune
Mobbases whose ID is their own race rune (2375 of 2781) now take name,
level, health, atr, defense, min/max damage, fsm and enemy/notEnemy from
the rune; the 406 server-made mobbases keep their DB row. Server-only
columns (bootySet, flags, seeInvis, spawnTime, goldMod, scale,
attackRange) stay DB.

Parity (MBDATA scripts/p31.py vs magicbane.sql), JSON for all (D2,
user decision 2026-10-23):
- fsm 84: DB None where the rune has no ROOTFSMID; no change
- enemy/notEnemy: no change
- level 95: rune 0 (player races, guards, pets, golems, necro pets)
- level 8: 13314 53->42, 13581 53->40, 13758 78->40, 14034 54->40,
  14172 54->40, 14174 55->40, 14177 54->40, 13171 10->1
- health/atr/def/dmg 61: DB defaults 100/10/20 -> 0 (tombstones
  2030-2040, pets 12024-12035 and 13266-13301, CSR 2020/2021 atr/def/dmg)
- defense 27: DB 100 -> rune 140-780 (clay, risen/doom, skeletal lines,
  12011, 13961, 14167, 14168, 14285, 14292); damage/atr there and on
  14037/14087/14296/14303 already came from the rune at runtime
- name 33: DB names -> obj_name (e.g. Sharduk -> Hell Hound)

No ParityCheck comparator: p31.py covers it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 13:12:12 -04:00
MagicBotandClaude Opus 5.5 6b4e9815e0 Switch Item.template and MobLoot to CObjectTemplate
Item.template is now the cache template from CObjectTemplate.lookup
instead of the legacy DB ItemTemplate, so item.template.cacheTemplate.X
becomes item.template.X. MobLoot, LootManager, ItemManager.isTwoHanded/
isShield and CombatManager.getSwingAnimation take a CObjectTemplate.

No value changes: every getter already read the cache template through
the bridge, and the lookup resolves the same 7586 ids as
static_item_templates with the same item_type (offline parity p17.py,
0 differences).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 07:55:28 -04:00
MagicBotandClaude Opus 5.5 5b3c511b55 Read item eq slots from the cache template
isTwoHanded, validForSlot, getSwingAnimation and the mob equipment set
read getItemEqSlotsOr/And, which drop the exporter's NONE. Offline parity
(p15c.py, 7586 rows): 0 differences once NONE is ignored.

Value changes:
- validForSlot: items whose only slot is NONE no longer pass for slot NONE.
- getSwingAnimation: the 7 slotless weapons (Rock 19297, Arrow 25650,
  siege ammo 29000/29010/29020/29030/29350) return the default 75 instead
  of indexing their empty left-hand anim list.
- MobBase equipment sets skip slotless items instead of keying them under
  NONE. No EQUIP booty entry references one (the 104 sets that do are ITEM
  booty sets).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:23:41 -04:00
MagicBot ab96cfcda4 Header update 2026-07-26 19:08:44 -04:00
MagicBot 4f115291eb No some are longs 2024-04-22 12:50:45 -04:00
MagicBot 79079e200a Bitvectors use int not long for mb 2024-04-22 12:48:03 -04:00
MagicBot 1a7f63ce05 lastNegativeId moved to ItemManager 2024-04-19 10:32:36 -04:00
MagicBot 0b4873a522 refactored out dependency 2024-04-05 08:44:59 -04:00
MagicBot d3d1227d6c refactored out dependency 2024-04-05 08:35:48 -04:00
MagicBot c1ee6f5b52 Renamed class to not conflict with the java.lang version. 2024-04-05 07:59:44 -04:00
MagicBot 943d274e5f Project reformat. 2024-03-24 09:42:27 -04:00
MagicBot 61c4cb1361 Start mobequip refactor 2024-03-18 10:01:29 -04:00
MagicBot 0590ae64e7 Start mobequip refactor 2024-03-18 09:38:33 -04:00
MagicBot e323c80fba More refactor out itembase 2024-03-15 10:55:49 -04:00
MagicBot 04d9b76938 More ordinal refactor 2024-03-09 07:41:59 -05:00
FatBoy d966d50bd5 removed duplicate variables in MobBase 2023-09-09 20:40:52 -05:00
FatBoy 90ff2d679e create and use applyMobbaseEffects method, remove old unused methods 2023-09-01 20:39:31 -05:00
FatBoy da26c35d5a mobbase loads effectsList 2023-09-01 20:36:07 -05:00
MagicBot b96b222327 Booty moved to LootManager 2023-08-08 18:30:21 -04:00
MagicBot f8b09b5f33 Class moved to loot package. 2023-08-06 14:04:06 -04:00
MagicBot 9bbdef224d Project cleanup pre merge. 2023-07-15 09:23:48 -04:00
MagicBot 2cdb2fce42 Refactor to remove abstraction 2023-05-22 06:35:24 -04:00
MagicBot 4ae55b9bd8 Removed leftover junk from mobbase. 2023-04-24 03:38:04 -04:00
MagicBot 6b146bfdc4 Removed leftover junk from mobbase. 2023-04-24 03:26:35 -04:00
MagicBot 4462e34ca4 mobbase.fsm should never be blank. 2023-04-23 12:03:46 -04:00
FatBoy ae968211ab none to enum MonsterType 2023-04-22 18:13:29 -05:00
FatBoy 344c5900b8 added none check to enemy and notEnemy in mobbase 2023-04-22 17:52:55 -05:00
MagicBot 662d1d2b85 Enum moved to Enum.
Updated logic in rs constructor to handle blanks properly.
2023-04-17 07:20:39 -04:00
FatBoy f855ec9a19 fsm lookup changes 2023-04-16 19:50:59 -05:00
MagicBot de3818aef6 Equip lookups now use bootymap 2023-04-14 18:19:43 -04:00
MagicBot 5d0166a29a EquipmentSets merged into bootySet system. 2023-04-14 16:46:10 -04:00
MagicBot beff5c3e06 Refactored aggro system to use Monstertype. 2023-04-09 18:16:36 -04:00
MagicBot 30175be56a MonsterTypes loaded into Mob. 2023-04-09 13:43:12 -04:00
MagicBot 4fe6040707 enemy/notEnemy bitvectors loaded into mobbase. 2023-04-09 13:31:42 -04:00
MagicBot 88bf38b858 Mobbase updated with new booty and fsm fields. 2023-04-06 20:58:13 -04:00
MagicBot a85bbde9d2 Mobbase runes no longer needed. 2023-04-03 06:27:29 -04:00
MagicBot 00d0048fd0 RuneSets generated loaded at bootstrap. 2023-03-28 17:45:58 -04:00
MagicBot f744c64737 Superfluous getter and setters removed. 2023-03-28 17:29:16 -04:00
MagicBot 33334ed13c NPCManager class created. 2023-03-28 17:22:57 -04:00
MagicBot bbfdde57a3 Initial Repository Push 2022-04-30 09:41:17 -04:00