From 2a1b90a0ebc2d2ef529b44a3d7bdfb870e10279e Mon Sep 17 00:00:00 2001 From: Paul Ritter Date: Wed, 23 Sep 2020 14:30:31 +0200 Subject: [PATCH] Arcade fun - Ports over /vg/s SpaceVillain arcade game (#2125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * arcade fun * stuff * removed unused using statements added sound feedback win check fix reworked ui a bit * description rework * windowopen bug fixed * adds rewards, cool! * for unusualcrow * fixes Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com> --- .../Arcade/SpaceVillainArcadeMenu.cs | 112 +++++ .../SpaceVillainArcadeBoundUserInterface.cs | 55 +++ Content.Client/IgnoredComponents.cs | 1 + .../Arcade/SpaceVillainArcadeComponent.cs | 403 ++++++++++++++++++ .../SharedSpaceVillainArcadeComponent.cs | 81 ++++ Content.Shared/GameObjects/ContentNetIDs.cs | 1 + Resources/Audio/Effects/Arcade/gameover.ogg | Bin 0 -> 34901 bytes Resources/Audio/Effects/Arcade/newgame.ogg | Bin 0 -> 5099 bytes .../Audio/Effects/Arcade/player_attack.ogg | Bin 0 -> 6130 bytes .../Audio/Effects/Arcade/player_charge.ogg | Bin 0 -> 9607 bytes .../Audio/Effects/Arcade/player_heal.ogg | Bin 0 -> 9893 bytes Resources/Audio/Effects/Arcade/win.ogg | Bin 0 -> 25881 bytes .../Entities/Constructible/Power/arcade.yml | 9 + 13 files changed, 662 insertions(+) create mode 100644 Content.Client/Arcade/SpaceVillainArcadeMenu.cs create mode 100644 Content.Client/GameObjects/Components/Arcade/SpaceVillainArcadeBoundUserInterface.cs create mode 100644 Content.Server/GameObjects/Components/Arcade/SpaceVillainArcadeComponent.cs create mode 100644 Content.Shared/GameObjects/Components/Arcade/SharedSpaceVillainArcadeComponent.cs create mode 100644 Resources/Audio/Effects/Arcade/gameover.ogg create mode 100644 Resources/Audio/Effects/Arcade/newgame.ogg create mode 100644 Resources/Audio/Effects/Arcade/player_attack.ogg create mode 100644 Resources/Audio/Effects/Arcade/player_charge.ogg create mode 100644 Resources/Audio/Effects/Arcade/player_heal.ogg create mode 100644 Resources/Audio/Effects/Arcade/win.ogg diff --git a/Content.Client/Arcade/SpaceVillainArcadeMenu.cs b/Content.Client/Arcade/SpaceVillainArcadeMenu.cs new file mode 100644 index 0000000000..a6463019f1 --- /dev/null +++ b/Content.Client/Arcade/SpaceVillainArcadeMenu.cs @@ -0,0 +1,112 @@ +using Content.Client.GameObjects.Components.Arcade; +using Content.Shared.GameObjects.Components.Arcade; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Vector2 = Robust.Shared.Maths.Vector2; + +namespace Content.Client.Arcade +{ + public class SpaceVillainArcadeMenu : SS14Window + { + protected override Vector2? CustomSize => (400, 200); + public SpaceVillainArcadeBoundUserInterface Owner { get; set; } + + private Label _enemyNameLabel; + private Label _playerInfoLabel; + private Label _enemyInfoLabel; + private Label _playerActionLabel; + private Label _enemyActionLabel; + public SpaceVillainArcadeMenu(SpaceVillainArcadeBoundUserInterface owner) + { + Title = "Space Villain"; + Owner = owner; + + GridContainer grid = new GridContainer(); + grid.Columns = 1; + + GridContainer infoGrid = new GridContainer(); + infoGrid.Columns = 3; + infoGrid.AddChild(new Label{ Text = "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); + CenterContainer centerContainer = new CenterContainer(); + centerContainer.AddChild(infoGrid); + grid.AddChild(centerContainer); + + _playerActionLabel = new Label(); + _playerActionLabel.Align = Label.AlignMode.Center; + grid.AddChild(_playerActionLabel); + + _enemyActionLabel = new Label(); + _enemyActionLabel.Align = Label.AlignMode.Center; + grid.AddChild(_enemyActionLabel); + + GridContainer buttonGrid = new GridContainer(); + buttonGrid.Columns = 3; + Button attack = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Attack); + attack.Text = "ATTACK"; + buttonGrid.AddChild(attack); + + Button heal = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Heal); + heal.Text = "HEAL"; + buttonGrid.AddChild(heal); + + Button recharge = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.Recharge); + recharge.Text = "RECHARGE"; + buttonGrid.AddChild(recharge); + + centerContainer = new CenterContainer(); + centerContainer.AddChild(buttonGrid); + grid.AddChild(centerContainer); + + Button newGame = new ActionButton(Owner, SharedSpaceVillainArcadeComponent.PlayerAction.NewGame); + newGame.Text = "New Game"; + grid.AddChild(newGame); + + centerContainer = new CenterContainer(); + centerContainer.AddChild(grid); + Contents.AddChild(centerContainer); + } + + private void UpdateMetadata(SharedSpaceVillainArcadeComponent.SpaceVillainArcadeMetaDataUpdateMessage message) + { + Title = message.GameTitle; + _enemyNameLabel.Text = message.EnemyName; + } + + 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; + } + + private class ActionButton : Button + { + private SpaceVillainArcadeBoundUserInterface _owner; + private SharedSpaceVillainArcadeComponent.PlayerAction _playerAction; + + public ActionButton(SpaceVillainArcadeBoundUserInterface owner,SharedSpaceVillainArcadeComponent.PlayerAction playerAction) + { + _owner = owner; + _playerAction = playerAction; + OnPressed += Clicked; + } + + private void Clicked(ButtonEventArgs e) + { + _owner.SendAction(_playerAction); + } + } + } +} diff --git a/Content.Client/GameObjects/Components/Arcade/SpaceVillainArcadeBoundUserInterface.cs b/Content.Client/GameObjects/Components/Arcade/SpaceVillainArcadeBoundUserInterface.cs new file mode 100644 index 0000000000..0c053a004d --- /dev/null +++ b/Content.Client/GameObjects/Components/Arcade/SpaceVillainArcadeBoundUserInterface.cs @@ -0,0 +1,55 @@ +using Content.Client.Arcade; +using Content.Shared.GameObjects.Components.Arcade; +using JetBrains.Annotations; +using Robust.Client.GameObjects.Components.UserInterface; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.ViewVariables; + +namespace Content.Client.GameObjects.Components.Arcade +{ + public class SpaceVillainArcadeBoundUserInterface : BoundUserInterface + { + [ViewVariables] private SpaceVillainArcadeMenu _menu; + + //public SharedSpaceVillainArcadeComponent SpaceVillainArcade; + + public SpaceVillainArcadeBoundUserInterface([NotNull] ClientUserInterfaceComponent owner, [NotNull] object uiKey) : base(owner, uiKey) + { + SendAction(SharedSpaceVillainArcadeComponent.PlayerAction.RequestData); + } + + public void SendAction(SharedSpaceVillainArcadeComponent.PlayerAction action) + { + SendMessage(new SharedSpaceVillainArcadeComponent.SpaceVillainArcadePlayerActionMessage(action)); + } + + protected override void Open() + { + base.Open(); + + /*if(!Owner.Owner.TryGetComponent(out SharedSpaceVillainArcadeComponent spaceVillainArcade)) + { + return; + } + + SpaceVillainArcade = spaceVillainArcade;*/ + + _menu = new SpaceVillainArcadeMenu(this); + + _menu.OnClose += Close; + _menu.OpenCentered(); + } + + protected override void ReceiveMessage(BoundUserInterfaceMessage message) + { + if(message is SharedSpaceVillainArcadeComponent.SpaceVillainArcadeDataUpdateMessage msg) _menu.UpdateInfo(msg); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if(!disposing) { return; } + _menu?.Dispose(); + } + } +} diff --git a/Content.Client/IgnoredComponents.cs b/Content.Client/IgnoredComponents.cs index 0453be7b71..6286b4cef3 100644 --- a/Content.Client/IgnoredComponents.cs +++ b/Content.Client/IgnoredComponents.cs @@ -170,6 +170,7 @@ "Firelock", "AtmosPlaque", "Spillable", + "SpaceVillainArcade", "Flammable", "CreamPie", "CreamPied", diff --git a/Content.Server/GameObjects/Components/Arcade/SpaceVillainArcadeComponent.cs b/Content.Server/GameObjects/Components/Arcade/SpaceVillainArcadeComponent.cs new file mode 100644 index 0000000000..1f4a86d531 --- /dev/null +++ b/Content.Server/GameObjects/Components/Arcade/SpaceVillainArcadeComponent.cs @@ -0,0 +1,403 @@ +#nullable enable +using System.Collections.Generic; +using Content.Server.GameObjects.Components.Power.ApcNetComponents; +using Content.Server.GameObjects.Components.VendingMachines; +using Content.Server.Utility; +using Content.Shared.GameObjects.Components; +using Content.Shared.GameObjects.Components.Arcade; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; +using Robust.Shared.Random; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.Arcade +{ + [RegisterComponent] + [ComponentReference(typeof(IActivate))] + public class SpaceVillainArcadeComponent : SharedSpaceVillainArcadeComponent, IActivate, IWires + { + [Dependency] private IRobustRandom _random = null!; + + private bool Powered => !Owner.TryGetComponent(out PowerReceiverComponent? receiver) || receiver.Powered; + + [ViewVariables] private BoundUserInterface? UserInterface => Owner.GetUIOrNull(SpaceVillainArcadeUiKey.Key); + [ViewVariables] private bool _overflowFlag; + [ViewVariables] private bool _playerInvincibilityFlag; + [ViewVariables] private bool _enemyInvincibilityFlag; + [ViewVariables] private SpaceVillainGame _game = null!; + + [ViewVariables(VVAccess.ReadWrite)] private List _possibleFightVerbs = null!; + [ViewVariables(VVAccess.ReadWrite)] private List _possibleFirstEnemyNames = null!; + [ViewVariables(VVAccess.ReadWrite)] private List _possibleLastEnemyNames = null!; + [ViewVariables(VVAccess.ReadWrite)] private List _possibleRewards = null!; + + public override void ExposeData(ObjectSerializer serializer) + { + serializer.DataField(ref _possibleFightVerbs, "possibleFightVerbs", new List() + {"Defeat", "Annihilate", "Save", "Strike", "Stop", "Destroy", "Robust", "Romance", "Pwn", "Own"}); + serializer.DataField(ref _possibleFirstEnemyNames, "possibleFirstEnemyNames", new List(){ + "the Automatic", "Farmer", "Lord", "Professor", "the Cuban", "the Evil", "the Dread King", + "the Space", "Lord", "the Great", "Duke", "General" + }); + serializer.DataField(ref _possibleLastEnemyNames, "possibleLastEnemyNames", new List() + { + "Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", + "Vhakoid", "Peteoid", "slime", "Griefer", "ERPer", "Lizard Man", "Unicorn" + }); + serializer.DataField(ref _possibleRewards, "possibleRewards", new List() + { + "ToyMouse", "ToyAi", "ToyNuke", "ToyAssistant", "ToyGriffin", "ToyHonk", "ToyIan", + "ToyMarauder", "ToyMauler", "ToyGygax", "ToyOdysseus", "ToyOwlman", "ToyDeathRipley", + "ToyPhazon", "ToyFireRipley", "ToyReticence", "ToyRipley", "ToySeraph", "ToyDurand", "ToySkeleton" + }); + + _game = new SpaceVillainGame(this); + } + + public void Activate(ActivateEventArgs eventArgs) + { + if(!eventArgs.User.TryGetComponent(out IActorComponent? actor)) + { + return; + } + if (!Powered) + { + return; + } + + var wires = Owner.GetComponent(); + if (wires.IsPanelOpen) + { + wires.OpenInterface(actor.playerSession); + } else + { + UserInterface?.Toggle(actor.playerSession); + } + } + + public override void Initialize() + { + base.Initialize(); + + if (UserInterface != null) + { + UserInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; + } + } + + + private void UserInterfaceOnOnReceiveMessage(ServerBoundUserInterfaceMessage serverMsg) + { + if (!Powered) + return; + + if (!(serverMsg.Message is SpaceVillainArcadePlayerActionMessage msg)) return; + + switch (msg.PlayerAction) + { + case PlayerAction.Attack: + _game?.ExecutePlayerAction(msg.PlayerAction); + break; + case PlayerAction.Heal: + _game?.ExecutePlayerAction(msg.PlayerAction); + break; + case PlayerAction.Recharge: + _game?.ExecutePlayerAction(msg.PlayerAction); + break; + case PlayerAction.NewGame: + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/newgame.ogg", Owner, AudioParams.Default.WithVolume(-4f)); + _game = new SpaceVillainGame(this); + UserInterface?.SendMessage(_game.GenerateMetaDataMessage()); + break; + case PlayerAction.RequestData: + UserInterface?.SendMessage(_game.GenerateMetaDataMessage()); + break; + } + } + + public enum Wires + { + /// + /// Disables Max Health&Mana for both Enemy and Player. + /// + Overflow, + /// + /// Makes Player Invincible. + /// + PlayerInvincible, + /// + /// Makes Enemy Invincible. + /// + EnemyInvincible + } + + public void RegisterWires(WiresComponent.WiresBuilder builder) + { + builder.CreateWire(Wires.Overflow); + builder.CreateWire(Wires.PlayerInvincible); + builder.CreateWire(Wires.EnemyInvincible); + } + + public void WiresUpdate(WiresUpdateEventArgs args) + { + var wire = (Wires) args.Identifier; + var value = args.Action != SharedWiresComponent.WiresAction.Mend; + switch (wire) + { + case Wires.Overflow: + _overflowFlag = value; + break; + case Wires.PlayerInvincible: + _playerInvincibilityFlag = value; + break; + case Wires.EnemyInvincible: + _enemyInvincibilityFlag = value; + break; + } + } + + /// + /// Called when the user wins the game. + /// + public void ProcessWin() + { + var entityManager = IoCManager.Resolve(); + entityManager.SpawnEntity(_random.Pick(_possibleRewards), Owner.Transform.MapPosition); + } + + /// + /// Picks a fight-verb from the list of possible Verbs. + /// + /// A fight-verb. + public string GenerateFightVerb() + { + return _random.Pick(_possibleFightVerbs); + } + + /// + /// Generates an enemy-name comprised of a first- and last-name. + /// + /// An enemy-name. + public string GenerateEnemyName() + { + return $"{_random.Pick(_possibleFirstEnemyNames)} {_random.Pick(_possibleLastEnemyNames)}"; + } + + /// + /// A Class to handle all the game-logic of the SpaceVillain-game. + /// + public class SpaceVillainGame + { + [Dependency] private readonly IRobustRandom _random = default!; + + [ViewVariables] private SpaceVillainArcadeComponent Owner; + + [ViewVariables] public string Name => $"{_fightVerb} {_enemyName}"; + [ViewVariables(VVAccess.ReadWrite)] private int _playerHp = 30; + [ViewVariables(VVAccess.ReadWrite)] private int _playerHpMax = 30; + [ViewVariables(VVAccess.ReadWrite)] private int _playerMp = 10; + [ViewVariables(VVAccess.ReadWrite)] private int _playerMpMax = 10; + [ViewVariables(VVAccess.ReadWrite)] private int _enemyHp = 45; + [ViewVariables(VVAccess.ReadWrite)] private int _enemyHpMax = 45; + [ViewVariables(VVAccess.ReadWrite)] private int _enemyMp = 20; + [ViewVariables(VVAccess.ReadWrite)] private int _enemyMpMax = 20; + [ViewVariables(VVAccess.ReadWrite)] private int _turtleTracker; + + [ViewVariables(VVAccess.ReadWrite)] private string _fightVerb; + [ViewVariables(VVAccess.ReadWrite)] private string _enemyName; + + [ViewVariables] private bool _running = true; + + private string _latestPlayerActionMessage = ""; + private string _latestEnemyActionMessage = ""; + + public SpaceVillainGame(SpaceVillainArcadeComponent owner) : this(owner, owner.GenerateFightVerb(), owner.GenerateEnemyName()){} + + public SpaceVillainGame(SpaceVillainArcadeComponent owner, string fightVerb, string enemyName) + { + IoCManager.InjectDependencies(this); + Owner = owner; + //todo defeat the curse secret game mode + _fightVerb = fightVerb; + _enemyName = enemyName; + } + + /// + /// Validates all vars incase they overshoot their max-values. + /// Does not check if vars surpass 0. + /// + private void ValidateVars() + { + if(Owner._overflowFlag) return; + + if (_playerHp > _playerHpMax) _playerHp = _playerHpMax; + if (_playerMp > _playerMpMax) _playerMp = _playerMpMax; + if (_enemyHp > _enemyHpMax) _enemyHp = _enemyHpMax; + if (_enemyMp > _enemyMpMax) _enemyMp = _enemyMpMax; + } + + /// + /// Called by the SpaceVillainArcadeComponent when Userinput is received. + /// + /// The action the user picked. + public void ExecutePlayerAction(PlayerAction action) + { + if (!_running) return; + + switch (action) + { + case PlayerAction.Attack: + var attackAmount = _random.Next(2, 6); + _latestPlayerActionMessage = $"You attack {_enemyName} for {attackAmount}!"; + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/player_attack.ogg", Owner.Owner, AudioParams.Default.WithVolume(-4f)); + if(!Owner._enemyInvincibilityFlag) _enemyHp -= attackAmount; + _turtleTracker -= _turtleTracker > 0 ? 1 : 0; + break; + case PlayerAction.Heal: + var pointAmount = _random.Next(1, 3); + var healAmount = _random.Next(6, 8); + _latestPlayerActionMessage = $"You use {pointAmount} magic to heal for {healAmount} damage!"; + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/player_heal.ogg", Owner.Owner, AudioParams.Default.WithVolume(-4f)); + if(!Owner._playerInvincibilityFlag) _playerMp -= pointAmount; + _playerHp += healAmount; + _turtleTracker++; + break; + case PlayerAction.Recharge: + var charge_amount = _random.Next(4, 7); + _latestPlayerActionMessage = $"You regain {charge_amount} points"; + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/player_charge.ogg", Owner.Owner, AudioParams.Default.WithVolume(-4f)); + _playerMp += charge_amount; + _turtleTracker -= _turtleTracker > 0 ? 1 : 0; + break; + } + + if (!CheckGameConditions()) + { + _running = false; + return; + } + + ValidateVars(); + ExecuteAiAction(); + + if (!CheckGameConditions()) + { + _running = false; + return; + } + ValidateVars(); + UpdateUi(); + } + + /// + /// Checks the Game conditions and Updates the Ui & Plays a sound accordingly. + /// + /// A bool indicating if the game should continue. + private bool CheckGameConditions() + { + if ((_enemyHp <= 0 || _enemyMp <= 0) && (_playerHp > 0 && _playerMp > 0)) + { + UpdateUi("You won!", $"{_enemyName} dies."); + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/win.ogg", Owner.Owner, AudioParams.Default.WithVolume(-4f)); + Owner.ProcessWin(); + return false; + } + if ((_playerHp <= 0 || _playerMp <= 0) && _enemyHp > 0 && _enemyMp > 0) + { + UpdateUi("You lost!", $"{_enemyName} cheers."); + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/gameover.ogg", Owner.Owner, AudioParams.Default.WithVolume(-4f)); + return false; + } + if ((_playerHp <= 0 || _playerMp <= 0) && (_enemyHp <= 0 || _enemyMp <= 0)) + { + UpdateUi("You lost!", $"{_enemyName} dies, but takes you with him."); + EntitySystem.Get().PlayFromEntity("/Audio/Effects/Arcade/gameover.ogg", Owner.Owner, AudioParams.Default.WithVolume(-4f)); + return false; + } + + return true; + } + + /// + /// Updates the UI. + /// + private void UpdateUi() + { + Owner.UserInterface?.SendMessage(GenerateUpdateMessage(_latestPlayerActionMessage, _latestEnemyActionMessage)); + } + + private void UpdateUi(string message1, string message2) + { + _latestPlayerActionMessage = message1; + _latestEnemyActionMessage = message2; + UpdateUi(); + } + + /// + /// Handles the logic of the AI + /// + /// An Enemyaction-message. + private void ExecuteAiAction() + { + if (_turtleTracker >= 4) + { + var boomAmount = _random.Next(5, 10); + _latestEnemyActionMessage = $"{_enemyName} throws a bomb, exploding you for {boomAmount} damage!"; + if (Owner._playerInvincibilityFlag) return; + _playerHp -= boomAmount; + _turtleTracker--; + }else if (_enemyMp <= 5 && _random.Prob(0.7f)) + { + var stealAmount = _random.Next(2, 3); + _latestEnemyActionMessage = $"{_enemyName} steals {stealAmount} of your power!"; + if (Owner._playerInvincibilityFlag) return; + _playerMp -= stealAmount; + _enemyMp += stealAmount; + }else if (_enemyHp <= 10 && _enemyMp > 4) + { + _enemyHp += 4; + _enemyMp -= 4; + _latestEnemyActionMessage = $"{_enemyName} heals for 4 health!"; + } + else + { + var attackAmount = _random.Next(3, 6); + _latestEnemyActionMessage = $"{_enemyName} attacks you for {attackAmount} damage!"; + if (Owner._playerInvincibilityFlag) return; + _playerHp -= attackAmount; + } + } + + /// + /// Generates a Metadata-message based on the objects values. + /// + /// A Metadata-message. + public SpaceVillainArcadeMetaDataUpdateMessage GenerateMetaDataMessage() + { + return new SpaceVillainArcadeMetaDataUpdateMessage(_playerHp, _playerMp, _enemyHp, _enemyMp, _latestPlayerActionMessage, _latestEnemyActionMessage, Name, _enemyName); + } + + /// + /// Creates an Update-message based on the objects values. + /// + /// Content of the Playeraction-field. + /// Content of the Enemyaction-field. + /// + public SpaceVillainArcadeDataUpdateMessage + GenerateUpdateMessage(string playerAction = "", string enemyAction = "") + { + return new SpaceVillainArcadeDataUpdateMessage(_playerHp, _playerMp, _enemyHp, _enemyMp, playerAction, + enemyAction); + } + } + } +} diff --git a/Content.Shared/GameObjects/Components/Arcade/SharedSpaceVillainArcadeComponent.cs b/Content.Shared/GameObjects/Components/Arcade/SharedSpaceVillainArcadeComponent.cs new file mode 100644 index 0000000000..786cf62aac --- /dev/null +++ b/Content.Shared/GameObjects/Components/Arcade/SharedSpaceVillainArcadeComponent.cs @@ -0,0 +1,81 @@ +using System; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Arcade +{ + public class SharedSpaceVillainArcadeComponent : Component + { + public override string Name => "SpaceVillainArcade"; + public override uint? NetID => ContentNetIDs.SPACE_VILLAIN_ARCADE; + + [Serializable, NetSerializable] + public enum PlayerAction + { + Attack, + Heal, + Recharge, + NewGame, + RequestData + } + + [Serializable, NetSerializable] + public enum SpaceVillainArcadeVisualState + { + Normal, + Off, + Broken, + Win, + GameOver, + } + + [Serializable, NetSerializable] + public enum SpaceVillainArcadeUiKey + { + Key, + } + + [Serializable, NetSerializable] + public class SpaceVillainArcadePlayerActionMessage : BoundUserInterfaceMessage + { + public readonly PlayerAction PlayerAction; + public SpaceVillainArcadePlayerActionMessage(PlayerAction playerAction) + { + PlayerAction = playerAction; + } + } + + [Serializable, NetSerializable] + public class SpaceVillainArcadeMetaDataUpdateMessage : SpaceVillainArcadeDataUpdateMessage + { + public readonly string GameTitle; + public readonly string EnemyName; + public SpaceVillainArcadeMetaDataUpdateMessage(int playerHp, int playerMp, int enemyHp, int enemyMp, string playerActionMessage, string enemyActionMessage, string gameTitle, string enemyName) : base(playerHp, playerMp, enemyHp, enemyMp, playerActionMessage, enemyActionMessage) + { + GameTitle = gameTitle; + EnemyName = enemyName; + } + } + + [Serializable, NetSerializable] + public class SpaceVillainArcadeDataUpdateMessage : BoundUserInterfaceMessage + { + public readonly int PlayerHP; + public readonly int PlayerMP; + public readonly int EnemyHP; + public readonly int EnemyMP; + public readonly string PlayerActionMessage; + public readonly string EnemyActionMessage; + public SpaceVillainArcadeDataUpdateMessage(int playerHp, int playerMp, int enemyHp, int enemyMp, string playerActionMessage, string enemyActionMessage) + { + PlayerHP = playerHp; + PlayerMP = playerMp; + EnemyHP = enemyHp; + EnemyMP = enemyMp; + EnemyActionMessage = enemyActionMessage; + PlayerActionMessage = playerActionMessage; + } + } + } +} diff --git a/Content.Shared/GameObjects/ContentNetIDs.cs b/Content.Shared/GameObjects/ContentNetIDs.cs index 7ae6ce8c27..9d47e3ba1a 100644 --- a/Content.Shared/GameObjects/ContentNetIDs.cs +++ b/Content.Shared/GameObjects/ContentNetIDs.cs @@ -75,6 +75,7 @@ public const uint ROTATION = 1069; public const uint MOB_STATE_MANAGER = 1070; public const uint SLIP = 1071; + public const uint SPACE_VILLAIN_ARCADE = 1072; // Net IDs for integration tests. public const uint PREDICTION_TEST = 10001; diff --git a/Resources/Audio/Effects/Arcade/gameover.ogg b/Resources/Audio/Effects/Arcade/gameover.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1e430022d7bcc0af8f7963a0da4cc7bdcfafa9fc GIT binary patch literal 34901 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/Arcade/newgame.ogg b/Resources/Audio/Effects/Arcade/newgame.ogg new file mode 100644 index 0000000000000000000000000000000000000000..428665041ae473bdaa161e6f4379a9e1cfb973d7 GIT binary patch literal 5099 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 MZH>uWb4$yA11^3BTL1t6 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/Arcade/player_attack.ogg b/Resources/Audio/Effects/Arcade/player_attack.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bda8be0d6df3e97cf7c35faff4000def96cc7ce3 GIT binary patch literal 6130 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 literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/Arcade/player_heal.ogg b/Resources/Audio/Effects/Arcade/player_heal.ogg new file mode 100644 index 0000000000000000000000000000000000000000..37074b7230c78f5bc660180087e06961832c9b8f GIT binary patch literal 9893 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 F{|7rGQ@j8G literal 0 HcmV?d00001 diff --git a/Resources/Audio/Effects/Arcade/win.ogg b/Resources/Audio/Effects/Arcade/win.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8fe7429913c53cae929df71c92fccf03434e7e35 GIT binary patch literal 25881 zcmagG1z1(V+b=qs*mSqFK@gM<>F(~9+z2X43J8cGD2+6dN=Zs1U4o*3G}5{6 zLjT`)zI*O{&Y5Sip0#IYP5$0@e(yW8&~$Kk0MNjHLIT&nhmT|&Q7{IWzlXQAlh1V& z>~86QvIM~XJ~Y5IuiyOdaQ)_WilGq60P!&D{}sNV|0{_5I^D_Bkx$dxfyvd$TK{kH zOv+3`0)j#ULIT1}oSJU#PM+R&K6dWD2uvtD5%gzk!eo18M1IO!&WGtK_phJ21fHd*JnN#ii52YruN#wy zEd>A=0Lh6HpSz;$JS6Er%@OaNBk80eQOJb#Tzg3p=kp=EjeEg|0vGoo1RFMi5i}%d zK<+;CV{)DAn{_nv6Kd%8l+L@CxiHfkm#Zk}5w1`#Q>2>E@4RFUsozDp@lxxYA4cTy zct3nqQ4^fdw<&Lin}zrcNv>x8=Z5pQA52hNFiFqTl{x z${5MmACx4__?1&k{(7waneJh7#ZOrh~`YjWlS=41xn1j6JT!Cpij zLtMO)N^zu?4h=`X@1wsxX96IK_%Dk8>-HDQ|4^Kl^qi}Yvt~f3pXd5k+A$=xQQ1MP zfG-H4m`4;saa`@n8=rE?`!4yllg8ZnDLN{M{C^S!O)8UZ;vG26Um5Z4vbc z6lS9oeq)q&55&yIMD51(>?Zu}X6o!r>O+m{{v$B|#Ab2I?|(?nwTRr5j9*5 zCx#=@cMos^(GO|JO&EQD{JY6{-H`1OU*Mh_Cur zk7(=gPUwhE=(mbBfq10%8uZ)9FU>KXal86E2xOopmLsSng=DD?E| z^kxp-^io5=`|6n)*v%a48BvCrOg;X76#AX|y5y+|KPc5|($1>hZ;{g}!^!zwQAq}8 zNl9@@om)wHnaR7gl6NJ2)ea@)rG3>E@5@~`pw#lBl4_ok5}xDBY0P)(bUzX}2hDW<=$_C?0Pz75A=Wy@{*8 z1*%AJzT1QDqX3=RoEVglRb7S`YSVj+Gwd?g?R74-eB_r~fsfOZ0AT}mjSaFsxwp*R zXh;bdfHSX>KOpAnV)7-{S!c@A6@)YUXsC42rD&-*GpCGmbu;P4EB9t5ld3o(Qoib7 zz0KEBae13EspC>rFmAoYlt-!J#GCTf*txiS+&GrRhFEAd&vr-|C;!8B0#wv$P9CAW zN`4->stT|E00iXRuXpYj=aD{8F0O@&%Fm-zRS~QsH*pu7q=VkbBQ;S*bdx`D1Kk8`f^?Q-#UJ!r$9x$icC^bDSMfuGmx2lT~uVeiZY@uNkt86m5NH$V;y5x!O2V= zS5c@{P*F)LuDspGCTg{Q#Kw4kTUA!8@8Vq64OPyTPpzs_RZHpOF1T_-#i{JN^5QN^ zlX$4|2QH!olg`%(CT=p589pjyljAyZP=bwH^F&7Q&VTjX+L^a|(z@)ra;~bENl@i0 zv&ONKDPOIjqLOrCp*Kui8w*mMp@a;bnA(+DA6L<%apThKI#i(*!Y85eP#@AdNOT~F z#Ieh{Rw377dna0FNZEd(4hxCBNx;4UP^-As_)fz#wuM~+bEk=qd8%%_ItC7;{|8e3`~ zLU}G4o1r_Lh$t-;F2rME6=k-3h;-x9L43}2B*l;pYS2GDVu^2!FZhJXS67IOBuY(% zqc{Q@(K0^>3i(|F#?ECQrsc599#0CXvO!R=FY8PjtUh7O1NvyXiN{DWzlq4OfI;cy<-uTeib?ILx zq!@29LC|m&^(Tg4)orYxQr2bYQqG(|X$puVOa&?0-yKVqQ-=w~;SAh}9+earNT z|6j!9e?8&+|8$}l;#nm6&}!XHO^f}Hl`E0{{b}R+ACjK_@8|#E?Ej0s|DT>rT*@HG z{m&baYsJL^C@fn2dlHBncs$pABqoH2UPn6AVmN)&6U16x6f`|=6;vcS*&vi45Dkcwouh6Cm$b zdOdlWSMzyv>F-=KLu6b2?`U5e20GAO^*1x~zjv>>AOunLYc0&O#+uuA(^cgAXLK#cUKN1E2f%CEc>^)o z%hZ(_m8u$*=uK?RN22pw@?MqQeVQ)ni4?(n@&`IDYnj%u+L~E5DuNxQDf%j$FCKmM zF0J(+fUI05Y#>0)EF2*RBd6|#DvH8DfSk&<5kXT7jGv@JxcIm|Q9fUt&;fB&FaC>Y zLwr)Ql8ATKQozvEvKI@99~bu_25(KM4byDik12`?gE_hjMxKa_By$h^L7>^tjw7X* zPx#L$hXDovk_eb?-pr7UCrltpBz{4XM4C*N0>Kx6B^Z(jAXzb^qoeKPb32yNS?}6L z<#qnVxVCiv1#IkprV0l16C3+KM*IDLY1c;kbv4HHuTo`1h5cO++*~4Jp}yP*Zhm2| z)R(;6!a_VR-|+HqiSTi-MguihKbbd)k1i4;Ojyx{psmxft3tu;Rh5Jvx>-@u*xERj=Wq# zm9J*PvQS%BZ`7Hu0ARJ;;RZ}G7?-i|>z+lJtvq~_xpeYpHXkYg3a&0?gS5@2W{7-p zuuA8-&|B$NrsqO{q=H93p=~ZF5u8Ox4-j)pG@A&+sE)D+3 zlgag0xen#R{p7^LVdb`m8`hfr-{0}v1er8lvUQg=-8-`L9$aR*9!NPfvAO(j8eCq# zJ<-BGVJZo7KX|3OQO8N(3NMziTp(&6t(UC|+_YQImd?&lakbDWoFojpNM=93+`s5g zdl2b=dcG+0C7C^D5{1I|m7my8Sl#PBCTiy=33CxepJK&7a%~Gsi>Vs^BQZL;@{zQ# zkR|;1nBv#4{wmw}<;BHCDeR1@?C4EjiEFZjxCP^8Y{<`q5m^k-N(-h7Nx{gl6_8&q z6a?3Ux(9Bpq5?Ts9Giv*?Ss$H&uf}=o|}8!g(RM9(B3bfT+E`s?ytIK7dYPg2#wrV|X*@neE$jZN5EcSP{Ha)+CB2^6sBZ?GnoqUo_`@ z*!;}Ok@aCpW22@zb^DSE9jazJ{5*|?AJReuZ=Na=9TP_lAgkSBE{dxSh z?g6WovVcX`=A0aj2Y%Q&xmB?Ajl6k}{0Hz0n!zbIMwg4L{p0h;1CnV>8fYX3CiWFp z0vcReZB^*cRog|6@YM}KEX|AKY&WZA#@3c$@+TF2_W?6bc%zb?oR*y!|A@sZnwFK# z68fv|g%a2WK`}?L8^y`vQ(dgP`2K#L45JN7Ms6sot=)Js&49~@ZHge%qrDXrxAG2K zJ7$znZHYkj*(hgttA;T6{iu1!EynnDUF&4=4HJVd|4frFWRe08`#i**@6guD>0sE1 z6J(m7TD9gM3O=7Y<9$0j$qBpTS#Sfxa!Z|aJ&x;e!i?7NvIYKqnW>Ui3h{D{&Z$AF zwQDy+5f%7@S@)~v%nlLQ{dRB*r;S1cm|{`GqR>KQ&oRz?=zpD3L*ofX7#D4{H3=#; z#B1>R7jsh3N^6!0z|yvv^tDF~m%%2M zcFF~5yOh&f%RC)cg#-|GDPQ9rpNbQobnTM%9cbdJwi_H#&ZcP|GCrr1}C-$b40W5t%4or zf@tZbG}T9$g00>hd6x4>oIP;Vr?f$WIKEYi4@2zv1?pB(t-Iv5E=7~!Nzo1qO&U9= z;FHD+nMU;A_Nvh*PG|&=_eCtk@@B2iqXn*fT<)gATuI!K9 zTjN&z1Id5heiH$wOD3usQ+d$IWEJZ5o?T<=v159e$Z#Ed7h8F%MiFbW&`+WRpQ-5Ouq zH+eCWVn5>#ur;KR9CAr_>a@IRx}}2y*@S)T^HbPD%)5G4aHM()dtFs)TIyucA0@+= zxSWfMUQjQhb0d#EulJPu)ky0Y=anD(2UlRLv^QHvj0!#?Qna7oYAiq}4N(x- z6@8f&jplC~SMhowh6dXx*l;IVP3b&hs&=p(bm|{IQ@-50#cOo4|+`@ia$?r2Jt<#b<+H2z=#X2Ug-PCO_e2!dpGUy{vkI~I}H@Y7& z$xx!btCrB^P5*<9+5+0lAxikpJr0`gFHmp2_<_O@meqR`PTd$#cm)HbU-ZEfI5le} zK`B~e4Gl1rb^8r4%#&@9q8`T#pB^|LApFE9bZy+JSFtU}HhZX9bY0?{9h}IBM4^?g zN8yzHuUVx1{qqt^cA7N_0ynglW=b#Cgwme>I-SIDl6yF}`hLpfU0|^JM(4X8`YeZm zMR%Yt54Jt74KgE$1m#?AjxRAfUzfP?Ir3_ZtXJ;58q$wQXw99rvAE{3hd;f6lpNM1 zHT_+|pD2P1)K{PPBbp8p;n4olcqPo2Th4uqvYigNY>}g<_K!El@?u4h6CHmu|IKE! zbx?QsekEETzat8(Xzn+PoT48Js;R?ujQbF4w%i{5z7qm5>vgTP9`liHudJ)C+-0Feau>ZYm=(;IExBQEE2T;KwnNJ~|W7+HmMJ|yUdRSIeB*5XM zv6q2Dvhfz$7^TYw07-p~$lBM@?&Dn#Tmv{8CQ$i}4-$L1%zs%pGc~}-|Fl$aT4@sBhqui%e7AnIP)6Y6|`35lZmz_PHe~xcmwUBC<9Im~j&e?aLN$BqAE`UO zKj!>uWIa<26+C@;-g-gx;_~uCdbk_`GUdh-!Un=Mq>L0E zNc?!109!hfOcMi-U|6*Gc`!$|f8uA!3}Z_F^zvq%dn26(cHO&eVzuOA1y7fQY9Zz? zhzb^kc9p6%C1oLJ05lQf)xWM*++JPVI1oNpyV+l#S~Z*4bv4!ISi|^ii;mD47*Z}Qm3IJM=qEpPb6%er3IbU{QO7| z^}@|7Z*mF4n4EyCSEf>s$+;=$_>TTMT*E=2Wf%iU*d2yap{1CsHXR)v{l0u!Z*b8k z_UnebLYGi#7ZWD1`JqrgfxKYFAJI1u$M7}puT^yymPUOq!^^XFgUNl0!o52v zn5NqYxli@J!IwVhbo0N10TH~xdl(@qstX-cM-Q*=*>ju!sy7``!O&WxJg6QpXMXRA z-TfXQKO5h+r4|fEfe?+D&&vC&ttf#S{xCa6c@~D8-9J+;eT~7!)Z$UE`zqN-giCNh zO4mGNtp0D?pYA`78M}E2YbwNy6SWA%TEkV(vu@HJIy#TQgzJLjbYNgJF7&mMW6%-T@5o+S+7vSUN=Mxtf;1j8?;t}BEL-2|S zeX8Q(5fl+=Dd6H178cyfGqy@TiWGZt(>H17b$1YaWCWMIvn+uWc~G|3guQLjA-zx# zmM1^c_S*>!8J2Pn2E>}~E!-ChYK+>ozsZgn?n=6)9xyXy3{`@U{MAgfaAnWyL-s1H{g zxInHp_2{B1XVkb>U#GsX;=&yg!k}}H?H3ny1R&?ea}S(&6KiOl>OJqTl%)znZ1m0P zTL?OEdaTT5zW_hKF|_H=5+J<~&VCG?Uxr_E)WfjG56Tw#G-W%bw}VjFYca8&t(S?e zAtB`M9(-BD9bOCjt8(3+wqVRDAeqvU?#z z`=y`XQQLfyq17KuP&t}o`m0TW(gado`}I@89L-(dOkca$)aGZ&Vglsr6wRk^rYQlC zpkka0c?%sZh?eDcH<|)WR0LeWuoTE1FI-QdxHO>3NqY$!{c~{a=yChU;Ju-T?tuQP zhi>3pVLG8bxBN}8f9vI@zWI0b4zD;Q0}S3a0i&;k4Ft4>&|>5zUtymaw0>LhCIc9c z(DJ>V&L8gE*k{y#ODWra=J3^=UOZ?Whi!dpWcm|Q7#+Zk6kn$u=e*j7&%a|~Y;kK^fr^5Hzv3YCmfxZ1spt=QAA&o;-yLfEZk&>FM$6R^i6RTHdid@I ziWnL5CuE{R?^^RWG^E>1V!?qxdsi1-Zfe1BPZ%9lcl;y>qo!9fcW7sHdl=Vx9+_|y z=NWS1qazT`w4Z_2iW0PhsUq#Sff4K4sxCP5`4zMG5`wd1=~SVnWaQ(w?~mWBePVcU z&|;W<+YGVB%ip5B9Ns;jF%CdRm5P<17-^_U6B$xjTm&lzN*0VLMC z++XJ~y4-;W4AQ(qLrqGUhL`8(JI#c%R8^4H2MznjVKknBtT3_Fd2&1DlW@if;Ujb9 z7wPWD*&i=?*iir+vkQP!0)Zg{{)3+=$6w~7HEku-+s!_pmhl&PFv-a{-o zAD^ng+Ne&!4^|qR*df-gdNp;-fMdvN*50&OG=S*J-YHe1P2Cd!iq7YLs1nLUe*EXx`) zdQc5Q1&8!Iqg0*+XIE}GHOnSlD3`gk|FEIxRM&&Gz5dYeI%>|C)Qz{^{2S~|TtuOP zFgs3w>8tX#=Gp2>>gdM(E880z#!Mr)BDW=6koz?))|s9qdGs5%#xGLQmR2I*Z32T# z0O%@p9WZRVQe3|L$zgMdPHg<_?z}E5z|ws9{F(3<_Q)k2s;T_9mi1j2OR1^((1NOQ z=j$68{>OTy(I&g%jIwh0RP|x#m7(E0#T-`WoWMMr9)NH338LN>Y^&4hZB7TQAk+B! zo{e0-*LQE$1c^A!1i*X0Q{4kr>1Dx*j!rc`<_R;wj{s`oD*xdO9BuaoKVR$+g_2hd3;)4fR*j2JV-(sOHMgZmtoiC5_ z+C`Jr;u3NZUDrPEr{6yrv0?;ZNl1uyuMt8%;Zm)fg~o%$J!q=2WQhWD-)F2dYh6xU z9IB{bZ*LO{v<6&-TX&1-Ex#2o{QxHD6<;40oClx)z8{%48KD;~NL;-dWEV+QGlt#|wUJEs_mH%~q zF6cbaYJ&N-kEM~(HjW59;>L!u7ami3*_9D}Ef_ai`i>!2gASxkCD{LvSY11 z4n^@l>ZQQg-?dAknNq4HD?hH*(M@rFe+SwHtiXfREhCT6T-mel32}|F@>TU;x9rc; z6dnaWU4k?Hpd3-Qy1d9j&jGv7EA8dc0E&y~E@?9r3wmhF^5VipA`_gTh)5mxvr^|d zdC_54IBIb|*dQ>IL7c1}XPaC~(_#pw!+5Ox00wmVy846B2`uIqam!VOI}Yy((@m$M z#)hA$g%J{SjA0cfTRbk(+A=|eS9UHeNTPDOa*fo!K>eQCW9g!8MTMSNus%F~5GrW; zNpAiC2OQU}geUc$4M!4!STwLC{8`R?9JGa-$`1y%;?eFuy?KCpTRg7eVL!kzZFj>S zia?4I)PI$?Q;f{yeD}?r0zjLYyO~mZUG6Ad65(#m3J+RioOA?|iever>x<6lM;HHU z49ulS=H~#&$e0otC2Bv)s;3tN8PsJ*q%<|LzYQ!RWD}a7hopan9H*e|hDDoct_Q(q z|1uzG3XLoC;VO&f;qPn5NNJ;VS@L&`eHR=sZM-$a{aZO&P-$t2GH1}^QkLbdmbCBr zToSZzhrN`&fA(%&{|*-y1?DbsX#JptV2PwP3=GSLS8V=?mk@=2TVM{5U*E;#usw_l z>r!lP*+~nvB2dAs{@5@(Rc?a5D{2X}^z=3kgDzbF(zsaE!vfSj&D1hReB4Ug_!)G; zv(WG~_O3qd&l5a|>sY?x%0YoMKcTklj|ym(6$`XLi}+xtPEalS+H&RK7Zo5fm%7uE zijL&BzId6jm`Bw)5`~A()a?<&SoQ6}lK;A>rVgZ&L$8cZ`Zk{5gfRnT3cm=A(CpA5 zWE@unZI{&r$Arta2(;eBI5mn-2p>zWI|zEKW!NqB{)1Clp&a^%RGWui5o31SxEw1o zCxLAp{3KA_fgkzpwy{VWR}hoJ4Dksi5Df?Rs|fIkz|huF-QOU=5>@I!bOvqr-RKX+ zIod)I-QRsNkC*TTO`zQfQ{`!)2*>1$aG}>=eBMBtD4r))WqTD*OG6I~5d1Dv|E{=f zarxBkLg>?_G^|q{X|M7~KFSYJC(E@{1nd%|vW3MLZJ!JPX@EN%3eHIJYc}}_+ zsVC0cu#^tt*3CeszF!1&@cG5X)5MUsU9abkQsm~V9}uHqKhL{OVO3@%l|%OOMF>Lh zjxq(=mzkHVNW-VV)FOzuWeRk=2)L5tlE*HJ7%I&GcGN= zCgTIS6T-?{+cE?|juQ~y4{W4ErlD5T5PgVK1<~&oE#+%1oOkBa{_b;wjZ6u$kJeli z5M>kW?zeCobS1d+vIzpOY@=WP6PaOjegCu_9|K z3k)MK-%{EZtbj#gtGGb#n5+-dq@U#dXri}HqftNbj~*+qcrh?a&(GHre*82XOYvqk zf4$=|d8z*U#gJv9^=DgjNpXtk=pe*7#-3={?IB9r%D;=WnQPTPqM@oBSKf1!pJGzF zg+nxvfc{jn>v5<$Y;dovtH|J!5SSHTz_@MqvsLq?U}J3ivR{8@c+PhN+6u0;s{Go< zfDEm8j&TCO)UDNhGr$xDix3Atp)E?U1X+$-tM$x{Lz!=GXReI>-5s3-15Uu$B}`gs zwWMvLeEmgv`Stl}V7QvOUverPaLd3z1#ulwX$$(wZ^b5hw25q#yDY4n#rV(6u(1sX z9+4syk*_SSo}q)I*5dF9h_|}~Ee&uYqXF4RAF^v8!-)bYm-V#6-$9OVAXYz5{rh>- ziL4^m?}X#+iJ;RO65~hs^|Ao4HIe3IGjy6GN7Go_1in21%n`(quqHZ8WY`6L$-ss- zjJEYl#HgBu)oAbzY-v*AH_)nvNZ7pBP5>V!@@TKM;(C1ma{xH@-LR-V+VX%?r3dcp z4BveL9kt&02{j0Sy9A!}^o*Ccsew5R6e&YUTIIctmxfLQ5&^JCvQ`NlXC;;SX&o9tVzzZy7>Ah>9&-2lEPONdQ1SyTZv*V7 zCYWbYF;)ECbG!C56Ds#MTro$RYO!o}7RDp@W>J4~6M6IxrPwOz3Nhd}gkp*)l79@g zu7sqQKbcR`5oddcy?wfO!1lAEb1+2SZ>V>>_IB^(bM?LT8zMwlk-G*1vrhWozG*Kn z{W`WL?IAX86kif*n*1fIFk2taLK16S>nu>Men}J(*7f6KpQIyGgN4CCWvE>r^UKd) zo;2Qhd?vZD*LtKZ?31ebN8<>0mSZ8hX}tX^fV%y7iv0`X5&%;I2`n-$&l4+{Vd-!B zC2>A<)+(Wpl>48#xVROV?!V`RfvF4q%Fo#M_7~^A&PKSo83kk~m2WSG`{WQ88k}Zm zMQNgjNx=M+VqMWop1B$~Mf9H9(e>VOK0UL@lqTH(BR&7C1f$E7(cjABYn*6WvVTxl zo?9FEhuB$Kw8?HA4?jAFuQj)u;f0Ac>^EYjg&RoBhPFJRzyjn!JNy=?_JH*=;jB2( z8zMJyV19B&-j8rrHd;D95(K!lB2u2v=KN^sH~ehSXgk@CV;2?}U^7J@!05D^xu7vL3@6c!Q^6yg^W6>Z|> zMo5T!h~ei$h=>YggxtPAh~@I`iu&SHAxCU6&S50;?KJt5q#Ua@VFaBXwmTD@KOQ`X zf879NuI@^-@gIo6lsEm~qcfwYNYcMFk;6&P&qcoT7hRb8+GFtQ+3-oXRw| z{4-qpD{14Urt>`{2kMu$TyMB99%#^2UNhU&Oxw&)lOrZ4IoKcm*g*)<0^lwr?j!2- z=w=DFN)b_HvXg_W3Vj=N{$x>om`EKgfy8g$SC4U$4^YiXl`^omumVlBLQPoINQP&QXM_py0q+QEJ%?tlbUx)_U~DjdT~C~qVhzR? zH%qp}kLv6d)O1A9*(~0O_outHw71RB&(jo}kx87!$rfTeFQu*CLOjap!#r2XG*c>Z zu#NR?<9Nvwb9WdbiaiA)`Od8=*(eo;wnbJSId z$+U`|3`2E{G&t=XS76Sjs04h92) z9#gF3ox5|$cb8T}<{g>AH@ZWxbRg&ARwK&Q_8SEUA{&`L<&>ATSp~Y# zYP?&Al7}!DC)h3FU~=N#lPuU>gbNs!e{QF}-mz_M63KQ0Kr7+obn*S_>Z*e{q=y4G zhm$MNNX!k>pm*y+03U<2FEX*`&-Ovbw;ov@nAA6 z%bK#>!H;wyf*V6>c(b26xgGcUsveo2WO}b2$`&|AKrOGGCXh;OVZ-xm{)BVR^b_7H)BZKT6nlDw{S%ts!O^`n;qPwWy4y`S z+RsPxe(~Nc;f~gncs=8&<38($z++Sh@DA*zo=L*#4IBC#?^0%D?( z)@+QNvIv5xX>F5X#;?>9#J?wEdHS+_3C?iU0Bu$>I4bx4Al#LRygxPoaXYw%JVI zHlDe6C2Hm1BxO?|=SDjieMtDoUdQ?z>SS(v+up-$;0<| zsB|GO^JWVFBj{uRXgT>~5CUs!)xPLBCW3)<0J1^w5_IAM9qhob3t1wghA{zODL>5t z&aR-WQeI+6e^AP)S|=p?$n-Ld$QYH+_lp^MR@FK&O=YDX-QhgFPV>?YF%r!DoGq=Y&aqs z{dU7Wy6ZG@@hyRw3;o!Y4UBChnPEVnm_6@XZiB=##|T2IFms6A*2C4TO!gSgIAO6G zGDGh8zp#Cgto5_%ympUPItR}%bC64{ZQ2g740E{nGw(2|N&`x*n{r{$ZqdaQnyq|) zwVUHb8o6gX>&-2WZQ*BGj2xpt@}rw7`F*Kbh-8esyUE-*ZQ#<& zDfOgA&XaWM+s;$Tv4P4tzF>u$A`j!>)kx|m11y3Yo$NNzFEdra5eu%89KfK$*0q6$g~5ET&s}AEgKvj zwg}n^lMyBSkpsnoq6zo@xs3wIJO*mNbS7Sd!VdqZTg$0)V}eSU0~cWveiY#6ZGhG~ zUgC?%M#t4Z4Bw!TYCN}|Ok(tS`$iGx19_%erJ(pc|FV*n-Km^)adXHiw7p4_m~|^0 z>n@k7KIQiSl(c@+mFTj~j9?`!!g6w9LXp{c#2&Dw%!;FFu~eYJb}DX05b&_8y8C+@ zt%fPOyH!ON)V>-b7Y{*xA(o!M{iC9N?2eF`(xP?SH=Q9?Gz&~ZU}>Z0V1p(?*dIWY zv@@en%}v}rWkBNV_d_5W#X~gAvqIB!#%1&^&akCL#IZW){Pya-F{{hyR}EqBIE|eE zt9*afn|i@UqpB9U=(@?z=-a1g7#u9SZ8=ok1n)oXSP>j{KbHwJ0N9=?9|@4B258_y zCcyno!m!XBG4*e*FEYVqsg^U&NcwhVK81ex! zm-voXa4iY_``g-M%lg0G}d#P=L~0VXopm_Dc*@+!~t#U_AumdAB;}SYV*X4=C;g; zdi+m+N0-Pb_eMfXbx$F9z_7(w4d1*iuG`0(F;W1esw+dgPRif{;pam%t9W*h8UGVk zDx5VsKp7IEu{kb2x9%5+VsNMwjRgrFX1drr|I5=VZd+lf|$$*3ZA!>1m`tX9Vy(rsAtn!B`lSxoI>XBE<&ppZXBRHHeNb8L=1_oJ z-{OlJSuJ3<+5B@VNCF!Pc~$o8zDt>Caf(Xt6wA!egxa7aSb~nD04xN{s#SDoViiQy`wYVasp)Q$fo$6}vc4hRvi)ix!YyBrG*;JnVzR;P2W_T>- zV|}6zE+G}}&!?OzYPNb_-Pvy#`(p!l0b zDh*S{cNIKK-cg#L{t%Uw{_w}@2Jq6?my3{fkp|@K{TjnPcS4VBjY^$ReIP^greSs9 ztHhbkFFoAfnqOrrEU4dWYhB<cT(h4W3$zpZ3H9v1n$ z=Td+AlaUzk&|t4PEm?LjBk!-hSv3ZUSKy$=1F{8xoa`3PwwJg3r-tJ{tsAdbAfmUr zY64N^zB>Dw7-$|$$e1)*HfJWICK;sP{MRQHpDx7XAhHkH>x)?y(kDOqLh5QKIh|)4 zjDr8Xx+7i@uqd@vT|*C@&HDo#8^#CyU0tnLmk@^pz*F`**yMklL-AgJNG+Cjw=?#J zdqTN?>RR>~>Iq4F!Z(ghnHK0w5c@F=7#M3qn*z$Jl$42taO$Kbr=AEo0%N-JetE`}D+_ouMVe_q zoqQIq$Muf*5|xbu0)s}OomA2{m$^p}A;!O2i&<#l?s&ldBRM*K>wZ*r@cU92_E4m8 z&Y^?*E40PpeItsl@Rcfe5R!%sSg+a?9@%t-?!fSIe+SqPB(gavPRfve*R8ALCMnXxv#7u{rBxm2BT~)jIx>g# z9tQ$x%Hk!X*@M+G0_APNBRwY4a=Q)g7$Wn7ZHKkeydf0B7b(g6f^%1z0A{pNQ!Fxk5D$>jaaVI zXfv=0dhc;1-uo?%3@_TjVxbFPT&$bBKnJ_D+?EXNsQ}wNeF7_wNKQ7mb_ep!?48mm zEbbX6(wF)y5_VE2t8K6<#RXN?Pj1uw1(peP&iAtF8F0PWALcIBh5^IYPe(=JKFPdk z)zD{XlTpK@&!l4pRVXUH>EuqENQ;X8!usIQ!ChVg1unpJgvkEGxM~U6lBuhCo?9lt z=Q(SO)d#dzdSahP=cp0uY!H zuKi|)+Ys_V{g-0`4>CKTaD8$D+Sdl-LF%#MTzuT3;@s>U2p$psvc7|MZb?b#zyyzw zka!6nFQ2d&bb?0+`tJ!s-vtDDcy5VrEeT895|wDjr~Lg?=#BsC7{5T7Dyh}5lFLh& z3L0GYoO}9xLzu>o$1cBQeZ|5`MKLcZ+7)J+i56L9p52bQdm@rv=0=GT!D^a$m{9w* z#BuITK3KYd1w>woFwr)lb&|}O&t1uWtTv!?dH-R1Tt7`NF>39tkH!qq+EE1$`lbv< zXR+J;u+v7r%O=Gub&dRPw$Cqv; zWd;@I%|VAZL5h;uVPMdl!zE{18N)My7DG)|q==!cEIaitrrqY9Z~FU#^F7X^GUj(7 z*Q1V#ib}!BA>`Fg(RVpMaIJl8l8lXuVEydA^<%{c#tHFFtlis;-{S{F6%UgQ0eH6n z2d?^h$D76V9fYI=&+bmw9K9DJgBD2O3!m)0|Dk#+O&Q4Xkbx-uJ?GZfW$Ai3CU>CW zo4vAz)IB}2cr=Dz_%6KIm(4q-aqXwr&pF84o183V^U9b7yT!6v-*s@K&}Sg zs79<&SN8ATi5#?Nor%N@@wuP{aI0EJ zxhw?6VTNd2b_|87UnDSc#+6U`@Z`w#iNUo59=443?K15ODoj#Ph2DaL9GZO=8i8c^ ztO0%bfs-)m!JbCT5M#K{S8T!?Wz*2AOL4wr`I#`W0DgewPB8}##u_5fLz|iXps!pY z6KhErHI)7pe3+=1T4m3DIQP}qWN=s?F zb7TjA=V>-w;L-yf2;U{OlluG&L0hZ0HX==oT_7$SthQLO_}*hf^48mhk;p$gHEci) zIzK^=2`FIz`JD{hMzDR6R0@d=*hM8^vG*Q5pTP}Vn_ZmF-7rDQSl+P2YWqe2Y$;)v zk(X!p%0YVAQJv-qSX*XUB!>>WKqn$V%8_q4AKmeXx#b<@{3>&y$KuU5EX>}Jsy<`n zrt16UJ!^vF2iv%`Vcx4WXC=mwxpI&n`h9R83lr?V?iqtxZE-1ktl#${;x6-oHYAxy zYg9nZLw1U5CJrjUiagBMBhentE#=E1sB0Oldq3zj=n`%bXyJxzfNjFtrvp@mcDC?Y zX~UfKN)aXDsjK^_(`7r$6w)tPp*J2))7_cQ`FyAC4|w$+Ef~qWcni$8?&-A@!%jeN z(D~58ICRwfr9OFd+Lm&DtnV_TXyU>4GVR-zigV}ifM1GyRySrpC5TRj9N|+rySiU~ zba*btzjG(fW#0f35luW!%U1gFR7x~Vn2!xx(cjvXTNjS=8~Rj2-`I$pMY`Sh%4M_i z!fCt`e50%Yo1%S^*oL(q)o&MNZ_KJzjTN)H|Z% z4M*nQ7BVb+U98)pZ)yZt5fWx#ld_k&!whJ5KmzBx2fk1?v#{yBe zgT;@A8?_kfrui(CM`8|za;!pch&_KNM~EM8YpG@o#{@Sza;le7(dw(vcO|va+DbfidMLHtAqx9Zu$bJ3p zdCr+%lOHM1J2QLsT6?XXlN>AZ7QXbK{u}E@^eC|Wmgx?eHh=lDLpQ(7oX17%cu70% zl5+bkid5g?_0Nu+Y4&XK<}Db;v0QlgDc4x`Q@-xnTMi5An-#(5spF))uD#%=x`k^| zZ@AAF{exQKGlJCL$$`SP)yk!dwoT}s$4}BS4QLV@{lEqJ zD%O*Qse4<=Fop-XhJs6YMrplD7-;Sb<&St&RxO87&juZ)LYQc%v}~i(p+Mi%5J7wz zJkb`O>owYtf*Hqb0)f@y>}-6ZUNkF7&Ncvx16cZJ+PpTJS{Z}NYx{4AA9QO-(e$eI zL?a*>f*mbc)4I_&Si=fHyu9)G=nW#uunel0)#R89C*CfQv{?HB1)u>3#8x}N({a*(KF7(+Hs^^ z91Daq3_{A&0NS~)9g!;TfLz}9xnV^3iI_`TnpD4rdbv7l?UMgCHMC`H$VTSuq~Uj* z$XqAm6pQtQOh4bb0R70Jw|3`<$G3zpd|T-TdeCD{M?Bk)7ppdLa> zg6c_V!Cuju_b?2a6N32iRSWs9mC5wB$3e8Y2hyz9!sxQLHa#zA>J6Ote_};X4+B~H znj4mb_l?;?@$~Sia6*kzzBL3IASH5D_L~Hq9(OGrBO@4Cv?~tW^4z!@c=TdUdh(KD z!80CmUNo@*g-M(BN)ILyb-|bcEG!K;^DEF;tnCnyL``+S??WuV9QszzF`oH9Dhb?F zxEh^8Di#$5&pe*qBaLHYkrEd2`P@`I??qhJ{U}I1=~8D3qGJ)rss!^yPknLkN$SwK zQRj2`Rd;%$YPg|z$GpL**3RhE*-aPi(o)wV7nP8>B@Nv77?xqdCi>WM8XTVhBt(9z``-|N~7T8qrBRuF@Imj3nwBisH|^d40hx5Ut9ZyW_raJ!qeZqXFHtmxu%2r z!}!Wk!ADnJzjnDq#r=Azqe!CYA5v6i*!RpaL0wXb$-~O;du1P|84Z9cBB@N`lKQ8I z9|uHHX6rt7@qd{O%8e=Snr_0WZp^Iry0<#U+OZbJU4fjVjSPbWIH^|t5Q+fDrIBoE zzZ2wowj}R2)0}cVLy5T?EKkN_sk8sirnztcW}(_aL+f@bS(${bseI7n zi?NNg`ic%kOdT%u&;0b4Mtwn<8O&`lJaIf`dsa$n|BmMC{CHb0hXGNU@nrejYUGKw zA%wN`zo>A%dXRRW|4EAV^xYv8wjthVJmctNDk0&Y_kU@38z3pm3U@ zICs?JN)U+0JdImI(rJIt_C&m@xO?O2@0gDye?J;|5fK4WbRVgJJWmHFT3w;7Hezis z5-H*6E%0=$XO%iL-zMDOEMY4U;a&A{lYOTZ9`cD|mB~j!_io|1dll_B(>fiz9Nj0A zZj}$t{pBLjUTXHVgh?ZZ=sRK;+~taZHV>sqwzK4gg--2ecR^VbW@7v+sb`5xAlK@aVN#QF-5RB_Db$GYln|zW9Pv+ z^E$7_k<%a`)iOR@BKTfO&rHhrPAbI#q(#x=b@A3CA%M=1GUWA=KZO*yAVF)~a*q~= z7u*fIvrJ8kSk10ngy2l>WO$gd){wX?YQ;Ojv?J%cO#+pNvd3C z-V2EyU6VnF*DvWr*hkzbumAk#joR~mi8o*g9R4VKBeiy`57~1^;I9*e5)pAESGekn z@*7Q*h{NN3`f^};BjKX1l+x+kD++Kf_2rajdX2ztkC@fU1Y_`hEdv)|{%ZVg6%}UK z2}5S`T0|e0(ibpP`pD`EHI`)d29SW)m9@&KZ>VK`(O;!hmc8ok<)r)i&(>6;iw|c_ zcmIN{Q{YO{*HW*?p5=roA{k#0S%9L0Z9scEfoShk&l~DcTHy>A$mukPiz>LOYZ;h6 zH1V)$EE*FDFQE}tD`I%4ouWzFLk0F~!-V#pf3b)s zInX(+qlKgjZ%@TMd7BBK-S~oPg0AhA?~-K&YeK$eN;?NSndjG{n8=F6+#Zv7;gQOR zUi#pE`E7r!+=Uc_XYb6Dv%4`Fjvp$mz-Bw6iyXj+!;a_258WctqW48-zm#$}Y^Y8) zoIy~D7UwNWhoMw?%L3XMFmG1CL4RyGjO%@81qUuD>l+*sBEvnI*HWO1*t3;$%NGq45N6{)5L=PH2Egti*mSM?-B)l3Q|EUprvF??w~7I zBS6OKxja&(F-RJ|HsrjLX>RZ)1-6{}Zb!4`WXjb)Z;~neoYVa!(z^=G!wKB^%%IW* z;4KrM@eufKhEYW%Fmynf_k&&ts z6BoOBP4vn&Sy?G*>8c9vhvPX|9l2*S!726UYAk~j`-V1J*QaKVgWqg?X^{J3!gIl0 zbVlV@HOcb_u%ssVu|uJe8^*i{LHDvk7`A(k5lrt8XXa*?dUp$MZ4!LjWe}frw;i6eYCXBeCikYCC^+QRh`fMe6aO5l8P%5(2?oWOocSuY1f+CF>BW+Hnk}d*2 z(LeOKGq}EB{_Ilthd#u<#N2WLhEmhuQHntpsm*i)EI_5M>57rdH8ZiwU+z|xm6--1 zaluqTm^d=uzHdQGVSAmVjvfh;@&+&p>2Cel8iNh`CZr!(7nQeY0C~0C-UIzOrU)X` z?I$BMGK>eAr0yX>u4me6|{i!i+ZVN61zaW4M694^VhaBLp_&x6B z6Mf+`6#kTner`))?t>r@Uhq$S_OeMcJ8UEdaqyyh_J$ly`C6Z>3U-zX(Efa)(*0j zWmF8Vj21;Hp7%bg6}!%LeItCn)QMw$d}L$D^2^TOQ-*(w`k{RCEU2vJt=UkK{D?KC zA*+7l1O$CBye4_4J84}uRqz(6GjdzmPO(ogGN^=QJky%Y2n(C%QQ!EO0dTadzsbS0 ziMcFmnG#{{ct;mDjeAfIN88->m|_6CZ~H3c;6Q((H_*hjSdt*hnxs@kiAg+a5xU26 zDeO2b#*ycHz3Uw{1-b_D{#=|_NyaJiD}As7yBLEs7*w$VZq2#hE{j0^1i+W#u4Xq^lXRrQVaNv>1F1p% zFx3v_?%|iVEn^u9Q;NTzoo)=r>ODPHeog^(%ZUMQ!w;!N6OG*(mS6f1ceEY?GH0${ z5PRN&CN5Ly$-oYiDG6|<(&RclbUl0iMn}JgcdD>7pSeNy-Jrx@Daq5LaQ2Bi4%X}Y zo~)1c1uR*gRPEMz2bSe{xGH087GHe*6{3%7xF%fc zhfC?dU>{7LUw;xohGAUe8eDh`O9l6bIM`AdUcM42clZQ1G~`_+19<9hb}z`xn~)Wh zDl7RqV0ep?7Nlo~MUt0@@*TThnXn2{j)ct9B%~T<-Ed zGp^pM^lfVMKfXe)vRA*Zv~!sOAu}<_!=>+Bd_wQ}@reiLoDaj!9CqvS;5@m0fI z9)_@j?S;R~UGVM0fv${Xr^FiCdn4@P%Nf1+;{;OgrS z$7=Tm;v4!OstB+I$jO}!`NRB{%FnVBcb9U9f_J}j`)RcE;_Egp@UH9P2{e}z!1N@{ z=OBH&K^Uaxb9{Y>R@B>((i9(g^Mf}1i%`5r?r%z6;8ubLq2?ss!w&)8NP)zr!F~Ri z0LPPJ+VmP+24UFHGi>)O8YI9x3valWbf&9q{aHIt(XYz3$U;f-;?lBV0;kA&ue9&s zmu5=0Wt3s$=-OXU{lLtvR^PS<}4Rx3VO*Gf$?+)*{DC9HxtZkO>Q*bE_rA3>_| zWiR}`Yw%-e^4{x0TfLS}?P*mr9Y@1f?D4%} zqpE$|P!v6V^#nZX5%BZB2spvyw@x9b(}+s5w;>AEsIIwwqfqq6B=SiW8GaR(N(O{^ zJPCd*U^PhuHhoYta2a#*ZKL5x$r8BXW+>2c6BZ2M_<1+=djJPt9RIkwS}s`mTc*1V zcAWgGo_Kgsqe)cQm>Sk23)g!=kQ2U{b!=9oNtZuLLL4ribB<)DgP~Mjd96y{XWS&a0}CcET{QU(X(;0!1U%a4xC~;;m=R@QmUKJ; zSp3cM(oVMMt^8&8ux^E6?6#^f@xzz#oSP{Js~ZWAwJUfTPgy%!5B#OFER`PU<0OB0 zO@g4tr@GPNL{`AEGxYTyyOzR~oo-+cOk4n7%dJ;A^EnGTQPZ6A%#^W@q}ewYEIlbp zG>6#2GMkeSf;-;KfLmHYx}`R77uOL*Zxyt7U2p*(9bNm@P3`g8 z*7Kjs!Df+!dMLWSo)VwYdi7A{u`|5bfpW}s}upZy_;bml;W$}_zSt# zj%fKC9y9D0f5yC;Y_J@fDX3f+H!hadi>GSHFXvDW%F>b$jQoZbYK#^D~- zt$g9&Ut}rfIwG#Oraboa`Q2y3<}tRDLBjKb9O#PVhbYx-$m3jaYeTXWIR9(-BR|PO zui2W66$HR8&M5#I0v+({P~$i2{H@;?uPash(f zMkt&nD{$S8-%O0SR}B=YlsCmOc7ZpNv_2$?-`(tCAG!@li7jyaPyx&arhO&6IpK6` zJ2m+w>}ydXfY5B?WeG$hXGxMdb6%3%V*H=$xqgTv>O-b9xb^l9L@VE9CaAK7Z&ioK z+o%#PD1LCMj}%kj9nb$AZuwlPh^1T>u@k$>SX6e3{gY4UIWU#h6;+BwrLpl1gj=<3rQ=hpsr+&1cEz>WPoA9ul_;Xd$}F&#$6>3{I^FWla#;b(I$M* zzYlCeTYymbCH(z;Pl-H=!BXh-BMqa)gB6h2nr@~hnJ&pe+K81WeI#e{I-I&9bg`;+ zZy=io$av?&k$&%@MT`OycYAdY8M)FjZC8U1EFtJU_oH3h^n!oAy}OObvF|6reutk%Hc5 zmX90=$-MXWCdImEZb}cZkzA z;dXu|U??@h1l%fykYJu@UaCc%0Q3ZKWr*#k2PXgB>Zixe{mMwOuJf)HBYqS9s5^}B z8S(>$B)9>civ31X=ag=+B4>e5DGUf|7T;%DhkjzTXFCX}IFf|u4pR96Fu9ic?-&X70KV21_B zKz=eIjObmkd-?J8`!K8u`Qjx219k6?{i>+`HuW!rCKqQ__Jv*c9-eubkcDf+r)1#;uyIKS9;W&TbZ z38dt>!-H0))C0d3(eS;_$CU%A4EC4&vg(8(A$$;jjx4|F!xBkbmGulW)JfDUZqe_3 zYYr0|+yGpsh9WRbWnL4y(ff@Pp|Z{;KPdOXStEgW_WOS;2=$>Ma)DJMCltaUMd#^K zUgJk-A~EK1lK<%uOgsdQ>-$Jr4dEI7Fyqr7w?7l68g{70Tn|g>Uvm#F9uZ-c6Sv*Q z5Z0pLmJ%mG+0X-tsk2EPeT~=K8yt)UlZ1v~rJ3eR;TwZjr3RD|?#jr7dpuYsMiQZf zqIVFBKfLw1OCV6bGTl>?=`(N3(hULJgy!WSvTc|i!J}=AWq}RU+omq>ZS)JaPCB$t z-03-;UUD0_V3mfYB7O1x(`y?|sKNDJJ}&u&{hg7Wr8S@ag^5~GuSea*PS(ppU#7-v zB07|csqOp*tu=nDc8OHDMXo81TQ9Uku7<;e2l=CrZR Xf#}{Ze!OCL(NPEmcmV;?{~iAisTjLe literal 0 HcmV?d00001 diff --git a/Resources/Prototypes/Entities/Constructible/Power/arcade.yml b/Resources/Prototypes/Entities/Constructible/Power/arcade.yml index 18a8757dce..ac425213c2 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/arcade.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/arcade.yml @@ -22,3 +22,12 @@ bodyBroken: arcade - type: Anchorable - type: Pullable + - type: SpaceVillainArcade + - type: Wires + BoardName: "Arcade" + - type: UserInterface + interfaces: + - key: enum.SpaceVillainArcadeUiKey.Key + type: SpaceVillainArcadeBoundUserInterface + - key: enum.WiresUiKey.Key + type: WiresBoundUserInterface