Skip to content

Credit retroactive permanent HP/MP across signed growth rank changes

Idan Cohen requested to merge issue/18-retroactive-hpmp into genocide

Learning or changing Warrior 1000001, Brawler 5100000 or Magician 2000001 now applies (character level - 1) × (new x - old x) to permanent max HP/MP. Rank zero contributes zero; decreases/removal use the same signed formula, distinct passives stack, and existing bounds apply with cap overflow lost. Unchanged-rank/mastery-only changes do nothing. Base growth, AP investment and buffs keep their existing behavior. MP recovery 1210000 is excluded.

Draft claims commit the bounded growth adjustment with the skill and picked offer. Uncertain commits retain their staged credit and reconcile once before autosave; normal level-ups during an unreadable outcome retain their missing passive contribution. Character locking keeps SP allocation and cash SP-reset transfers consistent with full saves. See docs/retroactive-growth.md.

Validation: the full existing disposable MySQL suite passes, including 251 running-server assertions. New coverage exercises late HP/MP learning, upgrades/decreases, stacking, cap overflow, no-op updates, subsequent level-ups, the real cash SP-reset handler, save/reload, transaction rollback, lost acknowledgements and delayed reconciliation across a normal level-up. Combined with the other server branches, the same suite passes. No campaign data was used.

Related to #18. Keep #18 open: this implements only HP/MP; Final Attack and other combination/weapon work are excluded. No legacy compensation migration is included because the owner plans a separate reset; no database reset is performed. The native description companion is the client-17 merge request. This MR is unmerged and undeployed. Default base: 76e344abd7e7f5720dd0e634ae2a728e4e8da6cc.

GitLab review CI: pipeline 749 passed. No deployment jobs ran.

Edited by Idan Cohen

Merge request reports