6
StarHorizon_Public/Content.Client/_NF/Medical/UI/MedicalBountyRedemptionMenu.xaml.cs
2025-11-15 12:24:44 +03:00

62 lines
2.7 KiB
C#

using Content.Client.UserInterface.Controls;
using Content.Shared._NF.Bank;
using Content.Shared._NF.Medical;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client._NF.Medical.UI;
[GenerateTypedNameReferences]
public sealed partial class MedicalBountyRedemptionMenu : FancyWindow
{
public Action? SellRequested;
public MedicalBountyRedemptionMenu()
{
RobustXamlLoader.Load(this);
SellButton.OnPressed += OnSellPressed;
}
private void OnSellPressed(BaseButton.ButtonEventArgs obj)
{
SellRequested?.Invoke();
}
public void UpdateState(MedicalBountyRedemptionUIState message)
{
switch (message.BountyStatus)
{
case MedicalBountyRedemptionStatus.NoBody:
default:
BodyLabel.Text = Loc.GetString("medical-bounty-redemption-body-label-no-items");
RedeemLabel.Text = Loc.GetString("medical-bounty-redemption-redeem-label-no-items");
SellButton.Disabled = true;
break;
case MedicalBountyRedemptionStatus.NoBounty:
BodyLabel.Text = Loc.GetString("medical-bounty-redemption-body-label-body-present");
RedeemLabel.Text = Loc.GetString("medical-bounty-redemption-redeem-label-no-bounty");
SellButton.Disabled = true;
break;
case MedicalBountyRedemptionStatus.TooDamaged:
BodyLabel.Text = Loc.GetString("medical-bounty-redemption-body-label-valid-bounty");
RedeemLabel.Text = Loc.GetString("medical-bounty-redemption-redeem-label-too-much-damage");
SellButton.Disabled = true;
break;
case MedicalBountyRedemptionStatus.NotAlive:
BodyLabel.Text = Loc.GetString("medical-bounty-redemption-body-label-valid-bounty");
RedeemLabel.Text = Loc.GetString("medical-bounty-redemption-redeem-label-not-alive");
SellButton.Disabled = true;
break;
case MedicalBountyRedemptionStatus.Valid:
BodyLabel.Text = Loc.GetString("medical-bounty-redemption-body-label-valid-bounty");
if (message.PaidToStation)
RedeemLabel.Text = Loc.GetString("medical-bounty-redemption-redeem-label-valid-bounty-to-station", ("amount", BankSystemExtensions.ToSpesoString(message.BountyValue)));
else
RedeemLabel.Text = Loc.GetString("medical-bounty-redemption-redeem-label-valid-bounty", ("amount", BankSystemExtensions.ToSpesoString(message.BountyValue)));
SellButton.Disabled = false;
break;
}
}
}