UI/SpawnMenu/WeaponSettingsPage.razor
@using Sandbox;
@using Sandbox.UI;
@inherits UtilityPage
@namespace Sandbox
@attribute [Icon( "🔫" )]
@attribute [Title( "#spawnmenu.utility.weapons" )]
@attribute [Group( "#spawnmenu.utility.group.world" )]
@attribute [Order( 2 )]

<root class="page" style="flex-direction: column;">
    @if ( Connection.Local.HasPermission( "admin" ) )
    {
        <div class="control-row" Tooltip=@UnlimitedAmmoDescription @onclick=@ToggleUnlimitedAmmo>
            <div class="left"><label>@(WeaponConVars.UnlimitedAmmo ? "🟢" : "⚪") </label><label>#spawnmenu.utility.unlimited_ammo</label></div>
            <div style="flex-grow: 1;"></div>
            <label class="right">@(WeaponConVars.UnlimitedAmmo ? "#spawnmenu.common.on" : "#spawnmenu.common.off")</label>
        </div>
        <div class="control-row" Tooltip=@InfiniteReservesDescription @onclick=@ToggleInfiniteReserves>
            <div class="left"><label>@(WeaponConVars.InfiniteReserves ? "🟢" : "⚪") </label><label>#spawnmenu.utility.infinite_reserves</label></div>
            <div style="flex-grow: 1;"></div>
            <label class="right">@(WeaponConVars.InfiniteReserves ? "#spawnmenu.common.on" : "#spawnmenu.common.off")</label>
        </div>
    }
    else
    {
        <div class="control-row">
            <div class="left"><label>⚠️ </label><label>#spawnmenu.common.host_only</label></div>
        </div>
    }
</root>

@code
{
    public override bool IsPageVisible() => Connection.Local.HasPermission( "admin" );

    static readonly string UnlimitedAmmoDescription = "#spawnmenu.utility.unlimited_ammo_description";
    static readonly string InfiniteReservesDescription = "#spawnmenu.utility.infinite_reserves_description";

    void ToggleUnlimitedAmmo() => GameManager.SetConVar( "sb.weapon.unlimitedammo", !WeaponConVars.UnlimitedAmmo );
    void ToggleInfiniteReserves() => GameManager.SetConVar( "sb.weapon.infinitereserves", !WeaponConVars.InfiniteReserves );
}