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; } } }