From 3c698942da353ed8e90948561d5b4478c4c30776 Mon Sep 17 00:00:00 2001
From: Lexanx <61974560+Lexanx@users.noreply.github.com>
Date: Sun, 15 Dec 2024 23:16:20 +0300
Subject: [PATCH] 1
---
maps/sierra/z1-z5_sierra.dmm | 287 +++++++++++------------
mods/virusology/code/antibodyanalyser.dm | 2 +
mods/virusology/code/curer.dm | 54 +++--
mods/virusology/code/dishincubator.dm | 6 +-
mods/virusology/code/lar_maria.dm | 10 +
5 files changed, 185 insertions(+), 174 deletions(-)
diff --git a/maps/sierra/z1-z5_sierra.dmm b/maps/sierra/z1-z5_sierra.dmm
index 9bed2825c78f6..9c4e840b4b4e7 100644
--- a/maps/sierra/z1-z5_sierra.dmm
+++ b/maps/sierra/z1-z5_sierra.dmm
@@ -4019,8 +4019,24 @@
/turf/simulated/floor/tiled/white/monotile,
/area/medical/sleeper)
"aCR" = (
-/turf/simulated/wall/r_wall/hull,
-/area/medical/virology)
+/obj/machinery/button/blast_door{
+ id_tag = "vir_blast_window";
+ name = "Virology windows";
+ pixel_y = -24
+ },
+/obj/floor_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/floor_decal/corner/green/border{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled/white,
+/area/medical/virology/lab)
"aCX" = (
/obj/machinery/flasher{
pixel_x = 32;
@@ -5301,18 +5317,29 @@
/turf/simulated/wall/ocp_wall,
/area/maintenance/incinerator)
"aNR" = (
-/obj/floor_decal/corner/green/diagonal,
-/obj/structure/table/glass,
/obj/structure/cable/green{
d1 = 1;
d2 = 4;
icon_state = "1-4"
},
-/obj/machinery/light/spot{
- dir = 8
+/obj/floor_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/floor_decal/corner/green/border{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"aNW" = (
/obj/machinery/portable_atmospherics/hydroponics,
/obj/machinery/atmospherics/portables_connector{
@@ -20055,6 +20082,11 @@
/obj/floor_decal/corner/green/border{
dir = 1
},
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
"cXt" = (
@@ -23209,11 +23241,6 @@
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
/obj/structure/cable/green{
d1 = 2;
d2 = 8;
@@ -25648,21 +25675,11 @@
/turf/simulated/floor/wood/walnut,
/area/crew_quarters/lounge)
"dLm" = (
-/obj/machinery/door/firedoor,
-/obj/structure/disposalpipe/segment,
/obj/floor_decal/corner/green/mono,
-/obj/floor_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/glass/virology,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/item/taperoll/engineering/applied,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
-/turf/simulated/floor/tiled/white/monotile,
-/area/medical/virology)
+/obj/floor_decal/industrial/outline/yellow,
+/obj/machinery/computer/centrifuge,
+/turf/simulated/floor/tiled/white,
+/area/medical/virology/lab)
"dLu" = (
/obj/structure/ladder,
/obj/structure/lattice,
@@ -25780,9 +25797,6 @@
dir = 8;
pixel_x = -24
},
-/obj/machinery/computer/diseasesplicer{
- dir = 4
- },
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
"dMC" = (
@@ -42556,6 +42570,11 @@
/obj/floor_decal/corner/green/bordercorner2{
dir = 8
},
+/obj/machinery/power/apc{
+ dir = 8;
+ name = "west bump";
+ pixel_x = -24
+ },
/turf/simulated/floor/tiled/white,
/area/medical/virology)
"gjE" = (
@@ -44844,7 +44863,7 @@
id_tag = "vir_blast_window"
},
/turf/simulated/floor/plating,
-/area/medical/virology)
+/area/medical/virology/lab)
"gDw" = (
/obj/structure/table/rack,
/obj/machinery/power/apc/super/critical{
@@ -47017,25 +47036,22 @@
/turf/simulated/floor/tiled/white/monotile,
/area/maintenance/fourthdeck/aft)
"gTc" = (
-/obj/floor_decal/corner/green/diagonal,
/obj/structure/bed/chair/office/light{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6
+/obj/floor_decal/borderfloorblack{
+ dir = 1
},
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 4;
- icon_state = "2-4"
+/obj/floor_decal/corner/green/border{
+ dir = 1
},
/obj/structure/cable/green{
- d1 = 2;
+ d1 = 4;
d2 = 8;
- icon_state = "2-8"
+ icon_state = "4-8"
},
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"gTl" = (
/turf/simulated/wall/r_wall/hull,
/area/maintenance/abandoned_hydroponics)
@@ -53908,22 +53924,11 @@
/turf/simulated/floor/tiled,
/area/assembly/office)
"hVT" = (
-/obj/floor_decal/corner/green/diagonal,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- icon_state = "pipe-c"
- },
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
+/obj/floor_decal/borderfloorblack,
+/obj/floor_decal/corner/green/border,
+/obj/machinery/light/spot,
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"hWb" = (
/obj/floor_decal/chapel{
dir = 1
@@ -60554,10 +60559,6 @@
/turf/simulated/floor/tiled/techfloor,
/area/security/sierra/armory/lobby)
"iUN" = (
-/obj/floor_decal/corner/green/diagonal,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 9
- },
/obj/structure/hygiene/sink{
dir = 4;
pixel_x = 11
@@ -60567,8 +60568,14 @@
d2 = 8;
icon_state = "1-8"
},
+/obj/floor_decal/borderfloorblack{
+ dir = 5
+ },
+/obj/floor_decal/corner/green/border{
+ dir = 5
+ },
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"iUO" = (
/obj/machinery/status_display{
pixel_y = 32
@@ -83873,13 +83880,6 @@
/obj/machinery/door/firedoor,
/turf/simulated/floor/plating,
/area/storage/eva)
-"msF" = (
-/obj/wallframe_spawn/reinforced/hull,
-/obj/machinery/door/blast/regular{
- id_tag = "vir_blast_window"
- },
-/turf/simulated/floor/plating,
-/area/medical/virology)
"msI" = (
/obj/floor_decal/industrial/hatch/yellow,
/obj/machinery/self_destruct,
@@ -90493,13 +90493,6 @@
/turf/simulated/floor/plating,
/area/maintenance/seconddeck/foreport)
"nrb" = (
-/obj/floor_decal/corner/green/diagonal,
-/obj/structure/table/glass,
-/obj/machinery/microwave{
- pixel_x = -3;
- pixel_y = 6
- },
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/item/device/radio/intercom{
dir = 8;
pixel_x = 24
@@ -90509,8 +90502,10 @@
d2 = 2;
icon_state = "1-2"
},
+/obj/floor_decal/corner/green/mono,
+/obj/structure/table/glass,
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"nrg" = (
/obj/structure/lattice,
/obj/floor_decal/corner/red/border{
@@ -94429,6 +94424,11 @@
d2 = 4;
icon_state = "2-4"
},
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
"nYD" = (
@@ -113281,7 +113281,8 @@
dir = 8;
pixel_x = 24
},
-/obj/machinery/computer/centrifuge,
+/obj/structure/table/glass,
+/obj/item/device/scanner/antibody_scanner,
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
"qLh" = (
@@ -116352,11 +116353,6 @@
/turf/simulated/floor/tiled/monotile,
/area/rnd/misc_lab)
"rgQ" = (
-/obj/floor_decal/corner/green/diagonal,
-/obj/machinery/disposal,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
/obj/structure/sign/warning/deathsposal{
pixel_x = 32
},
@@ -116364,8 +116360,14 @@
dir = 8;
pixel_x = 24
},
+/obj/floor_decal/borderfloorblack{
+ dir = 6
+ },
+/obj/floor_decal/corner/green/border{
+ dir = 6
+ },
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"rgS" = (
/obj/structure/railing/mapped{
dir = 1
@@ -117681,22 +117683,17 @@
/turf/simulated/floor/tiled/techfloor/grid,
/area/maintenance/thirddeck/port)
"rsf" = (
-/obj/floor_decal/corner/green/diagonal,
/obj/structure/table/glass,
/obj/structure/cable/green{
d2 = 2;
icon_state = "0-2"
},
-/obj/machinery/power/apc{
- dir = 8;
- name = "west bump";
- pixel_x = -24
- },
/obj/item/diseasedisk,
/obj/item/diseasedisk,
/obj/item/diseasedisk,
+/obj/floor_decal/corner/green/mono,
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"rsi" = (
/obj/floor_decal/spline/fancy/wood{
dir = 1
@@ -123641,20 +123638,22 @@
/turf/simulated/floor/tiled,
/area/hallway/primary/seconddeck/fore)
"skh" = (
-/obj/floor_decal/corner/green/diagonal,
/obj/structure/table/glass,
/obj/item/modular_computer/laptop/preset/records{
dir = 4
},
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
- },
/obj/machinery/camera/network/medbay{
c_tag = "Virology - Entrance";
dir = 4
},
+/obj/floor_decal/borderfloorblack{
+ dir = 10
+ },
+/obj/floor_decal/corner/green/border{
+ dir = 10
+ },
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"skl" = (
/obj/structure/catwalk,
/turf/simulated/floor/plating,
@@ -127082,7 +127081,9 @@
dir = 8
},
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/structure/table/glass,
+/obj/machinery/computer/diseasesplicer{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
"sIr" = (
@@ -127093,16 +127094,15 @@
/area/thruster/d1starboard)
"sIs" = (
/obj/floor_decal/borderfloorblack{
- dir = 5
+ dir = 1
},
/obj/floor_decal/corner/green/border{
- dir = 5
+ dir = 1
},
-/obj/machinery/button/blast_door{
- id_tag = "vir_blast_window";
- name = "Virology windows";
- dir = 8;
- pixel_x = 24
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
@@ -136204,7 +136204,6 @@
},
/obj/structure/table/glass,
/obj/item/device/scanner/health,
-/obj/item/device/scanner/antibody_scanner,
/obj/item/storage/fancy/vials,
/turf/simulated/floor/tiled/white,
/area/medical/virology/lab)
@@ -141962,15 +141961,13 @@
/turf/simulated/floor/tiled/white,
/area/medical/infirmreception)
"uUh" = (
-/obj/floor_decal/corner/green/diagonal,
/obj/structure/table/glass,
/obj/structure/noticeboard{
pixel_y = 32
},
-/obj/machinery/recharger,
-/obj/item/device/scanner/antibody_scanner,
+/obj/floor_decal/corner/green/mono,
/turf/simulated/floor/tiled/white,
-/area/medical/virology)
+/area/medical/virology/lab)
"uUl" = (
/obj/floor_decal/borderfloorblack{
dir = 8
@@ -160438,23 +160435,17 @@
},
/area/engineering/engine_room)
"xIZ" = (
-/obj/structure/disposalpipe/segment,
/obj/floor_decal/steeldecal/steel_decals4{
dir = 4
},
/obj/floor_decal/steeldecal/steel_decals4{
dir = 9
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
},
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
},
/turf/simulated/floor/tiled/white,
/area/medical/virology)
@@ -264221,17 +264212,17 @@ idA
tXe
xxf
utn
-utn
-utn
+iqR
+iqR
qWx
qWx
-utn
+iqR
qWx
qWx
-utn
-utn
-utn
-utn
+iqR
+iqR
+iqR
+iqR
dBU
dBU
dBU
@@ -264423,11 +264414,11 @@ idA
tXe
mKZ
utn
-utn
+iqR
nlx
bFk
oie
-utn
+iqR
jHG
jRK
kkL
@@ -264625,7 +264616,7 @@ rtT
ibG
eME
utn
-utn
+iqR
huY
xAG
eGe
@@ -264827,11 +264818,11 @@ aTh
tXe
hLJ
utn
-utn
-utn
+iqR
+iqR
atf
atf
-utn
+iqR
qMl
kvF
ejr
@@ -265033,7 +265024,7 @@ kCD
ukG
bFk
oie
-utn
+iqR
vCG
gvQ
oFf
@@ -265432,12 +265423,12 @@ rtT
tXe
jDS
utn
-utn
-utn
-utn
+iqR
+iqR
+iqR
atf
atf
-utn
+iqR
vWF
oaO
oFf
@@ -266441,15 +266432,15 @@ rtT
idA
tXe
hLJ
+utn
+iqR
+dLm
aCR
-aCR
-mHT
-mHT
-mHT
-mHT
+iqR
+iqR
hBO
sSp
-hBO
+mHT
mHT
mHT
mHT
@@ -266644,11 +266635,11 @@ idA
tXe
hLJ
uaW
-msF
+kCD
rsf
aNR
skh
-hBO
+iqR
lHV
pSP
gjj
@@ -266845,12 +266836,12 @@ rtT
idA
tXe
fdX
-aCR
-aCR
+utn
+iqR
uUh
gTc
hVT
-dLm
+iqR
xIZ
duu
gRO
@@ -267052,7 +267043,7 @@ gDr
nrb
iUN
rgQ
-hBO
+iqR
pbh
mtQ
qeH
@@ -267250,7 +267241,7 @@ idA
tXe
xxf
fNW
-fNW
+ttc
ttc
ttc
ttc
diff --git a/mods/virusology/code/antibodyanalyser.dm b/mods/virusology/code/antibodyanalyser.dm
index 90cd903e96836..a4e41fe405524 100644
--- a/mods/virusology/code/antibodyanalyser.dm
+++ b/mods/virusology/code/antibodyanalyser.dm
@@ -48,6 +48,8 @@
known_antibodies |= unknown_antibodies //Add the new antibodies to list
else
src.state("\The [src] buzzes, \"Failed to identify any new antibodies.\"")
+ if(!LAZYLEN(given_antibodies)) //return if no antibodies
+ return 0
container.dropInto(loc)
container = null
diff --git a/mods/virusology/code/curer.dm b/mods/virusology/code/curer.dm
index 522d77564e47a..1dc6bff4bd54e 100644
--- a/mods/virusology/code/curer.dm
+++ b/mods/virusology/code/curer.dm
@@ -9,14 +9,28 @@
var/obj/item/reagent_containers/container = null
-/obj/machinery/computer/curer/use_tool(obj/item/I, mob/living/user, list/click_params)
- . = ..()
+/obj/machinery/computer/curer/use_tool(obj/I as obj, mob/user as mob)
if(istype(I,/obj/item/reagent_containers))
if(!container)
if(!user.unEquip(I, src))
return
container = I
return
+ if(istype(I,/obj/item/virusdish))
+ if(virusing)
+ to_chat(user, "The pathogen materializer is still recharging..")
+ return
+ var/obj/item/reagent_containers/glass/beaker/product = new(src.loc)
+
+ var/list/data = list("donor" = null, "blood_DNA" = null, "blood_type" = null, "trace_chem" = null, "virus2" = list(), "antibodies" = list())
+ data["virus2"] |= I:virus2
+ product.reagents.add_reagent(/datum/reagent/blood,30,data)
+
+ virusing = 1
+ spawn(1200) virusing = 0
+
+ state("The [src.name] Buzzes", "blue")
+ return
..()
return
@@ -29,11 +43,15 @@
var/dat
if(curing)
dat = "Antibody production in progress"
+ else if(virusing)
+ dat = "Virus production in progress"
else if(container)
- // check to see if we have the required reagents
- if(container.reagents.get_reagent_amount(/datum/reagent/blood) >= 5 && container.reagents.get_reagent_amount(/datum/reagent/radium) >= 15 && container.reagents.get_reagent_amount(/datum/reagent/spaceacillin) >= 10)
+ // see if there's any blood in the container
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in container.reagents.reagent_list
+ if(B)
dat = "Blood sample inserted."
+ dat += "
Antibodies: [antigens2string(B.data["antibodies"])]"
dat += "
Begin antibody production"
else
dat += "
Please check container contents."
@@ -41,7 +59,7 @@
else
dat = "Please insert a container."
- show_browser(user, "[dat]", "window=computer;size=400x500")
+ user << browse(dat, "window=computer;size=400x500")
onclose(user, "computer")
return
@@ -69,22 +87,12 @@
attack_hand(user)
/obj/machinery/computer/curer/proc/createcure(obj/item/reagent_containers/container)
- var/obj/item/reagent_containers/C = container
- var/antibodies
- C.dropInto(loc)
- var/mob/living/carbon/M = new /mob/living/carbon
+ var/obj/item/reagent_containers/glass/beaker/product = new(src.loc)
+
var/datum/reagent/blood/B = locate() in container.reagents.reagent_list
- var/data
- if(B.data && B.data["virus2"])
- var/list/vlist = B.data["virus2"]
- if(LAZYLEN(vlist))
- for(var/ID in vlist)
- var/datum/disease2/disease/V = vlist[ID]
- data = V.getcopy()
-
- for(var/ID in data)
- var/datum/disease2/disease/V = data[ID]
- antibodies |= V.antigen
- C.reagents.clear_reagents()
- C.reagents.add_reagent(/datum/reagent/antibodies, 10, antibodies)
- qdel(M)
+
+ var/list/data = list()
+ data["antibodies"] = B.data["antibodies"]
+ product.reagents.add_reagent(/datum/reagent/antibodies,30,data)
+
+ state("\The [src.name] buzzes", "blue")
diff --git a/mods/virusology/code/dishincubator.dm b/mods/virusology/code/dishincubator.dm
index 48c5a4aa46da2..bcf548f318afa 100644
--- a/mods/virusology/code/dishincubator.dm
+++ b/mods/virusology/code/dishincubator.dm
@@ -95,7 +95,7 @@
var/threshold_mod = 0
- if(foodsupply)
+ if(foodsupply > 0)
if(dish.growth + 3 >= 100 && dish.growth < 100)
ping("\The [src] pings, \"Sufficient viral growth density achieved.\"")
@@ -103,7 +103,7 @@
dish.growth += 3
SSnano.update_uis(src)
- if(radiation)
+ if(radiation > 0)
threshold_mod++
if(radiation > 50 & prob(5))
dish.virus2.majormutate()
@@ -119,7 +119,7 @@
if(toxins && prob(5))
dish.virus2.infectionchance -= 1
SSnano.update_uis(src)
- if(toxins > 50)
+ if(toxins > 70)
dish.growth = 0
dish.virus2 = null
SSnano.update_uis(src)
diff --git a/mods/virusology/code/lar_maria.dm b/mods/virusology/code/lar_maria.dm
index 1e37991a3d2fe..ec7fa057d4c63 100644
--- a/mods/virusology/code/lar_maria.dm
+++ b/mods/virusology/code/lar_maria.dm
@@ -46,6 +46,16 @@
to_chat(mob, "You feel uncontrollable rage filling you! You want to hurt and destroy!")
if (mob.reagents.get_reagent_amount(/datum/reagent/hyperzine) < 10)
mob.reagents.add_reagent(/datum/reagent/hyperzine, 4)
+ var/list/mobs_to_beat = list()
+ for(var/mob/living/L in range(1))
+ if (L == mob)
+ continue
+ mobs_to_beat += L
+ if (LAZYLEN(mobs_to_beat) < 1)//nobody to beat
+ return
+ var/mob/living/Target = pick(mobs_to_beat)
+ mob.a_intent = I_HURT
+ mob.attack_hand(Target)
if(prob(50) && mob.check_has_mouth())//go crazy and bite someone
var/list/mouth_status = mob.can_eat_status()
if (mouth_status[1] == 1)//if no mouth HUMAN_EATING_NBP_MOUTH