diff --git a/Content.Client/Arcade/SpaceVillainArcadeMenu.cs b/Content.Client/Arcade/SpaceVillainArcadeMenu.cs deleted file mode 100644 index 3d25d2208d..0000000000 --- a/Content.Client/Arcade/SpaceVillainArcadeMenu.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System.Numerics; -using Content.Client.Arcade.UI; -using Content.Shared.Arcade; -using Robust.Client.UserInterface.Controls; -using Robust.Client.UserInterface.CustomControls; - -namespace Content.Client.Arcade -{ - public sealed class SpaceVillainArcadeMenu : DefaultWindow - { - private readonly Label _enemyNameLabel; - private readonly Label _playerInfoLabel; - private readonly Label _enemyInfoLabel; - private readonly Label _playerActionLabel; - private readonly Label _enemyActionLabel; - - private readonly Button[] _gameButtons = new Button[3]; //used to disable/enable all game buttons - - public event Action? OnPlayerAction; - - public SpaceVillainArcadeMenu() - { - MinSize = SetSize = new Vector2(300, 225); - Title = Loc.GetString("spacevillain-menu-title"); - - var grid = new GridContainer { Columns = 1 }; - - var infoGrid = new GridContainer { Columns = 3 }; - infoGrid.AddChild(new Label { Text = Loc.GetString("spacevillain-menu-label-player"), Align = Label.AlignMode.Center }); - infoGrid.AddChild(new Label { Text = "|", Align = Label.AlignMode.Center }); - _enemyNameLabel = new Label { Align = Label.AlignMode.Center }; - infoGrid.AddChild(_enemyNameLabel); - - _playerInfoLabel = new Label { Align = Label.AlignMode.Center }; - infoGrid.AddChild(_playerInfoLabel); - infoGrid.AddChild(new Label { Text = "|", Align = Label.AlignMode.Center }); - _enemyInfoLabel = new Label { Align = Label.AlignMode.Center }; - infoGrid.AddChild(_enemyInfoLabel); - var centerContainer = new CenterContainer(); - centerContainer.AddChild(infoGrid); - grid.AddChild(centerContainer); - - _playerActionLabel = new Label { Align = Label.AlignMode.Center }; - grid.AddChild(_playerActionLabel); - - _enemyActionLabel = new Label { Align = Label.AlignMode.Center }; - grid.AddChild(_enemyActionLabel); - - var buttonGrid = new GridContainer { Columns = 3 }; - _gameButtons[0] = new Button() - { - Text = Loc.GetString("spacevillain-menu-button-attack") - }; - - _gameButtons[0].OnPressed += - _ => OnPlayerAction?.Invoke(SharedSpaceVillainArcadeComponent.PlayerAction.Attack); - buttonGrid.AddChild(_gameButtons[0]); - - _gameButtons[1] = new Button() - { - Text = Loc.GetString("spacevillain-menu-button-heal") - }; - - _gameButtons[1].OnPressed += - _ => OnPlayerAction?.Invoke(SharedSpaceVillainArcadeComponent.PlayerAction.Heal); - buttonGrid.AddChild(_gameButtons[1]); - - _gameButtons[2] = new Button() - { - Text = Loc.GetString("spacevillain-menu-button-recharge") - }; - - _gameButtons[2].OnPressed += - _ => OnPlayerAction?.Invoke(SharedSpaceVillainArcadeComponent.PlayerAction.Recharge); - buttonGrid.AddChild(_gameButtons[2]); - - centerContainer = new CenterContainer(); - centerContainer.AddChild(buttonGrid); - grid.AddChild(centerContainer); - - var newGame = new Button() - { - Text = Loc.GetString("spacevillain-menu-button-new-game") - }; - - newGame.OnPressed += _ => OnPlayerAction?.Invoke(SharedSpaceVillainArcadeComponent.PlayerAction.NewGame); - grid.AddChild(newGame); - - ContentsContainer.AddChild(grid); - } - - private void UpdateMetadata(SharedSpaceVillainArcadeComponent.SpaceVillainArcadeMetaDataUpdateMessage message) - { - Title = message.GameTitle; - _enemyNameLabel.Text = message.EnemyName; - - foreach (var gameButton in _gameButtons) - { - gameButton.Disabled = message.ButtonsDisabled; - } - } - - public void UpdateInfo(SharedSpaceVillainArcadeComponent.SpaceVillainArcadeDataUpdateMessage message) - { - if (message is SharedSpaceVillainArcadeComponent.SpaceVillainArcadeMetaDataUpdateMessage metaMessage) - UpdateMetadata(metaMessage); - - _playerInfoLabel.Text = $"HP: {message.PlayerHP} MP: {message.PlayerMP}"; - _enemyInfoLabel.Text = $"HP: {message.EnemyHP} MP: {message.EnemyMP}"; - _playerActionLabel.Text = message.PlayerActionMessage; - _enemyActionLabel.Text = message.EnemyActionMessage; - } - } -} diff --git a/Content.Client/Arcade/SpaceVillainArcadeMenu.xaml b/Content.Client/Arcade/SpaceVillainArcadeMenu.xaml new file mode 100644 index 0000000000..bc40fdb1c9 --- /dev/null +++ b/Content.Client/Arcade/SpaceVillainArcadeMenu.xaml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + +