bolts of resurrection kill the undead (#47170)

* Update magic.dm

* Update magic.dm

* Update wand.dm

* Update wand.dm

* Update magic.dm

* booleanization

* bonus booleanization
This commit is contained in:
ATH1909
2019-10-21 21:33:27 +11:00
committed by Jordie
parent de85502ef9
commit 669ddb401c
2 changed files with 45 additions and 20 deletions
+21 -8
View File
@@ -67,11 +67,20 @@
/obj/item/gun/magic/wand/death/zap_self(mob/living/user)
..()
to_chat(user, "<span class='warning'>You irradiate yourself with pure energy! \
charges--
if(user.anti_magic_check())
user.visible_message("<span class='warning'>[src] has no effect on [user]!</span>")
return
if(isliving(user))
var/mob/living/L = user
if(L.mob_biotypes & MOB_UNDEAD) //negative energy heals the undead
user.revive(full_heal = TRUE)
to_chat(user, "<span class='notice'>You feel great!</span>")
return
to_chat(user, "<span class='warning'>You irradiate yourself with pure negative energy! \
[pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\
</span>")
user.adjustOxyLoss(500)
charges--
user.death(0)
/obj/item/gun/magic/wand/death/debug
desc = "In some obscure circles, this is known as the 'cloning tester's friend'."
@@ -99,11 +108,15 @@
if(user.anti_magic_check())
user.visible_message("<span class='warning'>[src] has no effect on [user]!</span>")
return
user.revive(full_heal = 1)
if(iscarbon(user))
var/mob/living/carbon/C = user
C.regenerate_limbs()
C.regenerate_organs()
if(isliving(user))
var/mob/living/L = user
if(L.mob_biotypes & MOB_UNDEAD) //positive energy harms the undead
to_chat(user, "<span class='warning'>You irradiate yourself with pure positive energy! \
[pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\
</span>")
user.death(0)
return
user.revive(full_heal = TRUE)
to_chat(user, "<span class='notice'>You feel great!</span>")
/obj/item/gun/magic/wand/resurrection/debug //for testing
+24 -12
View File
@@ -18,7 +18,20 @@
if(M.anti_magic_check())
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
return BULLET_ACT_BLOCK
M.death(0)
if(isliving(M))
var/mob/living/L = M
if(L.mob_biotypes & MOB_UNDEAD) //negative energy heals the undead
if(L.hellbound && L.stat == DEAD)
return BULLET_ACT_BLOCK
if(L.revive(full_heal = TRUE))
L.grab_ghost(force = TRUE) // even suicides
to_chat(L, "<span class='notice'>You rise with a start, you're undead!!!</span>")
else if(L.stat != DEAD)
to_chat(L, "<span class='notice'>You feel great!</span>")
else
L.death(0)
else
M.death(0)
/obj/projectile/magic/resurrection
name = "bolt of resurrection"
@@ -30,20 +43,19 @@
/obj/projectile/magic/resurrection/on_hit(mob/living/carbon/target)
. = ..()
if(isliving(target))
if(target.hellbound)
return BULLET_ACT_BLOCK
if(target.anti_magic_check())
target.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
return BULLET_ACT_BLOCK
if(iscarbon(target))
var/mob/living/carbon/C = target
C.regenerate_limbs()
C.regenerate_organs()
if(target.revive(full_heal = 1))
target.grab_ghost(force = TRUE) // even suicides
to_chat(target, "<span class='notice'>You rise with a start, you're alive!!!</span>")
else if(target.stat != DEAD)
to_chat(target, "<span class='notice'>You feel great!</span>")
if(target.mob_biotypes & MOB_UNDEAD) //positive energy harms the undead
target.death(0)
else
if(target.hellbound && target.stat == DEAD)
return BULLET_ACT_BLOCK
if(target.revive(full_heal = TRUE))
target.grab_ghost(force = TRUE) // even suicides
to_chat(target, "<span class='notice'>You rise with a start, you're alive!!!</span>")
else if(target.stat != DEAD)
to_chat(target, "<span class='notice'>You feel great!</span>")
/obj/projectile/magic/teleport
name = "bolt of teleportation"