diff --git a/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs b/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs
new file mode 100644
index 00000000000000..d42861b404ef6c
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs
@@ -0,0 +1,86 @@
+using System.Linq;
+using Content.Shared._EstacaoPirata.Cards.Card;
+using Robust.Client.GameObjects;
+using Robust.Shared.Utility;
+
+namespace Content.Client._EstacaoPirata.Cards.Card;
+
+///
+/// This handles...
+///
+public sealed class CardSystem : EntitySystem
+{
+ [Dependency] private readonly SpriteSystem _spriteSystem = default!;
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnComponentStartupEvent);
+ SubscribeNetworkEvent(OnFlip);
+ }
+
+ private void OnComponentStartupEvent(EntityUid uid, CardComponent comp, ComponentStartup args)
+ {
+ if (!TryComp(uid, out SpriteComponent? spriteComponent))
+ return;
+
+ for (var i = 0; i < spriteComponent.AllLayers.Count(); i++)
+ {
+ Log.Debug($"Layer {i}");
+ if (!spriteComponent.TryGetLayer(i, out var layer) || layer.State.Name == null)
+ continue;
+
+ var rsi = layer.RSI ?? spriteComponent.BaseRSI;
+ if (rsi == null)
+ continue;
+
+ Log.Debug("FOI");
+ comp.FrontSprite.Add(new SpriteSpecifier.Rsi(rsi.Path, layer.State.Name));
+ }
+
+ comp.BackSprite ??= comp.FrontSprite;
+ Dirty(uid, comp);
+ UpdateSprite(uid, comp);
+ }
+
+ private void OnFlip(CardFlipUpdatedEvent args)
+ {
+ if (!TryComp(GetEntity(args.Card), out CardComponent? comp))
+ return;
+ UpdateSprite(GetEntity(args.Card), comp);
+ }
+
+ private void UpdateSprite(EntityUid uid, CardComponent comp)
+ {
+ var newSprite = comp.Flipped ? comp.BackSprite : comp.FrontSprite;
+ if (newSprite == null)
+ return;
+
+ if (!TryComp(uid, out SpriteComponent? spriteComponent))
+ return;
+
+ var layerCount = newSprite.Count();
+
+ //inserts Missing Layers
+ if (spriteComponent.AllLayers.Count() < layerCount)
+ {
+ for (var i = spriteComponent.AllLayers.Count(); i < layerCount; i++)
+ {
+ spriteComponent.AddBlankLayer(i);
+ }
+ }
+ //Removes extra layers
+ else if (spriteComponent.AllLayers.Count() > layerCount)
+ {
+ for (var i = spriteComponent.AllLayers.Count() - 1; i >= layerCount; i--)
+ {
+ spriteComponent.RemoveLayer(i);
+ }
+ }
+
+ for (var i = 0; i < newSprite.Count(); i++)
+ {
+ var layer = newSprite[i];
+ spriteComponent.LayerSetSprite(i, layer);
+ }
+ }
+}
diff --git a/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs b/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs
new file mode 100644
index 00000000000000..f0372aaa3b3d9f
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs
@@ -0,0 +1,84 @@
+using System.Linq;
+using Content.Shared._EstacaoPirata.Cards.Stack;
+using Robust.Client.GameObjects;
+
+namespace Content.Client._EstacaoPirata.Cards;
+
+///
+/// This handles...
+///
+public sealed class CardSpriteSystem : EntitySystem
+{
+ ///
+ public override void Initialize()
+ {
+
+ }
+
+ public bool TryAdjustLayerQuantity(Entity uid, int? cardLimit = null)
+ {
+ var sprite = uid.Comp1;
+ var stack = uid.Comp2;
+ var cardCount = cardLimit == null ? stack.Cards.Count : Math.Min(stack.Cards.Count, cardLimit.Value);
+
+ var layerCount = 0;
+ //Gets the quantity of layers
+ foreach (var card in stack.Cards.TakeLast(cardCount))
+ {
+ if (!TryComp(card, out SpriteComponent? cardSprite))
+ return false;
+
+ layerCount += cardSprite.AllLayers.Count();
+ }
+ //inserts Missing Layers
+ if (sprite.AllLayers.Count() < layerCount)
+ {
+ for (var i = sprite.AllLayers.Count(); i < layerCount; i++)
+ {
+ sprite.AddBlankLayer(i);
+ }
+ }
+ //Removes extra layers
+ else if (sprite.AllLayers.Count() > layerCount)
+ {
+ for (var i = sprite.AllLayers.Count() - 1; i >= layerCount; i--)
+ {
+ sprite.RemoveLayer(i);
+ }
+ }
+
+
+ return true;
+ }
+
+ public bool TryHandleLayerConfiguration(Entity uid, int cardCount, Func, int, int, bool> layerFunc)
+ {
+ var sprite = uid.Comp1;
+ var stack = uid.Comp2;
+
+ // int = index of what card it is from
+ List<(int, ISpriteLayer)> layers = [];
+
+ var i = 0;
+ foreach (var card in stack.Cards.TakeLast(cardCount))
+ {
+ if (!TryComp(card, out SpriteComponent? cardSprite))
+ return false;
+ layers.AddRange(cardSprite.AllLayers.Select(layer => (i, layer)));
+ i++;
+ }
+
+ var j = 0;
+ foreach (var obj in layers)
+ {
+ var (cardIndex, layer) = obj;
+ sprite.LayerSetVisible(j, true);
+ sprite.LayerSetTexture(j, layer.Texture);
+ sprite.LayerSetState(j, layer.RsiState.Name);
+ layerFunc.Invoke((uid, sprite), cardIndex, j);
+ j++;
+ }
+
+ return true;
+ }
+}
diff --git a/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs b/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs
new file mode 100644
index 00000000000000..0559a3c3f54ad7
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs
@@ -0,0 +1,149 @@
+using System.Linq;
+using System.Numerics;
+using Content.Shared._EstacaoPirata.Cards.Deck;
+using Content.Shared._EstacaoPirata.Cards.Stack;
+using Robust.Client.GameObjects;
+
+namespace Content.Client._EstacaoPirata.Cards.Deck;
+
+///
+/// This handles...
+///
+public sealed class CardDeckSystem : EntitySystem
+{
+ private readonly Dictionary, int> _notInitialized = [];
+ [Dependency] private readonly CardSpriteSystem _cardSpriteSystem = default!;
+
+
+ ///
+ public override void Initialize()
+ {
+ UpdatesOutsidePrediction = false;
+ SubscribeLocalEvent(OnComponentStartupEvent);
+ SubscribeNetworkEvent(OnStackStart);
+ SubscribeNetworkEvent(OnStackUpdate);
+ SubscribeNetworkEvent(OnReorder);
+ SubscribeNetworkEvent(OnStackFlip);
+ SubscribeLocalEvent(OnAppearanceChanged);
+ }
+
+ public override void Update(float frameTime)
+ {
+ base.Update(frameTime);
+
+ // Lazy way to make sure the sprite starts correctly
+ foreach (var kv in _notInitialized)
+ {
+ var ent = kv.Key;
+
+ if (kv.Value >= 5)
+ {
+ _notInitialized.Remove(ent);
+ continue;
+ }
+
+ _notInitialized[ent] = kv.Value + 1;
+
+ if (!TryComp(ent.Owner, out CardStackComponent? stack) || stack.Cards.Count <= 0)
+ continue;
+
+
+ // If the card was STILL not initialized, we skip it
+ if (!TryGetCardLayer(stack.Cards.Last(), out var _))
+ continue;
+
+ // If cards were correctly initialized, we update the sprite
+ UpdateSprite(ent.Owner, ent.Comp);
+ _notInitialized.Remove(ent);
+ }
+
+ }
+
+
+ private bool TryGetCardLayer(EntityUid card, out SpriteComponent.Layer? layer)
+ {
+ layer = null;
+ if (!TryComp(card, out SpriteComponent? cardSprite))
+ return false;
+
+ if (!cardSprite.TryGetLayer(0, out var l))
+ return false;
+
+ layer = l;
+ return true;
+ }
+
+ private void UpdateSprite(EntityUid uid, CardDeckComponent comp)
+ {
+ if (!TryComp(uid, out SpriteComponent? sprite))
+ return;
+
+ if (!TryComp(uid, out CardStackComponent? cardStack))
+ return;
+
+
+ // Prevents error appearing at spawnMenu
+ if (cardStack.Cards.Count <= 0 || !TryGetCardLayer(cardStack.Cards.Last(), out var cardlayer) ||
+ cardlayer == null)
+ {
+ _notInitialized[(uid, comp)] = 0;
+ return;
+ }
+
+ _cardSpriteSystem.TryAdjustLayerQuantity((uid, sprite, cardStack), comp.CardLimit);
+
+ _cardSpriteSystem.TryHandleLayerConfiguration(
+ (uid, sprite, cardStack),
+ comp.CardLimit,
+ (_, cardIndex, layerIndex) =>
+ {
+ sprite.LayerSetRotation(layerIndex, Angle.FromDegrees(90));
+ sprite.LayerSetOffset(layerIndex, new Vector2(0, (comp.YOffset * cardIndex)));
+ sprite.LayerSetScale(layerIndex, new Vector2(comp.Scale, comp.Scale));
+ return true;
+ }
+ );
+ }
+
+ private void OnStackUpdate(CardStackQuantityChangeEvent args)
+ {
+ if (!TryComp(GetEntity(args.Stack), out CardDeckComponent? comp))
+ return;
+ UpdateSprite(GetEntity(args.Stack), comp);
+ }
+
+ private void OnStackFlip(CardStackFlippedEvent args)
+ {
+ if (!TryComp(GetEntity(args.CardStack), out CardDeckComponent? comp))
+ return;
+ UpdateSprite(GetEntity(args.CardStack), comp);
+ }
+
+ private void OnReorder(CardStackReorderedEvent args)
+ {
+ if (!TryComp(GetEntity(args.Stack), out CardDeckComponent? comp))
+ return;
+ UpdateSprite(GetEntity(args.Stack), comp);
+ }
+
+ private void OnAppearanceChanged(EntityUid uid, CardDeckComponent comp, AppearanceChangeEvent args)
+ {
+ UpdateSprite(uid, comp);
+ }
+ private void OnComponentStartupEvent(EntityUid uid, CardDeckComponent comp, ComponentStartup args)
+ {
+
+ UpdateSprite(uid, comp);
+ }
+
+
+ private void OnStackStart(CardStackInitiatedEvent args)
+ {
+ var entity = GetEntity(args.CardStack);
+ if (!TryComp(entity, out CardDeckComponent? comp))
+ return;
+
+ UpdateSprite(entity, comp);
+ }
+
+}
diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs b/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs
new file mode 100644
index 00000000000000..359605d5e58e70
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs
@@ -0,0 +1,81 @@
+using System.Numerics;
+using Content.Shared._EstacaoPirata.Cards.Hand;
+using Content.Shared._EstacaoPirata.Cards.Stack;
+using Robust.Client.GameObjects;
+
+namespace Content.Client._EstacaoPirata.Cards.Hand;
+
+///
+/// This handles...
+///
+public sealed class CardHandSystem : EntitySystem
+{
+ [Dependency] private readonly CardSpriteSystem _cardSpriteSystem = default!;
+
+
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnComponentStartupEvent);
+ SubscribeNetworkEvent(OnStackStart);
+ SubscribeNetworkEvent(OnStackUpdate);
+
+ }
+
+ private void UpdateSprite(EntityUid uid, CardHandComponent comp)
+ {
+ if (!TryComp(uid, out SpriteComponent? sprite))
+ return;
+
+ if (!TryComp(uid, out CardStackComponent? cardStack))
+ return;
+
+ _cardSpriteSystem.TryAdjustLayerQuantity((uid, sprite, cardStack), comp.CardLimit);
+
+ var cardCount = Math.Min(cardStack.Cards.Count, comp.CardLimit);
+
+ var intervalAngle = comp.Angle / (cardCount-1);
+ var intervalSize = comp.XOffset / (cardCount - 1);
+
+ _cardSpriteSystem.TryHandleLayerConfiguration(
+ (uid, sprite, cardStack),
+ cardCount,
+ (sprt, cardIndex, layerIndex) =>
+ {
+ var angle = (-(comp.Angle/2)) + cardIndex * intervalAngle;
+ var x = (-(comp.XOffset / 2)) + cardIndex * intervalSize;
+ var y = -(x * x) + 0.10f;
+
+ sprt.Comp.LayerSetRotation(layerIndex, Angle.FromDegrees(-angle));
+ sprt.Comp.LayerSetOffset(layerIndex, new Vector2(x, y));
+ sprt.Comp.LayerSetScale(layerIndex, new Vector2(comp.Scale, comp.Scale));
+ return true;
+ }
+ );
+
+ }
+
+
+ private void OnStackUpdate(CardStackQuantityChangeEvent args)
+ {
+ if (!TryComp(GetEntity(args.Stack), out CardHandComponent? comp))
+ return;
+ UpdateSprite(GetEntity(args.Stack), comp);
+ }
+
+ private void OnStackStart(CardStackInitiatedEvent args)
+ {
+ var entity = GetEntity(args.CardStack);
+ if (!TryComp(entity, out CardHandComponent? comp))
+ return;
+
+ UpdateSprite(entity, comp);
+ }
+ private void OnComponentStartupEvent(EntityUid uid, CardHandComponent comp, ComponentStartup args)
+ {
+
+ UpdateSprite(uid, comp);
+ }
+
+
+}
diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml
new file mode 100644
index 00000000000000..76cd42473098ed
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs
new file mode 100644
index 00000000000000..263af2abc3b1e1
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs
@@ -0,0 +1,91 @@
+using Content.Client.UserInterface.Controls;
+using Content.Shared.Popups;
+using Robust.Client.AutoGenerated;
+using Robust.Client.GameObjects;
+using Robust.Client.Player;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+using System.Numerics;
+using Content.Shared._EstacaoPirata.Cards.Card;
+using Content.Shared._EstacaoPirata.Cards.Stack;
+
+namespace Content.Client._EstacaoPirata.Cards.Hand.UI;
+
+[GenerateTypedNameReferences]
+public sealed partial class CardHandMenu : RadialMenu
+{
+ [Dependency] private readonly EntityManager _entManager = default!;
+ [Dependency] private readonly IPlayerManager _playerManager = default!;
+
+ private readonly SpriteSystem _spriteSystem;
+ private readonly SharedPopupSystem _popup;
+
+ public event Action? CardHandDrawMessageAction;
+
+ private EntityUid _owner;
+
+ public CardHandMenu(EntityUid owner, CardHandMenuBoundUserInterface bui)
+ {
+ IoCManager.InjectDependencies(this);
+ RobustXamlLoader.Load(this);
+
+ _spriteSystem = _entManager.System();
+ _popup = _entManager.System();
+
+ _owner = owner;
+
+ // Find the main radial container
+ var main = FindControl("Main");
+
+ if (!_entManager.TryGetComponent(owner, out var stack))
+ return;
+
+ foreach (var card in stack.Cards)
+ {
+ if (_playerManager.LocalSession == null)
+ return;
+ if (!_entManager.TryGetComponent(card, out var cardComp))
+ return;
+ var button = new CardMenuButton()
+ {
+ StyleClasses = { "RadialMenuButton" },
+ SetSize = new Vector2(64f, 64f),
+ ToolTip = Loc.GetString(cardComp.Name),
+ };
+
+ if (_entManager.TryGetComponent(card, out var sprite))
+ {
+ if (sprite.Icon == null)
+ continue;
+
+ var tex = new TextureRect()
+ {
+ VerticalAlignment = VAlignment.Center,
+ HorizontalAlignment = HAlignment.Center,
+ Texture = sprite.Icon?.Default,
+ TextureScale = new Vector2(2f, 2f),
+ };
+
+ button.AddChild(tex);
+ }
+
+ main.AddChild(button);
+
+ button.OnButtonUp += _ =>
+ {
+ CardHandDrawMessageAction?.Invoke(_entManager.GetNetEntity(card));
+ Close();
+ };
+ }
+
+ CardHandDrawMessageAction += bui.SendCardHandDrawMessage;
+ }
+}
+
+public sealed class CardMenuButton : RadialMenuTextureButton
+{
+ public CardMenuButton()
+ {
+
+ }
+}
diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs
new file mode 100644
index 00000000000000..2477ab2b031f14
--- /dev/null
+++ b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs
@@ -0,0 +1,47 @@
+using Content.Shared._EstacaoPirata.Cards.Hand;
+using Content.Shared.RCD;
+using JetBrains.Annotations;
+using Robust.Client.Graphics;
+using Robust.Client.Input;
+using Robust.Shared.Prototypes;
+
+namespace Content.Client._EstacaoPirata.Cards.Hand.UI;
+
+[UsedImplicitly]
+public sealed class CardHandMenuBoundUserInterface : BoundUserInterface
+{
+ [Dependency] private readonly IClyde _displayManager = default!;
+ [Dependency] private readonly IInputManager _inputManager = default!;
+
+ private CardHandMenu? _menu;
+
+ public CardHandMenuBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
+ {
+ IoCManager.InjectDependencies(this);
+ }
+
+ protected override void Open()
+ {
+ base.Open();
+
+ _menu = new(Owner, this);
+ _menu.OnClose += Close;
+
+ // Open the menu, centered on the mouse
+ var vpSize = _displayManager.ScreenSize;
+ _menu.OpenCenteredAt(_inputManager.MouseScreenPosition.Position / vpSize);
+ }
+
+ public void SendCardHandDrawMessage(NetEntity e)
+ {
+ SendMessage(new CardHandDrawMessage(e));
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ base.Dispose(disposing);
+ if (!disposing) return;
+
+ _menu?.Dispose();
+ }
+}
diff --git a/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs b/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs
index 10278cc8051d53..f2999e6ab6db82 100644
--- a/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs
+++ b/Content.Server/Storage/EntitySystems/StorageSystem.Fill.cs
@@ -31,7 +31,7 @@ private void OnStorageFillMapInit(EntityUid uid, StorageFillComponent component,
}
}
- private void FillStorage(Entity entity)
+ public void FillStorage(Entity entity)
{
var (uid, component, storage) = entity;
diff --git a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs
new file mode 100644
index 00000000000000..f6e24f5ca62b7c
--- /dev/null
+++ b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs
@@ -0,0 +1,13 @@
+using Content.Shared.Storage;
+using Robust.Shared.Prototypes;
+
+namespace Content.Server._EstacaoPirata.OpenTriggeredStorageFill;
+
+///
+/// This is used for storing an item prototype to be inserted into a container when the trigger is activated. This is deleted from the entity after the item is inserted.
+///
+[RegisterComponent]
+public sealed partial class OpenTriggeredStorageFillComponent : Component
+{
+ [DataField("contents")] public List Contents = new();
+}
diff --git a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs
new file mode 100644
index 00000000000000..d5a73319f69432
--- /dev/null
+++ b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs
@@ -0,0 +1,53 @@
+using Content.Server.Spawners.Components;
+using Content.Shared.Interaction;
+using Content.Shared.Item;
+using Content.Shared.Prototypes;
+using Content.Shared.Storage;
+using Content.Shared.Storage.EntitySystems;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Utility;
+
+namespace Content.Server._EstacaoPirata.OpenTriggeredStorageFill;
+
+///
+/// This handles...
+///
+public sealed class OpenTriggeredStorageFillSystem : EntitySystem
+{
+
+ [Dependency] private readonly SharedStorageSystem _storage = default!;
+ [Dependency] private readonly IPrototypeManager _prototype = default!;
+
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnOpenEvent);
+ }
+
+ //Yes, that's a copy of StorageSystem StorageFill method
+ private void OnOpenEvent(EntityUid uid, OpenTriggeredStorageFillComponent comp, ActivateInWorldEvent args)
+ {
+ Log.Debug("aaa");
+ var coordinates = Transform(uid).Coordinates;
+
+ var spawnItems = EntitySpawnCollection.GetSpawns(comp.Contents);
+ foreach (var item in spawnItems)
+ {
+ DebugTools.Assert(!_prototype.Index(item)
+ .HasComponent(typeof(RandomSpawnerComponent)));
+ var ent = Spawn(item, coordinates);
+
+ if (!TryComp(ent, out var itemComp))
+ {
+ Log.Error($"Tried to fill {ToPrettyString(uid)} with non-item {item}.");
+ Del(ent);
+ continue;
+ }
+ if (!_storage.Insert(uid, ent, out _, out var _, playSound: false))
+ Log.Error($"Failed attemp while trying to fill {ToPrettyString(uid)}");
+ }
+
+ RemComp(uid, comp);
+ }
+
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs
new file mode 100644
index 00000000000000..8d9ed16f6a7d32
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs
@@ -0,0 +1,44 @@
+using Robust.Shared.GameStates;
+using Robust.Shared.Serialization;
+using Robust.Shared.Utility;
+
+namespace Content.Shared._EstacaoPirata.Cards.Card;
+
+///
+/// This is used for...
+///
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
+public sealed partial class CardComponent : Component
+{
+ ///
+ /// The back of the card
+ ///
+ [DataField("backSpriteLayers", readOnly: true)]
+ public List? BackSprite = [];
+
+ ///
+ /// The front of the card
+ ///
+ [DataField("frontSpriteLayers", readOnly: true)]
+ public List FrontSprite = [];
+
+ ///
+ /// If it is currently flipped. This is used to update sprite and name.
+ ///
+ [DataField("flipped", readOnly: true), AutoNetworkedField]
+ public bool Flipped = false;
+
+
+ ///
+ /// The name of the card.
+ ///
+ [DataField("name", readOnly: true), AutoNetworkedField]
+ public string Name = "";
+
+}
+
+[Serializable, NetSerializable]
+public sealed class CardFlipUpdatedEvent(NetEntity card) : EntityEventArgs
+{
+ public NetEntity Card = card;
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs
new file mode 100644
index 00000000000000..2bc7453dd88297
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs
@@ -0,0 +1,70 @@
+using Content.Shared.Examine;
+using Content.Shared.Interaction.Events;
+using Content.Shared.Verbs;
+using Robust.Shared.Network;
+using Robust.Shared.Utility;
+
+namespace Content.Shared._EstacaoPirata.Cards.Card;
+
+///
+/// This handles...
+///
+public sealed class CardSystem : EntitySystem
+{
+ [Dependency] private readonly INetManager _net = default!;
+
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent>(AddTurnOnVerb);
+ SubscribeLocalEvent(OnExamined);
+ SubscribeLocalEvent(OnUse);
+
+ }
+
+ private void OnExamined(EntityUid uid, CardComponent component, ExaminedEvent args)
+ {
+ if (args.IsInDetailsRange && !component.Flipped)
+ {
+ args.PushMarkup(Loc.GetString("card-examined", ("target", Loc.GetString(component.Name))));
+ }
+ }
+
+ private void AddTurnOnVerb(EntityUid uid, CardComponent component, GetVerbsEvent args)
+ {
+ if (!args.CanAccess || !args.CanInteract || args.Hands == null)
+ return;
+
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => FlipCard(uid, component),
+ Text = Loc.GetString("cards-verb-flip"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/flip.svg.192dpi.png")),
+ Priority = 1
+ });
+ }
+
+ private void OnUse(EntityUid uid, CardComponent comp, UseInHandEvent args)
+ {
+ if (args.Handled)
+ return;
+
+ FlipCard(uid, comp);
+ args.Handled = true;
+ }
+
+
+ ///
+ /// Server-Side only method to flip card. This starts CardFlipUpdatedEvent event
+ ///
+ ///
+ ///
+ private void FlipCard(EntityUid uid, CardComponent component)
+ {
+ if (_net.IsClient)
+ return;
+ component.Flipped = !component.Flipped;
+ Dirty(uid, component);
+ RaiseNetworkEvent(new CardFlipUpdatedEvent(GetNetEntity(uid)));
+ }
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs
new file mode 100644
index 00000000000000..8517597f305556
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs
@@ -0,0 +1,28 @@
+using Robust.Shared.Audio;
+
+namespace Content.Shared._EstacaoPirata.Cards.Deck;
+
+///
+/// This is used for...
+///
+[RegisterComponent]
+public sealed partial class CardDeckComponent : Component
+{
+ [DataField("shuffleSound")]
+ public SoundSpecifier ShuffleSound = new SoundCollectionSpecifier("cardFan");
+
+ [DataField("pickUpSound")]
+ public SoundSpecifier PickUpSound = new SoundCollectionSpecifier("cardSlide");
+
+ [DataField("placeDownSound")]
+ public SoundSpecifier PlaceDownSound = new SoundCollectionSpecifier("cardShove");
+
+ [DataField("yOffset")]
+ public float YOffset = 0.02f;
+
+ [DataField("scale")]
+ public float Scale = 1;
+
+ [DataField("limit")]
+ public int CardLimit = 5;
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs
new file mode 100644
index 00000000000000..4189bd3b7be842
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs
@@ -0,0 +1,140 @@
+using Content.Shared._EstacaoPirata.Cards.Stack;
+using Content.Shared.Audio;
+using Content.Shared.Hands.EntitySystems;
+using Content.Shared.Interaction;
+using Content.Shared.Popups;
+using Content.Shared.Verbs;
+using Robust.Shared.Audio.Systems;
+using Robust.Shared.Network;
+using Robust.Shared.Random;
+using Robust.Shared.Utility;
+
+namespace Content.Shared._EstacaoPirata.Cards.Deck;
+
+///
+/// This handles card decks
+///
+///
+public sealed class CardDeckSystem : EntitySystem
+{
+ [Dependency] private readonly SharedHandsSystem _hands = default!;
+ [Dependency] private readonly SharedAudioSystem _audio = default!;
+ [Dependency] private readonly SharedPopupSystem _popup = default!;
+ [Dependency] private readonly CardStackSystem _cardStackSystem = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly INetManager _net = default!;
+ const string CardDeckBaseName = "CardDeckBase";
+
+
+
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnInteractHand);
+ SubscribeLocalEvent>(AddTurnOnVerb);
+ }
+
+
+ private void AddTurnOnVerb(EntityUid uid, CardDeckComponent component, GetVerbsEvent args)
+ {
+ if (!args.CanAccess || !args.CanInteract || args.Hands == null)
+ return;
+
+ if (!TryComp(uid, out CardStackComponent? comp))
+ return;
+
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => TrySplit(args.Target, component, comp, args.User),
+ Text = Loc.GetString("cards-verb-split"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/dot.svg.192dpi.png")),
+ Priority = 4
+ });
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => TryShuffle(uid, component, comp),
+ Text = Loc.GetString("cards-verb-shuffle"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/die.svg.192dpi.png")),
+ Priority = 3
+ });
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => TryOrganize(uid, component, comp, false),
+ Text = Loc.GetString("cards-verb-organize-up"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")),
+ Priority = 1
+ });
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => TryOrganize(uid, component, comp, true),
+ Text = Loc.GetString("cards-verb-organize-down"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")),
+ Priority = 2
+ });
+
+ }
+
+ private void TrySplit(EntityUid uid, CardDeckComponent deck, CardStackComponent stack, EntityUid user)
+ {
+ _audio.PlayPredicted(deck.PickUpSound, Transform(uid).Coordinates, user);
+
+ if (!_net.IsServer || stack.Cards.Count <= 1)
+ return;
+
+ var cardDeck = Spawn(CardDeckBaseName, Transform(uid).Coordinates);
+
+ EnsureComp(cardDeck, out var deckStack);
+
+ _cardStackSystem.TransferNLastCardFromStacks(user, stack.Cards.Count, uid, stack, cardDeck, deckStack);
+
+ _hands.TryPickupAnyHand(user, cardDeck);
+ }
+
+
+ private void TryShuffle(EntityUid deck, CardDeckComponent comp, CardStackComponent? stack)
+ {
+ _cardStackSystem.ShuffleCards(deck, stack);
+ if (_net.IsClient)
+ return;
+
+ _audio.PlayPvs(comp.ShuffleSound, deck, AudioHelpers.WithVariation(0.05f, _random));
+ _popup.PopupEntity(Loc.GetString("card-verb-shuffle-success", ("target", MetaData(deck).EntityName)), deck);
+ }
+
+ private void TryOrganize(EntityUid deck, CardDeckComponent comp, CardStackComponent? stack, bool isFlipped)
+ {
+ if (_net.IsClient)
+ return;
+ _cardStackSystem.FlipAllCards(deck, stack, isFlipped: isFlipped);
+
+ _audio.PlayPvs(comp.ShuffleSound, deck, AudioHelpers.WithVariation(0.05f, _random));
+ _popup.PopupEntity(Loc.GetString("card-verb-organize-success", ("target", MetaData(deck).EntityName)), deck);
+ }
+
+
+ private void OnInteractHand(EntityUid uid, CardDeckComponent component, InteractHandEvent args)
+ {
+ if (args.Handled)
+ return;
+
+ if (!TryComp(uid, out CardStackComponent? comp))
+ return;
+
+ if (comp.Cards.Count <= 0)
+ return;
+
+ if (!comp.Cards.TryGetValue(comp.Cards.Count-1, out var card))
+ return;
+
+ if (!_cardStackSystem.TryRemoveCard(uid, card, comp))
+ return;
+
+ _hands.TryPickupAnyHand(args.User, card);
+
+ _audio.PlayPredicted(component.PickUpSound, Transform(uid).Coordinates, args.User);
+
+ args.Handled = true;
+ }
+
+
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs
new file mode 100644
index 00000000000000..668f4a1e80d3e7
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs
@@ -0,0 +1,36 @@
+using Robust.Shared.Serialization;
+
+namespace Content.Shared._EstacaoPirata.Cards.Hand;
+
+///
+/// This is used for...
+///
+[RegisterComponent]
+public sealed partial class CardHandComponent : Component
+{
+ [DataField("angle")]
+ public float Angle = 120f;
+
+ [DataField("xOffset")]
+ public float XOffset = 0.5f;
+
+ [DataField("scale")]
+ public float Scale = 1;
+
+ [DataField("limit")]
+ public int CardLimit = 10;
+
+}
+
+
+[Serializable, NetSerializable]
+public enum CardUiKey : byte
+{
+ Key
+}
+
+[Serializable, NetSerializable]
+public sealed class CardHandDrawMessage(NetEntity card) : BoundUserInterfaceMessage
+{
+ public NetEntity Card = card;
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs
new file mode 100644
index 00000000000000..19c3c11bdc8c0c
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs
@@ -0,0 +1,149 @@
+using System.Linq;
+using Content.Shared._EstacaoPirata.Cards.Card;
+using Content.Shared._EstacaoPirata.Cards.Stack;
+using Content.Shared.Hands.EntitySystems;
+using Content.Shared.Interaction;
+using Content.Shared.Popups;
+using Content.Shared.Verbs;
+using Robust.Shared.Network;
+using Robust.Shared.Player;
+using Robust.Shared.Utility;
+
+namespace Content.Shared._EstacaoPirata.Cards.Hand;
+
+///
+/// This handles...
+///
+public sealed class CardHandSystem : EntitySystem
+{
+ const string CardHandBaseName = "CardHandBase";
+ const string CardDeckBaseName = "CardDeckBase";
+
+ [Dependency] private readonly CardStackSystem _cardStack = default!;
+ [Dependency] private readonly SharedHandsSystem _hands = default!;
+ [Dependency] private readonly INetManager _net = default!;
+ [Dependency] private readonly SharedUserInterfaceSystem _ui = default!;
+ [Dependency] private readonly SharedPopupSystem _popupSystem = default!;
+
+
+
+
+ ///
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnInteractUsing);
+ SubscribeLocalEvent(OnCardDraw);
+ SubscribeLocalEvent(OnStackQuantityChange);
+ SubscribeLocalEvent>(OnAlternativeVerb);
+ }
+
+ private void OnStackQuantityChange(EntityUid uid, CardHandComponent comp, CardStackQuantityChangeEvent args)
+ {
+ if (_net.IsClient)
+ return;
+
+ if (!TryComp(uid, out CardStackComponent? stack))
+ return;
+
+ var text = args.Type switch
+ {
+ StackQuantityChangeType.Added => "cards-stackquantitychange-added",
+ StackQuantityChangeType.Removed => "cards-stackquantitychange-removed",
+ _ => "cards-stackquantitychange-unknown"
+ };
+
+ _popupSystem.PopupEntity(Loc.GetString(text, ("quantity", stack.Cards.Count)), uid);
+
+ _cardStack.FlipAllCards(uid, stack, false);
+ }
+
+ private void OnCardDraw(EntityUid uid, CardHandComponent comp, CardHandDrawMessage args)
+ {
+ if (!TryComp(uid, out CardStackComponent? stack))
+ return;
+ if (!_cardStack.TryRemoveCard(uid, GetEntity(args.Card), stack))
+ return;
+
+ _hands.TryPickupAnyHand(args.Actor, GetEntity(args.Card));
+
+
+ if (stack.Cards.Count != 1)
+ return;
+ var lastCard = stack.Cards.Last();
+ if (!_cardStack.TryRemoveCard(uid, lastCard, stack))
+ return;
+ _hands.TryPickupAnyHand(args.Actor, lastCard);
+
+ }
+
+ private void OpenHandMenu(EntityUid user, EntityUid hand)
+ {
+ if (!TryComp(user, out var actor))
+ return;
+
+ _ui.OpenUi(hand, CardUiKey.Key, actor.PlayerSession);
+
+ }
+
+ private void OnAlternativeVerb(EntityUid uid, CardHandComponent comp, GetVerbsEvent args)
+ {
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => OpenHandMenu(args.User, uid),
+ Text = Loc.GetString("cards-verb-pickcard"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/die.svg.192dpi.png")),
+ Priority = 3
+ });
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Act = () => ConvertToDeck(args.User, uid),
+ Text = Loc.GetString("cards-verb-convert-to-deck"),
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/rotate_cw.svg.192dpi.png")),
+ Priority = 2
+ });
+ }
+
+ private void OnInteractUsing(EntityUid uid, CardComponent comp, InteractUsingEvent args)
+ {
+ if (TryComp(args.Used, out CardComponent? usedComp) && TryComp(args.Target, out CardComponent? targetComp))
+ {
+ TrySetupHandOfCards(args.User, args.Used, usedComp, args.Target, targetComp);
+ }
+ }
+
+ private void ConvertToDeck(EntityUid user, EntityUid hand)
+ {
+ if (_net.IsClient)
+ return;
+
+ var cardDeck = Spawn(CardDeckBaseName, Transform(hand).Coordinates);
+
+ bool isHoldingCards = _hands.IsHolding(user, hand);
+
+ EnsureComp(cardDeck, out var deckStack);
+ if (!TryComp(hand, out CardStackComponent? handStack))
+ return;
+ _cardStack.TryJoinStacks(cardDeck, hand, deckStack, handStack);
+
+ if (isHoldingCards)
+ _hands.TryPickupAnyHand(user, cardDeck);
+ }
+ private void TrySetupHandOfCards(EntityUid user, EntityUid card, CardComponent comp, EntityUid target, CardComponent targetComp)
+ {
+ if (_net.IsClient)
+ return;
+ var cardHand = Spawn(CardHandBaseName, Transform(card).Coordinates);
+ if (!TryComp(cardHand, out CardStackComponent? stack))
+ return;
+ if (!_cardStack.TryInsertCard(cardHand, card, stack) || !_cardStack.TryInsertCard(cardHand, target, stack))
+ return;
+ if (!_hands.TryPickupAnyHand(user, cardHand))
+ return;
+ _cardStack.FlipAllCards(cardHand, stack, false);
+ }
+
+
+
+
+
+}
diff --git a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs
new file mode 100644
index 00000000000000..e8fcf179695f96
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs
@@ -0,0 +1,82 @@
+using Robust.Shared.Audio;
+using Robust.Shared.Containers;
+using Robust.Shared.GameStates;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Serialization;
+
+namespace Content.Shared._EstacaoPirata.Cards.Stack;
+
+///
+/// This is used for holding the prototype ids of the cards in the stack or hand.
+///
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
+
+public sealed partial class CardStackComponent : Component
+{
+ [DataField("content")]
+ public List InitialContent = [];
+
+ [DataField("shuffleSound")]
+ public SoundSpecifier ShuffleSound = new SoundCollectionSpecifier("cardFan");
+
+ [DataField("pickUpSound")]
+ public SoundSpecifier PickUpSound = new SoundCollectionSpecifier("cardSlide");
+
+ [DataField("placeDownSound")]
+ public SoundSpecifier PlaceDownSound = new SoundCollectionSpecifier("cardShove");
+
+
+ ///
+ /// The containers that contain the items held in the stack
+ ///
+ [ViewVariables]
+ public Container ItemContainer = default!;
+
+ ///
+ /// The list EntityUIds of Cards
+ ///
+ [DataField, AutoNetworkedField]
+ public List Cards = [];
+}
+
+[Serializable, NetSerializable]
+public sealed class CardStackInitiatedEvent(NetEntity cardStack, CardStackComponent? component) : EntityEventArgs
+{
+ public NetEntity CardStack = cardStack;
+}
+
+///
+/// This gets Updated when new cards are added or removed from the stack
+///
+[Serializable, NetSerializable]
+public sealed class CardStackQuantityChangeEvent(NetEntity stack, NetEntity? card, StackQuantityChangeType type) : EntityEventArgs
+{
+ public NetEntity Stack = stack;
+ public NetEntity? Card = card;
+ public StackQuantityChangeType Type = type;
+}
+
+[Serializable, NetSerializable]
+public enum StackQuantityChangeType: sbyte
+{
+ Added,
+ Removed,
+ Joined
+}
+
+
+
+[Serializable, NetSerializable]
+public sealed class CardStackReorderedEvent(NetEntity stack) : EntityEventArgs
+{
+ public NetEntity Stack = stack;
+}
+
+[Serializable, NetSerializable]
+public sealed class CardStackFlippedEvent(NetEntity cardStack) : EntityEventArgs
+{
+ public NetEntity CardStack = cardStack;
+}
+
+
+
diff --git a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs
new file mode 100644
index 00000000000000..503be18bab0a81
--- /dev/null
+++ b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs
@@ -0,0 +1,312 @@
+using System.Linq;
+using Content.Shared._EstacaoPirata.Cards.Card;
+using Content.Shared.Examine;
+using Content.Shared.Interaction;
+using Content.Shared.Storage.EntitySystems;
+using Content.Shared.Verbs;
+using Robust.Shared.Audio.Systems;
+using Robust.Shared.Containers;
+using Robust.Shared.Network;
+using Robust.Shared.Random;
+using Robust.Shared.Utility;
+
+namespace Content.Shared._EstacaoPirata.Cards.Stack;
+
+///
+/// This handles stack of cards.
+/// It is used to shuffle, flip, insert, remove, and join stacks of cards.
+/// It also handles the events related to the stack of cards.
+///
+public sealed class CardStackSystem : EntitySystem
+{
+ public const string ContainerId = "cardstack-container";
+
+ [Dependency] private readonly SharedContainerSystem _container = default!;
+ [Dependency] private readonly EntityManager _entityManager = default!;
+ [Dependency] private readonly INetManager _net = default!;
+ [Dependency] private readonly SharedAudioSystem _audio = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly SharedStorageSystem _storage = default!;
+
+
+ ///
+ public override void Initialize()
+ {
+ // Pretty much a rip-off of the BinSystem
+ SubscribeLocalEvent(OnStartup);
+ SubscribeLocalEvent(OnMapInit);
+ SubscribeLocalEvent(OnEntRemoved);
+ SubscribeLocalEvent>(OnAlternativeVerb);
+ SubscribeLocalEvent(OnExamine);
+ SubscribeLocalEvent(OnInteractUsing);
+ }
+
+
+
+ public bool TryRemoveCard(EntityUid uid, EntityUid card, CardStackComponent? comp = null)
+ {
+ if (!Resolve(uid, ref comp))
+ return false;
+
+ if (!TryComp(card, out CardComponent? _))
+ return false;
+
+ _container.Remove(card, comp.ItemContainer);
+ comp.Cards.Remove(card);
+
+ Dirty(uid, comp);
+
+ // Prevents prediction ruining things
+ if (_net.IsServer && comp.Cards.Count <= 0)
+ {
+ _entityManager.DeleteEntity(uid);
+ }
+ RaiseLocalEvent(uid, new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Removed));
+ RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Removed));
+ return true;
+ }
+
+ public bool TryInsertCard(EntityUid uid, EntityUid card, CardStackComponent? comp = null)
+ {
+ if (!Resolve(uid, ref comp))
+ return false;
+
+ if (!TryComp(card, out CardComponent? _))
+ return false;
+
+ _container.Insert(card, comp.ItemContainer);
+ comp.Cards.Add(card);
+
+ Dirty(uid, comp);
+ RaiseLocalEvent(uid, new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Added));
+ RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Added));
+ return true;
+
+ }
+
+ public bool ShuffleCards(EntityUid uid, CardStackComponent? comp = null)
+ {
+ if (!Resolve(uid, ref comp))
+ return false;
+
+ _random.Shuffle(comp.Cards);
+
+ Dirty(uid, comp);
+ RaiseLocalEvent(uid, new CardStackReorderedEvent(GetNetEntity(uid)));
+ RaiseNetworkEvent(new CardStackReorderedEvent(GetNetEntity(uid)));
+ return true;
+ }
+
+ ///
+ /// Server-Side only method to flip all cards within a stack. This starts CardFlipUpdatedEvent and CardStackFlippedEvent event
+ ///
+ ///
+ ///
+ /// If null, all cards will just invert direction, if it contains a value, then all cards will receive that value
+ ///
+ public bool FlipAllCards(EntityUid uid, CardStackComponent? comp = null, bool? isFlipped = null)
+ {
+ if (_net.IsClient)
+ return false;
+ if (!Resolve(uid, ref comp))
+ return false;
+ foreach (var card in comp.Cards)
+ {
+ if (!TryComp(card, out CardComponent? cardComponent))
+ continue;
+
+
+ cardComponent.Flipped = isFlipped?? !cardComponent.Flipped;
+
+ Dirty(card, cardComponent);
+ RaiseNetworkEvent(new CardFlipUpdatedEvent(GetNetEntity(card)));
+ }
+
+ RaiseNetworkEvent(new CardStackFlippedEvent(GetNetEntity(uid)));
+ return true;
+ }
+
+
+ public bool TryJoinStacks(EntityUid firstStack, EntityUid secondStack, CardStackComponent? firstComp = null, CardStackComponent? secondComp = null)
+ {
+ if (firstStack == secondStack)
+ return false;
+ if (!Resolve(firstStack, ref firstComp) || !Resolve(secondStack, ref secondComp))
+ return false;
+
+ foreach (var card in secondComp.Cards.ToList())
+ {
+ _container.Remove(card, secondComp.ItemContainer);
+ secondComp.Cards.Remove(card);
+ firstComp.Cards.Add(card);
+ _container.Insert(card, firstComp.ItemContainer);
+ }
+ Dirty(firstStack, firstComp);
+
+ _entityManager.DeleteEntity(secondStack);
+
+ RaiseLocalEvent(firstStack, new CardStackQuantityChangeEvent(GetNetEntity(firstStack), null, StackQuantityChangeType.Joined) );
+ RaiseNetworkEvent(new CardStackQuantityChangeEvent(GetNetEntity(firstStack), null, StackQuantityChangeType.Joined));
+ return true;
+ }
+
+ #region EventHandling
+
+ private void OnStartup(EntityUid uid, CardStackComponent component, ComponentStartup args)
+ {
+ component.ItemContainer = _container.EnsureContainer(uid, ContainerId);
+ }
+
+ private void OnMapInit(EntityUid uid, CardStackComponent comp, MapInitEvent args)
+ {
+ if (_net.IsClient)
+ return;
+
+ var coordinates = Transform(uid).Coordinates;
+ foreach (var id in comp.InitialContent)
+ {
+ var ent = Spawn(id, coordinates);
+ if (TryInsertCard(uid, ent, comp))
+ continue;
+ Log.Error($"Entity {ToPrettyString(ent)} was unable to be initialized into stack {ToPrettyString(uid)}");
+ return;
+ }
+ RaiseNetworkEvent(new CardStackInitiatedEvent(GetNetEntity(uid), comp));
+ }
+
+
+ // It seems the cards don't get removed if this event is not subscribed... strange right? thanks again bin system
+ private void OnEntRemoved(EntityUid uid, CardStackComponent component, EntRemovedFromContainerMessage args)
+ {
+ component.Cards.Remove(args.Entity);
+ }
+
+ private void OnExamine(EntityUid uid, CardStackComponent component, ExaminedEvent args)
+ {
+ args.PushText(Loc.GetString("card-stack-examine", ("count", component.Cards.Count)));
+ }
+
+
+ private void OnAlternativeVerb(EntityUid uid, CardStackComponent component, GetVerbsEvent args)
+ {
+ if (!TryComp(args.Using, out CardStackComponent? usingStack) ||
+ !TryComp(args.Target, out CardStackComponent? targetStack))
+ return;
+
+ if (args.Using == args.Target)
+ return;
+
+ args.Verbs.Add(new AlternativeVerb()
+ {
+ Text = "card-verb-join",
+ Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")),
+ Priority = 8,
+ Act = () => JoinStacks(args.User, args.Target, targetStack, (EntityUid)args.Using, usingStack)
+ });
+
+ }
+
+ private void JoinStacks(EntityUid user, EntityUid first, CardStackComponent firstComp, EntityUid second, CardStackComponent secondComp)
+ {
+ _audio.PlayPredicted(firstComp.PlaceDownSound, Transform(second).Coordinates, user);
+ if (_net.IsServer)
+ {
+ _storage.PlayPickupAnimation(first, Transform(user).Coordinates, Transform(second).Coordinates, 0);
+ TryJoinStacks(first, second, firstComp, secondComp);
+ }
+ }
+
+
+ private void InsertCardOnStack(EntityUid user, EntityUid stack, CardStackComponent stackComponent, EntityUid card)
+ {
+ if (!TryInsertCard(stack, card))
+ return;
+
+ _audio.PlayPredicted(stackComponent.PlaceDownSound, Transform(stack).Coordinates, user);
+ if (_net.IsClient)
+ return;
+ _storage.PlayPickupAnimation(card, Transform(user).Coordinates, Transform(stack).Coordinates, 0);
+ }
+
+
+ ///
+ /// This takes the last card from the first stack and inserts it into the second stack
+ ///
+ public void TransferNLastCardFromStacks(EntityUid user, int n, EntityUid first, CardStackComponent firstComp, EntityUid second, CardStackComponent secondComp)
+ {
+ if (firstComp.Cards.Count <= 0)
+ return;
+
+
+ var cards = firstComp.Cards.TakeLast(n);
+
+ foreach (var card in cards)
+ {
+ if (!TryRemoveCard(first, card))
+ return;
+
+ if (!TryInsertCard(second, card))
+ return;
+ }
+
+
+ _audio.PlayPredicted(firstComp.PlaceDownSound, Transform(second).Coordinates, user);
+ if (_net.IsClient)
+ return;
+
+ if (cards.Count() == 1)
+ {
+ _storage.PlayPickupAnimation(cards.First(), Transform(user).Coordinates, Transform(second).Coordinates, 0);
+ }
+ else
+ {
+ _storage.PlayPickupAnimation(first, Transform(first).Coordinates, Transform(second).Coordinates, 0);
+ }
+ }
+
+
+
+ private void OnInteractUsing(InteractUsingEvent args)
+ {
+ if (args.Handled)
+ return;
+
+
+ // This checks if the user is using an item with Stack component
+ if (TryComp(args.Used, out CardStackComponent? usedStack))
+ {
+ // If the target is a card, then it will insert the card into the stack
+ if (TryComp(args.Target, out CardComponent? _))
+ {
+ InsertCardOnStack(args.User, args.Used, usedStack, args.Target);
+ args.Handled = true;
+ return;
+
+ }
+
+ // If instead, the target is a stack, then it will join the two stacks
+ if (!TryComp(args.Target, out CardStackComponent? targetStack))
+ return;
+
+ TransferNLastCardFromStacks(args.User, 1, args.Target, targetStack, args.Used, usedStack);
+ args.Handled = true;
+
+ }
+
+ // This handles the reverse case, where the user is using a card and inserting it to a stack
+ else if (TryComp(args.Target, out CardStackComponent? stack))
+ {
+ if (TryComp(args.Used, out CardComponent? _))
+ {
+ InsertCardOnStack(args.User, args.Target, stack, args.Used);
+ args.Handled = true;
+ }
+ }
+
+
+ }
+
+
+
+ #endregion
+}
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/attributions.yml b/Resources/Audio/EstacaoPirata/Effects/Cards/attributions.yml
new file mode 100644
index 00000000000000..879bb3bc0445bf
--- /dev/null
+++ b/Resources/Audio/EstacaoPirata/Effects/Cards/attributions.yml
@@ -0,0 +1,6 @@
+- files: [ "cardFan1.ogg", "cardFan2.ogg", "cardOpenPackage1.ogg", "cardOpenPackage2.ogg", "cardPlace1.ogg", "cardPlace2.ogg", "cardPlace3.ogg", "cardPlace4.ogg", "cardShove1.ogg", "cardShove2.ogg", "cardShove3.ogg", "cardShove4.ogg", "cardShuffle.ogg", "cardSlide1.ogg", "cardSlide2.ogg", "cardSlide3.ogg", "cardSlide4.ogg", "cardSlide5.ogg", "cardSlide6.ogg", "cardSlide7.ogg", "cardSlide8.ogg", "cardTakeOutPackage1.ogg", "cardTakeOutPackage2.ogg"]
+ license: "CC0-1.0"
+ copyright: "Kenney.nl"
+ source: "https://opengameart.org/content/54-casino-sound-effects-cards-dice-chips"
+
+
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg
new file mode 100644
index 00000000000000..6d059e204b8463
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg
new file mode 100644
index 00000000000000..b744067444a37b
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg
new file mode 100644
index 00000000000000..9d04ade0be61b4
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg
new file mode 100644
index 00000000000000..32afa72eb7b2c3
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg
new file mode 100644
index 00000000000000..61d8b7170f7835
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg
new file mode 100644
index 00000000000000..827baa8dfd683d
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg
new file mode 100644
index 00000000000000..7f1b11ce4c91dd
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg
new file mode 100644
index 00000000000000..088455b47db87d
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg
new file mode 100644
index 00000000000000..89fb73a9a55ce8
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg
new file mode 100644
index 00000000000000..5b625d3012451d
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg
new file mode 100644
index 00000000000000..282d1a870eae29
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg
new file mode 100644
index 00000000000000..cc10d9248d57af
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg
new file mode 100644
index 00000000000000..6b2724fe5ea119
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg
new file mode 100644
index 00000000000000..9545e2448504ca
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg
new file mode 100644
index 00000000000000..d41969c20b8f1a
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg
new file mode 100644
index 00000000000000..4e2295221761a9
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg
new file mode 100644
index 00000000000000..47dd7e9032f000
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg
new file mode 100644
index 00000000000000..281d89da0af442
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg
new file mode 100644
index 00000000000000..b11d1b9092767b
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg
new file mode 100644
index 00000000000000..700e64b893bb28
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg
new file mode 100644
index 00000000000000..8aff3ea887bf4d
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg
new file mode 100644
index 00000000000000..cc90ece1584691
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg differ
diff --git a/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg
new file mode 100644
index 00000000000000..95755e6614408a
Binary files /dev/null and b/Resources/Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg differ
diff --git a/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl b/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl
new file mode 100644
index 00000000000000..53c409458e864a
--- /dev/null
+++ b/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl
@@ -0,0 +1,76 @@
+card-examined = This is a {$target}.
+cards-verb-shuffle = Shuffle
+card-verb-shuffle-success = Cards shuffled
+cards-verb-flip = Flip Cards
+card-verb-join = Join Cards
+card-verb-organize-success = Cards shuffled
+card-verb-organize = Organize Cards
+cards-verb-organize-up = Organize Cards facing up
+cards-verb-organize-down = Organize Cards facing down
+cards-verb-pickcard = Pick a card
+card-stack-examine = There are {$count} cards in this stack.
+cards-stackquantitychange-added = Card was added (Total of cards: {$quantity})
+cards-stackquantitychange-removed = Card was removed (Total of cards: {$quantity})
+cards-verb-convert-to-deck = Convert to Card Deck
+cards-verb-split = Split in half
+
+card-base-name = Card
+card-deck-name = Deck of cards
+
+card-sc-2-clubs-black = 2 of Clubs Black card
+card-sc-3-clubs-black = 3 of Clubs Black card
+card-sc-4-clubs-black = 4 of Clubs Black card
+card-sc-5-clubs-black = 5 of Clubs Black card
+card-sc-6-clubs-black = 6 of Clubs Black card
+card-sc-7-clubs-black = 7 of Clubs Black card
+card-sc-8-clubs-black = 8 of Clubs Black card
+card-sc-9-clubs-black = 9 of Clubs Black card
+card-sc-10-clubs-black = 10 of Clubs Black card
+card-sc-ace-clubs-black = Ace of Clubs Black card
+card-sc-jack-clubs-black = Jack of Clubs Black card
+card-sc-king-clubs-black = King of Clubs Black card
+card-sc-queen-clubs-black = Queen of Clubs Black card
+
+card-sc-2-diamonds-black = 2 of Diamonds Black card
+card-sc-3-diamonds-black = 3 of Diamonds Black card
+card-sc-4-diamonds-black = 4 of Diamonds Black card
+card-sc-5-diamonds-black = 5 of Diamonds Black card
+card-sc-6-diamonds-black = 6 of Diamonds Black card
+card-sc-7-diamonds-black = 7 of Diamonds Black card
+card-sc-8-diamonds-black = 8 of Diamonds Black card
+card-sc-9-diamonds-black = 9 of Diamonds Black card
+card-sc-10-diamonds-black = 10 of Diamonds Black card
+card-sc-ace-diamonds-black = Ace of Diamonds Black card
+card-sc-jack-diamonds-black = Jack of Diamonds Black card
+card-sc-king-diamonds-black = King of Diamonds Black card
+card-sc-queen-diamonds-black = Queen of Diamonds Black card
+
+card-sc-2-hearts-black = 2 of Hearts Black card
+card-sc-3-hearts-black = 3 of Hearts Black card
+card-sc-4-hearts-black = 4 of Hearts Black card
+card-sc-5-hearts-black = 5 of Hearts Black card
+card-sc-6-hearts-black = 6 of Hearts Black card
+card-sc-7-hearts-black = 7 of Hearts Black card
+card-sc-8-hearts-black = 8 of Hearts Black card
+card-sc-9-hearts-black = 9 of Hearts Black card
+card-sc-10-hearts-black = 10 of Hearts Black card
+card-sc-ace-hearts-black = Ace of Hearts Black card
+card-sc-jack-hearts-black = Jack of Hearts Black card
+card-sc-king-hearts-black = King of Hearts Black card
+card-sc-queen-hearts-black = Queen of Hearts Black card
+
+card-sc-2-spades-black = 2 of Spades Black card
+card-sc-3-spades-black = 3 of Spades Black card
+card-sc-4-spades-black = 4 of Spades Black card
+card-sc-5-spades-black = 5 of Spades Black card
+card-sc-6-spades-black = 6 of Spades Black card
+card-sc-7-spades-black = 7 of Spades Black card
+card-sc-8-spades-black = 8 of Spades Black card
+card-sc-9-spades-black = 9 of Spades Black card
+card-sc-10-spades-black = 10 of Spades Black card
+card-sc-ace-spades-black = Ace of Spades Black card
+card-sc-jack-spades-black = Jack of Spades Black card
+card-sc-king-spades-black = King of Spades Black card
+card-sc-queen-spades-black = Queen of Spades Black card
+
+card-sc-joker-black = Joker Black card
diff --git a/Resources/Locale/pt-BR/estacao-pirata/cards/cards.ftl b/Resources/Locale/pt-BR/estacao-pirata/cards/cards.ftl
new file mode 100644
index 00000000000000..7b7d3282e21993
--- /dev/null
+++ b/Resources/Locale/pt-BR/estacao-pirata/cards/cards.ftl
@@ -0,0 +1,76 @@
+card-examined = Essa é uma {$target}.
+cards-verb-shuffle = Embaralhar
+card-verb-shuffle-success = Cartas embaralhadas
+cards-verb-flip = Virar cartas
+card-verb-join = Juntar cartas
+card-verb-organize-success = Cartas embaralhadas
+card-verb-organize = Organizar cartas
+cards-verb-organize-up = Organizar Cartas viradas para cima
+cards-verb-organize-down = Organizar Cartas viradas para baixo
+cards-verb-pickcard = Pegar carta
+card-stack-examine = Este conjunto tem {$count} cartas.
+cards-stackquantitychange-added = Carta foi adicionada (Total de cartas: {$quantity})
+cards-stackquantitychange-removed = Carta foi removida (Total de cartas: {$quantity})
+cards-verb-convert-to-deck = Converter em Pilha de Cartas
+cards-verb-split = Dividir
+
+ent-CardBase = Carta
+ent-CardDeck = Pilha de cartas
+
+card-sc-2-clubs-black = carta de 2 de Paus (Conjunto Mão do Povo)
+card-sc-3-clubs-black = carta de 3 de Paus (Conjunto Mão do Povo)
+card-sc-4-clubs-black = carta de 4 de Paus (Conjunto Mão do Povo)
+card-sc-5-clubs-black = carta de 5 de Paus (Conjunto Mão do Povo)
+card-sc-6-clubs-black = carta de 6 de Paus (Conjunto Mão do Povo)
+card-sc-7-clubs-black = carta de 7 de Paus (Conjunto Mão do Povo)
+card-sc-8-clubs-black = carta de 8 de Paus (Conjunto Mão do Povo)
+card-sc-9-clubs-black = carta de 9 de Paus (Conjunto Mão do Povo)
+card-sc-10-clubs-black = carta de 10 de Paus (Conjunto Mão do Povo)
+card-sc-ace-clubs-black = carta de Ás de Paus (Conjunto Mão do Povo)
+card-sc-jack-clubs-black = carta de Valete de Paus (Conjunto Mão do Povo)
+card-sc-king-clubs-black = carta de Rei de Paus (Conjunto Mão do Povo)
+card-sc-queen-clubs-black = carta de Rainha de Paus (Conjunto Mão do Povo)
+
+card-sc-2-diamonds-black = carta de 2 de Ouros (Conjunto Mão do Povo)
+card-sc-3-diamonds-black = carta de 3 de Ouros (Conjunto Mão do Povo)
+card-sc-4-diamonds-black = carta de 4 de Ouros (Conjunto Mão do Povo)
+card-sc-5-diamonds-black = carta de 5 de Ouros (Conjunto Mão do Povo)
+card-sc-6-diamonds-black = carta de 6 de Ouros (Conjunto Mão do Povo)
+card-sc-7-diamonds-black = carta de 7 de Ouros (Conjunto Mão do Povo)
+card-sc-8-diamonds-black = carta de 8 de Ouros (Conjunto Mão do Povo)
+card-sc-9-diamonds-black = carta de 9 de Ouros (Conjunto Mão do Povo)
+card-sc-10-diamonds-black = carta de 10 de Ouros (Conjunto Mão do Povo)
+card-sc-ace-diamonds-black = carta de Ás de Ouros (Conjunto Mão do Povo)
+card-sc-jack-diamonds-black = carta de Valete de Ouros (Conjunto Mão do Povo)
+card-sc-king-diamonds-black = carta de Rei de Ouros (Conjunto Mão do Povo)
+card-sc-queen-diamonds-black = carta de Rainha de Ouros (Conjunto Mão do Povo)
+
+card-sc-2-hearts-black = carta de 2 de Copas (Conjunto Mão do Povo)
+card-sc-3-hearts-black = carta de 3 de Copas (Conjunto Mão do Povo)
+card-sc-4-hearts-black = carta de 4 de Copas (Conjunto Mão do Povo)
+card-sc-5-hearts-black = carta de 5 de Copas (Conjunto Mão do Povo)
+card-sc-6-hearts-black = carta de 6 de Copas (Conjunto Mão do Povo)
+card-sc-7-hearts-black = carta de 7 de Copas (Conjunto Mão do Povo)
+card-sc-8-hearts-black = carta de 8 de Copas (Conjunto Mão do Povo)
+card-sc-9-hearts-black = carta de 9 de Copas (Conjunto Mão do Povo)
+card-sc-10-hearts-black = carta de 10 de Copas (Conjunto Mão do Povo)
+card-sc-ace-hearts-black = carta de Ás de Copas (Conjunto Mão do Povo)
+card-sc-jack-hearts-black = carta de Valete de Copas (Conjunto Mão do Povo)
+card-sc-king-hearts-black = carta de Rei de Copas (Conjunto Mão do Povo)
+card-sc-queen-hearts-black = carta de Rainha de Copas (Conjunto Mão do Povo)
+
+card-sc-2-spades-black = carta de 2 de Espadas (Conjunto Mão do Povo)
+card-sc-3-spades-black = carta de 3 de Espadas (Conjunto Mão do Povo)
+card-sc-4-spades-black = carta de 4 de Espadas (Conjunto Mão do Povo)
+card-sc-5-spades-black = carta de 5 de Espadas (Conjunto Mão do Povo)
+card-sc-6-spades-black = carta de 6 de Espadas (Conjunto Mão do Povo)
+card-sc-7-spades-black = carta de 7 de Espadas (Conjunto Mão do Povo)
+card-sc-8-spades-black = carta de 8 de Espadas (Conjunto Mão do Povo)
+card-sc-9-spades-black = carta de 9 de Espadas (Conjunto Mão do Povo)
+card-sc-10-spades-black = carta de 10 de Espadas (Conjunto Mão do Povo)
+card-sc-ace-spades-black = carta de Ás de Espadas (Conjunto Mão do Povo)
+card-sc-jack-spades-black = carta de Valete de Espadas (Conjunto Mão do Povo)
+card-sc-king-spades-black = carta de Rei de Espadas (Conjunto Mão do Povo)
+card-sc-queen-spades-black = carta de Rainha de Espadas (Conjunto Mão do Povo)
+
+card-sc-joker-black = carta Coringa (Conjunto Mão do Povo)
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml
index f022b4b9a59aa8..fd7d9eb141bc14 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/games.yml
@@ -16,3 +16,4 @@
PaperCNCSheet: 6
MysteryFigureBox: 2
BooksBag: 3
+ CardBoxBlack: 1
diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/bedsheets.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/bedsheets.yml
index a6d0dc0d61ddcb..86c2a5b09e24df 100644
--- a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/bedsheets.yml
+++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/bedsheets.yml
@@ -6,4 +6,4 @@
- type: Sprite
state: sheetBRA
- type: Clothing
- sprite: EstacaoPirata/Clothing/Neck/Bedsheets/BRA.rsi
\ No newline at end of file
+ sprite: EstacaoPirata/Clothing/Neck/Bedsheets/BRA.rsi
diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/cards.yml
new file mode 100644
index 00000000000000..7d45133b6be95c
--- /dev/null
+++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/cards.yml
@@ -0,0 +1,764 @@
+- type: entity
+ parent: [ BoxCardboard, BaseBagOpenClose ]
+ id: CardBoxBase
+ name: Card Box
+ noSpawn: true
+ components:
+ - type: Item
+ size: Small
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: box
+ layers:
+ - state: black_box
+ - state: black_box_open
+ map: [ "openLayer" ]
+ visible: false
+ - type: Storage
+ maxItemSize: Normal
+ grid:
+ - 0,0,1,1
+ whitelist:
+ components:
+ - CardDeck
+ - type: OpenTriggeredStorageFill
+ contents:
+ - id: CardDeckBase
+ amount: 1
+ - type: Appearance
+
+
+- type: entity
+ parent: BaseItem
+ id: CardHandBase
+ noSpawn: true
+ name: Card hand
+ components:
+ - type: Item
+ size: Small
+ - type: CardHand
+ - type: CardStack
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: singlecard_down_black
+ - type: UserInterface
+ interfaces:
+ enum.CardUiKey.Key:
+ type: CardHandMenuBoundUserInterface
+ - type: ActivatableUI
+ key: enum.CardUiKey.Key
+
+- type: entity
+ parent: BaseItem
+ id: CardDeckBase
+ noSpawn: true
+ name: Deck_of_cards
+ components:
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: deck_black_full
+ - type: Item
+ size: Normal
+ - type: CardDeck
+ - type: CardStack
+
+
+- type: entity
+ parent: CardBoxBase
+ id: CardBoxBlack
+ name: black deck case
+ components:
+ - type: Item
+ size: Small
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: box
+ layers:
+ - state: black_box
+ - state: black_box_open
+ map: [ "openLayer" ]
+ visible: false
+ - type: OpenTriggeredStorageFill
+ contents:
+ - id: CardDeckBlack
+ amount: 1
+
+- type: entity
+ parent: CardDeckBase
+ id: CardDeckBlack
+ name: Deck_of_cards
+ components:
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: deck_black_full
+ - type: CardStack
+ content:
+ # Clubs
+ - CardScAceOfClubsBlack
+ - CardSc2OfClubsBlack
+ - CardSc3OfClubsBlack
+ - CardSc4OfClubsBlack
+ - CardSc5OfClubsBlack
+ - CardSc6OfClubsBlack
+ - CardSc7OfClubsBlack
+ - CardSc8OfClubsBlack
+ - CardSc9OfClubsBlack
+ - CardSc10OfClubsBlack
+ - CardScJackOfClubsBlack
+ - CardScQueenOfClubsBlack
+ - CardScKingOfClubsBlack
+ # Diamonds
+ - CardScAceOfDiamondsBlack
+ - CardSc2OfDiamondsBlack
+ - CardSc3OfDiamondsBlack
+ - CardSc4OfDiamondsBlack
+ - CardSc5OfDiamondsBlack
+ - CardSc6OfDiamondsBlack
+ - CardSc7OfDiamondsBlack
+ - CardSc8OfDiamondsBlack
+ - CardSc9OfDiamondsBlack
+ - CardSc10OfDiamondsBlack
+ - CardScJackOfDiamondsBlack
+ - CardScQueenOfDiamondsBlack
+ - CardScKingOfDiamondsBlack
+ # Hearts
+ - CardScAceOfHeartsBlack
+ - CardSc2OfHeartsBlack
+ - CardSc3OfHeartsBlack
+ - CardSc4OfHeartsBlack
+ - CardSc5OfHeartsBlack
+ - CardSc6OfHeartsBlack
+ - CardSc7OfHeartsBlack
+ - CardSc8OfHeartsBlack
+ - CardSc9OfHeartsBlack
+ - CardSc10OfHeartsBlack
+ - CardScJackOfHeartsBlack
+ - CardScQueenOfHeartsBlack
+ - CardScKingOfHeartsBlack
+ # Spades
+ - CardScAceOfSpadesBlack
+ - CardSc2OfSpadesBlack
+ - CardSc3OfSpadesBlack
+ - CardSc4OfSpadesBlack
+ - CardSc5OfSpadesBlack
+ - CardSc6OfSpadesBlack
+ - CardSc7OfSpadesBlack
+ - CardSc8OfSpadesBlack
+ - CardSc9OfSpadesBlack
+ - CardSc10OfSpadesBlack
+ - CardScKingOfSpadesBlack
+ - CardScQueenOfSpadesBlack
+ - CardScJackOfSpadesBlack
+ # Joker
+ - CardScJokerBlack
+
+- type: entity
+ parent: BaseItem
+ id: CardBase
+ name: Card
+ noSpawn: true
+ components:
+ - type: EmitSoundOnLand
+ sound:
+ collection: cardShove
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: singlecard_down_black
+ - type: Rotatable
+ - type: Item
+ size: Small
+ - type: UseDelay
+ delay: 0.5
+ - type: Card
+ backSpriteLayers:
+ - sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: singlecard_down_black
+ flipped: true
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc2OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-2-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_2_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc3OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-3-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_3_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc4OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-4-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_4_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc5OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-5-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_5_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc6OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-6-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_6_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc7OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-7-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_7_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc8OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-8-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_8_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc9OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-9-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_9_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc10OfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-10-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_10_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScAceOfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-ace-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Ace_of_Clubs_black
+
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScJackOfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-jack-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Jack_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScKingOfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-king-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_King_of_Clubs_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScQueenOfClubsBlack
+ components:
+ - type: Card
+ name: card-sc-queen-clubs-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Queen_of_Clubs_black
+
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScJackOfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-jack-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Jack_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScQueenOfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-queen-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Queen_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScKingOfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-king-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_King_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScAceOfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-ace-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Ace_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc2OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-2-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_2_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc3OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-3-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_3_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc4OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-4-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_4_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc5OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-5-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_5_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc6OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-6-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_6_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc7OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-7-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_7_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc8OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-8-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_8_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc9OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-9-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_9_of_Diamonds_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc10OfDiamondsBlack
+ components:
+ - type: Card
+ name: card-sc-10-diamonds-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_10_of_Diamonds_black
+
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc2OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-2-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_2_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc3OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-3-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_3_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc4OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-4-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_4_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc5OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-5-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_5_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc6OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-6-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_6_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc7OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-7-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_7_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc8OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-8-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_8_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc9OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-9-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_9_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc10OfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-10-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_10_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScKingOfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-king-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_King_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScQueenOfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-queen-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Queen_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScJackOfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-jack-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Jack_of_Hearts_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScAceOfHeartsBlack
+ components:
+ - type: Card
+ name: card-sc-ace-hearts-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Ace_of_Hearts_black
+
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc2OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-2-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_2_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc3OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-3-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_3_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc4OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-4-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_4_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc5OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-5-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_5_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc6OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-6-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_6_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc7OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-7-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_7_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc8OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-8-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_8_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc9OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-9-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_9_of_Spades_black
+
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardSc10OfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-10-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_10_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScKingOfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-king-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_King_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScQueenOfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-queen-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Queen_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScJackOfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-jack-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Jack_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScAceOfSpadesBlack
+ components:
+ - type: Card
+ name: card-sc-ace-spades-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: sc_Ace_of_Spades_black
+
+- type: entity
+ parent: CardBase
+ noSpawn: true
+ id: CardScJokerBlack
+ components:
+ - type: Card
+ name: card-sc-joker-black
+ - type: Sprite
+ sprite: EstacaoPirata/Objects/Misc/cards.rsi
+ state: black_joker
diff --git a/Resources/Prototypes/EstacaoPirata/SoundCollections/cards.yml b/Resources/Prototypes/EstacaoPirata/SoundCollections/cards.yml
new file mode 100644
index 00000000000000..5a7084630c0864
--- /dev/null
+++ b/Resources/Prototypes/EstacaoPirata/SoundCollections/cards.yml
@@ -0,0 +1,50 @@
+- type: soundCollection
+ id: cardFan
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardFan1.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardFan2.ogg
+
+- type: soundCollection
+ id: cardOpenPackage
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardOpenPackage1.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardOpenPackage2.ogg
+
+- type: soundCollection
+ id: cardPlace
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardPlace1.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardPlace2.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardPlace3.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardPlace4.ogg
+
+- type: soundCollection
+ id: cardShove
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardShove1.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardShove2.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardShove3.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardShove4.ogg
+
+- type: soundCollection
+ id: cardShuffle
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardShuffle.ogg
+
+- type: soundCollection
+ id: cardSlide
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide1.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide2.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide3.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide4.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide5.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide6.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide7.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardSlide8.ogg
+
+- type: soundCollection
+ id: cardTakeOutPackage
+ files:
+ - /Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage1.ogg
+ - /Audio/EstacaoPirata/Effects/Cards/cardTakeOutPackage2.ogg
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png
new file mode 100644
index 00000000000000..5145216bf3d43f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png
new file mode 100644
index 00000000000000..8b3c3fbe05c7cb
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand1.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand1.png
new file mode 100644
index 00000000000000..8797bc9b52b2cd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand1.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand2.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand2.png
new file mode 100644
index 00000000000000..7d217388d0a04e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand2.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand3.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand3.png
new file mode 100644
index 00000000000000..646ec3241b59bd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand3.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand4.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand4.png
new file mode 100644
index 00000000000000..a10b441e1c6858
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand4.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand5.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand5.png
new file mode 100644
index 00000000000000..b348eef2cac3bf
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_hand5.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_joker.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_joker.png
new file mode 100644
index 00000000000000..dcb21b4f8c0701
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_joker.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_empty.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_empty.png
new file mode 100644
index 00000000000000..666e33a6eff22a
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_empty.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_full.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_full.png
new file mode 100644
index 00000000000000..e475aea4f2555a
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_full.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_half.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_half.png
new file mode 100644
index 00000000000000..6121837e3117cd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_half.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_low.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_low.png
new file mode 100644
index 00000000000000..812fa134de5edb
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_black_low.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_empty.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_empty.png
new file mode 100644
index 00000000000000..3eab35d483aa7a
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_empty.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_full.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_full.png
new file mode 100644
index 00000000000000..b68e72fad5bf02
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_full.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_half.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_half.png
new file mode 100644
index 00000000000000..aaf8d07645acf5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_half.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_low.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_low.png
new file mode 100644
index 00000000000000..22f8db3c70686f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_nanotrasen_low.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_empty.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_empty.png
new file mode 100644
index 00000000000000..df0f80a270c494
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_empty.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_full.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_full.png
new file mode 100644
index 00000000000000..fd54e580a4fa81
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_full.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_half.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_half.png
new file mode 100644
index 00000000000000..45e53d99e057e1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_half.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_low.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_low.png
new file mode 100644
index 00000000000000..364885508c5585
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/deck_syndicate_low.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/meta.json b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/meta.json
new file mode 100644
index 00000000000000..b5035a33bf2ac6
--- /dev/null
+++ b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/meta.json
@@ -0,0 +1,614 @@
+{
+ "version": 1,
+ "copyright": "Cards, Decks and Hands Sprites were originally from Paradise Station (https://github.com/ParadiseSS13/Paradise) and modified by VictorJob. Boxes are from VictorJob.",
+ "license": "CC-BY-SA-3.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "black_hand1"
+ },
+ {
+ "name": "black_hand2"
+ },
+ {
+ "name": "black_hand3"
+ },
+ {
+ "name": "black_hand4"
+ },
+ {
+ "name": "black_hand5"
+ },
+ {
+ "name": "deck_black_empty"
+ },
+ {
+ "name": "deck_black_full"
+ },
+ {
+ "name": "deck_black_half"
+ },
+ {
+ "name": "deck_black_low"
+ },
+ {
+ "name": "deck_nanotrasen_empty"
+ },
+ {
+ "name": "deck_nanotrasen_full"
+ },
+ {
+ "name": "deck_nanotrasen_half"
+ },
+ {
+ "name": "deck_nanotrasen_low"
+ },
+ {
+ "name": "deck_syndicate_empty"
+ },
+ {
+ "name": "deck_syndicate_full"
+ },
+ {
+ "name": "deck_syndicate_half"
+ },
+ {
+ "name": "deck_syndicate_low"
+ },
+ {
+ "name": "nanotrasen_hand1"
+ },
+ {
+ "name": "nanotrasen_hand2"
+ },
+ {
+ "name": "nanotrasen_hand3"
+ },
+ {
+ "name": "nanotrasen_hand4"
+ },
+ {
+ "name": "nanotrasen_hand5"
+ },
+ {
+ "name": "sc_10_of_Clubs_black"
+ },
+ {
+ "name": "sc_10_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_10_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_10_of_Diamonds_black"
+ },
+ {
+ "name": "sc_10_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_10_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_10_of_Hearts_black"
+ },
+ {
+ "name": "sc_10_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_10_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_10_of_Spades_black"
+ },
+ {
+ "name": "sc_10_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_10_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_2_of_Clubs_black"
+ },
+ {
+ "name": "sc_2_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_2_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_2_of_Diamonds_black"
+ },
+ {
+ "name": "sc_2_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_2_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_2_of_Hearts_black"
+ },
+ {
+ "name": "sc_2_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_2_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_2_of_Spades_black"
+ },
+ {
+ "name": "sc_2_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_2_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_3_of_Clubs_black"
+ },
+ {
+ "name": "sc_3_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_3_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_3_of_Diamonds_black"
+ },
+ {
+ "name": "sc_3_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_3_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_3_of_Hearts_black"
+ },
+ {
+ "name": "sc_3_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_3_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_3_of_Spades_black"
+ },
+ {
+ "name": "sc_3_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_3_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_4_of_Clubs_black"
+ },
+ {
+ "name": "sc_4_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_4_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_4_of_Diamonds_black"
+ },
+ {
+ "name": "sc_4_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_4_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_4_of_Hearts_black"
+ },
+ {
+ "name": "sc_4_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_4_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_4_of_Spades_black"
+ },
+ {
+ "name": "sc_4_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_4_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_5_of_Clubs_black"
+ },
+ {
+ "name": "sc_5_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_5_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_5_of_Diamonds_black"
+ },
+ {
+ "name": "sc_5_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_5_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_5_of_Hearts_black"
+ },
+ {
+ "name": "sc_5_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_5_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_5_of_Spades_black"
+ },
+ {
+ "name": "sc_5_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_5_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_6_of_Clubs_black"
+ },
+ {
+ "name": "sc_6_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_6_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_6_of_Diamonds_black"
+ },
+ {
+ "name": "sc_6_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_6_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_6_of_Hearts_black"
+ },
+ {
+ "name": "sc_6_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_6_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_6_of_Spades_black"
+ },
+ {
+ "name": "sc_6_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_6_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_7_of_Clubs_black"
+ },
+ {
+ "name": "sc_7_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_7_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_7_of_Diamonds_black"
+ },
+ {
+ "name": "sc_7_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_7_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_7_of_Hearts_black"
+ },
+ {
+ "name": "sc_7_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_7_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_7_of_Spades_black"
+ },
+ {
+ "name": "sc_7_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_7_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_8_of_Clubs_black"
+ },
+ {
+ "name": "sc_8_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_8_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_8_of_Diamonds_black"
+ },
+ {
+ "name": "sc_8_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_8_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_8_of_Hearts_black"
+ },
+ {
+ "name": "sc_8_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_8_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_8_of_Spades_black"
+ },
+ {
+ "name": "sc_8_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_8_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_9_of_Clubs_black"
+ },
+ {
+ "name": "sc_9_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_9_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_9_of_Diamonds_black"
+ },
+ {
+ "name": "sc_9_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_9_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_9_of_Hearts_black"
+ },
+ {
+ "name": "sc_9_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_9_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_9_of_Spades_black"
+ },
+ {
+ "name": "sc_9_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_9_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_Ace_of_Clubs_black"
+ },
+ {
+ "name": "sc_Ace_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_Ace_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_Ace_of_Diamonds_black"
+ },
+ {
+ "name": "sc_Ace_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_Ace_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_Ace_of_Hearts_black"
+ },
+ {
+ "name": "sc_Ace_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_Ace_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_Ace_of_Spades_black"
+ },
+ {
+ "name": "sc_Ace_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_Ace_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_Jack_of_Clubs_black"
+ },
+ {
+ "name": "sc_Jack_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_Jack_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_Jack_of_Diamonds_black"
+ },
+ {
+ "name": "sc_Jack_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_Jack_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_Jack_of_Hearts_black"
+ },
+ {
+ "name": "sc_Jack_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_Jack_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_Jack_of_Spades_black"
+ },
+ {
+ "name": "sc_Jack_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_Jack_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_King_of_Clubs_black"
+ },
+ {
+ "name": "sc_King_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_King_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_King_of_Diamonds_black"
+ },
+ {
+ "name": "sc_King_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_King_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_King_of_Hearts_black"
+ },
+ {
+ "name": "sc_King_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_King_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_King_of_Spades_black"
+ },
+ {
+ "name": "sc_King_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_King_of_Spades_syndicate"
+ },
+ {
+ "name": "sc_Queen_of_Clubs_black"
+ },
+ {
+ "name": "sc_Queen_of_Clubs_nanotrasen"
+ },
+ {
+ "name": "sc_Queen_of_Clubs_syndicate"
+ },
+ {
+ "name": "sc_Queen_of_Diamonds_black"
+ },
+ {
+ "name": "sc_Queen_of_Diamonds_nanotrasen"
+ },
+ {
+ "name": "sc_Queen_of_Diamonds_syndicate"
+ },
+ {
+ "name": "sc_Queen_of_Hearts_black"
+ },
+ {
+ "name": "sc_Queen_of_Hearts_nanotrasen"
+ },
+ {
+ "name": "sc_Queen_of_Hearts_syndicate"
+ },
+ {
+ "name": "sc_Queen_of_Spades_black"
+ },
+ {
+ "name": "sc_Queen_of_Spades_nanotrasen"
+ },
+ {
+ "name": "sc_Queen_of_Spades_syndicate"
+ },
+ {
+ "name": "singlecard_down_black"
+ },
+ {
+ "name": "singlecard_down_nanotrasen"
+ },
+ {
+ "name": "singlecard_down_syndicate"
+ },
+ {
+ "name": "syndicate_hand1"
+ },
+ {
+ "name": "syndicate_hand2"
+ },
+ {
+ "name": "syndicate_hand3"
+ },
+ {
+ "name": "syndicate_hand4"
+ },
+ {
+ "name": "syndicate_hand5"
+ },
+ {
+ "name": "syndicate_joker",
+ "delays": [
+ [
+ 0.5,
+ 0.5
+ ]
+ ]
+ },
+ {
+ "name": "nanotrasen_joker",
+ "delays": [
+ [
+ 0.5,
+ 0.5
+ ]
+ ]
+ },
+ {
+ "name": "black_joker",
+ "delays": [
+ [
+ 0.5,
+ 0.5
+ ]
+ ]
+ },
+ {
+ "name": "syndicate_box"
+ },
+ {
+ "name": "syndicate_box_open"
+ },
+ {
+ "name": "black_box"
+ },
+ {
+ "name": "black_box_open"
+ },
+ {
+ "name": "nanotrasen_box"
+ },
+ {
+ "name": "nanotrasen_box_open"
+ }
+ ]
+}
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png
new file mode 100644
index 00000000000000..b80b2ccd71f575
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png
new file mode 100644
index 00000000000000..b86bfb1c2d0e16
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand1.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand1.png
new file mode 100644
index 00000000000000..2c532c3148a3a1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand1.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand2.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand2.png
new file mode 100644
index 00000000000000..073d79718c4e5c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand2.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand3.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand3.png
new file mode 100644
index 00000000000000..1edfe42011dad7
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand3.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand4.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand4.png
new file mode 100644
index 00000000000000..b788969f0f358f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand4.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand5.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand5.png
new file mode 100644
index 00000000000000..8836dc110bfc79
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_hand5.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_joker.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_joker.png
new file mode 100644
index 00000000000000..c7c5c9e06159d3
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_joker.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_black.png
new file mode 100644
index 00000000000000..1c45b9f176b4fd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..23f499fe81b021
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..ae4d73c1a65222
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_black.png
new file mode 100644
index 00000000000000..17a7cb99d2e3e5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..afad380277d02a
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..100b213afc8cad
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_black.png
new file mode 100644
index 00000000000000..0a179f78eed755
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..eca6193c86a6ca
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..b9a846748541e3
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_black.png
new file mode 100644
index 00000000000000..5fc75d0bce8199
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..01187507f6ecb1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..b4ac829a241924
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_10_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_black.png
new file mode 100644
index 00000000000000..ba33f6b6a7a10b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..2067145ca03208
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..1a057ecf79cbcb
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_black.png
new file mode 100644
index 00000000000000..e5e5afcbf30ef9
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..f0ee45883dd67f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..8f6549e8d3d959
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_black.png
new file mode 100644
index 00000000000000..b16deb15ae86fd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..af710d07111448
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..7f99d786cfe5c1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_black.png
new file mode 100644
index 00000000000000..4ff15e4136855e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..c8c01eb2d55ad4
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..bea976dc1b9ef9
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_2_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_black.png
new file mode 100644
index 00000000000000..36fcb2d654142d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..b64b1a6650a464
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..feeefb7bccf878
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_black.png
new file mode 100644
index 00000000000000..a100b460580dd3
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..34e8feae6f194e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..1cf21d7723ef5b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_black.png
new file mode 100644
index 00000000000000..50be1e655a0968
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..20cf0ab74e7e15
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..8d62899fe298f7
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_black.png
new file mode 100644
index 00000000000000..d43b828a499309
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..dd9ba51947d804
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..6a51db9b7ebfe5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_3_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_black.png
new file mode 100644
index 00000000000000..67f25777ea14e8
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..fb1266f39102d4
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..2b14b3777d436e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_black.png
new file mode 100644
index 00000000000000..653109f088dc84
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..93d00aa65e89ef
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..1b63837065fcbf
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_black.png
new file mode 100644
index 00000000000000..30e3525c7ea07b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..8d55ea1df9cc3b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..2fb582d5698710
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_black.png
new file mode 100644
index 00000000000000..cb82281e406577
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..6bd780f25049ac
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..e6d0a439eeaacb
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_4_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_black.png
new file mode 100644
index 00000000000000..61c3ad81f1bd0c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..bf156aceb7e38b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..8183e0defab5f4
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_black.png
new file mode 100644
index 00000000000000..3dd9f7c95b2eed
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..66032a9ddde38f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..eef3d3322d6c6f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_black.png
new file mode 100644
index 00000000000000..f1fa1b4f34ce96
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..95d5ed72a20f61
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..b9a25077a1f3f1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_black.png
new file mode 100644
index 00000000000000..48290bd26c413c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..5f557f6f116495
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..22f74e05357c37
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_5_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_black.png
new file mode 100644
index 00000000000000..7b4eb021bf685a
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..f94cc860771760
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..7b7905bd38f334
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_black.png
new file mode 100644
index 00000000000000..c44ddd87e6d198
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..970bef60e4a0f5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..729c0def3f42cd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_black.png
new file mode 100644
index 00000000000000..23697e2f9a46f0
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..e099806d233b6f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..fabd88049a17d2
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_black.png
new file mode 100644
index 00000000000000..429b9c9dcf364f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..7fc01c72b52330
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..b1021e01bc399d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_6_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_black.png
new file mode 100644
index 00000000000000..444a83394ef014
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..8d795e524e2424
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..6f786cca2a43e3
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_black.png
new file mode 100644
index 00000000000000..2308d43d4f2456
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..efbe7248ecb8e5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..7954748eab38bf
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_black.png
new file mode 100644
index 00000000000000..e466ae7120589c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..452bd851e4f138
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..7beeded1736286
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_black.png
new file mode 100644
index 00000000000000..b72505fb878396
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..c9923e0c89e13d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..07f4d96f75d928
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_7_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_black.png
new file mode 100644
index 00000000000000..3367fa0d2e65c3
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..83eafee6c7947e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..76d30fab1a60c4
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_black.png
new file mode 100644
index 00000000000000..58a1130c4a8ce3
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..6204855e3c8558
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..e1b2aba48e3c7e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_black.png
new file mode 100644
index 00000000000000..2ce9b69f164e48
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..86b3c37cd0ef5a
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..1ad0852935b128
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_black.png
new file mode 100644
index 00000000000000..69154bbc3b1ebf
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..587025d064eaa6
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..ec1158a360ded1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_8_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_black.png
new file mode 100644
index 00000000000000..59686360af8bde
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..9c88a1a275a7d9
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..4ef37da096e3c6
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_black.png
new file mode 100644
index 00000000000000..7104afcd64bd1d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..35aba68cfeb7a8
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..f6bad838259959
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_black.png
new file mode 100644
index 00000000000000..43341bb1f8caf5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..389004ac91b62e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..c3b7cc61429588
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_black.png
new file mode 100644
index 00000000000000..ab89960ba01444
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..dbdff6554ec21f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..1a68d32b7c0d60
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_9_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_black.png
new file mode 100644
index 00000000000000..5c524bad648323
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..4aab2f09d4782c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..47fe7da11d21c6
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_black.png
new file mode 100644
index 00000000000000..eff87dcb5629c5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..bc1f38c11ee478
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..f3bb83907bb6c4
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_black.png
new file mode 100644
index 00000000000000..da4360e0e50d50
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..d5823c0fb7c22c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..e17eaab8cf6b16
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_black.png
new file mode 100644
index 00000000000000..4be96b088aa978
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..11bea7d14b3ecf
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..94d9ce9f9d9a91
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Ace_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_black.png
new file mode 100644
index 00000000000000..83e604757ba641
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..5aa923cba29c86
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..9b1a9ee48c1d9f
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_black.png
new file mode 100644
index 00000000000000..0e79933147c7d8
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..8b9d7cb53f4b3e
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..c11bda0bf3e3ab
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_black.png
new file mode 100644
index 00000000000000..e9ab75342fe11c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..bfeaa7d8d2e5e1
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..6b07df352005f5
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_black.png
new file mode 100644
index 00000000000000..df5447723106dd
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..5fa983d5e193f6
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..1da0de75ba544b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Jack_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_black.png
new file mode 100644
index 00000000000000..2ec99fc8dd8b5b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..28488799a0a0f7
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..446c79e0b39b42
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_black.png
new file mode 100644
index 00000000000000..0c561befb99237
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..b6af7d62185568
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..b6f8e32cc265da
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_black.png
new file mode 100644
index 00000000000000..fe38670021ee0d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..c53d7fe5d0fdd8
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..7ebf4ce24ff73c
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_black.png
new file mode 100644
index 00000000000000..6fc8241b115a60
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..adb48697f988da
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..5da2adf32a2d34
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_King_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_black.png
new file mode 100644
index 00000000000000..de3cf80db96484
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_nanotrasen.png
new file mode 100644
index 00000000000000..c22d142b63e364
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_syndicate.png
new file mode 100644
index 00000000000000..e234569093ca35
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Clubs_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_black.png
new file mode 100644
index 00000000000000..7a529a19159e4b
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_nanotrasen.png
new file mode 100644
index 00000000000000..537de98404ba69
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_syndicate.png
new file mode 100644
index 00000000000000..184f90b5de3e99
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Diamonds_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_black.png
new file mode 100644
index 00000000000000..1b190bd9342ed7
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_nanotrasen.png
new file mode 100644
index 00000000000000..74a5fe35c465ef
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_syndicate.png
new file mode 100644
index 00000000000000..30c4271fc963db
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Hearts_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_black.png
new file mode 100644
index 00000000000000..40edb50caab292
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_nanotrasen.png
new file mode 100644
index 00000000000000..613f4e81ca6a05
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_syndicate.png
new file mode 100644
index 00000000000000..0106a46014bfd9
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/sc_Queen_of_Spades_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_black.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_black.png
new file mode 100644
index 00000000000000..e634a9f8a0aa30
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_black.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_nanotrasen.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_nanotrasen.png
new file mode 100644
index 00000000000000..a219d059541572
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_nanotrasen.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_syndicate.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_syndicate.png
new file mode 100644
index 00000000000000..03b7154520d7b7
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/singlecard_down_syndicate.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png
new file mode 100644
index 00000000000000..24d143e40dc622
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png
new file mode 100644
index 00000000000000..a8edb3d5cd6903
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand1.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand1.png
new file mode 100644
index 00000000000000..a0c5cf0e139221
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand1.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand2.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand2.png
new file mode 100644
index 00000000000000..88a445a27ae81d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand2.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand3.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand3.png
new file mode 100644
index 00000000000000..c30454d2b514ed
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand3.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand4.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand4.png
new file mode 100644
index 00000000000000..7a9eb2d197ae03
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand4.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand5.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand5.png
new file mode 100644
index 00000000000000..3dc0f71ddc2aac
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_hand5.png differ
diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_joker.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_joker.png
new file mode 100644
index 00000000000000..2e282d0c7d197d
Binary files /dev/null and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_joker.png differ