Merge pull request #8339 from Mechoid/AnomBattery

Anomaly Battery Fix
This commit is contained in:
MistakeNot4892
2021-10-18 11:47:21 +11:00
committed by GitHub
33 changed files with 92 additions and 82 deletions

View File

@@ -26,6 +26,12 @@
..()
/datum/artifact_effect/proc/get_master_holder() // Return the effectmaster's holder, if it is set to an effectmaster. Otherwise, master is the target object.
if(istype(master))
return master.holder
else
return master
/datum/artifact_effect/New(var/datum/component/artifact_master/newmaster)
..()
@@ -61,15 +67,17 @@
//so that other stuff happens first
set waitfor = FALSE
var/atom/target = get_master_holder()
if(world.time - last_activation > 1 SECOND)
last_activation = world.time
if(activated)
activated = 0
else
activated = 1
if(reveal_toggle && master.holder)
if(!isliving(master.holder))
master.holder.update_icon()
if(reveal_toggle && target)
if(!isliving(target))
target.update_icon()
var/display_msg
if(activated)
display_msg = pick("momentarily glows brightly!","distorts slightly for a moment!","flickers slightly!","vibrates!","shimmers slightly for a moment!")
@@ -78,11 +86,11 @@
if(active_effect)
if(activated)
master.holder.underlays.Add(active_effect)
target.underlays.Add(active_effect)
else
master.holder.underlays.Remove(active_effect)
target.underlays.Remove(active_effect)
var/atom/toplevelholder = master.holder
var/atom/toplevelholder = target
while(!istype(toplevelholder.loc, /turf))
toplevelholder = toplevelholder.loc
toplevelholder.visible_message("<font color='red'>[bicon(toplevelholder)] [toplevelholder] [display_msg]</font>")

View File

@@ -16,22 +16,24 @@
effectrange = max(3, effectrange)
/datum/artifact_effect/animate_anomaly/proc/find_target()
if(!target || target.z != master.holder.z || get_dist(target, master.holder) > effectrange)
var/atom/masterholder = get_master_holder()
if(!target || target.z != masterholder.z || get_dist(target, masterholder) > effectrange)
var/mob/living/ClosestMob = null
for(var/mob/living/L in range(effectrange, get_turf(master.holder)))
for(var/mob/living/L in range(effectrange, get_turf(masterholder)))
if(!L.mind)
continue
if(!ClosestMob)
ClosestMob = L
continue
if(!L.stat)
if(get_dist(master.holder, L) < get_dist(master.holder, ClosestMob))
if(get_dist(masterholder, L) < get_dist(masterholder, ClosestMob))
ClosestMob = L
target = ClosestMob
/datum/artifact_effect/animate_anomaly/DoEffectTouch(var/mob/living/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/obj/O = holder
var/turf/T = get_step_away(O, user)
@@ -40,7 +42,7 @@
O.visible_message("<span class='alien'>\The [holder] lurches away from [user]</span>")
/datum/artifact_effect/animate_anomaly/DoEffectAura()
var/obj/O = master.holder
var/obj/O = get_master_holder()
find_target()
if(!target || !istype(O))

View File

@@ -42,7 +42,7 @@
H.dizziness += rand(3,5)
/datum/artifact_effect/badfeeling/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))
@@ -57,7 +57,7 @@
return 1
/datum/artifact_effect/badfeeling/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))

View File

@@ -31,7 +31,7 @@
return TRUE
/datum/artifact_effect/berserk/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/L in range(src.effectrange,T))
@@ -40,7 +40,7 @@
return TRUE
/datum/artifact_effect/berserk/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/L in range(src.effectrange,T))

View File

@@ -44,7 +44,7 @@
H.nutrition = H.nutrition / 1.5
/datum/artifact_effect/cannibalfeeling/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))
@@ -61,7 +61,7 @@
return 1
/datum/artifact_effect/cannibalfeeling/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))

View File

@@ -16,7 +16,7 @@
return 1
/datum/artifact_effect/cellcharge/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))
@@ -33,7 +33,7 @@
return 1
/datum/artifact_effect/cellcharge/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))

View File

@@ -19,7 +19,7 @@
return 1
/datum/artifact_effect/celldrain/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))
@@ -36,7 +36,7 @@
return 1
/datum/artifact_effect/celldrain/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))

