From 5a72442dc815bb3ec48bb249d2f316b3e87d3c2f Mon Sep 17 00:00:00 2001
From: EOBGames <58124831+EOBGames@users.noreply.github.com>
Date: Wed, 6 Jan 2021 16:16:58 +0100
Subject: [PATCH] Third Rate Duelist With A Fourth Rate Deck: The TG TCG, Part
2 (#54659)
Finally adds the ruleset to the TGC, allowing players to play the game (in a relatively provisional state).
Cards now have rules and keywords attached, as well as a proper system for displaying information in the sidebar (all the credit for this has to go to @ArcaneMusic, who also contributed a huge amount of the ruleset for the cards).
The full ruleset and keywords can be found here: https://tgstation13.org/wiki/Tactical_Game_Cards
---
code/game/atoms.dm | 5 +
code/game/objects/items/tcg/tcg.dm | 55 +-
icons/obj/tcgmisc.dmi | Bin 0 -> 5583 bytes
icons/runtime/tcg/default.dmi | Bin 64067 -> 73860 bytes
icons/runtime/tcg/xenos.dmi | Bin 17035 -> 16194 bytes
strings/tcg/set_one.json | 1133 ++++++++++++++++++----------
strings/tcg/set_two.json | 213 +++---
7 files changed, 899 insertions(+), 507 deletions(-)
create mode 100644 icons/obj/tcgmisc.dmi
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 60697d0a855..6ff63c72b42 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -580,6 +580,10 @@
/atom/proc/get_examine_string(mob/user, thats = FALSE)
return "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]"
+///Used to insert text after the name but before the description in examine()
+/atom/proc/get_name_chaser(mob/user, list/name_chaser = list())
+ return name_chaser
+
/**
* Called when a mob examines (shift click or verb) this atom
*
@@ -591,6 +595,7 @@
/atom/proc/examine(mob/user)
. = list("[get_examine_string(user, TRUE)].")
+ . += get_name_chaser(user)
if(desc)
. += desc
diff --git a/code/game/objects/items/tcg/tcg.dm b/code/game/objects/items/tcg/tcg.dm
index 0fb782ddd40..292e6cd1ee5 100644
--- a/code/game/objects/items/tcg/tcg.dm
+++ b/code/game/objects/items/tcg/tcg.dm
@@ -41,12 +41,38 @@ GLOBAL_LIST_EMPTY(cached_cards)
if(!temp)
return
name = temp.name
- desc = temp.desc
+ desc = "[temp.desc]"
icon = icon(temp.icon)
icon_state = temp.icon_state
id = temp.id
series = temp.series
+// This totally isn't overengineered to hell, shut up
+/**
+ * Alright so some brief details here, we store all "immutable" (Think like power) card variables in a global list, indexed by id
+ * This proc gets the card's associated card datum to play with
+ */
+/obj/item/tcgcard/proc/extract_datum()
+ var/list/cached_cards = GLOB.cached_cards[series]
+ if(!cached_cards)
+ return null
+ if(!cached_cards["ALL"][id])
+ CRASH("A card without a datum has appeared, either the global list is empty, or you fucked up bad. Series{[series]} ID{[id]} Len{[GLOB.cached_cards.len]}")
+ return cached_cards["ALL"][id]
+
+/obj/item/tcgcard/get_name_chaser(mob/user, list/name_chaser = list())
+ if(flipped)
+ return ..()
+ var/datum/card/data_holder = extract_datum()
+
+ name_chaser += "Faction: [data_holder.faction]"
+ name_chaser += "Cost: [data_holder.summoncost]"
+ name_chaser += "Type: [data_holder.cardtype] - [data_holder.cardsubtype]"
+ name_chaser += "Power/Resolve: [data_holder.power]/[data_holder.resolve]"
+ if(data_holder.rules) //This can sometimes be empty
+ name_chaser += "Ruleset: [data_holder.rules]"
+ return name_chaser
+
GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/tcgcard/attack_hand(mob/user)
@@ -87,9 +113,9 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/tcgcard/update_icon_state()
. = ..()
if(!flipped)
- var/datum/card/template = GLOB.cached_cards[series]["ALL"][id]
+ var/datum/card/template = extract_datum()
name = template.name
- desc = template.desc
+ desc = "[template.desc]"
icon_state = template.icon_state
else
@@ -155,11 +181,12 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
desc = "It's the back of a trading card... no peeking!"
icon_state = "cardback"
else
- var/datum/card/template = GLOB.cached_cards[series]["ALL"][id]
+ var/datum/card/template = extract_datum()
name = template.name
- desc = template.desc
+ desc = "[template.desc]"
icon_state = template.icon_state
flipped = !flipped
+
/**
* A stack item that's not actually a stack because ORDER MATTERS with a deck of cards!
* The "top" card of the deck will always be the bottom card in the stack for our purposes.
@@ -167,7 +194,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/tcgcard_deck
name = "Trading Card Pile"
desc = "A stack of TCG cards."
- icon = DEFAULT_TCG_DMI_ICON
+ icon = 'icons/obj/tcgmisc.dmi'
icon_state = "deck_up"
obj_flags = UNIQUE_RENAME
var/flipped = FALSE
@@ -266,6 +293,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
final_card.zoom_out()
qdel(src)
+
/**
* The user shuffles the order of the deck, then closes any visability into the deck's storage to prevent cheesing.
* *User: The person doing the shuffling, used in visable message and closing UI.
@@ -281,6 +309,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
user.visible_message("[user] shuffles \the [src]!", \
"You shuffle \the [src]!")
+
/**
* The user flips the deck, turning it into a face up/down pile, and reverses the order of the cards from top to bottom.
*/
@@ -299,7 +328,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/cardpack
name = "Trading Card Pack: Coder"
desc = "Contains six complete fuckups by the coders. Report this on github please!"
- icon = DEFAULT_TCG_DMI_ICON
+ icon = 'icons/obj/tcgmisc.dmi'
icon_state = "cardback_nt"
w_class = WEIGHT_CLASS_TINY
custom_price = PAYCHECK_ASSISTANT * 1.5 //Effectively expensive as long as you're not a very high paying job... in which case, why are you playing trading card games?
@@ -329,7 +358,6 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/cardpack/series_one
name = "Trading Card Pack: Series 1"
desc = "Contains six cards of varying rarity from the 2560 Core Set. Collect them all!"
- icon = DEFAULT_TCG_DMI_ICON
icon_state = "cardpack_series1"
series = "coreset2020"
contains_coin = 10
@@ -337,7 +365,6 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/cardpack/resin
name = "Trading Card Pack: Resin Frontier Booster Pack"
desc = "Contains six cards of varying rarity from the Resin Frontier set. Collect them all!"
- icon = 'icons/runtime/tcg/xenos.dmi'
icon_state = "cardpack_resin"
series = "resinfront"
contains_coin = 0
@@ -393,9 +420,9 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
qdel(src)
/obj/item/coin/thunderdome
- name = "Thunderdome Flipper"
- desc = "A Thunderdome TCG flipper, for deciding who gets to go first. Also conveniently acts as a counter, for various purposes."
- icon = DEFAULT_TCG_DMI_ICON
+ name = "\improper TGC Flipper"
+ desc = "A TGC flipper, for deciding who gets to go first. Also conveniently acts as a counter, for various purposes."
+ icon = 'icons/obj/tcgmisc.dmi'
icon_state = "coin_nanotrasen"
custom_materials = list(/datum/material/plastic = 400)
material_flags = NONE
@@ -416,12 +443,12 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/storage/card_binder
name = "card binder"
desc = "The perfect way to keep your collection of cards safe and valuable."
- icon = DEFAULT_TCG_DMI_ICON
+ icon = 'icons/obj/tcgmisc.dmi'
icon_state = "binder"
inhand_icon_state = "album"
lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi'
- resistance_flags = FLAMMABLE
+ resistance_flags = FLAMMABLE //burn your enemies' collections, for only you can Collect Them All!
w_class = WEIGHT_CLASS_SMALL
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
diff --git a/icons/obj/tcgmisc.dmi b/icons/obj/tcgmisc.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..c0e601d8283d05baeb0afaf7e917b321fea3fed1
GIT binary patch
literal 5583
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
G3I77122+6m
literal 0
HcmV?d00001
diff --git a/icons/runtime/tcg/default.dmi b/icons/runtime/tcg/default.dmi
index b4775570dbfaf3f96f5efa6000e67b859dae4b75..f42113f30ecb40e9ae980514bb28b973c4f46155 100644
GIT binary patch
literal 73860
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
z
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
doOFsJIs@kM+|s!gnP>(2Pv3xc}nh-z<5
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