fix(ui): match retail vitae and character info
Restore Vitae's omitted penalty paragraph, replace the invented character summary with gmCharacterInfoUI's ordered report and property meanings, preserve authored translucent body surfaces, and initialize the end-session button in its visible Normal DAT state. Release build and all 5,830 tests pass with five intentional skips. Connected visual gate pending. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
d1d603105f
commit
16c21e299c
21 changed files with 771 additions and 303 deletions
|
|
@ -61,6 +61,7 @@ public sealed class CharacterSheetProviderTests
|
|||
player.Properties.Ints[0x19u] = 1; // level
|
||||
player.Properties.Int64s[1u] = 150L; // total XP — mid 100..250 band
|
||||
player.Properties.Int64s[2u] = unassignedXp;
|
||||
player.Properties.Ints[0x18u] = 4; // available skill credits
|
||||
Table.AddOrUpdate(player);
|
||||
return player;
|
||||
}
|
||||
|
|
@ -94,6 +95,7 @@ public sealed class CharacterSheetProviderTests
|
|||
Assert.Equal(100L, sheet.XpToNextLevel);
|
||||
Assert.Equal(1f / 3f, sheet.XpFraction, precision: 4);
|
||||
Assert.Equal(11, sheet.Strength); // ranks + start
|
||||
Assert.Equal(4, sheet.SkillCredits);
|
||||
// Raise x1: Attributes[2] − xpSpent = 30 − 10; x10 clamps at curve end: 100 − 10.
|
||||
Assert.Equal(20L, sheet.AttributeRaiseCosts[0]);
|
||||
Assert.Equal(90L, sheet.AttributeRaise10Costs[0]);
|
||||
|
|
@ -173,11 +175,11 @@ public sealed class CharacterSheetProviderTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void HandleRaiseRequest_TrainSkill_DebitsFirstPresentCreditProperty()
|
||||
public void HandleRaiseRequest_TrainSkill_DebitsRetailSkillCreditProperty()
|
||||
{
|
||||
var h = new Harness();
|
||||
var player = h.AddPlayerObject();
|
||||
player.Properties.Ints[0xC0u] = 4; // only the second id in the 0x18→0xC0→0xB5 chain
|
||||
player.Properties.Ints[0x18u] = 4;
|
||||
h.Player.OnSkillUpdate(skillId: 6u, ranks: 0u, status: 1u, xp: 0u,
|
||||
init: 0u, resistance: 0u, lastUsed: 0, formulaBonus: 0u); // untrained
|
||||
|
||||
|
|
@ -186,7 +188,7 @@ public sealed class CharacterSheetProviderTests
|
|||
|
||||
Assert.Equal((6u, 4u), h.SentTrain);
|
||||
Assert.Equal(2u, h.Player.GetSkill(6u)!.Value.Status); // promoted to trained
|
||||
Assert.Equal(0, player.Properties.GetInt(0xC0u)); // credits debited
|
||||
Assert.Equal(0, player.Properties.GetInt(0x18u)); // credits debited
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue