Adds unique ruin cards and Exodia cards)

This commit is contained in:
SmArtKar
2021-02-04 16:42:55 +03:00
parent 41d6ab6b07
commit 348f57968f
19 changed files with 413 additions and 22 deletions

View File

@@ -139,6 +139,7 @@
dir = 4;
name = "shrine of the liberator"
},
/obj/item/tcg_card/special/golem,
/turf/open/floor/mineral/titanium/purple,
/area/ruin/powered/golem_ship)
"v" = (

View File

@@ -14,6 +14,10 @@
},
/turf/open/floor/plating/beach/sand,
/area/icemoon/surface/outdoors)
"l" = (
/obj/item/tcg_card/special/morph,
/turf/open/floor/plating/beach/sand,
/area/icemoon/surface/outdoors)
"I" = (
/turf/closed/indestructible/fakeglass,
/area/icemoon/surface/outdoors)
@@ -72,7 +76,7 @@ L
c
c
c
U
l
U
a
b

View File

@@ -20,6 +20,10 @@
},
/turf/open/floor/mineral/diamond,
/area/icemoon/surface/outdoors)
"f" = (
/obj/item/tcg_card/special/xenomaid,
/turf/open/floor/mineral/diamond,
/area/icemoon/surface/outdoors)
(1,1,1) = {"
a
@@ -65,7 +69,7 @@ a
a
a
b
c
f
c
c
b

View File

@@ -49,6 +49,7 @@
/area/ruin/unpowered)
"k" = (
/obj/structure/closet/crate/freezer,
/obj/item/tcg_card/special/demonic_miner,
/turf/open/floor/wood,
/area/ruin/unpowered)
"l" = (

View File

@@ -31,6 +31,10 @@
"N" = (
/turf/open/indestructible/necropolis/ice,
/area/icemoon/underground/explored)
"S" = (
/obj/item/tcg_card/special/wendigo,
/turf/open/indestructible/necropolis/ice,
/area/icemoon/underground/explored)
"U" = (
/obj/item/paper/crumpled/bloody{
info = "for your own sake, do not enter"
@@ -451,7 +455,7 @@ a
N
N
N
N
S
N
N
N

View File

@@ -862,6 +862,7 @@
/obj/structure/disposalpipe/segment{
dir = 10
},
/obj/item/tcg_card/special/honk,
/turf/open/floor/plating,
/area/ruin/powered/clownplanet)
"bF" = (

View File

@@ -155,6 +155,12 @@
/obj/item/stack/tile/brass/fifty,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/unexplored)
"Y" = (
/obj/item/tcg_card/special/ratvar,
/turf/open/floor/clockwork{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/lavaland/surface/outdoors/unexplored)
(1,1,1) = {"
a
@@ -484,7 +490,7 @@ h
h
h
h
h
Y
h
l
l
@@ -709,7 +715,7 @@ b
l
l
b
h
Y
h
t
b

View File

@@ -26,6 +26,10 @@
},
/turf/open/indestructible/hierophant/two,
/area/ruin/unpowered/hierophant)
"s" = (
/obj/item/tcg_card/special/hierophant,
/turf/open/indestructible/hierophant,
/area/ruin/unpowered/hierophant)
(1,1,1) = {"
a
@@ -494,7 +498,7 @@ b
b
b
c
b
s
a
a
b

View File

@@ -11,6 +11,13 @@
"d" = (
/turf/closed/wall/mineral/abductor,
/area/ruin/unpowered)
"h" = (
/obj/structure/closet/abductor,
/obj/item/tcg_card/special/abductor,
/turf/open/floor/plating/abductor{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"j" = (
/obj/machinery/abductor/experiment{
team_number = 100
@@ -188,7 +195,7 @@ a
a
c
d
q
h
t
q
d

View File

@@ -567,6 +567,7 @@
"bm" = (
/obj/structure/closet/wardrobe/science_white,
/obj/structure/disposalpipe/segment,
/obj/item/tcg_card/special/space_carp,
/turf/open/floor/plasteel{
icon_state = "dark"
},

View File

@@ -16,8 +16,8 @@
/area/template_noop)
"ae" = (
/obj/structure/fluff/broken_flooring{
icon_state = "plating";
dir = 4
dir = 4;
icon_state = "plating"
},
/turf/template_noop,
/area/template_noop)
@@ -66,8 +66,8 @@
"an" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
icon_state = "plating";
dir = 4
dir = 4;
icon_state = "plating"
},
/turf/template_noop,
/area/template_noop)
@@ -78,8 +78,8 @@
"ap" = (
/obj/structure/lattice,
/obj/structure/fluff/broken_flooring{
icon_state = "pile";
dir = 8
dir = 8;
icon_state = "pile"
},
/turf/template_noop,
/area/template_noop)
@@ -133,8 +133,8 @@
/area/template_noop)
"aE" = (
/obj/structure/fluff/broken_flooring{
icon_state = "pile";
dir = 4
dir = 4;
icon_state = "pile"
},
/turf/template_noop,
/area/template_noop)
@@ -1054,6 +1054,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/secure/weapon,
/obj/item/gun/ballistic/automatic/pistol/APS,
/obj/item/tcg_card/special/spess_pirate,
/turf/open/floor/plasteel/airless/dark,
/area/shuttle/caravan/freighter2)
"js" = (

View File

@@ -91,6 +91,10 @@
},
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space/has_grav)
"Y" = (
/obj/item/tcg_card/special/gondola,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space/has_grav)
(1,1,1) = {"
a
@@ -339,7 +343,7 @@ b
c
c
c
c
Y
o
c
r

View File

@@ -19,6 +19,7 @@
/area/ruin/space/has_grav/powered/mechtransport)
"g" = (
/obj/structure/closet/crate/secure/loot,
/obj/item/tcg_card/special/phazon,
/turf/open/floor/mineral/titanium/blue,
/area/ruin/space/has_grav/powered/mechtransport)
"h" = (

View File

@@ -500,6 +500,7 @@ SUBSYSTEM_DEF(job)
var/obj/item/tcg_card/card = new(get_turf(H), card_type)
card.forceMove(binder)
binder.cards.Add(card)
binder.check_for_exodia()
else
if(H && N.client.prefs && length(N.client.prefs.tcg_cards))
var/obj/item/tcgcard_binder/binder = new(get_turf(H))

View File

@@ -72,8 +72,12 @@
w_class = WEIGHT_CLASS_TINY
var/flipped = TRUE
var/flipped = FALSE
var/tapped = FALSE
var/special = FALSE
/obj/item/tcg_card/special
special = TRUE
/obj/item/tcg_card/examine(mob/user)
. = ..()
@@ -101,9 +105,11 @@
/obj/item/tcg_card/New(loc, new_datum)
. = ..()
datum_type = new_datum
if(!special)
datum_type = new_datum
card_datum = new datum_type
icon = card_datum.pack
icon_state = card_datum.icon_state
/obj/item/tcg_card/attack_hand(mob/user)
var/list/possible_actions = list(
@@ -468,6 +474,7 @@
icon_state = "binder"
var/list/cards = list()
var/mode = 0 //If 1, will show all the cards even if you don't have em
/obj/item/tcgcard_binder/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/tcg_card))
@@ -476,15 +483,57 @@
cards.Add(card)
. = ..()
/obj/item/tcgcard_binder/attack_self(mob/living/carbon/user)
mode = !mode
to_chat(user, "<span class='notice'>[src] now shows you [mode ? "all the different cards" : "the cards you already have"].")
/obj/item/tcgcard_binder/attack_hand(mob/living/carbon/user)
if(loc == user)
var/list/choices = list()
for(var/obj/item/tcg_card/card in cards)
choices[card] = image(icon = card.icon, icon_state = card.icon_state)
if(mode)
var/card_types = list()
for(var/obj/item/tcg_card/card in cards)
card_types[card.datum_type] = card
for(var/card_type in subtypesof(/datum/tcg_card))
if(card_type in card_types)
choices[card_types[card_type]] = image(icon = card_types[card_type].icon, icon_state = card_types[card_type].icon_state)
continue
var/datum/tcg_card/card_dat = new card_type
if(card_dat.name == "Stupid Coder")
continue
var/image/I = image(icon = card_dat.pack, icon_state = card_dat.icon_state)
I.color = "#999999"
choices[card_dat.name] = I
qdel(card_dat)
else
for(var/obj/item/tcg_card/card in cards)
choices[card] = image(icon = card.icon, icon_state = card.icon_state)
var/obj/item/tcg_card/choice = show_radial_menu(user, src, choices, require_near = TRUE, tooltips = TRUE)
if(choice)
if(choice && choice in cards)
choice.forceMove(get_turf(src))
user.put_in_hands(choice)
cards.Remove(choice)
return
if(choice)
return
. = ..()
/obj/item/tcgcard_binder/proc/check_for_exodia()
var/list/card_types = list()
for(var/obj/item/tcg_card/card in cards)
card_types.Add(card.datum_type)
for(var/card_type in subtypesof(/datum/tcg_card))
var/datum/tcg_card/card_dat = new card_type
if(card_dat.name == "Stupid Coder" || card_dat.name == "Eldritch Horror") //It would be stupid if we require exodia or system cards to get exodia
continue
qdel(card_dat)
if(!(card_type in card_types))
return
var/obj/item/tcg_card/card = new(get_turf(src), /datum/tcg_card/pack_star/exodia)
card.forceMove(src)
cards.Add(card)

View File

@@ -0,0 +1,301 @@
/datum/tcg_card/pack_star
pack = 'icons/obj/tcg/pack_star.dmi'
/datum/tcg_card/pack_star/golem
name = "Adamantine Golem"
desc = "An adamantine golem, immune to magic and being able to coordinate other golems, has a great power in combat."
rules = "Holy. Taunt."
icon_state = "captain"
mana_cost = 4
attack = 4
health = 5
faction = "Unique"
rarity = "Rare"
card_type = "Unit"
/obj/item/tcg_card/special/golem
datum_type = /datum/tcg_card/pack_star/golem
/datum/tcg_card/pack_star/xenomaid
name = "Lusty Xenomorph Maid"
desc = "Just a lusty xenomorph maid, nothing to see here."
rules = "Blocker. Each turn, gain -1/-1."
icon_state = "xenomaid"
mana_cost = 3
attack = 6
health = 6
faction = "Unique"
rarity = "Epic"
card_type = "Unit"
/obj/item/tcg_card/special/xenomaid
datum_type = /datum/tcg_card/pack_star/xenomaid
/datum/tcg_card/pack_star/morph
name = "Morph"
desc = "A revolting, pulsating pile of flesh that can mimic everything it sees."
rules = "On summon: Copy stats of an opponent's card."
icon_state = "morph"
mana_cost = 4
attack = 0
health = 1
faction = "Unique"
rarity = "Common"
card_type = "Unit"
/obj/item/tcg_card/special/morph
datum_type = /datum/tcg_card/pack_star/morph
/datum/tcg_card/pack_star/demonic_miner
name = "Demonic Miner"
desc = "An soul of extremely geared miner, driven crazy or possessed by the demonic forces here, either way a terrifying enemy."
rules = "Each turn: Deal 1 damage to all the creatures on the field."
icon_state = "demonic_miner"
mana_cost = 4
attack = 4
health = 5
faction = "Unique"
rarity = "Rare"
card_type = "Unit"
/obj/item/tcg_card/special/demonic_miner
datum_type = /datum/tcg_card/pack_star/demonic_miner
/datum/tcg_card/pack_star/wendigo
name = "Wendigo"
desc = "A mythological man-eating legendary creature, you probably aren't going to survive this."
rules = ""
icon_state = "wendigo"
mana_cost = 5
attack = 6
health = 3
faction = "Unique"
rarity = "Common"
card_type = "Unit"
/obj/item/tcg_card/special/wendigo
datum_type = /datum/tcg_card/pack_star/wendigo
/datum/tcg_card/pack_star/honk
name = "H.O.N.K. Mech"
desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!"
rules = "Taunt."
icon_state = "honk"
mana_cost = 8
attack = 6
health = 8
faction = "Unique"
rarity = "Epic"
card_type = "Unit"
/obj/item/tcg_card/special/honk
datum_type = /datum/tcg_card/pack_star/honk
/datum/tcg_card/pack_star/ratvar
name = "Clockwork Slab"
desc = "A link between clockwork servants and the Celestial Derelict. It contains information, recites scripture, and is Servant's most vital tool."
rules = "Equipped unit gains Clockwork and can't attack units with Holy."
icon_state = "ratvar"
mana_cost = 2
attack = 3
health = 0
faction = "Unique"
rarity = "Common"
card_type = "Equipment"
/obj/item/tcg_card/special/ratvar
datum_type = /datum/tcg_card/pack_star/ratvar
/datum/tcg_card/pack_star/hierophant
name = "Hierophant Club"
desc = "The strange technology of this large club allows various nigh-magical feats. It used to beat you, but now you can set the beat."
rules = "Lower all damage equipped unit recieves by 1. Give equipped unit First Strike."
icon_state = "hierophant"
mana_cost = 5
attack = 2
health = 0
faction = "Unique"
rarity = "Rare"
card_type = "Equipment"
/obj/item/tcg_card/special/hierophant
datum_type = /datum/tcg_card/pack_star/hierophant
/datum/tcg_card/pack_star/abductor
name = "Alien Gland"
desc = "A nausea-inducing hunk of twisting flesh and metal. These things are often found after people were abducted by grey-skinned aliens."
rules = "Each turn: Flip a coin. If heads, unit gain +1/+2. If tails, unit gains -2/-1."
icon_state = "abductor"
mana_cost = 2
attack = 0
health = 0
faction = "Unique"
rarity = "Common"
card_type = "Equipment"
/obj/item/tcg_card/special/abductor
datum_type = /datum/tcg_card/pack_star/abductor
/datum/tcg_card/pack_star/space_carp
name = "Space Carp"
desc = "A failed weaponery experiment, looking like a ferocious, fang-bearing creature that resembles a fish."
rules = ""
icon_state = "space_carp"
mana_cost = 1
attack = 2
health = 2
faction = "Unique"
rarity = "Common"
card_type = "Unit"
/obj/item/tcg_card/special/space_carp
datum_type = /datum/tcg_card/pack_star/space_carp
/datum/tcg_card/pack_star/spess_pirate
name = "Space Pirate"
desc = "Space Pirate does whatever he wants because he is free. Sadly, Space Rum insn't free."
rules = "On summon: Draw 2 cards. If there are no spells, discard them."
icon_state = "spess_pirate"
mana_cost = 4
attack = 3
health = 2
faction = "Unique"
rarity = "Rare"
card_type = "Unit"
/obj/item/tcg_card/special/spess_pirate
datum_type = /datum/tcg_card/pack_star/spess_pirate
/datum/tcg_card/pack_star/gondola
name = "Gondola"
desc = "Gondola is the silent walker. Having no hands he embodies the Taoist principle of wu-wei (non-action) while his smiling facial expression shows his utter and complete acceptance of the world as it is. Its hide is extremely valuable."
rules = "Taunt. Holy."
icon_state = "gondola"
mana_cost = 6
attack = 0
health = 9
faction = "Unique"
rarity = "Epic"
card_type = "Unit"
/obj/item/tcg_card/special/gondola
datum_type = /datum/tcg_card/pack_star/gondola
/datum/tcg_card/pack_star/phazon
name = "Phazon"
desc = "The pinnacle of scientific research and pride of Nanotrasen, Phazon uses cutting edge bluespace technology and expensive materials."
rules = "Whenever this unit takes damage, flip a coin. If heads, take no damage. If tails, take double damage."
icon_state = "phazon"
mana_cost = 8
attack = 5
health = 7
faction = "Unique"
rarity = "Rare"
card_type = "Unit"
/obj/item/tcg_card/special/phazon
datum_type = /datum/tcg_card/pack_star/phazon
//Ultimate Exodia cards. I really, really doubt that someone will ever find them.
/datum/tcg_card/pack_star/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."
icon_state = "exodia_singularity"
mana_cost = 8
faction = "Exodia"
rarity = "Legendary"
card_type = "Spell"
/datum/tcg_card/pack_star/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."
icon_state = "exodia_tesla"
mana_cost = 8
faction = "Exodia"
rarity = "Legendary"
card_type = "Spell"
/datum/tcg_card/pack_star/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 ."
icon_state = "exodia_narie"
mana_cost = 8
faction = "Exodia"
rarity = "Legendary"
card_type = "Spell"
/datum/tcg_card/pack_star/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."
icon_state = "exodia_ratvar"
mana_cost = 8
faction = "Exodia"
rarity = "Legendary"
card_type = "Spell"
/datum/tcg_card/pack_star/exodia
name = "Eldritch Horror"
desc = "The Eldritch Horror is a long forgotten demon that was the beginning of everything. Afterwards, his creations revolted and left him abadoned in endless void."
rules = "This card doesn't leave field. If all other 4 Exodia cards are on the field(Singularity, Energy Orb, Nar-Sie and Ratvar), the game is won."
icon_state = "exodia_eldritch"
mana_cost = 8
faction = "Exodia"
rarity = "Legendary"
card_type = "Spell"
/obj/item/tcg_card/special/exodia_singulo
datum_type = /datum/tcg_card/pack_star/exodia_singulo
/obj/item/tcg_card/special/exodia_tesla
datum_type = /datum/tcg_card/pack_star/exodia_tesla
/obj/item/tcg_card/special/exodia_narie
datum_type = /datum/tcg_card/pack_star/exodia_narie
/obj/item/tcg_card/special/exodia_ratvar
datum_type = /datum/tcg_card/pack_star/exodia_ratvar
/obj/item/tcg_card/special/exodia
datum_type = /datum/tcg_card/pack_star/exodia

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

BIN
icons/obj/tcg/pack_star.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -3493,6 +3493,7 @@
#include "code\modules\surgery\organs\vocal_cords.dm"
#include "code\modules\tcg\cards.dm"
#include "code\modules\tcg\pack_1.dm"
#include "code\modules\tcg\pack_star.dm"
#include "code\modules\tgchat\message.dm"
#include "code\modules\tgchat\to_chat.dm"
#include "code\modules\tgs\includes.dm"