mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Revert "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"" (#10041)
* Revert "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 faefb6d72d.
* Update vampire_powers.dm
* Update vampire_powers.dm
This commit is contained in:
BIN
icons/effects/mouse_pointers/gaze_target.dmi
Normal file
BIN
icons/effects/mouse_pointers/gaze_target.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 614 B |
BIN
icons/effects/mouse_pointers/hypnotize_target.dmi
Normal file
BIN
icons/effects/mouse_pointers/hypnotize_target.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 435 B |
Binary file not shown.
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.6 KiB |
@@ -98,8 +98,8 @@ h1.alert, h2.alert {color: #000000;}
|
|||||||
.holoparasite {color: #35333a;}
|
.holoparasite {color: #35333a;}
|
||||||
.surrender {
|
.surrender {
|
||||||
color: #1235d1;
|
color: #1235d1;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 3;
|
font-size: 3;
|
||||||
animation: surrender 1s ease-in-out infinite alternate;
|
animation: surrender 1s ease-in-out infinite alternate;
|
||||||
transform-origin: 0 0;
|
transform-origin: 0 0;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
@@ -25,7 +25,8 @@
|
|||||||
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/targeted/hypnotise = 0,
|
/obj/effect/proc_holder/spell/pointed/gaze = 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,
|
||||||
|
|||||||
@@ -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"
|
||||||
icon = 'icons/obj/drinks.dmi'
|
action_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 cannot 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 <b>cannot</b> 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>")
|
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>")
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/self/rejuvenate
|
/obj/effect/proc_holder/spell/self/rejuvenate
|
||||||
name = "Rejuvenate"
|
name = "Rejuvenate"
|
||||||
@@ -115,32 +115,130 @@
|
|||||||
sleep(7.5)
|
sleep(7.5)
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/targeted/hypnotise
|
/obj/effect/proc_holder/spell/pointed/gaze
|
||||||
name = "Hypnotize"
|
name = "Vampiric Gaze"
|
||||||
desc= "A piercing stare that incapacitates your victim for a good length of time."
|
desc = "Paralyze your target with fear."
|
||||||
action_icon_state = "hypnotize"
|
charge_max = 300
|
||||||
blood_used = 0
|
action_icon_state = "gaze"
|
||||||
charge_max = 1500
|
active_msg = "You prepare your vampiric gaze.</span>"
|
||||||
range = 2
|
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_icon = 'yogstation/icons/mob/vampire.dmi'
|
||||||
action_background_icon_state = "bg_demon"
|
action_background_icon_state = "bg_demon"
|
||||||
|
|
||||||
|
/obj/effect/proc_holder/spell/pointed/gaze/can_target(atom/target, mob/user, silent)
|
||||||
|
. = ..()
|
||||||
|
if(!.)
|
||||||
|
return FALSE
|
||||||
|
if(!target)
|
||||||
|
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"
|
||||||
|
desc = "Knock out your target."
|
||||||
|
charge_max = 300
|
||||||
|
blood_used = 20
|
||||||
|
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
|
vamp_req = TRUE
|
||||||
|
ranged_mousepointer = 'icons/effects/mouse_pointers/hypnotize_target.dmi'
|
||||||
|
action_icon = 'yogstation/icons/mob/vampire.dmi'
|
||||||
|
action_background_icon_state = "bg_demon"
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/targeted/hypnotise/cast(list/targets, mob/user = usr)
|
/obj/effect/proc_holder/spell/pointed/hypno/Click()
|
||||||
for(var/mob/living/carbon/target in targets)
|
if(!active)
|
||||||
user.visible_message("<span class='warning'>[user]'s eyes flash briefly as [user.p_they()] stares into [target]'s eyes</span>")
|
usr.visible_message("<span class='warning'>[usr] twirls their finger in a circlular motion.</span>",\
|
||||||
target.silent = 2 //this is actually roughly 4 seconds due to how silent works
|
"<span class='warning'>You twirl your finger in a circular motion.</span>")
|
||||||
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
|
/obj/effect/proc_holder/spell/pointed/hypno/can_target(atom/target, mob/user, silent)
|
||||||
to_chat(user, "<span class='warning'>Your piercing gaze knocks out [target].</span>")
|
if(!..())
|
||||||
to_chat(target, "<span class='warning'>You find yourself unable to move or speak.</span>")
|
return FALSE
|
||||||
target.Paralyze(150)
|
if(!target)
|
||||||
target.silent = 10 //finally makes this stupid spell USEFUL
|
return FALSE
|
||||||
|
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>")
|
||||||
else
|
else
|
||||||
revert_cast(usr)
|
to_chat(T, "<span class='notice'>You feel a whole lot better now.</span>")
|
||||||
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.7 KiB After Width: | Height: | Size: 6.9 KiB |
Reference in New Issue
Block a user