UI/HUD/Elements/DecideEor.razor
@using Sandbox.UI;
@inherits Panel
@namespace PlanetMeat
<root>
@if (OfferedChallenges.Count == 0)
{
<div class="pm-title">@EorTitle</div>
<RoundStatsReadout></RoundStatsReadout>
<div class="desc">@EorDesc</div>
<div class="choices">
<button class="click-active" onclick=@BailOut>
<span>#button.eor.bail</span>
</button>
<button class="click-active" onclick=@ChooseContinue>
<span>#button.eor.next</span>
</button>
</div>
}
else
{
<div class="pm-title">#eor.challenge.title</div>
<div class="choices">
@foreach (var challenge in OfferedChallenges)
{
var displayedLevel = Difficulty.Current.GetChallengeLevel(challenge.Ident) + 1;
if (Difficulty.GetChallengeMax(challenge.Ident) == 1)
displayedLevel = 0;
<div class="challenge">
<span class="chl-title">
<span>#challenge.@(challenge.Ident).title</span>
<span>@(displayedLevel > 0 ? displayedLevel.ToString() : "")</span>
</span>
<span class="chl-desc grow">#challenge.@(challenge.Ident).desc</span>
<button class="click-active" onclick=@(() => Agenda.Current.ChooseOfferedChallenge(challenge))>
<span>#button.challenge.choose</span>
</button>
</div>
}
</div>
}
</root>
@code
{
private int RoundNum => Agenda.Current.RoundNum;
private double NextMeatBounty => Agenda.Current.NextMeatBounty;
private List<Challenge> OfferedChallenges => Agenda.Current.OfferedChallenges;
private string EorTitle => Game.Language.GetPhrase(
"eor.commit.title",
new() { ["round"] = RoundNum }
);
private string EorDesc => Game.Language.GetPhrase(
"eor.commit.desc",
new()
{
["nextBounty"] = NextMeatBounty,
["failLoss"] = Agenda.Current.MeatFailureLoss,
["bounty"] = Agenda.Current.MeatBounty,
}
);
private void BailOut() => Agenda.Current.DecideEndOfRound(false);
private void ChooseContinue() => Agenda.Current.DecideEndOfRound(true);
protected override int BuildHash() => System.HashCode.Combine(
NextMeatBounty,
RoundNum,
OfferedChallenges.HashContents()
);
}