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