Commit Graph
92 Commits
Author SHA1 Message Date
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 2b4c1a73d1 Read item user power actions from the cache template
The magical name color check and loadTemplateEnchantments read
getItemUserPowerAction(). The list keeps duplicates, so the baked-in
enchantments collapse a repeated power to its last entry, as the legacy
HashMap did; applying it twice would add its name to effectNames twice and
double its share of calcMagicValue.

Offline parity (p15e.py, 7586 rows): 0 differences in the lists (power and
arguments, in order). Duplicates exist only on 81 RUNE templates (mob,
guard and siege runes, plus discipline rune 3006 Blade Weaver with two
identical AMBIDEXTERITY entries); none on ITEM or DEED.

Value changes: none. Enchantments are now applied in file order instead
of HashMap order; effects are keyed by effect id and calcMagicValue is a
sum, so the result is the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:35:38 -04:00
MagicBotandClaude Opus 5.5 d197f62c1f Read template health, charges and flags through the bridge
Consumers of the legacy ItemTemplate combat_health_full,
item_initial_charges and item_flags now read getCombatHealthFull(),
getItemInitialCharges() and getItemFlags() on template.cacheTemplate.
No consumer read the template's combat_health_current; the
combat_health_current reads are the Item's own field.

Parity (offline, scripts/p14.py, 7586 templates): 0 differences in
combat_health_current, combat_health_full, item_initial_charges and
item_flags ("None" dropped on both sides). No value changes expected.

JSON-Refactor-Plan Task 1.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:45:17 -04:00
MagicBotandClaude Opus 5.5 dc4a9ee08a Read item weight, value and base name through the bridge
Consumers of the legacy ItemTemplate item_wt, item_value and
item_base_name now read getItemWt(), getItemValue() and
getItemBaseName() on template.cacheTemplate.

Parity (offline, scripts/p14.py, 7586 templates): 0 differences in
item_wt, item_value and item_base_name. No value changes expected.

JSON-Refactor-Plan Task 1.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:44:35 -04:00
MagicBotandClaude Opus 5.5 b8ac8cce3e Read item_type through the cache template bridge
Every consumer of the legacy ItemTemplate item_type now reads
template.cacheTemplate.getItemType(). Left on the legacy field: the
type count in dbItemHandler.LOAD_ITEM_TEMPLATES, which runs before the
bridge is linked. The charter checks already read DeedTemplate.

Parity (offline, static_item_templates vs the template
CObjectIndex.lookup picks, scripts/p14.py, 7586 templates: ITEM 4011,
DEED 880, RUNE 2695): 0 differences in item_type. No value changes
expected.

JSON-Refactor-Plan Task 1.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:43:57 -04:00
MagicBotandClaude Opus 5.5 c774746736 Read deed consumers from DeedTemplate
Deed placement (ObjectActionMsgHandler, PlaceAssetMsgHandler) reads
deed_structure_id from DeedTemplate._deeds. The deed, employment
contract and charter type checks (PlaceAssetMsgHandler,
ActivateNPCMsgHandler, GuildCreationFinalizeHandler, UseCharterMsg,
Item.serialize) read item_type through the cache template bridge.
Charters go through the shared getter rather than _deeds because
template 545 "Charter" is a CHARTER in the ITEM folder.

Parity (offline, static_item_templates vs COBJECTS, scripts/p13.py,
881 templates: all 880 DEED plus ITEM 545): 0 differences in
item_type and deed_structure_id. Every DB DEED, EMPLOYMENTCONTRACT,
PETTOTEM and FURNITUREDEED id is in the DEED folder. No value changes
expected. No pet totem or furniture deed consumer reads template
fields, so neither changes.

