Vampire - Enthrall rework

Works on grabs now, as opposed to just target selection. Makes more sense this way.
This commit is contained in:
skull132
2016-05-14 17:48:38 +03:00
parent 6276a18dfb
commit 69f168870a
2 changed files with 19 additions and 11 deletions

View File

@@ -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

View File

@@ -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>")