ui/Panels/DifficultyPanel.razor
@using Sandbox;
@using Sandbox.UI;
@namespace SS1
@inherits Panel
@attribute [StyleSheet("DifficultyPanel.razor.scss")]
<root>
@{
int diff = DifficultyTracker.Instance.Difficulty;
}
<div class="difficulty_button @(diff <= Manager.MinDifficulty ? "disabled_button" : "")" onclick="@(() => ButtonLeft())">
@("-")
</div>
<div class="middle">
<div class="difficulty_label" style="color:@(Manager.GetDifficultyLabelColor(diff).Rgba);">@Manager.GetNameForDifficulty(diff)</div>
<div class="description">@Manager.GetDescriptionForDifficulty(diff)</div>
</div>
<div class="difficulty_button @(diff >= Manager.MaxDifficulty ? "disabled_button" : (MenuManager.Instance.HighestDifficultyBeaten >= diff) ? "" : "locked_button" )" style="opacity:@(diff == Manager.MaxDifficulty ? 0f : 1f);" onclick="@(() => ButtonRight())">
@((MenuManager.Instance.HighestDifficultyBeaten >= diff ? (diff == Manager.MaxDifficulty ? "x" : "+") : " "))
</div>
</root>
@code
{
protected override int BuildHash()
{
return HashCode.Combine(
DifficultyTracker.Instance.Difficulty,
MenuManager.Instance.HighestDifficultyBeaten
);
}
void ButtonLeft()
{
DifficultyTracker.Instance.Difficulty = Math.Max(DifficultyTracker.Instance.Difficulty - 1, Manager.MinDifficulty);
Sandbox.Services.Stats.SetValue("selected_difficulty", DifficultyTracker.Instance.Difficulty);
MenuManager.Instance.SetDifficulty(DifficultyTracker.Instance.Difficulty);
}
void ButtonRight()
{
DifficultyTracker.Instance.Difficulty = Math.Min(DifficultyTracker.Instance.Difficulty + 1, Manager.MaxDifficulty);
Sandbox.Services.Stats.SetValue("selected_difficulty", DifficultyTracker.Instance.Difficulty);
MenuManager.Instance.SetDifficulty(DifficultyTracker.Instance.Difficulty);
}
}