feat(studio): port character skills tab

This commit is contained in:
Erik 2026-06-26 14:08:06 +02:00
parent 4cc565badc
commit e7e943a580
4 changed files with 634 additions and 45 deletions

View file

@ -122,6 +122,12 @@ public sealed class CharacterSheet
/// </summary>
public long[] AttributeRaiseCosts { get; init; } = Array.Empty<long>();
/// <summary>
/// Skills shown on the Character window Skills tab. Retail gmSkillUI groups these by
/// advancement class, then sorts each group alphabetically by skill name.
/// </summary>
public IReadOnlyList<CharacterSkill> Skills { get; init; } = Array.Empty<CharacterSkill>();
// ── Augmentations (UpdateAugmentations 0x004b9000) ─────────────────────
// Retail InqInt(0x162) = AugmentationStat; string-switch 1..0xb.
@ -135,3 +141,24 @@ public sealed class CharacterSheet
public int BurdenCurrent { get; init; }
public int BurdenMax { get; init; }
}
public enum CharacterSkillAdvancementClass
{
Inactive = 0,
Untrained = 1,
Trained = 2,
Specialized = 3,
}
public sealed record CharacterSkill(
uint Id,
string Name,
uint IconDid,
CharacterSkillAdvancementClass AdvancementClass,
int BaseLevel,
int CurrentLevel,
bool UsableUntrained,
int TrainedCost,
int SpecializedCost,
long RaiseCost,
long Raise10Cost = 0L);