From bd7a30272ae5812a26ed148f1f5d2b57cb8b38cb Mon Sep 17 00:00:00 2001 From: Guti <32563288+TheCaramelion@users.noreply.github.com> Date: Mon, 3 Jun 2024 16:36:19 +0200 Subject: [PATCH] Infected Room Update (#8477) --- code/game/area/Space Station 13 areas.dm | 4 +++ code/modules/virus2/disease2.dm | 2 +- maps/southern_cross/southern_cross_areas.dm | 6 +--- .../code/modules/event/infectedroom.dm | 32 ++++++++++++++++--- modular_chomp/code/modules/virus2/disease2.dm | 10 +++++- 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index b3efd5188d..e848d25c3d 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -2643,6 +2643,10 @@ var/list/the_station_areas = list ( name = "\improper Exploration Locker Room Three" icon_state = "hangarcontrol" +/area/engineering/gravgen + name = "Gravity Generator" + icon_state = "engineering" + //CHOMPedit KSC = overmap exploration shuttles /area/shuttle/stargazer diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm index 9fb5ddf8d6..a6c944b1ee 100644 --- a/code/modules/virus2/disease2.dm +++ b/code/modules/virus2/disease2.dm @@ -44,7 +44,7 @@ resistance += 10 if(GLOB.all_species.len) - affected_species = get_infectable_species() + affected_species = get_all_infectable_species() // CHOMPEdit /proc/get_infectable_species() var/list/meat = list() diff --git a/maps/southern_cross/southern_cross_areas.dm b/maps/southern_cross/southern_cross_areas.dm index 8adf1fe9b0..46b00fd529 100644 --- a/maps/southern_cross/southern_cross_areas.dm +++ b/maps/southern_cross/southern_cross_areas.dm @@ -2328,10 +2328,6 @@ End Chompstation Edit*/ name = "Gravity Generator Substation" icon_state = "engineering" -/area/engineering/gravgen - name = "Gravity Generator" - icon_state = "engineering" - /area/maintenance/engineering/gravgen name = "Gravity Generator Maintenance" @@ -2396,4 +2392,4 @@ End Chompstation Edit*/ /area/maintenance/zerobar name = "Abandoned Bar" - icon_state = "maint_bar" \ No newline at end of file + icon_state = "maint_bar" diff --git a/modular_chomp/code/modules/event/infectedroom.dm b/modular_chomp/code/modules/event/infectedroom.dm index 8e7362e297..1d1abd643b 100644 --- a/modular_chomp/code/modules/event/infectedroom.dm +++ b/modular_chomp/code/modules/event/infectedroom.dm @@ -8,8 +8,13 @@ /area/shuttle, /area/crew_quarters, /area/holodeck, + /area/construction, /area/engineering/engine_room, - /area/maintenance) + /area/engineering/engine_monitoring, + /area/engineering/gravgen, + /area/maintenance, + /area/medical, + /area/rnd/test_area) var/commondisease = list( "Friday Fever" = list( @@ -72,7 +77,7 @@ var/list/turfs = list() for(var/turf/simulated/floor/F in A) - if(turf_clear(F)) + if(!F.check_density()) turfs += F if(turfs.len == 0) log_debug("infectedroom event: Rejected [A] because it has no clear turfs.") @@ -93,7 +98,24 @@ command_announcement.Announce("Confirmed outbreak of level 7 biohazard aboard \the [location_name()]. All personnel must contain the outbreak.", "Infectious Contaminant in [target_area.name]", new_sound = 'sound/AI/outbreak7.ogg') /datum/event/infectedroom/start() - var/obj/effect/decal/cleanable/mucus/mapped/M + var/decal + for(var/i in 1 to infected_tiles) - M = new(pick_n_take(target_turfs)) - M.virus2[1] = virus.getcopy() + decal = rand(1, 5) + if(decal == 1) + var/obj/effect/decal/cleanable/blood/C + C = new(pick_n_take(target_turfs)) + C.basecolor = get_random_colour(rand(0, 1)) + C.update_icon() + C.virus2 |= new /datum/disease2/disease + C.virus2[1] = virus.getcopy() + else if(decal == 2) + var/obj/effect/decal/cleanable/vomit/V + V = new(pick_n_take(target_turfs)) + V.virus2 |= new /datum/disease2/disease + V.virus2[1] = virus.getcopy() + else + var/obj/effect/decal/cleanable/mucus/M + M = new(pick_n_take(target_turfs)) + M.virus2 |= new /datum/disease2/disease + M.virus2[1] = virus.getcopy() diff --git a/modular_chomp/code/modules/virus2/disease2.dm b/modular_chomp/code/modules/virus2/disease2.dm index 0f21c5097a..6a666acba4 100644 --- a/modular_chomp/code/modules/virus2/disease2.dm +++ b/modular_chomp/code/modules/virus2/disease2.dm @@ -52,4 +52,12 @@ resistance += 10 if(GLOB.all_species.len) - affected_species = get_infectable_species() + affected_species = get_all_infectable_species() + +/proc/get_all_infectable_species() + var/list/meat = list() + for (var/specie in GLOB.all_species) + var/datum/species/S = GLOB.all_species[specie] + if(!S.get_virus_immune()) + meat += S + return meat