diff --git a/Content.Client/Dice/DiceSystem.cs b/Content.Client/Dice/DiceSystem.cs index 2de552f375..224f5e5b0c 100644 --- a/Content.Client/Dice/DiceSystem.cs +++ b/Content.Client/Dice/DiceSystem.cs @@ -23,7 +23,10 @@ public sealed class DiceSystem : SharedDiceSystem var state = _sprite.LayerGetRsiState((entity.Owner, sprite), 0).Name; if (state == null) return; - + // Sunrise-Edit + if (entity.Comp.IsNotStandardDice) + return; + // Sunrise-Edit-End var prefix = state.Substring(0, state.IndexOf('_')); _sprite.LayerSetRsiState((entity.Owner, sprite), 0, $"{prefix}_{entity.Comp.CurrentValue}"); } diff --git a/Content.Client/_Sunrise/Dice/ChangeDiceUserInterface.cs b/Content.Client/_Sunrise/Dice/ChangeDiceUserInterface.cs new file mode 100644 index 0000000000..d01d8afd66 --- /dev/null +++ b/Content.Client/_Sunrise/Dice/ChangeDiceUserInterface.cs @@ -0,0 +1,42 @@ +using Content.Shared._Sunrise.Dice; +using Content.Shared.FixedPoint; +using JetBrains.Annotations; +using Robust.Client.UserInterface; + +namespace Content.Client._Sunrise.Dice.UI +{ + [UsedImplicitly] + public sealed class ChangeDiceUserInterface : BoundUserInterface + { + [Dependency] private readonly ILogManager _logManager = default!; + private IEntityManager _entManager; + private EntityUid _owner; + [ViewVariables] + private ChangeDiceWindow? _window; + + public ChangeDiceUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + _owner = owner; + _entManager = IoCManager.Resolve(); + } + + protected override void Open() + { + base.Open(); + _window = this.CreateWindow(); + _window.OpenCentered(); + + _window.ApplyButton.OnPressed += _ => + { + if (int.TryParse(_window.AmountStartLineEdit.Text, out var x) && int.TryParse(_window.AmountEndLineEdit.Text, out var y)) + { + SendMessage(new ChangeDiceSetValueMessage(FixedPoint2.New(x), FixedPoint2.New(y))); + _window.Close(); + } + }; + } + } +} + + + diff --git a/Content.Client/_Sunrise/Dice/ChangeDiceWindow.cs b/Content.Client/_Sunrise/Dice/ChangeDiceWindow.cs new file mode 100644 index 0000000000..23b0c4a846 --- /dev/null +++ b/Content.Client/_Sunrise/Dice/ChangeDiceWindow.cs @@ -0,0 +1,38 @@ +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Client.UserInterface.XAML; + +namespace Content.Client._Sunrise.Dice +{ + [GenerateTypedNameReferences] + public sealed partial class ChangeDiceWindow : DefaultWindow + { + public ChangeDiceWindow() + { + RobustXamlLoader.Load(this); + AmountStartLineEdit.OnTextChanged += OnValueChanged; + AmountEndLineEdit.OnTextChanged += OnValueChanged; + } + + private void OnValueChanged(LineEdit.LineEditEventArgs args) + { + if (int.TryParse(AmountStartLineEdit.Text, out var startAmount) && + int.TryParse(AmountEndLineEdit.Text, out var endAmount)) + { + if (startAmount < 1 || endAmount > 1000000 || endAmount < startAmount) + { + ApplyButton.Disabled = true; + } + else + { + ApplyButton.Disabled = false; + } + } + else + { + ApplyButton.Disabled = true; + } + } + } +} diff --git a/Content.Client/_Sunrise/Dice/ChangeDiceWindow.xaml b/Content.Client/_Sunrise/Dice/ChangeDiceWindow.xaml new file mode 100644 index 0000000000..dc41ea69ee --- /dev/null +++ b/Content.Client/_Sunrise/Dice/ChangeDiceWindow.xaml @@ -0,0 +1,12 @@ + + + + + + +