Add scene fade transitions, gacha pull reveal, and modal/hover animations

Menu <-> combat scene loads now fade through black instead of hard-cutting,
gacha pulls reveal reward cards with a staggered stagger-in and a rarity
flash instead of a static text block, starter selection and root-credit
exchange modals fade+scale in/out instead of popping via display:none, and
menu/collection/gacha rows now transition on hover/select instead of
snapping. All new motion respects the existing reduced-motion setting.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015hiJi3irEg1RegCXRaQDcu
This commit is contained in:
Claude
2026-07-08 06:52:58 +00:00
parent 131eedb626
commit 7d2d0a1152
7 changed files with 329 additions and 20 deletions
+4 -1
View File
@@ -72,6 +72,9 @@ namespace KernelPanic.UI
LoadStyles();
ApplyTerminalFont();
BuildLayout();
root.AddToClassList("scene-fade-hidden");
root.schedule.Execute(() => root.RemoveFromClassList("scene-fade-hidden")).StartingIn(0);
}
private void ApplyTerminalFont()
@@ -515,7 +518,7 @@ namespace KernelPanic.UI
overlay.Add(OverlayLine($"waves cleared: {runManager.WavesCleared}"));
overlay.Add(OverlayLine($"+{runManager.AccruedBandwidth} bandwidth"));
overlay.Add(OverlayLine($"+{runManager.AccruedEntropy} entropy"));
Button returnButton = new(SceneLoader.LoadMainMenu) { text = "> return to menu" };
Button returnButton = new(() => SceneLoader.LoadMainMenu(root)) { text = "> return to menu" };
returnButton.AddToClassList("primary-action");
overlay.Add(returnButton);
return;