Adds magic tarot cards [SERIOUS DO NOT CLOSE AFTER AFD] (#24933)

* starts it

* Update magic_tarot.dm

* MORE PROGRESS

* So many thanks to Cloudbucket, for sprites

* The Work, the Art, continues.

* more changes

* pushes the Work foward. All cards done.

* and more thanks github

* adds to BSH

* tochat

* Finishes QWERTYTODO. Magic key. World smoke

* Isaac and his mother lived alone in a small house on a hill.  Isaac kept to himself, drawing pictures and playing with his toys as his mom watched Christian broadcasts on the television.  Life was simple, and they were both happy. That was, until the day Isaac’s mom heard a voice from above.  “Your son has become corrupted by sin. He needs to be saved.”  “I will do my best to save him, my Lord,” Isaac’s mother replied, rushing into Isaac’s room, removing all that was evil from his life.  Again the voice called to her, "Isaac’s soul is still corrupt. He needs to be cut off from all that is evil in this world and confess his sins."  “I will follow your instructions, Lord. I have faith in thee,” Isaac’s mother replied, as she locked Isaac in his room, away from the evils of the world.  One last time, Isaac’s mom heard the voice of God calling to her.  “You've done as I've asked, but I still question your devotion to me. To prove your faith, I will ask one more thing of you."  "Yes Lord, anything!” Isaac’s mother begged.  "To prove your love and devotion, I require a sacrifice. Your son, Isaac, will be this sacrifice. Go into his room and end his life, as an offering to me to prove you love me above all else."  "Yes Lord", she replied, grabbing a butcher’s knife from the kitchen.  Isaac, watching through a crack in his door, trembled in fear.  Scrambling around his room to find a hiding place, he noticed a trap door to the basement hidden under his rug.  Without hesitation, he flung open the hatch, just as his mother burst through his door, and threw himself down into the unknown depths below.

* nanny bag it before I forget

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* returns early

* Apply suggestions from code review

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

* RE-RE-RE-REVIEW

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: synthtee <127706731+SynthTwo@users.noreply.github.com>

* requested changes and such

* duh

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* returns early

* Update code/datums/status_effects/buffs.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* new hrefs here to troll CI :trollface:

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

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>

---------

Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: synthtee <127706731+SynthTwo@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2024-04-24 19:10:46 -04:00
committed by GitHub
parent 69d6a8df21
commit af5d187014
25 changed files with 1154 additions and 13 deletions
+101 -4
View File
@@ -62,6 +62,11 @@
id = "shadow_mend"
duration = 3 SECONDS
alert_type = /atom/movable/screen/alert/status_effect/shadow_mend
/// If this is true, the status effect will try to apply the debuff to others, rather than the user
var/devil = FALSE
/datum/status_effect/shadow_mend/devil
devil = TRUE
/atom/movable/screen/alert/status_effect/shadow_mend
name = "Shadow Mend"
@@ -78,10 +83,25 @@
owner.adjustFireLoss(-15)
/datum/status_effect/shadow_mend/on_remove()
owner.visible_message("<span class='warning'>The violet light around [owner] glows black!</span>", "<span class='warning'>The tendrils around you cinch tightly and reap their toll...</span>")
playsound(owner, 'sound/magic/teleport_diss.ogg', 50, 1)
owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE)
if(!devil)
owner.visible_message("<span class='warning'>The violet light around [owner] glows black!</span>", "<span class='warning'>The tendrils around you cinch tightly and reap their toll...</span>")
playsound(owner, 'sound/magic/teleport_diss.ogg', 50, TRUE)
owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE)
return
var/found_someone = FALSE
for(var/mob/living/L in oview(9, owner))
found_someone = TRUE
playsound(owner, 'sound/magic/teleport_diss.ogg', 50, TRUE)
L.Beam(owner, "grabber_beam", time = 1 SECONDS, maxdistance = 9)
L.apply_status_effect(STATUS_EFFECT_VOID_PRICE)
if(found_someone)
owner.visible_message("<span class='warning'>The violet light around [owner] glows black... and shoots off to those around [owner.p_them()]!</span>", "<span class='warning'>The tendrils around you cinch tightly... but then unwravel and fly at others!</span>")
else
owner.visible_message("<span class='warning'>The violet light around [owner] glows black!</span>", "<span class='warning'>The tendrils around you cinch tightly and reap their toll...</span>")
playsound(owner, 'sound/magic/teleport_diss.ogg', 50, TRUE)
owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE)
/datum/status_effect/void_price
id = "void_price"
@@ -110,6 +130,13 @@
tick_interval = 0
alert_type = /atom/movable/screen/alert/status_effect/blooddrunk
var/blooddrunk_damage_mod_remove = 4 // Damage is multiplied by this at the end of the status effect. Modify this one, it changes the _add
/// If this is the chariot subtype, which grants pacifism while the effect is active.
var/chariot = FALSE
/datum/status_effect/blooddrunk/chariot
duration = 10 SECONDS
chariot = TRUE
blooddrunk_damage_mod_remove = 6
/atom/movable/screen/alert/status_effect/blooddrunk
name = "Blood-Drunk"
@@ -120,6 +147,8 @@
. = ..()
if(.)
ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "blooddrunk")
if(chariot)
ADD_TRAIT(owner, TRAIT_PACIFISM, "blooddrunk")
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
var/blooddrunk_damage_mod_add = 1 / blooddrunk_damage_mod_remove // Damage is multiplied by this at the start of the status effect. Don't modify this one directly.
@@ -144,6 +173,7 @@
H.physiology.stamina_mod *= blooddrunk_damage_mod_remove
add_attack_logs(owner, owner, "lost blood-drunk stun immunity", ATKLOG_ALL)
REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "blooddrunk")
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "blooddrunk")
if(islist(owner.stun_absorption) && owner.stun_absorption["blooddrunk"])
owner.remove_stun_absorption("blooddrunk")
@@ -183,7 +213,7 @@
H.physiology.stamina_mod *= 0.5
H.physiology.stun_mod *= 0.5
var/datum/antagonist/vampire/V = owner.mind.has_antag_datum(/datum/antagonist/vampire)
if(V.get_ability(/datum/vampire_passive/blood_swell_upgrade))
if(V?.get_ability(/datum/vampire_passive/blood_swell_upgrade))
bonus_damage_applied = TRUE
H.physiology.melee_bonus += 10
H.dna.species.punchstunthreshold += 8 //higher chance to stun but not 100%
@@ -776,3 +806,70 @@
var/mob/living/carbon/human/H = owner
H.physiology.stamina_mod /= 0.75
add_attack_logs(owner, owner, "lost bearserker rage resistances", ATKLOG_ALL)
/datum/status_effect/xray
id = "xray"
alert_type = null
status_type = STATUS_EFFECT_REFRESH
duration = 2 MINUTES
tick_interval = 0
/datum/status_effect/xray/on_apply()
. = ..()
ADD_TRAIT(owner, TRAIT_XRAY_VISION, "XRAY_BUFF")
ADD_TRAIT(owner, TRAIT_NIGHT_VISION, "XRAY_BUFF")
owner.update_sight()
/datum/status_effect/xray/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_XRAY_VISION, "XRAY_BUFF")
REMOVE_TRAIT(owner, TRAIT_NIGHT_VISION, "XRAY_BUFF")
owner.update_sight()
/datum/status_effect/badass
id = "badass"
alert_type = null
status_type = STATUS_EFFECT_REFRESH
duration = 2 MINUTES
tick_interval = 0
/datum/status_effect/badass/on_apply()
. = ..()
ADD_TRAIT(owner, TRAIT_BADASS, "BADDASS_BUFF")
/datum/status_effect/badass/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_BADASS, "BADDASS_BUFF")
/datum/status_effect/reversed_sun
id = "reversed_sun"
alert_type = null
status_type = STATUS_EFFECT_REFRESH
duration = 1 MINUTES
tick_interval = 0.2 SECONDS
/datum/status_effect/reversed_sun/on_apply()
. = ..()
owner.become_nearsighted("REVERSED_SUN")
ADD_TRAIT(owner, TRAIT_NIGHT_VISION, "REVERSED_SUN")
owner.update_sight()
owner.set_light(7, -5, "#ddd6cf")
/datum/status_effect/reversed_sun/on_remove()
. = ..()
owner.remove_light()
owner.cure_nearsighted("REVERSED_SUN")
REMOVE_TRAIT(owner, TRAIT_NIGHT_VISION, "REVERSED_SUN")
owner.update_sight()
/datum/status_effect/reversed_sun/tick()
for(var/atom/movable/AM in oview(8, owner))
if(isliving(AM))
var/mob/living/L = AM
if(L.affects_vampire(owner))
L.adjust_bodytemperature(-1.5 * TEMPERATURE_DAMAGE_COEFFICIENT)
continue
if(istype(AM, /obj/item/projectile))
var/obj/item/projectile/P = AM
if(P.flag == ENERGY || P.flag == LASER)
P.damage *= 0.85
+26
View File
@@ -1322,3 +1322,29 @@
desc = "Real winners quit before they reach the ultimate prize."
#undef DEFAULT_MAX_CURSE_COUNT
/datum/status_effect/reversed_high_priestess
id = "reversed_high_priestess"
duration = 1 MINUTES
status_type = STATUS_EFFECT_REFRESH
tick_interval = 6 SECONDS
alert_type = /atom/movable/screen/alert/status_effect/bubblegum_curse
/datum/status_effect/reversed_high_priestess/tick()
. = ..()
new /obj/effect/bubblegum_warning(get_turf(owner))
/obj/effect/bubblegum_warning
name = "bloody rift"
desc = "You feel like even being *near* this is a bad idea"
icon = 'icons/obj/biomass.dmi'
icon_state = "rift"
color = "red"
/obj/effect/bubblegum_warning/Initialize()
. = ..()
addtimer(CALLBACK(src, PROC_REF(slap_someone)), 2.5 SECONDS) //A chance to run away
/obj/effect/bubblegum_warning/proc/slap_someone()
new /obj/effect/abstract/bubblegum_rend_helper(get_turf(src), null, 10)
qdel(src)
@@ -305,6 +305,17 @@
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
job = list("Head of Personnel", "Quartermaster", "Cargo Technician", "Librarian", "Coroner", "Psychiatrist", "Virologist")
// Tarot card generator, librarian and Chaplain.
/datum/uplink_item/jobspecific/tarot_generator
name = "Enchanted tarot card deck"
desc = "A magic tarot card deck \"borrowed\" from a Wizard federation storage unit. \
Capable of producing magic tarot cards of the 22 major arcana, and their reversed versions. Each card has a different effect. \
Throw the card at someone to use it on them, or use it in hand to apply it to yourself. Unlimited uses, 25 second cooldown, can have up to 3 cards in the world."
reference = "tarot"
item = /obj/item/tarot_generator
cost = 55 //This can do a lot of stuff, but is quite random. As such, higher price.
job = list("Chaplain", "Librarian")
//--------------------------//
// Species Restricted Gear //