From 3536cbd79520330ad27a7ccb83987c24e7809e9e Mon Sep 17 00:00:00 2001 From: Silverplate <118299273+silverplatedelta@users.noreply.github.com> Date: Fri, 25 Aug 2023 11:01:03 -0400 Subject: [PATCH] HOTFIX: 2 SM event runtimes, 2 instances of unintended behavior (#22074) * Fixes things * SM now qualfies as started when done so by gas * FIxes CI issue * Reworks event A-2 to fix a runtime. --- .../modules/power/engines/supermatter/supermatter.dm | 12 +++++++----- .../power/engines/supermatter/supermatter_event.dm | 8 ++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/code/modules/power/engines/supermatter/supermatter.dm b/code/modules/power/engines/supermatter/supermatter.dm index a63d670cfec..aeb63f256c5 100644 --- a/code/modules/power/engines/supermatter/supermatter.dm +++ b/code/modules/power/engines/supermatter/supermatter.dm @@ -218,7 +218,7 @@ ///amount of EER to ADD var/power_additive = 0 /// A list of all previous events - var/list/last_events + var/list/last_events = list() /// Time of next event var/next_event_time /// Run S-Class event? So we can only run one S-class event per round per crystal @@ -420,7 +420,11 @@ return try_events() - + if(power > 100) + if(!has_been_powered) + investigate_log("has been powered for the first time.", "supermatter") + message_admins("[src] has been powered for the first time [ADMIN_JMP(src)].") + has_been_powered = TRUE //We vary volume by power, and handle OH FUCK FUSION IN COOLING LOOP noises. if(power) soundloop.volume = clamp((50 + (power / 50)), 50, 100) @@ -587,7 +591,7 @@ //Transitions between one function and another, one we use for the fast inital startup, the other is used to prevent errors with fusion temperatures. //Use of the second function improves the power gain imparted by using co2 if(power_changes) - power = max(power - min(((power / 500) ** 3) * powerloss_inhibitor, power * 0.83 * powerloss_inhibitor), 0) + power = max((power - min(((power / 500) ** 3) * powerloss_inhibitor, power * 0.83 * powerloss_inhibitor) + power_additive), 0) //After this point power is lowered //This wraps around to the begining of the function //Handle high power zaps/anomaly generation @@ -671,7 +675,6 @@ //Boom (Mind blown) if(damage > explosion_point) countdown() - power += power_additive return 1 /obj/machinery/atmospherics/supermatter_crystal/bullet_act(obj/item/projectile/Proj) @@ -1214,7 +1217,6 @@ return event.start_event() - #undef HALLUCINATION_RANGE #undef GRAVITATIONAL_ANOMALY #undef FLUX_ANOMALY diff --git a/code/modules/power/engines/supermatter/supermatter_event.dm b/code/modules/power/engines/supermatter/supermatter_event.dm index 4c5f966bcae..f82b73d4f8c 100644 --- a/code/modules/power/engines/supermatter/supermatter_event.dm +++ b/code/modules/power/engines/supermatter/supermatter_event.dm @@ -155,7 +155,7 @@ name = "A-1" /datum/supermatter_event/alpha_tier/apc_short/on_start() - var/area/current_area = get_area(src) + var/area/current_area = get_area(supermatter) var/obj/machinery/power/apc/A = current_area.get_apc() A.apc_short() @@ -163,9 +163,9 @@ name = "A-2" /datum/supermatter_event/alpha_tier/air_siphon/on_start() - var/area/current_area = get_area(src) - var/obj/machinery/alarm/engine/A = current_area.master_air_alarm - A.apply_mode(AALARM_MODE_SCRUBBING) + var/area/current_area = get_area(supermatter) + for(var/obj/machinery/alarm/A in current_area) + A.apply_mode(AALARM_MODE_OFF) /datum/supermatter_event/alpha_tier/gas_multiplier name = "A-3"