mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Revert "changes vampire hypnotize to be a sleep stun but makes it cost blood or something i guess this is supposed to be better since its prebase code (#9955)" (#10039)
This reverts commit 54fe18bb84.
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 614 B |
Binary file not shown.
|
Before Width: | Height: | Size: 435 B |
Binary file not shown.
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.4 KiB |
@@ -25,8 +25,7 @@
|
|||||||
var/list/upgrade_tiers = list(
|
var/list/upgrade_tiers = list(
|
||||||
/obj/effect/proc_holder/spell/self/vampire_help = 0,
|
/obj/effect/proc_holder/spell/self/vampire_help = 0,
|
||||||
/obj/effect/proc_holder/spell/self/rejuvenate = 0,
|
/obj/effect/proc_holder/spell/self/rejuvenate = 0,
|
||||||
/obj/effect/proc_holder/spell/pointed/gaze = 0,
|
/obj/effect/proc_holder/spell/targeted/hypnotise = 0,
|
||||||
/obj/effect/proc_holder/spell/pointed/hypno = 0,
|
|
||||||
/datum/vampire_passive/vision = 75,
|
/datum/vampire_passive/vision = 75,
|
||||||
/obj/effect/proc_holder/spell/self/shapeshift = 75,
|
/obj/effect/proc_holder/spell/self/shapeshift = 75,
|
||||||
/obj/effect/proc_holder/spell/self/cloak = 100,
|
/obj/effect/proc_holder/spell/self/cloak = 100,
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
/obj/effect/proc_holder/spell/can_target(mob/living/target)
|
/obj/effect/proc_holder/spell/can_target(mob/living/target)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!istype(target) || (vamp_req && is_vampire(target)))
|
if(vamp_req && is_vampire(target))
|
||||||
return FALSE
|
return FALSE
|
||||||
/datum/vampire_passive
|
/datum/vampire_passive
|
||||||
var/gain_desc
|
var/gain_desc
|
||||||
@@ -79,14 +79,14 @@
|
|||||||
name = "How to suck blood 101"
|
name = "How to suck blood 101"
|
||||||
desc = "Explains how the vampire blood sucking system works."
|
desc = "Explains how the vampire blood sucking system works."
|
||||||
action_icon_state = "bloodymaryglass"
|
action_icon_state = "bloodymaryglass"
|
||||||
action_icon = 'icons/obj/drinks.dmi'
|
icon = 'icons/obj/drinks.dmi'
|
||||||
action_background_icon_state = "bg_demon"
|
action_background_icon_state = "bg_demon"
|
||||||
charge_max = 0
|
charge_max = 0
|
||||||
vamp_req = TRUE //YES YOU NEED TO BE A VAMPIRE TO KNOW HOW TO BE A VAMPIRE SHOCKING
|
vamp_req = TRUE //YES YOU NEED TO BE A VAMPIRE TO KNOW HOW TO BE A VAMPIRE SHOCKING
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/self/vampire_help/cast(list/targets, mob/user = usr)
|
/obj/effect/proc_holder/spell/self/vampire_help/cast(list/targets, mob/user = usr)
|
||||||
to_chat(user, "<span class='notice'>You can consume blood from living, humanoid life by <b>punching their head while on the harm intent</b>. This <i>WILL</i> alert everyone who can see it as well as make a noise, which is generally hearable about <b>three meters away</b>. Note that you <b>cannot</b> draw blood from <b>catatonics or corpses</b>.\n\
|
to_chat(user, "<span class='notice'>You can consume blood from living, humanoid life by <b>punching their head while on the harm intent</b>. This <i>WILL</i> alert everyone who can see it as well as make a noise, which is generally hearable about <b>three meters away</b>. Note that you cannot draw blood from <b>catatonics or corpses</b>.\n\
|
||||||
Your bloodsucking speed depends on grab strength, you can <i>stealthily</i> extract blood by initiating without a grab, and can suck more blood per cycle by <b>having a neck grab or stronger</b>. Both of these modify the amount of blood taken by 50%; less for stealth, more for strong grabs.</span>")
|
Your bloodsucking speed depends on grab strength, you can <i>stealhily</i> extract blood by initiating without a grab, and can suck more blood per cycle by <b>having a neck grab or stronger</b>. Both of these modify the amount of blood taken by 50%; less for stealth, more for strong grabs.</span>")
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/self/rejuvenate
|
/obj/effect/proc_holder/spell/self/rejuvenate
|
||||||
name = "Rejuvenate"
|
name = "Rejuvenate"
|
||||||
@@ -115,126 +115,32 @@
|
|||||||
sleep(7.5)
|
sleep(7.5)
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/pointed/gaze
|
/obj/effect/proc_holder/spell/targeted/hypnotise
|
||||||
name = "Vampiric Gaze"
|
|
||||||
desc = "Paralyze your target with fear."
|
|
||||||
charge_max = 300
|
|
||||||
action_icon_state = "gaze"
|
|
||||||
active_msg = "You prepare your vampiric gaze.</span>"
|
|
||||||
deactive_msg = "You stop preparing your vampiric gaze.</span>"
|
|
||||||
vamp_req = TRUE
|
|
||||||
ranged_mousepointer = 'icons/effects/mouse_pointers/gaze_target.dmi'
|
|
||||||
action_icon = 'yogstation/icons/mob/vampire.dmi'
|
|
||||||
action_background_icon_state = "bg_demon"
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/pointed/gaze/can_target(atom/target, mob/user, silent)
|
|
||||||
. = ..()
|
|
||||||
if(!.)
|
|
||||||
return FALSE
|
|
||||||
if(!ishuman(target))
|
|
||||||
to_chat(user, "<span class='warning'>Gaze will not work on this being.</span>")
|
|
||||||
return FALSE
|
|
||||||
var/mob/living/carbon/human/T = target
|
|
||||||
|
|
||||||
if(T.stat == DEAD)
|
|
||||||
to_chat(user,"<span class='warning'>You cannot gaze at corpses... \
|
|
||||||
or maybe you could if you really wanted to.</span>")
|
|
||||||
return FALSE
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/pointed/gaze/cast(list/targets, mob/user)
|
|
||||||
var/mob/living/target = targets[1]
|
|
||||||
var/mob/living/carbon/human/T = target
|
|
||||||
user.visible_message("<span class='warning'>[user]'s eyes flash red.</span>",\
|
|
||||||
"<span class='warning'>[user]'s eyes flash red.</span>")
|
|
||||||
if(ishuman(target))
|
|
||||||
var/obj/item/clothing/glasses/G = T.glasses
|
|
||||||
if(G)
|
|
||||||
if(G.flash_protect)
|
|
||||||
to_chat(user,"<span class='warning'>[T] has protective sunglasses on!</span>")
|
|
||||||
to_chat(target, "<span class='warning'>[user]'s paralyzing gaze is blocked by your [G]!</span>")
|
|
||||||
return
|
|
||||||
var/obj/item/clothing/mask/M = T.wear_mask
|
|
||||||
if(M)
|
|
||||||
if(M.flash_protect)
|
|
||||||
to_chat(user,"<span class='warning'>[T]'s mask is covering their eyes!</span>")
|
|
||||||
to_chat(target,"<span class='warning'>[user]'s paralyzing gaze is blocked by your [M]!</span>")
|
|
||||||
return
|
|
||||||
var/obj/item/clothing/head/H = T.head
|
|
||||||
if(H)
|
|
||||||
if(H.flash_protect)
|
|
||||||
to_chat(user, "<span class='vampirewarning'>[T]'s helmet is covering their eyes!</span>")
|
|
||||||
to_chat(target, "<span class='warning'>[user]'s paralyzing gaze is blocked by [H]!</span>")
|
|
||||||
return
|
|
||||||
to_chat(target,"<span class='warning'>You are paralyzed with fear!</span>")
|
|
||||||
to_chat(user,"<span class='notice'>You paralyze [T].</span>")
|
|
||||||
T.Stun(50)
|
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/pointed/hypno
|
|
||||||
name = "Hypnotize"
|
name = "Hypnotize"
|
||||||
desc = "Knock out your target."
|
desc= "A piercing stare that incapacitates your victim for a good length of time."
|
||||||
charge_max = 300
|
|
||||||
blood_used = 20
|
|
||||||
action_icon_state = "hypnotize"
|
action_icon_state = "hypnotize"
|
||||||
active_msg = "<span class='warning'>You prepare your hypnosis technique.</span>"
|
blood_used = 0
|
||||||
deactive_msg = "<span class='warning'>You stop preparing your hypnosis.</span>"
|
charge_max = 1500
|
||||||
vamp_req = TRUE
|
range = 2
|
||||||
ranged_mousepointer = 'icons/effects/mouse_pointers/hypnotize_target.dmi'
|
|
||||||
action_icon = 'yogstation/icons/mob/vampire.dmi'
|
action_icon = 'yogstation/icons/mob/vampire.dmi'
|
||||||
action_background_icon_state = "bg_demon"
|
action_background_icon_state = "bg_demon"
|
||||||
|
vamp_req = TRUE
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/pointed/hypno/Click()
|
/obj/effect/proc_holder/spell/targeted/hypnotise/cast(list/targets, mob/user = usr)
|
||||||
if(!active)
|
for(var/mob/living/carbon/target in targets)
|
||||||
usr.visible_message("<span class='warning'>[usr] twirls their finger in a circlular motion.</span>",\
|
user.visible_message("<span class='warning'>[user]'s eyes flash briefly as [user.p_they()] stares into [target]'s eyes</span>")
|
||||||
"<span class='warning'>You twirl your finger in a circular motion.</span>")
|
target.silent = 2 //this is actually roughly 4 seconds due to how silent works
|
||||||
..()
|
if(target.flash_act(1))
|
||||||
|
target.adjustStaminaLoss(40) //minor slowdown if they aren't protected
|
||||||
/obj/effect/proc_holder/spell/pointed/hypno/can_target(atom/target, mob/user, silent)
|
if(do_mob(user, target, 30, TRUE) && (target in view(user))) //effect stops working if the target escapes line of sight
|
||||||
if(!..())
|
to_chat(user, "<span class='warning'>Your piercing gaze knocks out [target].</span>")
|
||||||
return
|
to_chat(target, "<span class='warning'>You find yourself unable to move or speak.</span>")
|
||||||
if(!ishuman(target))
|
target.Paralyze(150)
|
||||||
to_chat(user, "<span class='warning'>Hypnotize will not work on this being.</span>")
|
target.silent = 10 //finally makes this stupid spell USEFUL
|
||||||
return FALSE
|
|
||||||
|
|
||||||
var/mob/living/carbon/human/T = target
|
|
||||||
if(T.IsSleeping())
|
|
||||||
to_chat(user, "<span class='warning'>[T] is already asleep!.</span>")
|
|
||||||
return FALSE
|
|
||||||
return TRUE
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/pointed/hypno/cast(list/targets, mob/user)
|
|
||||||
var/mob/living/target = targets[1]
|
|
||||||
var/mob/living/carbon/human/T = target
|
|
||||||
user.visible_message("<span class='warning'>[user]'s eyes flash red.</span>",\
|
|
||||||
"<span class='warning'>[user]'s eyes flash red.</span>")
|
|
||||||
if(T)
|
|
||||||
var/obj/item/clothing/glasses/G = T.glasses
|
|
||||||
if(G)
|
|
||||||
if(G.flash_protect)
|
|
||||||
to_chat(user, "<span class='warning'>[T] has protective sunglasses on!</span>")
|
|
||||||
to_chat(target, "<span class='warning'>[user]'s paralyzing gaze is blocked by [G]!</span>")
|
|
||||||
return
|
|
||||||
var/obj/item/clothing/mask/M = T.wear_mask
|
|
||||||
if(M)
|
|
||||||
if(M.flash_protect)
|
|
||||||
to_chat(user, "<span class='vampirewarning'>[T]'s mask is covering their eyes!</span>")
|
|
||||||
to_chat(target, "<span class='warning'>[user]'s paralyzing gaze is blocked by [M]!</span>")
|
|
||||||
return
|
|
||||||
var/obj/item/clothing/head/H = T.head
|
|
||||||
if(H)
|
|
||||||
if(H.flash_protect)
|
|
||||||
to_chat(user, "<span class='vampirewarning'>[T]'s helmet is covering their eyes!</span>")
|
|
||||||
to_chat(target, "<span class='warning'>[user]'s paralyzing gaze is blocked by [H]!</span>")
|
|
||||||
return
|
|
||||||
to_chat(target, "<span class='boldwarning'>Your knees suddenly feel heavy. Your body begins to sink to the floor.</span>")
|
|
||||||
to_chat(user, "<span class='notice'>[target] is now under your spell. In four seconds they will be rendered unconscious as long as they are within close range.</span>")
|
|
||||||
if(do_mob(user, target, 40, TRUE)) // 4 seconds...
|
|
||||||
if(get_dist(user, T) <= 3) // 7 range
|
|
||||||
flash_color(T, flash_color="#472040", flash_time=30) // it's the vampires color!
|
|
||||||
T.SetSleeping(300)
|
|
||||||
to_chat(user, "<span class='warning'>[T] has fallen asleep!</span>")
|
|
||||||
else
|
else
|
||||||
to_chat(T, "<span class='notice'>You feel a whole lot better now.</span>")
|
revert_cast(usr)
|
||||||
|
to_chat(usr, "<span class='warning'>You broke your gaze.</span>")
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/self/shapeshift
|
/obj/effect/proc_holder/spell/self/shapeshift
|
||||||
name = "Shapeshift (50)"
|
name = "Shapeshift (50)"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.7 KiB |
Reference in New Issue
Block a user