diff --git a/Content.Client/Inventory/StrippableBoundUserInterface.cs b/Content.Client/Inventory/StrippableBoundUserInterface.cs index 90e52d72837..3a17b912c72 100644 --- a/Content.Client/Inventory/StrippableBoundUserInterface.cs +++ b/Content.Client/Inventory/StrippableBoundUserInterface.cs @@ -24,6 +24,7 @@ using Robust.Shared.Map; using static Content.Client.Inventory.ClientInventorySystem; using static Robust.Client.UserInterface.Control; +using Content.Shared._EE.Strip.Components; // EE namespace Content.Client.Inventory { @@ -172,7 +173,9 @@ private void AddHandButton(Hand hand) button.BlockedRect.MouseFilter = MouseFilterMode.Ignore; } - UpdateEntityIcon(button, hand.HeldEntity); + // Goobstation: use virtual entity if hidden + UpdateEntityIcon(button, EntMan.HasComponent(hand.HeldEntity) ? _virtualHiddenEntity : hand.HeldEntity); + // End Goobstation _strippingMenu!.HandsContainer.AddChild(button); } @@ -214,6 +217,11 @@ private void AddInventoryButton(EntityUid invUid, string slotId, InventoryCompon if (entity != null && _strippable.IsStripHidden(slotDef, _player.LocalEntity)) entity = _virtualHiddenEntity; + // Goobstation/EE: hide strip menu items + if (entity != null && EntMan.HasComponent(entity)) + entity = _virtualHiddenEntity; + // End Goobstation/EE + var button = new SlotButton(new SlotData(slotDef, container)); button.Pressed += SlotPressed; diff --git a/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs b/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs index edabed31bca..09de5e5594d 100644 --- a/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs +++ b/Content.Client/_EstacaoPirata/Cards/Card/CardSystem.cs @@ -10,7 +10,6 @@ namespace Content.Client._EstacaoPirata.Cards.Card; /// public sealed class CardSystem : EntitySystem { - [Dependency] private readonly SpriteSystem _spriteSystem = default!; /// public override void Initialize() { @@ -38,7 +37,7 @@ private void OnComponentStartupEvent(EntityUid uid, CardComponent comp, Componen } comp.BackSprite ??= comp.FrontSprite; - Dirty(uid, comp); + DirtyEntity(uid); UpdateSprite(uid, comp); } @@ -52,30 +51,19 @@ private void OnFlip(CardFlipUpdatedEvent args) 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++) { diff --git a/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs b/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs index 6ac7c44d746..581e517b042 100644 --- a/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs +++ b/Content.Client/_EstacaoPirata/Cards/CardSpriteSystem.cs @@ -10,10 +10,7 @@ namespace Content.Client._EstacaoPirata.Cards; public sealed class CardSpriteSystem : EntitySystem { /// - public override void Initialize() - { - - } + public override void Initialize() { } public bool TryAdjustLayerQuantity(Entity uid, int? cardLimit = null) { @@ -23,7 +20,8 @@ public bool TryAdjustLayerQuantity(Entity u var layerCount = 0; //Gets the quantity of layers - foreach (var card in stack.Cards.TakeLast(cardCount)) + var relevantCards = stack.Cards.TakeLast(cardCount).ToList(); + foreach (var card in relevantCards) { if (!TryComp(card, out SpriteComponent? cardSprite)) return false; @@ -33,21 +31,13 @@ public bool TryAdjustLayerQuantity(Entity u layerCount = int.Max(1, layerCount); // Frontier: you need one layer. //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; } @@ -61,7 +51,8 @@ public bool TryHandleLayerConfiguration(Entity layers = []; var i = 0; - foreach (var card in stack.Cards.TakeLast(cardCount)) + var cards = stack.Cards.TakeLast(cardCount).ToList(); + foreach (var card in cards) { if (!TryComp(card, out SpriteComponent? cardSprite)) return false; diff --git a/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs b/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs index 0559a3c3f54..9b99b1ac061 100644 --- a/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs +++ b/Content.Client/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs @@ -63,10 +63,8 @@ public override void Update(float frameTime) 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)) + if (!TryComp(card, out SpriteComponent? cardSprite) + || !cardSprite.TryGetLayer(0, out var l)) return false; layer = l; @@ -75,13 +73,10 @@ private bool TryGetCardLayer(EntityUid card, out SpriteComponent.Layer? layer) private void UpdateSprite(EntityUid uid, CardDeckComponent comp) { - if (!TryComp(uid, out SpriteComponent? sprite)) + if (!TryComp(uid, out SpriteComponent? sprite) + || !TryComp(uid, out CardStackComponent? cardStack)) 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) @@ -132,7 +127,14 @@ private void OnAppearanceChanged(EntityUid uid, CardDeckComponent comp, Appearan } private void OnComponentStartupEvent(EntityUid uid, CardDeckComponent comp, ComponentStartup args) { + if (!TryComp(uid, out CardStackComponent? stack)) + { + _notInitialized[(uid, comp)] = 0; + return; + } + if (stack.Cards.Count <= 0) + _notInitialized[(uid, comp)] = 0; UpdateSprite(uid, comp); } diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs b/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs index 27efec401c2..d35264b87f9 100644 --- a/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs +++ b/Content.Client/_EstacaoPirata/Cards/Hand/CardHandSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using System.Numerics; using Content.Shared._EstacaoPirata.Cards.Hand; using Content.Shared._EstacaoPirata.Cards.Stack; @@ -10,6 +11,7 @@ namespace Content.Client._EstacaoPirata.Cards.Hand; /// public sealed class CardHandSystem : EntitySystem { + private readonly Dictionary, int> _notInit = []; [Dependency] private readonly CardSpriteSystem _cardSpriteSystem = default!; @@ -23,13 +25,50 @@ public override void Initialize() SubscribeNetworkEvent(OnStackFlip); } + public override void Update(float frameTime) + { + base.Update(frameTime); + foreach (var (ent, value) in _notInit) + { + if (value >= 5) + { + _notInit.Remove(ent); + continue; + } + _notInit[ent] = value + 1; + if (!TryComp(ent.Owner, out CardStackComponent? stack) || stack.Cards.Count <= 0) + continue; + + // If cards were correctly initialized, we update the sprite + UpdateSprite(ent.Owner, ent.Comp); + _notInit.Remove(ent); + } + } + + private bool TryGetCardLayer(EntityUid card, out SpriteComponent.Layer? layer) + { + layer = null; + if (!TryComp(card, out SpriteComponent? cardSprite) + || !cardSprite.TryGetLayer(0, out var l)) + return false; + + layer = l; + return true; + } + private void UpdateSprite(EntityUid uid, CardHandComponent comp) { - if (!TryComp(uid, out SpriteComponent? sprite)) + if (!TryComp(uid, out SpriteComponent? sprite) + || !TryComp(uid, out CardStackComponent? cardStack)) return; - if (!TryComp(uid, out CardStackComponent? cardStack)) + // Prevents error appearing at spawnMenu + if (cardStack.Cards.Count <= 0 || !TryGetCardLayer(cardStack.Cards.Last(), out var cardlayer) || + cardlayer == null) + { + _notInit[(uid, comp)] = 0; return; + } _cardSpriteSystem.TryAdjustLayerQuantity((uid, sprite, cardStack), comp.CardLimit); @@ -60,7 +99,7 @@ private void UpdateSprite(EntityUid uid, CardHandComponent comp) } else { - var intervalAngle = comp.Angle / (cardCount-1); + var intervalAngle = comp.Angle / (cardCount - 1); var intervalSize = comp.XOffset / (cardCount - 1); _cardSpriteSystem.TryHandleLayerConfiguration( @@ -68,7 +107,7 @@ private void UpdateSprite(EntityUid uid, CardHandComponent comp) cardCount, (sprt, cardIndex, layerIndex) => { - var angle = (-(comp.Angle/2)) + cardIndex * intervalAngle; + var angle = (-(comp.Angle / 2)) + cardIndex * intervalAngle; var x = (-(comp.XOffset / 2)) + cardIndex * intervalSize; var y = -(x * x) + 0.10f; @@ -99,7 +138,13 @@ private void OnStackStart(CardStackInitiatedEvent args) } private void OnComponentStartupEvent(EntityUid uid, CardHandComponent comp, ComponentStartup args) { - + if (!TryComp(uid, out CardStackComponent? stack)) + { + _notInit[(uid, comp)] = 0; + return; + } + if (stack.Cards.Count <= 0) + _notInit[(uid, comp)] = 0; UpdateSprite(uid, comp); } diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs index 863799147da..296ef432c8e 100644 --- a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs +++ b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenu.xaml.cs @@ -17,23 +17,13 @@ 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"); @@ -42,19 +32,15 @@ public CardHandMenu(EntityUid owner, CardHandMenuBoundUserInterface bui) foreach (var card in stack.Cards) { - if (_playerManager.LocalSession == null) - return; - if (!_entManager.TryGetComponent(card, out var cardComp)) + if (_playerManager.LocalSession == null + || !_entManager.TryGetComponent(card, out var cardComp)) return; + string cardName; if (cardComp.Flipped && _entManager.TryGetComponent(card, out var metadata)) - { cardName = metadata.EntityName; - } else - { cardName = Loc.GetString(cardComp.Name); - } var button = new CardMenuButton() { diff --git a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs index 2477ab2b031..5c8e3022e1f 100644 --- a/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs +++ b/Content.Client/_EstacaoPirata/Cards/Hand/UI/CardHandMenuBoundUserInterface.cs @@ -1,9 +1,7 @@ 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; @@ -32,10 +30,7 @@ protected override void Open() _menu.OpenCenteredAt(_inputManager.MouseScreenPosition.Position / vpSize); } - public void SendCardHandDrawMessage(NetEntity e) - { - SendMessage(new CardHandDrawMessage(e)); - } + public void SendCardHandDrawMessage(NetEntity e) => SendMessage(new CardHandDrawMessage(e)); protected override void Dispose(bool disposing) { diff --git a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs index f6e24f5ca62..25f5c3f5cde 100644 --- a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs +++ b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillComponent.cs @@ -1,5 +1,4 @@ using Content.Shared.Storage; -using Robust.Shared.Prototypes; namespace Content.Server._EstacaoPirata.OpenTriggeredStorageFill; @@ -9,5 +8,6 @@ namespace Content.Server._EstacaoPirata.OpenTriggeredStorageFill; [RegisterComponent] public sealed partial class OpenTriggeredStorageFillComponent : Component { - [DataField("contents")] public List Contents = new(); + [DataField] + public List Contents = new(); } diff --git a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs index d5a73319f69..b00ad7692c2 100644 --- a/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs +++ b/Content.Server/_EstacaoPirata/OpenTriggeredStorageFill/OpenTriggeredStorageFillSystem.cs @@ -1,4 +1,6 @@ +using Content.Server.Popups; using Content.Server.Spawners.Components; +using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Item; using Content.Shared.Prototypes; @@ -16,18 +18,26 @@ public sealed class OpenTriggeredStorageFillSystem : EntitySystem { [Dependency] private readonly SharedStorageSystem _storage = default!; + [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; /// public override void Initialize() { SubscribeLocalEvent(OnOpenEvent); + SubscribeLocalEvent(OnExamineEvent); + } + + private void OnExamineEvent(EntityUid uid, OpenTriggeredStorageFillComponent component, ExaminedEvent args) + { + args.PushText(Loc.GetString("container-sealed")); } //Yes, that's a copy of StorageSystem StorageFill method private void OnOpenEvent(EntityUid uid, OpenTriggeredStorageFillComponent comp, ActivateInWorldEvent args) { - Log.Debug("aaa"); + Log.Debug($"Processing storage fill trigger for entity {ToPrettyString(uid)}"); + var coordinates = Transform(uid).Coordinates; var spawnItems = EntitySpawnCollection.GetSpawns(comp.Contents); @@ -43,11 +53,14 @@ private void OnOpenEvent(EntityUid uid, OpenTriggeredStorageFillComponent comp, Del(ent); continue; } - if (!_storage.Insert(uid, ent, out _, out var _, playSound: false)) - Log.Error($"Failed attemp while trying to fill {ToPrettyString(uid)}"); + if (!_storage.Insert(uid, ent, out var remainingEnt, out var reason, playSound: false)) + { + Log.Error($"Failed to fill {ToPrettyString(uid)} with {ToPrettyString(ent)}. Reason: {reason}"); + // Clean up the spawned entity if insertion fails + Del(ent); + } } - + _popup.PopupEntity(Loc.GetString("container-unsealed"), args.Target); RemComp(uid, comp); } - } diff --git a/Content.Shared/_EE/Strip/Components/StripMenuHiddenComponent.cs b/Content.Shared/_EE/Strip/Components/StripMenuHiddenComponent.cs new file mode 100644 index 00000000000..4b264468cc4 --- /dev/null +++ b/Content.Shared/_EE/Strip/Components/StripMenuHiddenComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared._EE.Strip.Components; + +/// +/// An item with this component is always hidden in the strip menu, regardless of other circumstances. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class StripMenuHiddenComponent : Component; diff --git a/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs index 8d9ed16f6a7..6ccf7f5b216 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Card/CardComponent.cs @@ -13,26 +13,26 @@ public sealed partial class CardComponent : Component /// /// The back of the card /// - [DataField("backSpriteLayers", readOnly: true)] - public List? BackSprite = []; + [DataField(readOnly: true)] + public List BackSprite = []; /// /// The front of the card /// - [DataField("frontSpriteLayers", readOnly: true)] + [DataField(readOnly: true)] public List FrontSprite = []; /// /// If it is currently flipped. This is used to update sprite and name. /// - [DataField("flipped", readOnly: true), AutoNetworkedField] + [DataField(readOnly: true), AutoNetworkedField] public bool Flipped = false; /// /// The name of the card. /// - [DataField("name", readOnly: true), AutoNetworkedField] + [DataField(readOnly: true), AutoNetworkedField] public string Name = ""; } diff --git a/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs index 0f4c93a3d84..68766eda2a8 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Card/CardSystem.cs @@ -70,9 +70,10 @@ private void AddTurnOnVerb(EntityUid uid, CardComponent component, GetVerbsEvent } else if (TryComp(args.Using, out var usingCard)) { + var pickup = _hands.IsHolding(args.User, args.Target); args.Verbs.Add(new AlternativeVerb() { - Act = () => _cardHand.TrySetupHandOfCards(args.User, args.Target, component, args.Using.Value, usingCard, false), + Act = () => _cardHand.TrySetupHandOfCards(args.User, args.Target, component, args.Using.Value, usingCard, pickup), Text = Loc.GetString("card-verb-join"), Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/refresh.svg.192dpi.png")), Priority = 2 @@ -107,7 +108,7 @@ private void JoinCards(EntityUid user, EntityUid first, CardComponent firstComp, { if (_net.IsClient) return; - + bool pickup = _hands.IsHolding(user, first); EntityUid cardStack; bool? flip = null; if (HasComp(second)) @@ -131,6 +132,8 @@ private void JoinCards(EntityUid user, EntityUid first, CardComponent firstComp, _cardStack.TransferNLastCardFromStacks(user, secondStack.Cards.Count, second, secondStack, cardStack, stack); if (flip != null) _cardStack.FlipAllCards(cardStack, stack, flip); //??? + if(pickup) + _hands.TryPickupAnyHand(user, cardStack); } // Frontier: tries to spawn an entity with the same parent as another given entity. diff --git a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs index 5467cd3c618..f695eab8d9c 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckComponent.cs @@ -8,21 +8,21 @@ namespace Content.Shared._EstacaoPirata.Cards.Deck; [RegisterComponent] public sealed partial class CardDeckComponent : Component { - [DataField("shuffleSound")] + [DataField] public SoundSpecifier ShuffleSound = new SoundCollectionSpecifier("cardFan"); - [DataField("pickUpSound")] + [DataField] public SoundSpecifier PickUpSound = new SoundCollectionSpecifier("cardSlide"); - [DataField("placeDownSound")] + [DataField] public SoundSpecifier PlaceDownSound = new SoundCollectionSpecifier("cardShove"); - [DataField("yOffset")] + [DataField] public float YOffset = 0.02f; - [DataField("scale")] + [DataField] public float Scale = 1; - [DataField("limit")] + [DataField] public int CardLimit = 5; } diff --git a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs index 9d4ae1af82c..dc5096c8102 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Deck/CardDeckSystem.cs @@ -16,8 +16,7 @@ namespace Content.Shared._EstacaoPirata.Cards.Deck; /// -/// This handles card decks -/// +/// This handles card decks /// public sealed class CardDeckSystem : EntitySystem { diff --git a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs index 6842dd946e1..39e0c4ac45e 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandComponent.cs @@ -8,19 +8,19 @@ namespace Content.Shared._EstacaoPirata.Cards.Hand; [RegisterComponent] public sealed partial class CardHandComponent : Component { - [DataField("angle")] + [DataField] public float Angle = 120f; - [DataField("xOffset")] + [DataField] public float XOffset = 0.5f; - [DataField("scale")] + [DataField] public float Scale = 1; - [DataField("limit")] + [DataField] public int CardLimit = 10; - [DataField("flipped")] + [DataField] public bool Flipped = false; } diff --git a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs index 6560d60435a..b4bce824668 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Hand/CardHandSystem.cs @@ -1,4 +1,3 @@ -using System.Linq; using Content.Shared._EstacaoPirata.Cards.Card; using Content.Shared._EstacaoPirata.Cards.Stack; using Content.Shared.Hands.EntitySystems; @@ -17,9 +16,12 @@ namespace Content.Shared._EstacaoPirata.Cards.Hand; /// /// This handles... /// + public sealed class CardHandSystem : EntitySystem { + [ValidatePrototypeId] public readonly EntProtoId CardHandBaseName = "CardHandBase"; + [ValidatePrototypeId] public readonly EntProtoId CardDeckBaseName = "CardDeckBase"; [Dependency] private readonly CardStackSystem _cardStack = default!; @@ -47,6 +49,12 @@ private void OnStackQuantityChange(EntityUid uid, CardHandComponent comp, CardSt if (!TryComp(uid, out CardStackComponent? stack)) return; + if (stack.Cards.Count < 0) + { + Log.Warning($"Invalid negative card count {stack.Cards.Count} detected in stack {ToPrettyString(uid)}"); + return; + } + var text = args.Type switch { StackQuantityChangeType.Added => "cards-stackquantitychange-added", @@ -65,7 +73,14 @@ private void OnCardDraw(EntityUid uid, CardHandComponent comp, CardHandDrawMessa { if (!TryComp(uid, out CardStackComponent? stack)) return; + var pickup = _hands.IsHolding(args.Actor, uid); + EntityUid? leftover = null; var cardEnt = GetEntity(args.Card); + + if (stack.Cards.Count == 2 && pickup) + { + leftover = stack.Cards[0] != cardEnt ? stack.Cards[0] : stack.Cards[1]; + } if (!_cardStack.TryRemoveCard(uid, cardEnt, stack)) return; @@ -73,6 +88,10 @@ private void OnCardDraw(EntityUid uid, CardHandComponent comp, CardHandDrawMessa _storage.PlayPickupAnimation(cardEnt, Transform(cardEnt).Coordinates, Transform(args.Actor).Coordinates, 0); _hands.TryPickupAnyHand(args.Actor, cardEnt); + if (pickup && leftover != null) + { + _hands.TryPickupAnyHand(args.Actor, leftover.Value); + } } private void OpenHandMenu(EntityUid user, EntityUid hand) @@ -86,6 +105,9 @@ private void OpenHandMenu(EntityUid user, EntityUid hand) private void OnAlternativeVerb(EntityUid uid, CardHandComponent comp, GetVerbsEvent args) { + if (!args.CanAccess || !args.CanInteract || args.Hands == null) + return; + args.Verbs.Add(new AlternativeVerb() { Act = () => OpenHandMenu(args.User, uid), @@ -151,7 +173,7 @@ private void ConvertToDeck(EntityUid user, EntityUid hand) } public void TrySetupHandOfCards(EntityUid user, EntityUid card, CardComponent comp, EntityUid target, CardComponent targetComp, bool pickup) { - if (_net.IsClient) + if (card == target || _net.IsClient) return; var cardHand = SpawnInSameParent(CardHandBaseName, card); if (TryComp(cardHand, out var handComp)) @@ -194,11 +216,20 @@ private void FlipCards(EntityUid hand, CardHandComponent comp) // Useful when spawning decks/hands in a backpack, for example. private EntityUid SpawnInSameParent(EntProtoId prototype, EntityUid uid) { + if (prototype == default) + throw new ArgumentException("Cannot spawn with null prototype", nameof(prototype)); + if (_container.IsEntityOrParentInContainer(uid) && _container.TryGetOuterContainer(uid, Transform(uid), out var container)) { - return SpawnInContainerOrDrop(prototype, container.Owner, container.ID); + var entity = SpawnInContainerOrDrop(prototype, container.Owner, container.ID); + if (!Exists(entity)) + Log.Error($"Failed to spawn {prototype} in container {container.ID}"); + return entity; } - return Spawn(prototype, Transform(uid).Coordinates); + var worldEntity = Spawn(prototype, Transform(uid).Coordinates); + if (!Exists(worldEntity)) + Log.Error($"Failed to spawn {prototype} at coordinates {Transform(uid).Coordinates}"); + return worldEntity; } } diff --git a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs index c4bf5450edd..9192c60b670 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackComponent.cs @@ -13,16 +13,16 @@ namespace Content.Shared._EstacaoPirata.Cards.Stack; public sealed partial class CardStackComponent : Component { - [DataField("content")] + [DataField] public List InitialContent = []; - [DataField("shuffleSound")] + [DataField] public SoundSpecifier ShuffleSound = new SoundCollectionSpecifier("cardFan"); - [DataField("pickUpSound")] + [DataField] public SoundSpecifier PickUpSound = new SoundCollectionSpecifier("cardSlide"); - [DataField("placeDownSound")] + [DataField] public SoundSpecifier PlaceDownSound = new SoundCollectionSpecifier("cardShove"); @@ -78,6 +78,3 @@ 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 index 8901dbe574a..734357ea068 100644 --- a/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs +++ b/Content.Shared/_EstacaoPirata/Cards/Stack/CardStackSystem.cs @@ -10,7 +10,6 @@ using Content.Shared.Verbs; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; -using Robust.Shared.Map; using Robust.Shared.Network; using Robust.Shared.Random; using Robust.Shared.Utility; @@ -61,6 +60,14 @@ public bool TryRemoveCard(EntityUid uid, EntityUid card, CardStackComponent? com _container.Remove(card, comp.ItemContainer); comp.Cards.Remove(card); + // If there is a final card left over, remove that card from the container and delete the stack alltogether + if (comp.Cards.Count == 1) + { + + _container.Remove(comp.Cards.First(), comp.ItemContainer); + comp.Cards.Clear(); + } + Dirty(uid, comp); RaiseLocalEvent(uid, new CardStackQuantityChangeEvent(GetNetEntity(uid), GetNetEntity(card), StackQuantityChangeType.Removed)); @@ -157,16 +164,16 @@ public bool TryJoinStacks(EntityUid firstStack, EntityUid secondStack, CardStack } if (changed) { - if (_net.IsClient) - return changed; - if (soundUser != null) { _audio.PlayPredicted(firstComp.PlaceDownSound, Transform(firstStack).Coordinates, soundUser.Value); - - _storage.PlayPickupAnimation(firstCard!.Value, Transform(secondStack).Coordinates, Transform(firstStack).Coordinates, 0); + if (_net.IsServer) + _storage.PlayPickupAnimation(firstCard!.Value, Transform(secondStack).Coordinates, Transform(firstStack).Coordinates, 0); } + if (_net.IsClient) + return changed; + Dirty(firstStack, firstComp); if (secondComp.Cards.Count <= 0) { @@ -198,12 +205,16 @@ private void OnMapInit(EntityUid uid, CardStackComponent comp, MapInitEvent args return; var coordinates = Transform(uid).Coordinates; + var spawnedEntities = new List(); foreach (var id in comp.InitialContent) { var ent = Spawn(id, coordinates); + spawnedEntities.Add(ent); if (TryInsertCard(uid, ent, comp)) continue; Log.Error($"Entity {ToPrettyString(ent)} was unable to be initialized into stack {ToPrettyString(uid)}"); + foreach (var spawned in spawnedEntities) + _entityManager.DeleteEntity(spawned); return; } RaiseNetworkEvent(new CardStackInitiatedEvent(GetNetEntity(uid))); @@ -293,15 +304,7 @@ private void OnActivationVerb(EntityUid uid, CardStackComponent component, GetVe private void JoinStacks(EntityUid user, EntityUid first, CardStackComponent firstComp, EntityUid second, CardStackComponent secondComp) { - if (_net.IsServer) - { - TryJoinStacks(first, second, firstComp, secondComp, user); - } - else - { - if (firstComp.Cards.Count < MaxCardsInStack) - _audio.PlayPredicted(firstComp.PlaceDownSound, Transform(first).Coordinates, user); - } + TryJoinStacks(first, second, firstComp, secondComp, user); } public void InsertCardOnStack(EntityUid user, EntityUid stack, CardStackComponent stackComponent, EntityUid card) @@ -348,6 +351,17 @@ public void TransferNLastCardFromStacks(EntityUid user, int n, EntityUid first, _storage.PlayPickupAnimation(firstCard, Transform(first).Coordinates, Transform(second).Coordinates, 0); Dirty(second, secondComp); + if (firstComp.Cards.Count == 1) + { + var card = firstComp.Cards.First(); + _container.Remove(card, firstComp.ItemContainer); + if (_hands.IsHolding(user, first)) + { + _hands.TryDrop(user, first); + _hands.TryPickupAnyHand(user, card); + } + firstComp.Cards.Clear(); + } if (firstComp.Cards.Count <= 0) { _entityManager.DeleteEntity(first); @@ -404,16 +418,21 @@ private void OnInteractUsing(InteractUsingEvent args) private void OnInteractHand(EntityUid uid, CardStackComponent component, EntityUid user) { + var pickup = _hands.IsHolding(user, uid); if (component.Cards.Count <= 0) return; if (!component.Cards.TryGetValue(component.Cards.Count - 1, out var card)) return; + if (!component.Cards.TryGetValue(component.Cards.Count - 2, out var under)) + return; if (!TryRemoveCard(uid, card, component)) return; _hands.TryPickupAnyHand(user, card); + if (!Exists(uid) && pickup) + _hands.TryPickupAnyHand(user, under); if (TryComp(uid, out var deck)) _audio.PlayPredicted(deck.PickUpSound, Transform(card).Coordinates, user); @@ -427,26 +446,35 @@ private void OnActivate(EntityUid uid, CardStackComponent component, ActivateInW return; if (!TryComp(args.User, out var hands)) + { + args.Handled = true; return; + } var activeItem = _hands.GetActiveItem((args.User, hands)); if (activeItem == null) { + // Runs if active item is nothing + // behavior is to draw one card from this target onto active hand as a standalone card OnInteractHand(args.Target, component, args.User); } else if (activeItem == args.Target) { + // Added from a Frontier PR. Don't want to draw a card from a stack onto itself. + args.Handled = true; return; } else if (TryComp(activeItem, out var cardStack)) { + // If the active item contains a card stack, behavior is to draw from Target and place onto activeHand. TransferNLastCardFromStacks(args.User, 1, args.Target, component, activeItem.Value, cardStack); } else if (TryComp(activeItem, out var card)) { _cardHandSystem.TrySetupHandFromStack(args.User, activeItem.Value, card, args.Target, component, true); } + args.Handled = true; } #endregion diff --git a/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl b/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl index cbb2bf3613e..3e9876f9842 100644 --- a/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl +++ b/Resources/Locale/en-US/estacao-pirata/cards/cards.ftl @@ -26,60 +26,63 @@ cards-verb-split = Split in half card-base-name = card card-deck-name = deck of cards -card-sc-2-clubs-black = 2 of clubs -card-sc-3-clubs-black = 3 of clubs -card-sc-4-clubs-black = 4 of clubs -card-sc-5-clubs-black = 5 of clubs -card-sc-6-clubs-black = 6 of clubs -card-sc-7-clubs-black = 7 of clubs -card-sc-8-clubs-black = 8 of clubs -card-sc-9-clubs-black = 9 of clubs -card-sc-10-clubs-black = 10 of clubs -card-sc-ace-clubs-black = ace of clubs -card-sc-jack-clubs-black = jack of clubs -card-sc-king-clubs-black = king of clubs -card-sc-queen-clubs-black = queen of clubs +card-sc-2-clubs = 2 of clubs +card-sc-3-clubs = 3 of clubs +card-sc-4-clubs = 4 of clubs +card-sc-5-clubs = 5 of clubs +card-sc-6-clubs = 6 of clubs +card-sc-7-clubs = 7 of clubs +card-sc-8-clubs = 8 of clubs +card-sc-9-clubs = 9 of clubs +card-sc-10-clubs = 10 of clubs +card-sc-ace-clubs = ace of clubs +card-sc-jack-clubs = jack of clubs +card-sc-king-clubs = king of clubs +card-sc-queen-clubs = queen of clubs -card-sc-2-diamonds-black = 2 of diamonds -card-sc-3-diamonds-black = 3 of diamonds -card-sc-4-diamonds-black = 4 of diamonds -card-sc-5-diamonds-black = 5 of diamonds -card-sc-6-diamonds-black = 6 of diamonds -card-sc-7-diamonds-black = 7 of diamonds -card-sc-8-diamonds-black = 8 of diamonds -card-sc-9-diamonds-black = 9 of diamonds -card-sc-10-diamonds-black = 10 of diamonds -card-sc-ace-diamonds-black = ace of diamonds -card-sc-jack-diamonds-black = jack of diamonds -card-sc-king-diamonds-black = king of diamonds -card-sc-queen-diamonds-black = queen of diamonds +card-sc-2-diamonds = 2 of diamonds +card-sc-3-diamonds = 3 of diamonds +card-sc-4-diamonds = 4 of diamonds +card-sc-5-diamonds = 5 of diamonds +card-sc-6-diamonds = 6 of diamonds +card-sc-7-diamonds = 7 of diamonds +card-sc-8-diamonds = 8 of diamonds +card-sc-9-diamonds = 9 of diamonds +card-sc-10-diamonds = 10 of diamonds +card-sc-ace-diamonds = ace of diamonds +card-sc-jack-diamonds = jack of diamonds +card-sc-king-diamonds = king of diamonds +card-sc-queen-diamonds = queen of diamonds -card-sc-2-hearts-black = 2 of hearts -card-sc-3-hearts-black = 3 of hearts -card-sc-4-hearts-black = 4 of hearts -card-sc-5-hearts-black = 5 of hearts -card-sc-6-hearts-black = 6 of hearts -card-sc-7-hearts-black = 7 of hearts -card-sc-8-hearts-black = 8 of hearts -card-sc-9-hearts-black = 9 of hearts -card-sc-10-hearts-black = 10 of hearts -card-sc-ace-hearts-black = ace of hearts -card-sc-jack-hearts-black = jack of hearts -card-sc-king-hearts-black = king of hearts -card-sc-queen-hearts-black = queen of hearts +card-sc-2-hearts = 2 of hearts +card-sc-3-hearts = 3 of hearts +card-sc-4-hearts = 4 of hearts +card-sc-5-hearts = 5 of hearts +card-sc-6-hearts = 6 of hearts +card-sc-7-hearts = 7 of hearts +card-sc-8-hearts = 8 of hearts +card-sc-9-hearts = 9 of hearts +card-sc-10-hearts = 10 of hearts +card-sc-ace-hearts = ace of hearts +card-sc-jack-hearts = jack of hearts +card-sc-king-hearts = king of hearts +card-sc-queen-hearts = queen of hearts -card-sc-2-spades-black = 2 of spades -card-sc-3-spades-black = 3 of spades -card-sc-4-spades-black = 4 of spades -card-sc-5-spades-black = 5 of spades -card-sc-6-spades-black = 6 of spades -card-sc-7-spades-black = 7 of spades -card-sc-8-spades-black = 8 of spades -card-sc-9-spades-black = 9 of spades -card-sc-10-spades-black = 10 of spades -card-sc-ace-spades-black = ace of spades -card-sc-jack-spades-black = jack of spades -card-sc-king-spades-black = king of spades -card-sc-queen-spades-black = queen of spades +card-sc-2-spades = 2 of spades +card-sc-3-spades = 3 of spades +card-sc-4-spades = 4 of spades +card-sc-5-spades = 5 of spades +card-sc-6-spades = 6 of spades +card-sc-7-spades = 7 of spades +card-sc-8-spades = 8 of spades +card-sc-9-spades = 9 of spades +card-sc-10-spades = 10 of spades +card-sc-ace-spades = ace of spades +card-sc-jack-spades = jack of spades +card-sc-king-spades = king of spades +card-sc-queen-spades = queen of spades -card-sc-joker-black = joker +card-sc-joker = joker + +container-sealed = A holographic security seal is on it. Opening it will have the seal dissipate. +container-unsealed = The seal attached to it dissipates. diff --git a/Resources/Locale/en-US/estacao-pirata/store/uplink-catalog.ftl b/Resources/Locale/en-US/estacao-pirata/store/uplink-catalog.ftl new file mode 100644 index 00000000000..c94ffdba167 --- /dev/null +++ b/Resources/Locale/en-US/estacao-pirata/store/uplink-catalog.ftl @@ -0,0 +1,2 @@ +uplink-syndicate-deck-name = Syndicate Deck Box +uplink-syndicate-deck-desc = A deck box with the standard 53 playing cards with syndicate branding. Please gamble responsibly. diff --git a/Resources/Prototypes/EstacaoPirata/Catalog/uplink_catalog.yml b/Resources/Prototypes/EstacaoPirata/Catalog/uplink_catalog.yml new file mode 100644 index 00000000000..e58f844d8f4 --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Catalog/uplink_catalog.yml @@ -0,0 +1,9 @@ +- type: listing + id: UplinkSyndicateDeck + name: uplink-syndicate-deck-name + description: uplink-syndicate-deck-desc + productEntity: CardBoxSyndicate + cost: + Telecrystal: 4 # Frontier: 1<4 (less spam please) + categories: + - UplinkPointless diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/black_cards.yml similarity index 88% rename from Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/cards.yml rename to Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/black_cards.yml index d25379f25dd..90c88b1a3dc 100644 --- a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/cards.yml +++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/black_cards.yml @@ -27,12 +27,10 @@ - id: CardDeckBase amount: 1 - type: Appearance - - type: StaticPrice # Frontier - price: 200 # Frontier # Frontier: base stack for card stack component - type: entity - parent: [BaseItem, RecyclableItemNoMats] # Frontier: added RecyclableItemNoMats + parent: [BaseItem] id: CardStackBase name: stack of cards abstract: true @@ -40,6 +38,7 @@ - type: Item size: Small - type: CardStack + - type: StripMenuHidden - type: ContainerContainer # Frontier containers: # Frontier cardstack-container: !type:Container # Frontier @@ -61,8 +60,6 @@ type: CardHandMenuBoundUserInterface # - type: ActivatableUI # Frontier # key: enum.CardUiKey.Key # Frontier - - type: StaticPrice # Frontier - price: 0.01 # Frontier - type: entity parent: CardStackBase @@ -101,12 +98,14 @@ parent: CardDeckBase id: CardDeckBlack name: deck of cards + categories: [ HideSpawnMenu ] # Frontier + suffix: DO NOT MAP # Frontier components: - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: deck_black_full - type: CardStack - content: + initialContent: # Clubs - CardScAceOfClubsBlack - CardSc2OfClubsBlack @@ -160,13 +159,11 @@ - CardSc8OfSpadesBlack - CardSc9OfSpadesBlack - CardSc10OfSpadesBlack - - CardScKingOfSpadesBlack - - CardScQueenOfSpadesBlack - CardScJackOfSpadesBlack + - CardScQueenOfSpadesBlack + - CardScKingOfSpadesBlack # Joker - CardScJokerBlack - - type: StaticPrice # Frontier - price: 0.01 # Frontier - type: entity parent: BaseItem @@ -186,12 +183,11 @@ - type: UseDelay delay: 0.5 - type: Card - backSpriteLayers: + backSprite: - sprite: EstacaoPirata/Objects/Misc/cards.rsi state: singlecard_down_black flipped: true - - type: StaticPrice # Frontier - price: 0.01 # Frontier + - type: StripMenuHidden # region Black Cards @@ -201,7 +197,7 @@ id: CardSc2OfClubsBlack components: - type: Card - name: card-sc-2-clubs-black + name: card-sc-2-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_2_of_Clubs_black @@ -212,7 +208,7 @@ id: CardSc3OfClubsBlack components: - type: Card - name: card-sc-3-clubs-black + name: card-sc-3-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_3_of_Clubs_black @@ -223,7 +219,7 @@ id: CardSc4OfClubsBlack components: - type: Card - name: card-sc-4-clubs-black + name: card-sc-4-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_4_of_Clubs_black @@ -234,7 +230,7 @@ id: CardSc5OfClubsBlack components: - type: Card - name: card-sc-5-clubs-black + name: card-sc-5-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_5_of_Clubs_black @@ -245,7 +241,7 @@ id: CardSc6OfClubsBlack components: - type: Card - name: card-sc-6-clubs-black + name: card-sc-6-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_6_of_Clubs_black @@ -256,7 +252,7 @@ id: CardSc7OfClubsBlack components: - type: Card - name: card-sc-7-clubs-black + name: card-sc-7-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_7_of_Clubs_black @@ -267,7 +263,7 @@ id: CardSc8OfClubsBlack components: - type: Card - name: card-sc-8-clubs-black + name: card-sc-8-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_8_of_Clubs_black @@ -278,7 +274,7 @@ id: CardSc9OfClubsBlack components: - type: Card - name: card-sc-9-clubs-black + name: card-sc-9-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_9_of_Clubs_black @@ -289,7 +285,7 @@ id: CardSc10OfClubsBlack components: - type: Card - name: card-sc-10-clubs-black + name: card-sc-10-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_10_of_Clubs_black @@ -300,7 +296,7 @@ id: CardScAceOfClubsBlack components: - type: Card - name: card-sc-ace-clubs-black + name: card-sc-ace-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Ace_of_Clubs_black @@ -312,7 +308,7 @@ id: CardScJackOfClubsBlack components: - type: Card - name: card-sc-jack-clubs-black + name: card-sc-jack-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Jack_of_Clubs_black @@ -323,7 +319,7 @@ id: CardScKingOfClubsBlack components: - type: Card - name: card-sc-king-clubs-black + name: card-sc-king-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_King_of_Clubs_black @@ -334,7 +330,7 @@ id: CardScQueenOfClubsBlack components: - type: Card - name: card-sc-queen-clubs-black + name: card-sc-queen-clubs - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Queen_of_Clubs_black @@ -346,7 +342,7 @@ id: CardScJackOfDiamondsBlack components: - type: Card - name: card-sc-jack-diamonds-black + name: card-sc-jack-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Jack_of_Diamonds_black @@ -357,7 +353,7 @@ id: CardScQueenOfDiamondsBlack components: - type: Card - name: card-sc-queen-diamonds-black + name: card-sc-queen-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Queen_of_Diamonds_black @@ -368,7 +364,7 @@ id: CardScKingOfDiamondsBlack components: - type: Card - name: card-sc-king-diamonds-black + name: card-sc-king-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_King_of_Diamonds_black @@ -379,7 +375,7 @@ id: CardScAceOfDiamondsBlack components: - type: Card - name: card-sc-ace-diamonds-black + name: card-sc-ace-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Ace_of_Diamonds_black @@ -390,7 +386,7 @@ id: CardSc2OfDiamondsBlack components: - type: Card - name: card-sc-2-diamonds-black + name: card-sc-2-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_2_of_Diamonds_black @@ -401,7 +397,7 @@ id: CardSc3OfDiamondsBlack components: - type: Card - name: card-sc-3-diamonds-black + name: card-sc-3-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_3_of_Diamonds_black @@ -412,7 +408,7 @@ id: CardSc4OfDiamondsBlack components: - type: Card - name: card-sc-4-diamonds-black + name: card-sc-4-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_4_of_Diamonds_black @@ -423,7 +419,7 @@ id: CardSc5OfDiamondsBlack components: - type: Card - name: card-sc-5-diamonds-black + name: card-sc-5-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_5_of_Diamonds_black @@ -434,7 +430,7 @@ id: CardSc6OfDiamondsBlack components: - type: Card - name: card-sc-6-diamonds-black + name: card-sc-6-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_6_of_Diamonds_black @@ -445,7 +441,7 @@ id: CardSc7OfDiamondsBlack components: - type: Card - name: card-sc-7-diamonds-black + name: card-sc-7-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_7_of_Diamonds_black @@ -456,7 +452,7 @@ id: CardSc8OfDiamondsBlack components: - type: Card - name: card-sc-8-diamonds-black + name: card-sc-8-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_8_of_Diamonds_black @@ -467,7 +463,7 @@ id: CardSc9OfDiamondsBlack components: - type: Card - name: card-sc-9-diamonds-black + name: card-sc-9-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_9_of_Diamonds_black @@ -478,7 +474,7 @@ id: CardSc10OfDiamondsBlack components: - type: Card - name: card-sc-10-diamonds-black + name: card-sc-10-diamonds - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_10_of_Diamonds_black @@ -490,7 +486,7 @@ id: CardSc2OfHeartsBlack components: - type: Card - name: card-sc-2-hearts-black + name: card-sc-2-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_2_of_Hearts_black @@ -501,7 +497,7 @@ id: CardSc3OfHeartsBlack components: - type: Card - name: card-sc-3-hearts-black + name: card-sc-3-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_3_of_Hearts_black @@ -512,7 +508,7 @@ id: CardSc4OfHeartsBlack components: - type: Card - name: card-sc-4-hearts-black + name: card-sc-4-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_4_of_Hearts_black @@ -523,7 +519,7 @@ id: CardSc5OfHeartsBlack components: - type: Card - name: card-sc-5-hearts-black + name: card-sc-5-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_5_of_Hearts_black @@ -534,7 +530,7 @@ id: CardSc6OfHeartsBlack components: - type: Card - name: card-sc-6-hearts-black + name: card-sc-6-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_6_of_Hearts_black @@ -545,7 +541,7 @@ id: CardSc7OfHeartsBlack components: - type: Card - name: card-sc-7-hearts-black + name: card-sc-7-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_7_of_Hearts_black @@ -556,7 +552,7 @@ id: CardSc8OfHeartsBlack components: - type: Card - name: card-sc-8-hearts-black + name: card-sc-8-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_8_of_Hearts_black @@ -567,7 +563,7 @@ id: CardSc9OfHeartsBlack components: - type: Card - name: card-sc-9-hearts-black + name: card-sc-9-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_9_of_Hearts_black @@ -578,7 +574,7 @@ id: CardSc10OfHeartsBlack components: - type: Card - name: card-sc-10-hearts-black + name: card-sc-10-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_10_of_Hearts_black @@ -589,7 +585,7 @@ id: CardScKingOfHeartsBlack components: - type: Card - name: card-sc-king-hearts-black + name: card-sc-king-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_King_of_Hearts_black @@ -600,7 +596,7 @@ id: CardScQueenOfHeartsBlack components: - type: Card - name: card-sc-queen-hearts-black + name: card-sc-queen-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Queen_of_Hearts_black @@ -611,7 +607,7 @@ id: CardScJackOfHeartsBlack components: - type: Card - name: card-sc-jack-hearts-black + name: card-sc-jack-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Jack_of_Hearts_black @@ -622,7 +618,7 @@ id: CardScAceOfHeartsBlack components: - type: Card - name: card-sc-ace-hearts-black + name: card-sc-ace-hearts - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Ace_of_Hearts_black @@ -634,7 +630,7 @@ id: CardSc2OfSpadesBlack components: - type: Card - name: card-sc-2-spades-black + name: card-sc-2-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_2_of_Spades_black @@ -645,7 +641,7 @@ id: CardSc3OfSpadesBlack components: - type: Card - name: card-sc-3-spades-black + name: card-sc-3-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_3_of_Spades_black @@ -656,7 +652,7 @@ id: CardSc4OfSpadesBlack components: - type: Card - name: card-sc-4-spades-black + name: card-sc-4-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_4_of_Spades_black @@ -667,7 +663,7 @@ id: CardSc5OfSpadesBlack components: - type: Card - name: card-sc-5-spades-black + name: card-sc-5-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_5_of_Spades_black @@ -678,7 +674,7 @@ id: CardSc6OfSpadesBlack components: - type: Card - name: card-sc-6-spades-black + name: card-sc-6-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_6_of_Spades_black @@ -689,7 +685,7 @@ id: CardSc7OfSpadesBlack components: - type: Card - name: card-sc-7-spades-black + name: card-sc-7-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_7_of_Spades_black @@ -700,7 +696,7 @@ id: CardSc8OfSpadesBlack components: - type: Card - name: card-sc-8-spades-black + name: card-sc-8-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_8_of_Spades_black @@ -711,7 +707,7 @@ id: CardSc9OfSpadesBlack components: - type: Card - name: card-sc-9-spades-black + name: card-sc-9-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_9_of_Spades_black @@ -723,7 +719,7 @@ id: CardSc10OfSpadesBlack components: - type: Card - name: card-sc-10-spades-black + name: card-sc-10-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_10_of_Spades_black @@ -734,7 +730,7 @@ id: CardScKingOfSpadesBlack components: - type: Card - name: card-sc-king-spades-black + name: card-sc-king-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_King_of_Spades_black @@ -745,7 +741,7 @@ id: CardScQueenOfSpadesBlack components: - type: Card - name: card-sc-queen-spades-black + name: card-sc-queen-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Queen_of_Spades_black @@ -756,7 +752,7 @@ id: CardScJackOfSpadesBlack components: - type: Card - name: card-sc-jack-spades-black + name: card-sc-jack-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Jack_of_Spades_black @@ -767,7 +763,7 @@ id: CardScAceOfSpadesBlack components: - type: Card - name: card-sc-ace-spades-black + name: card-sc-ace-spades - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: sc_Ace_of_Spades_black @@ -778,7 +774,7 @@ id: CardScJokerBlack components: - type: Card - name: card-sc-joker-black + name: card-sc-joker - type: Sprite sprite: EstacaoPirata/Objects/Misc/cards.rsi state: black_joker diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/nt_cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/nt_cards.yml new file mode 100644 index 00000000000..bdb331227bb --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/nt_cards.yml @@ -0,0 +1,691 @@ +- type: entity + parent: CardBase + id: CardBaseNanotrasen + name: card + components: + - type: Card + backSprite: + - sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_nanotrasen + +- type: entity + parent: CardBoxBase + id: CardBoxNanotrasen + name: nanotrasen deck box + components: + - type: Item + size: Small + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + layers: + - state: nanotrasen_box + - state: nanotrasen_box_open + map: [ "openLayer" ] + visible: false + - type: OpenTriggeredStorageFill + contents: + - id: CardDeckNanotrasen + amount: 1 + +- type: entity + parent: CardDeckBase + id: CardDeckNanotrasen + name: deck of cards + categories: [ HideSpawnMenu ] # Frontier + suffix: DO NOT MAP # Frontier + components: + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: deck_nanotrasen_full + - type: CardStack + initialContent: + # Clubs + - CardScAceOfClubsNanotrasen + - CardSc2OfClubsNanotrasen + - CardSc3OfClubsNanotrasen + - CardSc4OfClubsNanotrasen + - CardSc5OfClubsNanotrasen + - CardSc6OfClubsNanotrasen + - CardSc7OfClubsNanotrasen + - CardSc8OfClubsNanotrasen + - CardSc9OfClubsNanotrasen + - CardSc10OfClubsNanotrasen + - CardScJackOfClubsNanotrasen + - CardScQueenOfClubsNanotrasen + - CardScKingOfClubsNanotrasen + # Diamonds + - CardScAceOfDiamondsNanotrasen + - CardSc2OfDiamondsNanotrasen + - CardSc3OfDiamondsNanotrasen + - CardSc4OfDiamondsNanotrasen + - CardSc5OfDiamondsNanotrasen + - CardSc6OfDiamondsNanotrasen + - CardSc7OfDiamondsNanotrasen + - CardSc8OfDiamondsNanotrasen + - CardSc9OfDiamondsNanotrasen + - CardSc10OfDiamondsNanotrasen + - CardScJackOfDiamondsNanotrasen + - CardScQueenOfDiamondsNanotrasen + - CardScKingOfDiamondsNanotrasen + # Hearts + - CardScAceOfHeartsNanotrasen + - CardSc2OfHeartsNanotrasen + - CardSc3OfHeartsNanotrasen + - CardSc4OfHeartsNanotrasen + - CardSc5OfHeartsNanotrasen + - CardSc6OfHeartsNanotrasen + - CardSc7OfHeartsNanotrasen + - CardSc8OfHeartsNanotrasen + - CardSc9OfHeartsNanotrasen + - CardSc10OfHeartsNanotrasen + - CardScJackOfHeartsNanotrasen + - CardScQueenOfHeartsNanotrasen + - CardScKingOfHeartsNanotrasen + # Spades + - CardScAceOfSpadesNanotrasen + - CardSc2OfSpadesNanotrasen + - CardSc3OfSpadesNanotrasen + - CardSc4OfSpadesNanotrasen + - CardSc5OfSpadesNanotrasen + - CardSc6OfSpadesNanotrasen + - CardSc7OfSpadesNanotrasen + - CardSc8OfSpadesNanotrasen + - CardSc9OfSpadesNanotrasen + - CardSc10OfSpadesNanotrasen + - CardScJackOfSpadesNanotrasen + - CardScQueenOfSpadesNanotrasen + - CardScKingOfSpadesNanotrasen + # Joker + - CardScJokerNanotrasen + +# region Nanotrasen Cards + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfClubsNanotrasen + components: + - type: Card + name: card-sc-2-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfClubsNanotrasen + components: + - type: Card + name: card-sc-3-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfClubsNanotrasen + components: + - type: Card + name: card-sc-4-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfClubsNanotrasen + components: + - type: Card + name: card-sc-5-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfClubsNanotrasen + components: + - type: Card + name: card-sc-6-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfClubsNanotrasen + components: + - type: Card + name: card-sc-7-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfClubsNanotrasen + components: + - type: Card + name: card-sc-8-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfClubsNanotrasen + components: + - type: Card + name: card-sc-9-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfClubsNanotrasen + components: + - type: Card + name: card-sc-10-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfClubsNanotrasen + components: + - type: Card + name: card-sc-ace-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Clubs_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfClubsNanotrasen + components: + - type: Card + name: card-sc-jack-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfClubsNanotrasen + components: + - type: Card + name: card-sc-king-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Clubs_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfClubsNanotrasen + components: + - type: Card + name: card-sc-queen-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Clubs_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-jack-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-queen-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-king-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfDiamondsNanotrasen + components: + - type: Card + name: card-sc-ace-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-2-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-3-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-4-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-5-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-6-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-7-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-8-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-9-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Diamonds_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfDiamondsNanotrasen + components: + - type: Card + name: card-sc-10-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Diamonds_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfHeartsNanotrasen + components: + - type: Card + name: card-sc-2-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfHeartsNanotrasen + components: + - type: Card + name: card-sc-3-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfHeartsNanotrasen + components: + - type: Card + name: card-sc-4-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfHeartsNanotrasen + components: + - type: Card + name: card-sc-5-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfHeartsNanotrasen + components: + - type: Card + name: card-sc-6-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfHeartsNanotrasen + components: + - type: Card + name: card-sc-7-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfHeartsNanotrasen + components: + - type: Card + name: card-sc-8-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfHeartsNanotrasen + components: + - type: Card + name: card-sc-9-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfHeartsNanotrasen + components: + - type: Card + name: card-sc-10-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfHeartsNanotrasen + components: + - type: Card + name: card-sc-king-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfHeartsNanotrasen + components: + - type: Card + name: card-sc-queen-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfHeartsNanotrasen + components: + - type: Card + name: card-sc-jack-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Hearts_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfHeartsNanotrasen + components: + - type: Card + name: card-sc-ace-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Hearts_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc2OfSpadesNanotrasen + components: + - type: Card + name: card-sc-2-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc3OfSpadesNanotrasen + components: + - type: Card + name: card-sc-3-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc4OfSpadesNanotrasen + components: + - type: Card + name: card-sc-4-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc5OfSpadesNanotrasen + components: + - type: Card + name: card-sc-5-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc6OfSpadesNanotrasen + components: + - type: Card + name: card-sc-6-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc7OfSpadesNanotrasen + components: + - type: Card + name: card-sc-7-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc8OfSpadesNanotrasen + components: + - type: Card + name: card-sc-8-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc9OfSpadesNanotrasen + components: + - type: Card + name: card-sc-9-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Spades_nanotrasen + + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardSc10OfSpadesNanotrasen + components: + - type: Card + name: card-sc-10-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScKingOfSpadesNanotrasen + components: + - type: Card + name: card-sc-king-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScQueenOfSpadesNanotrasen + components: + - type: Card + name: card-sc-queen-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJackOfSpadesNanotrasen + components: + - type: Card + name: card-sc-jack-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScAceOfSpadesNanotrasen + components: + - type: Card + name: card-sc-ace-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Spades_nanotrasen + +- type: entity + parent: CardBaseNanotrasen + categories: [ HideSpawnMenu ] + id: CardScJokerNanotrasen + components: + - type: Card + name: card-sc-joker + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: nanotrasen_joker + +# endregion Nanotrasen Cards diff --git a/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/syndicate_cards.yml b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/syndicate_cards.yml new file mode 100644 index 00000000000..b28ad20f75b --- /dev/null +++ b/Resources/Prototypes/EstacaoPirata/Entities/Objects/Misc/syndicate_cards.yml @@ -0,0 +1,691 @@ +- type: entity + parent: CardBase + id: CardBaseSyndicate + name: card + components: + - type: Card + backSprite: + - sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: singlecard_down_syndicate + +- type: entity + parent: CardBoxBase + id: CardBoxSyndicate + name: syndicate deck box + components: + - type: Item + size: Small + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + layers: + - state: syndicate_box + - state: syndicate_box_open + map: [ "openLayer" ] + visible: false + - type: OpenTriggeredStorageFill + contents: + - id: CardDeckSyndicate + amount: 1 + +- type: entity + parent: CardDeckBase + id: CardDeckSyndicate + name: deck of cards + categories: [ HideSpawnMenu ] # Frontier + suffix: DO NOT MAP # Frontier + components: + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: deck_syndicate_full + - type: CardStack + initialContent: + # Clubs + - CardScAceOfClubsSyndicate + - CardSc2OfClubsSyndicate + - CardSc3OfClubsSyndicate + - CardSc4OfClubsSyndicate + - CardSc5OfClubsSyndicate + - CardSc6OfClubsSyndicate + - CardSc7OfClubsSyndicate + - CardSc8OfClubsSyndicate + - CardSc9OfClubsSyndicate + - CardSc10OfClubsSyndicate + - CardScJackOfClubsSyndicate + - CardScQueenOfClubsSyndicate + - CardScKingOfClubsSyndicate + # Diamonds + - CardScAceOfDiamondsSyndicate + - CardSc2OfDiamondsSyndicate + - CardSc3OfDiamondsSyndicate + - CardSc4OfDiamondsSyndicate + - CardSc5OfDiamondsSyndicate + - CardSc6OfDiamondsSyndicate + - CardSc7OfDiamondsSyndicate + - CardSc8OfDiamondsSyndicate + - CardSc9OfDiamondsSyndicate + - CardSc10OfDiamondsSyndicate + - CardScJackOfDiamondsSyndicate + - CardScQueenOfDiamondsSyndicate + - CardScKingOfDiamondsSyndicate + # Hearts + - CardScAceOfHeartsSyndicate + - CardSc2OfHeartsSyndicate + - CardSc3OfHeartsSyndicate + - CardSc4OfHeartsSyndicate + - CardSc5OfHeartsSyndicate + - CardSc6OfHeartsSyndicate + - CardSc7OfHeartsSyndicate + - CardSc8OfHeartsSyndicate + - CardSc9OfHeartsSyndicate + - CardSc10OfHeartsSyndicate + - CardScJackOfHeartsSyndicate + - CardScQueenOfHeartsSyndicate + - CardScKingOfHeartsSyndicate + # Spades + - CardScAceOfSpadesSyndicate + - CardSc2OfSpadesSyndicate + - CardSc3OfSpadesSyndicate + - CardSc4OfSpadesSyndicate + - CardSc5OfSpadesSyndicate + - CardSc6OfSpadesSyndicate + - CardSc7OfSpadesSyndicate + - CardSc8OfSpadesSyndicate + - CardSc9OfSpadesSyndicate + - CardSc10OfSpadesSyndicate + - CardScJackOfSpadesSyndicate + - CardScQueenOfSpadesSyndicate + - CardScKingOfSpadesSyndicate + # Joker + - CardScJokerSyndicate + +# region Syndicate Cards + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfClubsSyndicate + components: + - type: Card + name: card-sc-2-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfClubsSyndicate + components: + - type: Card + name: card-sc-3-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfClubsSyndicate + components: + - type: Card + name: card-sc-4-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfClubsSyndicate + components: + - type: Card + name: card-sc-5-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfClubsSyndicate + components: + - type: Card + name: card-sc-6-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfClubsSyndicate + components: + - type: Card + name: card-sc-7-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfClubsSyndicate + components: + - type: Card + name: card-sc-8-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfClubsSyndicate + components: + - type: Card + name: card-sc-9-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfClubsSyndicate + components: + - type: Card + name: card-sc-10-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfClubsSyndicate + components: + - type: Card + name: card-sc-ace-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Clubs_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfClubsSyndicate + components: + - type: Card + name: card-sc-jack-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfClubsSyndicate + components: + - type: Card + name: card-sc-king-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Clubs_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfClubsSyndicate + components: + - type: Card + name: card-sc-queen-clubs + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Clubs_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfDiamondsSyndicate + components: + - type: Card + name: card-sc-jack-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfDiamondsSyndicate + components: + - type: Card + name: card-sc-queen-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfDiamondsSyndicate + components: + - type: Card + name: card-sc-king-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfDiamondsSyndicate + components: + - type: Card + name: card-sc-ace-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfDiamondsSyndicate + components: + - type: Card + name: card-sc-2-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfDiamondsSyndicate + components: + - type: Card + name: card-sc-3-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfDiamondsSyndicate + components: + - type: Card + name: card-sc-4-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfDiamondsSyndicate + components: + - type: Card + name: card-sc-5-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfDiamondsSyndicate + components: + - type: Card + name: card-sc-6-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfDiamondsSyndicate + components: + - type: Card + name: card-sc-7-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfDiamondsSyndicate + components: + - type: Card + name: card-sc-8-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfDiamondsSyndicate + components: + - type: Card + name: card-sc-9-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Diamonds_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfDiamondsSyndicate + components: + - type: Card + name: card-sc-10-diamonds + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Diamonds_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfHeartsSyndicate + components: + - type: Card + name: card-sc-2-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfHeartsSyndicate + components: + - type: Card + name: card-sc-3-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfHeartsSyndicate + components: + - type: Card + name: card-sc-4-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfHeartsSyndicate + components: + - type: Card + name: card-sc-5-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfHeartsSyndicate + components: + - type: Card + name: card-sc-6-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfHeartsSyndicate + components: + - type: Card + name: card-sc-7-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfHeartsSyndicate + components: + - type: Card + name: card-sc-8-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfHeartsSyndicate + components: + - type: Card + name: card-sc-9-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfHeartsSyndicate + components: + - type: Card + name: card-sc-10-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfHeartsSyndicate + components: + - type: Card + name: card-sc-king-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfHeartsSyndicate + components: + - type: Card + name: card-sc-queen-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfHeartsSyndicate + components: + - type: Card + name: card-sc-jack-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Hearts_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfHeartsSyndicate + components: + - type: Card + name: card-sc-ace-hearts + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Hearts_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc2OfSpadesSyndicate + components: + - type: Card + name: card-sc-2-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_2_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc3OfSpadesSyndicate + components: + - type: Card + name: card-sc-3-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_3_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc4OfSpadesSyndicate + components: + - type: Card + name: card-sc-4-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_4_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc5OfSpadesSyndicate + components: + - type: Card + name: card-sc-5-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_5_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc6OfSpadesSyndicate + components: + - type: Card + name: card-sc-6-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_6_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc7OfSpadesSyndicate + components: + - type: Card + name: card-sc-7-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_7_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc8OfSpadesSyndicate + components: + - type: Card + name: card-sc-8-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_8_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc9OfSpadesSyndicate + components: + - type: Card + name: card-sc-9-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_9_of_Spades_syndicate + + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardSc10OfSpadesSyndicate + components: + - type: Card + name: card-sc-10-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_10_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScKingOfSpadesSyndicate + components: + - type: Card + name: card-sc-king-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_King_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScQueenOfSpadesSyndicate + components: + - type: Card + name: card-sc-queen-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Queen_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJackOfSpadesSyndicate + components: + - type: Card + name: card-sc-jack-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Jack_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScAceOfSpadesSyndicate + components: + - type: Card + name: card-sc-ace-spades + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: sc_Ace_of_Spades_syndicate + +- type: entity + parent: CardBaseSyndicate + categories: [ HideSpawnMenu ] + id: CardScJokerSyndicate + components: + - type: Card + name: card-sc-joker + - type: Sprite + sprite: EstacaoPirata/Objects/Misc/cards.rsi + state: syndicate_joker + +# endregion Syndicate Cards diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png index 5145216bf3d..3c78df832b6 100644 Binary files a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box.png 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 index 8b3c3fbe05c..10eb7ad5f4d 100644 Binary files a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/black_box_open.png differ diff --git a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png index b80b2ccd71f..bc8b592db79 100644 Binary files a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box.png 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 index b86bfb1c2d0..455c1b1061c 100644 Binary files a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.png and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/nanotrasen_box_open.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 index 24d143e40dc..3eaa88dd30f 100644 Binary files a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box.png 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 index a8edb3d5cd6..18cbfc12a45 100644 Binary files a/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png and b/Resources/Textures/EstacaoPirata/Objects/Misc/cards.rsi/syndicate_box_open.png differ