ui/MessageContainerPanel.razor
@using Sandbox;
@using Sandbox.UI;
@inherits Panel
@attribute [StyleSheet("MessageContainerPanel.razor.scss")]

<root> 
	@{
		int count = 0;
	}
	
	@foreach(var item in Manager.Instance.EventMessageStack)
	{
		var eventHandler = item.Item1;
		var eventType = item.Item2;
		var message = eventHandler.GetEventText(eventType);
		var depthClass = $"depth-{count}";

		if(eventHandler is Card card)
		{
			@<MessagePanel class=@depthClass Message=@message DepthNum=@count [email protected](card.OriginalCardType) [email protected]></MessagePanel>
		}
		else if(eventHandler is Relic relic)
		{
			<MessagePanel class=@depthClass Message=@message DepthNum=@count [email protected](relic.RelicType) [email protected]></MessagePanel>
		}
		else if(eventHandler is StatusEffect status)
		{
			<MessagePanel class=@depthClass Message=@message DepthNum=@count [email protected](eventType) StatusEffect=@status></MessagePanel>
		}

		count++;
	}
</root>

@code
{
	protected override int BuildHash()
	{
		return HashCode.Combine(
			Manager.Instance.EventMessageHash
			// Time.Now
		);
	}
}