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