From 2cd339f77656908105fbf26d4cf9aaefde00766f Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Thu, 4 Feb 2021 18:57:00 +0300 Subject: [PATCH] Adds Card Ops bundle --- .../game/objects/items/storage/uplink_kits.dm | 4 ++ code/modules/cargo/packs/costumes_toys.dm | 8 +++- code/modules/tcg/cards.dm | 41 +++++++++++++++--- code/modules/tcg/pack_star.dm | 27 +++++++----- .../uplink/uplink_items/uplink_badass.dm | 8 ++++ icons/obj/tcg/misc.dmi | Bin 5068 -> 5212 bytes 6 files changed, 70 insertions(+), 18 deletions(-) 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 51ed6e2cf36233db50d59c059a801f87a7760526..2844ec5d0afbace62742401ebc347de6656f451e 100644 GIT binary patch delta 4686 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 B#<>6h delta 4502 zcmbW22T)U6x5v*(AfbdJU1<>uTv57!N=YapBE`Z*loGippqCmtAqhmJDj*6NQ;1|fPw;o^w2^J1nC6G3%>X6yf^dS%s1be`Ja7eueJBAvu6K)dqAa4xfB8+ zY=&RD9B6hO`$vG6U!a$-4*-N_*FLDXfodX}8Lb!1m-j^t78yt58TRb&$1MWI&iaMC$Q<#P z9+z_m7tPh0)}WHLc6S>eSk0V1?i@WtAg_pYJhoKt>GBe=dk z^8m@hzSg$^L-W=l$V~a!cm&E>-g5CWT;Y!6yyOq-+9~O_)9#J5^J4DpK{$mUd9NHB zeJ89f^sm=$V_OU5wyez0_yE;p=HXBzfAi^diTESU{ZLch`mR~#%<}#ks3&3{;m-E^ zha3P9EwMC1Ukc4;=ERfb%q2f~M671IC(8*&!*3Y8R*g4_KES7{T8g<8{p5*?K3*{w`=c(cLzD2jf@!ie~6}0;}*PwcQJ(Zd}R6OM3t9!++fE7oN zJdW}%fjwh8K+Cos0EV2KfIp7#5SUqS1>Gahf&vT2iZk!2AAMdtzuzs?RnV^Q7HD5b z;Z?y|3fWcdqxc^}F}i_h2Z#h*D&xbIHqOOYEVmVoR4XCPr@pB8b!;4cJI-skVu`oV zFhemjLrCTnMhi1Xy9A3v2fJt@Luj6;dD=N4zClVcSOvAGZeOFq2!Vsh_rxwR5u7I1 zXi=E3=dfNFeNpl1b>afdYxjGrJx2@hPVpgni+miwR&=59#qP)MFEk1aBgG{P%9hztcy_4r(nIu^1#>coYb#Sn9f zNGWq*!+Fot#-cN0PorRL#uPyR9Kc<+yL9OSYJWJiA!~%CjSLj#ZnGzq#GYUL9}H>x#R4gC`9Id zUpKg0hlE@zQKl`{~6x0!(vQd>pJHtZ_Jn0GA0un!X3wNIm*Nl+iJD@qoH@Ai~5?iINIO;<)7wNq}y4f6L{freG@_goPeoq6NYM z@vVQ2iHr9#w%>^{wF*SRPYjX-Y}P0jB3{EEuC|xy$R$guH2? zT!@-}Y#M`3&B-W4edCt`b<`mUoETpZZ8H!oW$DnG(*V^HszcT&!q54@MEl;P z$vYwDmGhK5^FI}&{0a#;JbxVepsi9D|J)G=s1B89s%9UGbryJ^fiOMipKmRqSs?2l z5ck`zus7qL`?GQsj;fgrfvQd~T<#|*J>3p^Wf zjMCyz2E>#UgWQse2O49&CF@=nFSc;w%J|1O%4>IC-xqMb)`#8jmvg~5K>K_|YiQQ8 zBh_dYBwq-{^-JjjOvjr$>8(fWMutXJ`w$Tgx!BOC_kbqQLg$r&HUTQJ(w7mU1So~O zg(eC?4EW#Cg)sekS50KbBGCVtuHC3_bb^#{fYM%?{wwbZ(D{-j3LOZ24ixYw1^Z~k z6GPX{YHaaPJHXF=M?42|M1(b+b=OGOut8msc{o0OR}2 zxXGPh<+OJp6}f1|9UyknrYvyT ze=Q|1a`=nGqgCogV>_!OLbL|uc~6(m1sD$Nggx|Gp0;}6XTdcJ7fSL3eQy5^)@lT+ zcM?Q7VgCY?{%sCzTppnye*Q&7?;ZamsslH)knpjojo`bsy3Ga@G@Ufh_}bR1KJhds z?~lBLWjc`Pfg(pL>CSrwgqtXi{*Bd2P9aEG_vr3#cC>{yvG7f0>X4~zY4Fb0VX$!P z1K2#)3T^v9=Dj?V2Gi+;b{O*I)JKT0wBJ!(M@P8#g5I+L<{`Dbhqu%}{o{PXf78f% z=q|#vZT$40M$-c$l~mJn)2GRDZfCRQ+`jSM*bHo9)$ODBa9I-el*e=9H!yss8yHvd%J}lpM zW|EmNNSv%{0wmgxUv^PAdKKY!{9{dIAlPBhgQTV;f(Cltiq3#eyQH+r3Ckdj$$N%P z{~31J*4Af~3zFeQ-*CZQ*p7njB!Z!lZHH(89)aG>9GAOe-TzqTQNWLYd*Ot~Fp8>U8u z`(IFZ|hw9S-WGCDXz^&^`3AoB))2b#6Gr{jpxm3-u#{s`?iJAP%S{Q5xC_w>i|=CZPddp7yl6@xqnVFOzF_^mf% zKlBuZFz|P;=C-b4U-(CAvMYwTL4+0*rVD+k=zb5Gu_`1IeYZ7S-0x362`G$|mM)?d zKSw$^JXE|F5pDOw2Oc^G{ilAcY|h2FQan*$;rPWHiH9T?>G zepNu|@#~!XFsG{-ObaFZ_$rn)hoCEd%tu#x{3bg)ErY4C4vduQye{9WoGyGXnG?Gy zM>DXBuSSLQYYi#CHArUF|Q@D!&UUiV>eMznBBC+2E@1kFYc=Cr&+~q})qDfJZJco8 zct>&78DGv~YqAR-#~H2q+ZH#LWs9F3t*AE@ZfLUz^VvLsOO?AaIW|00ztuaj&D`Fm zUmUJo9*;@Ps9U>qmx=9cH$TlxdNWqCe%h0;zPv_YwTTdx19J%dcEOufAD?=VBk+t3 zM(*Iy&=6Fn=de)ZIm%O#9ZJ=DIlk_jkGNtTM z*2o0O0l(BgOsM_IHl|z@u*zR{?3hXwgu~$k+=^|<&W1X{yhtMbw3kSn#Rw@w_@{E` z)Psg^^FBD~vg&FA>$MEf>(y-?L z^Xvwli;a!_9ltWued4-Up>T3g6d7UzrVt`V5FdGrQ>JvpsW$Bh73# z6zRSKvHRNL1NE6+_xAD@K85yD(U$O(TXxt43*x22@X