diff --git a/code/modules/games/cah.dm b/code/modules/games/cah.dm new file mode 100644 index 0000000000..2b9286a8a3 --- /dev/null +++ b/code/modules/games/cah.dm @@ -0,0 +1,28 @@ +/obj/item/weapon/deck/cah + name = "\improper CAG deck (white)" + desc = "The ever-popular Cards Against The Galaxy word game. Warning: may include traces of broken fourth wall. This is the white deck." + icon_state = "cag_white" + var/blanks = 5 + +/obj/item/weapon/deck/cah/black + name = "\improper CAG deck (black)" + desc = "The ever-popular Cards Against The Galaxy word game. Warning: may include traces of broken fourth wall. This is the black deck." + icon_state = "cag_black" + blanks = 0 + +/obj/item/weapon/deck/cah/New() + ..() + var/datum/playingcard/P + for(var/cardtext in card_text_list) + P = new() + P.name = "[cardtext]" + P.card_icon = "[icon_state]_card" + P.back_icon = "[icon_state]_card_back" + cards += P + if(!blanks) + return + for(var/x=1 to blanks) + P = new() + P.name = "Blank Card" + P.card_icon = "[icon_state]_card_back" + P.back_icon = "[icon_state]_card_back" \ No newline at end of file diff --git a/code/modules/games/cah_black_cards.dm b/code/modules/games/cah_black_cards.dm new file mode 100644 index 0000000000..ec27fa1270 --- /dev/null +++ b/code/modules/games/cah_black_cards.dm @@ -0,0 +1,37 @@ +// Black cards. +/obj/item/weapon/deck/cah/black/card_text_list = list( + "Why am I itchy?", + "Today, Security shot ____.", + "The Chaplain this shift is worshiping _____.", + "Cargo ordered a crate full of _____.", + "An ERT was called due to ______.", + "Alert! The Captain has armed themselves with _____.", + "Current Laws: ________ is your master.", + "Current Laws: ________ is the enemy.", + "_____ vented the entirety of Cargo.", + "Today, science found an anomaly that made people ____ and ____.", + "There was a rap battle between ____ and ____.", + "Caution, ______ have been detected in collision course with the station.", + "Today's kitchen menu includes _______.", + "What did the mercenaries want when they attacked the station?", + "I think the Captain is insane. He just demanded ______ in his office.", + "Fuckin' scientists, they just turned Misc. Research into _______ .", + "What's my fetish?", + "Hello, _______ here with _______", + "No one else was at _______, they wouldn't understand the ______", + "Why am I shivering?", + "What is this world coming to? First, ________, now _______", + "NanoTrasen's labor union decided to use _______ to raise employee morale.", + "The Chemist's drug of choice is ______", + "It is common practice for _______ to ______ on Moghes.", + "Mercurial Colonies are _____.", + "The Skrell are celebrating _____ today.", + "_____ is/are why I'm afraid of the maintenance tunnels.", + "_____ used ____ to create their newest invention, _____!", + "Scientists are not allowed to make Gatling _____.", + "It's not a party until the ____ arrive.", + "No matter how many Tajara you have, _____ is never acceptable.", + "No, the AI's first law is NOT to serve _____.", + "The robots are not disposal bins for your _____.", + "You can never have too many _____ on shift.", + ) \ No newline at end of file diff --git a/code/modules/games/cah_white_cards.dm b/code/modules/games/cah_white_cards.dm new file mode 100644 index 0000000000..2ed8a494db --- /dev/null +++ b/code/modules/games/cah_white_cards.dm @@ -0,0 +1,75 @@ +// White cards. +/obj/item/weapon/deck/cah/var/list/card_text_list = list( + "Those motherfucking carp", + "Having sex in the maintenance tunnels", + "Space 'Nam", + "Space lesbians", + "The Gardener getting SUPER high", + "The Captain thinking they're a badass", + "Being in a cult", + "Racially biased lawsets", + "An Unathi who WON'T STOP FIGHTING", + "Tajara fetishists", + "Bald thirty-year-olds", + "A Chief Engineer who can't setup the engine", + "Being sucked out into space", + "Officer Beepsky", + "Engineering", + "The grey tide.", + "The Research Director", + "Fucking synths", + "Man-eating purple pod plants", + "Chemical sprayers filled with lube", + "Librarians", + "Squids", + "Cats", + "Lizards", + "Apes", + "Trees", + "Supermatter undergarments", + "Bluespace", + "Five hundred rabid spiders", + "Five hundred rabid diona nymphs", + "Cable ties", + "Rampant vending machines", + "Positronic drink coasters", + "Kitchen utensil anomalies", + "Locked lockers", + "Energy spatulas", + "Flashbang gauntlets", + "Carp", + "Space whales", + "Blu-sharks", + "Fax machines", + "Exquisite Pens", + "Dr. Maxman's male enhancements", + "Gyrating slimes", + "Forehead-mounted laser weaponry", + "Pelvis-mounted laser weaponry", + "Cardboard cutouts", + "An obscene amount of rubber ducks", + "Brain cakes", + "A drone's game of life.", + "Anomaly suits", + "A gardener smoking reishi", + "Military-grade baseball bats", + "Barricading the bar", + "An irritatingly chipper robot", + "Androids hanging out in the bar drinking beer", + "Gear harnesses", + "A seventeen-year-old Captain", + "The throbbing erection that the HoS gets at the thought of shooting something", + "Trying to stab someone and hugging them instead", + "Waking up naked in the maintenance tunnels", + "Horrible cloning accidents", + "Licking the supermatter due to a dare", + "A Quartermaster who WON'T STOP ordering guns", + "Teaching a synthetic the Birds and the Bees", + "Unnecessary surgery", + "My addiction to spiders", + "wetskrell.nt", + "DOCTOR MAXMAN!", + "A group of Skrell getting their squish on", + "Enough soporific to put the entire station down", + "Delicious Vietnamese cuisine" + ) diff --git a/code/modules/games/cardemon.dm b/code/modules/games/cardemon.dm index 647b1ff8c7..23e8d6e251 100644 --- a/code/modules/games/cardemon.dm +++ b/code/modules/games/cardemon.dm @@ -4,6 +4,7 @@ icon_state = "card_pack_cardemon" /obj/item/weapon/pack/cardemon/New() + ..() var/datum/playingcard/P var/i for(i=0; i<5; i++) diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 368bfdd9a5..1ea1a9a356 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -20,7 +20,6 @@ /obj/item/weapon/deck/cards/New() ..() - var/datum/playingcard/P for(var/suit in list("spades","clubs","diamonds","hearts")) @@ -44,7 +43,6 @@ P.back_icon = "card_back" cards += P - for(var/i = 0,i<2,i++) P = new() P.name = "joker" @@ -135,7 +133,19 @@ H.throw_at(get_step(target,target.dir),10,1,H) /obj/item/weapon/hand/attackby(obj/O as obj, mob/user as mob) - if(istype(O,/obj/item/weapon/hand)) + if(cards.len == 1 && istype(O, /obj/item/weapon/pen)) + var/datum/playingcard/P = cards[1] + if(P.name != "Blank Card") + user << "You cannot write on that card." + return + var/cardtext = sanitize(input(user, "What do you wish to write on the card?", "Card Editing") as text|null, MAX_BOOK_MESSAGE_LEN) + if(!cardtext) + return + P.name = cardtext + // SNOWFLAKE FOR CAG, REMOVE IF OTHER CARDS ARE ADDED THAT USE THIS. + P.card_icon = "cag_white_card" + update_icon() + else if(istype(O,/obj/item/weapon/hand)) var/obj/item/weapon/hand/H = O for(var/datum/playingcard/P in cards) H.cards += P @@ -214,7 +224,7 @@ if(!discarding || !to_discard[discarding] || !usr || !src) return var/datum/playingcard/card = to_discard[discarding] - qdel(to_discard) + to_discard.Cut() var/obj/item/weapon/hand/H = new(src.loc) H.cards += card @@ -238,7 +248,7 @@ if((!concealed || src.loc == user) && cards.len) user << "It contains: " for(var/datum/playingcard/P in cards) - user << "The [P.name]." + user << "\The [P.name]." /obj/item/weapon/hand/update_icon(var/direction = 0) diff --git a/code/modules/games/spaceball_cards.dm b/code/modules/games/spaceball_cards.dm index 7e289ad270..9e0bacd2be 100644 --- a/code/modules/games/spaceball_cards.dm +++ b/code/modules/games/spaceball_cards.dm @@ -4,6 +4,7 @@ icon_state = "card_pack_spaceball" /obj/item/weapon/pack/spaceball/New() + ..() var/datum/playingcard/P var/i var/year = 554 + text2num(time2text(world.timeofday, "YYYY")) diff --git a/code/modules/games/tarot.dm b/code/modules/games/tarot.dm index b8e8618af0..f5727a0c43 100644 --- a/code/modules/games/tarot.dm +++ b/code/modules/games/tarot.dm @@ -17,8 +17,6 @@ P.back_icon = "card_back_tarot" cards += P for(var/suit in list("wands","pentacles","cups","swords")) - - for(var/number in list("ace","two","three","four","five","six","seven","eight","nine","ten","page","knight","queen","king")) P = new() P.name = "[number] of [suit]" diff --git a/icons/obj/playing_cards.dmi b/icons/obj/playing_cards.dmi index a5fa632cb3..04239be49d 100644 Binary files a/icons/obj/playing_cards.dmi and b/icons/obj/playing_cards.dmi differ diff --git a/polaris.dme b/polaris.dme index d29063995c..72db1bfb64 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1154,6 +1154,9 @@ #include "code\modules\flufftext\Hallucination.dm" #include "code\modules\flufftext\TextFilters.dm" #include "code\modules\food\recipes_microwave.dm" +#include "code\modules\games\cah.dm" +#include "code\modules\games\cah_black_cards.dm" +#include "code\modules\games\cah_white_cards.dm" #include "code\modules\games\cardemon.dm" #include "code\modules\games\cards.dm" #include "code\modules\games\spaceball_cards.dm"