fix(ui): match retail item appraisal semantics
Preserve PublicWeenieDesc hook identity from CreateObject through the item model so hook appraisals suppress sentinel capacities exactly. Use appraisal-only Value and Burden presence, retain AddItemInfo paragraph and authored font-color selection, and port retail lock, page, enchantment, and spell-block formatting. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
bc47bc4917
commit
d3c5e06fdd
21 changed files with 982 additions and 145 deletions
|
|
@ -1,3 +1,4 @@
|
|||
using System.Numerics;
|
||||
using AcDream.App.UI;
|
||||
using AcDream.App.UI.Layout;
|
||||
using AcDream.Core.Combat;
|
||||
|
|
@ -47,6 +48,8 @@ public sealed class AppraisalUiControllerTests
|
|||
|
||||
Assert.True(interaction.ExamineSelectedOrEnterMode(ObjectId));
|
||||
var properties = new PropertyBundle();
|
||||
properties.Ints[19u] = 1_250;
|
||||
properties.Ints[5u] = 350;
|
||||
properties.Strings[16u] = "A finely balanced weapon.";
|
||||
properties.Strings[7u] = "Remember the fallen.";
|
||||
properties.Strings[8u] = "Tester";
|
||||
|
|
@ -62,6 +65,13 @@ public sealed class AppraisalUiControllerTests
|
|||
UiText itemText = Assert.IsType<UiText>(
|
||||
layout.FindElement(AppraisalUiController.ItemTextId));
|
||||
Assert.Equal(VJustify.Top, itemText.VerticalJustify);
|
||||
Assert.Equal(
|
||||
[
|
||||
new Vector4(1f, 1f, 1f, 1f),
|
||||
new Vector4(0f, 1f, 0f, 1f),
|
||||
new Vector4(1f, 0f, 0f, 1f),
|
||||
],
|
||||
itemText.FontColorPalette);
|
||||
string report = string.Join('\n', itemText.LinesProvider().Select(line => line.Text));
|
||||
Assert.Contains("Value: 1,250", report);
|
||||
Assert.Contains("Burden: 350", report);
|
||||
|
|
@ -597,6 +607,8 @@ public sealed class AppraisalUiControllerTests
|
|||
ObjectId = ObjectId,
|
||||
Name = "Hooked Decoration",
|
||||
ContainerId = 0x50000002u,
|
||||
HookItemTypes = (uint)ItemType.Misc,
|
||||
HookType = 1u,
|
||||
});
|
||||
var messages = new List<string>();
|
||||
using var interaction = NewInteraction(objects, []);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue