From 52679769c98bd4090670ce74ade841e6d6c13ed2 Mon Sep 17 00:00:00 2001 From: private-tristan Date: Fri, 29 Dec 2023 14:31:37 -0500 Subject: [PATCH 1/5] still need to get proc working --- code/__DEFINES/typecheck/xenos.dm | 4 ++++ code/modules/cm_aliens/structures/egg.dm | 10 ++++++++++ code/modules/cm_aliens/structures/tunnel.dm | 16 +++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/typecheck/xenos.dm b/code/__DEFINES/typecheck/xenos.dm index 34b70ac92f45..884b7d5a22e7 100644 --- a/code/__DEFINES/typecheck/xenos.dm +++ b/code/__DEFINES/typecheck/xenos.dm @@ -50,6 +50,10 @@ focused_atom.color = hive.color focused_atom.name = "[lowertext(hive.prefix)][focused_atom.name]" +// need this to set hive var for burrower tunnels +/proc/set_hive_status(atom/focused_atom, hivenumber) + var/datum/hive/hive = glob.hive_datum[hivenumber] + /proc/get_xeno_stun_duration(mob/stun_mob, duration) if(iscarbonsizexeno(stun_mob)) return duration * XVX_STUN_LENGTHMULT diff --git a/code/modules/cm_aliens/structures/egg.dm b/code/modules/cm_aliens/structures/egg.dm index 5b0654d05b55..008beacf577a 100644 --- a/code/modules/cm_aliens/structures/egg.dm +++ b/code/modules/cm_aliens/structures/egg.dm @@ -22,11 +22,21 @@ create_egg_triggers() if (hive) hivenumber = hive + if(hivenumber == XENO_HIVE_NORMAL) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) set_hive_data(src, hivenumber) update_icon() addtimer(CALLBACK(src, PROC_REF(Grow)), rand(EGG_MIN_GROWTH_TIME, EGG_MAX_GROWTH_TIME)) +/obj/effect/alien/egg/proc/forsaken_handling() + SIGNAL_HANDLER + if(is_ground_level(z)) + hivenumber = XENO_HIVE_FORSAKEN + set_hive_data(src, XENO_HIVE_FORSAKEN) + + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + /obj/effect/alien/egg/Destroy() . = ..() for(var/obj/effect/egg_trigger/trigger as anything in egg_triggers) diff --git a/code/modules/cm_aliens/structures/tunnel.dm b/code/modules/cm_aliens/structures/tunnel.dm index 1f0f98c14361..a39eb4fb164b 100644 --- a/code/modules/cm_aliens/structures/tunnel.dm +++ b/code/modules/cm_aliens/structures/tunnel.dm @@ -39,12 +39,26 @@ hive.tunnels += src + if(hivenumber == XENO_HIVE_NORMAL) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) + + hive.tunnels += src + if(!hive) hive = GLOB.hive_datum[hivenumber] hive.tunnels += src - var/obj/effect/alien/resin/trap/resin_trap = locate() in L +/obj/structure/tunnel/proc/forsaken_handling() + SIGNAL_HANDLER + if(is_ground_level(z)) + hivenumber = XENO_HIVE_FORSAKEN + set_hive_data(src, XENO_HIVE_FORSAKEN) + set_hive_status(src, XENO_HIVE_FORSAKEN) + + UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + + var/obj/effect/alien/resin/trap/resin_trap = locate() in loc if(resin_trap) qdel(resin_trap) From 1e8665e107c7bc9ff3f6e8df544f529f597f4b64 Mon Sep 17 00:00:00 2001 From: private-tristan Date: Sat, 6 Jan 2024 11:35:01 -0500 Subject: [PATCH 2/5] indentation --- code/modules/cm_aliens/structures/tunnel.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cm_aliens/structures/tunnel.dm b/code/modules/cm_aliens/structures/tunnel.dm index a39eb4fb164b..b46eb6f25396 100644 --- a/code/modules/cm_aliens/structures/tunnel.dm +++ b/code/modules/cm_aliens/structures/tunnel.dm @@ -54,7 +54,7 @@ if(is_ground_level(z)) hivenumber = XENO_HIVE_FORSAKEN set_hive_data(src, XENO_HIVE_FORSAKEN) - set_hive_status(src, XENO_HIVE_FORSAKEN) + set_hive_status(src, XENO_HIVE_FORSAKEN) UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) From f539982e7a43fa659d622ec825f6964f5fe4d381 Mon Sep 17 00:00:00 2001 From: private-tristan Date: Sat, 6 Jan 2024 12:47:21 -0500 Subject: [PATCH 3/5] Fully Functional --- code/__DEFINES/typecheck/xenos.dm | 4 ---- code/modules/cm_aliens/structures/tunnel.dm | 12 ++++++------ 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/typecheck/xenos.dm b/code/__DEFINES/typecheck/xenos.dm index 884b7d5a22e7..34b70ac92f45 100644 --- a/code/__DEFINES/typecheck/xenos.dm +++ b/code/__DEFINES/typecheck/xenos.dm @@ -50,10 +50,6 @@ focused_atom.color = hive.color focused_atom.name = "[lowertext(hive.prefix)][focused_atom.name]" -// need this to set hive var for burrower tunnels -/proc/set_hive_status(atom/focused_atom, hivenumber) - var/datum/hive/hive = glob.hive_datum[hivenumber] - /proc/get_xeno_stun_duration(mob/stun_mob, duration) if(iscarbonsizexeno(stun_mob)) return duration * XVX_STUN_LENGTHMULT diff --git a/code/modules/cm_aliens/structures/tunnel.dm b/code/modules/cm_aliens/structures/tunnel.dm index b46eb6f25396..d2989f75032e 100644 --- a/code/modules/cm_aliens/structures/tunnel.dm +++ b/code/modules/cm_aliens/structures/tunnel.dm @@ -39,22 +39,22 @@ hive.tunnels += src - if(hivenumber == XENO_HIVE_NORMAL) - RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) - - hive.tunnels += src - if(!hive) hive = GLOB.hive_datum[hivenumber] hive.tunnels += src + if(hivenumber == XENO_HIVE_NORMAL) + RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) + /obj/structure/tunnel/proc/forsaken_handling() SIGNAL_HANDLER if(is_ground_level(z)) + hive.tunnels -= src hivenumber = XENO_HIVE_FORSAKEN set_hive_data(src, XENO_HIVE_FORSAKEN) - set_hive_status(src, XENO_HIVE_FORSAKEN) + hive = GLOB.hive_datum[XENO_HIVE_FORSAKEN] + hive.tunnels += src UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) From 46cf3e75d3bb6f50930acd53935a41eb50edc65b Mon Sep 17 00:00:00 2001 From: private-tristan Date: Sat, 6 Jan 2024 13:03:22 -0500 Subject: [PATCH 4/5] Fully Functional for real --- code/modules/cm_aliens/structures/tunnel.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/cm_aliens/structures/tunnel.dm b/code/modules/cm_aliens/structures/tunnel.dm index d2989f75032e..c4ebbc32e1fc 100644 --- a/code/modules/cm_aliens/structures/tunnel.dm +++ b/code/modules/cm_aliens/structures/tunnel.dm @@ -44,6 +44,10 @@ hive.tunnels += src + var/obj/effect/alien/resin/trap/resin_trap = locate() in L + if(resin_trap) + qdel(resin_trap) + if(hivenumber == XENO_HIVE_NORMAL) RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) @@ -58,10 +62,6 @@ UnregisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) - var/obj/effect/alien/resin/trap/resin_trap = locate() in loc - if(resin_trap) - qdel(resin_trap) - SSminimaps.add_marker(src, z, get_minimap_flag_for_faction(hivenumber), "xenotunnel") /obj/structure/tunnel/Destroy() From 8471c6b4245ac03c635131e7bd64e4169004f4f4 Mon Sep 17 00:00:00 2001 From: private-tristan <54422837+private-tristan@users.noreply.github.com> Date: Sat, 6 Jan 2024 15:48:22 -0500 Subject: [PATCH 5/5] Forgot to get rid of this when splitting the PR --- code/modules/cm_aliens/structures/egg.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/cm_aliens/structures/egg.dm b/code/modules/cm_aliens/structures/egg.dm index 6da02cb73a45..889359bb7eef 100644 --- a/code/modules/cm_aliens/structures/egg.dm +++ b/code/modules/cm_aliens/structures/egg.dm @@ -22,8 +22,6 @@ create_egg_triggers() if (hive) hivenumber = hive - if(hivenumber == XENO_HIVE_NORMAL) - RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling)) if(hivenumber == XENO_HIVE_NORMAL) RegisterSignal(SSdcs, COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING, PROC_REF(forsaken_handling))