Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.6 KiB
1.6 KiB
Combos
Request (2026-10-18)
Combos don't show their cooldown like other skills. Combos should reference the skills they are built from and always use those skills' current levels.
Measured / read
- Combos live in a vector of 0x26-byte entries at cCreatureArts +0x10e /
+0x112, at most 4 (
cCreatureArts::FindCombo0x5819a0). Layout insrc/game/engine/arts.h: id (0x200..0x204), 4 step arts, 4 step levels, total, charge rate, charge. cCreatureArts::SetCombo(0x581290, thiscall(index, arts[4], levels[4], id), ret 0x10) fills an entry and computes the total from the levels; the charge starts at 0. The Kombomeister calls it when a combo is made and the levels are never updated afterwards.- The charge counts up to the total at the charge rate (recomputed while
charging); ready when charge >= total (
IsComboReady0x581920). - A taskbar slot of type 4 holds combo 0x200 + index.
- Logged 2026-10-18: a combo made with an art at level 3 stores 3; after the art rose to 4 the mod re-set it to 4 and the total followed.
Mod
skillbar.cpp: combo slots get the seconds label like other arts,game::GetComboCooldown= (total - charge) / rate.combos.cpp: every engine tick, the hero's combos are compared with the arts' current levels (cooldown entry level + bonus levels). Out of date →SetComboagain with the current levels; the charge keeps its fraction of the total. Skipped while a combo is executing.
Open
- Whether the Kombomeister stores base or base + item bonus levels is not measured (no art with bonus levels in the test). The mod uses base + bonus; if the cast also adds the bonus it would count twice.