From 549f47556879c584bd60f0dfb706044a55d62205 Mon Sep 17 00:00:00 2001
From: tattax <71668564+tattax@users.noreply.github.com>
Date: Fri, 17 Jun 2022 02:52:09 -0300
Subject: [PATCH] z
---
.../bloodsuckers/bloodsucker_daylight.dm | 12 ++++-----
.../bloodsuckers/bloodsucker_integration.dm | 4 +--
.../bloodsuckers/bloodsucker_mobs.dm | 3 ++-
.../antagonists/bloodsuckers/bloodsuckers.dm | 2 --
.../antagonists/bloodsuckers/powers/gohome.dm | 25 ++++++++++---------
.../bloodsuckers/powers/targeted/brawn.dm | 16 ++++++------
.../structures/bloodsucker_life.dm | 14 +++++------
7 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/code/modules/antagonists/bloodsuckers/bloodsucker_daylight.dm b/code/modules/antagonists/bloodsuckers/bloodsucker_daylight.dm
index 5960ff7569ba..ca02ccc0c14f 100644
--- a/code/modules/antagonists/bloodsuckers/bloodsucker_daylight.dm
+++ b/code/modules/antagonists/bloodsuckers/bloodsucker_daylight.dm
@@ -106,15 +106,15 @@
if(bloodsucker_minds.current)
switch(danger_level)
if(1)
- bloodsucker_minds.current.playsound_local(null, 'sound/effects/griffin_3.ogg', 50 + danger_level, 1)
+ bloodsucker_minds.current.playsound_local(null, 'sound/effects/griffin_3.ogg', 50 + danger_level, TRUE)
if(2)
- bloodsucker_minds.current.playsound_local(null, 'sound/effects/griffin_5.ogg', 50 + danger_level, 1)
+ bloodsucker_minds.current.playsound_local(null, 'sound/effects/griffin_5.ogg', 50 + danger_level, TRUE)
if(3)
- bloodsucker_minds.current.playsound_local(null, 'sound/effects/alert.ogg', 75, 1)
+ bloodsucker_minds.current.playsound_local(null, 'sound/effects/alert.ogg', 75, TRUE)
if(4)
- bloodsucker_minds.current.playsound_local(null, 'sound/ambience/ambimystery.ogg', 100, 1)
+ bloodsucker_minds.current.playsound_local(null, 'sound/ambience/ambimystery.ogg', 100, TRUE)
if(5)
- bloodsucker_minds.current.playsound_local(null, 'sound/spookoween/ghosty_wind.ogg', 90, 1)
+ bloodsucker_minds.current.playsound_local(null, 'sound/spookoween/ghosty_wind.ogg', 90, TRUE)
if(vassalwarn != "")
for(var/datum/mind/vassal_minds as anything in get_antag_minds(/datum/antagonist/vassal))
if(!istype(vassal_minds))
@@ -136,7 +136,7 @@
var/datum/antagonist/bloodsucker/bloodsuckerdatum = bloodsucker_minds.has_antag_datum(/datum/antagonist/bloodsucker)
if(!istype(bloodsuckerdatum))
continue
- if(istype(bloodsucker_minds.current.loc, /obj/structure))
+ if(isstructure(bloodsucker_minds.current.loc))
if(istype(bloodsucker_minds.current.loc, /obj/structure/closet/crate/coffin)) // Coffins offer the BEST protection
SEND_SIGNAL(bloodsucker_minds.current, COMSIG_ADD_MOOD_EVENT, "vampsleep", /datum/mood_event/coffinsleep)
continue
diff --git a/code/modules/antagonists/bloodsuckers/bloodsucker_integration.dm b/code/modules/antagonists/bloodsuckers/bloodsucker_integration.dm
index 041cc91e9a9c..52426c6fae00 100644
--- a/code/modules/antagonists/bloodsuckers/bloodsucker_integration.dm
+++ b/code/modules/antagonists/bloodsuckers/bloodsucker_integration.dm
@@ -37,8 +37,8 @@
var/datum/antagonist/bloodsucker/bloodsuckerdatum = mind.has_antag_datum(/datum/antagonist/bloodsucker)
if(bloodsuckerdatum)
. += ""
- . += "Current Frenzy Enter: [FRENZY_THRESHOLD_ENTER + (bloodsuckerdatum.humanity_lost * 10)]"
- . += "Current Frenzy Leave: [FRENZY_THRESHOLD_EXIT + (bloodsuckerdatum.humanity_lost * 10)]"
+ . += "Current Frenzy Enter: [FRENZY_THRESHOLD_ENTER + bloodsuckerdatum.humanity_lost * 10]"
+ . += "Current Frenzy Leave: [FRENZY_THRESHOLD_EXIT + bloodsuckerdatum.humanity_lost * 10]"
. += "Blood Drank: [bloodsuckerdatum.total_blood_drank]"
if(bloodsuckerdatum.current_task)
. += "Task Blood Drank: [bloodsuckerdatum.task_blood_drank]"
diff --git a/code/modules/antagonists/bloodsuckers/bloodsucker_mobs.dm b/code/modules/antagonists/bloodsuckers/bloodsucker_mobs.dm
index 30c76e233163..0e32b2da38ec 100644
--- a/code/modules/antagonists/bloodsuckers/bloodsucker_mobs.dm
+++ b/code/modules/antagonists/bloodsuckers/bloodsucker_mobs.dm
@@ -196,7 +196,8 @@
if(bloodsucker)
if(ishuman(bloodsucker))
var/mob/living/carbon/human/user = bloodsucker
- if(user.blood_volume < 560)
+ var/datum/antagonist/bloodsucker/bloodsuckerdatum = src.mind.has_antag_datum(/datum/antagonist/bloodsucker)
+ if(user.blood_volume < FRENZY_THRESHOLD_EXIT + bloodsuckerdatum.humanity_lost * 10)
user.blood_volume += 10
adjustFireLoss(2.5)
updatehealth() //3 minutes to die
diff --git a/code/modules/antagonists/bloodsuckers/bloodsuckers.dm b/code/modules/antagonists/bloodsuckers/bloodsuckers.dm
index e7137503c513..4210c1dfadb5 100644
--- a/code/modules/antagonists/bloodsuckers/bloodsuckers.dm
+++ b/code/modules/antagonists/bloodsuckers/bloodsuckers.dm
@@ -24,8 +24,6 @@
var/humanity_lost = 0
///Have we been broken the Masquerade?
var/broke_masquerade = FALSE
- ///Blood required to enter Frenzy
- var/frenzy_threshold = FRENZY_THRESHOLD_ENTER
///If we are currently in a Frenzy
var/frenzied = FALSE
///If we have a task assigned
diff --git a/code/modules/antagonists/bloodsuckers/powers/gohome.dm b/code/modules/antagonists/bloodsuckers/powers/gohome.dm
index e82d4475b61b..d0b86fa0d0eb 100644
--- a/code/modules/antagonists/bloodsuckers/powers/gohome.dm
+++ b/code/modules/antagonists/bloodsuckers/powers/gohome.dm
@@ -57,6 +57,7 @@
if(GOHOME_FLICKER_TWO)
INVOKE_ASYNC(src, .proc/flicker_lights, 4, 60)
if(GOHOME_TELEPORT)
+ do_mob(user, user, 1 SECONDS, TRUE)
INVOKE_ASYNC(src, .proc/teleport_to_coffin, user)
teleporting_stage++
@@ -64,24 +65,24 @@
. = ..()
if(!.)
return FALSE
- if(!isturf(owner.loc))
+ if(!isturf(user.loc))
return FALSE
if(!bloodsuckerdatum_power.coffin)
- to_chat(owner, span_warning("Your coffin has been destroyed! You no longer have a destination."))
+ to_chat(user, span_warning("Your coffin has been destroyed! You no longer have a destination."))
return FALSE
return TRUE
/datum/action/bloodsucker/gohome/proc/flicker_lights(flicker_range, beat_volume)
for(var/obj/machinery/light/nearby_lights in view(flicker_range, get_turf(owner)))
nearby_lights.flicker(5)
- playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', beat_volume, 1)
+ playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', beat_volume, TRUE)
/datum/action/bloodsucker/gohome/proc/teleport_to_coffin(mob/living/carbon/user)
var/drop_item = FALSE
- var/turf/current_turf = get_turf(owner)
+ var/turf/current_turf = get_turf(user)
// If we aren't in the dark, anyone watching us will cause us to drop out stuff
if(current_turf && current_turf.lighting_object && current_turf.get_lumcount() >= 0.2)
- for(var/mob/living/watchers in viewers(world.view, get_turf(owner)) - owner)
+ for(var/mob/living/watchers in viewers(world.view, get_turf(user)) - user)
if(!watchers.client)
continue
if(watchers.has_unlimited_silicon_privilege)
@@ -99,10 +100,10 @@
var/obj/item/legcuffs = user.legcuffed
user.dropItemToGround(legcuffs)
if(drop_item)
- for(var/obj/item/literally_everything in owner)
- owner.dropItemToGround(literally_everything, TRUE)
+ for(var/obj/item/literally_everything in user)
+ user.dropItemToGround(literally_everything, TRUE)
- playsound(current_turf, 'sound/magic/summon_karp.ogg', 60, 1)
+ playsound(current_turf, 'sound/magic/summon_karp.ogg', 60, TRUE)
var/datum/effect_system/steam_spread/bloodsucker/puff = new /datum/effect_system/steam_spread/bloodsucker()
puff.set_up(3, 0, current_turf)
puff.start()
@@ -112,13 +113,13 @@
new new_mob(current_turf)
/// TELEPORT: Move to Coffin & Close it!
user.set_resting(TRUE, TRUE, FALSE)
- do_teleport(owner, bloodsuckerdatum_power.coffin, no_effects = TRUE, forced = TRUE, channel = TELEPORT_CHANNEL_QUANTUM)
+ do_teleport(user, bloodsuckerdatum_power.coffin, no_effects = TRUE, forced = TRUE, channel = TELEPORT_CHANNEL_QUANTUM)
user.Stun(3 SECONDS, TRUE)
// Puts me inside.
- if(!bloodsuckerdatum_power.coffin.insert(owner))
+ if(!bloodsuckerdatum_power.coffin.close(user))
// CLOSE LID: If fail, force me in.
- bloodsuckerdatum_power.coffin.close(owner)
- playsound(bloodsuckerdatum_power.coffin.loc, bloodsuckerdatum_power.coffin.close_sound, 15, 1, -3)
+ bloodsuckerdatum_power.coffin.insert(user)
+ playsound(bloodsuckerdatum_power.coffin.loc, bloodsuckerdatum_power.coffin.close_sound, 15, TRUE, -3)
DeactivatePower()
diff --git a/code/modules/antagonists/bloodsuckers/powers/targeted/brawn.dm b/code/modules/antagonists/bloodsuckers/powers/targeted/brawn.dm
index fb7331e8c56c..fcb5dc33d384 100644
--- a/code/modules/antagonists/bloodsuckers/powers/targeted/brawn.dm
+++ b/code/modules/antagonists/bloodsuckers/powers/targeted/brawn.dm
@@ -45,8 +45,8 @@
if(!istype(closet))
return FALSE
closet.visible_message(
- span_warning("closet] tears apart as [user] bashes it open from within!"),
- span_warning("closet] tears apart as you bash it open from within!"),
+ span_warning("[closet] tears apart as [user] bashes it open from within!"),
+ span_warning("[closet] tears apart as you bash it open from within!"),
)
to_chat(user, span_warning("We bash [closet] wide open!"))
addtimer(CALLBACK(src, .proc/break_closet, user, closet), 1)
@@ -80,7 +80,7 @@
// Did we end up using our ability? If so, play the sound effect and return TRUE
if(used)
- playsound(get_turf(user), 'sound/effects/grillehit.ogg', 80, 1, -1)
+ playsound(get_turf(user), 'sound/effects/grillehit.ogg', 80, TRUE, -1)
return used
// This is its own proc because its done twice, to repeat code copypaste.
@@ -96,7 +96,7 @@
return FALSE
var/mob/pulled_mob = owner.pulledby
var/pull_power = pulled_mob.grab_state
- playsound(get_turf(pulled_mob), 'sound/effects/woodhit.ogg', 75, 1, -1)
+ playsound(get_turf(pulled_mob), 'sound/effects/woodhit.ogg', 75, TRUE, -1)
// Knock Down (if Living)
if(isliving(pulled_mob))
var/mob/living/hit_target = pulled_mob
@@ -133,7 +133,7 @@
target.Knockdown(min(5, rand(10, 10 * powerlevel)))
// Attack!
to_chat(owner, span_warning("You punch [target]!"))
- playsound(get_turf(target), 'sound/weapons/punch4.ogg', 60, 1, -1)
+ playsound(get_turf(target), 'sound/weapons/punch4.ogg', 60, TRUE, -1)
user.do_attack_animation(target, ATTACK_EFFECT_SMASH)
var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(target.zone_selected))
target.apply_damage(hitStrength, BRUTE, affecting)
@@ -153,11 +153,11 @@
return FALSE
target_closet.visible_message(span_danger("[target_closet] breaks open as [user] bashes it!"))
addtimer(CALLBACK(src, .proc/break_closet, user, target_closet), 1)
- playsound(get_turf(user), 'sound/effects/grillehit.ogg', 80, 1, -1)
+ playsound(get_turf(user), 'sound/effects/grillehit.ogg', 80, TRUE, -1)
// Target Type: Door
else if(istype(target_atom, /obj/machinery/door) && level_current >= 4)
var/obj/machinery/door/target_airlock = target_atom
- playsound(get_turf(user), 'sound/machines/airlock_alien_prying.ogg', 40, 1, -1)
+ playsound(get_turf(user), 'sound/machines/airlock_alien_prying.ogg', 40, TRUE, -1)
to_chat(owner, span_warning("You prepare to tear open [target_airlock]..."))
if(!do_mob(user, target_airlock, 2.5 SECONDS))
return FALSE
@@ -165,7 +165,7 @@
target_airlock.visible_message(span_danger("[target_airlock] breaks open as [user] bashes it!"))
user.Stun(10)
user.do_attack_animation(target_airlock, ATTACK_EFFECT_SMASH)
- playsound(get_turf(target_airlock), 'sound/effects/bang.ogg', 30, 1, -1)
+ playsound(get_turf(target_airlock), 'sound/effects/bang.ogg', 30, TRUE, -1)
target_airlock.open(2) // open(2) is like a crowbar or jaws of life.
/datum/action/bloodsucker/targeted/brawn/CheckValidTarget(atom/target_atom)
diff --git a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_life.dm b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_life.dm
index 7f99c1fb1208..4a94505bec52 100644
--- a/code/modules/antagonists/bloodsuckers/structures/bloodsucker_life.dm
+++ b/code/modules/antagonists/bloodsuckers/structures/bloodsucker_life.dm
@@ -36,7 +36,7 @@
to_chat(owner.current, span_warning("You hit the maximum amount of lost Humanity, you are far from Human."))
return
humanity_lost += value
- to_chat(owner.current, span_warning("You feel as if you lost some of your humanity, you will now enter Frenzy at [FRENZY_THRESHOLD_ENTER + (humanity_lost * 10)] Blood."))
+ to_chat(owner.current, span_warning("You feel as if you lost some of your humanity, you will now enter Frenzy at [FRENZY_THRESHOLD_ENTER + humanity_lost * 10] Blood."))
/// mult: SILENT feed is 1/3 the amount
/datum/antagonist/bloodsucker/proc/HandleFeeding(mob/living/carbon/target, mult=1, power_level)
@@ -236,7 +236,7 @@
// BLOOD_VOLUME_GOOD: [336] - Pale
// handled in bloodsucker_integration.dm
// BLOOD_VOLUME_EXIT: [560] - Exit Frenzy (If in one) This is high because we want enough to kill the poor soul they feed off of.
- if(owner.current.blood_volume >= FRENZY_THRESHOLD_EXIT && frenzied)
+ if(owner.current.blood_volume >= (FRENZY_THRESHOLD_EXIT + humanity_lost * 10) && frenzied)
owner.current.remove_status_effect(STATUS_EFFECT_FRENZY)
// BLOOD_VOLUME_BAD: [224] - Jitter
if(owner.current.blood_volume < BLOOD_VOLUME_BAD(owner.current) && prob(0.5) && !HAS_TRAIT(owner.current, TRAIT_NODEATH) && !HAS_TRAIT(owner.current, TRAIT_MASQUERADE))
@@ -246,7 +246,7 @@
owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD(owner.current)))
// The more blood, the better the Regeneration, get too low blood, and you enter Frenzy.
- if(owner.current.blood_volume < (FRENZY_THRESHOLD_ENTER + (humanity_lost * 10)) && !frenzied)
+ if(owner.current.blood_volume < (FRENZY_THRESHOLD_ENTER + humanity_lost * 10) && !frenzied)
if(!iscarbon(owner.current))
return
if(owner.current.stat == DEAD)
@@ -276,18 +276,18 @@
owner.current.apply_status_effect(STATUS_EFFECT_FRENZY)
return
if(2 to INFINITY)
- AddBloodVolume(560 - user.blood_volume) //so it doesn't happen multiple times and refills your blood when you get out again
+ AddBloodVolume(FRENZY_THRESHOLD_EXIT + humanity_lost * 10 - user.blood_volume) //so it doesn't happen multiple times and refills your blood when you get out again
if(!do_mob(user, user, 2 SECONDS, TRUE))
return
- playsound(user.loc, 'sound/weapons/slash.ogg', 25, 1)
+ playsound(user.loc, 'sound/weapons/slash.ogg', 25, TRUE)
to_chat(user, span_warning("You skin rips and tears."))
if(!do_mob(user, user, 1 SECONDS, TRUE))
return
- playsound(user.loc, 'sound/weapons/slashmiss.ogg', 25, 1)
+ playsound(user.loc, 'sound/weapons/slashmiss.ogg', 25, TRUE)
to_chat(user, span_warning("You heart pumps blackened blood into your veins as your skin turns into fur."))
if(!do_mob(user, user, 1 SECONDS, TRUE))
return
- playsound(user.loc, 'sound/weapons/slice.ogg', 25, 1)
+ playsound(user.loc, 'sound/weapons/slice.ogg', 25, TRUE)
to_chat(user, span_boldnotice("YOU HAVE AWOKEN."))
var/mob/living/simple_animal/hostile/bloodsucker/werewolf/ww
if(!ww || ww.stat == DEAD)