diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index 97012528a0..15fc42b469 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -526,3 +526,7 @@
new /obj/item/book/granter/martial/carp(src)
new /obj/item/clothing/suit/hooded/carp_costume(src)
new /obj/item/staff/bostaff(src)
+
+/obj/item/storage/box/syndie_kit/sleepytime/cardpack/PopulateContents()
+ . = ..()
+ new /obj/item/cardpack/syndicate(src)
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
index 8091c233ef..c0bd25b028 100644
--- a/code/modules/cargo/packs/costumes_toys.dm
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -344,6 +344,12 @@
/datum/supply_pack/costumes_toys/randomised/tcg/generate()
. = ..()
var/cardpacktype
+ var/list/cardtypes = subtypesof(/obj/item/cardpack)
+ for(var/cardtype in cardtypes)
+ var/obj/item/cardpack/pack = new cardtype(.)
+ if(pack.illegal)
+ cardtypes.Remove(cardtype)
+ qdel(pack)
for(var/i in 1 to 10)
- cardpacktype = pick(subtypesof(/obj/item/cardpack))
+ cardpacktype = pick(cardtypes)
new cardpacktype(.)
diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm
index db2f24c64a..65448c1687 100644
--- a/code/modules/tcg/cards.dm
+++ b/code/modules/tcg/cards.dm
@@ -80,6 +80,8 @@
/obj/item/tcg_card/examine(mob/user)
. = ..()
sleep(2) //So it prints this shit after the examine
+ if(flipped)
+ return
to_chat(user, "This card has following stats:")
to_chat(user, "Mana cost: [card_datum.mana_cost]")
to_chat(user, "Health: [card_datum.health]")
@@ -90,6 +92,8 @@
to_chat(user, "It's effect is: [card_datum.rules]")
/obj/item/tcg_card/openTip(location, control, params, user) //Overriding for nice UI
+ if(flipped)
+ return ..()
var/desc_content = "[desc]
\
This card has following stats:
\
Mana cost: [card_datum.mana_cost]
\
@@ -108,6 +112,8 @@
card_datum = new datum_type
icon = card_datum.pack
icon_state = card_datum.icon_state
+ name = card_datum.name
+ desc = card_datum.desc
/obj/item/tcg_card/attack_hand(mob/user)
var/list/possible_actions = list(
@@ -212,7 +218,7 @@
icon_state = "cardpack"
w_class = WEIGHT_CLASS_TINY
///The card series to look in
- var/series = /datum/tcg_card/pack_1
+ var/list/series = list(/datum/tcg_card/pack_1, /datum/tcg_card/exodia)
///Chance of the pack having a coin in it out of 10
var/contains_coin = -1
///The amount of cards to draw from the rarity table
@@ -222,7 +228,8 @@
"Common" = 900,
"Rare" = 300,
"Epic" = 50,
- "Legendary" = 3)
+ "Legendary" = 3,
+ "Exodia" = 1) //Basically 0.1%, it doesn't have guar. rarity
///The amount of cards to draw from the guarenteed rarity table
var/guaranteed_count = 1
///The guaranteed rarity table, acts about the same as the rarity table. it can have as many or as few raritys as you'd like
@@ -231,15 +238,37 @@
"Epic" = 9,
"Rare" = 30)
+ var/illegal = FALSE //Can cargo get it?
+
custom_price = PRICE_EXPENSIVE
/obj/item/cardpack/series_one
name = "Trading Card Pack: 2560 Core Set"
desc = "Contains six cards of varying rarity from the 2560 Core Set. Collect them all!"
icon_state = "cardpack"
- series = /datum/tcg_card/pack_1
+ series = list(/datum/tcg_card/pack_1, /datum/tcg_card/exodia)
contains_coin = 10
+/obj/item/cardpack/syndicate //Higher chances more cards no exodia
+ name = "Trading Card Pack: Nuclear Cards"
+ desc = "Contains twelve cards of varying rarity from the 2560 Core Set. This pack was stamped by Waffle Co."
+ icon_state = "cardpack_syndicate"
+ series = list(/datum/tcg_card/pack_1) //, /datum/tcg_card/nuclear)
+ contains_coin = 100
+
+ card_count = 10
+ rarity_table = list(
+ "Common" = 400,
+ "Rare" = 160,
+ "Epic" = 40,
+ "Legendary" = 10)
+
+ guaranteed_count = 2
+ guar_rarity = list(
+ "Legendary" = 5,
+ "Epic" = 10,
+ "Rare" = 20)
+
/obj/item/cardpack/equipped(mob/user, slot, initial)
. = ..()
transform = matrix()
@@ -263,9 +292,11 @@
/obj/item/cardpack/proc/buildCardListWithRarity(card_cnt, rarity_cnt)
var/list/return_cards = list()
- var/list/cards = subtypesof(series)
+ var/list/cards = list()
+ for(var/card_type in series)
+ cards.Add(subtypesof(card_type))
var/list/possible_cards = list()
- var/list/rarity_cards = list("Legendary" = list(), "Epic" = list(), "Rare" = list(), "Common" = list())
+ var/list/rarity_cards = list("Exodia" = list(), "Legendary" = list(), "Epic" = list(), "Rare" = list(), "Common" = list())
for(var/card in cards)
var/datum/tcg_card/new_card = new card()
possible_cards[card] = rarity_table[new_card.rarity]
diff --git a/code/modules/tcg/pack_star.dm b/code/modules/tcg/pack_star.dm
index 01f8f4c87a..6c39231c8b 100644
--- a/code/modules/tcg/pack_star.dm
+++ b/code/modules/tcg/pack_star.dm
@@ -224,7 +224,10 @@
//Ultimate Exodia cards. I really, really doubt that someone will ever find them.
-/datum/tcg_card/pack_star/exodia_singulo
+/datum/tcg_card/exodia
+ pack = 'icons/obj/tcg/pack_star.dmi'
+
+/datum/tcg_card/exodia/exodia_singulo
name = "Singularity"
desc = "A monstrous gravitational singularity, pitch black(but not quiet) and very menacings."
rules = "This card doesn't leave field. At the end of each turn: Remove all the cards from the field."
@@ -236,7 +239,7 @@
rarity = "Legendary"
card_type = "Spell"
-/datum/tcg_card/pack_star/exodia_tesla
+/datum/tcg_card/exodia/exodia_tesla
name = "Energy Orb"
desc = "An orb made out of hypercharged plasma. An ultimate bug zapper."
rules = "This card doesn't leave field. Every turn all units take 2 damage."
@@ -245,10 +248,10 @@
mana_cost = 8
faction = "Exodia"
- rarity = "Legendary"
+ rarity = "Exodia"
card_type = "Spell"
-/datum/tcg_card/pack_star/exodia_narie
+/datum/tcg_card/exodia/exodia_narie
name = "Nar-Sie"
desc = "An avatar of the Nar-Sie, one of the Eldritch Gods."
rules = "This card doesn't leave field. Every turn all friendly units take 1 damage and you restore 1 lifeshard ."
@@ -257,10 +260,10 @@
mana_cost = 8
faction = "Exodia"
- rarity = "Legendary"
+ rarity = "Exodia"
card_type = "Spell"
-/datum/tcg_card/pack_star/exodia_ratvar
+/datum/tcg_card/exodia/exodia_ratvar
name = "Ratvar"
desc = "Ratvar, the god of cogs and clockwork mechanisms, was trapped by Nar-Sie a long ago."
rules = "This card doesn't leave field. Every turn enemy hero recieves 1 lifeshard damage."
@@ -269,7 +272,7 @@
mana_cost = 8
faction = "Exodia"
- rarity = "Legendary"
+ rarity = "Exodia"
card_type = "Spell"
/datum/tcg_card/pack_star/exodia
@@ -281,20 +284,20 @@
mana_cost = 8
faction = "Exodia"
- rarity = "Legendary"
+ rarity = "Exodia"
card_type = "Spell"
/obj/item/tcg_card/special/exodia_singulo
- datum_type = /datum/tcg_card/pack_star/exodia_singulo
+ datum_type = /datum/tcg_card/exodia/exodia_singulo
/obj/item/tcg_card/special/exodia_tesla
- datum_type = /datum/tcg_card/pack_star/exodia_tesla
+ datum_type = /datum/tcg_card/exodia/exodia_tesla
/obj/item/tcg_card/special/exodia_narie
- datum_type = /datum/tcg_card/pack_star/exodia_narie
+ datum_type = /datum/tcg_card/exodia/exodia_narie
/obj/item/tcg_card/special/exodia_ratvar
- datum_type = /datum/tcg_card/pack_star/exodia_ratvar
+ datum_type = /datum/tcg_card/exodia/exodia_ratvar
/obj/item/tcg_card/special/exodia
datum_type = /datum/tcg_card/pack_star/exodia
diff --git a/code/modules/uplink/uplink_items/uplink_badass.dm b/code/modules/uplink/uplink_items/uplink_badass.dm
index 43e5523bad..e820a90e0f 100644
--- a/code/modules/uplink/uplink_items/uplink_badass.dm
+++ b/code/modules/uplink/uplink_items/uplink_badass.dm
@@ -78,3 +78,11 @@
limited_stock = 1
cant_discount = TRUE
include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
+
+/datum/uplink_item/badass/cardpack
+ name = "TCG Card Operatives Bundle"
+ desc = "A pack full of goodies required to work as a TCG Card Operative. A warm pajama, a mug of cocoa, a plushie and a pack full of rare 2560 Core Set cards!"
+ item = /obj/item/storage/box/syndie_kit/sleepytime/cardpack
+ cost = 20
+ include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
+
diff --git a/icons/obj/tcg/misc.dmi b/icons/obj/tcg/misc.dmi
index 51ed6e2cf3..2844ec5d0a 100644
Binary files a/icons/obj/tcg/misc.dmi and b/icons/obj/tcg/misc.dmi differ