Disease outbreak incident display (#3148)

## About The Pull Request

Adds a disease outbreak counter for medbay.


![image](https://github.com/user-attachments/assets/4dd16aba-5752-40f1-9d37-5dd3d9b54b37)

## Why It's Good For The Game

More amusing counters the better. More useful in medbay than the delam
counter.

## Changelog

🆑 LT3
add: Added disease outbreak incident display
/🆑
This commit is contained in:
LT3
2025-03-08 01:28:58 +00:00
committed by GitHub
parent 32d7e9f129
commit a69b931781
17 changed files with 1490 additions and 86 deletions
@@ -67,6 +67,14 @@ required_map = "MetaStation.dmm"
coordinates = [163, 155, 1]
trait_name = "Station"
# Metastation Medbay
[templates.metastation_medbay]
map_files = ["metastation_medbay.dmm"]
directory = "_maps/bubber/automapper/templates/MetaStation/"
required_map = "MetaStation.dmm"
coordinates = [86, 105, 1]
trait_name = "Station"
# DELTASTATION MAP EDITS
# Deltastation Arrivals
[templates.deltastation_arrivals]
@@ -108,6 +116,14 @@ required_map = "DeltaStation2.dmm"
coordinates = [84, 109, 1]
trait_name = "Station"
# Deltastation Medbay
[templates.deltastation_medbay]
map_files = ["deltastation_medbay.dmm"]
directory = "_maps/bubber/automapper/templates/Deltastation/"
required_map = "DeltaStation2.dmm"
coordinates = [157, 77, 1]
trait_name = "Station"
# ICEBOX MAP EDITS
# Icebox Arrivals
[templates.icebox_arrivals]
@@ -157,6 +173,14 @@ required_map = "IceBoxStation.dmm"
coordinates = [114, 65, 3]
trait_name = "Station"
# Icebox Medbay
[templates.icebox_medbay]
map_files = ["iceboxstation_medbay.dmm"]
directory = "_maps/bubber/automapper/templates/IceBoxStation/"
required_map = "IceBoxStation.dmm"
coordinates = [141, 108, 3]
trait_name = "Station"
# Icecats Camp Lower Level
[templates.icebox_icecats_lower]
map_files = ["icemoon_underground_icewalker_lower.dmm"]
@@ -214,6 +238,14 @@ required_map = "tramstation.dmm"
coordinates = [118, 75, 1]
trait_name = "Station"
# Tramstation Medbay
[templates.tramstation_medbay]
map_files = ["tramstation_medbay.dmm"]
directory = "_maps/bubber/automapper/templates/tramstation/"
required_map = "tramstation.dmm"
coordinates = [118, 101, 2]
trait_name = "Station"
# BIRDSHOT MAP EDITS
# Birdshot Arrivals
[templates.birdshot_arrivals]
@@ -0,0 +1,270 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"m" = (
/obj/structure/closet/secure_closet/personal/patient,
/obj/effect/turf_decal/bot,
/obj/machinery/light/small/directional/north,
/obj/effect/landmark/start/hangover/closet,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron,
/area/station/medical/cryo)
"v" = (
/obj/machinery/incident_display/disease,
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"x" = (
/obj/structure/bed/medical/emergency,
/obj/effect/turf_decal/trimline/blue/filled/line,
/obj/machinery/light/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"D" = (
/turf/closed/wall,
/area/station/medical/storage)
"F" = (
/obj/effect/turf_decal/bot,
/obj/machinery/vending/medical,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
},
/turf/open/floor/iron,
/area/station/medical/storage)
"G" = (
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"M" = (
/obj/structure/bed/medical/emergency,
/obj/effect/turf_decal/trimline/blue/filled/line,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"P" = (
/obj/machinery/incident_display/disease,
/turf/closed/wall,
/area/station/medical/storage)
"S" = (
/obj/machinery/incident_display/disease/directional/north,
/turf/template_noop,
/area/template_noop)
"W" = (
/obj/item/radio/intercom/directional/east,
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(3,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(4,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
F
P
"}
(5,1,1) = {"
x
v
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
W
a
D
"}
(6,1,1) = {"
M
G
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(7,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(8,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
S
a
a
a
a
a
a
a
a
a
a
"}
(9,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
m
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,392 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"c" = (
/obj/structure/table/reinforced,
/obj/item/screwdriver{
pixel_y = 10
},
/obj/item/radio/off,
/obj/machinery/airalarm/directional/east,
/obj/effect/turf_decal/tile/red/full,
/turf/open/floor/iron/dark/smooth_large,
/area/station/security/checkpoint/medical)
"g" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
},
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"h" = (
/obj/machinery/light/small/directional/south,
/turf/template_noop,
/area/template_noop)
"l" = (
/turf/open/openspace,
/area/station/medical/medbay/lobby)
"p" = (
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"D" = (
/turf/closed/wall/r_wall,
/area/station/medical/treatment_center)
"E" = (
/obj/structure/sign/departments/chemistry/pharmacy/directional/west,
/turf/open/openspace,
/area/station/medical/medbay/lobby)
"G" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"J" = (
/obj/machinery/incident_display/disease/directional/south,
/turf/template_noop,
/area/template_noop)
"K" = (
/obj/machinery/incident_display/disease,
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"S" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "medsecprivacy";
name = "Privacy Shutters"
},
/turf/template_noop,
/area/template_noop)
"T" = (
/obj/structure/table/reinforced,
/obj/item/book/manual/wiki/security_space_law{
pixel_x = 3;
pixel_y = 4
},
/obj/structure/cable,
/obj/effect/turf_decal/tile/red/full,
/obj/machinery/camera/directional/north{
c_tag = "Security Post - Medbay";
network = list("ss13","medbay")
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/security/checkpoint/medical)
"U" = (
/obj/machinery/incident_display/disease,
/turf/template_noop,
/area/template_noop)
"V" = (
/obj/machinery/door/firedoor/border_only{
dir = 8
},
/obj/effect/turf_decal/tile/dark/half/contrasted{
dir = 8
},
/obj/effect/turf_decal/tile/blue,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
J
D
"}
(2,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
h
D
"}
(3,1,1) = {"
a
a
a
a
a
E
K
G
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(4,1,1) = {"
a
a
a
a
a
l
p
g
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(5,1,1) = {"
a
a
a
a
a
V
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(6,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(7,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(8,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(9,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(10,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(11,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(12,1,1) = {"
a
U
T
a
a
a
S
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(13,1,1) = {"
a
a
c
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,247 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"i" = (
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"q" = (
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
/turf/template_noop,
/area/template_noop)
"u" = (
/obj/structure/table,
/obj/item/stack/medical/gauze,
/obj/item/stack/medical/mesh,
/obj/item/stack/medical/suture,
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 1
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"w" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/medical/medbay/lobby)
"z" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"O" = (
/obj/machinery/incident_display/disease/directional/north,
/turf/template_noop,
/area/template_noop)
"R" = (
/obj/machinery/incident_display/disease,
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"U" = (
/obj/machinery/door/poddoor/preopen{
id = "medsecprivacy";
name = "Privacy Shutter"
},
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
a
a
a
a
a
a
O
"}
(2,1,1) = {"
a
a
a
a
a
a
a
a
"}
(3,1,1) = {"
a
a
a
a
a
a
a
a
"}
(4,1,1) = {"
a
a
a
a
a
a
a
a
"}
(5,1,1) = {"
a
a
a
a
a
a
a
a
"}
(6,1,1) = {"
a
a
a
a
a
a
a
a
"}
(7,1,1) = {"
a
a
U
a
a
a
a
a
"}
(8,1,1) = {"
a
a
a
a
a
a
a
a
"}
(9,1,1) = {"
a
a
a
a
a
a
a
a
"}
(10,1,1) = {"
a
a
a
a
a
a
a
a
"}
(11,1,1) = {"
a
a
a
a
a
a
a
a
"}
(12,1,1) = {"
z
a
a
a
a
a
a
a
"}
(13,1,1) = {"
i
q
a
a
a
a
a
a
"}
(14,1,1) = {"
a
a
a
a
a
a
a
a
"}
(15,1,1) = {"
a
a
a
a
a
a
a
a
"}
(16,1,1) = {"
a
a
a
a
a
a
a
a
"}
(17,1,1) = {"
a
a
a
a
a
a
a
a
"}
(18,1,1) = {"
R
a
a
a
a
a
a
a
"}
(19,1,1) = {"
i
u
a
a
a
a
a
a
"}
(20,1,1) = {"
a
w
a
a
a
a
a
a
"}
@@ -0,0 +1,174 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"o" = (
/obj/machinery/incident_display/disease/directional/north,
/turf/template_noop,
/area/template_noop)
"w" = (
/obj/machinery/incident_display/disease,
/turf/template_noop,
/area/template_noop)
"C" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 8
},
/obj/effect/turf_decal/trimline/neutral/filled/warning{
dir = 8
},
/obj/structure/railing{
dir = 4
},
/obj/effect/spawner/random/vending/snackvend{
pixel_x = -5
},
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron,
/area/station/hallway/primary/tram/center)
"S" = (
/obj/structure/table/glass,
/obj/item/stack/medical/gauze,
/obj/item/stack/medical/suture,
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 9
},
/obj/machinery/status_display/evac/directional/north,
/obj/machinery/light/directional/west,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"V" = (
/obj/structure/table/glass,
/obj/item/storage/box/beakers,
/obj/item/storage/box/bodybags{
pixel_x = 5;
pixel_y = 5
},
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 5
},
/obj/item/radio/intercom/directional/east,
/obj/machinery/light/directional/east,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
(1,1,1) = {"
C
a
o
a
a
a
a
a
"}
(2,1,1) = {"
a
a
a
a
a
a
a
a
"}
(3,1,1) = {"
a
a
a
a
a
a
a
a
"}
(4,1,1) = {"
a
a
a
a
a
a
a
S
"}
(5,1,1) = {"
a
a
a
a
a
a
a
a
"}
(6,1,1) = {"
a
a
a
a
a
a
a
a
"}
(7,1,1) = {"
a
a
a
a
a
a
a
a
"}
(8,1,1) = {"
a
a
a
a
a
a
a
a
"}
(9,1,1) = {"
a
a
a
a
a
a
a
a
"}
(10,1,1) = {"
a
a
a
a
a
a
a
a
"}
(11,1,1) = {"
a
a
a
a
a
a
a
a
"}
(12,1,1) = {"
a
a
a
a
a
a
w
V
"}
+22 -4
View File
@@ -6738,6 +6738,14 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
"aHb" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
"aHd" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
@@ -20978,6 +20986,7 @@
c_tag = "Medbay Storage";
network = list("ss13","medbay")
},
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"bEi" = (
@@ -33263,6 +33272,7 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron,
/area/station/command/bridge)
"cQt" = (
@@ -43397,6 +43407,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
},
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"jij" = (
@@ -48578,8 +48589,15 @@
/turf/open/floor/engine,
/area/station/science/explab)
"msc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 8
},
/obj/structure/sign/warning/no_smoking/circle/directional/east,
/turf/closed/wall,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"msK" = (
/obj/machinery/camera{
@@ -104464,7 +104482,7 @@ bai
aJC
bcr
iKz
bet
aHb
bfH
yiT
jsN
@@ -104472,7 +104490,7 @@ pnL
bln
hHU
boj
msc
bof
jib
bsx
jsH
@@ -104987,7 +105005,7 @@ sjV
bmR
pkL
bES
uGy
msc
pnW
jsH
odp
+14 -6
View File
@@ -18004,7 +18004,6 @@
/obj/structure/table,
/obj/item/clipboard,
/obj/item/storage/medkit/regular,
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
@@ -27596,6 +27595,7 @@
},
/obj/item/crowbar/red,
/obj/item/clothing/mask/gas,
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"iWm" = (
@@ -27848,6 +27848,7 @@
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 8
},
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/lobby)
"jas" = (
@@ -37657,6 +37658,8 @@
dir = 8
},
/obj/item/storage/box/bandages,
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/lobby)
"mlB" = (
@@ -47784,6 +47787,7 @@
},
/obj/structure/curtain,
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/dark,
/area/station/medical/exam_room)
"pJs" = (
@@ -48811,9 +48815,13 @@
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
"qaR" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall,
/area/station/medical/paramedic)
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/obj/effect/turf_decal/bot,
/obj/machinery/portable_atmospherics/canister/anesthetic_mix,
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/central)
"qaZ" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{
dir = 1
@@ -94031,7 +94039,7 @@ bXe
huR
bXe
gsy
srg
qaR
uZT
gKd
pMj
@@ -96857,7 +96865,7 @@ dkh
oiq
giH
uVJ
qaR
xvW
jam
fgy
qht
+16 -41
View File
@@ -7132,12 +7132,13 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 8
},
/obj/structure/sign/clock/directional/west,
/obj/machinery/light_switch/directional/west{
pixel_y = 15
},
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/bot,
/obj/machinery/requests_console/auto_name/directional/west,
/obj/effect/mapping_helpers/requests_console/assistance,
/turf/open/floor/iron/white/smooth_edge{
dir = 4
},
@@ -12465,6 +12466,7 @@
},
/obj/effect/turf_decal/tile/blue/half,
/obj/effect/turf_decal/bot,
/obj/machinery/vending/wallmed/directional/south,
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/bridge)
"dIg" = (
@@ -13325,7 +13327,6 @@
/turf/open/floor/carpet/blue,
/area/station/command/heads_quarters/cmo)
"dTL" = (
/obj/machinery/status_display/evac/directional/west,
/obj/machinery/vending/access/command,
/obj/item/toy/figure/wizard{
pixel_y = 17
@@ -21885,10 +21886,7 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
},
/obj/structure/sign/logo{
icon_state = "nanotrasen_sign4";
pixel_y = 32
},
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/white/smooth_edge,
/area/station/medical/medbay/lobby)
"gtG" = (
@@ -25356,13 +25354,13 @@
/turf/open/floor/circuit,
/area/station/command/teleporter)
"htb" = (
/obj/machinery/status_display/evac/directional/south,
/obj/structure/rack,
/obj/effect/turf_decal/trimline/blue/filled/line,
/obj/effect/turf_decal/box/white{
color = "#52B4E9"
},
/obj/machinery/light/cold/directional/south,
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/white/smooth_edge{
dir = 1
},
@@ -27690,13 +27688,6 @@
dir = 8
},
/area/station/hallway/primary/central)
"hZK" = (
/obj/effect/turf_decal/trimline/blue/filled/warning{
dir = 5
},
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"hZN" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment{
@@ -31488,10 +31479,10 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
},
/obj/structure/sign/warning/no_smoking/directional/east,
/obj/effect/turf_decal/box,
/obj/machinery/recharge_station,
/obj/machinery/light/cold/directional/east,
/obj/machinery/newscaster/directional/east,
/turf/open/floor/iron/white/smooth_edge{
dir = 8
},
@@ -35744,9 +35735,6 @@
/turf/open/floor/iron/kitchen,
/area/station/service/kitchen/abandoned)
"kjS" = (
/obj/structure/sign/logo{
pixel_y = 32
},
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 9
},
@@ -45676,10 +45664,11 @@
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/newscaster/directional/south,
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/requests_console/directional/south,
/obj/effect/mapping_helpers/requests_console/assistance,
/turf/open/floor/iron/white/smooth_edge{
dir = 1
},
@@ -50354,7 +50343,6 @@
/obj/structure/sign/nanotrasen{
pixel_x = 32
},
/obj/machinery/requests_console/auto_name/directional/north,
/turf/open/floor/iron/freezer,
/area/station/medical/surgery)
"ofo" = (
@@ -53043,10 +53031,10 @@
"oSL" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/table/reinforced/rglass,
/obj/machinery/vending/wallmed/directional/south,
/obj/item/storage/medkit/regular,
/obj/effect/turf_decal/tile/blue/anticorner,
/obj/machinery/light/cold/directional/south,
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/bridge)
"oSS" = (
@@ -53801,11 +53789,6 @@
dir = 1
},
/obj/structure/table/glass,
/obj/machinery/requests_console/directional/north{
department = "Medbay";
name = "Medbay Requests Console"
},
/obj/effect/mapping_helpers/requests_console/assistance,
/obj/item/storage/box/gloves{
pixel_x = 4;
pixel_y = 6
@@ -53817,6 +53800,7 @@
/obj/item/storage/box/rxglasses{
pixel_y = 1
},
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/white/smooth_edge,
/area/station/medical/medbay/central)
"pcq" = (
@@ -61778,6 +61762,7 @@
/obj/effect/turf_decal/tile/blue/half{
dir = 8
},
/obj/machinery/status_display/evac/directional/east,
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/bridge)
"rjI" = (
@@ -63372,7 +63357,6 @@
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 9
},
/obj/structure/sign/poster/official/periodic_table/directional/north,
/obj/machinery/light/cold/directional/north,
/obj/structure/table/reinforced/rglass,
/obj/machinery/reagentgrinder{
@@ -69597,12 +69581,9 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
},
/obj/structure/sign/logo{
icon_state = "nanotrasen_sign2";
pixel_y = 32
},
/obj/effect/landmark/start/assistant,
/obj/structure/chair/sofa/bench/right,
/obj/structure/sign/warning/no_smoking/directional/north,
/turf/open/floor/iron/white/smooth_edge,
/area/station/medical/medbay/lobby)
"tsi" = (
@@ -71947,15 +71928,12 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
},
/obj/structure/sign/logo{
icon_state = "nanotrasen_sign5";
pixel_y = 32
},
/obj/machinery/camera/directional/north{
c_tag = "Medbay - Lobby";
name = "medbay camera";
network = list("ss13","medbay")
},
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/white/smooth_edge,
/area/station/medical/medbay/lobby)
"uam" = (
@@ -76420,7 +76398,7 @@
/obj/item/clothing/gloves/latex,
/obj/item/clothing/suit/apron/surgical,
/obj/item/reagent_containers/spray/cleaner,
/obj/machinery/newscaster/directional/north,
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/freezer,
/area/station/medical/surgery)
"vlh" = (
@@ -83721,12 +83699,9 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
},
/obj/structure/sign/logo{
icon_state = "nanotrasen_sign3";
pixel_y = 32
},
/obj/item/storage/medkit/emergency,
/obj/machinery/light/cold/directional/north,
/obj/machinery/status_display/evac/directional/north,
/turf/open/floor/iron/white/smooth_edge,
/area/station/medical/medbay/lobby)
"xnk" = (
@@ -119131,7 +119106,7 @@ ccc
cnC
ulA
cnC
hZK
dZv
vSC
arF
tOQ
+18 -9
View File
@@ -6327,6 +6327,8 @@
dir = 4
},
/obj/item/kirbyplants/random,
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"cin" = (
@@ -24891,6 +24893,7 @@
/obj/effect/turf_decal/tile/blue/half{
dir = 8
},
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/dark,
/area/station/medical/medbay/central)
"iFD" = (
@@ -34843,11 +34846,10 @@
/obj/structure/table,
/obj/item/stack/medical/mesh,
/obj/item/stack/medical/gauze,
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/south,
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 1
},
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"lWF" = (
@@ -34878,6 +34880,10 @@
},
/turf/open/floor/plating,
/area/station/science/robotics/mechbay)
"lWV" = (
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"lWZ" = (
/obj/structure/toilet,
/obj/machinery/light/small/directional/north,
@@ -35061,7 +35067,7 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 1
},
/obj/machinery/incident_display/delam/directional/north,
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"lZZ" = (
@@ -46289,9 +46295,12 @@
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
"pQb" = (
/obj/machinery/incident_display/delam/directional/north,
/turf/closed/wall,
/area/station/medical/medbay/lobby)
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"pQc" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -161052,7 +161061,7 @@ cVB
uGL
cpX
eyw
pQb
eyw
uCO
bIP
eyw
@@ -177226,7 +177235,7 @@ cFv
cFv
ofe
pbY
gRD
lWV
ofe
rAq
rAq
@@ -177239,7 +177248,7 @@ mrH
mrH
ofe
pbY
uVv
pQb
nOL
lcS
ydy
+22 -23
View File
@@ -27889,7 +27889,6 @@
dir = 9
},
/obj/structure/hedge,
/obj/machinery/status_display/evac/directional/east,
/obj/machinery/firealarm/directional/south,
/obj/structure/sign/directions/science/directional/east{
pixel_y = -24
@@ -34302,7 +34301,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/newscaster/directional/north,
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"jts" = (
@@ -42236,15 +42235,9 @@
/turf/open/floor/plating/rust/moonstation,
/area/moonstation/surface)
"lDV" = (
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 1
},
/obj/effect/turf_decal/trimline/white/arrow_ccw{
dir = 1
},
/obj/structure/sign/warning/no_smoking/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
/obj/machinery/incident_display/disease,
/turf/closed/wall,
/area/station/medical/medbay/lobby)
"lEf" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -49120,10 +49113,16 @@
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
"nyl" = (
/obj/effect/turf_decal/tile/blue/half/contrasted,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark/corner,
/area/station/hallway/primary/starboard)
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 1
},
/obj/effect/turf_decal/trimline/white/arrow_ccw{
dir = 1
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/machinery/incident_display/disease/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"nyo" = (
/obj/effect/turf_decal/tile/red/half/contrasted{
dir = 8
@@ -50882,6 +50881,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/incident_display/disease/directional/south,
/turf/open/floor/iron/dark/corner,
/area/station/hallway/primary/starboard)
"nZr" = (
@@ -58936,7 +58936,6 @@
name = "Desk Shutters";
dir = 8
},
/obj/structure/sign/warning/no_smoking/directional/north,
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/station/medical/pharmacy)
@@ -64073,7 +64072,6 @@
/obj/effect/turf_decal/siding/wood{
dir = 10
},
/obj/machinery/status_display/evac/directional/east,
/obj/machinery/firealarm/directional/north,
/obj/structure/sign/directions/security/directional/north{
pixel_x = 32;
@@ -82733,6 +82731,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass,
/obj/effect/mapping_helpers/airlock/autoname,
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/dark/corner{
dir = 1
},
@@ -254110,7 +254109,7 @@ rpt
wQT
jjc
aCB
hfe
lDV
hfe
dac
dac
@@ -254366,7 +254365,7 @@ bYQ
trj
lxZ
sbo
nyl
xUZ
hfe
cAV
nFM
@@ -258744,7 +258743,7 @@ arh
fxD
fVk
rlX
mMG
hPq
fgf
sNI
oFu
@@ -258755,7 +258754,7 @@ oIv
ovV
sIP
jXJ
vlE
nyl
mYn
dba
cDk
@@ -259012,7 +259011,7 @@ uiz
nUu
xwk
jXJ
dkG
dHp
rCm
kOs
eCp
@@ -259269,7 +259268,7 @@ feK
xNX
qNp
qNp
lDV
dkG
hSn
msA
sBa
@@ -8,3 +8,5 @@
#define COMSIG_ORGAN_BODYPART_REMOVED "organ_bodypart_removed"
/// From /datum/controller/subsystem/economy/proc/issue_paydays()
#define COMSIG_ON_BANK_ACCOUNT_PAYOUT "bank_account_payout"
/// From modular_zubbers/code/modules/disease/disease_transmission.dm
#define COMSIG_DISEASE_COUNT_UPDATE "disease_count_update"
+3
View File
@@ -19,9 +19,12 @@ SUBSYSTEM_DEF(disease)
archive_diseases[prototype.GetDiseaseID()] = prototype
return SS_INIT_SUCCESS
// BUBBER EDIT REMOVAL - Moved to modular_zubbers/code/modules/disease/disease_transmission.dm
/*
/datum/controller/subsystem/disease/stat_entry(msg)
msg = "P:[length(active_diseases)]"
return ..()
*/
/datum/controller/subsystem/disease/proc/get_disease_name(id)
var/datum/disease/advance/A = archive_diseases[id]
+63 -3
View File
@@ -8,10 +8,13 @@ GLOBAL_LIST_EMPTY(map_incident_displays)
#define DISPLAY_DELAM (1<<0)
/// Display current number of tram hits on incident sign
#define DISPLAY_TRAM (1<<1)
/// Display current number of tram hits on incident sign
#define DISPLAY_DISEASE (1<<2) // BUBBER EDIT ADDITION - Disease Counter
DEFINE_BITFIELD(sign_features, list(
"DISPLAY_DELAM" = DISPLAY_DELAM,
"DISPLAY_TRAM" = DISPLAY_TRAM,
"DISPLAY_DISEASE" = DISPLAY_DISEASE, // BUBBER EDIT ADDITION - Disease Counter
))
#define TREND_RISING "rising"
@@ -19,9 +22,11 @@ DEFINE_BITFIELD(sign_features, list(
#define NAME_DELAM "delamination incident display"
#define NAME_TRAM "tram incident display"
#define NAME_DISEASE "epidemic display" // BUBBER EDIT ADDITION - Disease Counter
#define DESC_DELAM "A signs describe how long it's been since the last delamination incident. Features an advert for SAFETY MOTH."
#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift."
#define DESC_DISEASE "A display that provides the number of active disease outbreak cases on shift.<br/><span class='boldwarning'>Doctor-Patient confidentiality is not practised on this station.</span>" // BUBBER EDIT ADDITION - Disease Counter
#define DISPLAY_PIXEL_1_W 21
#define DISPLAY_PIXEL_1_Z -2
@@ -100,8 +105,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
. = ..()
GLOB.map_incident_displays += src
update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore)
update_disease_count(SSdisease.cached_event_disease_count, SSdisease.previous_event_disease_count) // BUBBER EDIT ADDITION - Disease Counter
RegisterSignal(SStransport, COMSIG_TRAM_COLLISION, PROC_REF(update_tram_count))
RegisterSignal(SSdisease, COMSIG_DISEASE_COUNT_UPDATE, PROC_REF(update_disease_count))
update_appearance()
/obj/machinery/incident_display/Destroy()
@@ -187,7 +193,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
// EMP causes the display to display random numbers or outright break.
/obj/machinery/incident_display/emp_act(severity)
. = ..()
if(prob(50))
if(prob(50) || sign_features & DISPLAY_DISEASE) // BUBBER EDIT CHANGE - Disease Counter
set_machine_stat(machine_stat | BROKEN)
update_appearance()
return
@@ -261,6 +267,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
else if((sign_features & DISPLAY_DELAM) && last_delam <= 0) // you done fucked up
icon_state = "display_shame"
set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_SHAME, l_on = TRUE)
// BUBBER EDIT ADDITION BEGIN - Disease Counter
else if((sign_features & DISPLAY_DISEASE) && current_disease_metric >= 8)
icon_state = "display_shame"
set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_SHAME, l_on = TRUE)
// BUBBER EDIT ADDITION END - Disease Counter
else
icon_state = "display_normal"
set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_NORMAL, l_on = TRUE)
@@ -361,6 +372,51 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
. += tram_trend_overlay
. += tram_trend_emissive
// BUBBER EDIT ADDITION BEGIN - Disease Counter
if(sign_features & DISPLAY_DISEASE)
. += mutable_appearance(icon, "overlay_disease")
. += emissive_appearance(icon, "overlay_disease", src, alpha = DISPLAY_PIXEL_ALPHA)
var/disease_pos1 = current_disease_metric % 10
var/mutable_appearance/disease_pos1_overlay = mutable_appearance(icon, "num_[disease_pos1]")
var/mutable_appearance/disease_pos1_emissive = emissive_appearance(icon, "num_[disease_pos1]", src, alpha = DISPLAY_PIXEL_ALPHA)
disease_pos1_overlay.color = disease_display_color
disease_pos1_overlay.pixel_w = DISPLAY_PIXEL_1_W
disease_pos1_emissive.pixel_w = DISPLAY_PIXEL_1_W
disease_pos1_overlay.pixel_z = DISPLAY_PIXEL_1_Z
disease_pos1_emissive.pixel_z = DISPLAY_PIXEL_1_Z
. += disease_pos1_overlay
. += disease_pos1_emissive
var/disease_pos2 = (current_disease_metric / 10) % 10
var/mutable_appearance/disease_pos2_overlay = mutable_appearance(icon, "num_[disease_pos2]")
var/mutable_appearance/disease_pos2_emissive = emissive_appearance(icon, "num_[disease_pos2]", src, alpha = DISPLAY_PIXEL_ALPHA)
disease_pos2_overlay.color = disease_display_color
disease_pos2_overlay.pixel_w = DISPLAY_PIXEL_2_W
disease_pos2_emissive.pixel_w = DISPLAY_PIXEL_2_W
disease_pos2_overlay.pixel_z = DISPLAY_PIXEL_2_Z
disease_pos2_emissive.pixel_z = DISPLAY_PIXEL_2_Z
. += disease_pos2_overlay
. += disease_pos2_emissive
if(current_disease_metric >= 100)
. += mutable_appearance(icon, "num_100_blue")
. += emissive_appearance(icon, "num_100_blue", src, alpha = DISPLAY_BASE_ALPHA)
if(current_disease_metric > prev_disease_metric)
var/mutable_appearance/disease_trend_overlay = mutable_appearance(icon, TREND_RISING)
var/mutable_appearance/disease_trend_emissive = emissive_appearance(icon, "[TREND_RISING]", src, alpha = DISPLAY_PIXEL_ALPHA)
disease_trend_overlay.color = "#fb6493"
. += disease_trend_overlay
. += disease_trend_emissive
else
var/mutable_appearance/disease_trend_overlay = mutable_appearance(icon, TREND_FALLING)
var/mutable_appearance/disease_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]", src, alpha = DISPLAY_PIXEL_ALPHA)
disease_trend_overlay.color = disease_display_color
. += disease_trend_overlay
. += disease_trend_emissive
// BUBBER EDIT ADDITION END - Disease Counter
/obj/machinery/incident_display/examine(mob/user)
. = ..()
if(atom_integrity < max_integrity)
@@ -385,7 +441,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
. += span_info("The supermatter crystal has delaminated, in case you didn't notice.")
if(sign_features & DISPLAY_TRAM)
. += span_notice("It can be changed to display delam-free shifts with a [EXAMINE_HINT("multitool")].")
//. += span_notice("It can be changed to display delam-free shifts with a [EXAMINE_HINT("multitool")].")
. += span_notice("It can be changed to display disease infections with a [EXAMINE_HINT("multitool")].") // BUBBER EDIT CHANGE - Disease Counter
. += span_info("The station has had [hit_count] tram incident\s this shift.")
switch(hit_count)
if(0)
@@ -403,12 +460,15 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
#undef DISPLAY_DELAM
#undef DISPLAY_TRAM
#undef DISPLAY_DISEASE // BUBBER EDIT ADDITION - Disease Counter
#undef NAME_DELAM
#undef NAME_TRAM
#undef NAME_DISEASE // BUBBER EDIT ADDITION - Disease Counter
#undef DESC_DELAM
#undef DESC_TRAM
#undef DESC_DISEASE // BUBBER EDIT ADDITION - Disease Counter
#undef TREND_RISING
#undef TREND_FALLING
@@ -0,0 +1,184 @@
/**
* Adds a disease outbreak epidemic function to incident displays
*/
/// Display days since last delam on incident sign
#define DISPLAY_DELAM (1<<0)
/// Display current number of tram hits on incident sign
#define DISPLAY_TRAM (1<<1)
/// Display current number of tram hits on incident sign
#define DISPLAY_DISEASE (1<<2)
#define TREND_RISING "rising"
#define TREND_FALLING "falling"
#define NAME_DELAM "delamination incident display"
#define NAME_TRAM "tram incident display"
#define NAME_DISEASE "epidemic display"
#define DESC_DELAM "A signs describe how long it's been since the last delamination incident. Features an advert for SAFETY MOTH."
#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift."
#define DESC_DISEASE "A display that provides the number of active disease outbreak cases on shift.<br/><span class='boldwarning'>Doctor-Patient confidentiality is not practised on this station.</span>" // BUBBER EDIT ADDITION - Disease Counter
/obj/machinery/incident_display
icon = 'modular_zubbers/icons/obj/machines/incident_display.dmi'
/// Disease metric digits color
var/disease_display_color = "#4bfba5"
/// Current active event diseases
var/current_disease_metric = 0
/// Previous event disease metric
var/prev_disease_metric = 0
var/static/list/disease_slogan_good = list(
"In the event of an epidemic, please try not to panic.",
"In the event of an epidemic, please try not to breathe.",
"Please look out for invisible and potentially lethal diseases.",
"Staff are reminded not to laugh at Patients whilst they are present. Thank you.",
"Don't interact with other crew members, you don't know where they've been.",
"Crew members are reminded not to be sick.",
)
var/static/list/disease_slogan_bad = list(
"If you have any questions, first ask yourself why that might be.",
"Please be on high alert for invisible and potentially lethal diseases!",
"Staff are reminded not to laugh at Patients whilst they are present. Thank you.",
"We hope you've enjoyed your stay at the medbay, but not so much that you don't leave... please, eventually leave.",
"Pretending your doctor is better than they are may aid recovery.",
"Don't interact with other crew members, you don't know where they've been.",
"Quality of treatment may depend on Patient behaviour.",
"Cured Patients should leave the medbay before they catch something else.",
"Please don't ask how our vaccines work, as, we are not exactly sure.",
)
/// How long between slogans
var/slogan_delay = 10 MINUTES
COOLDOWN_DECLARE(slogan_cooldown)
verb_say = "beeps"
verb_ask = "beeps"
verb_exclaim = "beeps"
/// Counter board for disease outbreak
/obj/machinery/incident_display/disease
name = NAME_DISEASE
desc = DESC_DISEASE
sign_features = DISPLAY_DISEASE
MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/disease, 32)
/obj/machinery/incident_display/post_machine_initialize()
. = ..()
COOLDOWN_START(src, slogan_cooldown, rand(0, slogan_delay))
/obj/machinery/incident_display/process()
if(COOLDOWN_FINISHED(src, slogan_cooldown) && (sign_features & DISPLAY_DISEASE))
if(current_disease_metric == 0)
speak(pick(disease_slogan_good))
else
speak(pick(disease_slogan_bad))
COOLDOWN_START(src, slogan_cooldown, slogan_delay)
return ..()
/**
* Speak the given message verbally
*
* Checks if the machine is powered and the message exists
*
* Arguments:
* * message - the message to speak
*/
/obj/machinery/incident_display/proc/speak(message)
if(machine_stat & (BROKEN|NOPOWER))
return
if(!message)
return
say(message)
/obj/machinery/incident_display/add_context(atom/source, list/context, obj/item/held_item, mob/user)
if(!isliving(user))
return
var/mob/living/living_user = user
if(held_item?.tool_behaviour == TOOL_WELDER && !living_user.combat_mode && atom_integrity < max_integrity)
context[SCREENTIP_CONTEXT_LMB] = "repair display"
if(held_item?.tool_behaviour == TOOL_MULTITOOL && !living_user.combat_mode)
if(sign_features == DISPLAY_TRAM)
context[SCREENTIP_CONTEXT_LMB] = "change to disease mode"
else if(sign_features == DISPLAY_DISEASE)
context[SCREENTIP_CONTEXT_LMB] = "change to delam mode"
else if(sign_features == DISPLAY_DELAM)
context[SCREENTIP_CONTEXT_LMB] = "change to tram mode"
return CONTEXTUAL_SCREENTIP_SET
/// Switch modes with multitool
/obj/machinery/incident_display/multitool_act(mob/living/user, obj/item/tool)
if(user.combat_mode)
return FALSE
if(sign_features == DISPLAY_TRAM)
tool.play_tool_sound(src)
balloon_alert(user, "set to disease")
name = NAME_DISEASE
desc = DESC_DISEASE
sign_features = DISPLAY_DISEASE
update_appearance()
return TRUE
else if(sign_features == DISPLAY_DISEASE)
tool.play_tool_sound(src)
balloon_alert(user, "set to delam")
name = NAME_DELAM
desc = DESC_DELAM
sign_features = DISPLAY_DELAM
update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore)
update_appearance()
return TRUE
else
tool.play_tool_sound(src)
balloon_alert(user, "set to tram")
name = NAME_TRAM
desc = DESC_TRAM
sign_features = DISPLAY_TRAM
update_tram_count(src, SSpersistence.tram_hits_this_round)
update_appearance()
return TRUE
/**
* Update the disease count on the display
*
* Use the provided args to update the incident display when in disease mode.
* Arguments:
* * current - current active event disease metric
* * previous - previous cached event disease metric
*/
/obj/machinery/incident_display/proc/update_disease_count(source, current, previous)
current_disease_metric = min(current, 199)
prev_disease_metric = min(previous, 199)
update_appearance()
/obj/machinery/incident_display/examine(mob/user)
. = ..()
if(sign_features & DISPLAY_DISEASE)
. += span_notice("It can be changed to display delam-free shifts with a [EXAMINE_HINT("multitool")].")
. += span_info("The station has [current_disease_metric] reported active infections incident\s at the moment.")
if(current_disease_metric == 0)
. += span_notice("<b>[pick(disease_slogan_good)]</b><br/>")
else
. += span_notice("<b>[pick(disease_slogan_bad)]</b><br/>")
#undef DISPLAY_DELAM
#undef DISPLAY_TRAM
#undef DISPLAY_DISEASE
#undef NAME_DELAM
#undef NAME_TRAM
#undef NAME_DISEASE
#undef DESC_DELAM
#undef DESC_TRAM
#undef DESC_DISEASE
#undef TREND_RISING
#undef TREND_FALLING
@@ -1,6 +1,36 @@
/datum/controller/subsystem/disease
runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
flags = SS_BACKGROUND
wait = 16 SECONDS
/// List of event created diseases in all mobs
var/list/event_diseases = list()
var/cached_event_disease_count = 0
var/previous_event_disease_count = 0
var/next_cache_update = 0
/datum/controller/subsystem/disease/stat_entry(msg)
msg = "P:[length(active_diseases)] EV:[cached_event_disease_count]"
return ..()
/datum/controller/subsystem/disease/fire()
update_event_disease_cache()
/datum/controller/subsystem/disease/proc/update_event_disease_cache()
if(world.time >= next_cache_update)
update_event_disease_metric()
var/current_infections = 0
for(var/datum/disease/active_infection as anything in event_diseases)
if(isnull(active_infection.affected_mob) || active_infection.affected_mob?.stat == DEAD)
continue // don't count dead people. they can't spread disease, right? right???...
current_infections++
cached_event_disease_count = current_infections
SEND_SIGNAL(src, COMSIG_DISEASE_COUNT_UPDATE, cached_event_disease_count, previous_event_disease_count)
/datum/controller/subsystem/disease/proc/update_event_disease_metric()
previous_event_disease_count = cached_event_disease_count
next_cache_update = world.time + 4 MINUTES
/datum/disease
/// Debug logs for disease transmission refactor, to verify after the fact the system is working as intended
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

+1
View File
@@ -8876,6 +8876,7 @@
#include "modular_zubbers\code\game\Items\storage\backpack.dm"
#include "modular_zubbers\code\game\machinery\crew_monitor.dm"
#include "modular_zubbers\code\game\machinery\department_balance.dm"
#include "modular_zubbers\code\game\machinery\incident_display.dm"
#include "modular_zubbers\code\game\machinery\medipen_refiller.dm"
#include "modular_zubbers\code\game\machinery\morgue.dm"
#include "modular_zubbers\code\game\machinery\syndiepad.dm"