feat(player): port retail augmentation stat chain

This commit is contained in:
Erik 2026-07-31 08:08:23 +02:00
parent 0cb60d98a0
commit 461a1fb7b4
22 changed files with 953 additions and 138 deletions

View file

@ -86,6 +86,17 @@ public sealed class CharacterSheet
public int ManaCurrent { get; init; }
public int ManaMax { get; init; }
/// <summary>
/// Unenchanted max Health/Stamina/Mana in that order.
/// </summary>
public int[] VitalBaseMaxValues { get; init; } = Array.Empty<int>();
/// <summary>
/// Isolated vitae contribution to max Health/Stamina/Mana, always
/// non-positive and ordered like <see cref="VitalBaseMaxValues"/>.
/// </summary>
public int[] VitalVitaeModifiers { get; init; } = Array.Empty<int>();
// ── Innate attributes (UpdateInnateAttributeInfo 0x004b87e0) ────────────
// InqAttribute order: 1,2,4,3,5,6 = Strength, Endurance, Quickness, Coordination, Focus, Self.
@ -202,7 +213,8 @@ public sealed record CharacterSkill(
uint IconDid,
CharacterSkillAdvancementClass AdvancementClass,
int BaseLevel,
// Issue #267: CurrentLevel is now the EFFECTIVE (vitae + buff) level —
// BaseLevel is retail's pre-EnchantSkill value, including augmentation
// terms. CurrentLevel is the EFFECTIVE (vitae + buff) level —
// retail CACQualities::EnchantSkill (0x005947b0). Previously an alias of
// BaseLevel; this activates the existing CharacterStatController.
// SkillValueColor buffed/debuffed row coloring.