mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Merge pull request #3824 from Tastyfish/vamppow
Refactors vampire abilities, also some vamp fixes
This commit is contained in:
@@ -135,7 +135,7 @@
|
||||
M << "<span class='warning'>Blood from a monkey is useless!</span>"
|
||||
return 0
|
||||
//we're good to suck the blood, blaah
|
||||
M.handle_bloodsucking(src)
|
||||
M.mind.vampire.handle_bloodsucking(src)
|
||||
add_logs(src, M, "vampirebit")
|
||||
msg_admin_attack("[key_name_admin(M)] vampirebit [key_name_admin(src)]")
|
||||
return
|
||||
|
||||
@@ -88,7 +88,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
pulse = handle_pulse()
|
||||
|
||||
if(mind && mind.vampire)
|
||||
handle_vampire()
|
||||
mind.vampire.handle_vampire()
|
||||
if(life_tick == 1)
|
||||
regenerate_icons() // Make sure the inventory updates
|
||||
|
||||
|
||||
@@ -423,14 +423,12 @@
|
||||
H.see_invisible = SEE_INVISIBLE_LIVING
|
||||
|
||||
if(H.mind && H.mind.vampire)
|
||||
if((VAMP_VISION in H.mind.vampire.powers) && (!(VAMP_FULL in H.mind.vampire.powers)))
|
||||
H.sight |= SEE_MOBS
|
||||
|
||||
else if(VAMP_FULL in H.mind.vampire.powers)
|
||||
if(H.mind.vampire.get_ability(/datum/vampire_passive/full))
|
||||
H.sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||
H.see_in_dark = 8
|
||||
H.see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
else if(H.mind.vampire.get_ability(/datum/vampire_passive/vision))
|
||||
H.sight |= SEE_MOBS
|
||||
|
||||
if(XRAY in H.mutations)
|
||||
H.sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||
|
||||
@@ -264,44 +264,40 @@
|
||||
M.stuttering = 0
|
||||
M.confused = 0
|
||||
return
|
||||
if(ishuman(M) && M.mind) .
|
||||
if(((M.mind in ticker.mode.vampires) || M.mind.vampire) && (!(VAMP_FULL in M.mind.vampire.powers)) && prob(80))
|
||||
switch(data)
|
||||
if(1 to 4)
|
||||
M << "<span class = 'warning'>Something sizzles in your veins!</span>"
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(5 to 12)
|
||||
M << "<span class = 'danger'>You feel an intense burning inside of you!</span>"
|
||||
M.adjustFireLoss(1)
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(13 to INFINITY)
|
||||
M << "<span class = 'danger'>You suddenly ignite in a holy fire!</span>"
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("<span class = 'danger'>[] suddenly bursts into flames!<span>", M), 1)
|
||||
M.fire_stacks = min(5,M.fire_stacks + 3)
|
||||
M.IgniteMob() //Only problem with igniting people is currently the commonly availible fire suits make you immune to being on fire
|
||||
M.adjustFireLoss(3) //Hence the other damages... ain't I a bastard?
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(ishuman(M) && M.mind && M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full) && prob(80))
|
||||
switch(data)
|
||||
if(1 to 4)
|
||||
M << "<span class = 'warning'>Something sizzles in your veins!</span>"
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(5 to 12)
|
||||
M << "<span class = 'danger'>You feel an intense burning inside of you!</span>"
|
||||
M.adjustFireLoss(1)
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
if(13 to INFINITY)
|
||||
M << "<span class = 'danger'>You suddenly ignite in a holy fire!</span>"
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("<span class = 'danger'>[] suddenly bursts into flames!<span>", M), 1)
|
||||
M.fire_stacks = min(5,M.fire_stacks + 3)
|
||||
M.IgniteMob() //Only problem with igniting people is currently the commonly availible fire suits make you immune to being on fire
|
||||
M.adjustFireLoss(3) //Hence the other damages... ain't I a bastard?
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/datum/reagent/holywater/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
// Vampires have their powers weakened by holy water applied to the skin.
|
||||
if(ishuman(M))
|
||||
if((M.mind in ticker.mode.vampires) && !(VAMP_FULL in M.mind.vampire.powers))
|
||||
var/mob/living/carbon/human/H=M
|
||||
if(method == TOUCH)
|
||||
if(H.wear_mask)
|
||||
H << "\red Your mask protects you from the holy water!"
|
||||
return
|
||||
else if(H.head)
|
||||
H << "\red Your helmet protects you from the holy water!"
|
||||
return
|
||||
else
|
||||
M << "<span class='warning'>Something holy interferes with your powers!</span>"
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
return
|
||||
if(ishuman(M) && M.mind && M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full))
|
||||
var/mob/living/carbon/human/H=M
|
||||
if(method == TOUCH)
|
||||
if(H.wear_mask)
|
||||
H << "\red Your mask protects you from the holy water!"
|
||||
return
|
||||
else if(H.head)
|
||||
H << "\red Your helmet protects you from the holy water!"
|
||||
return
|
||||
else
|
||||
M << "<span class='warning'>Something holy interferes with your powers!</span>"
|
||||
M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
|
||||
|
||||
|
||||
/datum/reagent/holywater/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
|
||||
Reference in New Issue
Block a user