feat(ui): port retail creature appraisal presentation
Render assessed creatures through the shared private viewport with retail heading, bounding-box camera, and light. Build the exact authored nine-row stat list and resolve creature names from the retail EnumMapper while keeping remaining font/sequencer adaptations explicit. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
f1a7912160
commit
7eaa68a5f4
26 changed files with 2780 additions and 237 deletions
|
|
@ -52,7 +52,7 @@ public sealed class PrivatePresentationRendererTests
|
|||
var presentation = new PrivatePresentationRenderer(
|
||||
new Portal(calls),
|
||||
new FoundationSource(portalVisible: true),
|
||||
paperdoll: null,
|
||||
entityViewports: null,
|
||||
gameplayUi: null,
|
||||
devTools: null,
|
||||
screenshots: null);
|
||||
|
|
@ -64,6 +64,20 @@ public sealed class PrivatePresentationRendererTests
|
|||
Assert.False(outcome.ScreenshotCaptured);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PrivateEntityViewportGroup_RendersEveryViewportInOrder()
|
||||
{
|
||||
List<string> calls = [];
|
||||
var group = new PrivateEntityViewportFrameGroup(
|
||||
new NamedViewport(calls, "paperdoll"),
|
||||
null,
|
||||
new NamedViewport(calls, "examination"));
|
||||
|
||||
group.Render();
|
||||
|
||||
Assert.Equal(["paperdoll", "examination"], calls);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Render_ReportsThePreparedPortalSnapshotWhenDrawMutatesTheSource()
|
||||
{
|
||||
|
|
@ -72,7 +86,7 @@ public sealed class PrivatePresentationRendererTests
|
|||
var presentation = new PrivatePresentationRenderer(
|
||||
new MutatingPortal(calls, () => foundation.PortalVisible = false),
|
||||
foundation,
|
||||
paperdoll: null,
|
||||
entityViewports: null,
|
||||
gameplayUi: null,
|
||||
devTools: null,
|
||||
screenshots: null);
|
||||
|
|
@ -209,11 +223,17 @@ public sealed class PrivatePresentationRendererTests
|
|||
}
|
||||
}
|
||||
|
||||
private sealed class Paperdoll(List<string> calls) : IPrivatePaperdollFrame
|
||||
private sealed class Paperdoll(List<string> calls) : IPrivateEntityViewportFrame
|
||||
{
|
||||
public void Render() => calls.Add("paperdoll");
|
||||
}
|
||||
|
||||
private sealed class NamedViewport(List<string> calls, string name) :
|
||||
IPrivateEntityViewportFrame
|
||||
{
|
||||
public void Render() => calls.Add(name);
|
||||
}
|
||||
|
||||
private sealed class GameplayUi(List<string> calls) : IRetainedGameplayUiFrame
|
||||
{
|
||||
public RenderFrameInput Input { get; private set; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue