mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-08 00:11:57 +00:00
Vampire - Enthrall rework
Works on grabs now, as opposed to just target selection. Makes more sense this way.
This commit is contained in:
@@ -72,13 +72,14 @@ var/list/datum/power/vampire/vampirepowers = list()
|
||||
/datum/power/vampire/veil_walk
|
||||
name = "Veil Walking"
|
||||
desc = "You can enter the Veil for a long duration of time, leaving behind only an incorporeal manifestation of yourself."
|
||||
helptext = "While veil walking, you can walk through all solid objects and people. Others can see you, but they cannot interact with you. As you stay in this form, you will keep draining your blood."
|
||||
helptext = "While veil walking, you can walk through all solid objects and people. Others can see you, but they cannot interact with you. As you stay in this form, you will keep draining your blood. To stop veil walking, activate the power again."
|
||||
blood_cost = 250
|
||||
verbpath = /mob/living/carbon/human/proc/vampire_veilwalk
|
||||
|
||||
/datum/power/vampire/enthrall
|
||||
name = "Enthrall"
|
||||
desc = "Invoke a bloodbond between yourself and a mortal soul. They will then become your slave, required to execute your every command. They will be dependant on your blood."
|
||||
helptext = "This works similarly to feeding: you must have a victim pinned to the ground in order for you to enthrall them."
|
||||
blood_cost = 300
|
||||
verbpath = /mob/living/carbon/human/proc/vampire_enthrall
|
||||
|
||||
|
||||
@@ -589,19 +589,26 @@
|
||||
if (!vampire)
|
||||
return
|
||||
|
||||
var/list/victims = list()
|
||||
for (var/mob/living/carbon/human/H in view(1))
|
||||
if (H == src)
|
||||
continue
|
||||
victims += H
|
||||
|
||||
if (!victims.len)
|
||||
src << "<span class='warning'>No suitable targets.</span>"
|
||||
var/obj/item/weapon/grab/G = get_active_hand()
|
||||
if (!istype(G))
|
||||
src << "<span class='warning'>You must be grabbing a victim in your active hand to enthrall them.</span>"
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/T = input(src, "Select Victim") as null|mob in victims
|
||||
if (G.state == GRAB_PASSIVE || G.state == GRAB_UPGRADING)
|
||||
src << "<span class='warning'>You must have the victim pinned to the ground to enthrall them.</span>"
|
||||
return
|
||||
|
||||
if (!vampire_can_affect_target(T))
|
||||
var/mob/living/carbon/human/T = G.affecting
|
||||
if (!istype(T))
|
||||
src << "<span class='warning'>[T] is not a creature you can enthrall.</span>"
|
||||
return
|
||||
|
||||
if (!T.client || !T.mind)
|
||||
src << "<span class='warning'>[T]'s mind is empty and useless. They cannot be forced into a blood bond.</span>"
|
||||
return
|
||||
|
||||
if (vampire.status & VAMP_DRAINING)
|
||||
src << "<span class='warning'>Your fangs are already sunk into a victim's neck!</span>"
|
||||
return
|
||||
|
||||
visible_message("<span class='danger'>[src.name] tears the flesh on their wrist, and holds it up to [T.name]. In a gruesome display, [T.name] starts lapping up the blood that's oozing from the fresh wound.</span>", "<span class='warning'>You inflict a wound upon yourself, and force them to drink your blood, thus starting the conversion process.</span>")
|
||||
|
||||
Reference in New Issue
Block a user