UI/PracticePage.razor
@using Sandbox.UI;
@using Sandbox.UI.Navigation;
@inherits Panel
@attribute [Route( "/practice" )]
<root class="menu-page">
<label class="page-heading">PRACTICE</label>
<label class="page-copy">
Fight ROOK through the full competitive loop, or open Sandbox
for persistent weapon, arena and AI testing.
</label>
<div class="setup-section bot-match-setup">
<div class="setup-section-title">BOT MATCH</div>
<div class="setup-row">
<div class="setup-label">DIFFICULTY PROFILE</div>
<div class="setup-selector">
<div class="selector-arrow" onclick=@BotDifficultyPrevious><</div>
<div class="selector-value">@OMRSceneFlow.GetBotMatchDifficultyName()</div>
<div class="selector-arrow" onclick=@BotDifficultyNext>></div>
</div>
</div>
</div>
<div
class="menu-button"
onclick=@StartBotMatch
>
<label class="button-title">VS BOT MATCH</label>
<label class="button-description">
Full match rules · @(OMRSceneFlow.GetBotMatchDifficultyName()) · BANK / ONE MORE ROUND · adaptive ROOK
</label>
</div>
<div
class="menu-button"
onclick=@OpenSandboxSetup
>
<label class="button-title">SANDBOX</label>
<label class="button-description">
Solo or multiplayer · custom weapons and arena modules
</label>
</div>
<a
href="/"
class="menu-back"
>
BACK
</a>
</root>
@code
{
private void BotDifficultyPrevious()
{
OMRSceneFlow.CycleBotMatchDifficulty( -1 );
}
private void BotDifficultyNext()
{
OMRSceneFlow.CycleBotMatchDifficulty( 1 );
}
private void StartBotMatch()
{
MainMenuHost.Current?.StartBotMatch();
}
private void OpenSandboxSetup()
{
MainMenuHost.Current?.OpenSandboxSetup();
}
}