UI/HQ/Elements/ViewButton.razor
@using Sandbox.UI;
@inherits Panel
@namespace PlanetMeat

<root>
	<button onmousedown=@ToggleView class="click-active @ViewPressed">
		<span class="mat-icon">@(HqNavigator.GetViewDisplayIcon(View))</span>
		<span>#@(HqNavigator.GetViewDisplayName(View))</span>
	</button>
</root>

@code
{
	public HqNavigator.Views View { get; set; }

	private HqNavigator Navigator => HqNavigator.Local;

	private HqNavigator.Views CurrentView
	{
		get => HqNavigator.View;
		set => HqNavigator.View = value;
	}

	private void ToggleView()
	{
		if (CurrentView == View)
		{
			if (Game.IsEditor)
			{
				switch (View)
				{
					case HqNavigator.Views.Improve:
						var meat = Bank.Current.GetAccount("meat");
						meat.Profit(100 + meat.Funds * 10);
						break;
					case HqNavigator.Views.Mission:
						Career.Current.HighestRoundCompleted++;
						break;
				}
			}
			CurrentView = HqNavigator.Views.None;
		}
		else
		{
			CurrentView = View;
		}
	}

	private string ViewPressed => CurrentView == View ? "pressed" : "";

	protected override int BuildHash() => System.HashCode.Combine(
		CurrentView,
		View
	);
}