using System.Linq; using Content.Client.Computer; using Content.Client.Stylesheets; using Content.Client.UserInterface.Controls; using Content.Shared.CCVar; using Content.Shared.Parallax.Biomes; using Content.Shared.Procedural; using Content.Shared.Salvage; using Content.Shared.Salvage.Expeditions; using Content.Shared.Salvage.Expeditions.Modifiers; using Content.Shared.Shuttles.BUIStates; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Configuration; using Robust.Shared.Prototypes; using Robust.Shared.Timing; using Robust.Shared.Utility; namespace Content.Client.Salvage.UI; /// /// Generic window for offering multiple selections with a timer. /// [GenerateTypedNameReferences] public sealed partial class OfferingWindowOption : PanelContainer { private bool _claimed; public string? Title { get => TitleStripe.Text; set => TitleStripe.Text = value; } public event Action? ClaimPressed; public OfferingWindowOption() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide); BigPanel.PanelOverride = new StyleBoxFlat(new Color(30, 30, 34)); ClaimButton.OnPressed += args => { ClaimPressed?.Invoke(args); }; } public void AddContent(Control control) { ContentBox.AddChild(control); } public bool Disabled { get => ClaimButton.Disabled; set => ClaimButton.Disabled = value; } public bool Claimed { get => _claimed; set { if (_claimed == value) return; _claimed = value; if (_claimed) { ClaimButton.AddStyleClass(StyleBase.ButtonCaution); ClaimButton.Text = Loc.GetString("offering-window-claimed"); } else { ClaimButton.RemoveStyleClass(StyleBase.ButtonCaution); ClaimButton.Text = Loc.GetString("offering-window-claim"); } } } }