/datum/targetable/spell/kill
name = "Shocking Grasp"
desc = "Kills the victim with electrical power. Takes a few seconds to cast."
icon_state = "grasp"
targeted = 1
max_range = 1
cooldown = 600
requires_robes = 1
offensive = 1
sticky = 1
voice_grim = "sound/voice/wizard/ShockingGraspGrim.ogg"
voice_fem = "sound/voice/wizard/ShockingGraspFem.ogg"
voice_other = "sound/voice/wizard/ShockingGraspLoud.ogg"
cast(mob/target)
if(!holder)
return
holder.owner.visible_message("[holder.owner] begins to cast a spell on [target]!")
playsound(holder.owner.loc, "sound/effects/elec_bzzz.ogg", 25, 1, -1)
if (do_mob(holder.owner, target, 20))
holder.owner.say("EI NATH")
..()
if (ishuman(target))
if (target.traitHolder.hasTrait("training_chaplain"))
boutput(holder.owner, "[target] has divine protection from magic.")
target.visible_message("The electric charge courses through [target] harmlessly!")
return
else if (iswizard(target))
target.visible_message("The electric charge somehow completely misses [target]!")
return
else if(check_target_immunity( target ))
boutput(holder.owner, "[target] seems to be warded from the effects!")
return 1
if (holder.owner.wizard_spellpower())
var/datum/effects/system/spark_spread/s = unpool(/datum/effects/system/spark_spread)
s.set_up(4, 1, target)
s.start()
target.elecgib()
else
var/datum/effects/system/spark_spread/s = unpool(/datum/effects/system/spark_spread)
s.set_up(4, 1, target)
s.start()
boutput(holder.owner, "Your spell is weak without a staff to focus it!")
target.visible_message("[target] is severely burned by an electrical charge!")
target.lastattacker = holder.owner
target.lastattackertime = world.time
target.TakeDamage("chest", 0, 80, 0, DAMAGE_BURN)
target.changeStatus("stunned", 10 SECONDS)
target.changeStatus("weakened", 10 SECONDS)
target.stuttering += 15
else
return 1 // no cooldown if it fails