diff --git a/code/_hooks/events.dm b/code/_hooks/events.dm index d22a9d92676..350021421d4 100644 --- a/code/_hooks/events.dm +++ b/code/_hooks/events.dm @@ -1,57 +1,3 @@ -/** - * /vg/ Events System - * - * Intended to replace the hook system. - * Eventually. :V - */ - -// Buggy bullshit requires shitty workarounds -/proc/INVOKE_EVENT(event/event,args) - if(istype(event)) - . = event.Invoke(args) - -/** - * Event dispatcher - */ -/event - var/list/handlers=list() // List of [\ref, Function] - var/atom/holder - -/event/New(loc, owner) - ..() - holder = owner - -/event/Destroy() - holder = null - handlers = null - ..() - -/event/proc/Add(var/objectRef,var/procName) - var/key="\ref[objectRef]:[procName]" - handlers[key]=list(EVENT_OBJECT_INDEX=objectRef,EVENT_PROC_INDEX=procName) - return key - -/event/proc/Remove(var/key) - return handlers.Remove(key) - -/event/proc/Invoke(var/list/args) - if(handlers.len==0) - return - for(var/key in handlers) - var/list/handler=handlers[key] - if(!handler) - continue - - var/objRef = handler[EVENT_OBJECT_INDEX] - var/procName = handler[EVENT_PROC_INDEX] - - if(objRef == null) - handlers.Remove(handler) - continue - args["event"] = src - if(call(objRef,procName)(args, holder)) //An intercept value so whatever code section knows we mean business - . = 1 - #define EVENT_HANDLER_OBJREF_INDEX 1 #define EVENT_HANDLER_PROCNAME_INDEX 2 @@ -60,7 +6,7 @@ return call(source, proctype)(arglist(arguments)) // Declare children of this type path to use as identifiers for the events. -/lazy_event +/event // TODO: Document here the arguments that need to be passed to the procs invoked by each event @@ -68,7 +14,7 @@ // Arguments: // mob/carbon/living/human/user: The human. // rads: The amount of radiation. -/lazy_event/on_irradiate +/event/irradiate // Called whenever an atom's z-level changes. // Seems to be invoked all over the place, actually. Someone should sort this out. @@ -76,81 +22,81 @@ // atom/movable/user: The atom that moved. // to_z: The new z. // from_z: The old z. -/lazy_event/on_z_transition +/event/z_transition // TODO: docs -/lazy_event/on_post_z_transition +/event/post_z_transition // Called whenever an /atom/movable moves. // Arguments: // atom/movable/mover: the movable itself. -/lazy_event/on_moved +/event/moved // Called right before an /atom/movable attempts to move or change dir. -/lazy_event/on_before_move +/event/before_move // Called right after an /atom/movable attempts to move or change dir.. -/lazy_event/on_after_move +/event/after_move // Called when an /atom/movable attempts to change dir. -/lazy_event/on_face +/event/face // Called whenever a datum is destroyed. // Currently, as an optimization, only /atom/movable invokes this but // it can be changed to /datum if the need arises. -/lazy_event/on_destroyed +/event/destroyed // Arguments: // datum/thing: the datum being destroyed. // Called whenever an atom's density changes. // Arguments: // atom/atom: the atom whose density changed. -/lazy_event/on_density_change +/event/density_change // Called whenever a mob uses the "resist" verb. // Arguments: // mob/user: the mob that's resisting -/lazy_event/on_resist +/event/resist // Called whenever a mob casts a spell. // Arguments: // spell/spell: the spell that's being cast. // mob/user: the mob that's casting the spell. // list/targets: the list of targets the spell is being cast against. May not always be a list. -/lazy_event/on_spellcast +/event/spellcast // Called whenever a mob attacks something with an empty hand. // Arguments: // atom/atom: The atom that's being attacked. -/lazy_event/on_uattack +/event/uattack // Called whenever a mob attacks something while restrained. // Arguments: // atom/atom: The atom that's being attacked. -/lazy_event/on_ruattack +/event/ruattack // Called by mob/Logout(). // Arguments: // mob/user: The mob that's logging out. -/lazy_event/on_logout +/event/logout // Called by mob/living/Login(). // Arguments: // mob/user: The living mob that's logging in. -/lazy_event/on_living_login +/event/living_login // Called whenever a mob takes damage. // Truthy return values will prevent the damage. // Arguments: // kind: the kind of damage the mob is being dealt. // amount: the amount of damage the mob is being dealt. -/lazy_event/on_damaged +/event/damaged // Called whenever a mob dies. // Arguments: // mob/user: The mob that's dying. // body_destroyed: Whether the mob is about to be gibbed. -/lazy_event/on_death +/event/death // Called by /mob/proc/ClickOn. // The list of modifiers can be changed by the event listeners. @@ -158,51 +104,112 @@ // mob/user: the user that's doing the clicking. // list/modifiers: list of key modifiers (shift, alt, etcetera). // atom/target: the atom that's being clicked on. -/lazy_event/on_clickon +/event/clickon // Called when an atom is attacked with an empty hand. // Currently only used by xenoarch artifacts, should probably be moved to the base proc. // Arguments: // mob/user: the guy who is attacking. // atom/target: the atom that's being attacked. -/lazy_event/on_attackhand +/event/attackhand // Called whenever an atom bumps into another. -// Currently only used by xenoarch artifacts, should probably be moved to the base proc. +// Currently only used by xenoarch artifacts and humans, should probably be moved to the base proc. // Arguments: -// mob/user: the guy who is bumping. +// atom/movable/bumper: the atom that is bumping. // atom/target: the atom that's being bumped into. -/lazy_event/on_bumped +/event/bumped // Called when mind/transfer_to() finishes. // Arguments: // datum/mind/mind: the mind that just got transferred. -/lazy_event/after_mind_transfer +/event/after_mind_transfer // Called when mob equips an item // Arguments: // atom/item: the item // slot: the slot -/lazy_event/on_equipped +/event/equipped // Called when mob unequippes an item // Arguments: // atom/item: the item -/lazy_event/on_unequipped +/event/unequipped -//Called when movable moves into a new turf +// Called when movable moves into a new turf // Arguments: // atom/movable/mover: thing that moved // location: turf it entered // oldloc: atom it exited -/lazy_event/on_entered +/event/entered -//Called when movable moves from a turf +// Called when movable moves from a turf // Arguments: // atom/movable/mover: thing that moved // location: turf it exited // newloc: atom it is entering -/lazy_event/on_exited +/event/exited + +// Called by attack_hand +// Arguments: +// mob/toucher: the mob doing the touching +// atom/touched: the thing being touched +/event/touched + +// Called by to_bump +// Currently only implemented for humans. +// Arguments: +// atom/movable/bumper: the atom that is bumping. +// atom/target: the atom that's being bumped into. +/event/to_bump + +// Called by hitby +// Currently only implemented for humans. +// Arguments: +// mob/victim: the mob being hit +// obj/item/item: the item that's hitting the victim +/event/hitby + +// Called by attacked_by +// Arguments: +// mob/attacker: the mob doing the attack +// mob/attacked: the victim of the attack +// mob/item: the item being used to attack with +/event/attacked_by + +// Called by unarmed_attack_mob +// Probably should be merged with /event/uattack. +// Arguments: +// mob/attacker: the mob doing the attack +// mob/attacked: the victim of the attack +/event/unarmed_attack + +// Called by beam_connect +// Arguments: +// obj/effect/beam/beam: the beam connecting with the atom +/event/beam_connect + +// Called by bullet_act +// Arguments: +// obj/item/projectile/projectile: the projectile hitting the atom +/event/projectile + +// Called by ex_act +// Arguments: +// severity: the severity of the explosion +/event/explosion + +// Called by /obj/effect/beam/emitter/proc/set_power +// Arguments: +// obj/effect/beam/beam: the beam +/event/beam_power_change + +// Called by attackby +// Currently only used by artifacts. +// Arguments: +// mob/living/attacker: the mob attacking the atom +// obj/item/item: the item being used for the attack +/event/attackby /datum @@ -217,10 +224,10 @@ /** * Calls all registered event handlers with the specified parameters, if any. * Arguments: - * * lazy_event/event_type Required. The typepath of the event to invoke. + * * event/event_type Required. The typepath of the event to invoke. * * list/arguments Optional. List of parameters to be passed to the event handlers. */ -/datum/proc/lazy_invoke_event(lazy_event/event_type, list/arguments) +/datum/proc/invoke_event(event/event_type, list/arguments) SHOULD_NOT_OVERRIDE(TRUE) if(!length(registered_events)) // No event at all is registered for this datum. @@ -240,11 +247,11 @@ * Registers a proc to be called on an object whenever the specified event_type * is invoked on this datum. * Arguments: - * * lazy_event/event_type Required. The typepath of the event to register. + * * event/event_type Required. The typepath of the event to register. * * datum/target Required. The object that the proc will be called on. * * procname Required. The proc to be called. */ -/datum/proc/lazy_register_event(lazy_event/event_type, datum/target, procname) +/datum/proc/register_event(event/event_type, datum/target, procname) SHOULD_NOT_OVERRIDE(TRUE) if(!registered_events) registered_events = list() @@ -260,11 +267,11 @@ * Unregisters a proc so that it is no longer called when the specified * event is invoked. * Arguments: - * * lazy_event/event_type Required. The typepath of the event to unregister. + * * event/event_type Required. The typepath of the event to unregister. * * datum/target Required. The object that's been previously registered. * * procname Required. The proc of the object. */ -/datum/proc/lazy_unregister_event(lazy_event/event_type, datum/target, procname) +/datum/proc/unregister_event(event/event_type, datum/target, procname) SHOULD_NOT_OVERRIDE(TRUE) if(!registered_events) return diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 79999494c23..d4cd7bd448d 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -69,7 +69,7 @@ RestrainedClickOn(A) else */ - if(lazy_invoke_event(/lazy_event/on_uattack, list("atom" = A))) //This returns 1 when doing an action intercept + if(invoke_event(/event/uattack, list("atom" = A))) //This returns 1 when doing an action intercept return A.add_hiddenprint(src) A.attack_ai(src) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 9d0759d25a9..bcb5a7b110d 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -75,7 +75,7 @@ return var/list/modifiers = params2list(params) - lazy_invoke_event(/lazy_event/on_clickon, list( + invoke_event(/event/clickon, list( "user" = src, "modifiers" = modifiers, "target" = A @@ -152,7 +152,7 @@ else if(ismob(A) || istype(held_item, /obj/item/weapon/grab)) delayNextAttack(10) - if(lazy_invoke_event(/lazy_event/on_uattack, list("atom" = A))) //This returns 1 when doing an action intercept + if(invoke_event(/event/uattack, list("atom" = A))) //This returns 1 when doing an action intercept return UnarmedAttack(A, 1, params) @@ -183,7 +183,7 @@ else if(ismob(A)) delayNextAttack(10) - if(lazy_invoke_event(/lazy_event/on_uattack, list("atom" = A))) //This returns 1 when doing an action intercept + if(invoke_event(/event/uattack, list("atom" = A))) //This returns 1 when doing an action intercept return RangedAttack(A, params) @@ -245,7 +245,7 @@ Not currently used by anything but could easily be. */ /mob/proc/RestrainedClickOn(var/atom/A) - lazy_invoke_event(/lazy_event/on_ruattack, list("atom" = A)) + invoke_event(/event/ruattack, list("atom" = A)) /* Middle click @@ -388,9 +388,9 @@ else if(A.pixel_x < -16) change_dir(WEST) - lazy_invoke_event(/lazy_event/on_before_move) - lazy_invoke_event(/lazy_event/on_face) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/before_move) + invoke_event(/event/face) + invoke_event(/event/after_move) return if(abs(dx) < abs(dy)) @@ -404,9 +404,9 @@ else change_dir(WEST) - lazy_invoke_event(/lazy_event/on_before_move) - lazy_invoke_event(/lazy_event/on_face) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/before_move) + invoke_event(/event/face) + invoke_event(/event/after_move) // File renamed to mouse.dm? diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index e45cb6d2651..030203243a5 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -47,7 +47,7 @@ aicamera.captureimage(A, src) return - if(lazy_invoke_event(/lazy_event/on_uattack, list("atom" = A))) + if(invoke_event(/event/uattack, list("atom" = A))) return var/obj/item/W = get_active_hand() diff --git a/code/_onclick/mutual_cuff.dm b/code/_onclick/mutual_cuff.dm index 7e72df332a5..cbdd1007511 100644 --- a/code/_onclick/mutual_cuff.dm +++ b/code/_onclick/mutual_cuff.dm @@ -50,14 +50,14 @@ second.equip_to_slot(cuffs, slot_handcuffed) first.equip_to_slot(cuffs, slot_handcuffed) - first.lazy_register_event(/lazy_event/on_z_transition, first, /mob/living/carbon/proc/z_transition_bringalong) - second.lazy_register_event(/lazy_event/on_z_transition, second, /mob/living/carbon/proc/z_transition_bringalong) + first.register_event(/event/z_transition, first, /mob/living/carbon/proc/z_transition_bringalong) + second.register_event(/event/z_transition, second, /mob/living/carbon/proc/z_transition_bringalong) - first.lazy_register_event(/lazy_event/on_post_z_transition, first, /mob/living/carbon/proc/post_z_transition_bringalong) - second.lazy_register_event(/lazy_event/on_post_z_transition, second, /mob/living/carbon/proc/post_z_transition_bringalong) + first.register_event(/event/post_z_transition, first, /mob/living/carbon/proc/post_z_transition_bringalong) + second.register_event(/event/post_z_transition, second, /mob/living/carbon/proc/post_z_transition_bringalong) - second.lazy_register_event(/lazy_event/on_moved, first, /mob/living/carbon/proc/on_mutual_cuffed_move) - first.lazy_register_event(/lazy_event/on_moved, second, /mob/living/carbon/proc/on_mutual_cuffed_move) + second.register_event(/event/moved, first, /mob/living/carbon/proc/on_mutual_cuffed_move) + first.register_event(/event/moved, second, /mob/living/carbon/proc/on_mutual_cuffed_move) cuffs.on_restraint_apply(first) cuffs.on_restraint_apply(second) @@ -75,14 +75,14 @@ mutual_handcuffed_mobs.Remove(handcuffed_to) //remove from the event - C.lazy_unregister_event(/lazy_event/on_moved, C, /mob/living/carbon/proc/on_mutual_cuffed_move) - handcuffed_to.lazy_unregister_event(/lazy_event/on_moved, handcuffed_to, /mob/living/carbon/proc/on_mutual_cuffed_move) + C.unregister_event(/event/moved, C, /mob/living/carbon/proc/on_mutual_cuffed_move) + handcuffed_to.unregister_event(/event/moved, handcuffed_to, /mob/living/carbon/proc/on_mutual_cuffed_move) - C.lazy_unregister_event(/lazy_event/on_z_transition, C, /mob/living/carbon/proc/z_transition_bringalong) - handcuffed_to.lazy_unregister_event(/lazy_event/on_z_transition, handcuffed_to, /mob/living/carbon/proc/z_transition_bringalong) + C.unregister_event(/event/z_transition, C, /mob/living/carbon/proc/z_transition_bringalong) + handcuffed_to.unregister_event(/event/z_transition, handcuffed_to, /mob/living/carbon/proc/z_transition_bringalong) - C.lazy_unregister_event(/lazy_event/on_post_z_transition, C, /mob/living/carbon/proc/post_z_transition_bringalong) - handcuffed_to.lazy_unregister_event(/lazy_event/on_post_z_transition, handcuffed_to, /mob/living/carbon/proc/post_z_transition_bringalong) + C.unregister_event(/event/post_z_transition, C, /mob/living/carbon/proc/post_z_transition_bringalong) + handcuffed_to.unregister_event(/event/post_z_transition, handcuffed_to, /mob/living/carbon/proc/post_z_transition_bringalong) //reset the mob's vars handcuffed_to.mutual_handcuffed_to = null @@ -114,14 +114,14 @@ /mob/living/carbon/proc/z_transition_bringalong(var/mob/user, var/from_z, var/to_z) if (mutual_handcuffed_to) // Remove the ability to bring his buddy, since his buddy already brought him here - mutual_handcuffed_to.lazy_unregister_event(/lazy_event/on_z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/z_transition_bringalong) - mutual_handcuffed_to.lazy_unregister_event(/lazy_event/on_post_z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/post_z_transition_bringalong) - mutual_handcuffed_to.lazy_unregister_event(/lazy_event/on_moved, mutual_handcuffed_to, /mob/living/carbon/proc/on_mutual_cuffed_move) + mutual_handcuffed_to.unregister_event(/event/z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/z_transition_bringalong) + mutual_handcuffed_to.unregister_event(/event/post_z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/post_z_transition_bringalong) + mutual_handcuffed_to.unregister_event(/event/moved, mutual_handcuffed_to, /mob/living/carbon/proc/on_mutual_cuffed_move) /mob/living/carbon/proc/post_z_transition_bringalong(var/mob/user, var/from_z, var/to_z) if (mutual_handcuffed_to) // Re-adds the events on the fly once the transition is done. mutual_handcuffed_to.forceMove(get_turf(src)) - mutual_handcuffed_to.lazy_register_event(/lazy_event/on_z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/z_transition_bringalong) - mutual_handcuffed_to.lazy_register_event(/lazy_event/on_post_z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/post_z_transition_bringalong) - mutual_handcuffed_to.lazy_register_event(/lazy_event/on_moved, mutual_handcuffed_to, /mob/living/carbon/proc/on_mutual_cuffed_move) + mutual_handcuffed_to.register_event(/event/z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/z_transition_bringalong) + mutual_handcuffed_to.register_event(/event/post_z_transition, mutual_handcuffed_to, /mob/living/carbon/proc/post_z_transition_bringalong) + mutual_handcuffed_to.register_event(/event/moved, mutual_handcuffed_to, /mob/living/carbon/proc/on_mutual_cuffed_move) diff --git a/code/datums/alt_control.dm b/code/datums/alt_control.dm index 61c93366a75..a2a62ec7790 100644 --- a/code/datums/alt_control.dm +++ b/code/datums/alt_control.dm @@ -8,7 +8,7 @@ /datum/control/New(var/mob/new_controller, var/atom/new_controlled) ..() controller = new_controller - controller.lazy_register_event(/lazy_event/on_damaged, src, .proc/user_damaged) + controller.register_event(/event/damaged, src, .proc/user_damaged) controlled = new_controlled /datum/control/Destroy() diff --git a/code/datums/chat_message.dm b/code/datums/chat_message.dm index 0bac8e28de0..c8c12df5ece 100644 --- a/code/datums/chat_message.dm +++ b/code/datums/chat_message.dm @@ -54,7 +54,7 @@ var/runechat_icon = null if (owned_by) owned_by.seen_messages.Remove(src) owned_by.images.Remove(message) - owned_by.mob.lazy_unregister_event(/lazy_event/on_destroyed, src, .proc/qdel_self) + owned_by.mob.unregister_event(/event/destroyed, src, .proc/qdel_self) owned_by = null message_loc = null message = null @@ -74,7 +74,7 @@ var/runechat_icon = null set waitfor = FALSE // Register client who owns this message owned_by = owner.client - owner.lazy_register_event(/lazy_event/on_destroyed, src, .proc/qdel_self) + owner.register_event(/event/destroyed, src, .proc/qdel_self) // Clip message var/maxlen = owned_by.prefs.max_chat_length diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_buildings.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_buildings.dm index ba7407c9526..6768e79e4fd 100644 --- a/code/datums/gamemode/factions/bloodcult/bloodcult_buildings.dm +++ b/code/datums/gamemode/factions/bloodcult/bloodcult_buildings.dm @@ -400,7 +400,7 @@ if(M.client) spawn(5)//we give it time to fade out M.client.images -= watcher_maps["\ref[M]"] - M.lazy_unregister_event(/lazy_event/on_face, src, /obj/structure/cult/altar/proc/checkPosition) + M.unregister_event(/event/face, src, /obj/structure/cult/altar/proc/checkPosition) animate(watcher_maps["\ref[M]"], alpha = 0, time = 5, easing = LINEAR_EASING) watching_mobs = list() @@ -410,7 +410,7 @@ if(!(user in watching_mobs)) user.client.images -= watcher_maps["\ref[user]"] watcher_maps -= "\ref[user]" - user.lazy_unregister_event(/lazy_event/on_face, src, /obj/structure/cult/altar/proc/checkPosition) + user.unregister_event(/event/face, src, /obj/structure/cult/altar/proc/checkPosition) animate(watcher_maps["\ref[user]"], alpha = 0, time = 5, easing = LINEAR_EASING) watching_mobs -= user @@ -596,7 +596,7 @@ animate(watcher_maps["\ref[user]"], alpha = 255, time = 5, easing = LINEAR_EASING) watching_mobs |= user user.client.images |= watcher_maps["\ref[user]"] - user.lazy_register_event(/lazy_event/on_face, src, /obj/structure/cult/altar/proc/checkPosition) + user.register_event(/event/face, src, /obj/structure/cult/altar/proc/checkPosition) if ("Commune with Nar-Sie") switch(veil_thickness) if (CULT_MENDED) @@ -1483,7 +1483,7 @@ var/list/bloodstone_list = list() animate(watcher_maps["\ref[user]"], alpha = 255, time = 5, easing = LINEAR_EASING) watching_mobs |= user user.client.images |= watcher_maps["\ref[user]"] - user.lazy_register_event(/lazy_event/on_face, src, /obj/structure/cult/bloodstone/proc/checkPosition) + user.register_event(/event/face, src, /obj/structure/cult/bloodstone/proc/checkPosition) /obj/structure/cult/bloodstone/proc/checkPosition() for(var/mob/M in watching_mobs) @@ -1496,7 +1496,7 @@ var/list/bloodstone_list = list() if(M.client) spawn(5)//we give it time to fade out M.client.images -= watcher_maps["\ref[M]"] - M.lazy_unregister_event(/lazy_event/on_face, src, /obj/structure/cult/bloodstone/proc/checkPosition) + M.unregister_event(/event/face, src, /obj/structure/cult/bloodstone/proc/checkPosition) animate(watcher_maps["\ref[M]"], alpha = 0, time = 5, easing = LINEAR_EASING) watching_mobs = list() @@ -1506,7 +1506,7 @@ var/list/bloodstone_list = list() if(!(user in watching_mobs)) user.client.images -= watcher_maps["\ref[user]"] watcher_maps -= "\ref[user]" - user.lazy_unregister_event(/lazy_event/on_face, src, /obj/structure/cult/bloodstone/proc/checkPosition) + user.unregister_event(/event/face, src, /obj/structure/cult/bloodstone/proc/checkPosition) animate(watcher_maps["\ref[user]"], alpha = 0, time = 5, easing = LINEAR_EASING) watching_mobs -= user @@ -1680,7 +1680,7 @@ var/list/bloodstone_list = list() switch(dance_move) if ("clock") for (var/mob/M in contributors) - M.lazy_invoke_event(/lazy_event/on_before_move) + M.invoke_event(/event/before_move) switch (get_dir(src,M)) if (NORTHWEST,NORTH) M.forceMove(get_step(M,EAST)) @@ -1694,11 +1694,11 @@ var/list/bloodstone_list = list() if (SOUTHWEST,WEST) M.forceMove(get_step(M,NORTH)) M.dir = NORTH - M.lazy_invoke_event(/lazy_event/on_after_move) - M.lazy_invoke_event(/lazy_event/on_moved, list("mover" = M)) + M.invoke_event(/event/after_move) + M.invoke_event(/event/moved, list("mover" = M)) if ("counter") for (var/mob/M in contributors) - M.lazy_invoke_event(/lazy_event/on_before_move) + M.invoke_event(/event/before_move) switch (get_dir(src,M)) if (NORTHEAST,NORTH) M.forceMove(get_step(M,WEST)) @@ -1712,22 +1712,22 @@ var/list/bloodstone_list = list() if (NORTHWEST,WEST) M.forceMove(get_step(M,SOUTH)) M.dir = SOUTH - M.lazy_invoke_event(/lazy_event/on_after_move) - M.lazy_invoke_event(/lazy_event/on_moved, list("mover" = M)) + M.invoke_event(/event/after_move) + M.invoke_event(/event/moved, list("mover" = M)) if ("spin") for (var/mob/M in contributors) spawn() M.dir = SOUTH - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = EAST - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = NORTH - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = WEST - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = SOUTH - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) diff --git a/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm b/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm index a5c6da44222..0836eda3b4d 100644 --- a/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm +++ b/code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm @@ -652,7 +652,7 @@ var/bloodstone_backup = 0 switch(dance_move) if ("clock") for (var/mob/M in dancers) - M.lazy_invoke_event(/lazy_event/on_before_move) + M.invoke_event(/event/before_move) switch (get_dir(src,M)) if (NORTHWEST,NORTH) step_to(M, get_step(M,EAST)) @@ -662,11 +662,11 @@ var/bloodstone_backup = 0 step_to(M, get_step(M,WEST)) if (SOUTHWEST,WEST) step_to(M, get_step(M,NORTH)) - M.lazy_invoke_event(/lazy_event/on_after_move) - M.lazy_invoke_event(/lazy_event/on_moved, list("mover" = M)) + M.invoke_event(/event/after_move) + M.invoke_event(/event/moved, list("mover" = M)) if ("counter") for (var/mob/M in dancers) - M.lazy_invoke_event(/lazy_event/on_before_move) + M.invoke_event(/event/before_move) switch (get_dir(src,M)) if (NORTHEAST,NORTH) step_to(M, get_step(M,WEST)) @@ -676,22 +676,22 @@ var/bloodstone_backup = 0 step_to(M, get_step(M,EAST)) if (NORTHWEST,WEST) step_to(M, get_step(M,SOUTH)) - M.lazy_invoke_event(/lazy_event/on_after_move) - M.lazy_invoke_event(/lazy_event/on_moved, list("mover" = M)) + M.invoke_event(/event/after_move) + M.invoke_event(/event/moved, list("mover" = M)) if ("spin") for (var/mob/M in dancers) spawn() M.dir = SOUTH - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = EAST - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = NORTH - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = WEST - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) sleep(0.75) M.dir = SOUTH - M.lazy_invoke_event(/lazy_event/on_face) + M.invoke_event(/event/face) diff --git a/code/datums/gamemode/role/time_agent.dm b/code/datums/gamemode/role/time_agent.dm index 335aab8b6b8..e19fe10bf44 100644 --- a/code/datums/gamemode/role/time_agent.dm +++ b/code/datums/gamemode/role/time_agent.dm @@ -130,11 +130,11 @@ eviltwinrecruiter.logging = TRUE // A player has their role set to Yes or Always - eviltwinrecruiter.player_volunteering.Add(src, "recruiter_recruiting") + eviltwinrecruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // ", but No or Never - eviltwinrecruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + eviltwinrecruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - eviltwinrecruiter.recruited.Add(src, "recruiter_recruited") + eviltwinrecruiter.recruited = new /callback(src, .proc/recruiter_recruited) eviltwinrecruiter.request_player() if(5 to INFINITY) @@ -142,25 +142,20 @@ // var/datum/organ/internal/teleorgan = pick(H.internal_organs) return -/datum/role/time_agent/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "You are a possible candidate for \a [src]'s evil twin. Get ready. ([controls])") +/datum/role/time_agent/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "You are a possible candidate for \a [src]'s evil twin. Get ready. ([controls])") -/datum/role/time_agent/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - if(O.client && get_role_desire_str(O.client.prefs.roles[TIMEAGENT]) != "Never") - to_chat(O, "\a [src] is going to get shot by his evil twin. ([controls])") +/datum/role/time_agent/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) + if(player.client && get_role_desire_str(player.client.prefs.roles[TIMEAGENT]) != "Never") + to_chat(player, "\a [src] is going to get shot by his evil twin. ([controls])") -/datum/role/time_agent/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] - if(O) +/datum/role/time_agent/proc/recruiter_recruited(mob/dead/observer/player) + if(player) qdel(eviltwinrecruiter) eviltwinrecruiter = null var/mob/living/carbon/human/H = new /mob/living/carbon/human - H.ckey = O.ckey + H.ckey = player.ckey H.client.changeView() var/datum/role/time_agent/eviltwin/twin = new /datum/role/time_agent/eviltwin(H.mind, fac = src.faction) twin.erase_target = src diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index bedcbb7a36c..e1b0386cced 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -140,9 +140,9 @@ P.reflected = TRUE//you can now get hit by the projectile you just fired. Careful with portals! if(curturf.z != destturf.z) - teleatom.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = teleatom, "from_z" = curturf.z, "to_z" = destturf.z)) + teleatom.invoke_event(/event/z_transition, list("user" = teleatom, "from_z" = curturf.z, "to_z" = destturf.z)) for(var/atom/movable/AA in recursive_type_check(teleatom)) - AA.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = AA, "from_z" = curturf.z, "to_z" = destturf.z)) + AA.invoke_event(/event/z_transition, list("user" = AA, "from_z" = curturf.z, "to_z" = destturf.z)) if(force_teleport) teleatom.forceMove(destturf,TRUE) diff --git a/code/datums/map_elements.dm b/code/datums/map_elements.dm index bf9c362d910..ec43144f739 100644 --- a/code/datums/map_elements.dm +++ b/code/datums/map_elements.dm @@ -87,7 +87,7 @@ var/list/datum/map_element/map_elements = list() if(!istype(A)) return - A.lazy_register_event(/lazy_event/on_destroyed, src, .proc/clear_references) + A.register_event(/event/destroyed, src, .proc/clear_references) return A diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2a0e7edb065..fcfb73e2c49 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -109,7 +109,7 @@ if (hasFactionsWithHUDIcons()) update_faction_icons() - lazy_invoke_event(/lazy_event/after_mind_transfer, list("mind" = src)) + invoke_event(/event/after_mind_transfer, list("mind" = src)) /datum/mind/proc/transfer_to_without_current(var/mob/new_character) new_character.attack_log += "\[[time_stamp()]\]: mind transfer from a body-less observer to [new_character]" diff --git a/code/datums/recruiter.dm b/code/datums/recruiter.dm index 4c1371028f9..22f582d0d43 100644 --- a/code/datums/recruiter.dm +++ b/code/datums/recruiter.dm @@ -16,22 +16,22 @@ // Args: // player = /mob/dead/observer // controls = /string - var/event/player_volunteering = new() + var/callback/player_volunteering // Same, but only called when player has disabled the role. - var/event/player_not_volunteering = new() + var/callback/player_not_volunteering // Args: player = /mob/dead/observer or null - var/event/recruited = new() + var/callback/recruited /datum/recruiter/New(var/atom/_subject) subject=_subject /datum/recruiter/proc/recruiting_player(var/mob/dead/observer/O) - INVOKE_EVENT(player_volunteering, list("player"=O, "controls"="Teleport | Retract")) + player_volunteering.invoke_async(O, "Teleport | Retract") /datum/recruiter/proc/nonrecruiting_player(var/mob/dead/observer/O) - INVOKE_EVENT(player_not_volunteering, list("player"=O, "controls"="Teleport | Sign up")) + player_not_volunteering.invoke_async(O, "Teleport | Sign up") /datum/recruiter/proc/request_player() currently_querying = list() @@ -56,7 +56,7 @@ spawn(recruitment_timeout) if(!currently_querying || currently_querying.len==0) - INVOKE_EVENT(recruited, list("player"=null)) + recruited.invoke_async(null) return var/mob/dead/observer/O @@ -68,10 +68,10 @@ O = pick(currently_querying) if(!check_observer(O)) - INVOKE_EVENT(recruited, list("player"=null)) + recruited.invoke_async(null) else paiController.was_recruited(O) - INVOKE_EVENT(recruited, list("player"=O)) + recruited.invoke_async(O) /datum/recruiter/Topic(var/href, var/list/href_list) if(href_list["signup"]) @@ -121,4 +121,5 @@ currently_querying = null player_volunteering = null player_not_volunteering = null + recruited = null ..() diff --git a/code/datums/shuttle.dm b/code/datums/shuttle.dm index 91d664530e5..c88b57671d6 100644 --- a/code/datums/shuttle.dm +++ b/code/datums/shuttle.dm @@ -333,7 +333,7 @@ destination_port = null return for(var/atom/movable/AA in linked_area) - AA.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = AA, "to_z" = D.z, "from_z" = linked_port.z)) + AA.invoke_event(/event/z_transition, list("user" = AA, "to_z" = D.z, "from_z" = linked_port.z)) if(transit_port && get_transit_delay()) if(broadcast) diff --git a/code/datums/tether.dm b/code/datums/tether.dm index aec4b499562..881ae26d320 100644 --- a/code/datums/tether.dm +++ b/code/datums/tether.dm @@ -16,8 +16,8 @@ effective_master = master slave = S effective_slave = slave - master.lazy_register_event(/lazy_event/on_moved, src, .proc/master_moved) - master.lazy_register_event(/lazy_event/on_moved, src, .proc/slave_moved) + master.register_event(/event/moved, src, .proc/master_moved) + master.register_event(/event/moved, src, .proc/slave_moved) if(!master.current_tethers) master.current_tethers = list() master.current_tethers.Add(src) @@ -27,17 +27,17 @@ /datum/tether/Destroy() if(effective_master != master) - effective_master.lazy_unregister_event(/lazy_event/on_moved, src, .proc/master_moved) + effective_master.unregister_event(/event/moved, src, .proc/master_moved) effective_master.current_tethers.Remove(src) effective_master = null - master.lazy_unregister_event(/lazy_event/on_moved, src, .proc/master_moved) + master.unregister_event(/event/moved, src, .proc/master_moved) master.current_tethers.Remove(src) master = null if(effective_slave != slave) - effective_slave.lazy_unregister_event(/lazy_event/on_moved, src, .proc/slave_moved) + effective_slave.unregister_event(/event/moved, src, .proc/slave_moved) effective_slave.current_tethers.Remove(src) effective_slave = null - slave.lazy_unregister_event(/lazy_event/on_moved, src, .proc/slave_moved) + slave.unregister_event(/event/moved, src, .proc/slave_moved) slave.current_tethers.Remove(src) slave = null ..() @@ -55,12 +55,12 @@ /datum/tether/proc/master_moved() if(effective_master != master) if(!isturf(effective_master.loc) || isturf(master.loc)) - effective_master.lazy_unregister_event(/lazy_event/on_moved, src, .proc/master_moved) + effective_master.unregister_event(/event/moved, src, .proc/master_moved) effective_master.current_tethers.Remove(src) effective_master = master if(!isturf(master.loc) && effective_master == master) effective_master = get_holder_at_turf_level(master) - effective_master.lazy_register_event(/lazy_event/on_moved, src, .proc/master_moved) + effective_master.register_event(/event/moved, src, .proc/master_moved) if(!effective_master.current_tethers) effective_master.current_tethers = list() effective_master.current_tethers.Add(src) @@ -72,12 +72,12 @@ /datum/tether/proc/slave_moved() if(effective_slave != slave) if(!isturf(effective_slave.loc) || isturf(slave.loc)) - effective_slave.lazy_unregister_event(/lazy_event/on_moved, src, .proc/slave_moved) + effective_slave.unregister_event(/event/moved, src, .proc/slave_moved) effective_slave.current_tethers.Remove(src) effective_slave = slave if(!isturf(slave.loc) && effective_slave == slave) effective_slave = get_holder_at_turf_level(slave) - effective_slave.lazy_register_event(/lazy_event/on_moved, src, .proc/slave_moved) + effective_slave.register_event(/event/moved, src, .proc/slave_moved) if(!effective_slave.current_tethers) effective_slave.current_tethers = list() effective_slave.current_tethers.Add(src) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 0e9d87de6e1..a840ab00603 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -499,7 +499,7 @@ to_chat(trappeduser, "With your leg missing, you slip out of the bear trap.") trapped = 0 unlock_atom(trappeduser) - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) trappeduser = null anchored = FALSE return @@ -514,7 +514,7 @@ playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) trapped = 0 unlock_atom(trappeduser) - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) trappeduser = null anchored = FALSE return @@ -588,7 +588,7 @@ trapped = 0 anchored = FALSE unlock_atom(trappeduser) - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) trappeduser = null else to_chat(user, "You begin to pry the bear trap off of [trappeduser.name].") @@ -597,7 +597,7 @@ trapped = 0 anchored = FALSE unlock_atom(trappeduser) - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) trappeduser = null else if (istype(trappedbear)) to_chat(user, "You begin to pry the bear trap off of [trappedbear.name].") @@ -666,7 +666,7 @@ playsound(src, 'sound/effects/snap.ogg', 60, 1) H.audible_scream() lock_atom(H, /datum/locking_category/beartrap) - H.lazy_register_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + H.register_event(/event/moved, src, .proc/forcefully_remove) if(trappedorgan.take_damage(15, 0, 25, SERRATED_BLADE & SHARP_BLADE)) H.UpdateDamageIcon() @@ -675,7 +675,7 @@ if(!H.pick_usable_organ(trappedorgan)) //check if they lost their leg, and get them out of the trap to_chat(H, "With your leg missing, you slip out of the bear trap!") trapped = 0 - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) trappeduser = null unlock_atom(H) anchored = FALSE @@ -717,7 +717,7 @@ to_chat(trappeduser, "With your leg missing, you slip out of the bear trap.") trapped = 0 unlock_atom(trappeduser) - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) trappeduser = null anchored = FALSE @@ -744,7 +744,7 @@ visible_message("The wound on [mover]'s leg worsens terribly as the trap let go of them.") trapped = 0 unlock_atom(trappeduser) - trappeduser.lazy_unregister_event(/lazy_event/on_moved, src, .proc/forcefully_remove) + trappeduser.unregister_event(/event/moved, src, .proc/forcefully_remove) anchored = FALSE trappeduser.update_canmove() trappeduser = null diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 40aa41535ad..1f44495e84f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -198,7 +198,7 @@ var/global/list/ghdel_profiling = list() densityChanged() /atom/proc/densityChanged() - lazy_invoke_event(/lazy_event/on_density_change, list("atom" = src)) + invoke_event(/event/density_change, list("atom" = src)) if(beams && beams.len) // If beams is not a list something bad happened and we want to have a runtime to lynch whomever is responsible. beams.len = 0 if(!isturf(src)) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 3cfb5d90e29..cac7de34973 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -75,7 +75,7 @@ qdel(materials) materials = null - lazy_invoke_event(/lazy_event/on_destroyed, list("thing" = src)) + invoke_event(/event/destroyed, list("thing" = src)) for (var/atom/movable/AM in locked_atoms) unlock_atom(AM) @@ -127,7 +127,7 @@ /atom/movable/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, var/glide_size_override = 0) if(!loc || !NewLoc) return 0 - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) if(current_tethers && current_tethers.len) for(var/datum/tether/master_slave/T in current_tethers) @@ -137,7 +137,7 @@ break if(get_exact_dist(T.effective_master, NewLoc) > T.tether_distance) change_dir(Dir) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return 0 for(var/datum/tether/equal/restrictive/R in current_tethers) var/atom/movable/AM @@ -150,11 +150,11 @@ break if(get_exact_dist(AM, NewLoc) > R.tether_distance) change_dir(Dir) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return 0 if(timestopped) if(!pulledby || pulledby.timestopped) //being moved by our wizard maybe? - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return 0 var/can_pull_tether = 0 @@ -162,7 +162,7 @@ if(tether.attempt_to_follow(src,NewLoc)) can_pull_tether = 1 else - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return 0 if(glide_size_override > 0) @@ -173,7 +173,7 @@ . = ..() update_dir() - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return //We always split up movements into cardinals for issues with diagonal movements. @@ -215,7 +215,7 @@ if(!loc || (loc == oldloc && oldloc != NewLoc)) last_move = 0 - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return update_client_hook(loc) @@ -233,8 +233,8 @@ last_moved = world.time src.move_speed = world.timeofday - src.l_move_time src.l_move_time = world.timeofday - lazy_invoke_event(/lazy_event/on_moved, list("mover" = src)) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/moved, list("mover" = src)) + invoke_event(/event/after_move) /atom/movable/search_contents_for(path,list/filter_path=null) // For vehicles var/list/found = ..() @@ -409,7 +409,7 @@ // harderforce is for things like lighting overlays which should only be moved in EXTREMELY specific sitations. /atom/movable/proc/forceMove(atom/destination,var/no_tp=0, var/harderforce = FALSE, glide_size_override = 0) - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) if(glide_size_override) glide_size = glide_size_override var/atom/old_loc = loc @@ -439,11 +439,11 @@ update_client_hook(loc) - lazy_invoke_event(/lazy_event/on_moved, list("mover" = src)) + invoke_event(/event/moved, list("mover" = src)) var/turf/T = get_turf(destination) if(old_loc && T && old_loc.z != T.z) - lazy_invoke_event(/lazy_event/on_z_transition, list("user" = src, "from_z" = old_loc.z, "to_z" = T.z)) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/z_transition, list("user" = src, "from_z" = old_loc.z, "to_z" = T.z)) + invoke_event(/event/after_move) return 1 /atom/movable/proc/update_client_hook(atom/destination) @@ -675,7 +675,7 @@ AM.lock_atom(src, /datum/locking_category/overlay) if (istype(master, /atom/movable)) var/atom/movable/AM = master - AM.lazy_register_event(/lazy_event/on_destroyed, src, .proc/qdel_self) + AM.register_event(/event/destroyed, src, .proc/qdel_self) verbs.len = 0 /atom/movable/overlay/proc/qdel_self(datum/thing) @@ -685,7 +685,7 @@ if(istype(master, /atom/movable)) var/atom/movable/AM = master AM.unlock_atom(src) - AM.lazy_unregister_event(/lazy_event/on_destroyed, src, .proc/qdel_self) + AM.unregister_event(/event/destroyed, src, .proc/qdel_self) master = null return ..() @@ -1157,7 +1157,7 @@ // -- trackers /atom/movable/proc/add_tracker(var/datum/tracker/T) - lazy_register_event(T, /datum/tracker/proc/recieve_position) + register_event(T, /datum/tracker/proc/recieve_position) /datum/tracker var/name = "Tracker" diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index c72be0f63ae..a157aadda9d 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -53,13 +53,13 @@ /datum/dna/gene/basic/stealth/chameleon/activate(var/mob/M, var/connected, var/flags) ..() - M.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + M.register_event(/event/moved, src, .proc/mob_moved) return 1 /datum/dna/gene/basic/stealth/chameleon/deactivate(var/mob/M, var/connected, var/flags) if(!..()) return 0 - M.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + M.unregister_event(/event/moved, src, .proc/mob_moved) return 1 /datum/dna/gene/basic/stealth/chameleon/proc/mob_moved(var/mob/mover) @@ -477,7 +477,7 @@ var/prevLayer = target.layer target.plane = EFFECTS_PLANE - + target.flying = 1 for(var/i=0, i maxjumprange) //to avoid going in an infinite loop break - lazy_invoke_event(/lazy_event/on_moved, list("mover" = src)) + invoke_event(/event/moved, list("mover" = src)) return 0 - lazy_invoke_event(/lazy_event/on_moved, list("mover" = src)) + invoke_event(/event/moved, list("mover" = src)) diff --git a/code/game/gamemodes/events/powercreeper.dm b/code/game/gamemodes/events/powercreeper.dm index f38583dadae..04d2685ed21 100644 --- a/code/game/gamemodes/events/powercreeper.dm +++ b/code/game/gamemodes/events/powercreeper.dm @@ -179,9 +179,9 @@ else P.growdirs &= ~get_dir(P, src) if(dying) - T.lazy_unregister_event(/lazy_event/on_density_change, src, .proc/proxDensityChange) + T.unregister_event(/event/density_change, src, .proc/proxDensityChange) else - T.lazy_register_event(/lazy_event/on_density_change, src, .proc/proxDensityChange) + T.register_event(/event/density_change, src, .proc/proxDensityChange) /obj/structure/cable/powercreeper/proc/proxDensityChange(atom/atom) var/turf/T = get_turf(atom) diff --git a/code/game/gamemodes/wizard/apprentice_contract.dm b/code/game/gamemodes/wizard/apprentice_contract.dm index c7c6efee3d5..19e15579753 100644 --- a/code/game/gamemodes/wizard/apprentice_contract.dm +++ b/code/game/gamemodes/wizard/apprentice_contract.dm @@ -149,27 +149,23 @@ var/list/wizard_apprentice_setups_by_name = list() recruiter.jobban_roles = list("Syndicate") recruiter.recruitment_timeout = 30 SECONDS // Role set to Yes or Always - recruiter.player_volunteering.Add(src, "recruiter_recruiting") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // Role set to No or Never - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) recruiter.request_player() -/obj/item/wizard_apprentice_contract/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\A [src] is looking for candidates. You have been added to the list of potential ghosts. ([controls])") +/obj/item/wizard_apprentice_contract/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\A [src] is looking for candidates. You have been added to the list of potential ghosts. ([controls])") -/obj/item/wizard_apprentice_contract/proc/recruiter_not_recruiting(var/list/args) +/obj/item/wizard_apprentice_contract/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] to_chat(O, "\A [src] is looking for candidates. ([controls])") -/obj/item/wizard_apprentice_contract/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/ghost = args["player"] - if(!ghost) +/obj/item/wizard_apprentice_contract/proc/recruiter_recruited(mob/dead/observer/player) + if(!player) chosen_setup = null polling_ghosts = FALSE set_light(0) @@ -180,7 +176,7 @@ var/list/wizard_apprentice_setups_by_name = list() var/mob/living/carbon/human/apprentice = new(this_turf) apprentice.setGender(forced_apprentice_gender || pick(MALE,FEMALE)) apprentice.randomise_appearance_for(apprentice.gender) - apprentice.ckey = ghost.ckey + apprentice.ckey = player.ckey chosen_setup.give_spells(apprentice) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index b3484a88082..4d2e8df923a 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -120,12 +120,12 @@ user.update_inv_hands() if(wielded) user.visible_message("\The [user] throws \the [src] over \himself and disappears!","You throw \the [src] over yourself and disappear.") - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) user.alpha = 1 //to cloak immediately instead of on the next Life() tick user.alphas[CLOAKINGCLOAK] = 1 else user.visible_message("\The [user] appears out of thin air!","You take \the [src] off and become visible again.") - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) user.alpha = initial(user.alpha) user.alphas.Remove(CLOAKINGCLOAK) @@ -219,8 +219,8 @@ /obj/item/phylactery/Destroy() if(bound_soul) - bound_soul.lazy_unregister_event(/lazy_event/on_death, src, .proc/revive_soul) - bound_soul.lazy_unregister_event(/lazy_event/on_z_transition, src, .proc/z_block) + bound_soul.unregister_event(/event/death, src, .proc/revive_soul) + bound_soul.unregister_event(/event/z_transition, src, .proc/z_block) to_chat(bound_soul, "You feel your form begin to unwind!") spawn(rand(5 SECONDS, 15 SECONDS)) bound_soul.dust() @@ -284,23 +284,23 @@ /obj/item/phylactery/proc/unbind() if(bound_soul) - bound_soul.lazy_unregister_event(/lazy_event/on_z_transition, src, .proc/z_block) - bound_soul.lazy_unregister_event(/lazy_event/on_death, src, .proc/revive_soul) + bound_soul.unregister_event(/event/z_transition, src, .proc/z_block) + bound_soul.unregister_event(/event/death, src, .proc/revive_soul) bound_soul = null update_icon() /obj/item/phylactery/proc/bind(var/mob/to_bind) - to_bind.lazy_register_event(/lazy_event/on_death, src, .proc/revive_soul) - to_bind.lazy_register_event(/lazy_event/on_z_transition, src, .proc/z_block) + to_bind.register_event(/event/death, src, .proc/revive_soul) + to_bind.register_event(/event/z_transition, src, .proc/z_block) bound_soul = to_bind /obj/item/phylactery/proc/unbind_mind() if(bound_mind) - bound_mind.lazy_unregister_event(/lazy_event/after_mind_transfer, src, .proc/follow_mind) + bound_mind.unregister_event(/event/after_mind_transfer, src, .proc/follow_mind) bound_mind = null /obj/item/phylactery/proc/bind_mind(var/datum/mind/to_bind) - to_bind.lazy_register_event(/lazy_event/after_mind_transfer, src, .proc/follow_mind) + to_bind.register_event(/event/after_mind_transfer, src, .proc/follow_mind) bound_mind = to_bind /obj/item/phylactery/proc/follow_mind(datum/mind/mind) @@ -417,14 +417,14 @@ equip_cooldown = initial(equip_cooldown) var/spell/fuckup/F = new H.add_spell(/spell/fuckup) - H.lazy_register_event(/lazy_event/on_spellcast, F, /spell/fuckup/proc/on_spellcast) + H.register_event(/event/spellcast, F, /spell/fuckup/proc/on_spellcast) return ..() /obj/item/clothing/shoes/fuckup/unequipped(mob/living/carbon/human/H, equipped_slot) equip_cooldown = initial(equip_cooldown) for (var/spell/fuckup/F in H.spell_list) H.remove_spell(F) - H.lazy_unregister_event(/lazy_event/on_spellcast, F, /spell/fuckup/proc/on_spellcast) + H.unregister_event(/event/spellcast, F, /spell/fuckup/proc/on_spellcast) return ..() // -- Fuckup boot spell diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index 90e358c3b31..c0f7e6ee2b4 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -34,13 +34,13 @@ detectTime = world.time // start the clock if (!(target in motionTargets)) motionTargets += target - target.lazy_register_event(/lazy_event/on_destroyed, src, .proc/clearDeletedTarget) + target.register_event(/event/destroyed, src, .proc/clearDeletedTarget) return 1 /obj/machinery/camera/proc/lostTarget(var/mob/target) if (target in motionTargets) motionTargets -= target - target.lazy_unregister_event(/lazy_event/on_destroyed, src, .proc/clearDeletedTarget) + target.unregister_event(/event/destroyed, src, .proc/clearDeletedTarget) if (motionTargets.len == 0) cancelAlarm() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index d6d93ff7bdb..e410e25b02d 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -100,7 +100,7 @@ var/list/obj/machinery/camera/cyborg_cams = list( for(var/datum/action/action_datum in user_actions) action_datum.Grant(user) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/user_moved) + user.register_event(/event/moved, src, .proc/user_moved) /obj/machinery/computer/security/proc/stop_watching(mob/user) user.cancel_camera() @@ -108,7 +108,7 @@ var/list/obj/machinery/camera/cyborg_cams = list( action_datum.Remove(user) qdel(action_datum) our_actions -= user - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/user_moved) + user.unregister_event(/event/moved, src, .proc/user_moved) /obj/machinery/computer/security/proc/user_moved(mob/mover) if(is_in_range(mover)) diff --git a/code/game/machinery/station_map.dm b/code/game/machinery/station_map.dm index cf1581aaa7b..fb5cb1d260a 100644 --- a/code/game/machinery/station_map.dm +++ b/code/game/machinery/station_map.dm @@ -106,7 +106,7 @@ var/list/station_holomaps = list() watching_mob = user flick("station_map_activate", src) watching_mob.client.images |= holomap_datum.station_map - watching_mob.lazy_register_event(/lazy_event/on_face, src, /obj/machinery/station_map/proc/checkPosition) + watching_mob.register_event(/event/face, src, /obj/machinery/station_map/proc/checkPosition) if(bogus) to_chat(user, "The holomap failed to initialize. This area of space cannot be mapped.") else @@ -143,7 +143,7 @@ var/list/station_holomaps = list() var/mob/M = watching_mob spawn(5)//we give it time to fade out M.client.images -= holomap_datum.station_map - watching_mob.lazy_unregister_event(/lazy_event/on_face, src, /obj/machinery/station_map/proc/checkPosition) + watching_mob.unregister_event(/event/face, src, /obj/machinery/station_map/proc/checkPosition) watching_mob = null animate(holomap_datum.station_map, alpha = 0, time = 5, easing = LINEAR_EASING) @@ -417,7 +417,7 @@ var/list/station_holomaps = list() animate(watcher_maps["\ref[user]"], alpha = 255, time = 5, easing = LINEAR_EASING) watching_mobs |= user user.client.images |= watcher_maps["\ref[user]"] - user.lazy_register_event(/lazy_event/on_face, src, /obj/machinery/station_map/proc/checkPosition) + user.register_event(/event/face, src, /obj/machinery/station_map/proc/checkPosition) to_chat(user, "A hologram of the station appears before your eyes.") @@ -432,7 +432,7 @@ var/list/station_holomaps = list() if(M.client) spawn(5)//we give it time to fade out M.client.images -= watcher_maps["\ref[M]"] - M.lazy_unregister_event(/lazy_event/on_face, src, /obj/machinery/station_map/proc/checkPosition) + M.unregister_event(/event/face, src, /obj/machinery/station_map/proc/checkPosition) animate(watcher_maps["\ref[M]"], alpha = 0, time = 5, easing = LINEAR_EASING) watching_mobs = list() @@ -442,7 +442,7 @@ var/list/station_holomaps = list() if(!(user in watching_mobs)) user.client.images -= watcher_maps["\ref[user]"] watcher_maps -= "\ref[user]" - user.lazy_unregister_event(/lazy_event/on_face, src, /obj/machinery/station_map/proc/checkPosition) + user.unregister_event(/event/face, src, /obj/machinery/station_map/proc/checkPosition) animate(watcher_maps["\ref[user]"], alpha = 0, time = 5, easing = LINEAR_EASING) watching_mobs -= user diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index ff582afb7a7..0daa1313643 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -271,14 +271,14 @@ /obj/item/mecha_parts/mecha_equipment/tool/cable_layer/attach() ..() - chassis.lazy_register_event(/lazy_event/on_moved, src, .proc/layCable) + chassis.register_event(/event/moved, src, .proc/layCable) /obj/item/mecha_parts/mecha_equipment/tool/cable_layer/detach() - chassis.lazy_unregister_event(/lazy_event/on_moved, src, .proc/layCable) + chassis.unregister_event(/event/moved, src, .proc/layCable) return ..() /obj/item/mecha_parts/mecha_equipment/tool/cable_layer/Destroy() - chassis.lazy_unregister_event(/lazy_event/on_moved, src, .proc/layCable) + chassis.unregister_event(/event/moved, src, .proc/layCable) return ..() /obj/item/mecha_parts/mecha_equipment/tool/cable_layer/action(var/obj/item/stack/cable_coil/target) diff --git a/code/game/objects/effects/beam.dm b/code/game/objects/effects/beam.dm index b411a322dab..f0f8ca48e55 100644 --- a/code/game/objects/effects/beam.dm +++ b/code/game/objects/effects/beam.dm @@ -129,7 +129,7 @@ else icon_state = "emitter_double_mouse_end" -// Listener for /lazy_event/on_moved +// Listener for /event/moved /obj/effect/beam/proc/target_moved(atom/movable/mover) if(master) beam_testing("Child got target_moved! Feeding to master.") @@ -150,7 +150,7 @@ if(A && !(A in sources) && Cross(A)) //If there is a dense atom, we're not being emitted by it, and it can cross us Crossed(A) -// Listener for /lazy_event/on_density_change +// Listener for /event/density_change /obj/effect/beam/proc/target_density_change(atom/atom) if(master) beam_testing("Child got target_density_change! Feeding to master.") @@ -161,7 +161,7 @@ // Disconnect and re-emit. disconnect() -// Listener for /lazy_event/on_destroyed +// Listener for /event/destroyed /obj/effect/beam/proc/target_destroyed(datum/thing) if(master) beam_testing("Child got target_destroyed! Feeding to master.") @@ -226,9 +226,9 @@ BM.target=AM BM.update_end_icon() if(istype(AM)) - AM.lazy_register_event(/lazy_event/on_moved, BM, .proc/target_moved) - AM.lazy_register_event(/lazy_event/on_destroyed, BM, .proc/target_destroyed) - AM.lazy_register_event(/lazy_event/on_density_change, BM, .proc/target_density_change) + AM.register_event(/event/moved, BM, .proc/target_moved) + AM.register_event(/event/destroyed, BM, .proc/target_destroyed) + AM.register_event(/event/density_change, BM, .proc/target_density_change) BM.targetContactLoc = AM.loc beam_testing("\ref[BM] - Connected to [AM]") AM.beam_connect(BM) @@ -269,8 +269,8 @@ var/obj/effect/beam/_master=get_master() if(_master.target) if(ismovable(_master.target)) - _master.target.lazy_unregister_event(/lazy_event/on_moved, _master, .proc/target_moved) - _master.target.lazy_unregister_event(/lazy_event/on_destroyed, src, .proc/target_destroyed) + _master.target.unregister_event(/event/moved, _master, .proc/target_moved) + _master.target.unregister_event(/event/destroyed, src, .proc/target_destroyed) _master.target.beam_disconnect(_master) _master.target=null //if(_master.next) @@ -382,7 +382,7 @@ var/turf/T = get_turf(src) if(T) - T.lazy_register_event(/lazy_event/on_density_change, src, .proc/turf_density_change) + T.register_event(/event/density_change, src, .proc/turf_density_change) next = spawn_child() if(next) @@ -428,11 +428,11 @@ /obj/effect/beam/Destroy() var/turf/T = get_turf(src) if(T) - T.lazy_unregister_event(/lazy_event/on_density_change, src, .proc/turf_density_change) + T.unregister_event(/event/density_change, src, .proc/turf_density_change) var/obj/effect/beam/ourselves = src var/obj/effect/beam/ourmaster = get_master() if(target) - target.lazy_unregister_event(/lazy_event/on_density_change, src, .proc/target_density_change) + target.unregister_event(/event/density_change, src, .proc/target_density_change) if(target.beams) target.beams -= ourselves for(var/obj/machinery/mirror/M in mirror_list) diff --git a/code/game/objects/items/devices/geiger.dm b/code/game/objects/items/devices/geiger.dm index 77379a63add..d1e1c615863 100644 --- a/code/game/objects/items/devices/geiger.dm +++ b/code/game/objects/items/devices/geiger.dm @@ -16,10 +16,10 @@ update_icon() /obj/item/device/geiger_counter/pickup(mob/user) - user.lazy_register_event(/lazy_event/on_irradiate, src, .proc/measure_rad) + user.register_event(/event/irradiate, src, .proc/measure_rad) /obj/item/device/geiger_counter/dropped(mob/user) - user.lazy_unregister_event(/lazy_event/on_irradiate, src, .proc/measure_rad) + user.unregister_event(/event/irradiate, src, .proc/measure_rad) /obj/item/device/geiger_counter/proc/measure_rad(mob/living/carbon/human/user, rads) diff --git a/code/game/objects/items/devices/holomap.dm b/code/game/objects/items/devices/holomap.dm index fe2cde90846..9c9574f2b7a 100644 --- a/code/game/objects/items/devices/holomap.dm +++ b/code/game/objects/items/devices/holomap.dm @@ -22,7 +22,7 @@ //delayer = null if (viewing) - viewing.mob.lazy_unregister_event(/lazy_event/on_logout, src, .proc/mob_logout) + viewing.mob.unregister_event(/event/logout, src, .proc/mob_logout) ..() @@ -36,7 +36,7 @@ viewing.images -= showing showing.Cut() to_chat(user, "You turn off \the [src].") - viewing.mob.lazy_unregister_event(/lazy_event/on_logout, src, .proc/mob_logout) + viewing.mob.unregister_event(/event/logout, src, .proc/mob_logout) viewing = null return @@ -47,14 +47,14 @@ showing = get_images(get_turf(user), viewing.view) viewing.images |= showing //delayer.addDelay(2 SECONDS) // Should be enough to prevent lag due to spam. - user.lazy_register_event(/lazy_event/on_logout, src, .proc/mob_logout) + user.register_event(/event/logout, src, .proc/mob_logout) /obj/item/device/holomap/proc/mob_logout(mob/user) if (viewing) viewing.images -= showing viewing = null - user.lazy_unregister_event(/lazy_event/on_logout, src, .proc/mob_logout) + user.unregister_event(/event/logout, src, .proc/mob_logout) visible_message("\The [src] turns off.") showing.Cut() diff --git a/code/game/objects/items/devices/maracas.dm b/code/game/objects/items/devices/maracas.dm index cead1669d5d..4f3e37c4753 100644 --- a/code/game/objects/items/devices/maracas.dm +++ b/code/game/objects/items/devices/maracas.dm @@ -21,7 +21,7 @@ src.pixel_y = rand(-5, 5) * PIXEL_MULTIPLIER /obj/item/device/maracas/pickup(mob/user) - user.lazy_register_event(/lazy_event/on_face, src, /obj/item/device/maracas/proc/chickchicky) + user.register_event(/event/face, src, /obj/item/device/maracas/proc/chickchicky) chickchicky() /obj/item/device/maracas/throw_impact(atom/hit_atom) @@ -30,7 +30,7 @@ qdel(src) /obj/item/device/maracas/dropped(mob/user) - user.lazy_unregister_event(/lazy_event/on_face, src, /obj/item/device/maracas/proc/chickchicky) + user.unregister_event(/event/face, src, /obj/item/device/maracas/proc/chickchicky) spawn(3) chickchicky() diff --git a/code/game/objects/items/misc_items.dm b/code/game/objects/items/misc_items.dm index 33bd8093207..c392c8fdd38 100644 --- a/code/game/objects/items/misc_items.dm +++ b/code/game/objects/items/misc_items.dm @@ -17,7 +17,7 @@ stop_using(mover) /obj/item/seeing_stone/proc/start_using(mob/user) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) user.visible_message("\The [user] holds \the [src] up to \his eye.","You hold \the [src] up to your eye.") user.see_invisible = INVISIBILITY_MAXIMUM user.see_invisible_override = INVISIBILITY_MAXIMUM @@ -30,7 +30,7 @@ using = TRUE /obj/item/seeing_stone/proc/stop_using(mob/user) - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) user.visible_message("\The [user] lowers \the [src].","You lower \the [src].") user.see_invisible = initial(user.see_invisible) user.see_invisible_override = 0 diff --git a/code/game/objects/items/robot/robot_items/robot_binoculars.dm b/code/game/objects/items/robot/robot_items/robot_binoculars.dm index c2d5085d77d..78244d4447e 100644 --- a/code/game/objects/items/robot/robot_items/robot_binoculars.dm +++ b/code/game/objects/items/robot/robot_items/robot_binoculars.dm @@ -19,11 +19,11 @@ if(R.client) var/client/C = R.client if(zoom && R.is_component_functioning("camera")) - R.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + R.register_event(/event/moved, src, .proc/mob_moved) R.visible_message("[R]'s camera lens focuses loudly.","Your camera lens focuses loudly.") R.regenerate_icons() C.changeView(C.view + 4) else - R.lazy_unregister_event(/lazy_event/on_moved, src, .proc/moved) + R.unregister_event(/event/moved, src, .proc/moved) R.regenerate_icons() C.changeView(C.view - 4) diff --git a/code/game/objects/items/robot/robot_items/robot_spawner.dm b/code/game/objects/items/robot/robot_items/robot_spawner.dm index 0d5a13b5b57..e34ead75fd6 100644 --- a/code/game/objects/items/robot/robot_items/robot_spawner.dm +++ b/code/game/objects/items/robot/robot_items/robot_spawner.dm @@ -51,33 +51,28 @@ recruiter.role = role recruiter.jobban_roles = jobban_roles - recruiter.player_volunteering.Add(src, "recruiter_recruiting") - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) recruiter.request_player() -/obj/item/weapon/robot_spawner/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] +/obj/item/weapon/robot_spawner/proc/recruiter_recruiting(mob/dead/observer/player, controls) var/area/A = get_area(src) - to_chat(O, "\The [name] activated at \the [A.name]. Get ready. ([controls])") + to_chat(player, "\The [name] activated at \the [A.name]. Get ready. ([controls])") -/obj/item/weapon/robot_spawner/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] +/obj/item/weapon/robot_spawner/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) var/area/A = get_area(src) - to_chat(O, "\The [name] activated at \the [A.name]. ([controls])") + to_chat(player, "\The [name] activated at \the [A.name]. ([controls])") -/obj/item/weapon/robot_spawner/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] - if(O) +/obj/item/weapon/robot_spawner/proc/recruiter_recruited(mob/dead/observer/player) + if(player) qdel(recruiter) recruiter = null busy = FALSE charge-- spark(src, 4) var/mob/living/silicon/robot/R = new borg_type(get_turf(loc)) - R.key = O.key + R.key = player.key post_recruited(R) if(!charge && autoqdel) qdel(src) @@ -149,4 +144,4 @@ return attack_self(user) /obj/item/weapon/robot_spawner/strange/egg/attack_paw(mob/user) - return \ No newline at end of file + return diff --git a/code/game/objects/items/trader.dm b/code/game/objects/items/trader.dm index 169e07efb95..b0e8f22c364 100644 --- a/code/game/objects/items/trader.dm +++ b/code/game/objects/items/trader.dm @@ -1025,10 +1025,10 @@ var/global/list/alcatraz_stuff = list( /obj/item/vachandle/pickup(mob/user) ..() - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) /obj/item/vachandle/dropped(mob/user) - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) if(loc != myvac) retract() @@ -1158,11 +1158,11 @@ var/global/list/alcatraz_stuff = list( /obj/item/pedometer/pickup(mob/user) ..() - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) /obj/item/pedometer/dropped(mob/user) ..() - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) /obj/item/pedometer/proc/mob_moved(atom/movable/mover) var/turf/T = get_turf(src) diff --git a/code/game/objects/items/weapons/RCL.dm b/code/game/objects/items/weapons/RCL.dm index ba6b6769efe..a768690bf02 100644 --- a/code/game/objects/items/weapons/RCL.dm +++ b/code/game/objects/items/weapons/RCL.dm @@ -102,9 +102,9 @@ if(user) if(active) trigger(user) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/holder_moved) + user.register_event(/event/moved, src, .proc/holder_moved) return - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/holder_moved) + user.unregister_event(/event/moved, src, .proc/holder_moved) /obj/item/weapon/rcl/attack_self(mob/user as mob) active = !active diff --git a/code/game/objects/items/weapons/glowstick.dm b/code/game/objects/items/weapons/glowstick.dm index f0b7bda8703..05d2652c6a1 100644 --- a/code/game/objects/items/weapons/glowstick.dm +++ b/code/game/objects/items/weapons/glowstick.dm @@ -104,11 +104,11 @@ update_icon() /obj/item/clothing/accessory/glowstick/phazon/pickup(mob/user) - user.lazy_register_event(/lazy_event/on_face, src, /obj/item/clothing/accessory/glowstick/phazon/proc/colorchange) + user.register_event(/event/face, src, /obj/item/clothing/accessory/glowstick/phazon/proc/colorchange) /obj/item/clothing/accessory/glowstick/phazon/dropped(mob/user) ..() - user.lazy_unregister_event(/lazy_event/on_face, src, /obj/item/clothing/accessory/glowstick/phazon/proc/colorchange) + user.unregister_event(/event/face, src, /obj/item/clothing/accessory/glowstick/phazon/proc/colorchange) /obj/item/clothing/accessory/glowstick/phazon/attack_self() colorchange() diff --git a/code/game/objects/items/weapons/implants/exile2.dm b/code/game/objects/items/weapons/implants/exile2.dm index c80c3bf5081..82a81db9a18 100644 --- a/code/game/objects/items/weapons/implants/exile2.dm +++ b/code/game/objects/items/weapons/implants/exile2.dm @@ -37,7 +37,7 @@ siteOfImplant = get_turf(theExile) zlevels -= illegalZ to_chat(theExile, "You shiver as you feel a weak, unsettling film surround you.") - theExile.lazy_register_event(/lazy_event/on_moved, src, .proc/zBan) + theExile.register_event(/event/moved, src, .proc/zBan) return 1 /obj/item/weapon/implant/exile/proc/zBan(atom/movable/mover) @@ -116,7 +116,7 @@ playsound(theExile, "sound/machines/notify.ogg", 100, 1) to_chat(theExile, "You feel a sudden shooting pain. The film-like sensation fades. Your implant has jaunted out of your body." ) imp_in = null - theExile.lazy_unregister_event(/lazy_event/on_moved, src, .proc/zBan) + theExile.unregister_event(/event/moved, src, .proc/zBan) src.forceMove(siteOfImplant) theExile = null diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index de7a2f50898..3f8133136e6 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -371,7 +371,7 @@ armor_penetration = 100 to_chat(user, " [src] starts vibrating.") playsound(user, 'sound/weapons/hfmachete1.ogg', 40, 0) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) else force = initial(force) sterility = initial(sterility) @@ -382,11 +382,11 @@ armor_penetration = initial(armor_penetration) to_chat(user, " [src] stops vibrating.") playsound(user, 'sound/weapons/hfmachete0.ogg', 40, 0) - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) update_icon() /obj/item/weapon/melee/energy/hfmachete/dropped(mob/user) - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) /obj/item/weapon/melee/energy/hfmachete/throw_at(atom/target, range, speed, override = 1) if(!usr) diff --git a/code/game/objects/items/weapons/null_rod.dm b/code/game/objects/items/weapons/null_rod.dm index 6d000e04a28..e7767468f2a 100644 --- a/code/game/objects/items/weapons/null_rod.dm +++ b/code/game/objects/items/weapons/null_rod.dm @@ -355,28 +355,23 @@ recruiter.jobban_roles = list("pAI") // pAI/Borers share the same jobban check so here we go too. // Role set to Yes or Always - recruiter.player_volunteering.Add(src, "recruiter_recruiting") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // Role set to No or Never - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) recruiter.request_player() -/obj/item/weapon/nullrod/sword/chaos/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\The [name] is awakening. You have been added to the list of potential ghosts. ([controls])") +/obj/item/weapon/nullrod/sword/chaos/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\The [name] is awakening. You have been added to the list of potential ghosts. ([controls])") -/obj/item/weapon/nullrod/sword/chaos/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\The [src] is awakening. ([controls])") +/obj/item/weapon/nullrod/sword/chaos/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\The [src] is awakening. ([controls])") -/obj/item/weapon/nullrod/sword/chaos/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] - if(O) +/obj/item/weapon/nullrod/sword/chaos/proc/recruiter_recruited(mob/dead/observer/player) + if(player) possessed = TRUE qdel(recruiter) recruiter = null @@ -385,7 +380,7 @@ var/mob/living/simple_animal/shade/sword/S = new(src) S.real_name = name S.name = name - S.ckey = O.ckey + S.ckey = player.ckey S.universal_speak = TRUE S.universal_understand = TRUE S.status_flags |= GODMODE //Make sure they can NEVER EVER leave the blade. diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index d274b9f99f2..5756e54c4c9 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -90,12 +90,12 @@ if(!success) tempL.Remove(attempt) else - user.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = user, "to_z" = user.z, "from_z" = prev_z)) + user.invoke_event(/event/z_transition, list("user" = user, "to_z" = user.z, "from_z" = prev_z)) break if(!success) user.forceMove(pick(L)) - user.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = user, "to_z" = user.z, "from_z" = prev_z)) + user.invoke_event(/event/z_transition, list("user" = user, "to_z" = user.z, "from_z" = prev_z)) smoke.start() src.uses -= 1 diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 263dc25aff7..d03a82701fd 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -132,9 +132,9 @@ obj/item/weapon/storage/bag/plasticbag/quick_store(var/obj/item/I) to_chat(user, "You turn \the [T.name] [T.handling? "on":"off"].") if(T.handling == TRUE) - user.lazy_register_event(/lazy_event/on_moved, T, /obj/item/weapon/storage/bag/ore/auto/proc/mob_moved) + user.register_event(/event/moved, T, /obj/item/weapon/storage/bag/ore/auto/proc/mob_moved) else - user.lazy_unregister_event(/lazy_event/on_moved, T, /obj/item/weapon/storage/bag/ore/auto/proc/mob_moved) + user.unregister_event(/event/moved, T, /obj/item/weapon/storage/bag/ore/auto/proc/mob_moved) /obj/item/weapon/storage/bag/ore/auto/proc/auto_collect(var/turf/collect_loc) for(var/obj/item/stack/ore/ore in collect_loc.contents) @@ -165,10 +165,10 @@ obj/item/weapon/storage/bag/plasticbag/quick_store(var/obj/item/I) /obj/item/weapon/storage/bag/ore/auto/pickup(mob/user) if(handling) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) /obj/item/weapon/storage/bag/ore/auto/dropped(mob/user) - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) // ----------------------------- // Plant bag diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 0ec5bcc6f55..b5624cb4332 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -201,7 +201,7 @@ /obj/item/binoculars/update_wield(mob/user) if(wielded) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) user.visible_message("\The [user] holds \the [src] up to \his eyes.","You hold \the [src] up to your eyes.") item_state = "binoculars_wielded" user.regenerate_icons() @@ -210,7 +210,7 @@ var/client/C = user.client C.changeView(C.view + 7) else - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) user.visible_message("\The [user] lowers \the [src].","You lower \the [src].") item_state = "binoculars" user.regenerate_icons() @@ -249,9 +249,9 @@ if(user) user.update_inv_hands() if(wielded) - user.lazy_register_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.register_event(/event/moved, src, .proc/mob_moved) else - user.lazy_unregister_event(/lazy_event/on_moved, src, .proc/mob_moved) + user.unregister_event(/event/moved, src, .proc/mob_moved) /obj/item/weapon/bloodlust/attack(target as mob, mob/living/user) if(isliving(target)) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 57b06811bd8..d36f2f12420 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -348,14 +348,14 @@ var/global/list/reagents_to_log = list(FUEL, PLASMA, PACID, SACID, AMUTATIONTOXI return FALSE /obj/singularity_pull(S, current_size) - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) if(anchored) if(current_size >= STAGE_FIVE) anchored = 0 step_towards(src, S) else step_towards(src, S) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) /obj/proc/multitool_menu(var/mob/user,var/obj/item/device/multitool/P) return "NO MULTITOOL_MENU!" diff --git a/code/game/objects/structures/ancient_cryopod.dm b/code/game/objects/structures/ancient_cryopod.dm index d82c57cbb77..5b634f689bb 100644 --- a/code/game/objects/structures/ancient_cryopod.dm +++ b/code/game/objects/structures/ancient_cryopod.dm @@ -36,28 +36,23 @@ recruiter.display_name = name recruiter.role = ROLE_MINOR // Role set to Yes or Always - recruiter.player_volunteering.Add(src, "recruiter_recruiting") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // Role set to No or Never - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) recruiter.request_player() else visible_message("\The [name] flickers to life and displays an error message: 'Unable to revive occupant, enviromental pressure inadequate for sustaining human life.'") -/obj/machinery/cryopod/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\The [name] has been activated. You have been added to the list of potential ghosts. ([controls])") +/obj/machinery/cryopod/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\The [name] has been activated. You have been added to the list of potential ghosts. ([controls])") -/obj/machinery/cryopod/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\The [src] has been activated. ([controls])") +/obj/machinery/cryopod/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\The [src] has been activated. ([controls])") -/obj/machinery/cryopod/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] - if(O) +/obj/machinery/cryopod/proc/recruiter_recruited(mob/dead/observer/player, controls) + if(player) qdel(recruiter) recruiter = null visible_message("\The [name] opens with a hiss of frigid air!") @@ -68,7 +63,7 @@ var/mob/living/carbon/human/S = new(get_turf(src)) var/roll = pick(possible_roles) role = new roll - S.ckey = O.ckey + S.ckey = player.ckey S.randomise_appearance_for() role.gear_occupant(S) role.special_behavior(S) @@ -95,7 +90,7 @@ M.generate_name() else M.fully_replace_character_name(null,pick(preset_names)) - + mob_rename_self(M,title,"Pick your name") message_admins("[key_name_admin(M)] has spawned as a [title] from an ancient cryopod.") @@ -205,4 +200,4 @@ M.update_mutantrace() M.update_mutations() M.regenerate_icons() - return \ No newline at end of file + return diff --git a/code/game/objects/structures/flora/flora.dm b/code/game/objects/structures/flora/flora.dm index 7d428fbd2b7..51adbe18e86 100644 --- a/code/game/objects/structures/flora/flora.dm +++ b/code/game/objects/structures/flora/flora.dm @@ -115,15 +115,15 @@ for(var/turf/T in circlerange(src,2)) if(T.y > y) - T.lazy_register_event(/lazy_event/on_entered, src, .proc/give_transparency) - T.lazy_register_event(/lazy_event/on_exited, src, .proc/remove_transparency) + T.register_event(/event/entered, src, .proc/give_transparency) + T.register_event(/event/exited, src, .proc/remove_transparency) /obj/structure/flora/tree/Destroy() for(var/turf/T in circlerange(src,2)) if(T.y > y) - T.lazy_unregister_event(/lazy_event/on_entered, src, .proc/give_transparency) - T.lazy_unregister_event(/lazy_event/on_exited, src, .proc/remove_transparency) + T.unregister_event(/event/entered, src, .proc/give_transparency) + T.unregister_event(/event/exited, src, .proc/remove_transparency) ..() /obj/structure/flora/tree/proc/update_transparency() diff --git a/code/game/objects/structures/mannequin.dm b/code/game/objects/structures/mannequin.dm index 652a8f4c6e3..82d1157434c 100644 --- a/code/game/objects/structures/mannequin.dm +++ b/code/game/objects/structures/mannequin.dm @@ -903,9 +903,9 @@ /obj/structure/mannequin/proc/spin() - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) change_dir(turn(dir, 90)) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) /obj/structure/mannequin/verb/rotate_mannequin() set name = "Rotate Mannequin" diff --git a/code/game/objects/structures/vehicles/adminbus.dm b/code/game/objects/structures/vehicles/adminbus.dm index 36523433504..298f9554c95 100644 --- a/code/game/objects/structures/vehicles/adminbus.dm +++ b/code/game/objects/structures/vehicles/adminbus.dm @@ -650,7 +650,7 @@ var/obj/structure/bed/chair/vehicle/adminbus/bus = owner M.flags |= INVULNERABLE bus.add_HUD(M) - M.lazy_register_event(/lazy_event/on_living_login, bus, /obj/structure/bed/chair/vehicle/adminbus/proc/add_HUD) + M.register_event(/event/living_login, bus, /obj/structure/bed/chair/vehicle/adminbus/proc/add_HUD) /datum/locking_category/adminbus/unlock(var/atom/movable/AM) . = ..() @@ -659,7 +659,7 @@ var/obj/structure/bed/chair/vehicle/adminbus/bus = owner M.flags &= ~INVULNERABLE bus.remove_HUD(M) - M.lazy_unregister_event(/lazy_event/on_living_login, bus, /obj/structure/bed/chair/vehicle/adminbus/proc/add_HUD) + M.unregister_event(/event/living_login, bus, /obj/structure/bed/chair/vehicle/adminbus/proc/add_HUD) /obj/structure/bed/chair/vehicle/adminbus/acidable() return 0 diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index fa66b710a12..4f7edcc131a 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -127,7 +127,7 @@ /turf/Exited(atom/movable/mover, atom/newloc) ..() - lazy_invoke_event(/lazy_event/on_exited, list("mover" = mover, "location" = src, "newloc" = newloc)) + invoke_event(/event/exited, list("mover" = mover, "location" = src, "newloc" = newloc)) /turf/Enter(atom/movable/mover as mob|obj, atom/forget as mob|obj|turf|area) if (!mover) @@ -177,7 +177,7 @@ A.inertia_dir = 0 ..() - lazy_invoke_event(/lazy_event/on_entered, list("mover" = A, "location" = src, "oldloc" = OldLoc)) + invoke_event(/event/entered, list("mover" = A, "location" = src, "oldloc" = OldLoc)) var/objects = 0 if(A && A.flags & PROXMOVE) for(var/atom/Obj in range(1, src)) @@ -251,9 +251,9 @@ if(!move_to_z) return - A.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = A, "from_z" = A.z, "to_z" = move_to_z)) + A.invoke_event(/event/z_transition, list("user" = A, "from_z" = A.z, "to_z" = move_to_z)) for(var/atom/movable/AA in contents_brought) - AA.lazy_invoke_event(/lazy_event/on_z_transition, list("user" = AA, "from_z" = AA.z, "to_z" = move_to_z)) + AA.invoke_event(/event/z_transition, list("user" = AA, "from_z" = AA.z, "to_z" = move_to_z)) A.z = move_to_z if(src.x <= TRANSITIONEDGE) @@ -283,9 +283,9 @@ var/obj/item/projectile/P = A P.reset()//fixing linear projectile movement - A.lazy_invoke_event(/lazy_event/on_post_z_transition, list("user" = A, "from_z" = A.z, "to_z" = move_to_z)) + A.invoke_event(/event/post_z_transition, list("user" = A, "from_z" = A.z, "to_z" = move_to_z)) for(var/atom/movable/AA in contents_brought) - AA.lazy_invoke_event(/lazy_event/on_post_z_transition, list("user" = AA, "from_z" = AA.z, "to_z" = move_to_z)) + AA.invoke_event(/event/post_z_transition, list("user" = AA, "from_z" = AA.z, "to_z" = move_to_z)) if(A && A.opacity) has_opaque_atom = TRUE // Make sure to do this before reconsider_lights(), incase we're on instant updates. Guaranteed to be on in this case. diff --git a/code/modules/RCD/RPD.dm b/code/modules/RCD/RPD.dm index 6bfb79a243b..b4cb413c23c 100644 --- a/code/modules/RCD/RPD.dm +++ b/code/modules/RCD/RPD.dm @@ -82,11 +82,11 @@ /obj/item/device/rcd/rpd/pickup(var/mob/living/L) ..() - L.lazy_register_event(/lazy_event/on_clickon, src, .proc/mob_onclickon) + L.register_event(/event/clickon, src, .proc/mob_onclickon) /obj/item/device/rcd/rpd/dropped(var/mob/living/L) ..() - L.lazy_unregister_event(/lazy_event/on_clickon, src, .proc/mob_onclickon) + L.unregister_event(/event/clickon, src, .proc/mob_onclickon) hook_key = null // If the RPD is held, some modifiers are removed. diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index f50da4a0262..783832481fd 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -391,11 +391,11 @@ _color = "jinglebells" /obj/item/clothing/accessory/jinglebells/pickup(mob/user) - user.lazy_register_event(/lazy_event/on_face, src, /obj/item/clothing/accessory/jinglebells/proc/jingle) + user.register_event(/event/face, src, /obj/item/clothing/accessory/jinglebells/proc/jingle) jingle() /obj/item/clothing/accessory/jinglebells/dropped(mob/user) - user.lazy_unregister_event(/lazy_event/on_face, src, /obj/item/clothing/accessory/jinglebells/proc/jingle) + user.unregister_event(/event/face, src, /obj/item/clothing/accessory/jinglebells/proc/jingle) /obj/item/clothing/accessory/jinglebells/proc/jingle() var/turf/T = get_turf(src) @@ -437,17 +437,17 @@ update_icon() to_chat(user, "You hear \the [src] tick!") - user.lazy_unregister_event(/lazy_event/on_irradiate, src, .proc/check_rads) + user.unregister_event(/event/irradiate, src, .proc/check_rads) /obj/item/clothing/accessory/rad_patch/on_attached(obj/item/clothing/C) ..() if(ismob(C.loc) && !triggered) var/mob/user = C.loc - user.lazy_register_event(/lazy_event/on_irradiate, src, .proc/check_rads) + user.register_event(/event/irradiate, src, .proc/check_rads) /obj/item/clothing/accessory/rad_patch/on_removed(mob/user) ..() - user?.lazy_unregister_event(/lazy_event/on_irradiate, src, .proc/check_rads) + user?.unregister_event(/event/irradiate, src, .proc/check_rads) /obj/item/clothing/accessory/rad_patch/examine(mob/user) ..(user) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index fc9a3f0f7fe..2db75a07bf3 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -646,8 +646,8 @@ var/list/science_goggles_wearers = list() /obj/item/clothing/glasses/emitter/proc/enable() if (istype(emitter)) - emitter.lazy_register_event(/lazy_event/on_before_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_start) - emitter.lazy_register_event(/lazy_event/on_after_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_end) + emitter.register_event(/event/before_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_start) + emitter.register_event(/event/after_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_end) update_emitter() /obj/item/clothing/glasses/emitter/proc/disable() @@ -655,8 +655,8 @@ var/list/science_goggles_wearers = list() qdel(beam) beam = null if (emitter) - emitter.lazy_unregister_event(/lazy_event/on_before_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_start) - emitter.lazy_unregister_event(/lazy_event/on_after_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_end) + emitter.unregister_event(/event/before_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_start) + emitter.unregister_event(/event/after_move, src, /obj/item/clothing/glasses/emitter/proc/update_emitter_end) emitter = null /obj/item/clothing/glasses/emitter/process() diff --git a/code/modules/clothing/glasses/scanners.dm b/code/modules/clothing/glasses/scanners.dm index 86a917da1f1..3faa8406ba1 100644 --- a/code/modules/clothing/glasses/scanners.dm +++ b/code/modules/clothing/glasses/scanners.dm @@ -226,11 +226,11 @@ clear() if (viewing) - viewing.lazy_unregister_event(/lazy_event/on_logout, src, .proc/mob_logout) + viewing.unregister_event(/event/logout, src, .proc/mob_logout) viewing = null if (new_mob) - new_mob.lazy_register_event(/lazy_event/on_logout, src, .proc/mob_logout) + new_mob.register_event(/event/logout, src, .proc/mob_logout) viewing = new_mob /obj/item/clothing/glasses/scanner/material/proc/mob_logout(mob/user) @@ -238,7 +238,7 @@ return clear() - viewing.lazy_unregister_event(/lazy_event/on_logout, src, .proc/mob_logout) + viewing.unregister_event(/event/logout, src, .proc/mob_logout) viewing = null /obj/item/clothing/glasses/scanner/material/proc/get_images(var/turf/T, var/view) diff --git a/code/modules/clothing/spacesuits/rig_modules/rig_modules.dm b/code/modules/clothing/spacesuits/rig_modules/rig_modules.dm index 571d938a713..d86dcda7e50 100644 --- a/code/modules/clothing/spacesuits/rig_modules/rig_modules.dm +++ b/code/modules/clothing/spacesuits/rig_modules/rig_modules.dm @@ -232,7 +232,7 @@ rig.armor["rad"] = 100 say_to_wearer("[src] enabled.") - rig.wearer.lazy_register_event(/lazy_event/on_irradiate, src, .proc/absorb_rads) + rig.wearer.register_event(/event/irradiate, src, .proc/absorb_rads) ..() /obj/item/rig_module/rad_shield/deactivate() @@ -244,12 +244,12 @@ rig?.armor["rad"] = initial_suit say_to_wearer("[src] disabled.") - rig.wearer?.lazy_unregister_event(/lazy_event/on_irradiate, src, .proc/absorb_rads) + rig.wearer?.unregister_event(/event/irradiate, src, .proc/absorb_rads) ..() /obj/item/rig_module/rad_shield/proc/absorb_rads(mob/living/carbon/human/user, rads) if(rig?.wearer != user) //Well lad. - user.lazy_unregister_event(/lazy_event/on_irradiate, src, .proc/absorb_rads) + user.unregister_event(/event/irradiate, src, .proc/absorb_rads) return if(rig.H) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 03adc783921..89fe1f9521a 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -927,16 +927,6 @@ obj/item/clothing/suit/cassock body_parts_covered = FULL_TORSO|IGNORE_INV actions_types = list(/datum/action/item_action/toggle_bomber_vest) var/active = 0 - //That's right, we're using events for this vest to avoid hardcoding it everywhere - var/event_key_touched - var/event_key_bumping - var/event_key_bumped - -/obj/item/clothing/suit/bomber_vest/Destroy() - ..() - event_key_touched = null - event_key_bumping = null - event_key_bumped = null /obj/item/clothing/suit/bomber_vest/proc/activate_vest() var/mob/living/carbon/human/H = loc @@ -947,18 +937,39 @@ obj/item/clothing/suit/cassock if(!(H.wear_suit == src)) return active = 1 - event_key_touched = H.on_touched.Add(src, "detonate") - event_key_bumping = H.on_bumping.Add(src, "detonate") - event_key_bumped = H.on_bumped.Add(src, "detonate") + H.register_event(/event/touched, src, .proc/on_touched) + H.register_event(/event/hitby, src, .proc/on_hitby) + H.register_event(/event/attacked_by, src, .proc/on_attacked_by) + H.register_event(/event/unarmed_attack, src, .proc/on_unarmed_attack) + H.register_event(/event/to_bump, src, .proc/on_to_bump) + H.register_event(/event/bumped, src, .proc/on_bumped) canremove = 0 +/obj/item/clothing/suit/bomber_vest/proc/on_touched(mob/toucher, mob/touched) + if(toucher == touched) //No bombing ourselves by checking ourselves + return + detonate() +/obj/item/clothing/suit/bomber_vest/proc/on_hitby(mob/victim, obj/item/item) + detonate() +/obj/item/clothing/suit/bomber_vest/proc/on_attacked_by(mob/attacker, mob/attacked, mob/item) + detonate() +/obj/item/clothing/suit/bomber_vest/proc/on_unarmed_attack(mob/attacker, mob/attacked) + detonate() +/obj/item/clothing/suit/bomber_vest/proc/on_to_bump(atom/movable/bumper, atom/bumped) + detonate() +/obj/item/clothing/suit/bomber_vest/proc/on_bumped(atom/movable/bumper, atom/bumped) + detonate() + /obj/item/clothing/suit/bomber_vest/proc/deactivate_vest() active = 0 var/mob/living/carbon/human/H = loc if(H) - H.on_touched.Remove(event_key_touched) - H.on_bumping.Remove(event_key_bumping) - H.on_bumped.Remove(event_key_bumped) + H.unregister_event(/event/touched, src, .proc/on_touched) + H.unregister_event(/event/hitby, src, .proc/on_hitby) + H.unregister_event(/event/unarmed_attack, src, .proc/on_attacked_by) + H.unregister_event(/event/unarmed_attack, src, .proc/on_unarmed_attack) + H.unregister_event(/event/to_bump, src, .proc/on_to_bump) + H.unregister_event(/event/bumped, src, .proc/on_bumped) /obj/item/clothing/suit/bomber_vest/examine(mob/user) ..() @@ -968,7 +979,7 @@ obj/item/clothing/suit/cassock /obj/item/clothing/suit/bomber_vest/suicide_act(var/mob/living/user) if (!active) //no explosion with no active vest, dummy return - + var/message_say = user.handle_suicide_bomb_cause() to_chat(viewers(user), "[user] activates the [src]! It looks like \he's going out with a bang!") user.say(message_say) @@ -977,13 +988,10 @@ obj/item/clothing/suit/cassock qdel(src) //Just in case return SUICIDE_ACT_CUSTOM -/obj/item/clothing/suit/bomber_vest/proc/detonate(list/arguments) +/obj/item/clothing/suit/bomber_vest/proc/detonate() var/mob/living/carbon/human/H = loc - var/whitelist = arguments["has been touched by"] if(!ishuman(H) || !active) return - if(whitelist == H) //No bombing ourselves by checking ourselves - return explosion(H, 1, 3, 6) message_admins("[H] has detonated \the [src]!") qdel(src) //Just in case diff --git a/code/modules/clothing/suits/plate_carrier.dm b/code/modules/clothing/suits/plate_carrier.dm index 85fa0588b25..312a47a2893 100644 --- a/code/modules/clothing/suits/plate_carrier.dm +++ b/code/modules/clothing/suits/plate_carrier.dm @@ -26,12 +26,12 @@ /obj/item/clothing/suit/armor/plate_carrier/equipped(var/mob/user, var/slot) ..() if(slot == slot_wear_suit) - user.lazy_register_event(/lazy_event/on_damaged, src, .proc/handle_user_damage) + user.register_event(/event/damaged, src, .proc/handle_user_damage) /obj/item/clothing/suit/armor/plate_carrier/unequipped(mob/user, var/from_slot = null) if(from_slot == slot_wear_suit) - user.lazy_unregister_event(/lazy_event/on_damaged, src, .proc/handle_user_damage) + user.unregister_event(/event/damaged, src, .proc/handle_user_damage) ..() /obj/item/clothing/suit/armor/plate_carrier/attack_self(mob/user) diff --git a/code/modules/events/prisonershipment.dm b/code/modules/events/prisonershipment.dm index 8000d246ce4..727b3c02a62 100644 --- a/code/modules/events/prisonershipment.dm +++ b/code/modules/events/prisonershipment.dm @@ -6,7 +6,7 @@ var/list/current_prisoners = list() /datum/event/prisontransfer var/datum/recruiter/recruiter = null //for prisoner shit -/datum/event/prisontransfer/can_start(var/list/active_with_role) +/datum/event/prisontransfer/can_start(var/list/active_with_role) if(active_with_role["Security"] > 2) return 15 return 0 @@ -21,30 +21,25 @@ var/list/current_prisoners = list() recruiter.jobban_roles = list("minor roles") //has anyone even been banned from minor roles? // Role set to Yes or Always - recruiter.player_volunteering.Add(src, "recruiter_recruiting") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // Role set to No or Never - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) recruiter.request_player() - - -/datum/event/prisontransfer/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "A prisoner is about to be sent to the station. You have been added to the list of potential ghosts. ([controls])") - -/datum/event/prisontransfer/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "A prisoner is about to be sent to the station. ([controls])") -/datum/event/prisontransfer/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] +/datum/event/prisontransfer/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "A prisoner is about to be sent to the station. You have been added to the list of potential ghosts. ([controls])") + +/datum/event/prisontransfer/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) + to_chat(player, "A prisoner is about to be sent to the station. ([controls])") + + +/datum/event/prisontransfer/proc/recruiter_recruited(mob/dead/observer/player) can_request_prisoner = TRUE //This is set to false by the prisoner role if we exceed the limit. - if(O) + if(player) qdel(recruiter) recruiter = null @@ -52,7 +47,7 @@ var/list/current_prisoners = list() //Make the prisoner var/mob/living/carbon/human/H = new /mob/living/carbon/human - H.ckey = O.ckey + H.ckey = player.ckey H.client.changeView() var/species = pickweight(list( "Human" = 4, @@ -119,17 +114,17 @@ var/list/current_prisoners = list() sleep(150) if(!can_move_shuttle()) continue - + sleep(50) //everyone is off, wait 5 more seconds so people don't get ZAS'd out the airlock - if(!can_move_shuttle()) + if(!can_move_shuttle()) continue if(!transport_shuttle.move_to_dock(centcomdock)) message_admins("The transport shuttle couldn't return to centcomm for some reason.") return - + //putting it in a proc like this just cleans things up, this is identical to the checks for the cargo shuttle except mimics arent allowed -/datum/event/prisontransfer/proc/can_move_shuttle() - var/contents = get_contents_in_object(transport_shuttle.linked_area) +/datum/event/prisontransfer/proc/can_move_shuttle() + var/contents = get_contents_in_object(transport_shuttle.linked_area) if (locate(/mob/living) in contents) return FALSE if (locate(/obj/item/weapon/disk/nuclear) in contents) diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm index ea8570d594f..673d065952e 100644 --- a/code/modules/hydroponics/spreading/spreading.dm +++ b/code/modules/hydroponics/spreading/spreading.dm @@ -42,20 +42,20 @@ var/mob/V = locate(/mob) in get_locked(/datum/locking_category/plantsegment) unlock_atom(V) - lazy_unregister_event(/lazy_event/on_before_move, src, /obj/effect/plantsegment/proc/before_moving) - lazy_unregister_event(/lazy_event/on_after_move, src, /obj/effect/plantsegment/proc/after_moving) + unregister_event(/event/before_move, src, /obj/effect/plantsegment/proc/before_moving) + unregister_event(/event/after_move, src, /obj/effect/plantsegment/proc/after_moving) before_moving() ..() /obj/effect/plantsegment/proc/before_moving() for(var/direc in cardinal) var/turf/T = get_step(src, direc) - T.lazy_unregister_event(/lazy_event/on_density_change, src, .proc/proxDensityChange) + T.unregister_event(/event/density_change, src, .proc/proxDensityChange) /obj/effect/plantsegment/proc/after_moving() for(var/direc in cardinal) var/turf/T = get_step(src, direc) - T.lazy_register_event(/lazy_event/on_density_change, src, .proc/proxDensityChange) + T.register_event(/event/density_change, src, .proc/proxDensityChange) /obj/effect/plantsegment/New(var/newloc, var/datum/seed/newseed, var/turf/newepicenter, var/start_fully_mature = 0) ..() @@ -91,8 +91,8 @@ health = max_health mature_time = 0 - lazy_register_event(/lazy_event/on_before_move, src, /obj/effect/plantsegment/proc/before_moving) - lazy_register_event(/lazy_event/on_after_move, src, /obj/effect/plantsegment/proc/after_moving) + register_event(/event/before_move, src, /obj/effect/plantsegment/proc/before_moving) + register_event(/event/after_move, src, /obj/effect/plantsegment/proc/after_moving) after_moving() spawn(1) // Plants will sometimes be spawned in the turf adjacent to the one they need to end up in, for the sake of correct dir/etc being set. diff --git a/code/modules/hydroponics/spreading/spreading_response.dm b/code/modules/hydroponics/spreading/spreading_response.dm index b8f616b8f05..a263bf7fe49 100644 --- a/code/modules/hydroponics/spreading/spreading_response.dm +++ b/code/modules/hydroponics/spreading/spreading_response.dm @@ -145,7 +145,7 @@ if(!istype(M)) return - M.lazy_register_event(/lazy_event/on_resist, src, .proc/manual_unbuckle) + M.register_event(/event/resist, src, .proc/manual_unbuckle) last_special = world.time @@ -157,7 +157,7 @@ if(!istype(M)) return - M.lazy_unregister_event(/lazy_event/on_resist, src, .proc/manual_unbuckle) + M.unregister_event(/event/resist, src, .proc/manual_unbuckle) /obj/effect/plantsegment/proc/entangle_mob(var/mob/living/victim) if(!victim || victim.locked_to || !seed || seed.spread != 2 || is_locking(/datum/locking_category/plantsegment)) //How much of this is actually necessary, I wonder diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 69c2d9a6c5f..f166b65025b 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -33,7 +33,7 @@ /mob/proc/death(gibbed) timeofdeath = world.time - lazy_invoke_event(/lazy_event/on_death, list("user" = src, "body_destroyed" = gibbed)) + invoke_event(/event/death, list("user" = src, "body_destroyed" = gibbed)) living_mob_list -= src dead_mob_list += src stat_collection.add_death_stat(src) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 9820e0e6330..89cac16e85b 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -378,7 +378,7 @@ update_inv_wear_mask() else return 0 - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) if(success) if(client) client.screen -= W diff --git a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm index eaafc774bfe..47c6914bb43 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm @@ -52,13 +52,13 @@ success = 1 slot = slot_r_store update_inv_pockets() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else if (W == l_store) l_store = null success = 1 slot = slot_l_store update_inv_pockets() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else success = ..() diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 3b6b51a5298..8b1d2a2044f 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -42,31 +42,26 @@ recruiter.logging = TRUE // A player has their role set to Yes or Always - recruiter.player_volunteering.Add(src, "recruiter_recruiting") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // ", but No or Never - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) recruiter.request_player() -/obj/item/device/mmi/posibrain/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "You are a possible candidate for \a [src]. Get ready. ([controls])") - investigation_log(I_GHOST, "|| had a ghost automatically sign up to become its personality: [key_name(O)][O.locked_to ? ", who was haunting [O.locked_to]" : ""]") +/obj/item/device/mmi/posibrain/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "You are a possible candidate for \a [src]. Get ready. ([controls])") + investigation_log(I_GHOST, "|| had a ghost automatically sign up to become its personality: [key_name(player)][player.locked_to ? ", who was haunting [player.locked_to]" : ""]") -/obj/item/device/mmi/posibrain/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - if(O.client && get_role_desire_str(O.client.prefs.roles[ROLE_POSIBRAIN]) != "Never") - to_chat(O, "Someone is requesting a personality for \a [src]. ([controls])") +/obj/item/device/mmi/posibrain/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) + if(player.client && get_role_desire_str(player.client.prefs.roles[ROLE_POSIBRAIN]) != "Never") + to_chat(player, "Someone is requesting a personality for \a [src]. ([controls])") -/obj/item/device/mmi/posibrain/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] - if(O) - transfer_personality(O) +/obj/item/device/mmi/posibrain/proc/recruiter_recruited(mob/dead/observer/player) + if(player) + transfer_personality(player) reset_search() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3ed0d4163cb..8c33cf2061d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -23,13 +23,13 @@ if(istype(AM, /mob/living/carbon)) var/mob/living/carbon/C = AM C.handle_symptom_on_touch(src, AM, BUMP) - INVOKE_EVENT(on_bumping, list("user" = src, "bumped" = AM)) + invoke_event(/event/to_bump, list("bumper" = src, "bumped" = AM)) /mob/living/carbon/Bumped(var/atom/movable/AM) ..() if(!istype(AM, /mob/living/carbon)) handle_symptom_on_touch(AM, src, BUMP) - INVOKE_EVENT(on_bumped, list("user" = src, "bumping" = AM)) + invoke_event(/event/bumped, list("bumper" = AM, "bumped" = src)) /mob/living/carbon/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, glide_size_override = 0) . = ..() @@ -104,7 +104,7 @@ to_chat(M, "You can't use your [temp.display_name]") return handle_symptom_on_touch(M, src, HAND) - INVOKE_EVENT(on_touched, list("user" = src, "has been touched by" = M)) + invoke_event(/event/touched, list("toucher" = M, "touched" = src)) /mob/living/carbon/electrocute_act(const/shock_damage, const/obj/source, const/siemens_coeff = 1.0, var/def_zone = null, var/incapacitation_duration = 20 SECONDS) if(incapacitation_duration <= 0) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 2f0e8eeb383..ea00f0855f0 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -32,10 +32,10 @@ /mob/living/carbon/New(var/new_loc, var/new_species_name = null, var/delay_ready_dna=0) ..() hud_list[CONVERSION_HUD] = image('icons/mob/hud.dmi', src, "hudblank") - lazy_register_event(/lazy_event/on_after_move, src, /mob/living/carbon/proc/update_holomaps) + register_event(/event/after_move, src, /mob/living/carbon/proc/update_holomaps) /mob/living/carbon/Destroy() - lazy_unregister_event(/lazy_event/on_after_move, src, /mob/living/carbon/proc/update_holomaps) + unregister_event(/event/after_move, src, /mob/living/carbon/proc/update_holomaps) if (mutual_handcuffs && mutual_handcuffed_to) mutual_handcuffs.remove_mutual_cuff_events(mutual_handcuffed_to) . = ..() diff --git a/code/modules/mob/living/carbon/combat.dm b/code/modules/mob/living/carbon/combat.dm index 01246690d26..c6fdaa973a8 100644 --- a/code/modules/mob/living/carbon/combat.dm +++ b/code/modules/mob/living/carbon/combat.dm @@ -7,7 +7,7 @@ return TRUE else to_chat(src, "You fail to catch \the [I]!") - INVOKE_EVENT(on_touched, list("user" = src, "hit by" = I)) + invoke_event(/event/hitby, list("victim" = src, "item" = I)) return ..() /mob/living/carbon/proc/can_catch(var/obj/item/I, var/speed) @@ -74,7 +74,7 @@ add_logs(user, src, "damaged", admin=1, object=I, addition="DMG: [max(damage - armor, 0)]") apply_damage(damage, I.damtype, affecting, armor , I.is_sharp(), used_weapon = I) - INVOKE_EVENT(on_touched, list("user" = src, "attacked by" = I)) + invoke_event(/event/attacked_by, list("attacked" = src, "attacker" = user, "item" = I)) return TRUE /mob/living/carbon/proc/check_shields(var/damage = 0, var/atom/A) diff --git a/code/modules/mob/living/carbon/complex/martian/inventory.dm b/code/modules/mob/living/carbon/complex/martian/inventory.dm index 9d07a9efa27..e5899c9eabb 100644 --- a/code/modules/mob/living/carbon/complex/martian/inventory.dm +++ b/code/modules/mob/living/carbon/complex/martian/inventory.dm @@ -85,7 +85,7 @@ head = null success = 1 update_inv_head() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else success = ..() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5c1db1605b2..079631c5ed9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -232,8 +232,8 @@ update_mutantrace() - lazy_register_event(/lazy_event/on_equipped, src, .proc/update_name) - lazy_register_event(/lazy_event/on_unequipped, src, .proc/update_name) + register_event(/event/equipped, src, .proc/update_name) + register_event(/event/unequipped, src, .proc/update_name) /mob/living/carbon/human/proc/update_name() name = get_visible_name() diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 7330a557e5e..415d4780149 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -56,7 +56,7 @@ amount = amount * brute_damage_modifier - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRUTE, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BRUTE, "amount" = amount))) return 0 if(amount > 0) @@ -68,7 +68,7 @@ /mob/living/carbon/human/adjustFireLoss(var/amount) amount = amount * burn_damage_modifier - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BURN, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BURN, "amount" = amount))) return 0 if(amount > 0) @@ -83,7 +83,7 @@ /mob/living/carbon/human/proc/adjustBruteLossByPart(var/amount, var/organ_name, var/obj/damage_source = null) amount = amount * brute_damage_modifier - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRUTE, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BRUTE, "amount" = amount))) return 0 if (organ_name in organs_by_name) @@ -100,7 +100,7 @@ /mob/living/carbon/human/proc/adjustFireLossByPart(var/amount, var/organ_name, var/obj/damage_source = null) amount = amount * burn_damage_modifier - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BURN, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BURN, "amount" = amount))) return 0 if (organ_name in organs_by_name) @@ -137,7 +137,7 @@ if(isslimeperson(src)) amount = 0 - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = CLONE, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = CLONE, "amount" = amount))) return 0 var/heal_prob = max(0, 80 - getCloneLoss()) @@ -375,7 +375,7 @@ This function restores all organs. if(blocked) damage = (damage/100)*(100-blocked) - if(!ignore_events && lazy_invoke_event(/lazy_event/on_damaged, list("kind" = damagetype, "amount" = damage))) + if(!ignore_events && invoke_event(/event/damaged, list("kind" = damagetype, "amount" = damage))) return 0 switch(damagetype) @@ -494,7 +494,7 @@ This function restores all organs. if(species.flags & RAD_IMMUNE) return if(application == RAD_EXTERNAL) - lazy_invoke_event(/lazy_event/on_irradiate, list("user" = src, "rads" = rads)) + invoke_event(/event/irradiate, list("user" = src, "rads" = rads)) if(reagents) if(reagents.has_reagent(LITHOTORCRAZINE)) rads /= 2 diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 274b9e374ed..030d02b6786 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -484,8 +484,8 @@ emp_act var/damage_blocked = 0 //INVOKE_EVENT may return null sometimes - this doesn't work nice with bitflags (which is what's being done here). Hence the !! operator - it turns a null into a 0. - var/brute_resolved = !!lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRUTE, "amount" = b_loss)) - var/burn_resolved = !!lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BURN, "amount" = f_loss)) + var/brute_resolved = !!invoke_event(/event/damaged, list("kind" = BRUTE, "amount" = b_loss)) + var/burn_resolved = !!invoke_event(/event/damaged, list("kind" = BURN, "amount" = f_loss)) damage_blocked |= (brute_resolved | burn_resolved) if(damage_blocked) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index b502788846e..9f95a4e6fb2 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -348,7 +348,7 @@ else return 0 // Call update_name AFTER the inventory gets updated. - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) if(success) update_hidden_item_icons(W) @@ -500,7 +500,7 @@ W.equipped(src, slot) if(client) client.screen |= W - lazy_invoke_event(/lazy_event/on_equipped, list(W, slot)) + invoke_event(/event/equipped, list(W, slot)) /mob/living/carbon/human/get_multitool(var/active_only=0) if(istype(get_active_hand(),/obj/item/device/multitool)) diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm index a79995acf40..ea77878aaea 100644 --- a/code/modules/mob/living/carbon/monkey/inventory.dm +++ b/code/modules/mob/living/carbon/monkey/inventory.dm @@ -102,19 +102,19 @@ success = 1 slot = slot_head update_inv_hat() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else if(W == glasses) glasses = null success = 1 slot = slot_glasses update_inv_glasses() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else if(W == uniform) uniform = null success = 1 slot = slot_w_uniform update_inv_uniform() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else success = ..() if(success) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 20133578f9f..cf363a2ec30 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -82,9 +82,9 @@ if(prob(33) && canmove && isturf(loc) && !pulledby && !(grabbed_by?.len)) //won't move if being pulled - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) step(src, pick(cardinal)) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) if(prob(1)) passive_emote() diff --git a/code/modules/mob/living/combat.dm b/code/modules/mob/living/combat.dm index 9ae5f655545..2972bd2f966 100644 --- a/code/modules/mob/living/combat.dm +++ b/code/modules/mob/living/combat.dm @@ -130,7 +130,8 @@ target.unarmed_attacked(src, damage, damage_type, zone) after_unarmed_attack(target, damage, damage_type, affecting, armor_block) - INVOKE_EVENT(on_touched, list("user" = target, "unarmed attacked by" = src)) + invoke_event(/event/unarmed_attack, list("attacker" = target, "attacked" = src)) + add_logs(src, target, "attacked ([damage_done]dmg)", admin = (src.ckey && target.ckey) ? TRUE : FALSE) //Only add this to the server logs if both mobs were controlled by player return damage_done diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a1b7589065d..fb8d935b371 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -245,7 +245,7 @@ if(status_flags & GODMODE) return 0 //godmode - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRUTE, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BRUTE, "amount" = amount))) return 0 bruteloss = min(max(bruteloss + (amount * brute_damage_modifier), 0),(maxHealth*2)) @@ -257,7 +257,7 @@ if(status_flags & GODMODE) return 0 //godmode - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = OXY, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = OXY, "amount" = amount))) return 0 oxyloss = min(max(oxyloss + (amount * oxy_damage_modifier), 0),(maxHealth*2)) @@ -274,7 +274,7 @@ if(status_flags & GODMODE) return 0 //godmode - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = TOX, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = TOX, "amount" = amount))) return 0 var/mult = 1 @@ -298,7 +298,7 @@ return 0 //godmode if(mutations.Find(M_RESIST_HEAT)) return 0 - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BURN, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BURN, "amount" = amount))) return 0 fireloss = min(max(fireloss + (amount * burn_damage_modifier), 0),(maxHealth*2)) @@ -310,7 +310,7 @@ if(status_flags & GODMODE) return 0 //godmode - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = CLONE, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = CLONE, "amount" = amount))) return 0 if(ishuman(src)) @@ -332,7 +332,7 @@ if(status_flags & GODMODE) return 0 //godmode - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRAIN, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BRAIN, "amount" = amount))) return 0 brainloss = min(max(brainloss + (amount * brain_damage_modifier), 0),(maxHealth*2)) @@ -719,9 +719,9 @@ Thanks. if (ok) var/atom/movable/secondarypull = M.pulling M.stop_pulling() - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) pulling.Move(T, get_dir(pulling, T), glide_size_override = src.glide_size) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) if(M && secondarypull) M.start_pulling(secondarypull) else @@ -789,7 +789,7 @@ Thanks. var/turf/T = get_turf(src) - lazy_invoke_event(/lazy_event/on_resist, list("user" = src)) + invoke_event(/event/resist, list("user" = src)) delayNextSpecial(10) // Special delay, a cooldown to prevent spamming too much. @@ -1429,9 +1429,9 @@ Thanks. AM.set_glide_size(src.glide_size) if (ismob(AM)) var/mob/M = AM - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) step(M, t) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) else step(AM, t) now_pushing = 0 diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index f73563c8b94..a124293639e 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -8,7 +8,7 @@ mind.active = 1 //indicates that the mind is currently synced with a client ResendAllUIs() // Re-sends mind UIs - lazy_invoke_event(/lazy_event/on_living_login, list("user" = src)) + invoke_event(/event/living_login, list("user" = src)) //login during ventcrawl if(is_ventcrawling && istype(loc, /obj/machinery/atmospherics)) //attach us back into the pipes diff --git a/code/modules/mob/living/silicon/mommi/mommi_inventory.dm b/code/modules/mob/living/silicon/mommi/mommi_inventory.dm index 9882ca2dffc..0706e9cd934 100644 --- a/code/modules/mob/living/silicon/mommi/mommi_inventory.dm +++ b/code/modules/mob/living/silicon/mommi/mommi_inventory.dm @@ -53,7 +53,7 @@ head_state = null // Update the MoMMI's head inventory icons update_inv_head() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) // Override the default /mob version since we only have one hand slot. /mob/living/silicon/robot/mommi/put_in_active_hand(var/obj/item/W) diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index d50fb69f50c..b5efb0cca7b 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -39,7 +39,7 @@ return amount /mob/living/silicon/robot/adjustBruteLoss(var/amount) - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRUTE, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BRUTE, "amount" = amount))) return FALSE if(amount > 0) take_overall_damage(amount, 0) @@ -47,7 +47,7 @@ heal_overall_damage(-amount, 0) /mob/living/silicon/robot/adjustFireLoss(var/amount) - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BURN, "amount" = amount))) + if(invoke_event(/event/damaged, list("kind" = BURN, "amount" = amount))) return FALSE if(amount > 0) take_overall_damage(0, amount) diff --git a/code/modules/mob/living/simple_animal/borer/egg.dm b/code/modules/mob/living/simple_animal/borer/egg.dm index 200da85734f..22e0bab70db 100644 --- a/code/modules/mob/living/simple_animal/borer/egg.dm +++ b/code/modules/mob/living/simple_animal/borer/egg.dm @@ -40,11 +40,11 @@ recruiter.jobban_roles = list("pAI") // A player has their role set to Yes or Always - recruiter.player_volunteering.Add(src, "recruiter_recruiting") + recruiter.player_volunteering = new /callback(src, .proc/recruiter_recruiting) // ", but No or Never - recruiter.player_not_volunteering.Add(src, "recruiter_not_recruiting") + recruiter.player_not_volunteering = new /callback(src, .proc/recruiter_not_recruiting) - recruiter.recruited.Add(src, "recruiter_recruited") + recruiter.recruited = new /callback(src, .proc/recruiter_recruited) /obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/Hatch() if(hatching) @@ -55,25 +55,20 @@ src.visible_message("The [name] pulsates and quivers!") recruiter.request_player() -/obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/recruiter_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\The [src] is starting to hatch. You have been added to the list of potential ghosts. ([controls])") +/obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/recruiter_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\The [src] is starting to hatch. You have been added to the list of potential ghosts. ([controls])") -/obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/recruiter_not_recruiting(var/list/args) - var/mob/dead/observer/O = args["player"] - var/controls = args["controls"] - to_chat(O, "\The [src] is starting to hatch. ([controls])") +/obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/recruiter_not_recruiting(mob/dead/observer/player, controls) + to_chat(player, "\The [src] is starting to hatch. ([controls])") -/obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/recruiter_recruited(var/list/args) - var/mob/dead/observer/O = args["player"] - if(O) +/obj/item/weapon/reagent_containers/food/snacks/borer_egg/proc/recruiter_recruited(mob/dead/observer/player) + if(player) var/turf/T = get_turf(src) src.visible_message("\The [name] bursts open!") //Adds the chance for a "special" borer to be born var/borer_type = pick_type() var/mob/living/simple_animal/borer/B = new borer_type(T, child_prefix_index) - B.transfer_personality(O.client) + B.transfer_personality(player.client) // Play hatching noise here. new /obj/item/trash/egg/borer(T) playsound(src.loc, 'sound/items/borer_hatch.ogg', 50, 1) diff --git a/code/modules/mob/living/simple_animal/hologram/hologram_inventory.dm b/code/modules/mob/living/simple_animal/hologram/hologram_inventory.dm index 5a05c059ce5..fe3593b4787 100644 --- a/code/modules/mob/living/simple_animal/hologram/hologram_inventory.dm +++ b/code/modules/mob/living/simple_animal/hologram/hologram_inventory.dm @@ -8,17 +8,17 @@ head = null success = 1 update_inv_head() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) if (W == w_uniform) w_uniform = null success = 1 update_inv_w_uniform() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) if (W == wear_suit) wear_suit = null success = 1 update_inv_wear_suit() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else success = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/grinch.dm b/code/modules/mob/living/simple_animal/hostile/grinch.dm index cd4e2ebd635..2e1234a8a13 100644 --- a/code/modules/mob/living/simple_animal/hostile/grinch.dm +++ b/code/modules/mob/living/simple_animal/hostile/grinch.dm @@ -44,7 +44,7 @@ back = null success = 1 update_inv_back() - lazy_invoke_event(/lazy_event/on_unequipped, list(W)) + invoke_event(/event/unequipped, list(W)) else success = ..() diff --git a/code/modules/mob/living/simple_animal/shade_powers.dm b/code/modules/mob/living/simple_animal/shade_powers.dm index 92734a38e5d..6792c59dccd 100644 --- a/code/modules/mob/living/simple_animal/shade_powers.dm +++ b/code/modules/mob/living/simple_animal/shade_powers.dm @@ -16,7 +16,7 @@ if (!istype(loc, /obj/item/weapon/melee/soulblade)) return DisplayUI("Soulblade") - lazy_register_event(/lazy_event/on_living_login, src, /mob/living/simple_animal/shade/proc/add_HUD) + register_event(/event/living_login, src, /mob/living/simple_animal/shade/proc/add_HUD) if (client) client.CAN_MOVE_DIAGONALLY = 1 client.screen += list( @@ -44,7 +44,7 @@ healths2, ) HideUI("Soulblade") - lazy_unregister_event(/lazy_event/on_living_login, src, /mob/living/simple_animal/shade/proc/add_HUD) + unregister_event(/event/living_login, src, /mob/living/simple_animal/shade/proc/add_HUD) for(var/spell/soulblade/spell_to_remove in spell_list) remove_spell(spell_to_remove) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 7632a40c2ec..221d8ded69c 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -240,11 +240,11 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t turns_since_move++ if(turns_since_move >= turns_per_move) if(!(stop_automated_movement_when_pulled && pulledby)) //Some animals don't move when pulled - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) var/destination = get_step(src, pick(cardinal)) wander_move(destination) turns_since_move = 0 - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) handle_automated_speech() @@ -594,7 +594,7 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t /mob/living/simple_animal/adjustBruteLoss(damage) - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BRUTE, "amount" = damage))) + if(invoke_event(/event/damaged, list("kind" = BRUTE, "amount" = damage))) return 0 if (damage > 0) damageoverlaytemp = 20 @@ -612,7 +612,7 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t return 0 if(mutations.Find(M_RESIST_HEAT)) return 0 - if(lazy_invoke_event(/lazy_event/on_damaged, list("kind" = BURN, "amount" = damage))) + if(invoke_event(/event/damaged, list("kind" = BURN, "amount" = damage))) return 0 if(skinned()) damage = damage * 2 diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index a4039bf3af1..ea95bb9b1a5 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -56,6 +56,6 @@ send2adminirc("[key_name(src, showantag = FALSE)] logged out - no more non-AFK admins online. - [admin_number_afk] AFK.") send2admindiscord("[key_name(src, showantag = FALSE)] logged out. **No more non-AFK admins online.** - **[admin_number_afk]** AFK", TRUE) - lazy_invoke_event(/lazy_event/on_logout, list("user" = src)) + invoke_event(/event/logout, list("user" = src)) ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index e9a08282931..e761f767c1a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -27,12 +27,6 @@ for(var/M in mind.heard_before) if(mind.heard_before[M] == src) mind.heard_before[M] = null - if(on_bumping) - on_bumping.holder = null - if(on_bumped) - on_bumped.holder = null - if(on_touched) - on_touched.holder = null unset_machine() if(mind && mind.current == src) mind.current = null @@ -66,13 +60,6 @@ hud_used = null for(var/atom/movable/leftovers in src) qdel(leftovers) - qdel(on_bumping) - qdel(on_bumped) - qdel(on_touched) - - on_bumping = null - on_bumped = null - on_touched = null if(transmogged_from) qdel(transmogged_from) @@ -248,9 +235,6 @@ living_mob_list += src store_position() - on_bumping = new(owner = src) - on_bumped = new(owner = src) - on_touched = new(owner = src) forceMove(loc) //Without this, area.Entered() isn't called when a mob is spawned inside area @@ -1577,10 +1561,10 @@ Use this proc preferably at the end of an equipment loadout if(!canface()) return 0 if (dir!=direction) - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) dir = direction - lazy_invoke_event(/lazy_event/on_face) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/face) + invoke_event(/event/after_move) delayNextMove(movement_delay(),additive=1) return 1 @@ -1602,9 +1586,9 @@ Use this proc preferably at the end of an equipment loadout //Like forceMove(), but for dirs! used in atoms_movable.dm, mainly with chairs and vehicles /mob/change_dir(new_dir, var/changer) - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) ..() - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) /mob/proc/isGoodPickpocket() //If the mob gets bonuses when pickpocketing and such. Currently only used for humans with the Pickpocket's Gloves. return 0 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 8e34b5eb10a..df2c53184b6 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -270,9 +270,6 @@ penetration_dampening = 7 var/list/languages[0] - var/event/on_bumping //We bumped someone - var/event/on_bumped //We got bumped - var/event/on_touched // We got touched by anything var/list/alphas = list() var/spell/spell_channeling // The spell that's currently being channeled diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index c63a52a7736..010872bb2c9 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -348,7 +348,7 @@ mob.last_move_intent = world.time + 10 mob.set_glide_size(DELAY2GLIDESIZE(move_delay)) //Since we're moving OUT OF OUR OWN VOLITION AND BY OURSELVES we can update our glide_size here! - mob.lazy_invoke_event(/lazy_event/on_before_move) + mob.invoke_event(/event/before_move) // Something with pulling things var/obj/item/weapon/grab/Findgrab = locate() in mob if(Findgrab) @@ -360,7 +360,7 @@ if(M) if ((mob.Adjacent(M) || M.loc == mob.loc)) var/turf/T = mob.loc - M.lazy_invoke_event(/lazy_event/on_before_move) + M.invoke_event(/event/before_move) step(mob, Dir) if (isturf(M.loc)) var/diag = get_dir(mob, M) @@ -368,7 +368,7 @@ diag = null if ((get_dist(mob, M) > 1 || diag)) step(M, get_dir(M.loc, T)) - M.lazy_invoke_event(/lazy_event/on_after_move) + M.invoke_event(/event/after_move) else for(var/mob/M in L) M.other_mobs = 1 @@ -376,9 +376,9 @@ M.animate_movement = 3 for(var/mob/M in L) spawn( 0 ) - M.lazy_invoke_event(/lazy_event/on_before_move) + M.invoke_event(/event/before_move) step(M, dir) - M.lazy_invoke_event(/lazy_event/on_after_move) + M.invoke_event(/event/after_move) return spawn( 1 ) M.other_mobs = null @@ -395,8 +395,8 @@ mob.last_movement=world.time if(mob.dir != old_dir) - mob.lazy_invoke_event(/lazy_event/on_face) - mob.lazy_invoke_event(/lazy_event/on_after_move) + mob.invoke_event(/event/face) + mob.invoke_event(/event/after_move) /mob/proc/process_confused(var/Dir) if (confused <= 0) @@ -404,12 +404,12 @@ . = TRUE var/old_dir = dir if (confused_intensity == CONFUSED_MAGIC) - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) step_rand(src) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) return - lazy_invoke_event(/lazy_event/on_before_move) + invoke_event(/event/before_move) switch(Dir) if(NORTH) step(src, pick(NORTHEAST, NORTHWEST)) @@ -427,11 +427,11 @@ step(src, pick(SOUTH, EAST)) if(SOUTHWEST) step(src, pick(SOUTH, WEST)) - lazy_invoke_event(/lazy_event/on_after_move) + invoke_event(/event/after_move) last_movement=world.time if(dir != old_dir) - lazy_invoke_event(/lazy_event/on_face) + invoke_event(/event/face) ///Process_Grab() ///Called by client/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, glide_size_override = 0) @@ -513,7 +513,7 @@ mob.dir = direct else to_chat(mob, "Some strange aura is blocking the way!") - mob.lazy_invoke_event(/lazy_event/on_moved) + mob.invoke_event(/event/moved) mob.delayNextMove(movedelay) return 1 // Crossed is always a bit iffy @@ -574,15 +574,15 @@ var/mob/mobpulled = target var/atom/movable/secondarypull = mobpulled.pulling mobpulled.stop_pulling() - mobpulled.lazy_invoke_event(/lazy_event/on_before_move) + mobpulled.invoke_event(/event/before_move) step(mobpulled, get_dir(mobpulled.loc, dest)) - mobpulled.lazy_invoke_event(/lazy_event/on_after_move) + mobpulled.invoke_event(/event/after_move) if(mobpulled && secondarypull) mobpulled.start_pulling(secondarypull) else - target.lazy_invoke_event(/lazy_event/on_before_move) + target.invoke_event(/event/before_move) step(target, get_dir(target.loc, dest)) - target.lazy_invoke_event(/lazy_event/on_after_move) + target.invoke_event(/event/after_move) target.add_fingerprint(src) /mob/proc/movement_delay() diff --git a/code/modules/optics/mirrors/mirror.dm b/code/modules/optics/mirrors/mirror.dm index be40d0d6fc9..e79fa4ad628 100644 --- a/code/modules/optics/mirrors/mirror.dm +++ b/code/modules/optics/mirrors/mirror.dm @@ -18,8 +18,6 @@ var/global/list/obj/machinery/mirror/mirror_list = list() machine_flags = WRENCHMOVE | SCREWTOGGLE | CROWDESTROY - var/list/powerchange_hooks=list() - /obj/machinery/mirror/New() ..() mirror_list += src @@ -103,7 +101,7 @@ var/global/list/obj/machinery/mirror/mirror_list = list() if(B.HasSource(src)) return // Prevent infinite loops. ..() - powerchange_hooks[B]=B.power_change.Add(src,"on_power_change") + B.register_event(/event/beam_power_change, src, .proc/on_power_change) update_beams() /obj/machinery/mirror/beam_disconnect(var/obj/effect/beam/emitter/B) @@ -111,13 +109,11 @@ var/global/list/obj/machinery/mirror/mirror_list = list() if(B.HasSource(src)) return // Prevent infinite loops. ..() - B.power_change.Remove(powerchange_hooks[B]) - powerchange_hooks.Remove(B) + B.unregister_event(/event/beam_power_change, src, .proc/on_power_change) update_beams() // When beam power changes -/obj/machinery/mirror/proc/on_power_change(var/list/args) - //Don't care about args, just update beam. +/obj/machinery/mirror/proc/on_power_change(obj/effect/beam/beam) update_beams() /obj/machinery/mirror/proc/kill_all_beams() diff --git a/code/modules/optics/prism.dm b/code/modules/optics/prism.dm index 256f1cb41f9..429d5e0f44f 100644 --- a/code/modules/optics/prism.dm +++ b/code/modules/optics/prism.dm @@ -14,8 +14,6 @@ var/list/obj/machinery/prism/prism_list = list() machine_flags = WRENCHMOVE | SCREWTOGGLE | CROWDESTROY - var/list/powerchange_hooks=list() - /obj/machinery/prism/New() ..() @@ -75,7 +73,7 @@ var/list/obj/machinery/prism/prism_list = list() if(B.HasSource(src)) return // Prevent infinite loops. ..() - powerchange_hooks[B]=B.power_change.Add(src,"on_power_change") + B.register_event(/event/beam_power_change, src, .proc/on_power_change) update_beams(B) /obj/machinery/prism/beam_disconnect(var/obj/effect/beam/emitter/B) @@ -83,13 +81,11 @@ var/list/obj/machinery/prism/prism_list = list() if(B.HasSource(src)) return // Prevent infinite loops. ..() - B.power_change.Remove(powerchange_hooks[B]) - powerchange_hooks.Remove(B) + B.unregister_event(/event/beam_power_change, src, .proc/on_power_change) update_beams(B) // When beam power changes -/obj/machinery/prism/proc/on_power_change(var/list/args) - //Don't care about args, just update beam. +/obj/machinery/prism/proc/on_power_change(obj/effect/beam/beam) update_beams() /obj/machinery/prism/proc/update_beams(var/obj/effect/beam/emitter/touching_beam) diff --git a/code/modules/power/components.dm b/code/modules/power/components.dm index 579a7e745f7..59bc8b53c15 100644 --- a/code/modules/power/components.dm +++ b/code/modules/power/components.dm @@ -23,7 +23,7 @@ power_machines |= src // Used for updating turf power_connection lists when moved. - parent.lazy_register_event(/lazy_event/on_moved, src, .proc/parent_moved) + parent.register_event(/event/moved, src, .proc/parent_moved) addToTurf() /datum/power_connection/Destroy() @@ -32,10 +32,10 @@ // Remember to tell our turf that we're gone. removeFromTurf() - parent.lazy_unregister_event(/lazy_event/on_moved, src, .proc/parent_moved) + parent.unregister_event(/event/moved, src, .proc/parent_moved) ..() -// CALLBACK from /lazy_event/on_moved. +// CALLBACK from /event/moved. // This should never happen, except when Singuloth is doing its shenanigans, as rebuilding // powernets is extremely slow. /datum/power_connection/proc/parent_moved(atom/movable/mover) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 103b7492c5c..7e7d0c8d540 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -333,9 +333,6 @@ var/base_state = "emitter" var/power = 1 - //Notify prisms of power change. - var/event/power_change = new - /obj/effect/beam/emitter/proc/set_power(var/newpower = 1) power = newpower if(next) @@ -343,7 +340,7 @@ next_beam.set_power(power) update_icon() if(!master) - INVOKE_EVENT(power_change,list("beam" = src)) + invoke_event(/event/beam_power_change, list("beam" = src)) /obj/effect/beam/emitter/spawn_child() var/obj/effect/beam/emitter/beam = ..() diff --git a/code/modules/projectiles/guns/projectile/constructable/tomahawk.dm b/code/modules/projectiles/guns/projectile/constructable/tomahawk.dm index 8d59459f469..ed40ff865e3 100644 --- a/code/modules/projectiles/guns/projectile/constructable/tomahawk.dm +++ b/code/modules/projectiles/guns/projectile/constructable/tomahawk.dm @@ -160,7 +160,7 @@ /obj/item/weapon/hatchet/tomahawk/pipe/Destroy() if(current_blunt) - current_blunt.lazy_unregister_event(/lazy_event/on_destroyed, src, .proc/burnout) + current_blunt.unregister_event(/event/destroyed, src, .proc/burnout) qdel(current_blunt) current_blunt = null ..() @@ -179,7 +179,7 @@ return to_chat(user, "You crush \the [W] into \the [src].") var/obj/item/clothing/mask/cigarette/blunt/rolled/B = new/obj/item/clothing/mask/cigarette/blunt/rolled(src) - B.lazy_register_event(/lazy_event/on_destroyed, src, .proc/burnout) + B.register_event(/event/destroyed, src, .proc/burnout) B.inside_item = 1 W.reagents.trans_to(B, (W.reagents.total_volume)) B.update_brightness() @@ -322,7 +322,7 @@ return to_chat(user, "You crush \the [W] into \the [src].") var/obj/item/clothing/mask/cigarette/blunt/rolled/B = new/obj/item/clothing/mask/cigarette/blunt/rolled(src) - B.lazy_register_event(/lazy_event/on_destroyed, src, .proc/burnout) + B.register_event(/event/destroyed, src, .proc/burnout) B.inside_item = 1 W.reagents.trans_to(B, (W.reagents.total_volume)) B.update_brightness() diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_essenceprinter.dm b/code/modules/research/xenoarchaeology/artifact/artifact_essenceprinter.dm index f9e53d980aa..1ed9af0d53f 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_essenceprinter.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_essenceprinter.dm @@ -14,7 +14,7 @@ /obj/structure/essence_printer/Destroy() new /datum/artifact_postmortem_data(src) if(bound_soul) - bound_soul.lazy_unregister_event(/lazy_event/on_death, src, .proc/print) + bound_soul.unregister_event(/event/death, src, .proc/print) bound_soul = null ..() @@ -34,9 +34,9 @@ R.languages = H.languages.Copy() R.name=R.dna.real_name if(bound_soul) - bound_soul.lazy_unregister_event(/lazy_event/on_death, src, .proc/print) + bound_soul.unregister_event(/event/death, src, .proc/print) bound_soul = H - H.lazy_register_event(/lazy_event/on_death, src, .proc/print) + H.register_event(/event/death, src, .proc/print) /obj/structure/essence_printer/attack_ghost(mob/user) if(!ready) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index f39be22920a..1a9989d6b1d 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -18,10 +18,6 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal var/artifact_id = "" anchored = 0 layer = ABOVE_OBJ_LAYER - var/event/on_attackby - var/event/on_explode - var/event/on_projectile - var/event/on_beam var/analyzed = 0 //set to 1 after having been analyzed successfully var/safe_delete = FALSE @@ -33,11 +29,6 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal artifact_id = generate_artifact_id() excavated_large_artifacts[artifact_id] = src - - on_attackby = new(owner = src) - on_explode = new(owner = src) - on_projectile = new(owner = src) - on_beam = new(owner = src) //event arguement list format (user, "context", item) if(generate_effect) @@ -151,7 +142,7 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal src.add_fingerprint(user) to_chat(user, "You touch [src].") - lazy_invoke_event(/lazy_event/on_attackhand, list("user" = user, "target" = src)) + invoke_event(/event/attackhand, list("user" = user, "target" = src)) /obj/machinery/artifact/attackby(obj/item/weapon/W as obj, mob/living/user as mob) @@ -164,17 +155,17 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal visible_message("\The [user] [pick(W.attack_verb)] \the [src] with \the [W].") else visible_message("\The [user] hits \the [src] with \the [W].") - on_attackby.Invoke(list(user, "MELEE", W)) + invoke_event(/event/attackby, list("attacker" = user, "item" = W)) /obj/machinery/artifact/Bumped(var/atom/A) if (istype(A,/obj)) - on_attackby.Invoke(list(usr, "THROW", A)) + invoke_event(/event/bumped, list("bumper" = A, "bumped" = src)) else if (isliving(A)) var/mob/living/L = A if (!ishuman(L) || !istype(L:gloves,/obj/item/clothing/gloves)) if (prob(50)) to_chat(L, "You accidentally touch [src].") - lazy_invoke_event(/lazy_event/on_bumped, list("user" = L, "target" = src)) + invoke_event(/event/bumped, list("bumper" = L, "bumped" = src)) ..() /obj/machinery/artifact/to_bump(var/atom/A) @@ -183,16 +174,16 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal if (!ishuman(L) || !istype(L:gloves,/obj/item/clothing/gloves)) if (prob(50)) to_chat(L, "\The [src] bumps into you.") - lazy_invoke_event(/lazy_event/on_bumped, list("user" = L, "target" = src)) + invoke_event(/event/bumped, list("bumper" = L, "bumped" = src)) ..() /obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) - on_projectile.Invoke(list(P.firer, "PROJECTILE",P)) + invoke_event(/event/projectile, list("projectile" = P)) return ..() /obj/machinery/artifact/beam_connect(var/obj/effect/beam/B) ..() - on_beam.Invoke(list(B, "BEAMCONNECT")) + invoke_event(/event/beam_connect, list("beam" = B)) /obj/machinery/artifact/ex_act(severity) switch(severity) @@ -206,10 +197,9 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal ArtifactRepercussion(src, null, "an explosion", "[type]") qdel(src) else - on_explode.Invoke(list("", "EXPLOSION")) + invoke_event(/event/explosion, list("severity" = severity)) if(3.0) - on_explode.Invoke(list("", "EXPLOSION")) - return + invoke_event(/event/explosion, list("severity" = severity)) /obj/machinery/artifact/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, glide_size_override = 0) ..() @@ -223,10 +213,6 @@ var/list/razed_large_artifacts = list()//destroyed while still inside a rock wal qdel(primary_effect); primary_effect = null qdel(secondary_effect); secondary_effect = null - qdel(on_attackby); on_attackby = null - qdel(on_explode); on_explode = null - qdel(on_projectile); on_projectile = null - qdel(on_beam); on_beam = null ..() /proc/ArtifactRepercussion(var/atom/source, var/mob/mob_cause = null, var/other_cause = "", var/artifact_type = "") diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_energy.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_energy.dm index 532967f3496..3caa5cd5549 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_energy.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_energy.dm @@ -1,47 +1,44 @@ /datum/artifact_trigger/energy triggertype = TRIGGER_ENERGY scanned_trigger = SCAN_PHYSICAL_ENERGETIC - var/key_attackby - var/key_projectile - var/key_beam /datum/artifact_trigger/energy/New() ..() - key_attackby = my_artifact.on_attackby.Add(src, "owner_attackby") - key_projectile = my_artifact.on_projectile.Add(src, "owner_projectile") - key_beam = my_artifact.on_beam.Add(src, "owner_beam") + my_artifact.register_event(/event/attackby, src, .proc/owner_attackby) + my_artifact.register_event(/event/projectile, src, .proc/owner_projectile) + my_artifact.register_event(/event/beam_connect, src, .proc/owner_beam) -/datum/artifact_trigger/energy/proc/owner_attackby(var/list/event_args, var/source) - var/toucher = event_args[1] - var/context = event_args[2] - var/obj/item/weapon/item = event_args[3] +/datum/artifact_trigger/energy/proc/owner_attackby(mob/living/attacker, obj/item/item) + var/static/list/energy_weapons = list( + /obj/item/weapon/melee/energy, + /obj/item/weapon/melee/legacy_cultblade, + /obj/item/weapon/card/emag, + /obj/item/device/multitool, + ) + if(istype(item, /obj/item/weapon/melee/baton)) + var/obj/item/weapon/melee/baton/stick = item + if(!stick.status) + return + if(!is_type_in_list(item, energy_weapons)) + return + Triggered(attacker, "MELEE", item) - if(istype(item,/obj/item/weapon/melee/baton) && item:status ||\ - istype(item,/obj/item/weapon/melee/energy) ||\ - istype(item,/obj/item/weapon/melee/legacy_cultblade) ||\ - istype(item,/obj/item/weapon/card/emag) ||\ - istype(item,/obj/item/device/multitool)) - Triggered(toucher, context, item) +/datum/artifact_trigger/energy/proc/owner_projectile(obj/item/projectile/projectile) + var/list/energy_projectiles = list( + /obj/item/projectile/beam, + /obj/item/projectile/ion, + /obj/item/projectile/energy, + ) + if(!is_type_in_list(projectile, energy_projectiles)) + return + Triggered(projectile.firer, "PROJECTILE", projectile) -/datum/artifact_trigger/energy/proc/owner_projectile(var/list/event_args, var/source) - var/toucher = event_args[1] - var/context = event_args[2] - var/item = event_args[3] - - if(istype(item,/obj/item/projectile/beam) ||\ - istype(item,/obj/item/projectile/ion) ||\ - istype(item,/obj/item/projectile/energy)) - Triggered(toucher, context, item) - -/datum/artifact_trigger/energy/proc/owner_beam(var/list/event_args, var/source) - var/obj/effect/beam/B = event_args[1] - var/context = event_args[2] - - if (B?.get_damage()) - Triggered(null, context, B) +/datum/artifact_trigger/energy/proc/owner_beam(obj/effect/beam/beam) + if (beam?.get_damage()) + Triggered(null, "BEAMCONNECT", beam) /datum/artifact_trigger/energy/Destroy() - my_artifact.on_attackby.Remove(key_attackby) - my_artifact.on_projectile.Remove(key_projectile) - my_artifact.on_beam.Remove(key_beam) + my_artifact.unregister_event(/event/attackby, src, .proc/owner_attackby) + my_artifact.unregister_event(/event/projectile, src, .proc/owner_projectile) + my_artifact.unregister_event(/event/beam_connect, src, .proc/owner_beam) ..() diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_force.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_force.dm index 7dd545be8fa..0f2467a436b 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_force.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_force.dm @@ -9,35 +9,39 @@ /datum/artifact_trigger/force/New() ..() - key_attackby = my_artifact.on_attackby.Add(src, "owner_attackby") - key_explode = my_artifact.on_explode.Add(src, "owner_explode") - key_projectile = my_artifact.on_projectile.Add(src, "owner_projectile") + my_artifact.register_event(/event/attackby, src, .proc/owner_attackby) + my_artifact.register_event(/event/explosion, src, .proc/owner_explode) + my_artifact.register_event(/event/projectile, src, .proc/owner_projectile) + my_artifact.register_event(/event/bumped, src, .proc/owner_bumped) -/datum/artifact_trigger/force/proc/owner_attackby(var/list/event_args, var/source) - var/toucher = event_args[1] - var/context = event_args[2] - var/obj/item/weapon/item = event_args[3] +/datum/artifact_trigger/force/proc/owner_attackby(mob/living/attacker, obj/item/item) + if(item.force < FORCE_THRESHOLD) + return + Triggered(attacker, "MELEE", item) - if(context == "THROW" && item:throwforce >= FORCE_THRESHOLD) - Triggered(toucher, context, item) - else if(item.force >= FORCE_THRESHOLD) - Triggered(toucher, context, item) +/datum/artifact_trigger/force/proc/owner_explode(severity) + Triggered(null, "EXPLOSION", null) -/datum/artifact_trigger/force/proc/owner_explode(var/list/event_args, var/source) - var/context = event_args[2] - Triggered(0, context, 0) +/datum/artifact_trigger/force/proc/owner_projectile(obj/item/projectile/projectile) + var/static/list/valid_projectiles = list( + /obj/item/projectile/bullet, + /obj/item/projectile/hivebotbullet, + ) + if(!is_type_in_list(projectile, valid_projectiles)) + return + Triggered(projectile.firer, "PROJECTILE", projectile) -/datum/artifact_trigger/force/proc/owner_projectile(var/list/event_args, var/source) - var/toucher = event_args[1] - var/context = event_args[2] - var/item = event_args[3] - - if(istype(item,/obj/item/projectile/bullet) ||\ - istype(item,/obj/item/projectile/hivebotbullet)) - Triggered(toucher, context, item) +/datum/artifact_trigger/force/proc/owner_bumped(atom/movable/bumper, atom/bumped) + var/obj/item/thrown_item = bumper + if(!istype(thrown_item)) + return + if(thrown_item.throwforce < FORCE_THRESHOLD) + return + Triggered(usr, "THROW", thrown_item) /datum/artifact_trigger/force/Destroy() - my_artifact.on_attackby.Remove(key_attackby) - my_artifact.on_explode.Remove(key_explode) - my_artifact.on_projectile.Remove(key_projectile) - ..() \ No newline at end of file + my_artifact.unregister_event(/event/attackby, src, .proc/owner_attackby) + my_artifact.unregister_event(/event/explosion, src, .proc/owner_explode) + my_artifact.unregister_event(/event/projectile, src, .proc/owner_projectile) + my_artifact.unregister_event(/event/bumped, src, .proc/owner_bumped) + ..() diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pay2use.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pay2use.dm index 651e7a9b1a5..196de4dd8f2 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pay2use.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pay2use.dm @@ -6,15 +6,13 @@ triggertype = TRIGGER_PAY2USE scanned_trigger = SCAN_PHYSICAL var/mode - var/key_attackhand - var/key_attackby var/time_left = 0 var/obj/machinery/account_database/linked_db /datum/artifact_trigger/pay2use/New() ..() - my_artifact.lazy_register_event(/lazy_event/on_attackhand, src, .proc/owner_attackhand) - key_attackby = my_artifact.on_attackby.Add(src, "owner_attackby") + my_artifact.register_event(/event/attackhand, src, .proc/owner_attackhand) + my_artifact.register_event(/event/attackhand, src, .proc/owner_attackby) mode = rand(0,2) var/where = pick("on one of its sides","at the top","hidden underneath", "on the front") switch(mode) @@ -47,6 +45,7 @@ Triggered(0, "NOMONEY", 0) +// unused? /datum/artifact_trigger/pay2use/proc/owner_bumped(mob/user, atom/target) activate(user, "BUMPED") @@ -81,50 +80,45 @@ popup.set_content(dat) popup.open() -/datum/artifact_trigger/pay2use/proc/owner_attackby(var/list/event_args, var/source) - var/toucher = event_args[1] - var/context = event_args[2] - var/obj/item/weapon/item = event_args[3] +/datum/artifact_trigger/pay2use/proc/owner_attackby(mob/living/attacker, obj/item/item) + if(iscoin(item)) + if(mode == COIN) + my_artifact.investigation_log(I_ARTIFACT, "|| effect [my_effect.artifact_id]([my_effect]) || [item] inserted to ([my_effect.trigger]) || used by [key_name(attacker)].") + my_artifact.visible_message("[attacker] inserts a coin into [my_artifact].") + if(istype(item, /obj/item/weapon/coin/clown)) + playsound(my_artifact, 'sound/items/bikehorn.ogg', 50, 1) + time_left += 150 + else if(istype(item, /obj/item/weapon/coin/iron)) + time_left += 10 + else if(istype(item, /obj/item/weapon/coin/silver)) + time_left += 30 + else if(istype(item, /obj/item/weapon/coin/gold)) + time_left += 60 + else if(istype(item, /obj/item/weapon/coin/plasma)) + time_left += 45 + else if(istype(item, /obj/item/weapon/coin/uranium)) + time_left += 50 + else if(istype(item, /obj/item/weapon/coin/diamond)) + time_left += 100 + else if(istype(item, /obj/item/weapon/coin/phazon)) + time_left += 150 + else if(istype(item, /obj/item/weapon/coin/adamantine)) + time_left += 150 + else if(istype(item, /obj/item/weapon/coin/mythril)) + time_left += 150 + qdel(item) + else + to_chat(attacker, "[bicon(my_artifact)][my_artifact] does not accept coins!") - if(context == "MELEE") - if(iscoin(item)) - if(mode == COIN) - my_artifact.investigation_log(I_ARTIFACT, "|| effect [my_effect.artifact_id]([my_effect]) || [item] inserted to ([my_effect.trigger]) || used by [key_name(toucher)].") - my_artifact.visible_message("[toucher] inserts a coin into [my_artifact].") - if(istype(item, /obj/item/weapon/coin/clown)) - playsound(my_artifact, 'sound/items/bikehorn.ogg', 50, 1) - time_left += 150 - else if(istype(item, /obj/item/weapon/coin/iron)) - time_left += 10 - else if(istype(item, /obj/item/weapon/coin/silver)) - time_left += 30 - else if(istype(item, /obj/item/weapon/coin/gold)) - time_left += 60 - else if(istype(item, /obj/item/weapon/coin/plasma)) - time_left += 45 - else if(istype(item, /obj/item/weapon/coin/uranium)) - time_left += 50 - else if(istype(item, /obj/item/weapon/coin/diamond)) - time_left += 100 - else if(istype(item, /obj/item/weapon/coin/phazon)) - time_left += 150 - else if(istype(item, /obj/item/weapon/coin/adamantine)) - time_left += 150 - else if(istype(item, /obj/item/weapon/coin/mythril)) - time_left += 150 - qdel(item) - else - to_chat(toucher, "[bicon(my_artifact)][my_artifact] does not accept coins!") - - else if(istype(item, /obj/item/weapon/spacecash)) - if(mode == CREDIT) - var/obj/item/weapon/spacecash/dosh = item - my_artifact.visible_message("[toucher] inserts a credit chip into [my_artifact].") - my_artifact.investigation_log(I_ARTIFACT, "|| effect [my_effect.artifact_id]([my_effect]) || $[dosh.get_total()] [dosh] inserted to ([my_effect.trigger]) || used by [key_name(toucher)].") - time_left += (dosh.get_total() * 3) //6 seconds per credit - qdel(dosh) - else - to_chat(toucher, "[bicon(my_artifact)][my_artifact] does not accept credits!") + else if(istype(item, /obj/item/weapon/spacecash)) + if(mode == CREDIT) + var/obj/item/weapon/spacecash/dosh = item + my_artifact.visible_message("[attacker] inserts a credit chip into [my_artifact].") + my_artifact.investigation_log(I_ARTIFACT, "|| effect [my_effect.artifact_id]([my_effect]) || $[dosh.get_total()] [dosh] inserted to ([my_effect.trigger]) || used by [key_name(attacker)].") + time_left += (dosh.get_total() * 3) //6 seconds per credit + qdel(dosh) + else + to_chat(attacker, "[bicon(my_artifact)][my_artifact] does not accept credits!") /datum/artifact_trigger/pay2use/proc/payviacard(var/dosh = 0, var/time = 0, var/mob) @@ -202,7 +196,7 @@ payviacard(500, 3600, usr) /datum/artifact_trigger/pay2use/Destroy() - my_artifact.lazy_unregister_event(/lazy_event/on_attackhand, src, .proc/owner_attackhand) - my_artifact.on_attackby.Remove(key_attackby) + my_artifact.unregister_event(/event/attackhand, src, .proc/owner_attackhand) + my_artifact.unregister_event(/event/attackby, src, .proc/owner_attackby) linked_db = null ..() diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pressure.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pressure.dm index 9debfe886fd..44cbaf3f5d7 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pressure.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_pressure.dm @@ -6,12 +6,11 @@ scanned_trigger = SCAN_ATMOS var/high_triggered = 0 //possibly make the required pressure random in the futurem, when better facilities are added - var/key_explode /datum/artifact_trigger/pressure/New() ..() high_triggered = prob(50) - key_explode = my_artifact.on_explode.Add(src, "owner_explode") + my_artifact.register_event(/event/explosion, src, .proc/owner_explode) /datum/artifact_trigger/pressure/CheckTrigger() var/turf/T = get_turf(my_artifact) @@ -28,10 +27,9 @@ else if(high_triggered && env.pressure < HIGH_PRESSURE_TRIGGER) Triggered(0, "LOWPRESSURE", 0) -/datum/artifact_trigger/pressure/proc/owner_explode(var/list/event_args, var/source) - var/context = event_args[2] - Triggered(0, context, 0) +/datum/artifact_trigger/pressure/proc/owner_explode(severity) + Triggered(0, "EXPLOSION", 0) /datum/artifact_trigger/pressure/Destroy() - my_artifact.on_explode.Remove(key_explode) - ..() \ No newline at end of file + my_artifact.register_event(/event/explosion, src, .proc/owner_explode) + ..() diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_reagent.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_reagent.dm index 9befa544b82..04163386600 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_reagent.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_reagent.dm @@ -2,28 +2,24 @@ triggertype = TRIGGER_REAGENT scanned_trigger = SCAN_PHYSICAL var/reagent_group = 0 - var/key_attackby /datum/artifact_trigger/reagent/New() ..() reagent_group = pick("WATER", "ACID", "VOLATILE", "TOXIN") - key_attackby = my_artifact.on_attackby.Add(src, "owner_attackby") - -/datum/artifact_trigger/reagent/proc/owner_attackby(var/list/event_args, var/source) - var/toucher = event_args[1] - var/obj/item = event_args[3] + my_artifact.register_event(/event/attackby, src, .proc/owner_attackby) +/datum/artifact_trigger/reagent/proc/owner_attackby(mob/living/attacker, obj/item/item) if (istype(item, /obj/item/weapon/reagent_containers/glass) && item.is_open_container() ||\ istype(item, /obj/item/weapon/reagent_containers/dropper)) if(reagent_group == "WATER" && (item.reagents.has_reagent(HYDROGEN, 1) || item.reagents.has_reagent(WATER, 1))) - Triggered(toucher, reagent_group, item) + Triggered(attacker, reagent_group, item) else if(reagent_group == "ACID" && (item.reagents.has_reagent(SACID, 1) || item.reagents.has_reagent(PACID, 1) || item.reagents.has_reagent(DIETHYLAMINE, 1))) - Triggered(toucher, reagent_group, item) + Triggered(attacker, reagent_group, item) else if(reagent_group == "VOLATILE" && (item.reagents.has_reagent(PLASMA, 1) || item.reagents.has_reagent(THERMITE, 1))) - Triggered(toucher, reagent_group, item) + Triggered(attacker, reagent_group, item) else if(reagent_group == "TOXIN" && (item.reagents.has_reagent(TOXIN, 1) || item.reagents.has_reagent(CYANIDE, 1) || item.reagents.has_reagent(AMATOXIN, 1) || item.reagents.has_reagent(NEUROTOXIN, 1))) - Triggered(toucher, reagent_group, item) + Triggered(attacker, reagent_group, item) /datum/artifact_trigger/reagent/Destroy() - my_artifact.on_attackby.Remove(key_attackby) - ..() \ No newline at end of file + my_artifact.unregister_event(/event/attackby, src, .proc/owner_attackby) + ..() diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_temperature.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_temperature.dm index baebd737959..2c39492dbbd 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_temperature.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_temperature.dm @@ -5,15 +5,13 @@ triggertype = TRIGGER_TEMPERATURE scanned_trigger = SCAN_ATMOS var/heat_triggered = 0 - var/key_attackby - var/key_explode /datum/artifact_trigger/temperature/New() ..() heat_triggered = prob(50) - key_attackby = my_artifact.on_attackby.Add(src, "owner_attackby") - key_explode = my_artifact.on_explode.Add(src, "owner_explode") + my_artifact.register_event(/event/attackby, src, .proc/owner_attackby) + my_artifact.register_event(/event/explosion, src, .proc/owner_explode) /datum/artifact_trigger/temperature/CheckTrigger() var/turf/T = get_turf(my_artifact) @@ -30,19 +28,14 @@ else if(heat_triggered && env.temperature < HOT_TRIGGER) Triggered(0, "HOTAIR", 0) -/datum/artifact_trigger/temperature/proc/owner_attackby(var/list/event_args, var/source) - var/toucher = event_args[1] - var/context = event_args[2] - var/obj/item = event_args[3] - +/datum/artifact_trigger/temperature/proc/owner_attackby(mob/living/attacker, obj/item/item) if(heat_triggered && item.is_hot()) - Triggered(toucher, context, item) + Triggered(attacker, "MELEE", item) -/datum/artifact_trigger/temperature/proc/owner_explode(var/list/event_args, var/source) - var/context = event_args[2] - Triggered(0, context, 0) +/datum/artifact_trigger/temperature/proc/owner_explode(severity) + Triggered(0, "EXPLOSION", 0) /datum/artifact_trigger/temperature/Destroy() - my_artifact.on_attackby.Remove(key_attackby) - my_artifact.on_explode.Remove(key_explode) - ..() \ No newline at end of file + my_artifact.unregister_event(/event/attackby, src, .proc/owner_attackby) + my_artifact.unregister_event(/event/explosion, src, .proc/owner_explode) + ..() diff --git a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_touch.dm b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_touch.dm index a4fe1bc5b79..2628800149a 100644 --- a/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_touch.dm +++ b/code/modules/research/xenoarchaeology/artifact/triggers/unknown_trigger_touch.dm @@ -4,8 +4,8 @@ /datum/artifact_trigger/touch/New() ..() - my_artifact.lazy_register_event(/lazy_event/on_attackhand, src, .proc/owner_attackhand) - my_artifact.lazy_register_event(/lazy_event/on_bumped, src, .proc/owner_bumped) + my_artifact.register_event(/event/attackhand, src, .proc/owner_attackhand) + my_artifact.register_event(/event/bumped, src, .proc/owner_bumped) /datum/artifact_trigger/touch/proc/activate(mob/user, context) Triggered(user, "TOUCH", 0) @@ -17,13 +17,15 @@ my_effect.DoEffectTouch(user) my_artifact.investigation_log(I_ARTIFACT, "|| effect [my_effect.artifact_id]([my_effect]) triggered by [context] ([my_effect.trigger]) || touched by [key_name(user)].") -/datum/artifact_trigger/touch/proc/owner_bumped(mob/user, atom/target) - activate(user, "BUMPED") +/datum/artifact_trigger/touch/proc/owner_bumped(atom/movable/bumper, atom/bumped) + if(!isliving(bumper)) + return + activate(bumper, "BUMPED") /datum/artifact_trigger/touch/proc/owner_attackhand(mob/user, atom/target) activate(user, "TOUCH") /datum/artifact_trigger/touch/Destroy() - my_artifact.lazy_unregister_event(/lazy_event/on_attackhand, src, .proc/owner_attackhand) - my_artifact.lazy_unregister_event(/lazy_event/on_bumped, src, .proc/owner_bumped) + my_artifact.unregister_event(/event/attackhand, src, .proc/owner_attackhand) + my_artifact.unregister_event(/event/bumped, src, .proc/owner_bumped) ..() diff --git a/code/modules/spells/aoe_turf/conjure/arcane_golem.dm b/code/modules/spells/aoe_turf/conjure/arcane_golem.dm index ca73a0953ea..b720554c8a4 100644 --- a/code/modules/spells/aoe_turf/conjure/arcane_golem.dm +++ b/code/modules/spells/aoe_turf/conjure/arcane_golem.dm @@ -33,7 +33,7 @@ /spell/aoe_turf/conjure/arcane_golem/cast(list/targets, mob/user) //Link the golem to its master newVars = list("master_spell" = src) - user.lazy_register_event(/lazy_event/on_spellcast, src, .proc/copy_spellcast) + user.register_event(/event/spellcast, src, .proc/copy_spellcast) check_golems() diff --git a/code/modules/spells/aoe_turf/fall.dm b/code/modules/spells/aoe_turf/fall.dm index 194ccb194af..9de49328f5a 100644 --- a/code/modules/spells/aoe_turf/fall.dm +++ b/code/modules/spells/aoe_turf/fall.dm @@ -113,7 +113,7 @@ var/global/list/falltempoverlays = list() if(C.mob) C.mob.see_fall() - user.lazy_invoke_event(/lazy_event/on_spellcast, list("spell" = src, "user" = user, "targets" = targets)) + user.invoke_event(/event/spellcast, list("spell" = src, "user" = user, "targets" = targets)) //animate(aoe_underlay, transform = null, time = 2) //var/oursound = (invocation == "ZA WARUDO" ? 'sound/effects/theworld.ogg' :'sound/effects/fall.ogg') diff --git a/code/modules/spells/general/reflect_pain.dm b/code/modules/spells/general/reflect_pain.dm index 79e2f548dee..3a75f757d29 100644 --- a/code/modules/spells/general/reflect_pain.dm +++ b/code/modules/spells/general/reflect_pain.dm @@ -39,13 +39,13 @@ for(var/mob/living/T in view(L)) if(!T.isDead() && (T != L)) to_chat(T, "An unholy charm binds your life to [L]. While the spell is active, any pain \he receive\s will be redirected to you.") - L.lazy_register_event(/lazy_event/on_damaged, src, .proc/reflect) + L.register_event(/event/damaged, src, .proc/reflect) L.overlays.Add(user_overlay) playsound(L, 'sound/effects/vampire_intro.ogg', 80, 1, "vary" = 0) spawn(duration) to_chat(L, "Your life essence is no longer bound to this plane. You won't reflect received damage to your enemies anymore.") - L.lazy_unregister_event(/lazy_event/on_damaged, src, .proc/reflect) + L.unregister_event(/event/damaged, src, .proc/reflect) L.overlays.Remove(user_overlay) /spell/mirror_of_pain/proc/reflect(kind, amount) diff --git a/code/modules/spells/spell_code.dm b/code/modules/spells/spell_code.dm index 355665b9485..b0870549feb 100644 --- a/code/modules/spells/spell_code.dm +++ b/code/modules/spells/spell_code.dm @@ -195,7 +195,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now invocation(user, targets) user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) cast the spell [name].") - user.lazy_invoke_event(/lazy_event/on_spellcast, list("spell" = src, "user" = user, "targets" = targets)) + user.invoke_event(/event/spellcast, list("spell" = src, "user" = user, "targets" = targets)) if(prob(critfailchance)) critfail(targets, user) @@ -213,17 +213,17 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now if(!cast_check(skipcharge, user)) return 0 user.remove_spell_channeling() //In case we're swapping from an older spell to this new one - user.lazy_register_event(/lazy_event/on_uattack, src, .proc/channeled_spell) + user.register_event(/event/uattack, src, .proc/channeled_spell) user.spell_channeling = src if(spell_flags & CAN_CHANNEL_RESTRAINED) - user.lazy_register_event(/lazy_event/on_ruattack, src, .proc/channeled_spell) + user.register_event(/event/ruattack, src, .proc/channeled_spell) user.spell_channeling = src connected_button.name = "(Ready) [name]" currently_channeled = 1 connected_button.add_channeling() else - user.lazy_unregister_event(/lazy_event/on_uattack, src, .proc/channeled_spell) - user.lazy_unregister_event(/lazy_event/on_ruattack, src, .proc/channeled_spell) + user.unregister_event(/event/uattack, src, .proc/channeled_spell) + user.unregister_event(/event/ruattack, src, .proc/channeled_spell) user.spell_channeling = null currently_channeled = 0 connected_button.remove_channeling() @@ -242,7 +242,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now invocation(user, target) user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) cast the spell [name].") - user.lazy_invoke_event(/lazy_event/on_spellcast, list("spell" = src, "user" = user, "targets" = target)) + user.invoke_event(/event/spellcast, list("spell" = src, "user" = user, "targets" = target)) if(prob(critfailchance)) critfail(target, holder) diff --git a/code/modules/spells/targeted/ethereal_jaunt.dm b/code/modules/spells/targeted/ethereal_jaunt.dm index 265141fc3f8..08974b5201f 100644 --- a/code/modules/spells/targeted/ethereal_jaunt.dm +++ b/code/modules/spells/targeted/ethereal_jaunt.dm @@ -120,9 +120,9 @@ if(target.client) for(var/A in jaunts) target.client.images += jaunts[A] - target.lazy_register_event(/lazy_event/on_moved, jaunts[target], /proc/update_dir_on_moved_callback) + target.register_event(/event/moved, jaunts[target], /proc/update_dir_on_moved_callback) ethereal_jaunt(target, duration, enteranim, exitanim, mist) - target.lazy_unregister_event(/lazy_event/on_moved, jaunts[target], /proc/update_dir_on_moved_callback) + target.unregister_event(/event/moved, jaunts[target], /proc/update_dir_on_moved_callback) if(target.client) for(var/A in jaunts) target.client.images -= jaunts[A] diff --git a/code/modules/unit_tests/__unit_test_includes.dm b/code/modules/unit_tests/__unit_test_includes.dm index cb782da9a07..d41c17691ab 100644 --- a/code/modules/unit_tests/__unit_test_includes.dm +++ b/code/modules/unit_tests/__unit_test_includes.dm @@ -9,7 +9,7 @@ #include "highscores.dm" #include "human.dm" #include "icons.dm" -#include "lazy_events.dm" +#include "events.dm" #include "names.dm" #include "reagent_recipe_collisions.dm" #include "turretid.dm" diff --git a/code/modules/unit_tests/events.dm b/code/modules/unit_tests/events.dm new file mode 100644 index 00000000000..be9207cc805 --- /dev/null +++ b/code/modules/unit_tests/events.dm @@ -0,0 +1,38 @@ +/event/demo_event +/datum/unit_test + var/did_something = FALSE +/datum/unit_test/event_does_stuff/start() + var/datum/demo_datum = new + demo_datum.register_event(/event/demo_event, src, .proc/do_something) + demo_datum.invoke_event(/event/demo_event) + if(!did_something) + fail("lazy event did nothing") +/datum/unit_test/event_does_stuff/proc/do_something() + did_something = TRUE + +/datum/unit_test/event_cleanup/start() + var/datum/demo_datum = new + if(!isnull(demo_datum.registered_events)) + fail("registered_events is not null by default") + demo_datum.register_event(/event/demo_event, src, .proc/do_nothing) + assert_eq(demo_datum.registered_events.len, 1) + assert_eq(demo_datum.registered_events[/event/demo_event].len, 1) + demo_datum.unregister_event(/event/demo_event, src, .proc/do_nothing) + if(!isnull(demo_datum.registered_events)) + fail("registered_events is not null after removing the last handler") +/datum/unit_test/event_cleanup/proc/do_nothing() + +/datum/unit_test/event_arguments/start() + var/datum/demo_datum = new + demo_datum.register_event(/event/demo_event, src, .proc/do_stuff_with_args) + demo_datum.invoke_event(/event/demo_event, list("abc", 123)) + demo_datum.unregister_event(/event/demo_event, src, .proc/do_stuff_with_args) + + demo_datum.register_event(/event/demo_event, src, .proc/do_something_with_named_args) + demo_datum.invoke_event(/event/demo_event, list("second_parameter"=1)) +/datum/unit_test/event_arguments/proc/do_stuff_with_args(string, number) + assert_eq(string, "abc") + assert_eq(number, 123) +/datum/unit_test/event_arguments/proc/do_something_with_named_args(first_parameter, second_parameter) + assert_eq(first_parameter, null) + assert_eq(second_parameter, 1) diff --git a/code/modules/unit_tests/lazy_events.dm b/code/modules/unit_tests/lazy_events.dm deleted file mode 100644 index e87b3f330d4..00000000000 --- a/code/modules/unit_tests/lazy_events.dm +++ /dev/null @@ -1,38 +0,0 @@ -/lazy_event/demo_event -/datum/unit_test - var/did_something = FALSE -/datum/unit_test/lazy_event_does_stuff/start() - var/datum/demo_datum = new - demo_datum.lazy_register_event(/lazy_event/demo_event, src, .proc/do_something) - demo_datum.lazy_invoke_event(/lazy_event/demo_event) - if(!did_something) - fail("lazy event did nothing") -/datum/unit_test/lazy_event_does_stuff/proc/do_something() - did_something = TRUE - -/datum/unit_test/lazy_event_cleanup/start() - var/datum/demo_datum = new - if(!isnull(demo_datum.registered_events)) - fail("registered_events is not null by default") - demo_datum.lazy_register_event(/lazy_event/demo_event, src, .proc/do_nothing) - assert_eq(demo_datum.registered_events.len, 1) - assert_eq(demo_datum.registered_events[/lazy_event/demo_event].len, 1) - demo_datum.lazy_unregister_event(/lazy_event/demo_event, src, .proc/do_nothing) - if(!isnull(demo_datum.registered_events)) - fail("registered_events is not null after removing the last handler") -/datum/unit_test/lazy_event_cleanup/proc/do_nothing() - -/datum/unit_test/lazy_event_arguments/start() - var/datum/demo_datum = new - demo_datum.lazy_register_event(/lazy_event/demo_event, src, .proc/do_stuff_with_args) - demo_datum.lazy_invoke_event(/lazy_event/demo_event, list("abc", 123)) - demo_datum.lazy_unregister_event(/lazy_event/demo_event, src, .proc/do_stuff_with_args) - - demo_datum.lazy_register_event(/lazy_event/demo_event, src, .proc/do_something_with_named_args) - demo_datum.lazy_invoke_event(/lazy_event/demo_event, list("second_parameter"=1)) -/datum/unit_test/lazy_event_arguments/proc/do_stuff_with_args(string, number) - assert_eq(string, "abc") - assert_eq(number, 123) -/datum/unit_test/lazy_event_arguments/proc/do_something_with_named_args(first_parameter, second_parameter) - assert_eq(first_parameter, null) - assert_eq(second_parameter, 1) diff --git a/code/modules/virus2/effect/stage_4.dm b/code/modules/virus2/effect/stage_4.dm index aa3ae3292b7..44fd83b719b 100644 --- a/code/modules/virus2/effect/stage_4.dm +++ b/code/modules/virus2/effect/stage_4.dm @@ -828,8 +828,8 @@ /datum/disease2/effect/emitter/activate(var/mob/living/mob) if (istype(mob) && !emitter) emitter = mob - emitter.lazy_register_event(/lazy_event/on_before_move, src, /datum/disease2/effect/emitter/proc/update_emitter_start) - emitter.lazy_register_event(/lazy_event/on_after_move, src, /datum/disease2/effect/emitter/proc/update_emitter_end) + emitter.register_event(/event/before_move, src, /datum/disease2/effect/emitter/proc/update_emitter_start) + emitter.register_event(/event/after_move, src, /datum/disease2/effect/emitter/proc/update_emitter_end) if(ishuman(mob)) var/mob/living/carbon/human/H = mob @@ -896,8 +896,8 @@ qdel(beam) beam = null if (emitter) - emitter.lazy_unregister_event(/lazy_event/on_before_move, src, /datum/disease2/effect/emitter/proc/update_emitter_start) - emitter.lazy_unregister_event(/lazy_event/on_after_move, src, /datum/disease2/effect/emitter/proc/update_emitter_end) + emitter.unregister_event(/event/before_move, src, /datum/disease2/effect/emitter/proc/update_emitter_start) + emitter.unregister_event(/event/after_move, src, /datum/disease2/effect/emitter/proc/update_emitter_end) emitter = null previous_dir = null previous_loc = null diff --git a/maps/randomvaults/sokoban.dm b/maps/randomvaults/sokoban.dm index a24edb3be9c..440889f0c52 100644 --- a/maps/randomvaults/sokoban.dm +++ b/maps/randomvaults/sokoban.dm @@ -114,12 +114,12 @@ for(var/obj/structure/closet/crate/sokoban/crate in objects) //check_cheat performs some additional checks first, and only then marks the user as a cheater - crate.lazy_register_event(/lazy_event/on_moved, crate, /obj/structure/closet/crate/sokoban/proc/check_cheat) + crate.register_event(/event/moved, crate, /obj/structure/closet/crate/sokoban/proc/check_cheat) crate.parent = src.parent for(var/obj/structure/sokoban_teleporter/teleporter in objects) //Teleporters are supposed to be unmovable, so if they're moved or deleted - it's guaranteed cheating - teleporter.lazy_register_event(/lazy_event/on_moved, parent, /datum/map_element/vault/sokoban/proc/on_cheat) + teleporter.register_event(/event/moved, parent, /datum/map_element/vault/sokoban/proc/on_cheat) if(parent) parent.teleporters.Add(teleporter) @@ -137,7 +137,7 @@ reward = track_atom(locate(/obj/item/clothing/suit/armor/laserproof/advanced) in objects) if(reward) reward_turf = get_turf(reward) - reward.lazy_register_event(/lazy_event/on_moved, parent, /datum/map_element/vault/sokoban/proc/mark_winner) + reward.register_event(/event/moved, parent, /datum/map_element/vault/sokoban/proc/mark_winner) /* This ladder stuff looks confusing, so here's an illustration!!! diff --git a/maps/randomvaults/spessmart.dm b/maps/randomvaults/spessmart.dm index bb97ec7f264..be0ce6ae317 100644 --- a/maps/randomvaults/spessmart.dm +++ b/maps/randomvaults/spessmart.dm @@ -266,7 +266,7 @@ var/list/clothing_prices = list() //gets filled on initialize() for(var/atom/movable/AM in (src.contents + E.contents)) if(!is_type_in_list(AM, protected_objects)) continue - AM.lazy_register_event(/lazy_event/on_destroyed, src, .proc/item_destroyed) + AM.register_event(/event/destroyed, src, .proc/item_destroyed) /area/vault/supermarket/shop/Exited(atom/movable/AM, atom/newloc) ..() @@ -739,7 +739,7 @@ var/list/clothing_prices = list() //gets filled on initialize() var/price = to_spawn[new_item_type] I.name = "[I.name] ($[price])" - I.lazy_register_event(/lazy_event/on_destroyed, S, /area/vault/supermarket/shop/proc/item_destroyed) //Only trigger alarm when an item for sale is destroyed + I.register_event(/event/destroyed, S, /area/vault/supermarket/shop/proc/item_destroyed) //Only trigger alarm when an item for sale is destroyed S.items[I] = price