JSON-Refactor-Plan Task 1.3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:42:54 -04:00
MagicBot ab96cfcda4 Header update 2026-07-26 19:08:44 -04:00
MagicBot 634f1478ce Removed custom exception candy 2024-05-12 13:36:47 -04:00
MagicBot 96ba17f67a DispatchManager is now an official manager singleton. 2024-05-12 13:14:42 -04:00
MagicBot ff17cacda7 magicvalue update 2024-05-12 12:54:11 -04:00
MagicBot 4d6ce2b155 Update to value in item rs constructor 2024-05-12 12:06:30 -04:00
MagicBot f683201086 recalc magic value 2024-05-12 11:18:22 -04:00
MagicBot c03c1f4057 Update to item effect serialization 2024-04-19 10:11:27 -04:00
MagicBot a8d5521dd8 Mobtype work related to ForgeManager 2024-04-14 13:51:37 -04:00
MagicBot c1ee6f5b52 Renamed class to not conflict with the java.lang version. 2024-04-05 07:59:44 -04:00
MagicBot dc366068a9 Methods moved to new handler 2024-04-02 12:00:59 -04:00
MagicBot 71300f189d Parm name update 2024-03-30 14:16:20 -04:00
MagicBot d3fe643223 Madness; refactor out? 2024-03-30 14:15:23 -04:00
MagicBot 0cf4b5416d Refactor of signature 2024-03-30 14:04:08 -04:00
MagicBot a98de7b6fc Unused method 2024-03-30 13:54:33 -04:00
MagicBot e5622a47c0 Inline templateID 2024-03-30 08:26:08 -04:00
MagicBot cfc36c0c27 Equipslot stored as string 2024-03-29 13:23:56 -04:00
MagicBot 94253f547d Bugfix in deserialization 2024-03-28 20:44:14 -04:00
MagicBot 2640927b85 Value tweak 2024-03-28 19:34:27 -04:00
MagicBot 561b80b1aa Refactor out itembase 2024-03-28 12:15:43 -04:00
MagicBot a109e9864f More itembase refactor 2024-03-28 05:42:27 -04:00
MagicBot 1cf9831e20 Itembase refactored out of gold 2024-03-28 05:34:50 -04:00
MagicBot d57eb295e9 Schema update 2024-03-28 04:24:36 -04:00
MagicBot a1f233723f Cleanup of value handling 2024-03-27 13:09:35 -04:00
MagicBot c0a50544d7 Value is only an override 2024-03-25 06:35:45 -04:00
MagicBot a130240339 Value is only an override 2024-03-25 06:19:37 -04:00
MagicBot a7ed30130d Value is set as items as used or damaged. Not calculated on the fly. 2024-03-25 05:59:59 -04:00
MagicBot 6a62f93cba combat_health_full used from json 2024-03-25 05:29:15 -04:00
MagicBot f523e4832e Variable renamed to conform with json 2024-03-25 05:25:09 -04:00
MagicBot 678f5463ea Name given default value 2024-03-25 04:36:07 -04:00
MagicBot 575d21a786 Value logic update 2024-03-25 04:28:28 -04:00
MagicBot 4fa5ccf416 Value logic update 2024-03-25 04:26:55 -04:00
MagicBot eba905b15d Value set in constructor 2024-03-25 00:52:47 -04:00
MagicBot 14ccb1f80b Value set in constructor 2024-03-25 00:30:16 -04:00
MagicBot 943d274e5f Project reformat. 2024-03-24 09:42:27 -04:00
MagicBot d0bb761344 Bugfix in item constructor 2024-03-24 09:40:47 -04:00
MagicBot a8ba5ae62b More accurate than BakedInStats 2024-03-24 09:39:38 -04:00
MagicBot 97c0b0bbee Unused method removed 2024-03-24 09:36:01 -04:00
MagicBot 3fc5fa71a4 No enchants loaded from db for negative id items 2024-03-24 09:02:56 -04:00
MagicBot 4fc7c90c15 Method moved to handler. Less in Item the better. 2024-03-24 08:41:53 -04:00
MagicBot 2fb889272b Rewrite of handler 2024-03-24 08:14:40 -04:00
MagicBot cef2a7c188 Backfill code removed 2024-03-23 19:04:17 -04:00
MagicBot ecc14fc3af Setting slot.NONE when moving to inventory 2024-03-23 09:25:49 -04:00
MagicBot 99b9444ba8 Set flags when created 2024-03-22 13:24:54 -04:00
MagicBot c390ebe0c6 Empty check when reading enum 2024-03-22 13:19:56 -04:00