diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 62949b45a8..798f1d3a6a 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -466,6 +466,7 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ new/datum/stack_recipe("folder", /obj/item/folder), \ + new/datum/stack_recipe("cardboard card", /obj/item/cardboard_card, 1), \ // holy fuck why are there so many boxes new/datum/stack_recipe_list("fancy boxes", list ( \ new /datum/stack_recipe("donut box", /obj/item/storage/fancy/donut_box), \ diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 90f570e4d1..ba7f9a30d5 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2663,3 +2663,32 @@ M.SetSleeping(0, 0) ..() +//Nerdy card reagents + +/datum/reagent/card_powder + var/rarity = "Stoopid" + +/datum/reagent/card_powder/blue + name = "Blue Card Powder" + rarity = "Rare" + color = "#00B7EF" // blue + +/datum/reagent/card_powder/purple + name = "Purple Card Powder" + rarity = "Epic" + color = "#DA00FF" // purple + +/datum/reagent/card_powder/yellow + name = "Yellow Crayon Powder" + rarity = "Legendary" + color = "#FFF200" // yellow + +/datum/reagent/card_powder/green + name = "Green Crayon Powder" + rarity = "Common" + color = "#A8E61D" // green + +/datum/reagent/card_powder/black + name = "Black Crayon Powder" + rarity = "Exodia" + color = "#1C1C1C" // not quite black diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 019394e3c8..93a422e2f2 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -881,3 +881,29 @@ results = list(/datum/reagent/carbon = 1) required_reagents = list(/datum/reagent/cellulose = 1) required_temp = 512 + +//Nerdy card shit + +/datum/chemical_reaction/card_powder/blue + name = "Blue Card Powder" + id = /datum/reagent/card_powder/blue + results = list(/datum/reagent/card_powder/blue = 1) + required_reagents = list(/datum/reagent/card_powder/green = 12) + +/datum/chemical_reaction/card_powder/purple + name = "Purple Card Powder" + id = /datum/reagent/card_powder/purple + results = list(/datum/reagent/card_powder/purple = 1) + required_reagents = list(/datum/reagent/card_powder/blue = 12) + +/datum/chemical_reaction/card_powder/yellow + name = "Yellow Card Powder" + id = /datum/reagent/card_powder/yellow + results = list(/datum/reagent/card_powder/yellow = 1) + required_reagents = list(/datum/reagent/card_powder/purple = 12) + +/datum/chemical_reaction/card_powder/black + name = "Black Card Powder" + id = /datum/reagent/card_powder/black + results = list(/datum/reagent/card_powder/black = 1) + required_reagents = list(/datum/reagent/card_powder/yellow = 12) diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm index 3375f90be1..17408d4f71 100644 --- a/code/modules/tcg/cards.dm +++ b/code/modules/tcg/cards.dm @@ -1,6 +1,8 @@ #define TAPPED_ANGLE 90 #define UNTAPPED_ANGLE 0 +#define COMMON_SERIES list(/datum/tcg_card/pack_1, /datum/tcg_card/exodia) //So star cards don't drop + /datum/tcg_card var/name = "Stupid Coder" var/desc = "A coder that fucked up this card. Report if you see this." @@ -119,6 +121,18 @@ desc = card_datum.desc illegal = illegal_card + switch(card_datum.rarity) + if("Common") + grind_results = list(/datum/reagent/card_powder/green = 1) + if("Rare") + grind_results = list(/datum/reagent/card_powder/blue = 1) + if("Epic") + grind_results = list(/datum/reagent/card_powder/purple = 1) + if("Legendary") + grind_results = list(/datum/reagent/card_powder/yellow = 1) + if("Exodia") + grind_results = list(/datum/reagent/card_powder/black = 1) + /obj/item/tcg_card/attack_hand(mob/user) var/list/possible_actions = list( "Pick Up" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_pickup"), @@ -674,5 +688,27 @@ A direct attack healths as follows: The attacking unit declares an attack against the opponent's lifeshards. Your opponent may then declare a defender if one is available, who will then turn the combat into an attack against a unit for the purposes of combat that turn. If the attack is not blocked, and the direct attack connects, then your opponent loses a number of lifeshards equal to the attacking units power. " +/obj/item/cardboard_card + name = "cardboard card cutout" + desc = "A small piece of cardboard shaped as a TCG card." + icon = 'icons/obj/tcg/misc.dmi' + icon_state = "template" + +/datum/reagent/card_powder/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/cardboard_card)) + qdel(O) + var/list/possible_cards = list() + for(var/card_series in COMMON_SERIES) + for(var/card_type in subtypesof(card_series)) + var/datum/tcg_card/card = new card_type + if(card.rarity == rarity) + possible_cards.Add(card_type) + qdel(card) + if(length(possible_cards)) + new /obj/item/tcg_card(get_turf(O), pick(possible_cards), TRUE) + + . = ..() + +#undef COMMON_SERIES #undef TAPPED_ANGLE #undef UNTAPPED_ANGLE