mirror of
https://github.com/KabKebab/GS13.git
synced 2026-02-09 23:27:37 +00:00
it compiles, that's better than it not compiling, right?
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
return
|
||||
else
|
||||
bleedsuppress = TRUE
|
||||
addtimer(CALLBACK(src, .proc/resume_bleeding), amount)
|
||||
addtimer(CALLBACK(src,PROC_REF(resume_bleeding)), amount)
|
||||
|
||||
/mob/living/carbon/human/proc/resume_bleeding()
|
||||
bleedsuppress = 0
|
||||
|
||||
@@ -55,7 +55,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
|
||||
next_ask = world.time + askDelay
|
||||
searching = TRUE
|
||||
update_icon()
|
||||
addtimer(CALLBACK(src, .proc/check_success), askDelay)
|
||||
addtimer(CALLBACK(src,PROC_REF(check_success)), askDelay)
|
||||
|
||||
/obj/item/mmi/posibrain/proc/check_success()
|
||||
searching = FALSE
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
leaping = 1
|
||||
weather_immunities += "lava"
|
||||
update_icons()
|
||||
throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end))
|
||||
throw_at(A, MAX_ALIEN_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src,PROC_REF(leap_end)))
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/proc/leap_end()
|
||||
leaping = 0
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
|
||||
recent_queen_death = 1
|
||||
owner.throw_alert("alien_noqueen", /obj/screen/alert/alien_vulnerable)
|
||||
addtimer(CALLBACK(src, .proc/clear_queen_death), QUEEN_DEATH_DEBUFF_DURATION)
|
||||
addtimer(CALLBACK(src,PROC_REF(clear_queen_death)), QUEEN_DEATH_DEBUFF_DURATION)
|
||||
|
||||
|
||||
/obj/item/organ/alien/hivenode/proc/clear_queen_death()
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
/obj/item/organ/body_egg/alien_embryo/egg_process()
|
||||
if(stage < 5 && prob(3))
|
||||
stage++
|
||||
INVOKE_ASYNC(src, .proc/RefreshInfectionImage)
|
||||
INVOKE_ASYNC(src,PROC_REF(RefreshInfectionImage))
|
||||
|
||||
if(stage == 5 && prob(50))
|
||||
for(var/datum/surgery/S in owner.surgeries)
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
return
|
||||
if(stat == CONSCIOUS)
|
||||
icon_state = "[initial(icon_state)]_thrown"
|
||||
addtimer(CALLBACK(src, .proc/clear_throw_icon_state), 15)
|
||||
addtimer(CALLBACK(src,PROC_REF(clear_throw_icon_state)), 15)
|
||||
|
||||
/obj/item/clothing/mask/facehugger/proc/clear_throw_icon_state()
|
||||
if(icon_state == "[initial(icon_state)]_thrown")
|
||||
@@ -181,7 +181,7 @@
|
||||
// early returns and validity checks done: attach.
|
||||
attached++
|
||||
//ensure we detach once we no longer need to be attached
|
||||
addtimer(CALLBACK(src, .proc/detach), MAX_IMPREGNATION_TIME)
|
||||
addtimer(CALLBACK(src,PROC_REF(detach)), MAX_IMPREGNATION_TIME)
|
||||
|
||||
|
||||
if(!sterile)
|
||||
@@ -190,7 +190,7 @@
|
||||
|
||||
GoIdle() //so it doesn't jump the people that tear it off
|
||||
|
||||
addtimer(CALLBACK(src, .proc/Impregnate, M), rand(MIN_IMPREGNATION_TIME, MAX_IMPREGNATION_TIME))
|
||||
addtimer(CALLBACK(src,PROC_REF(Impregnate), M), rand(MIN_IMPREGNATION_TIME, MAX_IMPREGNATION_TIME))
|
||||
|
||||
/obj/item/clothing/mask/facehugger/proc/detach()
|
||||
attached = 0
|
||||
@@ -233,7 +233,7 @@
|
||||
stat = UNCONSCIOUS
|
||||
icon_state = "[initial(icon_state)]_inactive"
|
||||
|
||||
addtimer(CALLBACK(src, .proc/GoActive), rand(MIN_ACTIVE_TIME, MAX_ACTIVE_TIME))
|
||||
addtimer(CALLBACK(src,PROC_REF(GoActive)), rand(MIN_ACTIVE_TIME, MAX_ACTIVE_TIME))
|
||||
|
||||
/obj/item/clothing/mask/facehugger/proc/Die()
|
||||
if(stat == DEAD)
|
||||
|
||||
@@ -720,7 +720,7 @@
|
||||
electrocution_skeleton_anim = mutable_appearance(icon, "electrocuted_base")
|
||||
electrocution_skeleton_anim.appearance_flags |= RESET_COLOR|KEEP_APART
|
||||
add_overlay(electrocution_skeleton_anim)
|
||||
addtimer(CALLBACK(src, .proc/end_electrocution_animation, electrocution_skeleton_anim), anim_duration)
|
||||
addtimer(CALLBACK(src,PROC_REF(end_electrocution_animation), electrocution_skeleton_anim), anim_duration)
|
||||
|
||||
else //or just do a generic animation
|
||||
flick_overlay_view(image(icon,src,"electrocuted_generic",ABOVE_MOB_LAYER), src, anim_duration)
|
||||
|
||||
@@ -1569,7 +1569,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
if(radiation > RAD_MOB_HAIRLOSS)
|
||||
if(prob(15) && !(H.hair_style == "Bald") && (HAIR in species_traits))
|
||||
to_chat(H, "<span class='danger'>Your hair starts to fall out in clumps...</span>")
|
||||
addtimer(CALLBACK(src, .proc/go_bald, H), 50)
|
||||
addtimer(CALLBACK(src,PROC_REF(go_bald), H), 50)
|
||||
|
||||
/datum/species/proc/go_bald(mob/living/carbon/human/H)
|
||||
if(QDELETED(H)) //may be called from a timer
|
||||
|
||||
@@ -132,10 +132,10 @@
|
||||
return INITIALIZE_HINT_QDEL
|
||||
owner = new_owner
|
||||
START_PROCESSING(SSobj, src)
|
||||
RegisterSignal(owner, COMSIG_CLICK_SHIFT, .proc/examinate_check)
|
||||
RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW, .proc/include_owner)
|
||||
RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS, .proc/unlist_head)
|
||||
RegisterSignal(owner, COMSIG_LIVING_FULLY_HEAL, .proc/retrieve_head)
|
||||
RegisterSignal(owner, COMSIG_CLICK_SHIFT,PROC_REF(examinate_check))
|
||||
RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW,PROC_REF(include_owner))
|
||||
RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS,PROC_REF(unlist_head))
|
||||
RegisterSignal(owner, COMSIG_LIVING_FULLY_HEAL,PROC_REF(retrieve_head))
|
||||
|
||||
/obj/item/dullahan_relay/proc/examinate_check(atom/source, mob/user)
|
||||
if(user.client.eye == src)
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/datum/species/synth/on_species_gain(mob/living/carbon/human/H, datum/species/old_species)
|
||||
..()
|
||||
assume_disguise(old_species, H)
|
||||
RegisterSignal(H, COMSIG_MOB_SAY, .proc/handle_speech)
|
||||
RegisterSignal(H, COMSIG_MOB_SAY,PROC_REF(handle_speech))
|
||||
H.grant_language(/datum/language/machine)
|
||||
|
||||
/datum/species/synth/on_species_loss(mob/living/carbon/human/H)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(I.force >= best_force)
|
||||
best_force = I.force
|
||||
else
|
||||
addtimer(CALLBACK(src, .proc/pickup_and_wear, I), 5)
|
||||
addtimer(CALLBACK(src,PROC_REF(pickup_and_wear), I), 5)
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
pickupTarget = null
|
||||
pickupTimer = 0
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/walk2derpless, pickupTarget.loc)
|
||||
INVOKE_ASYNC(src,PROC_REF(walk2derpless), pickupTarget.loc)
|
||||
if(Adjacent(pickupTarget) || Adjacent(pickupTarget.loc)) // next to target
|
||||
drop_all_held_items() // who cares about these items, i want that one!
|
||||
if(isturf(pickupTarget.loc)) // on floor
|
||||
@@ -138,7 +138,7 @@
|
||||
if(!pickpocketing)
|
||||
pickpocketing = TRUE
|
||||
M.visible_message("[src] starts trying to take [pickupTarget] from [M]", "[src] tries to take [pickupTarget]!")
|
||||
INVOKE_ASYNC(src, .proc/pickpocket, M)
|
||||
INVOKE_ASYNC(src,PROC_REF(pickpocket), M)
|
||||
return TRUE
|
||||
|
||||
switch(mode)
|
||||
@@ -174,7 +174,7 @@
|
||||
return TRUE
|
||||
|
||||
if(target != null)
|
||||
INVOKE_ASYNC(src, .proc/walk2derpless, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(walk2derpless), target)
|
||||
|
||||
// pickup any nearby weapon
|
||||
if(!pickupTarget && prob(MONKEY_WEAPON_PROB))
|
||||
@@ -259,7 +259,7 @@
|
||||
|
||||
if(target.pulledby != src && !istype(target.pulledby, /mob/living/carbon/monkey/))
|
||||
|
||||
INVOKE_ASYNC(src, .proc/walk2derpless, target.loc)
|
||||
INVOKE_ASYNC(src,PROC_REF(walk2derpless), target.loc)
|
||||
|
||||
if(Adjacent(target) && isturf(target.loc))
|
||||
a_intent = INTENT_GRAB
|
||||
@@ -272,11 +272,11 @@
|
||||
frustration = 0
|
||||
|
||||
else if(!disposing_body)
|
||||
INVOKE_ASYNC(src, .proc/walk2derpless, bodyDisposal.loc)
|
||||
INVOKE_ASYNC(src,PROC_REF(walk2derpless), bodyDisposal.loc)
|
||||
|
||||
if(Adjacent(bodyDisposal))
|
||||
disposing_body = TRUE
|
||||
addtimer(CALLBACK(src, .proc/stuff_mob_in), 5)
|
||||
addtimer(CALLBACK(src,PROC_REF(stuff_mob_in)), 5)
|
||||
|
||||
else
|
||||
var/turf/olddist = get_dist(src, bodyDisposal)
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
med_hud_set_status()
|
||||
clear_typing_indicator()
|
||||
if(!gibbed && !QDELETED(src))
|
||||
addtimer(CALLBACK(src, .proc/med_hud_set_status), (DEFIB_TIME_LIMIT * 10) + 1)
|
||||
addtimer(CALLBACK(src,PROC_REF(med_hud_set_status)), (DEFIB_TIME_LIMIT * 10) + 1)
|
||||
stop_pulling()
|
||||
|
||||
SEND_SIGNAL(src, COMSIG_MOB_DEATH, gibbed)
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
/mob/living/proc/gravity_animate()
|
||||
if(!get_filter("gravity"))
|
||||
add_filter("gravity",1, GRAVITY_MOTION_BLUR)
|
||||
INVOKE_ASYNC(src, .proc/gravity_pulse_animation)
|
||||
INVOKE_ASYNC(src,PROC_REF(gravity_pulse_animation))
|
||||
|
||||
/mob/living/proc/gravity_pulse_animation()
|
||||
animate(get_filter("gravity"), y = 1, time = 10)
|
||||
|
||||
@@ -1106,7 +1106,7 @@
|
||||
client.move_delay = world.time + movement_delay()
|
||||
lying_prev = lying
|
||||
if(canmove && !intentionalresting && iscarbon(src) && client && client.prefs && client?.prefs?.autostand)//CIT CHANGE - adds autostanding as a preference
|
||||
addtimer(CALLBACK(src, .proc/resist_a_rest, TRUE), 0) //CIT CHANGE - ditto
|
||||
addtimer(CALLBACK(src,PROC_REF(resist_a_rest), TRUE), 0) //CIT CHANGE - ditto
|
||||
return canmove
|
||||
|
||||
/mob/living/proc/AddAbility(obj/effect/proc_holder/A)
|
||||
|
||||
@@ -453,8 +453,8 @@
|
||||
if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE))
|
||||
GLOB.cult_narsie.resolved = TRUE
|
||||
sound_to_playing_players('sound/machines/alarm.ogg')
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper, 1), 120)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/ending_helper), 270)
|
||||
addtimer(CALLBACK(GLOBAL_PROC_REF(cult_ending_helper), 1), 120)
|
||||
addtimer(CALLBACK(GLOBAL_PROC_REF(ending_helper)), 270)
|
||||
if(client)
|
||||
makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE)
|
||||
else
|
||||
@@ -484,7 +484,7 @@
|
||||
/mob/living/proc/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash)
|
||||
if(get_eye_protection() < intensity && (override_blindness_check || !(HAS_TRAIT(src, TRAIT_BLIND))))
|
||||
overlay_fullscreen("flash", type)
|
||||
addtimer(CALLBACK(src, .proc/clear_fullscreen, "flash", 25), 25)
|
||||
addtimer(CALLBACK(src,PROC_REF(clear_fullscreen), "flash", 25), 25)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
/datum/camerachunk/proc/hasChanged(update_now = 0)
|
||||
if(seenby.len || update_now)
|
||||
addtimer(CALLBACK(src, .proc/update), UPDATE_BUFFER, TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src,PROC_REF(update)), UPDATE_BUFFER, TIMER_UNIQUE)
|
||||
else
|
||||
changed = 1
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
blind_eyes(1)
|
||||
update_sight()
|
||||
to_chat(src, "You've lost power!")
|
||||
addtimer(CALLBACK(src, .proc/start_RestorePowerRoutine), 20)
|
||||
addtimer(CALLBACK(src,PROC_REF(start_RestorePowerRoutine)), 20)
|
||||
|
||||
#undef POWER_RESTORATION_OFF
|
||||
#undef POWER_RESTORATION_START
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
if(announce && last_lawchange_announce != world.time)
|
||||
to_chat(src, "<span class='big bold'><font color = red>Your laws have been changed.</font color></span>")
|
||||
SEND_SOUND(src, 'hyperstation/sound/misc/ai_laws_update.ogg')
|
||||
addtimer(CALLBACK(src, .proc/show_laws), 0)
|
||||
addtimer(CALLBACK(src,PROC_REF(show_laws)), 0)
|
||||
last_lawchange_announce = world.time
|
||||
|
||||
/mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE)
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
AL.Grant(src)
|
||||
ALM.Grant(src)
|
||||
emittersemicd = TRUE
|
||||
addtimer(CALLBACK(src, .proc/emittercool), 600)
|
||||
addtimer(CALLBACK(src,PROC_REF(emittercool)), 600)
|
||||
|
||||
/mob/living/silicon/pai/Life()
|
||||
if(hacking)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
return FALSE
|
||||
|
||||
emittersemicd = TRUE
|
||||
addtimer(CALLBACK(src, .proc/emittercool), emittercd)
|
||||
addtimer(CALLBACK(src,PROC_REF(emittercool)), emittercd)
|
||||
canmove = TRUE
|
||||
density = TRUE
|
||||
if(istype(card.loc, /obj/item/pda))
|
||||
@@ -52,9 +52,9 @@
|
||||
/mob/living/silicon/pai/proc/fold_in(force = FALSE)
|
||||
emittersemicd = TRUE
|
||||
if(!force)
|
||||
addtimer(CALLBACK(src, .proc/emittercool), emittercd)
|
||||
addtimer(CALLBACK(src,PROC_REF(emittercool)), emittercd)
|
||||
else
|
||||
addtimer(CALLBACK(src, .proc/emittercool), emitteroverloadcd)
|
||||
addtimer(CALLBACK(src,PROC_REF(emittercool)), emitteroverloadcd)
|
||||
icon_state = "[chassis]"
|
||||
if(!holoform)
|
||||
. = fold_out(force)
|
||||
|
||||
@@ -889,7 +889,7 @@
|
||||
cell = new /obj/item/stock_parts/cell/hyper(src, 25000)
|
||||
radio = new /obj/item/radio/borg/syndicate(src)
|
||||
laws = new /datum/ai_laws/syndicate_override()
|
||||
addtimer(CALLBACK(src, .proc/show_playstyle), 5)
|
||||
addtimer(CALLBACK(src,PROC_REF(show_playstyle)), 5)
|
||||
|
||||
/mob/living/silicon/robot/modules/syndicate/proc/show_playstyle()
|
||||
if(playstyle_string)
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
R.module = RM
|
||||
R.update_module_innate()
|
||||
RM.rebuild_modules()
|
||||
INVOKE_ASYNC(RM, .proc/do_transform_animation)
|
||||
INVOKE_ASYNC(RM,PROC_REF(do_transform_animation))
|
||||
SEND_SIGNAL(R, COMSIG_CYBORG_MODULE_CHANGE) //hyperstation edit
|
||||
qdel(src)
|
||||
return RM
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
oldLoc = get_turf(oldLoc)
|
||||
if(!QDELETED(builtInCamera) && !updating && oldLoc != get_turf(src))
|
||||
updating = TRUE
|
||||
addtimer(CALLBACK(src, .proc/do_camera_update, oldLoc), SILICON_CAMERA_BUFFER)
|
||||
addtimer(CALLBACK(src,PROC_REF(do_camera_update), oldLoc), SILICON_CAMERA_BUFFER)
|
||||
#undef SILICON_CAMERA_BUFFER
|
||||
|
||||
@@ -538,7 +538,7 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
turn_on() //Saves the AI the hassle of having to activate a bot manually.
|
||||
access_card = all_access //Give the bot all-access while under the AI's command.
|
||||
if(client)
|
||||
reset_access_timer_id = addtimer(CALLBACK (src, .proc/bot_reset), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time
|
||||
reset_access_timer_id = addtimer(CALLBACK (src,PROC_REF(bot_reset)), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time
|
||||
to_chat(src, "<span class='notice'><span class='big'>Priority waypoint set by [icon2html(calling_ai, src)] <b>[caller]</b>. Proceed to <b>[end_area]</b>.</span><br>[path.len-1] meters to destination. You have been granted additional door access for 60 seconds.</span>")
|
||||
if(message)
|
||||
to_chat(calling_ai, "<span class='notice'>[icon2html(src, calling_ai)] [name] called to [end_area]. [path.len-1] meters to destination.</span>")
|
||||
|
||||
@@ -173,7 +173,7 @@ Auto Patrol[]"},
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/proc/retaliate(mob/living/carbon/human/H)
|
||||
var/judgement_criteria = judgement_criteria()
|
||||
threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons))
|
||||
threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src,PROC_REF(check_for_weapons)))
|
||||
threatlevel += 6
|
||||
if(threatlevel >= 4)
|
||||
target = H
|
||||
@@ -225,7 +225,7 @@ Auto Patrol[]"},
|
||||
var/threatlevel = 0
|
||||
if((C.stat) || (C.lying))
|
||||
continue
|
||||
threatlevel = C.assess_threat(judgement_criteria, lasercolor, weaponcheck=CALLBACK(src, .proc/check_for_weapons))
|
||||
threatlevel = C.assess_threat(judgement_criteria, lasercolor, weaponcheck=CALLBACK(src,PROC_REF(check_for_weapons)))
|
||||
//speak(C.real_name + text(": threat: []", threatlevel))
|
||||
if(threatlevel < 4 )
|
||||
continue
|
||||
@@ -327,13 +327,13 @@ Auto Patrol[]"},
|
||||
target = null
|
||||
last_found = world.time
|
||||
frustration = 0
|
||||
INVOKE_ASYNC(src, .proc/handle_automated_action) //ensure bot quickly responds
|
||||
INVOKE_ASYNC(src,PROC_REF(handle_automated_action)) //ensure bot quickly responds
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/proc/back_to_hunt()
|
||||
anchored = FALSE
|
||||
frustration = 0
|
||||
mode = BOT_HUNT
|
||||
INVOKE_ASYNC(src, .proc/handle_automated_action) //ensure bot quickly responds
|
||||
INVOKE_ASYNC(src,PROC_REF(handle_automated_action)) //ensure bot quickly responds
|
||||
|
||||
// look for a criminal in view of the bot
|
||||
|
||||
@@ -350,7 +350,7 @@ Auto Patrol[]"},
|
||||
if((C.name == oldtarget_name) && (world.time < last_found + 100))
|
||||
continue
|
||||
|
||||
threatlevel = C.assess_threat(judgement_criteria, lasercolor, weaponcheck=CALLBACK(src, .proc/check_for_weapons))
|
||||
threatlevel = C.assess_threat(judgement_criteria, lasercolor, weaponcheck=CALLBACK(src,PROC_REF(check_for_weapons)))
|
||||
|
||||
if(!threatlevel)
|
||||
continue
|
||||
@@ -550,7 +550,7 @@ Auto Patrol[]"},
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
var/judgement_criteria = judgement_criteria()
|
||||
threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons))
|
||||
threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src,PROC_REF(check_for_weapons)))
|
||||
log_combat(src,C,"stunned")
|
||||
if(declare_arrests)
|
||||
var/area/location = get_area(src)
|
||||
|
||||
@@ -468,8 +468,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_REF(deltimer), process_timer), (num_steps*2) + 1)
|
||||
|
||||
/mob/living/simple_animal/bot/mulebot/proc/process_bot()
|
||||
if(!on || client)
|
||||
@@ -534,7 +534,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
|
||||
@@ -547,7 +547,7 @@
|
||||
|
||||
if(BOT_NAV) // calculate new path
|
||||
mode = BOT_WAIT_FOR_NAV
|
||||
INVOKE_ASYNC(src, .proc/process_nav)
|
||||
INVOKE_ASYNC(src,PROC_REF(process_nav))
|
||||
|
||||
/mob/living/simple_animal/bot/mulebot/proc/process_blocked(turf/next)
|
||||
calc_path(avoid=next)
|
||||
@@ -596,7 +596,7 @@
|
||||
/mob/living/simple_animal/bot/mulebot/proc/start_home()
|
||||
if(!on)
|
||||
return
|
||||
INVOKE_ASYNC(src, .proc/do_start_home)
|
||||
INVOKE_ASYNC(src,PROC_REF(do_start_home))
|
||||
update_icon()
|
||||
|
||||
/mob/living/simple_animal/bot/mulebot/proc/do_start_home()
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
. = ..()
|
||||
if(can_be_held)
|
||||
//icon/item state is defined in mob_holder/drone_worn_icon()
|
||||
AddElement(/datum/element/mob_holder, null, 'icons/mob/head.dmi', 'icons/mob/inhands/clothing_righthand.dmi', 'icons/mob/inhands/clothing_lefthand.dmi', ITEM_SLOT_HEAD, /datum/element/mob_holder.proc/drone_worn_icon)
|
||||
AddElement(/datum/element/mob_holder, null, 'icons/mob/head.dmi', 'icons/mob/inhands/clothing_righthand.dmi', 'icons/mob/inhands/clothing_lefthand.dmi', ITEM_SLOT_HEAD, TYPE_PROC_REF(/datum/element/mob_holder,drone_worn_icon))
|
||||
|
||||
/mob/living/simple_animal/drone/med_hud_set_health()
|
||||
var/image/holder = hud_list[DIAG_HUD]
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/charger/Shoot(atom/targeted_atom)
|
||||
charging = 1
|
||||
throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/charging_end))
|
||||
throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src,PROC_REF(charging_end)))
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/charger/proc/charging_end()
|
||||
charging = 0
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
anchored = A.anchored
|
||||
density = A.density
|
||||
appearance = A.appearance
|
||||
addtimer(CALLBACK(src, .proc/disable), 600)
|
||||
addtimer(CALLBACK(src,PROC_REF(disable)), 600)
|
||||
|
||||
/obj/guardian_bomb/proc/disable()
|
||||
stored_obj.forceMove(get_turf(src))
|
||||
|
||||
@@ -300,4 +300,4 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/bees/short/Initialize()
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/death), 50 SECONDS)
|
||||
addtimer(CALLBACK(src,PROC_REF(death)), 50 SECONDS)
|
||||
|
||||
@@ -426,7 +426,7 @@
|
||||
if(target_atom.anchored)
|
||||
return
|
||||
user.cocoon_target = target_atom
|
||||
INVOKE_ASYNC(user, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/.proc/cocoon)
|
||||
INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living/simple_animal/hostile/poison/giant_spider/nurse/,cocoon))
|
||||
remove_ranged_ability()
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -116,13 +116,13 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_prestart(duration)
|
||||
flick("vomit_start",src)
|
||||
addtimer(CALLBACK(src, .proc/vomit_start, duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi
|
||||
addtimer(CALLBACK(src,PROC_REF(vomit_start), duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_start(duration)
|
||||
vomiting = TRUE
|
||||
icon_state = "vomit"
|
||||
vomit()
|
||||
addtimer(CALLBACK(src, .proc/vomit_preend), duration)
|
||||
addtimer(CALLBACK(src,PROC_REF(vomit_preend)), duration)
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_preend()
|
||||
for (var/obj/item/consumed in contents) //Get rid of any food left in the poor thing
|
||||
|
||||
@@ -48,7 +48,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"
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
//What we do after closing in
|
||||
/mob/living/simple_animal/hostile/proc/MeleeAction(patience = TRUE)
|
||||
if(rapid_melee > 1)
|
||||
var/datum/callback/cb = CALLBACK(src, .proc/CheckAndAttack)
|
||||
var/datum/callback/cb = CALLBACK(src,PROC_REF(CheckAndAttack))
|
||||
var/delay = SSnpcpool.wait / rapid_melee
|
||||
for(var/i in 1 to rapid_melee)
|
||||
addtimer(cb, (i - 1)*delay)
|
||||
@@ -414,7 +414,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
|
||||
@@ -543,7 +543,7 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega
|
||||
/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()
|
||||
@@ -554,7 +554,7 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega
|
||||
/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)
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
if(AIStatus == AI_ON && ranged_cooldown <= world.time)
|
||||
projectile_ready = TRUE
|
||||
update_icons()
|
||||
throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .proc/FinishHop))
|
||||
throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src,PROC_REF(FinishHop)))
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop()
|
||||
density = TRUE
|
||||
@@ -214,18 +214,18 @@
|
||||
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
|
||||
notransform = 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
|
||||
throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush))
|
||||
throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src,PROC_REF(Crush)))
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/leaper/proc/Crush()
|
||||
hopping = 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)
|
||||
@@ -113,7 +113,7 @@
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 25, 1)
|
||||
playsound(src, 'sound/voice/mook_leap_yell.ogg', 100, 1)
|
||||
var/target_turf = get_turf(target)
|
||||
throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery))
|
||||
throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src,PROC_REF(AttackRecovery)))
|
||||
return
|
||||
attack_state = MOOK_ATTACK_RECOVERY
|
||||
ResetNeutral()
|
||||
@@ -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()
|
||||
|
||||
@@ -171,10 +171,10 @@
|
||||
if(combatant_state == SEEDLING_STATE_WARMUP && target)
|
||||
combatant_state = SEEDLING_STATE_ACTIVE
|
||||
update_icons()
|
||||
var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot)
|
||||
var/datum/callback/cb = CALLBACK(src,PROC_REF(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
|
||||
|
||||
@@ -61,7 +61,7 @@ Difficulty: Medium
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget()
|
||||
. = ..()
|
||||
if(. && prob(12))
|
||||
INVOKE_ASYNC(src, .proc/dash)
|
||||
INVOKE_ASYNC(src,PROC_REF(dash))
|
||||
|
||||
/obj/item/melee/transforming/cleaving_saw/miner //nerfed saw because it is very murdery
|
||||
force = 6
|
||||
@@ -109,7 +109,7 @@ Difficulty: Medium
|
||||
if(QDELETED(target))
|
||||
return
|
||||
if(next_move > world.time || !Adjacent(target)) //some cheating
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop)
|
||||
INVOKE_ASYNC(src,PROC_REF(quick_attack_loop))
|
||||
return
|
||||
face_atom(target)
|
||||
if(isliving(target))
|
||||
@@ -129,7 +129,7 @@ Difficulty: Medium
|
||||
if(guidance)
|
||||
adjustHealth(-2)
|
||||
transform_weapon()
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop)
|
||||
INVOKE_ASYNC(src,PROC_REF(quick_attack_loop))
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
|
||||
@@ -143,14 +143,14 @@ Difficulty: Medium
|
||||
if(. && target && !targets_the_same)
|
||||
wander = TRUE
|
||||
transform_weapon()
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop)
|
||||
INVOKE_ASYNC(src,PROC_REF(quick_attack_loop))
|
||||
if(HAS_TRAIT(target, TRAIT_CURSED_BLOOD))
|
||||
say(pick("Hunter, you must accept your death, be freed from the night.","The night, and the dream, were long...","Beasts all over the shop... You'll be one of them, sooner or later...","The night blocks all sight..."))
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire()
|
||||
Goto(target, move_to_delay, minimum_distance)
|
||||
if(get_dist(src, target) > MINER_DASH_RANGE && dash_cooldown <= world.time)
|
||||
INVOKE_ASYNC(src, .proc/dash, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(dash), target)
|
||||
else
|
||||
shoot_ka()
|
||||
transform_weapon()
|
||||
@@ -175,7 +175,7 @@ Difficulty: Medium
|
||||
if(dashing || next_move > world.time || !Adjacent(target))
|
||||
if(dashing && next_move <= world.time)
|
||||
next_move = world.time + 1
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop) //lets try that again.
|
||||
INVOKE_ASYNC(src,PROC_REF(quick_attack_loop)) //lets try that again.
|
||||
return
|
||||
AttackingTarget()
|
||||
|
||||
@@ -245,7 +245,7 @@ Difficulty: Medium
|
||||
|
||||
/obj/effect/temp_visual/dir_setting/miner_death/Initialize(mapload, set_dir)
|
||||
. = ..()
|
||||
INVOKE_ASYNC(src, .proc/fade_out)
|
||||
INVOKE_ASYNC(src,PROC_REF(fade_out))
|
||||
|
||||
/obj/effect/temp_visual/dir_setting/miner_death/proc/fade_out()
|
||||
var/matrix/M = new
|
||||
|
||||
@@ -75,15 +75,15 @@ Difficulty: Hard
|
||||
blood_warp()
|
||||
|
||||
if(prob(25))
|
||||
INVOKE_ASYNC(src, .proc/blood_spray)
|
||||
INVOKE_ASYNC(src,PROC_REF(blood_spray))
|
||||
|
||||
else if(prob(5+anger_modifier/2))
|
||||
slaughterlings()
|
||||
else
|
||||
if(health > maxHealth/2 && !client)
|
||||
INVOKE_ASYNC(src, .proc/charge)
|
||||
INVOKE_ASYNC(src,PROC_REF(charge))
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/triple_charge)
|
||||
INVOKE_ASYNC(src,PROC_REF(triple_charge))
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/Initialize()
|
||||
|
||||
@@ -76,7 +76,7 @@ Difficulty: Very Hard
|
||||
double_spiral()
|
||||
else
|
||||
visible_message("<span class='colossus'>\"<b>Judgement.</b>\"</span>")
|
||||
INVOKE_ASYNC(src, .proc/spiral_shoot, pick(TRUE, FALSE))
|
||||
INVOKE_ASYNC(src,PROC_REF(spiral_shoot), pick(TRUE, FALSE))
|
||||
|
||||
else if(prob(20))
|
||||
ranged_cooldown = world.time + 2
|
||||
@@ -87,7 +87,7 @@ Difficulty: Very Hard
|
||||
blast()
|
||||
else
|
||||
ranged_cooldown = world.time + 20
|
||||
INVOKE_ASYNC(src, .proc/alternating_dir_shots)
|
||||
INVOKE_ASYNC(src,PROC_REF(alternating_dir_shots))
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/colossus/Initialize()
|
||||
@@ -141,8 +141,8 @@ Difficulty: Very Hard
|
||||
visible_message("<span class='colossus'>\"<b>Die.</b>\"</span>")
|
||||
|
||||
sleep(10)
|
||||
INVOKE_ASYNC(src, .proc/spiral_shoot)
|
||||
INVOKE_ASYNC(src, .proc/spiral_shoot, TRUE)
|
||||
INVOKE_ASYNC(src,PROC_REF(spiral_shoot))
|
||||
INVOKE_ASYNC(src,PROC_REF(spiral_shoot), TRUE)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = FALSE, counter_start = 8)
|
||||
var/turf/start_turf = get_step(src, pick(GLOB.alldirs))
|
||||
|
||||
@@ -109,15 +109,15 @@ Difficulty: Medium
|
||||
|
||||
if(prob(15 + anger_modifier) && !client)
|
||||
if(health < maxHealth/2)
|
||||
INVOKE_ASYNC(src, .proc/swoop_attack, TRUE, null, 50)
|
||||
INVOKE_ASYNC(src,PROC_REF(swoop_attack), TRUE, null, 50)
|
||||
else
|
||||
fire_rain()
|
||||
|
||||
else if(prob(10+anger_modifier) && !client)
|
||||
if(health > maxHealth/2)
|
||||
INVOKE_ASYNC(src, .proc/swoop_attack)
|
||||
INVOKE_ASYNC(src,PROC_REF(swoop_attack))
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/triple_swoop)
|
||||
INVOKE_ASYNC(src,PROC_REF(triple_swoop))
|
||||
else
|
||||
fire_walls()
|
||||
|
||||
@@ -133,7 +133,7 @@ Difficulty: Medium
|
||||
playsound(get_turf(src),'sound/magic/fireball.ogg', 200, 1)
|
||||
|
||||
for(var/d in GLOB.cardinals)
|
||||
INVOKE_ASYNC(src, .proc/fire_wall, d)
|
||||
INVOKE_ASYNC(src,PROC_REF(fire_wall), d)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_wall(dir)
|
||||
var/list/hit_things = list(src)
|
||||
@@ -307,7 +307,7 @@ Difficulty: Medium
|
||||
|
||||
/obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit)
|
||||
. = ..()
|
||||
INVOKE_ASYNC(src, .proc/fall, flame_hit)
|
||||
INVOKE_ASYNC(src,PROC_REF(fall), flame_hit)
|
||||
|
||||
/obj/effect/temp_visual/target/proc/fall(list/flame_hit)
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -351,7 +351,7 @@ Difficulty: Medium
|
||||
|
||||
/obj/effect/temp_visual/dragon_flight/Initialize(mapload, negative)
|
||||
. = ..()
|
||||
INVOKE_ASYNC(src, .proc/flight, negative)
|
||||
INVOKE_ASYNC(src,PROC_REF(flight), negative)
|
||||
|
||||
/obj/effect/temp_visual/dragon_flight/proc/flight(negative)
|
||||
if(negative)
|
||||
|
||||
@@ -155,10 +155,10 @@ Difficulty: Normal
|
||||
if(ranged_cooldown <= world.time)
|
||||
calculate_rage()
|
||||
ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75)
|
||||
INVOKE_ASYNC(src, .proc/burst, get_turf(src))
|
||||
INVOKE_ASYNC(src,PROC_REF(burst), get_turf(src))
|
||||
else
|
||||
burst_range = 3
|
||||
INVOKE_ASYNC(src, .proc/burst, get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown
|
||||
INVOKE_ASYNC(src,PROC_REF(burst), get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown
|
||||
if(L.stat == CONSCIOUS && L.health >= 30)
|
||||
OpenFire()
|
||||
else
|
||||
@@ -257,9 +257,9 @@ Difficulty: Normal
|
||||
while(health && !QDELETED(target) && cross_counter)
|
||||
cross_counter--
|
||||
if(prob(60))
|
||||
INVOKE_ASYNC(src, .proc/cardinal_blasts, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(cardinal_blasts), target)
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(diagonal_blasts), target)
|
||||
sleep(6 + target_slowness)
|
||||
animate(src, color = oldcolor, time = 8)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||
@@ -305,13 +305,13 @@ Difficulty: Normal
|
||||
|
||||
else if(prob(70 - anger_modifier)) //a cross blast of some type
|
||||
if(prob(anger_modifier * (2 / target_slowness)) && health < maxHealth * 0.5) //we're super angry do it at all dirs
|
||||
INVOKE_ASYNC(src, .proc/alldir_blasts, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(alldir_blasts), target)
|
||||
else if(prob(60))
|
||||
INVOKE_ASYNC(src, .proc/cardinal_blasts, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(cardinal_blasts), target)
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
|
||||
INVOKE_ASYNC(src,PROC_REF(diagonal_blasts), target)
|
||||
else //just release a burst of power
|
||||
INVOKE_ASYNC(src, .proc/burst, get_turf(src))
|
||||
INVOKE_ASYNC(src,PROC_REF(burst), get_turf(src))
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/diagonal_blasts(mob/victim) //fire diagonal cross blasts with a delay
|
||||
var/turf/T = get_turf(victim)
|
||||
@@ -322,7 +322,7 @@ Difficulty: Normal
|
||||
sleep(2)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
for(var/d in GLOB.diagonals)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d)
|
||||
INVOKE_ASYNC(src,PROC_REF(blast_wall), T, d)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/cardinal_blasts(mob/victim) //fire cardinal cross blasts with a delay
|
||||
var/turf/T = get_turf(victim)
|
||||
@@ -333,7 +333,7 @@ Difficulty: Normal
|
||||
sleep(2)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
for(var/d in GLOB.cardinals)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d)
|
||||
INVOKE_ASYNC(src,PROC_REF(blast_wall), T, d)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/alldir_blasts(mob/victim) //fire alldir cross blasts with a delay
|
||||
var/turf/T = get_turf(victim)
|
||||
@@ -344,7 +344,7 @@ Difficulty: Normal
|
||||
sleep(2)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
for(var/d in GLOB.alldirs)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d)
|
||||
INVOKE_ASYNC(src,PROC_REF(blast_wall), T, d)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/blast_wall(turf/T, set_dir) //make a wall of blasts beam_range tiles long
|
||||
var/range = beam_range
|
||||
@@ -363,13 +363,13 @@ Difficulty: Normal
|
||||
return
|
||||
arena_cooldown = world.time + initial(arena_cooldown)
|
||||
for(var/d in GLOB.cardinals)
|
||||
INVOKE_ASYNC(src, .proc/arena_squares, T, d)
|
||||
INVOKE_ASYNC(src,PROC_REF(arena_squares), T, d)
|
||||
for(var/t in RANGE_TURFS(11, T))
|
||||
if(t && get_dist(t, T) == 11)
|
||||
new /obj/effect/temp_visual/hierophant/wall(t, src)
|
||||
new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE)
|
||||
if(get_dist(src, T) >= 11) //hey you're out of range I need to get closer to you!
|
||||
INVOKE_ASYNC(src, .proc/blink, T)
|
||||
INVOKE_ASYNC(src,PROC_REF(blink), T)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/arena_squares(turf/T, set_dir) //make a fancy effect extending from the arena target
|
||||
var/turf/previousturf = T
|
||||
@@ -520,7 +520,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)
|
||||
@@ -605,7 +605,7 @@ Difficulty: Normal
|
||||
if(ismineralturf(loc)) //drill mineral turfs
|
||||
var/turf/closed/mineral/M = loc
|
||||
M.gets_drilled(caster)
|
||||
INVOKE_ASYNC(src, .proc/blast)
|
||||
INVOKE_ASYNC(src,PROC_REF(blast))
|
||||
|
||||
/obj/effect/temp_visual/hierophant/blast/proc/blast()
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -677,7 +677,7 @@ Difficulty: Normal
|
||||
if(H.beacon == src)
|
||||
to_chat(user, "<span class='notice'>You start removing your hierophant beacon...</span>")
|
||||
H.timer = world.time + 51
|
||||
INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/prepare_icon_update)
|
||||
INVOKE_ASYNC(H, TYPE_PROC_REF(/obj/item/hierophant_club,prepare_icon_update))
|
||||
if(do_after(user, 50, target = src))
|
||||
playsound(src,'sound/magic/blind.ogg', 200, 1, -4)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user)
|
||||
@@ -687,7 +687,7 @@ Difficulty: Normal
|
||||
qdel(src)
|
||||
else
|
||||
H.timer = world.time
|
||||
INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/prepare_icon_update)
|
||||
INVOKE_ASYNC(H, TYPE_PROC_REF(/obj/item/hierophant_club,prepare_icon_update))
|
||||
else
|
||||
to_chat(user, "<span class='hierophant_warning'>You touch the beacon with the club, but nothing happens.</span>")
|
||||
else
|
||||
|
||||
@@ -90,7 +90,7 @@ Difficulty: Medium
|
||||
speed = 0
|
||||
move_to_delay = 2
|
||||
charging = 1
|
||||
addtimer(CALLBACK(src, .proc/reset_charge), 50)
|
||||
addtimer(CALLBACK(src,PROC_REF(reset_charge)), 50)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/legion/proc/reset_charge()
|
||||
ranged = 1
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -51,7 +51,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))
|
||||
|
||||
@@ -166,7 +166,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)
|
||||
. = ..()
|
||||
@@ -180,7 +180,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
|
||||
@@ -202,7 +202,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"
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize()
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/death), 100)
|
||||
addtimer(CALLBACK(src,PROC_REF(death)), 100)
|
||||
|
||||
//Legion
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelord/legion
|
||||
|
||||
@@ -84,7 +84,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()
|
||||
@@ -133,7 +133,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
|
||||
|
||||
@@ -23,7 +23,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)
|
||||
|
||||
/obj/structure/alien/resin/flower_bud_enemy/proc/bear_fruit()
|
||||
visible_message("<span class='danger'>the plant has borne fruit!</span>")
|
||||
|
||||
@@ -400,7 +400,7 @@
|
||||
else if(canmove && isturf(loc) && prob(33))
|
||||
step(src, pick(GLOB.cardinals))
|
||||
else if(!AIproc)
|
||||
INVOKE_ASYNC(src, .proc/AIprocess)
|
||||
INVOKE_ASYNC(src,PROC_REF(AIprocess))
|
||||
|
||||
/mob/living/simple_animal/slime/handle_automated_movement()
|
||||
return //slime random movement is currently handled in handle_targets()
|
||||
|
||||
@@ -36,7 +36,7 @@ GLOBAL_LIST_EMPTY(typing_indicator_overlays)
|
||||
return
|
||||
typing_indicator_current = state_override
|
||||
add_overlay(state_override)
|
||||
typing_indicator_timerid = addtimer(CALLBACK(src, .proc/clear_typing_indicator), timeout_override, TIMER_STOPPABLE)
|
||||
typing_indicator_timerid = addtimer(CALLBACK(src,PROC_REF(clear_typing_indicator)), timeout_override, TIMER_STOPPABLE)
|
||||
/**
|
||||
* Removes typing indicator.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user