feat(attributes/ui): display "ATK base + bonus" igual RO + ASPD único

- FZMMOAttributesSnapshot ganha 7 pares (AtkBase/AtkEquipBonus, ...) +
  Aspd único, espelhando split do server.
- ZMMOAttributeNetworkHandler::ToSnapshot mapeia campos novos do
  FZeusAttributesPayload.
- WBP_StatusWindow / RefreshFromSnapshot agora formata derivados como
  "ATK  51 + 0", "CRIT 1.3 + 0.0", "ASPD 150" (este sem split — cálculo
  não-linear no server via aspd_base × stats).

Quando InventorySystem entrar, equipar arma muda `currentWeapon` no server,
Recalculate roda, e UI mostra ATK/MATK/DEF/etc com bonus > 0 e ASPD
ajustado pela aspd_base da arma equipada. Sem código de migração — schema
do snapshot já está estabilizado.
This commit is contained in:
2026-05-23 11:47:10 -03:00
parent f585b0d2b9
commit 5418da185e
3 changed files with 57 additions and 27 deletions

View File

@@ -35,14 +35,21 @@ namespace
S.Sp = P.Sp;
S.MaxSp = P.MaxSp;
S.Money = P.Money;
S.Atk = P.Atk;
S.Matk = P.Matk;
S.Def = P.Def;
S.Mdef = P.Mdef;
S.Hit = P.Hit;
S.Flee = P.Flee;
S.CritX10 = P.CritX10;
S.Aspd = P.Aspd;
S.AtkBase = P.AtkBase;
S.AtkEquipBonus = P.AtkEquipBonus;
S.MatkBase = P.MatkBase;
S.MatkEquipBonus = P.MatkEquipBonus;
S.DefBase = P.DefBase;
S.DefEquipBonus = P.DefEquipBonus;
S.MdefBase = P.MdefBase;
S.MdefEquipBonus = P.MdefEquipBonus;
S.HitBase = P.HitBase;
S.HitEquipBonus = P.HitEquipBonus;
S.FleeBase = P.FleeBase;
S.FleeEquipBonus = P.FleeEquipBonus;
S.CritBaseX10 = P.CritBaseX10;
S.CritEquipBonusX10 = P.CritEquipBonusX10;
S.Aspd = P.Aspd;
return S;
}