View File

@@ -12,7 +12,7 @@
effect_type = pick(EFFECT_ORGANIC, EFFECT_BLUESPACE, EFFECT_SYNTH)
/datum/artifact_effect/cold/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
to_chat(user, "<font color='blue'>A chill passes up your spine!</font>")
var/datum/gas_mixture/env = holder.loc.return_air()
@@ -20,7 +20,7 @@
env.temperature = max(env.temperature - rand(5,50), 0)
/datum/artifact_effect/cold/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/datum/gas_mixture/env = holder.loc.return_air()
if(env && env.temperature > target_temp)

View File

@@ -31,7 +31,7 @@
return 1
/datum/artifact_effect/dnaswitch/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/carbon/human/H in range(src.effectrange,T))
@@ -51,7 +51,7 @@
scramble(0, H, weakness * severity)
/datum/artifact_effect/dnaswitch/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/carbon/human/H in range(200, T))

View File

@@ -6,7 +6,7 @@
effect_color = "#ffff00"
/datum/artifact_effect/electric_field/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/list/nearby_mobs = list()
for(var/mob/living/L in oview(effectrange, get_turf(holder)))
if(L == user) // You're "grounded" when you contact the artifact.
@@ -30,7 +30,7 @@
L.electrocute_act(rand(25, 40), holder, 0.75, BP_TORSO)
/datum/artifact_effect/electric_field/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/list/nearby_mobs = list()
for(var/mob/living/L in oview(effectrange, get_turf(holder)))
if(!L.stat)
@@ -52,7 +52,7 @@
L.electrocute_act(rand(1, 10), holder, 0.75, BP_TORSO)
/datum/artifact_effect/electric_field/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/list/nearby_mobs = list()
for(var/mob/living/L in oview(effectrange, get_turf(holder)))
if(!L.stat)

View File

@@ -9,7 +9,7 @@
effect = EFFECT_PULSE
/datum/artifact_effect/emp/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
empulse(T, effectrange/4, effectrange/3, effectrange/2, effectrange)

View File

@@ -31,7 +31,7 @@
return TRUE
/datum/artifact_effect/feysight/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/L in range(src.effectrange,T))
@@ -40,7 +40,7 @@
return TRUE
/datum/artifact_effect/feysight/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/L in range(src.effectrange,T))

View File

@@ -11,7 +11,7 @@
trigger = TRIGGER_TOUCH
/datum/artifact_effect/forcefield/ToggleActivate()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
..()
if(created_field.len)
for(var/obj/effect/energy_field/F in created_field)
@@ -39,7 +39,7 @@
E.adjust_strength(0.25, 0)
/datum/artifact_effect/forcefield/UpdateMove()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(created_field.len && holder)
var/turf/T = get_turf(holder)
while(created_field.len < 16)

View File

@@ -32,7 +32,7 @@
P.update_icon()
/datum/artifact_effect/gaia/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
to_chat(user, "<span class='alien'>You feel the presence of something long forgotten.</span>")
for(var/obj/machinery/portable_atmospherics/hydroponics/Tray in view(world.view,get_turf(holder)))
age_plantlife(Tray)
@@ -47,7 +47,7 @@
age_plantlife(P)
/datum/artifact_effect/gaia/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
for(var/obj/machinery/portable_atmospherics/hydroponics/Tray in view(effectrange,holder))
age_plantlife(Tray)
if(prob(2))
@@ -61,7 +61,7 @@
age_plantlife(P)
/datum/artifact_effect/gaia/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
for(var/obj/machinery/portable_atmospherics/hydroponics/Tray in view(effectrange,holder))
age_plantlife(Tray)
if(prob(10))
@@ -75,7 +75,7 @@
age_plantlife(P)
/datum/artifact_effect/gaia/process()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
..()
listclearnulls(my_glitterflies)

View File

@@ -9,14 +9,14 @@
effect_type = pick(EFFECT_BLUESPACE, EFFECT_SYNTH)
/datum/artifact_effect/gasco2/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))
holder_loc.assume_gas("carbon_dioxide", rand(2, 15))
/datum/artifact_effect/gasco2/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))

View File

