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 |
@@ -98,8 +98,8 @@ h1.alert, h2.alert {color: #000000;}
|
||||
.holoparasite {color: #35333a;}
|
||||
.surrender {
|
||||
color: #1235d1;
|
||||
font-weight: bold;
|
||||
font-size: 3;
|
||||
font-weight: bold;
|
||||
font-size: 3;
|
||||
animation: surrender 1s ease-in-out infinite alternate;
|
||||
transform-origin: 0 0;
|
||||
display: inline-block;
|
||||
|
||||
@@ -25,8 +25,7 @@
|
||||
var/list/upgrade_tiers = list(
|
||||
/obj/effect/proc_holder/spell/self/vampire_help = 0,
|
||||
/obj/effect/proc_holder/spell/self/rejuvenate = 0,
|
||||
/obj/effect/proc_holder/spell/pointed/gaze = 0,
|
||||
/obj/effect/proc_holder/spell/pointed/hypno = 0,
|
||||
/obj/effect/proc_holder/spell/targeted/hypnotise = 0,
|
||||
/datum/vampire_passive/vision = 75,
|
||||
/obj/effect/proc_holder/spell/self/shapeshift = 75,
|
||||
/obj/effect/proc_holder/spell/self/cloak = 100,
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/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
|
||||
/datum/vampire_passive
|
||||
var/gain_desc
|
||||
@@ -79,14 +79,14 @@
|
||||
name = "How to suck blood 101"
|
||||
desc = "Explains how the vampire blood sucking system works."
|
||||
action_icon_state = "bloodymaryglass"
|
||||
action_icon = 'icons/obj/drinks.dmi'
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
action_background_icon_state = "bg_demon"
|
||||
charge_max = 0
|
||||
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)
|
||||
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\
|
||||
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>")
|
||||
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>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
|
||||
name = "Rejuvenate"
|
||||
@@ -115,126 +115,32 @@
|
||||
sleep(7.5)
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/pointed/gaze
|
||||
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
|
||||
/obj/effect/proc_holder/spell/targeted/hypnotise
|
||||
name = "Hypnotize"
|
||||
desc = "Knock out your target."
|
||||
charge_max = 300
|
||||
blood_used = 20
|
||||
desc= "A piercing stare that incapacitates your victim for a good length of time."
|
||||
action_icon_state = "hypnotize"
|
||||
active_msg = "<span class='warning'>You prepare your hypnosis technique.</span>"
|
||||
deactive_msg = "<span class='warning'>You stop preparing your hypnosis.</span>"
|
||||
vamp_req = TRUE
|
||||
ranged_mousepointer = 'icons/effects/mouse_pointers/hypnotize_target.dmi'
|
||||
blood_used = 0
|
||||
charge_max = 1500
|
||||
range = 2
|
||||
action_icon = 'yogstation/icons/mob/vampire.dmi'
|
||||
action_background_icon_state = "bg_demon"
|
||||
vamp_req = TRUE
|
||||
|
||||
/obj/effect/proc_holder/spell/pointed/hypno/Click()
|
||||
if(!active)
|
||||
usr.visible_message("<span class='warning'>[usr] twirls their finger in a circlular motion.</span>",\
|
||||
"<span class='warning'>You twirl your finger in a circular motion.</span>")
|
||||
..()
|
||||
|
||||
/obj/effect/proc_holder/spell/pointed/hypno/can_target(atom/target, mob/user, silent)
|
||||
if(!..())
|
||||
return
|
||||
if(!ishuman(target))
|
||||
to_chat(user, "<span class='warning'>Hypnotize will not work on this being.</span>")
|
||||
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>")
|
||||
/obj/effect/proc_holder/spell/targeted/hypnotise/cast(list/targets, mob/user = usr)
|
||||
for(var/mob/living/carbon/target in targets)
|
||||
user.visible_message("<span class='warning'>[user]'s eyes flash briefly as [user.p_they()] stares into [target]'s eyes</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
|
||||
if(do_mob(user, target, 30, TRUE) && (target in view(user))) //effect stops working if the target escapes line of sight
|
||||
to_chat(user, "<span class='warning'>Your piercing gaze knocks out [target].</span>")
|
||||
to_chat(target, "<span class='warning'>You find yourself unable to move or speak.</span>")
|
||||
target.Paralyze(150)
|
||||
target.silent = 10 //finally makes this stupid spell USEFUL
|
||||
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
|
||||
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