procs
This commit is contained in:
@@ -51,7 +51,7 @@
|
||||
weapon.attack(C, src)
|
||||
playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1)
|
||||
if(C.stat == DEAD)
|
||||
addtimer(CALLBACK(src, /atom/.proc/update_icon), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 2)
|
||||
back_to_idle()
|
||||
|
||||
|
||||
|
||||
@@ -50,14 +50,14 @@
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/proc/sensor_blink()
|
||||
icon_state = "honkbot-c"
|
||||
addtimer(CALLBACK(src, /atom/.proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
|
||||
//honkbots react with sounds.
|
||||
/mob/living/simple_animal/bot/honkbot/proc/react_ping()
|
||||
playsound(src, 'sound/machines/ping.ogg', 50, TRUE, -1) //the first sound upon creation!
|
||||
spam_flag = TRUE
|
||||
sensor_blink()
|
||||
addtimer(CALLBACK(src, .proc/spam_flag_false), 18) // calibrates before starting the honk
|
||||
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), 18) // calibrates before starting the honk
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/proc/react_buzz()
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE, -1)
|
||||
@@ -97,7 +97,7 @@
|
||||
/mob/living/simple_animal/bot/honkbot/on_attack_hand(mob/living/carbon/human/H)
|
||||
if(H.a_intent == INTENT_HARM)
|
||||
retaliate(H)
|
||||
addtimer(CALLBACK(src, .proc/react_buzz), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
return
|
||||
if(!W.tool_behaviour == TOOL_SCREWDRIVER && (W.force) && (!target) && (W.damtype != STAMINA) ) // Check for welding tool to fix #2432.
|
||||
retaliate(user)
|
||||
addtimer(CALLBACK(src, .proc/react_buzz), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5)
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/emag_act(mob/user)
|
||||
@@ -153,21 +153,21 @@
|
||||
playsound(src, honksound, 50, TRUE, -1)
|
||||
spam_flag = TRUE //prevent spam
|
||||
sensor_blink()
|
||||
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
|
||||
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn)
|
||||
else if (emagged == 2) //emagged honkbots will spam short and memorable sounds.
|
||||
if (!spam_flag)
|
||||
playsound(src, "honkbot_e", 50, 0)
|
||||
spam_flag = TRUE // prevent spam
|
||||
icon_state = "honkbot-e"
|
||||
addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn)
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack
|
||||
if(!spam_flag)
|
||||
playsound(loc, honksound, 50, TRUE, -1)
|
||||
spam_flag = TRUE // prevent spam
|
||||
sensor_blink()
|
||||
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
|
||||
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn)
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/proc/stun_attack(mob/living/carbon/C) // airhorn stun
|
||||
if(!spam_flag)
|
||||
@@ -189,7 +189,7 @@
|
||||
target = oldtarget_name
|
||||
else // you really don't want to hit an emagged honkbot
|
||||
threatlevel = 6 // will never let you go
|
||||
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime)
|
||||
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime)
|
||||
|
||||
log_combat(src,C,"honked")
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
else
|
||||
C.stuttering = 20
|
||||
C.DefaultCombatKnockdown(80)
|
||||
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime)
|
||||
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime)
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/handle_automated_action()
|
||||
|
||||
@@ -427,8 +427,8 @@
|
||||
process_bot()
|
||||
num_steps--
|
||||
if(mode != BOT_IDLE)
|
||||
var/process_timer = addtimer(CALLBACK(src, .proc/process_bot), 2, TIMER_LOOP|TIMER_STOPPABLE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/deltimer, process_timer), (num_steps*2) + 1)
|
||||
var/process_timer = addtimer(CALLBACK(src, PROC_REF(process_bot)), 2, TIMER_LOOP|TIMER_STOPPABLE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(deltimer), process_timer), (num_steps*2) + 1)
|
||||
|
||||
/mob/living/simple_animal/bot/mulebot/proc/process_bot()
|
||||
if(!on || client)
|
||||
@@ -493,7 +493,7 @@
|
||||
buzz(SIGH)
|
||||
mode = BOT_WAIT_FOR_NAV
|
||||
blockcount = 0
|
||||
addtimer(CALLBACK(src, .proc/process_blocked, next), 2 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(process_blocked), next), 2 SECONDS)
|
||||
return
|
||||
return
|
||||
else
|
||||
|
||||
@@ -380,7 +380,7 @@
|
||||
/mob/living/simple_animal/bot/secbot/proc/stun_attack(mob/living/carbon/C)
|
||||
var/judgement_criteria = judgement_criteria()
|
||||
icon_state = "secbot-c"
|
||||
addtimer(CALLBACK(src, /atom/.proc/update_icon), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 2)
|
||||
var/threat = 5
|
||||
if(ishuman(C))
|
||||
if(stored_fashion)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
var/datum/action/innate/mansus_speech/action = new(src)
|
||||
linked_mobs[mob_linked] = action
|
||||
action.Grant(mob_linked)
|
||||
RegisterSignal(mob_linked, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING) , .proc/unlink_mob)
|
||||
RegisterSignal(mob_linked, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING) , PROC_REF(unlink_mob))
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/eldritch/raw_prophet/proc/unlink_mob(mob/living/mob_linked)
|
||||
@@ -143,7 +143,7 @@
|
||||
stack_trace("Eldritch Armsy created with invalid len ([len]). Reverting to 3.")
|
||||
len = 3 //code breaks below 3, let's just not allow it.
|
||||
oldloc = loc
|
||||
RegisterSignal(src,COMSIG_MOVABLE_MOVED,.proc/update_chain_links)
|
||||
RegisterSignal(src,COMSIG_MOVABLE_MOVED, PROC_REF(update_chain_links))
|
||||
if(!spawn_more)
|
||||
return
|
||||
allow_pulling = TRUE
|
||||
|
||||
@@ -173,7 +173,7 @@ GLOBAL_LIST(bad_gremlin_items)
|
||||
|
||||
loc = exit_vent
|
||||
var/travel_time = round(get_dist(loc, exit_vent.loc) / 2)
|
||||
addtimer(CALLBACK(src, .proc/exit_vents), travel_time) //come out at exit vent in 2 to 20 seconds
|
||||
addtimer(CALLBACK(src, PROC_REF(exit_vents)), travel_time) //come out at exit vent in 2 to 20 seconds
|
||||
|
||||
|
||||
if(world.time > min_next_vent && !entry_vent && !in_vent && prob(GREMLIN_VENT_CHANCE)) //small chance to go into a vent
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
return
|
||||
if(isobj(A) && Adjacent(A))
|
||||
if(bomb_cooldown <= world.time && !stat)
|
||||
var/datum/component/killerqueen/K = A.AddComponent(/datum/component/killerqueen, EXPLODE_HEAVY, CALLBACK(src, .proc/on_explode), CALLBACK(src, .proc/on_failure), \
|
||||
var/datum/component/killerqueen/K = A.AddComponent(/datum/component/killerqueen, EXPLODE_HEAVY, CALLBACK(src, PROC_REF(on_explode)), CALLBACK(src, .proc/on_failure), \
|
||||
examine_message = "<span class='holoparasite'>It glows with a strange <font color=\"[guardiancolor]\">light</font>!</span>")
|
||||
QDEL_IN(K, 1 MINUTES)
|
||||
to_chat(src, "<span class='danger'><B>Success! Bomb armed!</span></B>")
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
return
|
||||
A.AddElement(/datum/element/forced_gravity, new_gravity)
|
||||
gravito_targets[A] = new_gravity
|
||||
RegisterSignal(A, COMSIG_MOVABLE_MOVED, .proc/__distance_check)
|
||||
RegisterSignal(A, COMSIG_MOVABLE_MOVED, PROC_REF(__distance_check))
|
||||
playsound(src, 'sound/effects/gravhit.ogg', 100, TRUE)
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/remove_gravity(atom/target)
|
||||
|
||||
@@ -312,4 +312,4 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/bees/short/Initialize(mapload)
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/death), 50 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(death)), 50 SECONDS)
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
var/minions_chosen = pick(minions)
|
||||
var/mob/living/simple_animal/hostile/stickman/S = new minions_chosen (get_step(boss,pick_n_take(directions)), 1)
|
||||
S.faction = boss.faction
|
||||
RegisterSignal(S, COMSIG_PARENT_QDELETING, .proc/remove_from_list)
|
||||
RegisterSignal(S, COMSIG_PARENT_QDELETING, PROC_REF(remove_from_list))
|
||||
summoned_minions += S
|
||||
|
||||
/datum/action/boss/wizard_summon_minions/proc/remove_from_list(datum/source, forced)
|
||||
|
||||
@@ -190,7 +190,7 @@ GLOBAL_VAR_INIT(floor_cluwnes, 0)
|
||||
mobility_flags &= ~MOBILITY_MOVE
|
||||
update_mobility()
|
||||
cluwnehole = new(src.loc)
|
||||
addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/floor_cluwne/.proc/Appear), MANIFEST_DELAY)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal/hostile/floor_cluwne, Appear)), MANIFEST_DELAY)
|
||||
else
|
||||
layer = GAME_PLANE
|
||||
invisibility = INVISIBILITY_OBSERVER
|
||||
@@ -262,7 +262,7 @@ GLOBAL_VAR_INIT(floor_cluwnes, 0)
|
||||
to_chat(H, "<i>yalp ot tnaw I</i>")
|
||||
Appear()
|
||||
manifested = FALSE
|
||||
addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/floor_cluwne/.proc/Manifest), 1)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal/hostile/floor_cluwne, Manifest)), 1)
|
||||
|
||||
if(STAGE_TORMENT)
|
||||
|
||||
@@ -315,7 +315,7 @@ GLOBAL_VAR_INIT(floor_cluwnes, 0)
|
||||
H.reagents.add_reagent(/datum/reagent/mercury, 3)
|
||||
Appear()
|
||||
manifested = FALSE
|
||||
addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/floor_cluwne/.proc/Manifest), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal/hostile/floor_cluwne, Manifest)), 2)
|
||||
for(var/obj/machinery/light/L in range(8, H))
|
||||
L.flicker()
|
||||
|
||||
@@ -340,7 +340,7 @@ GLOBAL_VAR_INIT(floor_cluwnes, 0)
|
||||
manifested = TRUE
|
||||
Manifest()
|
||||
if(!eating)
|
||||
addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/floor_cluwne/.proc/Grab, H), 50, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal/hostile/floor_cluwne, Grab), H), 50, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
for(var/turf/open/O in RANGE_TURFS(6, src))
|
||||
O.MakeSlippery(TURF_WET_LUBE, 20)
|
||||
playsound(src, 'sound/effects/meteorimpact.ogg', 30, 1)
|
||||
@@ -370,7 +370,7 @@ GLOBAL_VAR_INIT(floor_cluwnes, 0)
|
||||
H.invisibility = INVISIBILITY_OBSERVER
|
||||
H.density = FALSE
|
||||
H.anchored = TRUE
|
||||
addtimer(CALLBACK(src, /mob/living/simple_animal/hostile/floor_cluwne/.proc/Kill, H), 100, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_animal/hostile/floor_cluwne, Kill), H), 100, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
visible_message("<span class='danger'>[src] pulls [H] under!</span>")
|
||||
to_chat(H, "<span class='userdanger'>[src] drags you underneath the floor!</span>")
|
||||
else
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
return
|
||||
Infect(target)
|
||||
to_chat(src, "<span class='userdanger'>With our egg laid, our death approaches rapidly...</span>")
|
||||
addtimer(CALLBACK(src, .proc/death), 100)
|
||||
addtimer(CALLBACK(src, PROC_REF(death)), 100)
|
||||
|
||||
/obj/item/organ/body_egg/changeling_egg
|
||||
name = "changeling egg"
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
|
||||
|
||||
if(rapid > 1)
|
||||
var/datum/callback/cb = CALLBACK(src, .proc/Shoot, A)
|
||||
var/datum/callback/cb = CALLBACK(src, PROC_REF(Shoot), A)
|
||||
for(var/i in 1 to rapid)
|
||||
addtimer(cb, (i - 1)*rapid_fire_delay)
|
||||
else
|
||||
@@ -561,7 +561,7 @@
|
||||
/mob/living/simple_animal/hostile/proc/GainPatience()
|
||||
if(lose_patience_timeout)
|
||||
LosePatience()
|
||||
lose_patience_timer_id = addtimer(CALLBACK(src, .proc/LoseTarget), lose_patience_timeout, TIMER_STOPPABLE)
|
||||
lose_patience_timer_id = addtimer(CALLBACK(src, PROC_REF(LoseTarget)), lose_patience_timeout, TIMER_STOPPABLE)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/LosePatience()
|
||||
@@ -572,7 +572,7 @@
|
||||
/mob/living/simple_animal/hostile/proc/LoseSearchObjects()
|
||||
search_objects = 0
|
||||
deltimer(search_objects_timer_id)
|
||||
search_objects_timer_id = addtimer(CALLBACK(src, .proc/RegainSearchObjects), search_objects_regain_time, TIMER_STOPPABLE)
|
||||
search_objects_timer_id = addtimer(CALLBACK(src, PROC_REF(RegainSearchObjects)), search_objects_regain_time, TIMER_STOPPABLE)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/RegainSearchObjects(value)
|
||||
@@ -625,7 +625,7 @@
|
||||
if(!(COOLDOWN_FINISHED(src, charge_cooldown)) || !has_gravity() || !target.has_gravity())
|
||||
return FALSE
|
||||
Shake(15, 15, 1 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/handle_charge_target, target), 1.5 SECONDS, TIMER_STOPPABLE)
|
||||
addtimer(CALLBACK(src, PROC_REF(handle_charge_target), target), 1.5 SECONDS, TIMER_STOPPABLE)
|
||||
|
||||
/**
|
||||
* Proc that throws the mob at the target after the windup.
|
||||
|
||||
@@ -215,14 +215,14 @@
|
||||
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1)
|
||||
if(target && AIStatus == AI_ON && projectile_ready && !ckey)
|
||||
face_atom(target)
|
||||
addtimer(CALLBACK(src, .proc/OpenFire, target), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(OpenFire), target), 5)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop()
|
||||
var/turf/new_turf = get_turf(target)
|
||||
hopping = TRUE
|
||||
mob_transforming = TRUE
|
||||
new /obj/effect/temp_visual/leaper_crush(new_turf)
|
||||
addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(BellyFlopHop), new_turf), 30)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T)
|
||||
density = FALSE
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
walk(src,0)
|
||||
update_icons()
|
||||
if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo)
|
||||
addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME)
|
||||
addtimer(CALLBACK(src, PROC_REF(SlashCombo)), ATTACK_INTERMISSION_TIME)
|
||||
return
|
||||
addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3))
|
||||
addtimer(CALLBACK(src, PROC_REF(LeapAttack)), ATTACK_INTERMISSION_TIME + rand(0,3))
|
||||
return
|
||||
attack_state = MOOK_ATTACK_RECOVERY
|
||||
ResetNeutral()
|
||||
@@ -83,9 +83,9 @@
|
||||
attack_state = MOOK_ATTACK_ACTIVE
|
||||
update_icons()
|
||||
SlashAttack()
|
||||
addtimer(CALLBACK(src, .proc/SlashAttack), 3)
|
||||
addtimer(CALLBACK(src, .proc/SlashAttack), 6)
|
||||
addtimer(CALLBACK(src, .proc/AttackRecovery), 9)
|
||||
addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 3)
|
||||
addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 6)
|
||||
addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 9)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack()
|
||||
if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE)
|
||||
@@ -132,11 +132,11 @@
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
if(L.incapacitated() && L.stat != DEAD)
|
||||
addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME)
|
||||
addtimer(CALLBACK(src, PROC_REF(WarmupAttack), TRUE), ATTACK_INTERMISSION_TIME)
|
||||
return
|
||||
addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME)
|
||||
addtimer(CALLBACK(src, PROC_REF(WarmupAttack)), ATTACK_INTERMISSION_TIME)
|
||||
return
|
||||
addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME)
|
||||
addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), ATTACK_INTERMISSION_TIME)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral()
|
||||
if(attack_state == MOOK_ATTACK_RECOVERY)
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
if(get_dist(src,target) >= 4 && prob(40))
|
||||
SolarBeamStartup(target)
|
||||
return
|
||||
addtimer(CALLBACK(src, .proc/Volley), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(Volley)), 5)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark
|
||||
if(combatant_state == SEEDLING_STATE_WARMUP && target)
|
||||
@@ -143,7 +143,7 @@
|
||||
if(get_dist(src,living_target) > 7)
|
||||
playsound(living_target,'sound/effects/seedling_chargeup.ogg', 100, 0)
|
||||
solar_beam_identifier = world.time
|
||||
addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35)
|
||||
addtimer(CALLBACK(src, PROC_REF(Beamu), living_target, solar_beam_identifier), 35)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0)
|
||||
if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier)
|
||||
@@ -163,7 +163,7 @@
|
||||
living_target.adjust_fire_stacks(0.2)//Just here for the showmanship
|
||||
living_target.IgniteMob()
|
||||
playsound(living_target,'sound/weapons/sear.ogg', 50, 1)
|
||||
addtimer(CALLBACK(src, .proc/AttackRecovery), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 5)
|
||||
return
|
||||
AttackRecovery()
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot)
|
||||
for(var/i in 1 to 13)
|
||||
addtimer(cb, i)
|
||||
addtimer(CALLBACK(src, .proc/AttackRecovery), 14)
|
||||
addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 14)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot()
|
||||
if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat)
|
||||
@@ -194,7 +194,7 @@
|
||||
ranged_cooldown = world.time + ranged_cooldown_time
|
||||
if(target)
|
||||
face_atom(target)
|
||||
addtimer(CALLBACK(src, .proc/ResetNeutral), 10)
|
||||
addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), 10)
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral()
|
||||
combatant_state = SEEDLING_STATE_NEUTRAL
|
||||
|
||||
@@ -320,7 +320,7 @@ Difficulty: Hard
|
||||
var/turf/targetturf = get_step(src, dir)
|
||||
L.forceMove(targetturf)
|
||||
playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, 1, -1)
|
||||
addtimer(CALLBACK(src, .proc/devour, L), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(devour), L), 2)
|
||||
sleep(1)
|
||||
|
||||
/obj/effect/temp_visual/dragon_swoop/bubblegum
|
||||
|
||||
@@ -288,7 +288,7 @@ Difficulty: Extremely Hard
|
||||
return
|
||||
forceMove(user)
|
||||
to_chat(user, "<span class='notice'>You feel a bit safer... but a demonic presence lurks in the back of your head...</span>")
|
||||
RegisterSignal(user, COMSIG_MOB_DEATH, .proc/resurrect)
|
||||
RegisterSignal(user, COMSIG_MOB_DEATH, PROC_REF(resurrect))
|
||||
|
||||
/// Resurrects the target when they die by cloning them into a new duplicate body and transferring their mind to the clone on a safe station turf
|
||||
/obj/item/resurrection_crystal/proc/resurrect(mob/living/carbon/user, gibbed)
|
||||
@@ -349,7 +349,7 @@ Difficulty: Extremely Hard
|
||||
icon_state = "frozen"
|
||||
|
||||
/datum/status_effect/ice_block_talisman/on_apply()
|
||||
RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/owner_moved)
|
||||
RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved))
|
||||
if(!owner.stat)
|
||||
to_chat(owner, "<span class='userdanger'>You become frozen in a cube!</span>")
|
||||
cube = icon('icons/effects/freeze.dmi', "ice_cube")
|
||||
|
||||
@@ -527,7 +527,7 @@ Difficulty: Normal
|
||||
friendly_fire_check = is_friendly_fire
|
||||
if(new_speed)
|
||||
speed = new_speed
|
||||
addtimer(CALLBACK(src, .proc/seek_target), 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(seek_target)), 1)
|
||||
|
||||
/obj/effect/temp_visual/hierophant/chaser/proc/get_target_dir()
|
||||
. = get_cardinal_dir(src, targetturf)
|
||||
|
||||
@@ -126,15 +126,15 @@ SHITCODE AHEAD. BE ADVISED. Also comment extravaganza
|
||||
minimum_distance = 0
|
||||
set_varspeed(0)
|
||||
charging = TRUE
|
||||
addtimer(CALLBACK(src, .proc/reset_charge), 60)
|
||||
addtimer(CALLBACK(src, PROC_REF(reset_charge)), 60)
|
||||
var/mob/living/L = target
|
||||
if(!istype(L) || L.stat != DEAD) //I know, weird syntax, but it just works.
|
||||
addtimer(CALLBACK(src, .proc/throw_thyself), 20)
|
||||
addtimer(CALLBACK(src, PROC_REF(throw_thyself)), 20)
|
||||
|
||||
///This is the proc that actually does the throwing. Charge only adds a timer for this.
|
||||
/mob/living/simple_animal/hostile/megafauna/legion/proc/throw_thyself()
|
||||
playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE)
|
||||
throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY)
|
||||
throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY)
|
||||
|
||||
///Deals some extra damage on throw impact.
|
||||
/mob/living/simple_animal/hostile/megafauna/legion/throw_impact(mob/living/hit_atom, datum/thrownthing/throwingdatum)
|
||||
@@ -349,7 +349,7 @@ SHITCODE AHEAD. BE ADVISED. Also comment extravaganza
|
||||
|
||||
/obj/structure/legionturret/Initialize(mapload)
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/set_up_shot), initial_firing_time)
|
||||
addtimer(CALLBACK(src, PROC_REF(set_up_shot)), initial_firing_time)
|
||||
|
||||
///Handles an extremely basic AI
|
||||
/obj/structure/legionturret/proc/set_up_shot()
|
||||
@@ -373,7 +373,7 @@ SHITCODE AHEAD. BE ADVISED. Also comment extravaganza
|
||||
var/datum/point/vector/V = new(T1.x, T1.y, T1.z, 0, 0, angle)
|
||||
generate_tracer_between_points(V, V.return_vector_after_increments(6), /obj/effect/projectile/tracer/legion/tracer, 0, shot_delay, 0, 0, 0, null)
|
||||
playsound(src, 'sound/machines/airlockopen.ogg', 100, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/fire_beam, angle), shot_delay)
|
||||
addtimer(CALLBACK(src, PROC_REF(fire_beam), angle), shot_delay)
|
||||
|
||||
///Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction.
|
||||
/obj/structure/legionturret/proc/fire_beam(angle)
|
||||
|
||||
@@ -152,7 +152,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
|
||||
/mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0)
|
||||
stop_automated_movement = TRUE
|
||||
AIStatus = AI_OFF
|
||||
addtimer(CALLBACK(src, .proc/EndAction), deci)
|
||||
addtimer(CALLBACK(src, PROC_REF(EndAction)), deci)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction()
|
||||
|
||||
@@ -159,7 +159,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
if(boosted)
|
||||
mychild.playsound_local(get_turf(mychild), 'sound/effects/magic.ogg', 40, 0)
|
||||
to_chat(mychild, "<b>Someone has activated your tumor. You will be returned to fight shortly, get ready!</b>")
|
||||
addtimer(CALLBACK(src, .proc/return_elite), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(return_elite)), 30)
|
||||
INVOKE_ASYNC(src, .proc/arena_checks)
|
||||
if(TUMOR_INACTIVE)
|
||||
activity = TUMOR_ACTIVE
|
||||
@@ -167,7 +167,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
visible_message("<span class='boldwarning'>[src] begins to convulse. Your instincts tell you to step back.</span>")
|
||||
activator = user
|
||||
if(!boosted)
|
||||
addtimer(CALLBACK(src, .proc/spawn_elite), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(spawn_elite)), 30)
|
||||
return
|
||||
visible_message("<span class='boldwarning'>Something within [src] stirs...</span>")
|
||||
var/list/candidates = pollCandidatesForMob("Do you want to play as a lavaland elite?", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, src, POLL_IGNORE_SENTIENCE_POTION)
|
||||
@@ -182,7 +182,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
to_chat(elitemind, "<br><span class='userdanger'>!!READ THIS!!</span><br><span class='warning'>The following is server-specific policy configuration and overrides anything said above if conflicting.</span>")
|
||||
to_chat(elitemind, "<br><br>")
|
||||
to_chat(elitemind, "<span class='boldnotice'>[policy]</span>")
|
||||
addtimer(CALLBACK(src, .proc/spawn_elite, elitemind), 100)
|
||||
addtimer(CALLBACK(src, PROC_REF(spawn_elite), elitemind), 100)
|
||||
else
|
||||
visible_message("<span class='boldwarning'>The stirring stops, and nothing emerges. Perhaps try again later.</span>")
|
||||
activity = TUMOR_INACTIVE
|
||||
@@ -249,7 +249,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
INVOKE_ASYNC(src, .proc/arena_trap) //Gets another arena trap queued up for when this one runs out.
|
||||
INVOKE_ASYNC(src, .proc/border_check) //Checks to see if our fighters got out of the arena somehow.
|
||||
if(!QDELETED(src))
|
||||
addtimer(CALLBACK(src, .proc/arena_checks), 50)
|
||||
addtimer(CALLBACK(src, PROC_REF(arena_checks)), 50)
|
||||
|
||||
/obj/structure/elite_tumor/proc/fighters_check()
|
||||
if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator))
|
||||
|
||||
+2
-2
@@ -139,7 +139,7 @@
|
||||
color = "#FF0000"
|
||||
set_varspeed(0)
|
||||
move_to_delay = 3
|
||||
addtimer(CALLBACK(src, .proc/reset_rage), 65)
|
||||
addtimer(CALLBACK(src, PROC_REF(reset_rage)), 65)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/broodmother/proc/reset_rage()
|
||||
color = "#FFFFFF"
|
||||
@@ -216,7 +216,7 @@
|
||||
retract()
|
||||
else
|
||||
deltimer(timerid)
|
||||
timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE)
|
||||
timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE)
|
||||
|
||||
/obj/effect/temp_visual/goliath_tentacle/broodmother/patch/Initialize(mapload, new_spawner)
|
||||
. = ..()
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/death()
|
||||
. = ..()
|
||||
if(!is_mirror)
|
||||
addtimer(CALLBACK(src, .proc/become_ghost), 8)
|
||||
addtimer(CALLBACK(src, PROC_REF(become_ghost)), 8)
|
||||
if(my_mirror != null)
|
||||
qdel(my_mirror)
|
||||
|
||||
@@ -143,13 +143,13 @@
|
||||
var/target_turf = get_turf(target)
|
||||
var/angle_to_target = Get_Angle(src, target_turf)
|
||||
shoot_projectile(target_turf, angle_to_target, FALSE)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 2)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 4)
|
||||
addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 4)
|
||||
if(health < maxHealth * 0.5)
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 10)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 12)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 14)
|
||||
addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 10)
|
||||
addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 12)
|
||||
addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 14)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_circleshot()
|
||||
var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315)
|
||||
@@ -166,11 +166,11 @@
|
||||
if(!is_mirror)
|
||||
icon_state = "herald_enraged"
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/herald_circleshot), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 5)
|
||||
if(health < maxHealth * 0.5)
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/herald_circleshot), 15)
|
||||
addtimer(CALLBACK(src, .proc/unenrage), 20)
|
||||
addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 15)
|
||||
addtimer(CALLBACK(src, PROC_REF(unenrage)), 20)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target)
|
||||
ranged_cooldown = world.time + 30
|
||||
@@ -272,4 +272,4 @@
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner]'s [src] emits a loud noise as [owner] is struck!</span>")
|
||||
playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/reactionshot, owner), 10)
|
||||
addtimer(CALLBACK(src, PROC_REF(reactionshot), owner), 10)
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
T = get_step(T, dir_to_target)
|
||||
playsound(src,'sound/magic/demon_attack1.ogg', 200, 1)
|
||||
visible_message("<span class='boldwarning'>[src] prepares to charge!</span>")
|
||||
addtimer(CALLBACK(src, .proc/legionnaire_charge_2, dir_to_target, 0), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), dir_to_target, 0), 5)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/legionnaire_charge_2(var/move_dir, var/times_ran)
|
||||
if(times_ran >= 4)
|
||||
@@ -134,7 +134,7 @@
|
||||
//L.Paralyze(20)
|
||||
L.Stun(20) //substituting this for the Paralyze from the line above, because we don't have tg paralysis stuff
|
||||
L.adjustBruteLoss(50)
|
||||
addtimer(CALLBACK(src, .proc/legionnaire_charge_2, move_dir, (times_ran + 1)), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), move_dir, (times_ran + 1)), 2)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/head_detach(target)
|
||||
ranged_cooldown = world.time + 10
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/onHeadDeath()
|
||||
myhead = null
|
||||
addtimer(CALLBACK(src, .proc/regain_head), 50)
|
||||
addtimer(CALLBACK(src, PROC_REF(regain_head)), 50)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/regain_head()
|
||||
has_head = TRUE
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
new /obj/effect/temp_visual/hierophant/blast/pandora(T, src, null, null, list(owner))
|
||||
T = get_step(T, angleused)
|
||||
procsleft = procsleft - 1
|
||||
addtimer(CALLBACK(src, .proc/singular_shot_line, procsleft, angleused, T), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(singular_shot_line), procsleft, angleused, T), 2)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/magic_box(target)
|
||||
ranged_cooldown = world.time + cooldown_time
|
||||
@@ -135,7 +135,7 @@
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(source, src)
|
||||
playsound(source,'sound/machines/airlockopen.ogg', 200, 1)
|
||||
addtimer(CALLBACK(src, .proc/pandora_teleport_2, T, source), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(pandora_teleport_2), T, source), 2)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_2(var/turf/T, var/turf/source)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src)
|
||||
@@ -147,7 +147,7 @@
|
||||
animate(src, alpha = 0, time = 2, easing = EASE_OUT) //fade out
|
||||
visible_message("<span class='hierophant_warning'>[src] fades out!</span>")
|
||||
density = FALSE
|
||||
addtimer(CALLBACK(src, .proc/pandora_teleport_3, T), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(pandora_teleport_3), T), 2)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_3(var/turf/T)
|
||||
forceMove(T)
|
||||
@@ -160,7 +160,7 @@
|
||||
var/turf/T = get_turf(target)
|
||||
new /obj/effect/temp_visual/hierophant/blast/pandora(T, src, null, null, list(owner))
|
||||
var/max_size = 2
|
||||
addtimer(CALLBACK(src, .proc/aoe_squares_2, T, 0, max_size), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(aoe_squares_2), T, 0, max_size), 2)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/aoe_squares_2(var/turf/T, var/ring, var/max_size)
|
||||
if(ring > max_size)
|
||||
@@ -168,7 +168,7 @@
|
||||
for(var/t in spiral_range_turfs(ring, T))
|
||||
if(get_dist(t, T) == ring)
|
||||
new /obj/effect/temp_visual/hierophant/blast/pandora(t, src, null, null, list(owner))
|
||||
addtimer(CALLBACK(src, .proc/aoe_squares_2, T, (ring + 1), max_size), 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(aoe_squares_2), T, (ring + 1), max_size), 2)
|
||||
|
||||
//The specific version of hiero's squares pandora uses
|
||||
/obj/effect/temp_visual/hierophant/blast/pandora
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
retreat_distance = 10
|
||||
minimum_distance = 10
|
||||
if(will_burrow)
|
||||
addtimer(CALLBACK(src, .proc/Burrow), chase_time)
|
||||
addtimer(CALLBACK(src, PROC_REF(Burrow)), chase_time)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget()
|
||||
if(istype(target, /obj/item/stack/ore))
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
var/turf/closed/mineral/M = loc
|
||||
M.gets_drilled()
|
||||
deltimer(timerid)
|
||||
timerid = addtimer(CALLBACK(src, .proc/tripanim), 7, TIMER_STOPPABLE)
|
||||
timerid = addtimer(CALLBACK(src, PROC_REF(tripanim)), 7, TIMER_STOPPABLE)
|
||||
|
||||
/obj/effect/temp_visual/goliath_tentacle/original/Initialize(mapload, new_spawner)
|
||||
. = ..()
|
||||
@@ -182,7 +182,7 @@
|
||||
/obj/effect/temp_visual/goliath_tentacle/proc/tripanim()
|
||||
icon_state = "Goliath_tentacle_wiggle"
|
||||
deltimer(timerid)
|
||||
timerid = addtimer(CALLBACK(src, .proc/trip), 3, TIMER_STOPPABLE)
|
||||
timerid = addtimer(CALLBACK(src, PROC_REF(trip)), 3, TIMER_STOPPABLE)
|
||||
|
||||
/obj/effect/temp_visual/goliath_tentacle/proc/trip()
|
||||
var/latched = FALSE
|
||||
@@ -206,7 +206,7 @@
|
||||
retract()
|
||||
else
|
||||
deltimer(timerid)
|
||||
timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE)
|
||||
timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE)
|
||||
|
||||
/obj/effect/temp_visual/goliath_tentacle/proc/retract()
|
||||
icon_state = "Goliath_tentacle_retract"
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
. = ..()
|
||||
if(swarming)
|
||||
AddComponent(/datum/component/swarming) //oh god not the bees
|
||||
addtimer(CALLBACK(src, .proc/death), 100)
|
||||
addtimer(CALLBACK(src, PROC_REF(death)), 100)
|
||||
|
||||
//Legion
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord/legion
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
/mob/living/simple_animal/hostile/mushroom/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //Possibility to flee from a fight just to make it more visually interesting
|
||||
if(!retreat_distance && prob(33))
|
||||
retreat_distance = 5
|
||||
addtimer(CALLBACK(src, .proc/stop_retreat), 30)
|
||||
addtimer(CALLBACK(src, PROC_REF(stop_retreat)), 30)
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/mushroom/proc/stop_retreat()
|
||||
@@ -141,7 +141,7 @@
|
||||
revive(full_heal = 1)
|
||||
UpdateMushroomCap()
|
||||
recovery_cooldown = 1
|
||||
addtimer(CALLBACK(src, .proc/recovery_recharge), 300)
|
||||
addtimer(CALLBACK(src, PROC_REF(recovery_recharge)), 300)
|
||||
|
||||
/mob/living/simple_animal/hostile/mushroom/proc/recovery_recharge()
|
||||
recovery_cooldown = 0
|
||||
|
||||
@@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(plague_rats)
|
||||
|
||||
loc = exit_vent
|
||||
var/travel_time = round(get_dist(loc, exit_vent.loc) / 2)
|
||||
addtimer(CALLBACK(src, .proc/exit_vents), travel_time) //come out at exit vent in 2 to 20 seconds
|
||||
addtimer(CALLBACK(src, PROC_REF(exit_vents)), travel_time) //come out at exit vent in 2 to 20 seconds
|
||||
|
||||
|
||||
if(world.time > min_next_vent && !entry_vent && !in_vent && prob(RAT_VENT_CHANCE)) //small chance to go into a vent
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
if(D.density)
|
||||
return
|
||||
delayFire += 1.0
|
||||
addtimer(CALLBACK(src, .proc/dragon_fire_line, T), delayFire)
|
||||
addtimer(CALLBACK(src, PROC_REF(dragon_fire_line), T), delayFire)
|
||||
|
||||
/**
|
||||
* What occurs on each tile to actually create the fire.
|
||||
@@ -381,7 +381,7 @@
|
||||
fully_heal()
|
||||
add_filter("anger_glow", 3, list("type" = "outline", "color" = "#ff330030", "size" = 5))
|
||||
add_movespeed_modifier(/datum/movespeed_modifier/dragon_rage)
|
||||
addtimer(CALLBACK(src, .proc/rift_depower), 30 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(rift_depower)), 30 SECONDS)
|
||||
|
||||
/**
|
||||
* Gives Space Dragon their the rift speed buff permanantly.
|
||||
@@ -437,7 +437,7 @@
|
||||
/mob/living/simple_animal/hostile/space_dragon/proc/useGust(timer)
|
||||
if(timer != 10)
|
||||
pixel_y = pixel_y + 2;
|
||||
addtimer(CALLBACK(src, .proc/useGust, timer + 1), 1.5)
|
||||
addtimer(CALLBACK(src, PROC_REF(useGust), timer + 1), 1.5)
|
||||
return
|
||||
pixel_y = 0
|
||||
icon_state = "spacedragon_gust_2"
|
||||
@@ -459,7 +459,7 @@
|
||||
var/throwtarget = get_edge_target_turf(target, dir_to_target)
|
||||
L.safe_throw_at(throwtarget, 10, 1, src)
|
||||
L.drop_all_held_items()
|
||||
addtimer(CALLBACK(src, .proc/reset_status), 4 + ((tiredness * tiredness_mult) / 10))
|
||||
addtimer(CALLBACK(src, PROC_REF(reset_status)), 4 + ((tiredness * tiredness_mult) / 10))
|
||||
tiredness = tiredness + (gust_tiredness * tiredness_mult)
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
for(var/turf/T in anchors)
|
||||
var/datum/beam/B = Beam(T, "vine", time=INFINITY, maxdistance=5, beam_type=/obj/effect/ebeam/vine)
|
||||
B.sleep_time = 10 //these shouldn't move, so let's slow down updates to 1 second (any slower and the deletion of the vines would be too slow)
|
||||
addtimer(CALLBACK(src, .proc/bear_fruit), growth_time)
|
||||
addtimer(CALLBACK(src, PROC_REF(bear_fruit)), growth_time)
|
||||
|
||||
/**
|
||||
* Spawns a venus human trap, then qdels itself.
|
||||
@@ -128,7 +128,7 @@
|
||||
return
|
||||
|
||||
var/datum/beam/newVine = Beam(the_target, "vine", time=INFINITY, maxdistance = vine_grab_distance, beam_type=/obj/effect/ebeam/vine)
|
||||
RegisterSignal(newVine, COMSIG_PARENT_QDELETING, .proc/remove_vine, newVine)
|
||||
RegisterSignal(newVine, COMSIG_PARENT_QDELETING, PROC_REF(remove_vine), newVine)
|
||||
vines += newVine
|
||||
if(isliving(the_target))
|
||||
var/mob/living/L = the_target
|
||||
|
||||
Reference in New Issue
Block a user