@@ -9,14 +9,14 @@
effect_type = pick(EFFECT_BLUESPACE, EFFECT_SYNTH)
/datum/artifact_effect/gasnitro/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))
holder_loc.assume_gas("nitrogen", rand(2, 15))
/datum/artifact_effect/gasnitro/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))

View File

@@ -7,14 +7,14 @@
effect_type = pick(EFFECT_BLUESPACE, EFFECT_SYNTH)
/datum/artifact_effect/gasoxy/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))
holder_loc.assume_gas("oxygen", rand(2, 15))
/datum/artifact_effect/gasoxy/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))

View File

@@ -9,14 +9,14 @@
effect_type = pick(EFFECT_BLUESPACE, EFFECT_SYNTH)
/datum/artifact_effect/gasphoron/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))
holder_loc.assume_gas("phoron", rand(2, 15))
/datum/artifact_effect/gasphoron/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))

View File

@@ -7,14 +7,14 @@
effect_type = pick(EFFECT_BLUESPACE, EFFECT_SYNTH)
/datum/artifact_effect/gassleeping/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))
holder_loc.assume_gas("nitrous_oxide", rand(2, 15))
/datum/artifact_effect/gassleeping/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/holder_loc = holder.loc
if(istype(holder_loc))

View File

@@ -40,7 +40,7 @@
H.dizziness += rand(3,5)
/datum/artifact_effect/goodfeeling/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))
@@ -55,7 +55,7 @@
return 1
/datum/artifact_effect/goodfeeling/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))

View File

@@ -12,7 +12,7 @@
gravwave(user, effectrange, STAGE_TWO)
/datum/artifact_effect/gravity_wave/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/seconds_since_last_pull = max(0, round((last_wave_pull - world.time) / 10))
if(prob(10 + seconds_since_last_pull))
@@ -21,7 +21,7 @@
gravwave(get_turf(holder), effectrange, STAGE_TWO)
/datum/artifact_effect/gravity_wave/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
holder.visible_message("<span class='alien'>\The [holder] distorts as local gravity intensifies, and shifts toward it.</span>")
gravwave(get_turf(holder), effectrange, STAGE_TWO)

View File

@@ -34,7 +34,7 @@
return 1
/datum/artifact_effect/heal/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
//todo: check over this properly
if(holder)
var/turf/T = get_turf(holder)
@@ -51,7 +51,7 @@
C.updatehealth()
/datum/artifact_effect/heal/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
//todo: check over this properly
if(holder)
var/turf/T = get_turf(holder)

View File

@@ -11,7 +11,7 @@
target_temp = rand(300, 600)
/datum/artifact_effect/heat/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
to_chat(user, "<font color='red'> You feel a wave of heat travel up your spine!</font>")
var/datum/gas_mixture/env = holder.loc.return_air()
@@ -19,7 +19,7 @@
env.temperature += rand(5,50)
/datum/artifact_effect/heat/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/datum/gas_mixture/env = holder.loc.return_air()
if(env && env.temperature < target_temp)

View File

@@ -22,7 +22,7 @@
C.weakened += 6 * weakness
/datum/artifact_effect/hurt/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/C in range(src.effectrange,T))
@@ -38,7 +38,7 @@
C.updatehealth()
/datum/artifact_effect/hurt/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/C in range(effectrange, T))

View File

@@ -22,7 +22,7 @@
throw_at_mob(user, rand(10, 30))
/datum/artifact_effect/poltergeist/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/mob/living/target = null
for(var/mob/living/L in oview(get_turf(holder), effectrange))
if(L.stat || !L.mind)
@@ -37,7 +37,7 @@
throw_at_mob(target, rand(15, 30))
/datum/artifact_effect/poltergeist/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/mob/living/target = null
for(var/mob/living/L in oview(get_turf(holder), effectrange))
if(L.stat || !L.mind)

View File

@@ -16,13 +16,13 @@
return 1
/datum/artifact_effect/radiate/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
SSradiation.flat_radiate(holder, radiation_amount, src.effectrange)
return 1
/datum/artifact_effect/radiate/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
SSradiation.radiate(holder, ((radiation_amount * 25) * (sqrt(src.effectrange)))) //Need to get feedback on this
return 1

View File

