/spell/targeted/hypnotise
name = "Hypnotise (10)"
desc = "A piercing stare that incapacitates your victim for a good length of time."
abbreviation = "HN"
school = "vampire"
user_type = USER_TYPE_VAMPIRE
charge_type = Sp_RECHARGE
charge_max = 3 MINUTES
invocation_type = SpI_NONE
range = 1
max_targets = 1
spell_flags = WAIT_FOR_CLICK | NEEDSHUMAN
cooldown_min = 3 MINUTES
selection_type = "range"
amt_paralysis = 20
amt_stuttering = 50
override_base = "vamp"
hud_state = "vampire_hypno"
var/blood_cost = 10
/spell/targeted/hypnotise/cast_check(skipcharge = 0, mob/user = usr)
. = ..()
if (!.) // No need to go further.
return FALSE
if (istype(user.get_item_by_slot(slot_glasses), /obj/item/clothing/glasses/sunglasses/blindfold))
to_chat(user, "You're blindfolded!")
return FALSE
if (!user.vampire_power(blood_cost, CONSCIOUS))
return FALSE
/spell/targeted/hypnotise/is_valid_target(var/target, var/mob/user, var/list/options)
if (!ismob(target))
return FALSE
var/mob/M = target
var/success = M.vampire_affected(user.mind)
switch (success)
if (TRUE)
return ..()
if (FALSE)
return FALSE
if (VAMP_FAILURE)
critfail(target, user)
return FALSE
/spell/targeted/hypnotise/cast(var/list/targets, var/mob/user)
if (targets.len > 1)
return FALSE
var/target = targets[1]
if(ishuman(target) || ismonkey(target))
var/mob/living/carbon/C = target
if ((C.sdisabilities & BLIND) || (C.sight & BLIND))
to_chat(user, "\the [C] is blind!")
return FALSE
if(do_mob(user, C, 10 - C.get_vamp_enhancements()))
to_chat(user, "Your piercing gaze knocks out \the [C].")
to_chat(C, "You find yourself unable to move and barely able to speak.")
apply_spell_damage(target)
else
to_chat(user, "You broke your gaze.")
return FALSE
var/datum/role/vampire/V = isvampire(user)
if (V)
V.remove_blood(blood_cost)
/spell/targeted/hypnotise/critfail(var/list/targets, var/mob/user)
to_chat(user, "You feel yourself sleepy...")
apply_spell_damage(user)
var/datum/role/vampire/V = isvampire(user)
if (V)
V.remove_blood(3*blood_cost)