Weapons/PeachLauncher/PeachSplatOverlay.razor
@using Sandbox;
@using Sandbox.UI;
@inherits PanelComponent
@*
PeachSplatOverlay — full-screen blit overlay driven by PeachOverlayBridge.
Add this component to the HUD / camera GameObject in the scene (one instance).
Evening = regular peach, Midnight = giant peach.
*@
<root>
<div class="peach-overlay @(PeachOverlayBridge.IsGiant ? "midnight" : "evening")" style="opacity: @OpacityStr;">
</div>
</root>
@code {
private float _current = 0f;
public string OpacityStr => _current.ToString( "0.00" );
protected override void OnUpdate()
{
PeachOverlayBridge.Tick( Time.Delta );
_current = _current.LerpTo( PeachOverlayBridge.Target, Time.Delta * PeachOverlayBridge.Speed * 3f );
if ( PeachOverlayBridge.Exiting && _current < 0.005f )
{
_current = 0f;
PeachOverlayBridge.OnFullyFaded();
}
StateHasChanged();
}
protected override int BuildHash()
{
return System.HashCode.Combine( PeachOverlayBridge.IsGiant, (int)(_current * 1000) );
}
}
<style>
.peach-overlay {
position: absolute;
inset: 0;
pointer-events: none;
}
.peach-overlay.evening {
background: radial-gradient(
ellipse at center,
rgba(30, 15, 60, 0) 30%,
rgba(80, 30, 120, 220) 100%
);
}
.peach-overlay.midnight {
background: radial-gradient(
ellipse at center,
rgba(5, 5, 30, 40) 20%,
rgba(10, 5, 60, 242) 100%
);
}
</style>