@@ -8,7 +8,7 @@
effect_color = "#ff0000"
/datum/artifact_effect/resurrect/proc/steal_life(var/mob/living/target = null)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(!istype(target))
return 0
@@ -20,7 +20,7 @@
return 0
/datum/artifact_effect/resurrect/proc/give_life(var/mob/living/target = null)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(!istype(target))
return
@@ -39,7 +39,7 @@
stored_life = 0
/datum/artifact_effect/resurrect/proc/attempt_revive(var/mob/living/L = null)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
spawn()
if(istype(L, /mob/living/simple_mob))
var/mob/living/simple_mob/SM = L
@@ -76,7 +76,7 @@
holder.visible_message("<span class='alien'>\The [H]'s eyes open in a flash of light!</span>")
/datum/artifact_effect/resurrect/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
for(var/mob/living/L in oview(effectrange, get_turf(holder)))
stored_life += 4 * steal_life(L)
@@ -87,7 +87,7 @@
break
/datum/artifact_effect/resurrect/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
for(var/mob/living/L in oview(effectrange, get_turf(holder)))
stored_life += steal_life(L)
@@ -98,7 +98,7 @@
break
/datum/artifact_effect/resurrect/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
for(var/mob/living/L in oview(effectrange, get_turf(holder)))
stored_life += 2 * steal_life(L)

View File

@@ -18,7 +18,7 @@
return 1
/datum/artifact_effect/roboheal/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,T))
@@ -31,7 +31,7 @@
return 1
/datum/artifact_effect/roboheal/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,T))

View File

@@ -18,7 +18,7 @@
return 1
/datum/artifact_effect/robohurt/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,T))
@@ -31,7 +31,7 @@
return 1
/datum/artifact_effect/robohurt/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/silicon/robot/M in range(src.effectrange,T))

View File

@@ -21,7 +21,7 @@
return 1
/datum/artifact_effect/sleepy/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/human/H in range(src.effectrange,T))
@@ -36,7 +36,7 @@
return 1
/datum/artifact_effect/sleepy/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for(var/mob/living/carbon/human/H in range(src.effectrange, T))

View File

@@ -17,7 +17,7 @@
C.Stun(rand(1,10) * susceptibility)
/datum/artifact_effect/stun/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/C in range(src.effectrange,T))
@@ -32,7 +32,7 @@
to_chat(C, "<font color='red'>You feel numb.</font>")
/datum/artifact_effect/stun/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/carbon/C in range(src.effectrange,T))

View File

@@ -5,7 +5,7 @@
effect_color = "#88ffdb"
/datum/artifact_effect/teleport/DoEffectTouch(var/mob/user)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
var/weakness = GetAnomalySusceptibility(user)
if(prob(100 * weakness))
to_chat(user, "<font color='red'>You are suddenly zapped away elsewhere!</font>")
@@ -23,7 +23,7 @@
sparks.start()
/datum/artifact_effect/teleport/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/M in range(src.effectrange,T))
@@ -43,7 +43,7 @@
sparks.start()
/datum/artifact_effect/teleport/DoEffectPulse()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
for (var/mob/living/M in range(src.effectrange, T))

View File

@@ -13,7 +13,7 @@
effect_color = "#ff0000"
/datum/artifact_effect/vampire/proc/bloodcall(var/mob/living/carbon/human/M)
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
last_bloodcall = world.time
if(istype(M))
playsound(holder, pick('sound/hallucinations/wail.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/far_noise.ogg'), 50, 1, -3)
@@ -34,10 +34,10 @@
DoEffectAura()
/datum/artifact_effect/vampire/DoEffectAura()
var/atom/holder = master.holder
var/atom/holder = get_master_holder()
if(nearby_mobs.len)
nearby_mobs.Cut()
var/turf/T = get_turf(master.holder)
var/turf/T = get_turf(holder)
for(var/mob/living/L in oview(effectrange, T))
if(!L.stat && L.mind)
@@ -50,7 +50,7 @@
holder.Beam(M, icon_state = "drainbeam", time = 1 SECOND)
if(world.time - last_eat >= eat_interval)
var/obj/effect/decal/cleanable/blood/B = locate() in range(2,master.holder)
var/obj/effect/decal/cleanable/blood/B = locate() in range(2,holder)
if(B)
last_eat = world.time
B.loc = null