Files
Paradise/code/modules/games/tarot.dm
Luc 8da12bc5e2 Makes playing cards playable -- significantly reworks card interactions (#26585)
* Basic card interactions

* initial interactions sorted

* nails down some interactions, radial menu

* Some more qol and keybind changes

* improves card interactions

* Unum decks can be flipped, showing the top card

* Decks can now be split and recombined

* minor tweaks to multi-deck stuff

* Clean up a bunch of interactions

* more cleanups

* more cleanups and documentation

* remote attacking looks pretty good

* minor cleanups

* ci

* parser errs

* Remove some debug things, re-add signal after merge

* Adds a whole bunch more qol.

* Improves examine messages

* ci

* concealed cards will now show properly in radial

* Fixes some weird proximity monitor and control issues

* Address reviews, clean up examine a bit more

* radial fixes

* remove todos

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>

* better documentation, adds label of who did what

* b etter grammar

* augh

* missing icon state

* Update code/game/gamemodes/wizard/magic_tarot.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>

* Add sleep on proximity monitor setup to hopefully avoid mapload issues

* been writing too much c lately

* Try late initialize

* late init

* 🧌

* map load

---------

Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
2024-11-29 19:12:15 +00:00

36 lines
1.4 KiB
Plaintext

/* this is a playing card deck based off of the Rider-Waite Tarot Deck.
*/
/obj/item/deck/tarot
name = "deck of tarot cards"
desc = "For all your occult needs!"
icon_state = "deck_tarot"
/obj/item/deck/tarot/build_deck()
for(var/tarotname in list("Fool","Magician","High Priestess","Empress","Emperor","Hierophant","Lovers","Chariot","Strength","Hermit","Wheel of Fortune","Justice","Hanged Man","Death","Temperance","Devil","Tower","Star","Moon","Sun","Judgement","World"))
cards += new /datum/playingcard("[tarotname]", "tarot_major", "card_back_tarot")
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"))
cards += new /datum/playingcard("[number] of [suit]", "tarot_[suit]", "card_back_tarot")
/obj/item/deck/tarot/deckshuffle()
var/mob/living/user = usr
if(shuffle_cooldown < world.time - 1 SECONDS)
var/list/newcards = list()
while(length(cards))
var/datum/playingcard/P = pick(cards)
P.name = replacetext(P.name," reversed","")
if(prob(50))
P.name += " reversed"
newcards += P
cards -= P
cards = newcards
playsound(user, 'sound/items/cardshuffle.ogg', 50, TRUE)
user.visible_message(
"<span class='notice'>[user] shuffles [src].</span>",
"<span class='notice'>You shuffle [src].</span>",
"<span class='notice'>You hear cards being shuffled.</span>"
)
shuffle_cooldown = world.time