From 5570fc2977cfcbca81cc997cb887ccdc6b6550bc Mon Sep 17 00:00:00 2001 From: Henri215 <77684085+Henri215@users.noreply.github.com> Date: Tue, 28 Mar 2023 17:10:33 -0300 Subject: [PATCH] Adds the camera failure event (#20568) * camera failure event * Increasing the amount * No disabling cameras on protected areas * scales up with number of engineers * Update code/modules/events/camerafailure.dm Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com> * conflict fix * better file name * better name part 2 * farie review * Apply suggestions from code review Co-authored-by: Farie82 * Update code/modules/events/camera_failure.dm Co-authored-by: Farie82 --------- Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com> Co-authored-by: Farie82 --- code/modules/events/camera_failure.dm | 12 ++++++++++++ code/modules/events/event_container.dm | 3 ++- paradise.dme | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 code/modules/events/camera_failure.dm diff --git a/code/modules/events/camera_failure.dm b/code/modules/events/camera_failure.dm new file mode 100644 index 00000000000..458e0aaad46 --- /dev/null +++ b/code/modules/events/camera_failure.dm @@ -0,0 +1,12 @@ +/datum/event/camera_failure/start() + var/failed_cameras + var/failure_limit = rand(1, 3) + for(var/obj/machinery/camera/C in shuffle(GLOB.cameranet.cameras)) + if(!("SS13" in C.network) || C.start_active) // We dont want protected cameras to be affected + continue + if(!C.status) + continue + C.toggle_cam(null, FALSE) + failed_cameras++ + if(failed_cameras >= failure_limit) + return diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index b089714e940..d6d5d78f197 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -140,8 +140,9 @@ GLOBAL_LIST_EMPTY(event_last_fired) new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Sentience", /datum/event/sentience, 50), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_GARDENER = 50)), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Koi School", /datum/event/carp_migration/koi, 80), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Failure", /datum/event/camera_failure, 100, list(ASSIGNMENT_ENGINEER = 10), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Fake Virus", /datum/event/fake_virus, 50), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Disease Outbreak", /datum/event/disease_outbreak, 50, list(ASSIGNMENT_MEDICAL = 25), TRUE) + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Disease Outbreak", /datum/event/disease_outbreak, 50, list(ASSIGNMENT_MEDICAL = 25), TRUE)) ) /datum/event_container/moderate diff --git a/paradise.dme b/paradise.dme index efdb38dcc4c..c7f812030de 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1602,6 +1602,7 @@ #include "code\modules\events\apc_short.dm" #include "code\modules\events\blob_spawn.dm" #include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\camera_failure.dm" #include "code\modules\events\carp_migration.dm" #include "code\modules\events\communications_blackout.dm" #include "code\modules\events\disease_outbreak.dm"