From 7ee524f74870f44577b1e940a86831b083e5d6ff Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 9 Jan 2023 11:48:50 +0100 Subject: [PATCH] [MIRROR] Basic Mob Carp Part VIII: Basic Mob Carp [MDB IGNORE] (#18344) * Basic Mob Carp Part VIII: Basic Mob Carp * maps * missed killing main carp file * shorki and ocean biomes * shorki 2: pet-a-boogaloo Co-authored-by: Jacquerel Co-authored-by: tastyfish --- _maps/RandomRuins/SpaceRuins/abandonedzoo.dmm | 2 +- .../RandomRuins/SpaceRuins/caravanambush.dmm | 3472 ++++++++--------- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 2 +- _maps/RandomRuins/SpaceRuins/skyrat/luna.dmm | 4 +- .../SpaceRuins/skyrat/piratefort.dmm | 152 +- .../SpaceRuins/skyrat/port_tarkon/defcon2.dmm | 10 +- .../SpaceRuins/skyrat/port_tarkon/defcon3.dmm | 18 +- .../SpaceRuins/skyrat/port_tarkon/defcon4.dmm | 72 +- .../SpaceRuins/skyrat/port_tarkon/defcon5.dmm | 10 +- _maps/RandomZLevels/blackmesa.dmm | 4 +- .../map_files/Deltastation/DeltaStation2.dmm | 174 +- .../map_files/IceBoxStation/IceBoxStation.dmm | 142 +- _maps/map_files/KiloStation/KiloStation.dmm | 174 +- _maps/map_files/VoidRaptor/VoidRaptor.dmm | 1492 +++---- _maps/templates/lazy_templates/ninja_den.dmm | 3 +- _maps/templates/lazy_templates/nukie_base.dmm | 2 +- code/__DEFINES/ai_carp.dm | 9 + .../configuration/configuration.dm | 2 +- .../basic_ai_behaviors/try_mob_ability.dm | 33 +- .../basic_subtrees/targetted_mob_ability.dm | 26 + code/datums/ai/generic/find_and_set.dm | 60 + .../pet_commands/pet_commands_basic.dm | 2 +- code/datums/components/spawner.dm | 2 +- code/datums/elements/basic_eating.dm | 35 +- code/datums/memory/memory.dm | 6 +- .../machinery/dna_infuser/infuser_entries.dm | 2 +- code/game/objects/items/dehy_carp.dm | 4 +- code/game/objects/items/dna_probe.dm | 2 +- .../objects/items/grenades/spawnergrenade.dm | 2 +- code/game/objects/structures/spawner.dm | 2 +- .../heretic/magic/eldritch_shapeshift.dm | 2 +- .../nukeop/equipment/nuclear_challenge.dm | 2 +- .../antagonists/space_dragon/space_dragon.dm | 4 +- .../traitor/objectives/kill_pet.dm | 2 +- code/modules/events/carp_migration.dm | 4 +- code/modules/events/ghost_role/sentience.dm | 2 +- code/modules/events/scrubber_clog.dm | 2 +- code/modules/events/wizard/magicarp.dm | 4 +- .../experisci/experiment/experiments.dm | 2 +- code/modules/holodeck/holo_effect.dm | 2 +- code/modules/meteors/meteors.dm | 4 +- .../mob/living/basic/farm_animals/cow/_cow.dm | 2 +- .../basic/farm_animals/cow/cow_moonicorn.dm | 2 +- .../mob/living/basic/space_fauna/carp/carp.dm | 215 + .../basic/space_fauna/carp/carp_abilities.dm | 29 + .../basic/space_fauna/carp/carp_ai_actions.dm | 74 + .../space_fauna/carp/carp_controllers.dm | 62 + .../living/basic/space_fauna/carp/magicarp.dm | 136 + .../living/basic/space_fauna/carp/megacarp.dm | 34 + code/modules/mob/living/living.dm | 6 +- .../mob/living/simple_animal/hostile/carp.dm | 257 -- .../simple_animal/hostile/carp_magic.dm | 97 - .../mob/living/simple_animal/hostile/mimic.dm | 4 +- code/modules/mob/transform_procs.dm | 6 +- code/modules/projectiles/projectile/magic.dm | 2 +- code/modules/research/experimentor.dm | 2 +- .../vatgrowing/samples/cell_lines/common.dm | 4 +- .../spells/spell_types/conjure/carp.dm | 2 +- .../spell_types/shapeshift/shapechange.dm | 2 +- .../unit_tests/simple_animal_freeze.dm | 10 - .../modules/liquids/code/ocean_biomes.dm | 4 +- .../modules/liquids/code/ocean_mapgen.dm | 2 +- .../modules/mapping/voidraptor/code/mob.dm | 13 +- tgstation.dme | 10 +- .../Scripts/71421_simple_carp_to_basic.txt | 8 + .../UpdatePaths/Scripts_Skyrat/more_carps.txt | 1 + 66 files changed, 3638 insertions(+), 3296 deletions(-) create mode 100644 code/__DEFINES/ai_carp.dm create mode 100644 code/datums/ai/basic_mobs/basic_subtrees/targetted_mob_ability.dm create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp.dm create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.dm create mode 100644 code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm create mode 100644 code/modules/mob/living/basic/space_fauna/carp/magicarp.dm create mode 100644 code/modules/mob/living/basic/space_fauna/carp/megacarp.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/carp.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/carp_magic.dm create mode 100644 tools/UpdatePaths/Scripts/71421_simple_carp_to_basic.txt create mode 100644 tools/UpdatePaths/Scripts_Skyrat/more_carps.txt diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm index c8179a4468f..4cf3084e4a8 100644 --- a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -471,7 +471,7 @@ /area/ruin/space/has_grav/abandonedzoo) "Ig" = ( /obj/machinery/light/directional/north, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/plating, /area/ruin/space/has_grav/abandonedzoo) "LD" = ( diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm index f943f247b86..285fc9157fa 100644 --- a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -57,6 +57,10 @@ }, /turf/template_noop, /area/template_noop) +"ak" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) "an" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ @@ -84,6 +88,32 @@ }, /turf/template_noop, /area/template_noop) +"av" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/button/door/directional/north{ + id = "caravantrade3_cargo_port"; + name = "Cargo Blast Door Control" + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"aw" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) "aD" = ( /obj/item/stack/rods, /turf/template_noop, @@ -95,102 +125,103 @@ }, /turf/template_noop, /area/template_noop) +"aG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"aI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/item/shard, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"aM" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"aN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"aO" = ( +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/blood, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"aP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/pirate/ranged/space{ + environment_smash = 0 + }, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"aQ" = ( +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"aR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) "aT" = ( /obj/structure/fluff/broken_flooring{ icon_state = "singular" }, /turf/template_noop, /area/template_noop) -"bl" = ( -/mob/living/simple_animal/hostile/carp, -/turf/template_noop, -/area/template_noop) -"br" = ( -/obj/item/stack/sheet/iron, -/turf/template_noop, -/area/template_noop) -"bs" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/template_noop) -"bv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +"aW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/airless, +/obj/structure/door_assembly/door_assembly_com{ + anchored = 1; + density = 0; + name = "broken airlock" + }, +/turf/open/floor/iron/dark/airless, /area/shuttle/ruin/caravan/freighter3) -"bN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/preopen{ - id = "caravantrade2_cargo_port"; - name = "Cargo Blast Door" - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"bU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"cA" = ( -/obj/machinery/power/smes, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"cF" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade2_cargo_starboard"; - name = "Cargo Blast Door" - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"cJ" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst/right{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"cY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/all_access{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"dc" = ( -/obj/item/shard, -/turf/template_noop, -/area/template_noop) -"dr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/frame/computer{ - dir = 8 - }, -/obj/item/shard, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"dH" = ( -/obj/machinery/door/poddoor/preopen{ - id = "caravantrade2_cargo_port"; - name = "Cargo Blast Door" - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"dM" = ( -/obj/effect/spawner/structure/window/reinforced/shuttle, -/turf/open/floor/plating, -/area/shuttle/ruin/caravan/freighter2) -"dU" = ( +"aY" = ( /obj/effect/turf_decal/bot_white/right, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -203,7 +234,422 @@ }, /turf/open/floor/iron/dark/airless, /area/shuttle/ruin/caravan/freighter2) -"dX" = ( +"aZ" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/structure/door_assembly/door_assembly_com{ + anchored = 1; + density = 0; + name = "broken airlock" + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"bg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/all_access{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"bh" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/gibspawner/human, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"bi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"br" = ( +/obj/item/stack/sheet/iron, +/turf/template_noop, +/area/template_noop) +"bs" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/template_noop) +"bt" = ( +/turf/closed/mineral/random, +/area/ruin/space/has_grav) +"bJ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ruin/space/has_grav) +"dc" = ( +/obj/item/shard, +/turf/template_noop, +/area/template_noop) +"dD" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav) +"dE" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/space/has_grav) +"dF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/airless, +/area/ruin/space/has_grav) +"dL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/door_assembly/door_assembly_hatch{ + density = 0; + name = "broken airlock" + }, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav) +"eu" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/airless, +/area/ruin/space/has_grav) +"ew" = ( +/obj/effect/gibspawner/human, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav) +"ex" = ( +/obj/item/stack/sheet/iron, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav) +"eG" = ( +/obj/item/stack/cable_coil{ + amount = 1 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav) +"fZ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ruin/caravan/freighter3) +"ga" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/ruin/caravan/freighter3) +"gb" = ( +/obj/machinery/door/poddoor{ + id = "caravantrade3_cargo_port"; + name = "Cargo Blast Door" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"gc" = ( +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"gd" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/shuttle/ruin/caravan/freighter3) +"gk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav) +"gq" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/left{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"gs" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"gt" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"gv" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/engineering, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/electrical, +/obj/item/storage/toolbox/electrical, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/multitool, +/obj/item/multitool, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"gw" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/north, +/obj/machinery/button/door/directional/north{ + id = "caravantrade3_cargo_port"; + name = "Cargo Blast Door Control" + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"gy" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/vacuum/directional/west{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"gP" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"gQ" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"gR" = ( +/obj/machinery/power/smes, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"gU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"gV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"gW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"gY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"ha" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow, +/obj/item/pen{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"hm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/ruin/caravan/freighter2) +"hn" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/ruin/caravan/freighter2) +"ho" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "caravantrade2_cargo_port"; + name = "Cargo Blast Door" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "caravantrade2_cargo_port"; + name = "Cargo Blast Door" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "caravantrade2_cargo_port"; + name = "Cargo Blast Door" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "caravantrade2_cargo_port"; + name = "Cargo Blast Door" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"ht" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/shuttle/ruin/caravan/freighter2) +"hu" = ( +/obj/machinery/space_heater, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"hv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"hw" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"hx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/engineering, +/obj/effect/spawner/random/exotic/technology, +/obj/effect/spawner/random/exotic/technology, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"hz" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"hB" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"hQ" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/left{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hT" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/gear, +/obj/item/ammo_casing/shotgun/ion, +/obj/item/ammo_casing/shotgun/pulseslug, +/obj/item/ammo_casing/shotgun/dragonsbreath, +/obj/item/ammo_casing/shotgun/stunslug, +/obj/item/ammo_casing/shotgun/stunslug, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"hU" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"hV" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/gear, +/obj/item/storage/box/rubbershot, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"hW" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/button/door/directional/north{ + id = "caravantrade2_cargo_port"; + name = "Cargo Blast Door Control" + }, +/obj/machinery/light/small/directional/north, +/obj/structure/closet/crate/secure, +/obj/effect/spawner/random/entertainment/money_large, +/obj/effect/spawner/random/entertainment/money_large, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"hX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/vacuum/directional/west{ + pixel_y = 32 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hY" = ( +/obj/structure/rack, +/obj/item/weldingtool, +/obj/item/crowbar, +/obj/item/wirecutters, +/obj/item/wrench, +/obj/item/screwdriver{ + pixel_y = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"hZ" = ( /obj/machinery/power/port_gen/pacman{ anchored = 1 }, @@ -214,7 +660,176 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter3) -"ey" = ( +"ia" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"ib" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/engineering, +/obj/effect/spawner/random/exotic/technology, +/obj/effect/spawner/random/exotic/technology, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"ic" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"id" = ( +/obj/effect/turf_decal/box/white/corners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"ie" = ( +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"if" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"ig" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/cargo_tech, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"ih" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/item/shard, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"io" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"ip" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"iq" = ( +/obj/machinery/power/smes, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"is" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"it" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 6 + }, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"iu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"iv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter2) +"ix" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 10 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"iy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/broken_flooring{ + icon_state = "pile" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"iz" = ( +/obj/item/shard, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"iA" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"iB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"iC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"iF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"iH" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter3) +"iT" = ( /obj/machinery/space_heater, /obj/machinery/power/terminal{ dir = 1 @@ -225,31 +840,74 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter2) -"eF" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"eO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, +"iU" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"eU" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door/directional/south{ - id = "caravantrade2_cargo_starboard"; - name = "Cargo Blast Door Control" +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"iV" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 }, -/obj/machinery/light/small/directional/south, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/disabler, /turf/open/floor/iron/dark/airless, /area/shuttle/ruin/caravan/freighter2) -"fh" = ( +"iX" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"iY" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron{ + initial_gas_mix = "TEMP=2.7" + }, +/area/shuttle/ruin/caravan/freighter2) +"ja" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/engineering, +/obj/item/organ/internal/cyberimp/arm/toolset, +/obj/item/organ/internal/cyberimp/eyes/hud/medical, +/obj/item/organ/internal/cyberimp/brain/anti_stun, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"jb" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"jc" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/plasma, +/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"jd" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/south, +/obj/machinery/button/door/directional/south{ + id = "caravantrade3_cargo_starboard"; + name = "Cargo Blast Door Control" + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"je" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/vacuum/directional/west{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"jp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/port_gen/pacman{ anchored = 1 @@ -261,54 +919,204 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter2) -"fm" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate/secure/weapon, -/obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"fy" = ( -/obj/effect/turf_decal/bot_white, -/obj/machinery/light/small/directional/south, -/obj/machinery/button/door/directional/south{ - id = "caravantrade3_cargo_starboard"; - name = "Cargo Blast Door Control" +"jq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jr" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/laser/retro, /turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"fG" = ( +/area/shuttle/ruin/caravan/freighter2) +"js" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/frame/computer, -/obj/item/shard, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"jt" = ( +/obj/effect/turf_decal/box/white/corners, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"ju" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium/airless, -/area/ruin/space/has_grav) -"gA" = ( +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jv" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/external/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/firealarm/directional/west, /turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter2) -"hg" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst/left{ +"jy" = ( +/obj/machinery/door/poddoor{ + id = "caravantrade3_cargo_starboard"; + name = "Cargo Blast Door" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter3) +"jA" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/engineering, +/obj/item/wrench/caravan, +/obj/item/wirecutters/caravan, +/obj/item/crowbar/red/caravan, +/obj/item/screwdriver/caravan, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter3) +"jH" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"jI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/pirate/ranged/space{ + environment_smash = 0 + }, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jN" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter2) +"jO" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/pirate/ranged/space{ + environment_smash = 0 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"jP" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/folder/yellow{ + pixel_x = -6 + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"jV" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst/right{ dir = 8 }, /turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter2) -"hj" = ( +"jW" = ( +/obj/effect/turf_decal/bot_white/left, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron/airless, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/machinery/button/door/directional/south{ + id = "caravantrade2_cargo_starboard"; + name = "Cargo Blast Door Control" + }, +/turf/open/floor/iron/dark/airless, /area/shuttle/ruin/caravan/freighter2) -"iR" = ( +"jX" = ( /obj/effect/turf_decal/bot_white, /obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"jY" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate/secure/gear, +/obj/item/storage/belt/bandolier, +/obj/item/storage/belt/holster, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"jZ" = ( +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"ka" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door/directional/south{ + id = "caravantrade2_cargo_starboard"; + name = "Cargo Blast Door Control" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"kb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/vacuum/directional/west{ + pixel_y = -32 + }, +/turf/open/floor/iron/dark/airless, +/area/shuttle/ruin/caravan/freighter2) +"kc" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/internals/oxygen, +/obj/item/radio, +/obj/item/clothing/mask/gas, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/airless, /area/shuttle/ruin/caravan/freighter2) -"jf" = ( +"kd" = ( +/obj/structure/grille/broken, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"ke" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/west, +/obj/machinery/door/poddoor{ + id = "caravantrade2_cargo_starboard"; + name = "Cargo Blast Door" + }, +/turf/open/floor/plating/airless, +/area/shuttle/ruin/caravan/freighter2) +"kf" = ( +/obj/machinery/door/poddoor{ + id = "caravantrade2_cargo_starboard"; + name = "Cargo Blast Door" + }, /turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter2) "kr" = ( @@ -347,867 +1155,59 @@ }, /turf/template_noop, /area/template_noop) -"kX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"lC" = ( +"lB" = ( /turf/closed/mineral/random/high_chance, /area/ruin/space/has_grav) -"lY" = ( +"lD" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav) +"qU" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/syndicate/ranged/smg/space, +/turf/open/floor/iron/airless, +/area/shuttle/ruin/caravan/freighter3) +"tH" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 8 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ruin/space/has_grav) +"vE" = ( /obj/machinery/door/airlock/external/ruin, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, /turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"mc" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst{ - dir = 8 - }, -/turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter3) -"mn" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/gibspawner/human, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"mD" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"mN" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/disabler, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"mR" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ruin/space/has_grav) -"mZ" = ( -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"nc" = ( -/obj/machinery/space_heater, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"nt" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/engineering, -/obj/item/wrench/caravan, -/obj/item/wirecutters/caravan, -/obj/item/crowbar/red/caravan, -/obj/item/screwdriver/caravan, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"nF" = ( -/obj/machinery/power/shuttle_engine/heater{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"oa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/preopen{ - id = "caravantrade2_cargo_port"; - name = "Cargo Blast Door" - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"om" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"oI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"oV" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum/directional/west{ - pixel_y = -32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"pq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor{ - id = "caravantrade2_cargo_starboard"; - name = "Cargo Blast Door" - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"pF" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"pL" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"qb" = ( -/obj/effect/spawner/structure/window/reinforced/shuttle, -/turf/open/floor/plating, -/area/shuttle/ruin/caravan/freighter3) -"qV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"qX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter2) -"rj" = ( -/obj/effect/turf_decal/bot_white/right, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/button/door/directional/north{ - id = "caravantrade3_cargo_port"; - name = "Cargo Blast Door Control" - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"rB" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/ruin/caravan/freighter3) -"sd" = ( -/obj/item/stack/sheet/iron, -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav) -"sk" = ( -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"so" = ( -/obj/effect/gibspawner/human, -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav) -"sx" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate/secure/gear, -/obj/item/storage/belt/bandolier, -/obj/item/storage/belt/holster, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"sR" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"tx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"tL" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate/secure/engineering, -/obj/item/organ/internal/cyberimp/arm/toolset, -/obj/item/organ/internal/cyberimp/eyes/hud/medical, -/obj/item/organ/internal/cyberimp/brain/anti_stun, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"tO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"tW" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"uY" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate/secure/gear, -/obj/item/ammo_casing/shotgun/ion, -/obj/item/ammo_casing/shotgun/pulseslug, -/obj/item/ammo_casing/shotgun/dragonsbreath, -/obj/item/ammo_casing/shotgun/stunslug, -/obj/item/ammo_casing/shotgun/stunslug, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"vg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/door_assembly/door_assembly_hatch{ - density = 0; - name = "broken airlock" - }, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav) -"vq" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/ruin/caravan/freighter3) -"vG" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade3_cargo_starboard"; - name = "Cargo Blast Door" - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"wc" = ( -/obj/machinery/airalarm/all_access{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"wB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/pirate/ranged/space{ - environment_smash = 0 - }, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"wC" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/engineering, -/obj/effect/spawner/random/exotic/technology, -/obj/effect/spawner/random/exotic/technology, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"wJ" = ( -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"wS" = ( -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"xD" = ( -/obj/machinery/power/smes, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"xM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"yk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/fluff/broken_flooring{ - icon_state = "singular" - }, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav) -"zk" = ( -/turf/closed/mineral/random, -/area/ruin/space/has_grav) -"zR" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate/secure/engineering, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/toolbox/electrical, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/multitool, -/obj/item/multitool, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"Ab" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade3_cargo_port"; - name = "Cargo Blast Door" - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"Aw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/basic/syndicate/ranged/smg/space, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"AA" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/laser/retro, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"AP" = ( -/obj/structure/rack, -/obj/item/weldingtool, -/obj/item/crowbar, -/obj/item/wirecutters, -/obj/item/wrench, -/obj/item/screwdriver{ - pixel_y = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"Bv" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium/airless, -/area/ruin/space/has_grav) -"Bz" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"BU" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate/secure/plasma, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"Cj" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/ruin/caravan/freighter2) -"Ct" = ( -/obj/machinery/door/airlock/external/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"DD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"DE" = ( +"wW" = ( /obj/effect/turf_decal/box/white/corners{ dir = 4 }, /mob/living/basic/syndicate/ranged/shotgun/space/stormtrooper, /turf/open/floor/iron/dark/airless, /area/shuttle/ruin/caravan/freighter3) -"Ek" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"EY" = ( -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav) -"Fr" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/pirate/ranged/space{ - environment_smash = 0 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"FG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/frame/computer{ - dir = 8 - }, -/obj/item/shard, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"FL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"FS" = ( -/obj/structure/table/reinforced, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/folder/yellow{ - pixel_x = -6 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"FU" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"FX" = ( -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"Ga" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/internals/oxygen, -/obj/item/radio, -/obj/item/clothing/mask/gas, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"Gu" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/gear, -/obj/item/storage/box/rubbershot, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"GP" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/mob_spawn/corpse/human/cargo_tech, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"GY" = ( -/obj/machinery/door/poddoor/preopen{ - id = "caravantrade2_cargo_port"; - name = "Cargo Blast Door" - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"Hw" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"IF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/all_access{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"IZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"Je" = ( +"Bq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"JE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"JI" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/flashlight, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"JQ" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"JW" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/ruin/caravan/freighter2) -"KC" = ( -/obj/item/stack/cable_coil{ - amount = 1 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav) -"Lx" = ( -/obj/structure/rack, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/gas, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"LC" = ( -/obj/effect/decal/cleanable/dirt, /mob/living/basic/syndicate/ranged/smg/space, /turf/open/floor/iron/airless, /area/shuttle/ruin/caravan/freighter3) -"Mt" = ( -/obj/effect/turf_decal/bot_white, +"Gh" = ( +/mob/living/basic/carp, +/turf/template_noop, +/area/template_noop) +"GL" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"MI" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/door_assembly/door_assembly_com{ - anchored = 1; - density = 0; - name = "broken airlock" - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"MT" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/e_gun/mini, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"Nl" = ( -/obj/machinery/airalarm/all_access{ - dir = 8; - pixel_x = -24 - }, -/obj/effect/decal/cleanable/blood, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"Nm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/pirate/ranged/space{ - environment_smash = 0 - }, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"NJ" = ( -/obj/machinery/power/shuttle_engine/heater{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"Oj" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum/directional/west{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"Pn" = ( -/obj/item/shard, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"Po" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/space/has_grav) -"PE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"PY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav) -"Qv" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"QE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"Rf" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter2) -"Sh" = ( -/obj/effect/turf_decal/bot_white, -/obj/machinery/button/door/directional/north{ - id = "caravantrade2_cargo_port"; - name = "Cargo Blast Door Control" - }, -/obj/machinery/light/small/directional/north, -/obj/structure/closet/crate/secure, -/obj/effect/spawner/random/entertainment/money_large, -/obj/effect/spawner/random/entertainment/money_large, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"Sk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron{ - initial_gas_mix = "TEMP=2.7" - }, -/area/shuttle/ruin/caravan/freighter3) -"Sy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"TA" = ( /obj/machinery/door/airlock/external/ruin, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, /turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"TP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/door_assembly/door_assembly_com{ - anchored = 1; - density = 0; - name = "broken airlock" - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"TU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter3) -"Vx" = ( -/obj/effect/turf_decal/bot_white, -/obj/machinery/light/small/directional/north, -/obj/machinery/button/door/directional/north{ - id = "caravantrade3_cargo_port"; - name = "Cargo Blast Door Control" - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"VV" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst/left{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter3) -"VX" = ( -/obj/structure/grille/broken, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, /area/shuttle/ruin/caravan/freighter2) -"Wb" = ( -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"WC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum/directional/west{ - pixel_y = -32 - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"WT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum/directional/west{ - pixel_y = 32 - }, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"Xe" = ( -/obj/machinery/power/shuttle_engine/propulsion/burst{ - dir = 8 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ruin/space/has_grav) -"XE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/fluff/broken_flooring{ - icon_state = "pile" - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/shuttle/ruin/caravan/freighter2) -"Yv" = ( -/obj/effect/turf_decal/bot_white/left, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/obj/machinery/button/door/directional/south{ - id = "caravantrade2_cargo_starboard"; - name = "Cargo Blast Door Control" - }, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter2) -"Zz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/airless, -/area/shuttle/ruin/caravan/freighter2) -"ZS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/engineering, -/obj/effect/spawner/random/exotic/technology, -/obj/effect/spawner/random/exotic/technology, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) -"ZX" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark/airless, -/area/shuttle/ruin/caravan/freighter3) (1,1,1) = {" aa @@ -1225,9 +1225,9 @@ aa aa aa aa -zk -zk -zk +bt +bt +bt aa aa aa @@ -1277,10 +1277,10 @@ aa aa aa aa -zk -zk -zk -zk +bt +bt +bt +bt aa aa aa @@ -1328,12 +1328,12 @@ aa aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa aa aa @@ -1380,12 +1380,12 @@ aa aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa aa aa @@ -1428,16 +1428,16 @@ aa aa aa aa -bl +Gh aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa aa aa @@ -1484,12 +1484,12 @@ aa aa aa aa -zk -zk -lC -zk -zk -zk +bt +bt +lB +bt +bt +bt aa aa aa @@ -1537,10 +1537,10 @@ aa aa aa aa -zk -zk -zk -zk +bt +bt +bt +bt aa aa aa @@ -1690,9 +1690,9 @@ aa aa aa aa -lC -lC -lC +lB +lB +lB aa aa aa @@ -1742,10 +1742,10 @@ aa aa aa aa -lC -lC -lC -lC +lB +lB +lB +lB aa aa aa @@ -1795,9 +1795,9 @@ aa aa aa aa -lC -lC -lC +lB +lB +lB aa aa aa @@ -1839,7 +1839,7 @@ aa aa aa aa -bl +Gh aa aa aa @@ -2036,8 +2036,8 @@ aa aa aa aa -zk -zk +bt +bt aa aa "} @@ -2086,11 +2086,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa "} (18,1,1) = {" @@ -2108,7 +2108,7 @@ aa aa aa aa -zk +bt aa aa aa @@ -2138,11 +2138,11 @@ aa aa aa aa -zk -zk -lC -zk -zk +bt +bt +lB +bt +bt aa "} (19,1,1) = {" @@ -2151,11 +2151,11 @@ aa aa aa aa -Xe -Po -vg -Po -mR +tH +dE +dL +dE +bJ aa aa aa @@ -2189,12 +2189,12 @@ aa aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa "} (20,1,1) = {" @@ -2202,15 +2202,15 @@ aa aa aa aa -Xe -Po -fG -Bv -KC -mR -mR +tH +dE +dF +eu +eG +bJ +bJ aa -zk +bt aa aa aa @@ -2241,11 +2241,11 @@ aa aa aa aa -zk -zk -lC -lC -zk +bt +bt +lB +lB +bt aa aa "} @@ -2253,17 +2253,17 @@ aa aa aa aa -mR -Po -Po -Po -yk -PY +bJ +dE +dE +dE +gk +lD bs -mR +bJ aa -zk -zk +bt +bt aa aa aa @@ -2293,11 +2293,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa aa "} @@ -2305,10 +2305,10 @@ aa aa aa aa -Po -mR +dE +bJ aa -mR +bJ bs bs aa @@ -2317,7 +2317,7 @@ aa aa aa aa -zk +bt aa aa aa @@ -2347,8 +2347,8 @@ aa aa aa aa -zk -zk +bt +bt aa aa aa @@ -2357,7 +2357,7 @@ aa aa aa aa -mR +bJ aa aa aa @@ -2416,10 +2416,10 @@ aa aa ac aa -EY -sd -zk -zk +dD +ex +bt +bt aa aa aa @@ -2460,20 +2460,20 @@ aa (25,1,1) = {" aa aa -zk -zk +bt +bt aa aa aa aa ad -zk -EY -zk -zk -zk -zk -zk +bt +dD +bt +bt +bt +bt +bt aa aa aa @@ -2499,10 +2499,10 @@ aa aa aa aa -zk -zk -zk -zk +bt +bt +bt +bt aa aa aa @@ -2511,21 +2511,21 @@ aa "} (26,1,1) = {" aa -zk -zk -zk +bt +bt +bt aa aa aa -so -zk -zk -EY -zk -zk -zk -zk -zk +ew +bt +bt +dD +bt +bt +bt +bt +bt aa aa aa @@ -2549,13 +2549,13 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt aa aa aa @@ -2569,16 +2569,16 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt aa aa aa @@ -2600,37 +2600,37 @@ aa aa aa as -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt aa aa aa aa "} (28,1,1) = {" -zk +bt aa aa aa -EY -EY -zk -zk -zk -lC -lC -zk -zk -zk -zk -zk -zk +dD +dD +bt +bt +bt +lB +lB +bt +bt +bt +bt +bt +bt aa aa aa @@ -2651,17 +2651,17 @@ aa aa aa aa -zk -zk -zk -EY -EY -EY -EY -zk -zk -zk -zk +bt +bt +bt +dD +dD +dD +dD +bt +bt +bt +bt aa aa "} @@ -2669,20 +2669,20 @@ aa aa aa aa -EY -zk -zk -zk -zk -lC -lC -lC -lC -zk -zk -zk -zk -zk +dD +bt +bt +bt +bt +lB +lB +lB +lB +bt +bt +bt +bt +bt aa aa aa @@ -2703,17 +2703,17 @@ aa aa aa aa -zk -zk -zk -EY -EY -zk -EY -EY -zk -zk -zk +bt +bt +bt +dD +dD +bt +dD +dD +bt +bt +bt aa aa "} @@ -2721,19 +2721,19 @@ aa aa aa aa -zk -zk -zk -zk -lC -lC -lC -lC -lC -zk -zk -zk -zk +bt +bt +bt +bt +lB +lB +lB +lB +lB +bt +bt +bt +bt aa aa aa @@ -2755,17 +2755,17 @@ aa aa aa br -zk -zk -EY -EY -zk -zk -zk -EY -zk -zk -zk +bt +bt +dD +dD +bt +bt +bt +dD +bt +bt +bt aa aa "} @@ -2773,18 +2773,18 @@ aa aa aa aa -zk -zk -zk -lC -lC -lC -lC -lC -zk -zk -zk -zk +bt +bt +bt +lB +lB +lB +lB +lB +bt +bt +bt +bt aa aa aa @@ -2806,18 +2806,18 @@ aa aa aa aa -zk -zk -zk -EY -EY -zk -zk -zk -EY -EY -zk -zk +bt +bt +bt +dD +dD +bt +bt +bt +dD +dD +bt +bt aa aa "} @@ -2825,18 +2825,18 @@ aa aa aa aa -zk -zk -zk -zk -lC -lC -lC -zk -zk -zk -zk -zk +bt +bt +bt +bt +lB +lB +lB +bt +bt +bt +bt +bt aa aa aa @@ -2858,37 +2858,37 @@ aa aa aa aa -zk -zk -zk -zk -EY -zk -zk -zk -zk -EY -zk -zk -zk +bt +bt +bt +bt +dD +bt +bt +bt +bt +dD +bt +bt +bt aa "} (33,1,1) = {" aa aa -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt aa aa aa @@ -2911,35 +2911,35 @@ aa aa aa aa -zk -zk -zk -EY -zk -zk -zk -zk -EY -EY -EY -zk +bt +bt +bt +dD +bt +bt +bt +bt +dD +dD +dD +bt aa "} (34,1,1) = {" aa aa -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt aa aa aa @@ -2963,34 +2963,34 @@ aa aa aa aa -zk -zk -zk -EY -EY -zk -zk -zk -zk -EY -EY -EY +bt +bt +bt +dD +dD +bt +bt +bt +bt +dD +dD +dD aa "} (35,1,1) = {" aa aa aa -zk -zk -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt +bt +bt aa aa aa @@ -3016,17 +3016,17 @@ aa aa aa aa -zk -zk -EY -EY -zk -zk -zk -zk -zk -zk -zk +bt +bt +dD +dD +bt +bt +bt +bt +bt +bt +bt aa "} (36,1,1) = {" @@ -3034,9 +3034,9 @@ aa aa aa aa -zk -zk -zk +bt +bt +bt aa aa aa @@ -3070,15 +3070,15 @@ aa aa aa aa -EY -EY -zk -zk -zk -zk -zk -zk -zk +dD +dD +bt +bt +bt +bt +bt +bt +bt aa "} (37,1,1) = {" @@ -3122,15 +3122,15 @@ aa aa aa aa -EY -zk -zk -zk -zk -zk -zk -zk -zk +dD +bt +bt +bt +bt +bt +bt +bt +bt aa "} (38,1,1) = {" @@ -3174,15 +3174,15 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt +bt aa "} (39,1,1) = {" @@ -3226,14 +3226,14 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt aa aa "} @@ -3281,10 +3281,10 @@ aa aa aa aa -zk -zk -zk -zk +bt +bt +bt +bt aa aa aa @@ -3334,8 +3334,8 @@ aa aa aa aa -zk -zk +bt +bt aa aa aa @@ -3366,14 +3366,14 @@ aa aa aa aa -Cj -hg -pL -pL -pL -pL -cJ -Cj +hm +hQ +io +io +io +io +jV +hm aa aa aa @@ -3418,14 +3418,14 @@ aa aa aa aa -JW -JW -nF -nF -nF -nF -JW -JW +hn +hn +ip +ip +ip +ip +hn +hn aa aa aa @@ -3470,14 +3470,14 @@ aa aa aa aa -JW -dU -cA -ey -fh -om -Yv -JW +hn +aY +iq +iT +jp +jH +jW +hn aa aa aa @@ -3490,7 +3490,7 @@ aa aa aa aa -bl +Gh aa aa aa @@ -3522,14 +3522,14 @@ aa aa aa aa -bN -iR -Nm -hj -oI -IZ -Bz -pq +ho +hU +aP +iU +jq +jI +jX +ke aa aa aa @@ -3574,14 +3574,14 @@ bs bs bs bs -oa -uY -Wb -mN -AA -Zz -sx -cF +hp +hT +is +iV +jr +jJ +jY +kf aa aa aa @@ -3626,14 +3626,14 @@ ah af af af -dH -iR -Sy -FL -FL -bU -FX -pq +hq +hU +it +js +js +jK +jZ +ke aa aa aa @@ -3678,14 +3678,14 @@ bs bs bs bs -GY -Gu -kX -FU -MT -wB -Bz -cF +hr +hV +iu +iX +jt +jL +jX +kf aa aa aa @@ -3730,14 +3730,14 @@ aa aa aa aa -JW -Sh -qX -Rf -IF -tx -eU -JW +hn +hW +iv +iY +ju +bi +ka +hn aa aa aa @@ -3782,14 +3782,14 @@ aa aa aa aa -JW -JW -MI -JW -JW -JW -JW -JW +hn +hn +aZ +hn +hn +hn +hn +hn aa aa aa @@ -3834,14 +3834,14 @@ aa aa aa aa -gA -WT -JE -cY -jf -sk -WC -lY +hs +hX +ix +bg +jv +jN +kb +GL aa aa aa @@ -3858,7 +3858,7 @@ aa aa aa aa -bl +Gh aa "} (52,1,1) = {" @@ -3886,14 +3886,14 @@ aa aa aa aa -dM -AP -XE +ht +hY +iy bs -mn -Fr -Ga -dM +bh +jO +kc +ht aa aa aa @@ -3943,9 +3943,9 @@ bs dc aa an -FS -dM -dM +jP +ht +ht aa aa aa @@ -3996,7 +3996,7 @@ aa bs aa bs -VX +kd aa aa aa @@ -4739,9 +4739,9 @@ aa aa aa aa -zk -zk -zk +bt +bt +bt aa aa "} @@ -4751,9 +4751,9 @@ aa aa aa aa -zk -zk -zk +bt +bt +bt aa aa aa @@ -4790,11 +4790,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa "} (70,1,1) = {" @@ -4802,11 +4802,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa aa aa @@ -4841,12 +4841,12 @@ aa aa aa aa -zk -zk -zk -lC -zk -zk +bt +bt +bt +lB +bt +bt aa "} (71,1,1) = {" @@ -4854,11 +4854,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa aa aa @@ -4893,25 +4893,25 @@ aa aa aa aa -zk -zk -lC -lC -lC -zk -zk +bt +bt +lB +lB +lB +bt +bt "} (72,1,1) = {" aa aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa aa aa @@ -4945,25 +4945,25 @@ aa aa aa aa -zk -zk -lC -lC -lC -zk -zk +bt +bt +lB +lB +lB +bt +bt "} (73,1,1) = {" aa aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa aa aa @@ -4997,13 +4997,13 @@ aa aa aa aa -zk -zk -zk -lC -lC -zk -zk +bt +bt +bt +lB +lB +bt +bt "} (74,1,1) = {" aa @@ -5011,11 +5011,11 @@ aa aa aa aa -zk -zk -lC -lC -zk +bt +bt +lB +lB +bt aa aa aa @@ -5050,11 +5050,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa "} (75,1,1) = {" @@ -5063,12 +5063,12 @@ aa aa aa aa -zk -zk -lC -lC -zk -zk +bt +bt +lB +lB +bt +bt aa aa aa @@ -5079,11 +5079,11 @@ aa aa aa aa -vq -VV -mc -mc -mc +fZ +gq +gP +gP +gP bs ab aE @@ -5104,9 +5104,9 @@ aa aa aa aa -zk -zk -zk +bt +bt +bt aa "} (76,1,1) = {" @@ -5116,11 +5116,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa aa aa @@ -5131,12 +5131,12 @@ aa aa aa aa -rB -rB -NJ -NJ -NJ -Pn +ga +ga +gQ +gQ +gQ +iz bs aa aD @@ -5169,10 +5169,10 @@ aa aa aa aa -zk -zk -zk -zk +bt +bt +bt +bt aa aa aa @@ -5183,11 +5183,11 @@ aa aa aa aa -rB -rj -xD -nc -dX +ga +av +gR +hu +hZ ai aT aa @@ -5222,8 +5222,8 @@ aa aa aa aa -zk -zk +bt +bt aa aa aa @@ -5235,13 +5235,13 @@ aa aa aa aa -Ab -Mt -TU -bv -QE -JQ -wJ +gb +gs +aN +hv +ia +iA +ak ap aa aa @@ -5287,14 +5287,14 @@ aa aa aa aa -Ab -nt -LC -sR -wC -Je -tL -wJ +gb +jA +qU +hw +ib +iB +ja +ak aa aa aa @@ -5324,7 +5324,7 @@ aa aa aa aa -lC +lB aa aa aa @@ -5339,14 +5339,14 @@ aa aa aa aa -Ab -fm -Ek -ZS -qV -DD -pF -vG +gb +gt +gU +hx +ic +iC +jb +jy aa aa aa @@ -5375,9 +5375,9 @@ aa aa aa aa -lC -lC -lC +lB +lB +lB aa aa aa @@ -5391,14 +5391,14 @@ aa aa aa aa -Ab -zR -tO -DE -Hw -Aw -BU -vG +gb +gv +gV +wW +id +Bq +jc +jy aa aa aa @@ -5428,9 +5428,9 @@ aa aa aa aa -lC -lC -lC +lB +lB +lB aa aa aa @@ -5443,14 +5443,14 @@ aa aa aa aa -rB -Vx -Sk -Qv -wc -PE -fy -rB +ga +gw +gW +hz +ie +aR +jd +ga aa aa aa @@ -5480,8 +5480,8 @@ aa aa aa aa -lC -lC +lB +lB aa aa aa @@ -5495,14 +5495,14 @@ aa aa aa aa -rB -rB -TP -rB -rB -rB -rB -rB +ga +ga +aW +ga +ga +ga +ga +ga aa aa aa @@ -5547,14 +5547,14 @@ aa aa aa aa -Ct -Oj -eO -Nl -mZ -ZX -oV -TA +gc +gy +gY +aO +if +iF +je +vE aa aa aa @@ -5599,14 +5599,14 @@ aa aa aa aa -qb -JI -xM -wS -GP -eF -Lx -qb +gd +aw +aG +hB +ig +aM +aQ +gd aa aa aa @@ -5641,24 +5641,24 @@ aa aa aa aa -zk -zk -zk -zk +bt +bt +bt +bt aa aa aa aa aa aa -qb -qb -mD -FG -dr -tW -qb -qb +gd +gd +ha +aI +ih +iH +gd +gd aa aa aa @@ -5692,24 +5692,24 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt +bt aa aa aa aa -qb -qb -qb -qb -qb -qb +gd +gd +gd +gd +gd +gd aa aa aa @@ -5743,16 +5743,16 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk -zk -EY -EY +bt +bt +bt +bt +bt +bt +bt +bt +dD +dD aa aa aa @@ -5789,22 +5789,22 @@ aa aa aa aa -bl +Gh aa aa aa aa aa -zk -zk -zk -zk -zk -zk -EY -EY -EY -EY +bt +bt +bt +bt +bt +bt +dD +dD +dD +dD aa aa aa @@ -5848,15 +5848,15 @@ aa aa aa aa -zk -zk -zk -EY -EY -EY -EY -zk -zk +bt +bt +bt +dD +dD +dD +dD +bt +bt aa aa aa @@ -5901,14 +5901,14 @@ aa aa aa aa -EY -EY -EY -EY -zk -zk -zk -zk +dD +dD +dD +dD +bt +bt +bt +bt aa aa aa @@ -5954,13 +5954,13 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt +bt aa aa aa @@ -6006,12 +6006,12 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt aa aa aa @@ -6058,12 +6058,12 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt aa aa aa @@ -6110,12 +6110,12 @@ aa aa aa aa -zk -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt +bt aa aa aa @@ -6162,11 +6162,11 @@ aa aa aa aa -zk -zk -zk -zk -zk +bt +bt +bt +bt +bt aa aa aa @@ -6215,9 +6215,9 @@ aa aa aa aa -zk -zk -zk +bt +bt +bt aa aa aa diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index cc8b805a07d..c3619a10190 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -3,7 +3,7 @@ /turf/template_noop, /area/template_noop) "ab" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/template_noop, /area/template_noop) "ad" = ( diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/luna.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/luna.dmm index 1adab1bdcd4..88af0d37ebb 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/luna.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/luna.dmm @@ -329,7 +329,7 @@ /turf/open/misc/grass, /area/ruin/space/has_grav/powered/skyrat/luna) "IA" = ( -/mob/living/simple_animal/hostile/carp{ +/mob/living/basic/carp{ dir = 8 }, /turf/open/misc/asteroid/airless, @@ -433,7 +433,7 @@ /turf/open/misc/grass, /area/ruin/space/has_grav/powered/skyrat/luna) "TH" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/misc/asteroid/airless, /area/ruin/unpowered) "Vs" = ( diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm index 0396fd957cf..1d4f6fe9222 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm @@ -201,17 +201,6 @@ /obj/effect/turf_decal/tile/brown/full, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) -"gl" = ( -/mob/living/basic/syndicate/ranged{ - desc = "Yarr-harr fiddley dee."; - faction = list("pirate"); - name = "Pirate Operative" - }, -/obj/effect/turf_decal/trimline/dark_red/filled/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered) "gy" = ( /obj/structure/table, /obj/machinery/microwave, @@ -287,6 +276,16 @@ }, /turf/open/floor/carpet, /area/ruin/space/has_grav/powered) +"jO" = ( +/mob/living/basic/carp/mega{ + faction = list("pirate"); + health = 50; + maxHealth = 50; + name = "Jack" + }, +/obj/effect/turf_decal/trimline/dark_red/filled/line, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered) "kb" = ( /turf/open/misc/asteroid/lowpressure, /area/ruin/space) @@ -327,6 +326,17 @@ /obj/machinery/vending/toyliberationstation, /turf/open/floor/wood, /area/ruin/space/has_grav/powered) +"lq" = ( +/mob/living/basic/syndicate/ranged{ + desc = "Yarr-harr fiddley dee."; + faction = list("pirate"); + name = "Pirate Operative" + }, +/obj/effect/turf_decal/trimline/dark_red/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered) "lC" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/burgundy, @@ -359,18 +369,6 @@ }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) -"na" = ( -/mob/living/basic/syndicate/melee{ - desc = "Yo-ho-ho he took a bite'a gum-gum."; - faction = list("pirate"); - name = "Pirate Operative" - }, -/obj/effect/turf_decal/trimline/dark_red/filled/line, -/obj/effect/turf_decal/trimline/dark_red/filled/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered) "nf" = ( /obj/effect/turf_decal/trimline/dark_red/filled/line{ dir = 1 @@ -435,7 +433,7 @@ "oZ" = ( /turf/open/floor/engine, /area/ruin/space) -"pu" = ( +"pf" = ( /mob/living/basic/syndicate/ranged{ desc = "Yarr-harr fiddley dee."; faction = list("pirate"); @@ -472,6 +470,17 @@ }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) +"pT" = ( +/mob/living/basic/syndicate/melee{ + desc = "Yo-ho-ho he took a bite'a gum-gum."; + faction = list("pirate"); + name = "Pirate Operative" + }, +/obj/effect/turf_decal/trimline/dark_red/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered) "pV" = ( /obj/machinery/computer{ dir = 1 @@ -487,14 +496,6 @@ /obj/effect/turf_decal/tile/dark_blue/fourcorners, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) -"qy" = ( -/mob/living/basic/syndicate/melee{ - desc = "Yo-ho-ho he took a bite'a gum-gum."; - faction = list("pirate"); - name = "Pirate Operative" - }, -/turf/open/floor/wood, -/area/ruin/space/has_grav/powered) "qX" = ( /obj/structure/closet/secure_closet/freezer/meat{ req_access = null @@ -737,17 +738,6 @@ }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) -"xD" = ( -/mob/living/basic/syndicate/melee{ - desc = "Yo-ho-ho he took a bite'a gum-gum."; - faction = list("pirate"); - name = "Pirate Operative" - }, -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered) "xL" = ( /obj/structure/table, /obj/item/reagent_containers/cocaine, @@ -841,16 +831,6 @@ }, /turf/open/floor/wood, /area/ruin/space/has_grav/powered) -"zR" = ( -/mob/living/simple_animal/hostile/carp/megacarp{ - faction = list("pirate"); - health = 50; - maxHealth = 50; - name = "Jack" - }, -/obj/effect/turf_decal/trimline/dark_red/filled/line, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered) "An" = ( /obj/structure/closet/crate, /obj/effect/spawner/random/exotic/antag_gear_weak, @@ -887,7 +867,7 @@ }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) -"BV" = ( +"Cj" = ( /mob/living/basic/syndicate/ranged{ desc = "Yarr-harr fiddley dee."; faction = list("pirate"); @@ -1062,6 +1042,18 @@ /obj/effect/spawner/random/engineering/material_cheap, /turf/open/floor/engine, /area/ruin/space/has_grav/powered) +"HP" = ( +/mob/living/basic/syndicate/melee{ + desc = "Yo-ho-ho he took a bite'a gum-gum."; + faction = list("pirate"); + name = "Pirate Operative" + }, +/obj/effect/turf_decal/trimline/dark_red/filled/line, +/obj/effect/turf_decal/trimline/dark_red/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered) "Iy" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -1072,6 +1064,14 @@ }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) +"Jl" = ( +/mob/living/basic/syndicate/melee{ + desc = "Yo-ho-ho he took a bite'a gum-gum."; + faction = list("pirate"); + name = "Pirate Operative" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered) "Js" = ( /turf/open/floor/wood, /area/ruin/space/has_grav/powered) @@ -1147,6 +1147,20 @@ /obj/effect/turf_decal/tile/brown/full, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) +"MG" = ( +/mob/living/basic/syndicate/melee{ + desc = "Yo-ho-ho he took a bite'a gum-gum."; + faction = list("pirate"); + name = "Pirate Operative" + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered) "MX" = ( /obj/machinery/computer/slot_machine, /turf/open/floor/wood, @@ -1165,20 +1179,6 @@ }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered) -"Nz" = ( -/mob/living/basic/syndicate/melee{ - desc = "Yo-ho-ho he took a bite'a gum-gum."; - faction = list("pirate"); - name = "Pirate Operative" - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered) "NJ" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/crate/large, @@ -1986,14 +1986,14 @@ oR hl xg eV -Nz +MG Et fN oR WT us Js -qy +Jl Js Js Js @@ -2194,11 +2194,11 @@ Js Js oR Gm -BV +Cj dP dP dP -zR +jO oR qX us @@ -2382,7 +2382,7 @@ rA AA uc Zj -na +HP pV oR Gm @@ -2457,7 +2457,7 @@ Kj Kj Kj Kj -xD +pT Kj zx oR @@ -2546,7 +2546,7 @@ Js pA oR Dy -pu +pf hN hN hN @@ -2613,7 +2613,7 @@ vY kh oR FP -gl +lq dP dP dP diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm index 067034d9662..203bb42a125 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm @@ -3049,7 +3049,7 @@ /area/ruin/space/has_grav/port_tarkon/starboardhall) "qD" = ( /obj/structure/lattice, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "qF" = ( @@ -3738,7 +3738,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/developement) "uo" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) @@ -5359,7 +5359,7 @@ /turf/open/floor/cult, /area/ruin/space/has_grav/port_tarkon/comms) "Eb" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) "Ed" = ( @@ -5517,7 +5517,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/trauma) "EW" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /turf/open/space/basic, /area/template_noop) "EY" = ( @@ -7907,7 +7907,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon) "RM" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "RN" = ( diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm index a054d0340cb..ab5ddb70acf 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm @@ -3055,7 +3055,7 @@ /area/ruin/space/has_grav/port_tarkon/centerhall) "qD" = ( /obj/structure/lattice, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "qF" = ( @@ -3713,7 +3713,7 @@ /turf/open/misc/asteroid, /area/ruin/space/has_grav) "uo" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) @@ -4201,7 +4201,7 @@ /area/ruin/space/has_grav/port_tarkon/dorms) "xs" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/porthall) "xt" = ( @@ -5229,7 +5229,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/comms) "Eb" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) "Ed" = ( @@ -5386,7 +5386,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/trauma) "EW" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /turf/open/space/basic, /area/template_noop) "EY" = ( @@ -5977,7 +5977,7 @@ /area/ruin/space/has_grav/port_tarkon/dorms) "Io" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/turf_decal/caution/stand_clear, /obj/effect/turf_decal/tile/brown/half, /turf/open/floor/iron/airless, @@ -6540,7 +6540,7 @@ name = "External Bay Shutters" }, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/turf_decal/trimline/yellow/filled/warning, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/storage) @@ -6973,7 +6973,7 @@ "Om" = ( /obj/structure/lattice, /obj/effect/decal/cleanable/glass, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav/port_tarkon/porthall) "On" = ( @@ -7522,7 +7522,7 @@ /turf/closed/wall/mineral/titanium, /area/ruin/space/has_grav) "RM" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "RO" = ( diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm index 05bd0e89341..71d05851663 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm @@ -47,7 +47,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/comms) "ap" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -278,7 +278,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/glass, /turf/open/floor/iron/airless, @@ -289,7 +289,7 @@ /area/ruin/space/has_grav/port_tarkon/atmos) "bX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/observ) @@ -321,7 +321,7 @@ /turf/closed/wall/r_wall, /area/ruin/space/has_grav/port_tarkon/atmos) "ce" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) @@ -590,7 +590,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/cargo) "dN" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/lattice, /turf/open/misc/asteroid/airless, @@ -754,7 +754,7 @@ /area/ruin/space/has_grav/port_tarkon/atmos) "eT" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) @@ -891,7 +891,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/loading_area, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) "fL" = ( @@ -1105,7 +1105,7 @@ "hi" = ( /obj/machinery/firealarm/directional/north, /obj/effect/decal/cleanable/glass, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -1291,7 +1291,7 @@ "ih" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/glass, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) "ik" = ( @@ -1434,7 +1434,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/developement) "iW" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -2633,13 +2633,13 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/centerhall) "qw" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/atmos) "qD" = ( /obj/structure/lattice, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "qF" = ( @@ -2692,7 +2692,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/starboardhall) "qT" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/item/stack/rods, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) @@ -2898,7 +2898,7 @@ /area/ruin/space/has_grav/port_tarkon/starboardhall) "sf" = ( /obj/structure/cable, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -3224,7 +3224,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/storage) "uk" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -3246,7 +3246,7 @@ /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) "uo" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) @@ -3980,7 +3980,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) @@ -4047,7 +4047,7 @@ /area/ruin/space/has_grav/port_tarkon/power1) "Ax" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) "AA" = ( @@ -4525,7 +4525,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/porthall) "DN" = ( @@ -4575,7 +4575,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/comms) "Eb" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) "Ed" = ( @@ -4685,7 +4685,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/trauma) "EW" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /turf/open/space/basic, /area/template_noop) "EY" = ( @@ -4968,7 +4968,7 @@ /turf/open/floor/engine/n2o, /area/ruin/space/has_grav/port_tarkon/atmos) "GD" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark/airless, @@ -5134,7 +5134,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/mining) "HP" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/observ) @@ -5249,7 +5249,7 @@ /area/ruin/space/has_grav/port_tarkon/dorms) "Io" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/turf_decal/caution/stand_clear, /obj/effect/turf_decal/tile/brown/half, /turf/open/floor/iron/airless, @@ -5698,7 +5698,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) "KZ" = ( @@ -5811,7 +5811,7 @@ /area/ruin/space/has_grav/port_tarkon/centerhall) "LH" = ( /obj/machinery/firealarm/directional/north, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) @@ -6481,7 +6481,7 @@ locked = 0; start_charge = 0 }, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/observ) @@ -6553,7 +6553,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/garden) "Rk" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -6633,7 +6633,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon) "RM" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "RN" = ( @@ -6663,7 +6663,7 @@ /area/ruin/space/has_grav/port_tarkon/observ) "RT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/developement) @@ -6964,7 +6964,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/porthall) "TF" = ( @@ -7304,7 +7304,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) "VQ" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) @@ -7453,7 +7453,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) "WL" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/forehall) @@ -7514,7 +7514,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/garden) "Xk" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /obj/item/stack/rods, /turf/open/floor/iron/airless, @@ -7730,7 +7730,7 @@ /obj/effect/turf_decal/stripes{ dir = 1 }, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark/airless, /area/ruin/space/has_grav/port_tarkon/atmos) @@ -7818,7 +7818,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/centerhall) "ZF" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/port_tarkon/observ) diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm index 85b61c98a42..9da06f435db 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm @@ -2889,7 +2889,7 @@ /area/ruin/space/has_grav/port_tarkon/atmos) "qD" = ( /obj/structure/lattice, -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "qF" = ( @@ -3484,7 +3484,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/developement) "uo" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) @@ -4980,7 +4980,7 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/port_tarkon/comms) "Eb" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/misc/asteroid/airless, /area/ruin/space/has_grav) "Ed" = ( @@ -5130,7 +5130,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon/trauma) "EW" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /turf/open/space/basic, /area/template_noop) "EY" = ( @@ -7292,7 +7292,7 @@ /turf/open/floor/iron, /area/ruin/space/has_grav/port_tarkon) "RM" = ( -/mob/living/simple_animal/hostile/carp, +/mob/living/basic/carp, /turf/open/space/basic, /area/template_noop) "RO" = ( diff --git a/_maps/RandomZLevels/blackmesa.dmm b/_maps/RandomZLevels/blackmesa.dmm index b13535a5009..4e662d515e0 100644 --- a/_maps/RandomZLevels/blackmesa.dmm +++ b/_maps/RandomZLevels/blackmesa.dmm @@ -5235,7 +5235,7 @@ /area/awaymission/black_mesa/black_ops_bus) "cXv" = ( /obj/effect/spawner/liquids_spawner, -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /turf/open/floor/iron/pool, /area/awaymission/black_mesa/deep_sci_feesh) "cXw" = ( @@ -6717,7 +6717,7 @@ }, /area/awaymission/black_mesa/xen/lost_camp_hallway) "fQk" = ( -/mob/living/simple_animal/hostile/carp/megacarp, +/mob/living/basic/carp/mega, /obj/effect/spawner/liquids_spawner, /turf/open/floor/iron/pool, /area/awaymission/black_mesa/deep_sci_feesh) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 64dcec5b0fb..92a94b67e8b 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -30628,12 +30628,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/electrical) -"hto" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 4 - }, -/turf/open/space/basic, -/area/space) "htq" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/bot, @@ -36246,6 +36240,30 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"iPE" = ( +/obj/item/paper_bin{ + pixel_x = -7 + }, +/obj/item/pen{ + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/table, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) "iPJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -44211,10 +44229,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/chapel) -"kIg" = ( -/obj/docking_port/stationary/escape_pod, -/turf/open/space/basic, -/area/space) "kIl" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -67488,6 +67502,22 @@ /obj/structure/sign/departments/aiupload/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"qwZ" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/machinery/button/door/directional/south{ + id = "Toilet_Med"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/food/grilled_cheese_sandwich, +/turf/open/floor/iron/cafeteria, +/area/station/medical/break_room) "qxi" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -68233,6 +68263,14 @@ }, /turf/open/floor/iron, /area/station/commons/lounge) +"qGM" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/dark_red{ + dir = 1 + }, +/mob/living/basic/carp/pet/lia, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/hos) "qGQ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -70077,22 +70115,6 @@ /obj/effect/landmark/navigate_destination/dockescpod1, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"rfQ" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/newscaster/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/machinery/button/door/directional/south{ - id = "Toilet_Med"; - name = "Lock Control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/obj/item/food/grilled_cheese_sandwich, -/turf/open/floor/iron/cafeteria, -/area/station/medical/break_room) "rgf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -73458,30 +73480,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/hallway/secondary/exit/departure_lounge) -"rVl" = ( -/obj/item/paper_bin{ - pixel_x = -7 - }, -/obj/item/pen{ - pixel_x = -7 - }, -/obj/item/reagent_containers/cup/glass/mug/britcup{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "rVs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74102,6 +74100,27 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) +"scT" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/newscaster/directional/east, +/obj/effect/spawner/random/structure/table_fancy, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + desc = "Whatever it is, it reeks of foul, putrid froth."; + list_reagents = list(/datum/reagent/consumable/ethanol/bacchus_blessing=15); + name = "Delta-Down"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) "sdi" = ( /obj/machinery/atmospherics/pipe/smart/manifold/supply/visible, /obj/effect/turf_decal/tile/yellow{ @@ -78657,27 +78676,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"tjq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/newscaster/directional/east, -/obj/effect/spawner/random/structure/table_fancy, -/obj/item/reagent_containers/cup/glass/bottle/beer{ - desc = "Whatever it is, it reeks of foul, putrid froth."; - list_reagents = list(/datum/reagent/consumable/ethanol/bacchus_blessing=15); - name = "Delta-Down"; - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = -6; - pixel_y = 3 - }, -/turf/open/floor/wood, -/area/station/commons/dorms) "tjI" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/effect/turf_decal/stripes/line{ @@ -81757,6 +81755,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"tWk" = ( +/obj/docking_port/stationary/escape_pod, +/turf/open/space/basic, +/area/space) "tWl" = ( /turf/open/floor/iron, /area/station/science/research/abandoned) @@ -84657,6 +84659,12 @@ /obj/item/clothing/mask/surgical, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"uFY" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) "uGf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -98098,14 +98106,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"xTE" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/dark_red{ - dir = 1 - }, -/mob/living/simple_animal/hostile/carp/lia, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/hos) "xTJ" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -131435,7 +131435,7 @@ odd aaa aaa aaa -kIg +tWk eBZ gzG ogM @@ -136061,7 +136061,7 @@ lUo aaa aaa aaa -kIg +tWk eBZ gzG rfH @@ -139710,7 +139710,7 @@ xeH qAV xYZ vGf -rVl +iPE cAw sJd khn @@ -142122,7 +142122,7 @@ vxc dki lcw gyn -rfQ +qwZ lvZ lvZ lvZ @@ -152358,7 +152358,7 @@ aaa aad vop qqe -tjq +scT yaI fNn uEo @@ -154633,7 +154633,7 @@ aad aad bRF wQo -xTE +qGM hOw trV hOw @@ -155955,7 +155955,7 @@ efQ aad uKw aaa -hto +uFY aaa uKw aaa @@ -157967,7 +157967,7 @@ efQ aad gJk aaa -hto +uFY aaa gJk qYo diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index a151e0a4ac3..1caa592479f 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -246,6 +246,12 @@ /obj/machinery/air_sensor/nitrogen_tank, /turf/open/floor/engine/n2, /area/station/engineering/atmos) +"afr" = ( +/obj/structure/bed/dogbed/lia, +/mob/living/basic/carp/pet/lia, +/obj/structure/cable, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hos) "afs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ @@ -2386,18 +2392,6 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating, /area/mine/eva/lower) -"aNx" = ( -/obj/structure/table/wood, -/obj/item/phone{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/mug/britcup{ - pixel_x = 8; - pixel_y = 8 - }, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) "aNP" = ( /obj/structure/window/reinforced{ dir = 8 @@ -14447,6 +14441,12 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) +"eqd" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "eqj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria{ @@ -26330,6 +26330,36 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"ibv" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/button/flasher{ + pixel_y = -32; + id = "hopflash"; + pixel_x = 8 + }, +/obj/machinery/button/door/directional/south{ + pixel_x = -8; + req_access = list("hop"); + id = "hopqueue"; + name = "Queue Shutters Control" + }, +/obj/machinery/button/door/directional/south{ + pixel_x = 8; + name = "Privacy Shutters Control"; + req_access = list("hop"); + id = "hop" + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/button/ticket_machine{ + pixel_x = -8; + pixel_y = -32 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "ibw" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -32155,6 +32185,12 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) +"jPz" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "jPB" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -34325,36 +34361,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"kyv" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/button/flasher{ - pixel_y = -32; - id = "hopflash"; - pixel_x = 8 - }, -/obj/machinery/button/door/directional/south{ - pixel_x = -8; - req_access = list("hop"); - id = "hopqueue"; - name = "Queue Shutters Control" - }, -/obj/machinery/button/door/directional/south{ - pixel_x = 8; - name = "Privacy Shutters Control"; - req_access = list("hop"); - id = "hop" - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/button/ticket_machine{ - pixel_x = -8; - pixel_y = -32 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "kyy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -35903,6 +35909,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/lobby) +"kTV" = ( +/obj/structure/table/wood, +/obj/item/phone{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/carpet/red, +/area/station/commons/vacant_room/office) "kUb" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -47301,12 +47319,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"oxJ" = ( -/obj/structure/bed/dogbed/lia, -/mob/living/simple_animal/hostile/carp/lia, -/obj/structure/cable, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/hos) "oxO" = ( /turf/open/floor/plating, /area/station/maintenance/aft/lesser) @@ -49341,12 +49353,6 @@ /obj/item/storage/book/bible, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"peH" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 8 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "peV" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -55627,10 +55633,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/primary/central) -"rcH" = ( -/obj/docking_port/stationary/escape_pod, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "rcN" = ( /obj/effect/turf_decal/siding/yellow{ dir = 5 @@ -58163,12 +58165,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/textured, /area/station/security/processing) -"rVz" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 4 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "rVA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70739,6 +70735,10 @@ /obj/machinery/vending/wardrobe/curator_wardrobe, /turf/open/floor/engine/cult, /area/station/service/library) +"vRh" = ( +/obj/docking_port/stationary/escape_pod, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "vRo" = ( /obj/machinery/shower/directional/north, /obj/effect/turf_decal/trimline/blue/line{ @@ -218172,7 +218172,7 @@ bln sEB bln sEB -peH +eqd sEB bln bln @@ -218186,7 +218186,7 @@ bln bln bln sEB -peH +eqd sEB bln bln @@ -224617,7 +224617,7 @@ nwT hkb aaT fFT -aNx +kTV bPw tKI lgr @@ -235942,7 +235942,7 @@ hNN keN kLm cac -kyv +ibv cpm dnq ylU @@ -238446,7 +238446,7 @@ lQc nbp mgU nlz -oxJ +afr nBx azx tDw @@ -241273,7 +241273,7 @@ xiI bln bln bln -rcH +vRh pDC clq qgO @@ -243695,7 +243695,7 @@ kcG qwF wYJ sEB -rVz +jPz sEB nyA njm diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 6b8f9bf8f1d..08baa9d8c8d 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -4048,6 +4048,14 @@ /obj/structure/flora/rock/style_random, /turf/open/misc/asteroid, /area/space/nearstation) +"bjX" = ( +/mob/living/basic/carp{ + environment_smash = 0; + name = "Tuna"; + real_name = "Tuna" + }, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "bkn" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -5422,10 +5430,6 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"bFQ" = ( -/obj/docking_port/stationary/escape_pod, -/turf/open/space/basic, -/area/space) "bGx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /obj/effect/decal/cleanable/dirt, @@ -6451,6 +6455,12 @@ }, /turf/open/floor/iron/dark/corner, /area/station/hallway/primary/port) +"bZB" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) "bZE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6602,12 +6612,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"ccg" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 4 - }, -/turf/open/space/basic, -/area/space) "ccr" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/stripes/line{ @@ -9156,12 +9160,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/lowpressure, /area/space/nearstation) -"cOd" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 8 - }, -/turf/open/space/basic, -/area/space) "cOf" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -16180,10 +16178,6 @@ "ePm" = ( /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"ePI" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/space/basic, -/area/space/nearstation) "ePU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19420,6 +19414,12 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark, /area/station/commons/storage/art) +"fFY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) "fGu" = ( /turf/closed/wall, /area/station/security/checkpoint/engineering) @@ -22829,12 +22829,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"gCs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "gCu" = ( /obj/structure/chair{ dir = 8 @@ -23039,6 +23033,15 @@ /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/plating, /area/station/cargo/warehouse) +"gFu" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/obj/structure/reagent_dispensers/wall/peppertank/directional/east, +/obj/structure/bed/dogbed/cayenne{ + name = "Lia's bed" + }, +/mob/living/basic/carp/pet/lia, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) "gFA" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -23491,12 +23494,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"gKV" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 2 - }, -/turf/open/space/basic, -/area/space) "gLm" = ( /obj/machinery/status_display/ai/directional/south, /obj/effect/decal/cleanable/dirt, @@ -28220,6 +28217,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"hYT" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) "hYY" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/decal/cleanable/dirt, @@ -31678,10 +31681,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"iSY" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "iTj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters{ @@ -34721,6 +34720,10 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"jMQ" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space) "jMU" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -40583,6 +40586,10 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) +"lwY" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/space/basic, +/area/space/nearstation) "lxf" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -47018,6 +47025,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/service/chapel) +"nta" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) "ntb" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -54265,12 +54278,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"pzk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "pzm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54859,6 +54866,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/drone_bay) +"pHK" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) "pIa" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -55583,6 +55594,10 @@ /obj/effect/landmark/start/geneticist, /turf/open/floor/iron/showroomfloor, /area/station/science/genetics) +"pSf" = ( +/obj/docking_port/stationary/escape_pod, +/turf/open/space/basic, +/area/space) "pSh" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -64595,10 +64610,6 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/aft) -"svA" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space) "svC" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -69020,6 +69031,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tEU" = ( +/obj/docking_port/stationary/random{ + dir = 4; + name = "lavaland"; + shuttle_id = "pod_4_lavaland" + }, +/turf/open/space, +/area/space/nearstation) "tEX" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69359,6 +69378,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"tKZ" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 2 + }, +/turf/open/space/basic, +/area/space) "tLh" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -76832,15 +76857,6 @@ "vOX" = ( /turf/closed/wall/rust, /area/station/maintenance/starboard) -"vOZ" = ( -/obj/machinery/computer/security/telescreen/entertainment/directional/south, -/obj/structure/reagent_dispensers/wall/peppertank/directional/east, -/obj/structure/bed/dogbed/cayenne{ - name = "Lia's bed" - }, -/mob/living/simple_animal/hostile/carp/lia, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hos) "vPd" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -78734,14 +78750,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison) -"woH" = ( -/mob/living/simple_animal/hostile/carp{ - environment_smash = 0; - name = "Tuna"; - real_name = "Tuna" - }, -/turf/open/misc/asteroid/airless, -/area/space/nearstation) "woJ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -79326,14 +79334,6 @@ luminosity = 2 }, /area/station/engineering/supermatter) -"wxy" = ( -/obj/docking_port/stationary/random{ - dir = 4; - name = "lavaland"; - shuttle_id = "pod_4_lavaland" - }, -/turf/open/space, -/area/space/nearstation) "wxF" = ( /obj/structure/table/wood, /obj/effect/spawner/random/maintenance, @@ -96670,9 +96670,9 @@ wDI aeu aeu aDT -gCs +nta lHD -gCs +nta sRm aeu ycx @@ -97699,7 +97699,7 @@ ycx vjh vjh aaa -cOd +bZB aaa ycx vjh @@ -99982,7 +99982,7 @@ aeu aeU aeU coy -woH +bjX aDS tpp bFI @@ -102631,7 +102631,7 @@ aaa aaa aaa cry -ePI +lwY acK aaa aaa @@ -102884,7 +102884,7 @@ gDy hOU aHz kZK -gKV +tKZ aaa aaa cry @@ -103145,7 +103145,7 @@ aaa aaa aaa cry -ePI +lwY acK aaa aaa @@ -105967,7 +105967,7 @@ lZr jPG sYu mIR -vOZ +gFu afL aeu aeU @@ -126178,7 +126178,7 @@ aaa aaa aaa acK -pzk +fFY cry aaa aaa @@ -126439,7 +126439,7 @@ iak cry aaa aaa -bFQ +pSf fRt oBf nxa @@ -126692,7 +126692,7 @@ aaB aaa aaa acK -pzk +fFY cry aaa aaa @@ -130066,7 +130066,7 @@ rZV vOX vOX aaa -ccg +hYT aaa rZV mtc @@ -131094,7 +131094,7 @@ aeU aof qJs cry -wxy +tEU cry qJs aeu @@ -131350,9 +131350,9 @@ cmU aeU aeU aaQ -svA -iSY -svA +jMQ +pHK +jMQ acm aeu aeu diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm index dc053e3a5e7..1ae59a4221a 100644 --- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm +++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm @@ -877,6 +877,13 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"amH" = ( +/obj/structure/window/spawner, +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/bot, +/turf/open/floor/wood/large, +/area/station/science/research) "amO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -892,6 +899,10 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) +"amU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat/foyer) "anq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -1608,11 +1619,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/maintenance/port) -"axd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat/foyer) "axe" = ( /obj/structure/chair/office, /turf/open/floor/glass/reinforced, @@ -1939,19 +1945,6 @@ }, /turf/open/floor/plating/airless, /area/station/medical/pharmacy) -"aBb" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Antechamber" - }, -/obj/effect/landmark/navigate_destination/minisat_access_ai, -/obj/effect/mapping_helpers/airlock/access/all/science/minisat, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/structure/cable/layer3, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat_interior) "aBc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2085,6 +2078,15 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/atmos) +"aDt" = ( +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/catwalk_floor, +/area/station/ai_monitored/turret_protected/aisat/foyer) "aDx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/holopad, @@ -2226,17 +2228,6 @@ /obj/item/stock_parts/cell/potato, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/aft) -"aGu" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 8 - }, -/area/station/security/office) "aGE" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/wood/large, @@ -2960,6 +2951,17 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/smooth, /area/station/engineering/gravity_generator) +"aTK" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/camera/directional/east{ + c_tag = "AI Satellite - Fore Port"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/obj/structure/cable, +/turf/open/space/basic, +/area/space/nearstation) "aTR" = ( /obj/machinery/photocopier, /obj/effect/turf_decal/bot, @@ -3591,6 +3593,13 @@ /obj/structure/sign/calendar/directional/north, /turf/open/floor/wood/large, /area/command/heads_quarters/captain/private/nt_rep) +"baM" = ( +/obj/machinery/door/airlock/security{ + name = "Evidence Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/turf/open/floor/iron/dark, +/area/station/security/warden) "baU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -3802,18 +3811,6 @@ dir = 8 }, /area/station/maintenance/disposal/incinerator) -"bdL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable/layer3, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) -"bdP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/cable/layer3, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "bdV" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/carpet, @@ -4215,28 +4212,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"bmg" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/machinery/light/warm/directional/west, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "O2 to Airmix" - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "bmj" = ( /obj/item/radio/intercom/directional/east, /obj/machinery/light/warm/directional/east, @@ -4377,6 +4352,17 @@ dir = 4 }, /area/station/hallway/secondary/command) +"bow" = ( +/obj/structure/window/spawner/east, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 5 + }, +/turf/open/floor/wood/large, +/area/station/science/research) "boy" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/camera/directional/north{ @@ -4615,9 +4601,6 @@ }, /turf/open/floor/glass/reinforced, /area/station/security/execution/transfer) -"bsI" = ( -/turf/closed/wall/r_wall, -/area/station/science/auxlab) "btf" = ( /obj/structure/rack, /obj/item/stock_parts/matter_bin, @@ -4755,11 +4738,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) -"buX" = ( -/obj/structure/cable, -/obj/structure/cable/layer3, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "bvd" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 6 @@ -5137,19 +5115,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos) -"bBp" = ( -/obj/machinery/door/airlock/external{ - name = "MiniSat External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/science/minisat, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/ai_monitored/turret_protected/aisat/foyer) "bBq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5381,6 +5346,17 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white/smooth_large, /area/station/medical/virology) +"bGX" = ( +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/bed/dogbed/lia, +/mob/living/basic/carp/pet/lia, +/turf/open/floor/iron/smooth_large, +/area/station/command/heads_quarters/hos) "bGZ" = ( /obj/structure/showcase/machinery/signal_decrypter, /obj/machinery/power/apc/auto_name/directional/north, @@ -5676,6 +5652,14 @@ }, /turf/open/floor/iron/cafeteria, /area/station/service/pizzeria/kitchen) +"bLt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/toy/talking/ai, +/obj/structure/cable/layer3, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat_interior) "bLv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/random/directional/south, @@ -6106,6 +6090,16 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/freezer, /area/station/medical/chemistry) +"bRm" = ( +/obj/structure/window/spawner/west, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/bot, +/turf/open/floor/wood/large, +/area/station/science/research) "bRn" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -6393,6 +6387,13 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"bXe" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable/layer3, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "bXf" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -7526,22 +7527,6 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/engine, /area/station/science/xenobiology) -"coN" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/mug/britcup{ - pixel_x = -6; - pixel_y = 11 - }, -/obj/item/phone{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "coO" = ( /obj/structure/chair/comfy/brown{ color = "#A46106"; @@ -7586,6 +7571,12 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/qm) +"cpt" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/multilayer/connected, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "cpz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/large, @@ -7621,17 +7612,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/wood/large, /area/blueshield) -"cpP" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/camera/directional/west{ - c_tag = "AI Satellite - Fore Starboard"; - name = "ai camera"; - network = list("minisat"); - start_active = 1 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "cpU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/xeno_spawn, @@ -8930,17 +8910,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation) -"cLi" = ( -/obj/structure/window/spawner/east, -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_y = 5 - }, -/turf/open/floor/wood/large, -/area/station/science/research) "cLl" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -9244,12 +9213,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/ce) -"cPe" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat/foyer) "cPj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11104,11 +11067,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"dqT" = ( -/obj/structure/railing/corner, -/obj/structure/cable/layer3, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "dqZ" = ( /obj/structure/flora/ocean/longseaweed, /obj/effect/spawner/liquids_spawner{ @@ -11216,14 +11174,6 @@ }, /turf/open/floor/iron/smooth_edge, /area/station/hallway/primary/aft) -"dss" = ( -/obj/machinery/status_display/evac/directional/east, -/obj/effect/turf_decal/bot, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/atmos) "dsz" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 4 @@ -11429,10 +11379,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, /area/station/hallway/secondary/entry) -"duG" = ( -/obj/structure/cable/multilayer/connected, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "duI" = ( /obj/machinery/power/shuttle_engine/propulsion, /turf/open/floor/plating, @@ -11455,11 +11401,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) -"duS" = ( -/obj/structure/window/spawner, -/obj/structure/window/spawner/east, -/turf/open/misc/beach/sand, -/area/station/science/research) "duU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11916,17 +11857,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/grass, /area/station/service/chapel) -"dAI" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/camera/directional/east{ - c_tag = "AI Satellite - Fore Port"; - name = "ai camera"; - network = list("minisat"); - start_active = 1 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "dAK" = ( /obj/effect/turf_decal/bot, /obj/effect/landmark/start/hangover, @@ -12323,6 +12253,11 @@ dir = 8 }, /area/station/cargo/miningdock) +"dGc" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "dGf" = ( /obj/effect/turf_decal/siding/wood/end{ dir = 8 @@ -12348,6 +12283,9 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) +"dGp" = ( +/turf/closed/wall/r_wall, +/area/station/science/genetics) "dGw" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood/large, @@ -13786,15 +13724,6 @@ }, /turf/open/floor/wood/large, /area/station/service/library) -"dYb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Core shutters"; - name = "AI Core Shutters" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/ai) "dYc" = ( /obj/machinery/door/airlock/maintenance{ name = "Surgery Maintenance" @@ -13833,12 +13762,6 @@ }, /turf/open/floor/iron/small, /area/station/commons/dorms) -"dYr" = ( -/obj/structure/transit_tube, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat/foyer) "dYB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/curtain/cloth/fancy/mechanical{ @@ -14555,6 +14478,10 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) +"eir" = ( +/obj/machinery/light/warm/directional/south, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "eit" = ( /obj/structure/chair{ dir = 8 @@ -14835,12 +14762,6 @@ dir = 1 }, /area/station/science/robotics/lab) -"elt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/cable/layer3, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "elB" = ( /obj/effect/turf_decal/tile/dark/opposingcorners{ dir = 1 @@ -15287,14 +15208,6 @@ /obj/structure/table/wood, /turf/open/floor/carpet/black, /area/station/service/chapel/office) -"erV" = ( -/obj/structure/window/spawner, -/obj/structure/bed/dogbed{ - anchored = 1; - name = "Gus's bed" - }, -/turf/open/floor/grass, -/area/station/science/research) "erX" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -15466,6 +15379,16 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/smooth_large, /area/station/cargo/storage) +"evh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad/secure, +/obj/effect/landmark/start/cyborg, +/obj/effect/turf_decal/bot, +/obj/structure/cable/layer3, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat_interior) "evm" = ( /obj/structure/chair{ dir = 4 @@ -16057,6 +15980,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos/pumproom) +"eDT" = ( +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/east, +/obj/structure/flora/rock/pile/jungle, +/turf/open/misc/beach/sand, +/area/station/science/research) "eDY" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -16688,9 +16617,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/lab) -"eLM" = ( -/turf/closed/wall/r_wall, -/area/station/science/lab) "eLP" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp, @@ -17005,6 +16931,15 @@ }, /turf/open/floor/wood/large, /area/command/heads_quarters/captain/private/nt_rep) +"eSa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/ai) "eSb" = ( /obj/machinery/conveyor/inverted{ dir = 10; @@ -18088,13 +18023,6 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"fjr" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/cable/layer3, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "fjM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18299,6 +18227,22 @@ /obj/structure/sign/warning/secure_area, /turf/closed/wall/r_wall, /area/station/science/xenobiology) +"fmd" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/phone{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "fmi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19097,13 +19041,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"fyb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/light/warm/directional/west, -/obj/structure/cable/layer3, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "fye" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, @@ -19729,16 +19666,6 @@ }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"fHQ" = ( -/obj/structure/window/spawner, -/obj/structure/window/spawner/east, -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/wood/large, -/area/station/science/research) "fHY" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/green/filled/warning{ @@ -20052,13 +19979,6 @@ }, /turf/open/floor/iron/smooth_corner, /area/station/cargo/storage) -"fOp" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable/layer3, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat_interior) "fOq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/mapping_helpers/airlock/access/any/engineering/external, @@ -20200,12 +20120,6 @@ initial_gas_mix = "TEMP=2.7" }, /area/space/nearstation) -"fQL" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/glass/reinforced, -/area/station/security/office) "fQS" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -20919,6 +20833,11 @@ dir = 4 }, /area/station/science/xenobiology) +"gbn" = ( +/obj/structure/closet/firecloset, +/obj/structure/sign/departments/aisat/directional/west, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "gbo" = ( /obj/effect/turf_decal/trimline/green/filled/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21176,16 +21095,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/small, /area/station/hallway/primary/central) -"ggB" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/cable/layer3, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "ggM" = ( /obj/structure/cable, /obj/structure/closet/firecloset/wall{ @@ -21643,18 +21552,6 @@ }, /turf/open/floor/plating, /area/station/science/ordnance) -"gkT" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/obj/structure/cable, -/obj/item/toy/figure/secofficer{ - pixel_y = 16 - }, -/obj/effect/turf_decal/bot, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/iron/dark, -/area/station/security/office) "gld" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -22166,19 +22063,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/break_room) -"gtq" = ( -/obj/item/radio/intercom/directional/south{ - freerange = 1; - frequency = 1447; - listening = 0; - name = "Private Channel" - }, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/obj/structure/closet/emcloset, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "gtr" = ( /obj/structure/chair/wood, /turf/open/floor/iron/chapel{ @@ -22328,16 +22212,6 @@ }, /turf/open/floor/circuit/telecomms/server, /area/station/science/server) -"gvs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad/secure, -/obj/effect/landmark/start/cyborg, -/obj/effect/turf_decal/bot, -/obj/structure/cable/layer3, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat_interior) "gvt" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/box, @@ -22754,16 +22628,6 @@ dir = 4 }, /area/station/medical/medbay/central) -"gBB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable/layer3, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai) "gBM" = ( /obj/structure/table/wood/fancy, /obj/item/storage/book/bible, @@ -23374,6 +23238,12 @@ dir = 8 }, /area/station/engineering/atmos) +"gLA" = ( +/obj/structure/transit_tube, +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/foyer) "gLD" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/item/radio/intercom/directional/south, @@ -24949,7 +24819,7 @@ /obj/effect/spawner/liquids_spawner{ reagent_list = list(/datum/reagent/water=600) }, -/mob/living/simple_animal/hostile/carp/megacarp/shorki{ +/mob/living/basic/carp/mega/shorki{ obj_damage = 0 }, /turf/open/misc/asteroid, @@ -25486,10 +25356,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"hqf" = ( -/obj/structure/sign/clock, -/turf/closed/wall/r_wall, -/area/station/security/warden) "hqi" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -26512,6 +26378,28 @@ /obj/effect/spawner/random/medical/minor_healing, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) +"hDK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/machinery/light/warm/directional/west, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "O2 to Airmix" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos) "hDY" = ( /obj/machinery/computer/atmos_control/mix_tank{ dir = 4 @@ -26845,6 +26733,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/pod/dark, /area/station/service/chapel) +"hIV" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "hJx" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ dir = 4 @@ -27342,16 +27236,6 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/fore) -"hSo" = ( -/obj/machinery/camera/motion/directional/south{ - c_tag = "Minisat Main Airlock"; - name = "AI motion-sensitive security camera"; - network = list("minisat") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable/layer3, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "hSA" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -27870,6 +27754,12 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/command) +"hZQ" = ( +/obj/structure/window/spawner/west, +/obj/structure/window/spawner/north, +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/station/science/research) "hZV" = ( /obj/structure/chair/sofa/bench, /obj/effect/turf_decal/siding/wood{ @@ -28188,6 +28078,13 @@ dir = 4 }, /area/station/medical/virology) +"ihO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/north, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/atmos) "ihT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28285,12 +28182,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/smooth_large, /area/station/hallway/primary/fore) -"ijR" = ( -/obj/structure/window/spawner/west, -/obj/structure/window/spawner/north, -/obj/structure/flora/bush/jungle/a/style_2, -/turf/open/floor/grass, -/area/station/science/research) "ijY" = ( /obj/structure/table/wood/fancy, /obj/item/storage/fancy/candle_box, @@ -28840,17 +28731,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/lab) -"iqq" = ( -/obj/machinery/status_display/evac/directional/south, -/obj/machinery/light/warm/directional/south, -/obj/effect/turf_decal/siding/wood/end{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/bed/dogbed/lia, -/mob/living/simple_animal/hostile/carp/lia, -/turf/open/floor/iron/smooth_large, -/area/station/command/heads_quarters/hos) "iqx" = ( /obj/structure/sign/clock, /turf/closed/wall/r_wall, @@ -29300,6 +29180,19 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) +"ivA" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber" + }, +/obj/effect/landmark/navigate_destination/minisat_access_ai, +/obj/effect/mapping_helpers/airlock/access/all/science/minisat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable/layer3, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat_interior) "ivF" = ( /obj/machinery/atmospherics/pipe/smart/simple/supply/visible{ dir = 6 @@ -30469,9 +30362,6 @@ }, /turf/open/floor/pod/dark, /area/station/service/chapel/office) -"iMs" = ( -/turf/closed/wall/r_wall, -/area/station/security/holding_cell) "iMv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30630,50 +30520,6 @@ /obj/machinery/light/floor, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"iPD" = ( -/obj/item/radio/intercom/directional/west{ - freerange = 1; - listening = 0; - name = "Common Channel"; - pixel_x = -32; - pixel_y = 4 - }, -/obj/item/radio/intercom/directional/south{ - freerange = 1; - frequency = 1447; - listening = 0; - name = "Private Channel"; - pixel_y = 22 - }, -/obj/item/radio/intercom/directional/east{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_x = 31; - pixel_y = 4 - }, -/obj/effect/landmark/start/ai, -/obj/machinery/turretid{ - icon_state = "control_stun"; - name = "AI Chamber turret control"; - pixel_x = 32; - pixel_y = 32 - }, -/obj/machinery/button/door/directional/north{ - id = "AI Chamber Entrance Shutters"; - name = "AI Chamber Entrance Shutters Control"; - pixel_x = -26; - req_access = list("ai_upload") - }, -/obj/machinery/button/door/directional/north{ - id = "AI Core shutters"; - name = "AI Core Shutters Control"; - pixel_x = -38; - req_access = list("ai_upload") - }, -/obj/structure/cable, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/ai) "iPG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -30816,12 +30662,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"iSa" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable/multilayer/connected, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "iSe" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/light/warm/directional/north, @@ -31270,10 +31110,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos/storage/gas) -"iXW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat/foyer) "iXY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -31486,26 +31322,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) -"jbf" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Chamber Entrance Shutters"; - name = "AI Chamber Entrance Shutters" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, -/obj/structure/cable, -/obj/machinery/flasher/directional/west{ - id = "AI"; - pixel_y = -8 - }, -/obj/machinery/door/firedoor, -/obj/structure/cable/layer3, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/ai) "jbg" = ( /obj/machinery/mass_driver/chapelgun, /obj/machinery/door/window/left/directional/west{ @@ -31760,15 +31576,6 @@ "jfS" = ( /turf/closed/wall, /area/station/security/medical) -"jfT" = ( -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; - name = "Antechamber Turret control"; - pixel_y = -27 - }, -/obj/machinery/light/warm/directional/south, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "jfU" = ( /obj/structure/chair/comfy/brown{ color = "#52B4E9"; @@ -32266,6 +32073,11 @@ /obj/structure/sign/warning/secure_area/directional/west, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) +"jna" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/layer3, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "jnc" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 1 @@ -32440,6 +32252,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"jpL" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/item/toy/figure/secofficer{ + pixel_y = 16 + }, +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron/dark, +/area/station/security/office) "jpN" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 1 @@ -34416,6 +34240,14 @@ /obj/structure/window/reinforced/fulltile, /turf/open/floor/grass, /area/station/medical/treatment_center) +"jRz" = ( +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/atmos) "jRN" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/warning{ @@ -34426,6 +34258,16 @@ }, /turf/open/floor/iron/white/smooth_edge, /area/station/science/xenobiology) +"jSh" = ( +/obj/structure/window/spawner, +/obj/structure/window/spawner/east, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/wood/large, +/area/station/science/research) "jSl" = ( /obj/effect/turf_decal/bot, /obj/machinery/computer/department_orders/science, @@ -35451,6 +35293,14 @@ /obj/effect/turf_decal/bot, /turf/open/floor/pod/dark, /area/station/engineering/storage/tech) +"kis" = ( +/obj/structure/window/spawner, +/obj/structure/bed/dogbed{ + anchored = 1; + name = "Gus's bed" + }, +/turf/open/floor/grass, +/area/station/science/research) "kit" = ( /obj/effect/turf_decal/siding/green{ dir = 1 @@ -35986,6 +35836,15 @@ dir = 8 }, /area/station/engineering/atmos) +"kpZ" = ( +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; + name = "Antechamber Turret control"; + pixel_y = -27 + }, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "kqb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_edge, @@ -36772,19 +36631,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"kAk" = ( -/obj/structure/closet/emcloset, -/obj/item/radio/intercom/directional/south{ - freerange = 1; - frequency = 1447; - listening = 0; - name = "Private Channel" - }, -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "kAm" = ( /turf/closed/wall, /area/blueshield) @@ -37552,13 +37398,6 @@ /obj/effect/turf_decal/tile/purple/half, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"kIV" = ( -/obj/machinery/door/airlock/security{ - name = "Evidence Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/armory, -/turf/open/floor/iron/dark, -/area/station/security/warden) "kIX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/neutral/filled/corner{ @@ -40704,10 +40543,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"lBW" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat/foyer) "lCb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -41754,6 +41589,12 @@ /obj/structure/window/reinforced/fulltile, /turf/open/misc/asteroid, /area/station/engineering/lobby) +"lQd" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 2 + }, +/turf/open/space/basic, +/area/space/nearstation) "lQh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42233,32 +42074,6 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/grimy, /area/station/hallway/primary/central/fore) -"lVZ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/machinery/light/warm/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Atmospherics - Aft Tanks"; - name = "atmospherics camera" - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "N2 to Airmix" - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "lWb" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/firealarm/directional/east, @@ -42867,15 +42682,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/security/greater) -"meq" = ( -/obj/machinery/door/airlock/external{ - name = "MiniSat External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/access/any/science/minisat, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/catwalk_floor, -/area/station/ai_monitored/turret_protected/aisat/foyer) "mev" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -43794,6 +43600,14 @@ dir = 4 }, /area/station/hallway/primary/central/aft) +"msB" = ( +/obj/structure/window/spawner/north, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/science/research) "msQ" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -44831,13 +44645,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"mGP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/north, -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/atmos) "mHn" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt/dust, @@ -45133,12 +44940,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/atmos) -"mKV" = ( -/obj/docking_port/stationary/escape_pod{ - dir = 2 - }, -/turf/open/space/basic, -/area/space/nearstation) "mLb" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -45186,6 +44987,12 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/lesser) +"mLp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/cable/layer3, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "mLs" = ( /obj/structure/bookcase/random/fiction, /obj/effect/turf_decal/siding/wood{ @@ -46251,6 +46058,9 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/engine, /area/station/cargo/drone_bay) +"mXR" = ( +/turf/closed/wall/r_wall, +/area/station/security/holding_cell) "mYa" = ( /obj/effect/spawner/random/engineering/tank, /obj/effect/mapping_helpers/broken_floor, @@ -46321,6 +46131,14 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/commons/dorms) +"mYE" = ( +/obj/machinery/power/solar_control{ + id = "forestarboard"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat/foyer) "mYF" = ( /obj/machinery/camera/directional/south{ c_tag = "Command - Blueshield's Gear Room"; @@ -47257,14 +47075,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/science/xenobiology) -"nlD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/toy/talking/ai, -/obj/structure/cable/layer3, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat_interior) "nlO" = ( /obj/structure/railing{ dir = 4 @@ -47320,9 +47130,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/smooth_edge, /area/station/engineering/atmos/storage/gas) -"nmx" = ( -/turf/closed/wall/r_wall, -/area/station/science/robotics/mechbay) "nmy" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -47773,6 +47580,32 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white/smooth_large, /area/station/science/xenobiology) +"ntA" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/machinery/light/warm/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Atmospherics - Aft Tanks"; + name = "atmospherics camera" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "N2 to Airmix" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos) "ntF" = ( /obj/structure/window/reinforced, /obj/structure/table/wood, @@ -48891,6 +48724,50 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/command/storage/eva) +"nJG" = ( +/obj/item/radio/intercom/directional/west{ + freerange = 1; + listening = 0; + name = "Common Channel"; + pixel_x = -32; + pixel_y = 4 + }, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel"; + pixel_y = 22 + }, +/obj/item/radio/intercom/directional/east{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 31; + pixel_y = 4 + }, +/obj/effect/landmark/start/ai, +/obj/machinery/turretid{ + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/button/door/directional/north{ + id = "AI Chamber Entrance Shutters"; + name = "AI Chamber Entrance Shutters Control"; + pixel_x = -26; + req_access = list("ai_upload") + }, +/obj/machinery/button/door/directional/north{ + id = "AI Core shutters"; + name = "AI Core Shutters Control"; + pixel_x = -38; + req_access = list("ai_upload") + }, +/obj/structure/cable, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/ai) "nJH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48948,6 +48825,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/science/lab) +"nKv" = ( +/obj/structure/window/spawner, +/obj/structure/window/spawner/west, +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/floor/grass, +/area/station/science/research) "nKw" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -51033,11 +50919,6 @@ /obj/effect/turf_decal/bot/right, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/hfr_room) -"onb" = ( -/obj/structure/closet/firecloset, -/obj/structure/sign/departments/aisat/directional/west, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "onB" = ( /obj/effect/turf_decal/tile/red/full, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52372,6 +52253,9 @@ dir = 8 }, /area/station/ai_monitored/command/storage/eva) +"oGv" = ( +/turf/closed/wall/r_wall, +/area/station/science/robotics/mechbay) "oGw" = ( /obj/structure/bodycontainer/morgue{ dir = 2 @@ -52387,6 +52271,19 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"oGG" = ( +/obj/structure/window/spawner/east, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -8; + pixel_y = 5 + }, +/turf/open/floor/wood/large, +/area/station/science/research) "oGI" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -53010,6 +52907,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/large, /area/station/security/courtroom) +"oRw" = ( +/obj/structure/window/spawner/north, +/mob/living/simple_animal/hostile/retaliate/tegu/gus, +/turf/open/misc/beach/sand, +/area/station/science/research) "oRx" = ( /obj/effect/turf_decal/siding/green/corner{ dir = 1 @@ -54835,6 +54737,11 @@ dir = 8 }, /area/station/hallway/primary/central/aft) +"poj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/item/kirbyplants/random, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat/foyer) "por" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 9 @@ -55765,16 +55672,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white/smooth_edge, /area/station/medical/virology) -"pDo" = ( -/obj/structure/window/spawner/west, -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/turf_decal/bot, -/turf/open/floor/wood/large, -/area/station/science/research) "pDu" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/turf_decal/siding/wood{ @@ -56578,6 +56475,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine/atmos/lesser) +"pPn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/cable/layer3, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "pPp" = ( /obj/effect/spawner/random/trash/garbage, /turf/open/floor/catwalk_floor/iron_smooth, @@ -56749,6 +56653,9 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/aft/greater) +"pSW" = ( +/turf/closed/wall/r_wall, +/area/station/science/robotics/lab) "pSX" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ @@ -57900,6 +57807,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"qgo" = ( +/obj/machinery/camera/motion/directional/south{ + c_tag = "Minisat Main Airlock"; + name = "AI motion-sensitive security camera"; + network = list("minisat") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/layer3, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "qgq" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/delivery, @@ -58248,9 +58165,6 @@ /obj/effect/landmark/start/librarian, /turf/open/floor/iron/grimy, /area/station/service/library) -"qlN" = ( -/turf/closed/wall/r_wall, -/area/station/science/robotics/lab) "qlS" = ( /obj/machinery/door/airlock/research{ name = "Circuit Testing Lab" @@ -58873,6 +58787,10 @@ }, /turf/open/floor/wood/large, /area/station/hallway/primary/central/fore) +"qtY" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat/foyer) "qtZ" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -59816,11 +59734,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/wood/large, /area/station/commons/fitness/recreation/entertainment) -"qIb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/item/kirbyplants/random, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat/foyer) "qIf" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ @@ -59936,6 +59849,16 @@ dir = 4 }, /area/station/science/robotics/lab) +"qJC" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/cable/layer3, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "qJZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 9 @@ -60518,6 +60441,10 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/security/armory) +"qSP" = ( +/obj/structure/cable/multilayer/connected, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "qST" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -60992,6 +60919,11 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"qZe" = ( +/obj/machinery/firealarm/directional/east, +/obj/structure/closet/firecloset, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "qZf" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/aft/upper) @@ -61035,6 +60967,14 @@ /obj/machinery/smartfridge, /turf/open/floor/iron/dark/smooth_large, /area/station/service/hydroponics) +"rab" = ( +/obj/structure/window/spawner, +/obj/structure/window/spawner/east, +/turf/open/misc/beach/sand, +/area/station/science/research) +"rar" = ( +/turf/closed/wall/r_wall, +/area/station/science/lab) "raM" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -62206,6 +62146,16 @@ /obj/machinery/shower/directional/north, /turf/open/floor/iron/checker, /area/station/engineering/power_room) +"rqZ" = ( +/obj/structure/window/spawner/west, +/obj/structure/window/spawner, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/bot, +/turf/open/floor/wood/large, +/area/station/science/research) "rrb" = ( /obj/structure/trash_pile, /turf/open/floor/iron/smooth, @@ -62282,6 +62232,10 @@ /obj/structure/sign/warning/no_smoking/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) +"rsZ" = ( +/obj/docking_port/stationary/escape_pod, +/turf/open/space/basic, +/area/space/nearstation) "rtf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -62509,11 +62463,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/engineering/atmos) -"rwg" = ( -/obj/machinery/firealarm/directional/east, -/obj/structure/closet/firecloset, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "rwr" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -62587,6 +62536,10 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet) +"ryf" = ( +/obj/structure/sign/clock, +/turf/closed/wall/r_wall, +/area/station/security/warden) "ryo" = ( /turf/open/floor/engine{ name = "Holodeck Projector Floor" @@ -66523,16 +66476,6 @@ /obj/effect/turf_decal/tile/neutral/diagonal_centre, /turf/open/floor/iron/dark/diagonal, /area/station/security/execution/transfer) -"sBD" = ( -/obj/structure/window/spawner/west, -/obj/structure/window/spawner, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/reagent_dispensers/water_cooler, -/obj/effect/turf_decal/bot, -/turf/open/floor/wood/large, -/area/station/science/research) "sCe" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -68569,6 +68512,19 @@ /obj/effect/turf_decal/trimline/dark_blue, /turf/open/floor/iron/dark/smooth_large, /area/station/commons/fitness/recreation/entertainment) +"tcL" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/cable/layer3, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "tcQ" = ( /obj/machinery/light/small/directional/north, /obj/machinery/seed_extractor, @@ -69269,6 +69225,19 @@ dir = 4 }, /area/station/engineering/atmos/pumproom) +"tmf" = ( +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel" + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "tmv" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -69749,6 +69718,26 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/diagonal, /area/station/hallway/secondary/service) +"trZ" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Chamber" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Chamber Entrance Shutters"; + name = "AI Chamber Entrance Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/structure/cable, +/obj/machinery/flasher/directional/west{ + id = "AI"; + pixel_y = -8 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/layer3, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/ai) "tsb" = ( /obj/structure/chair/sofa/bench, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -70955,6 +70944,19 @@ }, /turf/open/floor/iron/large, /area/station/commons/vacant_room/commissary) +"tId" = ( +/obj/structure/closet/emcloset, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel" + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/foyer) "tIh" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 8 @@ -71262,6 +71264,13 @@ /obj/item/stack/sheet/cardboard, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/aft/upper) +"tNe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/light/warm/directional/west, +/obj/structure/cable/layer3, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "tNj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -71637,6 +71646,9 @@ "tTx" = ( /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) +"tTB" = ( +/turf/closed/wall/r_wall, +/area/station/science/auxlab) "tTI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71770,6 +71782,11 @@ }, /turf/open/floor/iron/smooth, /area/station/command/cc_dock) +"tVN" = ( +/obj/structure/railing/corner, +/obj/structure/cable/layer3, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "tVX" = ( /obj/effect/spawner/random/trash/garbage, /obj/effect/decal/cleanable/dirt, @@ -72433,6 +72450,17 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/aft/lesser) +"ufh" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/station/security/office) "ufk" = ( /obj/structure/cable, /obj/machinery/power/solar_control{ @@ -73638,6 +73666,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white/smooth_edge, /area/station/medical/storage) +"uuy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/foyer) "uuC" = ( /obj/structure/chair{ dir = 4 @@ -74118,6 +74152,12 @@ }, /turf/open/floor/iron/dark/smooth_edge, /area/station/science/robotics/lab) +"uAp" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/office) "uAt" = ( /obj/structure/chair/stool/directional/west, /obj/structure/disposalpipe/segment{ @@ -74165,19 +74205,6 @@ }, /turf/open/floor/iron/dark/smooth_edge, /area/station/hallway/secondary/command) -"uBe" = ( -/obj/structure/showcase/cyborg/old{ - dir = 8; - pixel_x = 9; - pixel_y = 2 - }, -/obj/machinery/status_display/ai/directional/east, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/cable/layer3, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "uBg" = ( /obj/effect/turf_decal/trimline/dark_red/arrow_cw{ dir = 1 @@ -74481,16 +74508,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/lobby) -"uGy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable/layer3, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat_interior) "uGz" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 @@ -74619,11 +74636,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, /area/station/engineering/storage_shared) -"uIA" = ( -/obj/structure/window/spawner/north, -/mob/living/simple_animal/hostile/retaliate/tegu/gus, -/turf/open/misc/beach/sand, -/area/station/science/research) "uIM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74878,13 +74890,6 @@ /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) -"uMp" = ( -/obj/structure/window/spawner, -/obj/effect/spawner/random/vending/snackvend, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/bot, -/turf/open/floor/wood/large, -/area/station/science/research) "uMt" = ( /obj/item/stack/cable_coil, /obj/item/stack/cable_coil{ @@ -75321,14 +75326,6 @@ dir = 4 }, /area/station/engineering/atmos/hfr_room) -"uRG" = ( -/obj/structure/window/spawner/north, -/obj/effect/turf_decal/weather/sand{ - dir = 4 - }, -/obj/structure/flora/bush/jungle/a/style_3, -/turf/open/floor/grass, -/area/station/science/research) "uRS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75746,6 +75743,16 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/aft) +"uYc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/structure/cable/layer3, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "uYj" = ( /obj/structure/sign/warning/no_smoking/directional/west, /turf/closed/wall/r_wall, @@ -75882,12 +75889,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine) -"vaG" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "vaJ" = ( /obj/structure/table, /obj/item/storage/bag/plants{ @@ -76394,14 +76395,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation/entertainment) -"vkf" = ( -/obj/machinery/power/solar_control{ - id = "forestarboard"; - name = "Starboard Bow Solar Control" - }, -/obj/structure/cable, -/turf/open/floor/vault, -/area/station/ai_monitored/turret_protected/aisat/foyer) "vkx" = ( /obj/machinery/computer/secure_data, /obj/structure/window/reinforced{ @@ -76451,19 +76444,6 @@ dir = 10 }, /area/station/service/pizzeria) -"vkJ" = ( -/obj/structure/window/spawner/east, -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/machinery/microwave{ - desc = "Cooks and boils stuff, somehow."; - pixel_x = -8; - pixel_y = 5 - }, -/turf/open/floor/wood/large, -/area/station/science/research) "vkM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -77723,9 +77703,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/xenobiology) -"vBP" = ( -/turf/closed/wall/r_wall, -/area/station/science/genetics) "vCe" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/delivery, @@ -78663,10 +78640,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/gravity_generator) -"vPT" = ( -/obj/machinery/light/warm/directional/south, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "vPV" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -79489,6 +79462,19 @@ }, /turf/open/floor/iron/edge, /area/station/commons/storage/primary) +"waH" = ( +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/science/minisat, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/ai_monitored/turret_protected/aisat/foyer) "waK" = ( /obj/machinery/firealarm/directional/east, /turf/open/floor/glass/reinforced, @@ -80167,6 +80153,17 @@ dir = 8 }, /area/station/hallway/primary/central/aft) +"wlm" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/camera/directional/west{ + c_tag = "AI Satellite - Fore Starboard"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/obj/structure/cable, +/turf/open/space/basic, +/area/space/nearstation) "wlp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -82458,12 +82455,6 @@ /obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/iron/smooth, /area/station/maintenance/department/engine/atmos) -"wRZ" = ( -/obj/structure/window/spawner/north, -/obj/structure/window/spawner/east, -/obj/structure/flora/rock/pile/jungle, -/turf/open/misc/beach/sand, -/area/station/science/research) "wSc" = ( /obj/structure/closet/secure_closet/blueshield, /obj/effect/turf_decal/bot, @@ -82900,10 +82891,6 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron/smooth_large, /area/station/cargo/office) -"xaL" = ( -/obj/docking_port/stationary/escape_pod, -/turf/open/space/basic, -/area/space/nearstation) "xaS" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/warm/directional/south, @@ -83069,6 +83056,16 @@ "xcG" = ( /turf/open/floor/engine/air, /area/station/engineering/atmos) +"xcP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/structure/cable/layer3, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat_interior) "xcV" = ( /obj/structure/closet{ name = "Evidence Closet" @@ -84415,6 +84412,13 @@ /obj/machinery/duct, /turf/open/floor/iron/smooth_large, /area/station/engineering/power_room) +"xwo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/layer3, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat_interior) "xwq" = ( /obj/structure/table/glass, /obj/machinery/light/warm/directional/south, @@ -85232,6 +85236,11 @@ /obj/structure/chair/stool/directional/south, /turf/open/floor/iron/grimy, /area/station/commons/lounge) +"xJq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/vault, +/area/station/ai_monitored/turret_protected/aisat/foyer) "xJr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -85686,11 +85695,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/security/lockers) -"xPW" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/aisat/foyer) "xQe" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -85873,6 +85877,11 @@ dir = 8 }, /area/station/science/research) +"xSg" = ( +/obj/structure/cable, +/obj/structure/cable/layer3, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) "xSl" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/dark_red/filled/line{ @@ -86454,15 +86463,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/grimy, /area/station/service/library) -"ybt" = ( -/obj/structure/window/spawner, -/obj/structure/window/spawner/west, -/obj/structure/water_source/puddle, -/obj/structure/flora/bush/reed{ - pixel_y = 8 - }, -/turf/open/floor/grass, -/area/station/science/research) "ybu" = ( /obj/structure/table/reinforced, /obj/item/flashlight/seclite, @@ -100381,7 +100381,7 @@ gPJ gPJ odJ kbK -dAI +aTK gRN uQV uQV @@ -100895,8 +100895,8 @@ odJ odJ jkZ jkZ -onb -kAk +gbn +tId uQV uQV nbB @@ -101153,7 +101153,7 @@ jkZ jkZ shM vFF -vPT +eir uQV uQV uQV @@ -101407,10 +101407,10 @@ odJ odJ odJ jkZ -vkf +mYE vFF vFF -xPW +dGc oBx oBx maR @@ -101425,7 +101425,7 @@ fRS teF fRS fRS -vaG +hIV toj kgu rDp @@ -101663,7 +101663,7 @@ fBB qBR sSj qBR -dYr +gLA huh vFF myX @@ -101920,25 +101920,25 @@ odJ odJ odJ xXv -cPe -qIb +uuy +poj bjS jlK -ggB -aBb -fOp -nlD -uGy -gvs -fOp -fOp -jbf -gBB -buX +qJC +ivA +xwo +bLt +xcP +evh +xwo +xwo +trZ +uYc +xSg rDp -iPD +nJG wyH -dYb +eSa uQi bWK lvx @@ -102181,7 +102181,7 @@ jkZ jkZ vFF cUV -hSo +qgo aMb ocj aLH @@ -102191,14 +102191,14 @@ qic ueg rDp qFF -elt +mLp rDp rDp sMQ rDp sgt uPy -duG +qSP xRB rDp rDp @@ -102433,12 +102433,12 @@ rDl odJ odJ xqO -meq -iXW -bBp -axd -axd -iSa +aDt +amU +waH +xJq +xJq +cpt oBx oBx cfO @@ -102448,14 +102448,14 @@ nfC tPp aeL lvx -bdP -elt -fyb -elt -bdL -dqT -fjr -uBe +pPn +mLp +tNe +mLp +jna +tVN +bXe +tcL rDp rDp rDp @@ -102693,9 +102693,9 @@ xMq jkZ jkZ jkZ -lBW +qtY vFF -jfT +kpZ nAH nAH nAH @@ -102951,11 +102951,11 @@ odJ odJ jkZ jkZ -rwg -gtq +qZe +tmf nAH nAH -mGP +ihO fHk eXP hRb @@ -103465,14 +103465,14 @@ gPJ gPJ odJ kbK -cpP +wlm gRN nAH nAH nAH wkT dFH -dss +jRz sZR rDp rDp @@ -109220,7 +109220,7 @@ gMQ ttw ttw ttw -xaL +rsZ dMY icP rBo @@ -111055,11 +111055,11 @@ jmT jTi eHC mKU -lVZ +ntA xxb gwc sCV -bmg +hDK wfX gwc wfX @@ -112238,7 +112238,7 @@ cLN ttw ttw ttw -xaL +rsZ peN rOA rOA @@ -114043,14 +114043,14 @@ txu tcm wNy ohH -bsI +tTB ueH jGI aij pOB gty vLk -bsI +tTB wjI wjI wjI @@ -114307,7 +114307,7 @@ csg mJy twz gDd -bsI +tTB fPj lun mEe @@ -114564,7 +114564,7 @@ mXt tzk vSd wue -bsI +tTB gNh wjJ gNh @@ -114809,8 +114809,8 @@ jgD kFS jgD jgD -pDo -sBD +bRm +rqZ sgG pxK dEY @@ -115584,8 +115584,8 @@ vJC oee mwx sTo -ijR -ybt +hZQ +nKv lSX rhM qHf @@ -115841,8 +115841,8 @@ bhF oee mwx sTo -uRG -erV +msB +kis sms cuZ dje @@ -116095,10 +116095,10 @@ bFO sma gHL nvL -uMp +amH ppT sTo -uIA +oRw oej juR gLD @@ -116349,14 +116349,14 @@ rMc mgl hwe glp -vkJ -cLi +oGG +bow lGm -fHQ +jSh nsp sTo -wRZ -duS +eDT +rab lSX poZ fpg @@ -117133,10 +117133,10 @@ wwN nEm nEm sOc -qlN -qlN +pSW +pSW qkB -qlN +pSW hwA mdM gSI @@ -117368,7 +117368,7 @@ mvN imR vwo fUU -vBP +dGp dwE ciI vmI @@ -117882,7 +117882,7 @@ kYC imR wMT eZa -vBP +dGp mVv exy vrs @@ -118139,7 +118139,7 @@ qBT imR wMT eoq -vBP +dGp jTC vBI hlx @@ -118162,9 +118162,9 @@ rqo qEU wvu cuq -qlN +pSW tBV -qlN +pSW thf pav jdS @@ -118396,7 +118396,7 @@ jKG imR wMT vPc -vBP +dGp jYI eKU dcF @@ -118410,7 +118410,7 @@ xJD uih kSn mDf -qlN +pSW xYy wjA uAl @@ -118653,9 +118653,9 @@ sxs imR sdh imR -vBP -vBP -vBP +dGp +dGp +dGp mwS aKt xRV @@ -118667,9 +118667,9 @@ qio qio ycU gMy -qlN +pSW uPU -qlN +pSW aMf wEY vOI @@ -118912,7 +118912,7 @@ pXG uqY dYG sJl -vBP +dGp jGj sNU iwv @@ -118926,14 +118926,14 @@ hfp pdi pGl meP -nmx -nmx +oGv +oGv avA mEl mEl qtP avA -nmx +oGv hZV sgA bmt @@ -119169,22 +119169,22 @@ hhT eSl aWD eYY -vBP +dGp dAP fHq dAP -vBP +dGp qDW qki qDW -eLM +rar eLH gmd qSW -eLM +rar cKH pOh -nmx +oGv lue sYe yeD @@ -119438,16 +119438,16 @@ ycy nKq rIU cAG -eLM +rar hVA fsY -nmx +oGv tox dvq vNz dHE mSx -nmx +oGv dto dto idu @@ -119691,14 +119691,14 @@ ijy ijy bbr iQp -eLM +rar aoH vlH uzi -eLM +rar xfM wjk -nmx +oGv qOu hMQ seo @@ -119948,11 +119948,11 @@ nXj rPp pGh nJx -eLM +rar eLH -eLM +rar eLH -eLM +rar xfM gjl fwk @@ -120211,13 +120211,13 @@ dJu mGE gmd snv -nmx -nmx +oGv +oGv vnc itE itE aWC -nmx +oGv mMu qSu qSu @@ -121496,10 +121496,10 @@ urd rnH rNk qOn -iMs +mXR fbF fbF -iMs +mXR wzH wzH wzH @@ -121753,7 +121753,7 @@ fXv kbz fdi epl -iMs +mXR kQm tcV jEk @@ -122010,7 +122010,7 @@ ajg vzJ teQ fqI -iMs +mXR jsn jrQ jEk @@ -122267,7 +122267,7 @@ ldo naL wkj ajg -iMs +mXR xdB fcH uND @@ -122524,7 +122524,7 @@ xIC tmH dmU dAo -iMs +mXR axF rAV jEk @@ -122781,7 +122781,7 @@ drv wjq ajg iVj -iMs +mXR dxK dxK dxK @@ -123807,7 +123807,7 @@ wWQ lQU whY aDR -kIV +baM aDR aDR aDR @@ -124538,7 +124538,7 @@ fXl ttw ttw ttw -xaL +rsZ oyq ljV xkP @@ -124573,8 +124573,8 @@ kkk tqV vZI cFf -fQL -fQL +uAp +uAp cFf ioE xBE @@ -125091,7 +125091,7 @@ txi qLS mjP dBL -hqf +ryf nPb rUr tsG @@ -125339,7 +125339,7 @@ ttw oEn nGV dsV -iqq +bGX ngD ngD rNJ @@ -126376,9 +126376,9 @@ jty jty dps uxs -aGu +ufh ilA -gkT +jpL lvL ueZ oae @@ -129721,7 +129721,7 @@ oao bMa rPq eUy -mKV +lQd ttw ttw ttw @@ -131072,7 +131072,7 @@ emO dTO aWW iVW -coN +fmd pjT xMq sFi diff --git a/_maps/templates/lazy_templates/ninja_den.dmm b/_maps/templates/lazy_templates/ninja_den.dmm index f4d096c81e4..052e37c3c86 100644 --- a/_maps/templates/lazy_templates/ninja_den.dmm +++ b/_maps/templates/lazy_templates/ninja_den.dmm @@ -769,8 +769,7 @@ /obj/structure/bed/dogbed/cayenne{ name = "Paprika's bed" }, -/mob/living/simple_animal/hostile/carp/cayenne{ - aggro_vision_range = 1; +/mob/living/basic/carp/pet/cayenne{ desc = "It's Paprika! One of the Spider Clan's lovable Space Carp!"; faction = list("neutral"); name = "Paprika"; diff --git a/_maps/templates/lazy_templates/nukie_base.dmm b/_maps/templates/lazy_templates/nukie_base.dmm index 69487830920..95f212174b1 100644 --- a/_maps/templates/lazy_templates/nukie_base.dmm +++ b/_maps/templates/lazy_templates/nukie_base.dmm @@ -1619,7 +1619,7 @@ pixel_y = 27 }, /obj/structure/bed/dogbed/cayenne, -/mob/living/simple_animal/hostile/carp/cayenne, +/mob/living/basic/carp/pet/cayenne, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, diff --git a/code/__DEFINES/ai_carp.dm b/code/__DEFINES/ai_carp.dm new file mode 100644 index 00000000000..575d18939d2 --- /dev/null +++ b/code/__DEFINES/ai_carp.dm @@ -0,0 +1,9 @@ +///Carp AI blackboard keys +#define BB_MAGICARP_SPELL "BB_magicarp_spell" + +/// Targetting keys for magicarp spells +#define BB_MAGICARP_SPELL_TARGET "BB_magicarp_spell_target" +#define BB_MAGICARP_SPELL_SPECIAL_TARGETTING "BB_magicarp_spell_special_targetting" +#define MAGICARP_SPELL_CORPSES "magicarp_spell_corpses" +#define MAGICARP_SPELL_WALLS "magicarp_spell_walls" +#define MAGICARP_SPELL_OBJECTS "magicarp_spell_objects" diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index ac7771451b6..be4e240eb4c 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -298,7 +298,7 @@ Policy file should be a json file with a single object. Value is raw html. Possible keywords : Job titles / Assigned roles (ghost spawners for example) : Assistant , Captain , Ash Walker -Mob types : /mob/living/simple_animal/hostile/carp +Mob types : /mob/living/basic/carp Antagonist types : /datum/antagonist/highlander Species types : /datum/species/lizard special keywords defined in _DEFINES/admin.dm diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/try_mob_ability.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/try_mob_ability.dm index 34f89591593..aad52b924bb 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/try_mob_ability.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/try_mob_ability.dm @@ -1,12 +1,16 @@ +/** + * # Try Mob Ability + * Attempts to use a mob's cooldown ability on a target + */ /datum/ai_behavior/try_mob_ability /datum/ai_behavior/try_mob_ability/perform(delta_time, datum/ai_controller/controller, ability_key, target_key) - var/datum/action/cooldown/mob_cooldown/ability = controller.blackboard[ability_key] var/datum/weakref/weak_target = controller.blackboard[target_key] var/mob/living/target = weak_target?.resolve() if(!ability || QDELETED(target)) finish_action(controller, FALSE, ability_key, target_key) + return var/mob/pawn = controller.pawn var/result = ability.InterceptClickOn(pawn, null, target) finish_action(controller, result, ability_key, target_key) @@ -14,14 +18,33 @@ /datum/ai_behavior/try_mob_ability/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) . = ..() var/datum/weakref/weak_target = controller.blackboard[target_key] - var/mob/living/target = weak_target?.resolve() - if(QDELETED(target) || target.stat >= UNCONSCIOUS) + var/atom/target = weak_target?.resolve() + if (QDELETED(target)) + controller.blackboard[target_key] = null + return + if (!isliving(target)) + return + var/mob/living/living_target = target + if(living_target.stat >= UNCONSCIOUS) controller.blackboard[target_key] = null -///subtype of normal mob ability that moves the target into a special execution targetting. -///doesn't need another subtype to clear BB_BASIC_MOB_EXECUTION_TARGET because it will be the target key for above type +/** + * # Try Mob Ability and plan execute + * Attempts to use a mob's cooldown ability on a target and then move the target into a special target blackboard datum + * Doesn't need another subtype to clear BB_BASIC_MOB_EXECUTION_TARGET because it will be the target key for the normal action + */ /datum/ai_behavior/try_mob_ability/and_plan_execute /datum/ai_behavior/try_mob_ability/and_plan_execute/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) controller.blackboard[BB_BASIC_MOB_EXECUTION_TARGET] = controller.blackboard[target_key] return ..() + +/** + * # Try Mob Ability and clear target + * Attempts to use a mob's cooldown ability on a target and releases the target when the action completes + */ +/datum/ai_behavior/try_mob_ability/and_clear_target + +/datum/ai_behavior/try_mob_ability/and_clear_target/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) + . = ..() + controller.blackboard[target_key] = null diff --git a/code/datums/ai/basic_mobs/basic_subtrees/targetted_mob_ability.dm b/code/datums/ai/basic_mobs/basic_subtrees/targetted_mob_ability.dm new file mode 100644 index 00000000000..4450f9fa331 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/targetted_mob_ability.dm @@ -0,0 +1,26 @@ +/// Attempts to use a mob ability on a target +/datum/ai_planning_subtree/targetted_mob_ability + /// Blackboard key for the ability + var/ability_key + /// Blackboard key for where the target ref is stored + var/target_key = BB_BASIC_MOB_CURRENT_TARGET + /// Behaviour to perform using ability + var/use_ability_behaviour = /datum/ai_behavior/try_mob_ability + +/datum/ai_planning_subtree/targetted_mob_ability/SelectBehaviors(datum/ai_controller/controller, delta_time) + if (!ability_key) + CRASH("You forgot to tell this mob where to find its ability") + + var/datum/weakref/weak_target = controller.blackboard[target_key] + var/mob/living/target = weak_target?.resolve() + if (QDELETED(target)) + return + + var/datum/action/cooldown/using_action = controller.blackboard[ability_key] + if (QDELETED(using_action)) + return + if (!using_action.IsAvailable()) + return + + controller.queue_behavior(use_ability_behaviour, ability_key, target_key) + return SUBTREE_RETURN_FINISH_PLANNING diff --git a/code/datums/ai/generic/find_and_set.dm b/code/datums/ai/generic/find_and_set.dm index 693d43d70d3..b2897f58276 100644 --- a/code/datums/ai/generic/find_and_set.dm +++ b/code/datums/ai/generic/find_and_set.dm @@ -72,3 +72,63 @@ found += single_locate if(found.len) return pick(found) + +/** + * Variant of find and set which returns an object which can be animated with a staff of change + */ +/datum/ai_behavior/find_and_set/animatable + +/datum/ai_behavior/find_and_set/animatable/search_tactic(datum/ai_controller/controller, locate_path, search_range) + var/mob/living/living_pawn = controller.pawn + + var/list/nearby_items = list() + for (var/obj/new_friend as anything in oview(search_range, controller.pawn)) + if (!isitem(new_friend) && !isstructure(new_friend)) + continue + if (is_type_in_list(new_friend, GLOB.animatable_blacklist)) + continue + if (living_pawn.see_invisible < new_friend.invisibility) + continue + nearby_items += new_friend + + if(nearby_items.len) + return pick(nearby_items) + +/** + * Variant of find and set which returns the nearest wall which isn't invulnerable + */ +/datum/ai_behavior/find_and_set/nearest_wall + +/datum/ai_behavior/find_and_set/nearest_wall/search_tactic(datum/ai_controller/controller, locate_path, search_range) + var/mob/living/living_pawn = controller.pawn + + var/list/nearby_walls = list() + for (var/turf/closed/new_wall in oview(search_range, controller.pawn)) + if (isindestructiblewall(new_wall)) + continue + nearby_walls += new_wall + + if(nearby_walls.len) + return get_closest_atom(/turf/closed/, nearby_walls, living_pawn) + +/** + * Variant of find and set which returns corpses who share your faction + */ +/datum/ai_behavior/find_and_set/friendly_corpses + +/datum/ai_behavior/find_and_set/friendly_corpses/search_tactic(datum/ai_controller/controller, locate_path, search_range) + var/mob/living/living_pawn = controller.pawn + var/list/nearby_bodies = list() + for (var/mob/living/dead_pal in oview(search_range, controller.pawn)) + if (!isturf(dead_pal.loc)) + continue + if (!dead_pal.stat || dead_pal.health > 0) + continue + if (living_pawn.see_invisible < dead_pal.invisibility) + continue + if (!living_pawn.faction_check_mob(dead_pal)) + continue + nearby_bodies += dead_pal + + if (nearby_bodies.len) + return pick(nearby_bodies) diff --git a/code/datums/components/pet_commands/pet_commands_basic.dm b/code/datums/components/pet_commands/pet_commands_basic.dm index 7caad390e06..641e3a68748 100644 --- a/code/datums/components/pet_commands/pet_commands_basic.dm +++ b/code/datums/components/pet_commands/pet_commands_basic.dm @@ -120,5 +120,5 @@ return // We don't check if the target exists because we want to 'sit attentively' if we've been instructed to attack but not given one yet // We also don't check if the cooldown is over because there's no way a pet owner can know that, the behaviour will handle it - controller.queue_behavior(/datum/ai_behavior/pet_use_ability, pet_ability_key, targetting_datum_key) + controller.queue_behavior(/datum/ai_behavior/pet_use_ability, pet_ability_key, BB_CURRENT_PET_TARGET) return SUBTREE_RETURN_FINISH_PLANNING diff --git a/code/datums/components/spawner.dm b/code/datums/components/spawner.dm index d3e824ae0e1..7cc18937127 100644 --- a/code/datums/components/spawner.dm +++ b/code/datums/components/spawner.dm @@ -1,5 +1,5 @@ /datum/component/spawner - var/mob_types = list(/mob/living/simple_animal/hostile/carp) + var/mob_types = list(/mob/living/basic/carp) var/spawn_time = 300 //30 seconds default var/list/spawned_mobs = list() var/spawn_delay = 0 diff --git a/code/datums/elements/basic_eating.dm b/code/datums/elements/basic_eating.dm index 593aa24adee..86f4be63cac 100644 --- a/code/datums/elements/basic_eating.dm +++ b/code/datums/elements/basic_eating.dm @@ -6,18 +6,24 @@ /datum/element/basic_eating element_flags = ELEMENT_BESPOKE argument_hash_start_idx = 2 - ///Path of the reagent added + /// Amount to heal var/heal_amt + /// Amount to hurt + var/damage_amount + /// Type of hurt to apply + var/damage_type /// Types the animal can eat. var/list/food_types -/datum/element/basic_eating/Attach(datum/target, heal_amt = 0, food_types = list()) +/datum/element/basic_eating/Attach(datum/target, heal_amt = 0, damage_amount = 0, damage_type = null, food_types = list()) . = ..() if(!isliving(target)) return ELEMENT_INCOMPATIBLE src.heal_amt = heal_amt + src.damage_amount = damage_amount + src.damage_type = damage_type src.food_types = food_types //this lets players eat @@ -38,14 +44,27 @@ try_eating(eater, target) /datum/element/basic_eating/proc/try_eating(mob/living/eater, atom/target) - if(eater.combat_mode) - return if(!is_type_in_list(target, food_types)) return var/eat_verb = pick("bite","chew","nibble","gnaw","gobble","chomp") - var/healed = heal_amt && eater.health < eater.maxHealth - if(heal_amt) - eater.heal_overall_damage(heal_amt) - eater.visible_message(span_notice("[eater] [eat_verb]s [target]."), span_notice("You [eat_verb] [target][healed ? ", restoring some health" : ""].")) + + if (heal_amt > 0) + var/healed = heal_amt && eater.health < eater.maxHealth + if(heal_amt) + eater.heal_overall_damage(heal_amt) + eater.visible_message(span_notice("[eater] [eat_verb]s [target]."), span_notice("You [eat_verb] [target][healed ? ", restoring some health" : ""].")) + finish_eating(eater, target) + return + + if (damage_amount > 0 && damage_type) + eater.apply_damage(damage_amount, damage_type) + eater.visible_message(span_notice("[eater] [eat_verb]s [target], and seems to hurt itself."), span_notice("You [eat_verb] [target], hurting yourself in the process.")) + finish_eating(eater, target) + return + + eater.visible_message(span_notice("[eater] [eat_verb]s [target]."), span_notice("You [eat_verb] [target].")) + finish_eating(eater, target) + +/datum/element/basic_eating/proc/finish_eating(mob/living/eater, atom/target) playsound(eater.loc,'sound/items/eatfood.ogg', rand(10,50), TRUE) qdel(target) diff --git a/code/datums/memory/memory.dm b/code/datums/memory/memory.dm index a77e82d280b..adebd193b73 100644 --- a/code/datums/memory/memory.dm +++ b/code/datums/memory/memory.dm @@ -45,7 +45,7 @@ //entirely independent vars (not related to the action or story type) var/static/list/something_pool = list( - /mob/living/simple_animal/hostile/carp, + /mob/living/basic/carp, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/mushroom, /mob/living/simple_animal/hostile/netherworld/statue, @@ -55,8 +55,8 @@ /mob/living/simple_animal/hostile/giant_spider, /mob/living/simple_animal/hostile/giant_spider/hunter, /mob/living/simple_animal/hostile/blob/blobbernaut/independent, - /mob/living/simple_animal/hostile/carp/ranged, - /mob/living/simple_animal/hostile/carp/ranged/chaos, + /mob/living/basic/carp/magic, + /mob/living/basic/carp/magic/chaos, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher, /mob/living/simple_animal/hostile/asteroid/goliath/beast, /mob/living/simple_animal/hostile/headcrab, diff --git a/code/game/machinery/dna_infuser/infuser_entries.dm b/code/game/machinery/dna_infuser/infuser_entries.dm index 5745d252f14..3a757c70b82 100644 --- a/code/game/machinery/dna_infuser/infuser_entries.dm +++ b/code/game/machinery/dna_infuser/infuser_entries.dm @@ -89,7 +89,7 @@ GLOBAL_LIST_INIT(infuser_entries, prepare_entries()) "always wants to travel", ) input_obj_or_mob = list( - /mob/living/simple_animal/hostile/carp, + /mob/living/basic/carp, ) output_organs = list( /obj/item/organ/internal/lungs/carp, diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm index cf59cd214ab..17b26159dfd 100644 --- a/code/game/objects/items/dehy_carp.dm +++ b/code/game/objects/items/dehy_carp.dm @@ -6,7 +6,7 @@ //Child of carpplushie because this should do everything the toy does and more /obj/item/toy/plush/carpplushie/dehy_carp var/mob/owner = null //Carp doesn't attack owner, set when using in hand - var/mobtype = /mob/living/simple_animal/hostile/carp //So admins can change what mob spawns via var fuckery + var/mobtype = /mob/living/basic/carp //So admins can change what mob spawns via var fuckery var/swelling = FALSE //Attack self @@ -63,7 +63,7 @@ if(owner) spawned_mob.faction = list("[REF(owner)]") for(var/mob/living/viewer in viewers(5, get_turf(src))) - to_chat(viewer, viewer == owner ? span_warning("You have a bad feeling about this.") : span_notice("The newly grown [spawned_mob.name] looks up at you with friendly eyes.")) + to_chat(viewer, viewer == owner ? span_notice("The newly grown [spawned_mob.name] looks up at you with friendly eyes.") : span_warning("You have a bad feeling about this.")) qdel(src) /obj/item/toy/plush/carpplushie/dehy_carp/proc/owner_deleted(datum/source) diff --git a/code/game/objects/items/dna_probe.dm b/code/game/objects/items/dna_probe.dm index 5c365f53125..f6239d54701 100644 --- a/code/game/objects/items/dna_probe.dm +++ b/code/game/objects/items/dna_probe.dm @@ -52,7 +52,7 @@ if(allowed_scans & DNA_PROBE_SCAN_ANIMALS) var/static/list/non_simple_animals = typecacheof(list(/mob/living/carbon/alien)) if(isanimal_or_basicmob(target) || is_type_in_typecache(target, non_simple_animals) || ismonkey(target)) - if(istype(target, /mob/living/simple_animal/hostile/carp)) + if(istype(target, /mob/living/basic/carp)) carp_dna_loaded = TRUE var/mob/living/living_target = target if(stored_dna_animal[living_target.type]) diff --git a/code/game/objects/items/grenades/spawnergrenade.dm b/code/game/objects/items/grenades/spawnergrenade.dm index 94533025a61..cdd2b14cedf 100644 --- a/code/game/objects/items/grenades/spawnergrenade.dm +++ b/code/game/objects/items/grenades/spawnergrenade.dm @@ -36,7 +36,7 @@ /obj/item/grenade/spawnergrenade/spesscarp name = "carp delivery grenade" - spawner_type = /mob/living/simple_animal/hostile/carp + spawner_type = /mob/living/basic/carp deliveryamt = 5 /obj/item/grenade/spawnergrenade/syndiesoap diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index 61baa0a5297..e6b9f344d72 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -10,7 +10,7 @@ var/max_mobs = 5 var/spawn_time = 30 SECONDS - var/mob_types = list(/mob/living/simple_animal/hostile/carp) + var/mob_types = list(/mob/living/basic/carp) var/spawn_text = "emerges from" var/faction = list("hostile") var/spawner_type = /datum/component/spawner diff --git a/code/modules/antagonists/heretic/magic/eldritch_shapeshift.dm b/code/modules/antagonists/heretic/magic/eldritch_shapeshift.dm index 18f5a981999..aed5cb78c92 100644 --- a/code/modules/antagonists/heretic/magic/eldritch_shapeshift.dm +++ b/code/modules/antagonists/heretic/magic/eldritch_shapeshift.dm @@ -14,7 +14,7 @@ possible_shapes = list( /mob/living/basic/mouse, /mob/living/basic/pet/dog/corgi, - /mob/living/simple_animal/hostile/carp, + /mob/living/basic/carp, /mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/pet/fox, /mob/living/simple_animal/pet/cat, diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 318c4600cdf..12f296b8477 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -127,7 +127,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) tc_to_distribute -= tc_per_nukie if (tc_to_distribute > 0) // What shall we do with the remainder... - for (var/mob/living/simple_animal/hostile/carp/cayenne/C in GLOB.mob_living_list) + for (var/mob/living/basic/carp/pet/cayenne/C in GLOB.mob_living_list) if (C.stat != DEAD) var/obj/item/stack/telecrystal/TC = new(C.drop_location(), tc_to_distribute) TC.throw_at(get_step(C, C.dir), 3, 3) diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm index 38d8abeee46..f208d4c7f27 100644 --- a/code/modules/antagonists/space_dragon/space_dragon.dm +++ b/code/modules/antagonists/space_dragon/space_dragon.dm @@ -21,9 +21,9 @@ /// Whether or not Space Dragon has completed their objective, and thus triggered the ending sequence. var/objective_complete = FALSE /// What mob to spawn from ghosts using this dragon's rifts - var/minion_to_spawn = /mob/living/simple_animal/hostile/carp + var/minion_to_spawn = /mob/living/basic/carp /// What AI mobs to spawn from this dragon's rifts - var/ai_to_spawn = /mob/living/simple_animal/hostile/carp + var/ai_to_spawn = /mob/living/basic/carp /datum/antagonist/space_dragon/greet() . = ..() diff --git a/code/modules/antagonists/traitor/objectives/kill_pet.dm b/code/modules/antagonists/traitor/objectives/kill_pet.dm index f62a823d1c4..2d3c1c7f3c8 100644 --- a/code/modules/antagonists/traitor/objectives/kill_pet.dm +++ b/code/modules/antagonists/traitor/objectives/kill_pet.dm @@ -53,7 +53,7 @@ limited_to_department_head = FALSE possible_heads = list( JOB_HEAD_OF_SECURITY = list( - /mob/living/simple_animal/hostile/carp/lia, + /mob/living/basic/carp/pet/lia, /mob/living/simple_animal/hostile/retaliate/bat/sgt_araneus ), JOB_WARDEN = list( diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 7d59e9caa76..41a8bf1b9b4 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -30,12 +30,12 @@ /datum/round_event/carp_migration/start() - var/mob/living/simple_animal/hostile/carp/fish + var/mob/living/basic/carp/fish for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) if(prob(95)) fish = new (C.loc) else - fish = new /mob/living/simple_animal/hostile/carp/megacarp(C.loc) + fish = new /mob/living/basic/carp/mega(C.loc) fishannounce(fish) //Prefer to announce the megacarps over the regular fishies fishannounce(fish) diff --git a/code/modules/events/ghost_role/sentience.dm b/code/modules/events/ghost_role/sentience.dm index a26a787ff84..ca4bb0fc969 100644 --- a/code/modules/events/ghost_role/sentience.dm +++ b/code/modules/events/ghost_role/sentience.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_INIT(high_priority_sentience, typecacheof(list( /mob/living/simple_animal/chicken, /mob/living/basic/cow, /mob/living/simple_animal/hostile/retaliate/bat, - /mob/living/simple_animal/hostile/carp/cayenne, + /mob/living/basic/carp/pet/cayenne, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/hostile/retaliate/snake, /mob/living/simple_animal/hostile/retaliate/goose/vomit, diff --git a/code/modules/events/scrubber_clog.dm b/code/modules/events/scrubber_clog.dm index 12d3cbc838f..ecbd334cb63 100644 --- a/code/modules/events/scrubber_clog.dm +++ b/code/modules/events/scrubber_clog.dm @@ -175,7 +175,7 @@ /datum/round_event/scrubber_clog/critical/get_mob() var/static/list/mob_list = list( - /mob/living/simple_animal/hostile/carp, + /mob/living/basic/carp, /mob/living/simple_animal/hostile/bee/toxin, /mob/living/basic/cockroach/glockroach, ) diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm index 98c168907e7..5a49a441fb9 100644 --- a/code/modules/events/wizard/magicarp.dm +++ b/code/modules/events/wizard/magicarp.dm @@ -19,6 +19,6 @@ /datum/round_event/wizard/magicarp/start() for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) if(prob(5)) - new /mob/living/simple_animal/hostile/carp/ranged/chaos(C.loc) + new /mob/living/basic/carp/magic/chaos(C.loc) else - new /mob/living/simple_animal/hostile/carp/ranged(C.loc) + new /mob/living/basic/carp/magic(C.loc) diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm index 31ebe744833..f707d10efda 100644 --- a/code/modules/experisci/experiment/experiments.dm +++ b/code/modules/experisci/experiment/experiments.dm @@ -39,7 +39,7 @@ description = "We need to see how the body functions from the earliest moments. Some cytology experiments will help us gain this understanding." total_requirement = 3 max_requirement_per_type = 2 - possible_types = list(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/retaliate/snake, /mob/living/simple_animal/pet/cat, /mob/living/basic/pet/dog/corgi, /mob/living/basic/cow, /mob/living/simple_animal/chicken) + possible_types = list(/mob/living/basic/carp, /mob/living/simple_animal/hostile/retaliate/snake, /mob/living/simple_animal/pet/cat, /mob/living/basic/pet/dog/corgi, /mob/living/basic/cow, /mob/living/simple_animal/chicken) /datum/experiment/scanning/random/cytology/medium/one name = "Advanced Cytology Scanning Experiment One" diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index 4d14fc929cf..cb2853bd810 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -53,7 +53,7 @@ return to_spawn /obj/effect/holodeck_effect/mobspawner - var/mobtype = /mob/living/simple_animal/hostile/carp/holocarp + var/mobtype = /mob/living/basic/carp/holographic var/mob/our_mob = null /obj/effect/holodeck_effect/mobspawner/activate(obj/machinery/computer/holodeck/HC) diff --git a/code/modules/meteors/meteors.dm b/code/modules/meteors/meteors.dm index 1cbdcb2fb45..800915df346 100644 --- a/code/modules/meteors/meteors.dm +++ b/code/modules/meteors/meteors.dm @@ -387,14 +387,14 @@ GLOBAL_LIST_INIT(meteors_sandstorm, list(/obj/effect/meteor/sand=45, /obj/effect desc = "Am I glad he's frozen in there, and that we're out here." hits = 4 meteorsound = 'sound/effects/ethereal_revive_fail.ogg' - meteordrop = list(/mob/living/simple_animal/hostile/carp) + meteordrop = list(/mob/living/basic/carp) dropamt = 1 threat = 5 signature = "fishing and trawling" /obj/effect/meteor/carp/Initialize(mapload) if(prob(2)) - meteordrop = list(/mob/living/simple_animal/hostile/carp/megacarp) //hehe + meteordrop = list(/mob/living/basic/carp/mega) //hehe return ..() //bluespace meteor diff --git a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm index 2efe81029ad..f4e4aa908e0 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm @@ -63,7 +63,7 @@ if(!food_types) food_types = src.food_types.Copy() AddComponent(/datum/component/tameable, food_types = food_types, tame_chance = 25, bonus_tame_chance = 15, after_tame = CALLBACK(src, PROC_REF(tamed))) - AddElement(/datum/element/basic_eating, 10, food_types) + AddElement(/datum/element/basic_eating, 10, 0, null, food_types) /mob/living/basic/cow/proc/tamed(mob/living/tamer) buckle_lying = 0 diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm b/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm index d5a1250144d..0c0c7047bdd 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm @@ -34,7 +34,7 @@ var/static/list/food_types if(!food_types) food_types = src.food_types.Copy() - AddElement(/datum/element/basic_eating, 10, food_types) + AddElement(/datum/element/basic_eating, 10, 0, null, food_types) AddComponent(/datum/component/tameable, food_types = food_types, tame_chance = 25, bonus_tame_chance = 15, after_tame = CALLBACK(src, PROC_REF(tamed))) /mob/living/basic/cow/moonicorn/tamed(mob/living/tamer) diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp.dm b/code/modules/mob/living/basic/space_fauna/carp/carp.dm new file mode 100644 index 00000000000..12a60a7bad4 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp.dm @@ -0,0 +1,215 @@ +/** + * ## Space Carp + * + * A migratory dwarf fortress reference who swim through space and sometimes bump into the space station. + * Can be created in dehydrated form by traitors, and are also summoned through rifts by space dragons. + * + * Begin regenerating their health after a short time without taking any damage, and will try to run away to do this if they get hurt. + * Lethally attracted to loose plastic. + * + * Tameable by feeding them meat, and can follow basic instructions. Rideable. + * Owned as a pet both by the HoS (sometimes) and also the Nuclear Operatives. + */ +/mob/living/basic/carp + name = "space carp" + desc = "A ferocious, fang-bearing creature that resembles a fish." + icon = 'icons/mob/simple/carp.dmi' + icon_state = "base" + icon_living = "base" + icon_dead = "base_dead" + icon_gib = "carp_gib" + gold_core_spawnable = HOSTILE_SPAWN + mob_biotypes = MOB_ORGANIC | MOB_BEAST + movement_type = FLYING + health = 25 + maxHealth = 25 + pressure_resistance = 200 + combat_mode = TRUE + obj_damage = 50 + melee_damage_lower = 20 + melee_damage_upper = 20 + attack_sound = 'sound/weapons/bite.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + faction = list("carp") + butcher_results = list(/obj/item/food/fishmeat/carp = 2, /obj/item/stack/sheet/animalhide/carp = 1) + greyscale_config = /datum/greyscale_config/carp + ai_controller = /datum/ai_controller/basic_controller/carp + + /// Cytology cells you can swab from this creature + var/cell_line = CELL_LINE_TABLE_CARP + /// What colour is our 'healing' outline? + var/regenerate_colour = COLOR_PALE_GREEN + /// Information to apply when treating this carp as a vehicle + var/ridable_data = /datum/component/riding/creature/carp + /// Commands you can give this carp once it is tamed, not static because subtypes can modify it + var/tamed_commands = list( + /datum/pet_command/idle, + /datum/pet_command/free, + /datum/pet_command/follow, + /datum/pet_command/point_targetting/attack/carp + ) + /// Carp want to eat raw meat + var/static/list/desired_food = list(/obj/item/food/meat/slab, /obj/item/food/meat/rawcutlet) + /// Carp want to eat delicious six pack plastic rings + var/static/list/desired_trash = list(/obj/item/storage/cans) + /// Weighted list of colours a carp can be + /// Weighted list of usual carp colors + var/static/list/carp_colors = list( + COLOR_CARP_PURPLE = 7, + COLOR_CARP_PINK = 7, + COLOR_CARP_GREEN = 7, + COLOR_CARP_GRAPE = 7, + COLOR_CARP_SWAMP = 7, + COLOR_CARP_TURQUOISE = 7, + COLOR_CARP_BROWN = 7, + COLOR_CARP_TEAL = 7, + COLOR_CARP_LIGHT_BLUE = 7, + COLOR_CARP_RUSTY = 7, + COLOR_CARP_RED = 7, + COLOR_CARP_YELLOW = 7, + COLOR_CARP_BLUE = 7, + COLOR_CARP_PALE_GREEN = 7, + COLOR_CARP_SILVER = 1, // The rare silver carp + ) + +/mob/living/basic/carp/Initialize(mapload, mob/tamer) + . = ..() + apply_colour() + ADD_TRAIT(src, TRAIT_HEALS_FROM_CARP_RIFTS, INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) + + if (cell_line) + AddElement(/datum/element/swabable, cell_line, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) + AddElement(/datum/element/simple_flying) + AddElement(/datum/element/ai_flee_while_injured) + setup_eating() + + AddComponent(/datum/component/regenerator, outline_colour = regenerate_colour) + if (tamer) + befriend(tamer) + on_tamed(tamer, FALSE) + else + AddComponent(/datum/component/tameable, food_types = list(/obj/item/food/meat), tame_chance = 10, bonus_tame_chance = 5, after_tame = CALLBACK(src, PROC_REF(on_tamed))) + +/// Tell the elements and the blackboard what food we want to eat +/mob/living/basic/carp/proc/setup_eating() + AddElement(/datum/element/basic_eating, 10, 0, null, desired_food) + AddElement(/datum/element/basic_eating, 0, 10, BRUTE, desired_trash) // We are killing our planet + ai_controller.blackboard[BB_BASIC_FOODS] = desired_food + desired_trash + +/// Set a random colour on the carp, override to do something else +/mob/living/basic/carp/proc/apply_colour() + if (!greyscale_config) + return + set_greyscale(colors = list(pick_weight(carp_colors))) + +/// Called when another mob has forged a bond of friendship with this one, passed the taming mob as 'tamer' +/mob/living/basic/carp/proc/on_tamed(mob/tamer, feedback = TRUE) + buckle_lying = 0 + AddElement(/datum/element/ridable, ridable_data) + AddComponent(/datum/component/obeys_commands, tamed_commands) + if (!feedback) + return + spin(spintime = 10, speed = 1) + visible_message("[src] spins in a circle as it seems to bond with [tamer].") + +/** + * Holographic carp from the holodeck + */ +/mob/living/basic/carp/holographic + icon_state = "holocarp" + icon_living = "holocarp" + gold_core_spawnable = NO_SPAWN + greyscale_config = NONE + basic_mob_flags = DEL_ON_DEATH + cell_line = NONE + regenerate_colour = "#ffffff" + +/// Holocarp don't eat food +/mob/living/basic/carp/holographic/setup_eating() + return FALSE + +/** + * Pet carp, abstract carp which just holds some shared properties. + */ +/mob/living/basic/carp/pet + speak_emote = list("squeaks") + gold_core_spawnable = NO_SPAWN + gender = FEMALE // Both current existing pet carp are female but you can remove this if someone else gets a male one? + ai_controller = /datum/ai_controller/basic_controller/carp/pet + +/mob/living/basic/carp/pet/Initialize(mapload) + . = ..() + AddElement(/datum/element/ai_retaliate) + AddElement(/datum/element/pet_bonus, "bloops happily!") + +/** + * Lia - Sometimes the pet of the Head of Security. + * Has a lot more health than a normal carp because she's meant to be a mildly more threatening pet to have to assassinate than an aging corgi. + */ +/mob/living/basic/carp/pet/lia + name = "Lia" + real_name = "Lia" + desc = "A failed experiment of Nanotrasen to create weaponised carp technology. This less than intimidating carp now serves as the Head of Security's pet." + faction = list("neutral") + maxHealth = 200 + health = 200 + icon_dead = "magicarp_dead" + icon_gib = "magicarp_gib" + icon_living = "magicarp" + icon_state = "magicarp" + greyscale_config = NONE + +/// Boosted chance for Cayenne to be silver +#define RARE_CAYENNE_CHANCE 10 + +/** + * Cayenne - Loyal member of the nuclear operatives. + * Spawns in the nuke op shuttle, can be made sapient if they want to do that for some reason. + * Is very talented and also capable of holding the nuclear disk. + */ +/mob/living/basic/carp/pet/cayenne + name = "Cayenne" + real_name = "Cayenne" + desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot." + faction = list(ROLE_SYNDICATE) + /// Overlay to apply to display the disk + var/mutable_appearance/disk_overlay + /// Overlay to apply over the disk so it looks like cayenne is holding it + var/mutable_appearance/mouth_overlay + +/mob/living/basic/carp/pet/cayenne/Initialize(mapload) + . = ..() + var/datum/callback/got_disk = CALLBACK(src, PROC_REF(got_disk)) + var/datum/callback/display_disk = CALLBACK(src, PROC_REF(display_disk)) + AddComponent(/datum/component/nuclear_bomb_operator, got_disk, display_disk) + +/mob/living/basic/carp/pet/cayenne/apply_colour() + if (prob(RARE_CAYENNE_CHANCE)) + set_greyscale(colors = list(COLOR_CARP_SILVER)) + else + return ..() + +/// She did it! Treats for Cayenne! +/mob/living/basic/carp/pet/cayenne/proc/got_disk(obj/item/disk/nuclear/disky) + if (disky.fake) // Never mind she didn't do it + return + client.give_award(/datum/award/achievement/misc/cayenne_disk, src) + +/// Adds an overlay to show the disk on Cayenne +/mob/living/basic/carp/pet/cayenne/proc/display_disk(list/new_overlays) + if (!mouth_overlay) + mouth_overlay = mutable_appearance(SSgreyscale.GetColoredIconByType(/datum/greyscale_config/carp/disk_mouth, greyscale_colors), "disk_mouth") + new_overlays += mouth_overlay + + if (!disk_overlay) + disk_overlay = mutable_appearance('icons/mob/simple/carp.dmi', "disk_overlay") + new_overlays += disk_overlay + +#undef RARE_CAYENNE_CHANCE diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm new file mode 100644 index 00000000000..abb24df73b4 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm @@ -0,0 +1,29 @@ +/** + * # Magicarp Bolt + * Holder ability simply for "firing a projectile with a cooldown". + * Probably won't do anything if assigned via VV unless you also VV in a projectile for it. + */ +/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt + name = "Magicarp Blast" + desc = "Unleash a bolt of magical force at a target you click on." + button_icon = 'icons/obj/weapons/guns/projectiles.dmi' + button_icon_state = "arcane_barrage" + cooldown_time = 5 SECONDS + projectile_sound = 'sound/weapons/emitter.ogg' + melee_cooldown_time = 0 SECONDS // Without this they become extremely hesitant to bite anyone ever + shared_cooldown = MOB_SHARED_COOLDOWN_2 + +/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos/attack_sequence(mob/living/firer, atom/target) + playsound(get_turf(firer), projectile_sound, 100, vary = TRUE) + return ..() + +/// Chaos variant picks one from a list +/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos + /// List of things we can cast + var/list/permitted_projectiles = list() + +/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos/attack_sequence(mob/living/firer, atom/target) + if (!length(permitted_projectiles)) + return + projectile_type = pick(permitted_projectiles) + return ..() diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.dm new file mode 100644 index 00000000000..abda57a55ed --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_actions.dm @@ -0,0 +1,74 @@ +#define MAGICARP_SPELL_TARGET_SEEK_RANGE 4 + +/datum/pet_command/point_targetting/attack/carp + attack_behaviour = /datum/ai_behavior/basic_melee_attack/carp + +/datum/pet_command/point_targetting/use_ability/magicarp + pet_ability_key = BB_MAGICARP_SPELL + +/datum/ai_planning_subtree/basic_melee_attack_subtree/carp + melee_attack_behavior = /datum/ai_behavior/basic_melee_attack/carp + +/datum/ai_behavior/basic_melee_attack/carp + action_cooldown = 1.5 SECONDS + +/datum/ai_planning_subtree/attack_obstacle_in_path/carp + attack_behaviour = /datum/ai_behavior/attack_obstructions/carp + +/datum/ai_behavior/attack_obstructions/carp + action_cooldown = 1.5 SECONDS + +/// As basic attack tree but interrupt if your health gets low or if your spell is off cooldown +/datum/ai_planning_subtree/basic_melee_attack_subtree/magicarp + melee_attack_behavior = /datum/ai_behavior/basic_melee_attack/carp/magic + +/// Interrupt your attack chain if: you have a spell, it's not on cooldown, and it has a target +/datum/ai_behavior/basic_melee_attack/carp/magic + +/datum/ai_behavior/basic_melee_attack/carp/magic/perform(delta_time, datum/ai_controller/controller, target_key, targetting_datum_key, hiding_location_key, health_ratio_key) + var/datum/action/cooldown/using_action = controller.blackboard[BB_MAGICARP_SPELL] + if (QDELETED(using_action)) + return ..() + if (!controller.blackboard[BB_MAGICARP_SPELL_SPECIAL_TARGETTING] && using_action.IsAvailable()) + finish_action(controller, succeeded = FALSE) + return + return ..() + +/** + * Find a target for the magicarp's spell + * This gets weird because different spells want different targetting + * but I didn't want a new ai controller for every different spell + */ +/datum/ai_planning_subtree/find_nearest_magicarp_spell_target + +/datum/ai_planning_subtree/find_nearest_magicarp_spell_target/SelectBehaviors(datum/ai_controller/controller, delta_time) + var/datum/action/cooldown/using_action = controller.blackboard[BB_MAGICARP_SPELL] + if (QDELETED(using_action)) + return + if (!using_action.IsAvailable()) + return + + var/spell_targetting = controller.blackboard[BB_MAGICARP_SPELL_SPECIAL_TARGETTING] + if (!spell_targetting) + controller.queue_behavior(/datum/ai_behavior/find_potential_targets/nearest/magicarp, BB_MAGICARP_SPELL_TARGET, BB_TARGETTING_DATUM, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION) + return + + switch(spell_targetting) + if (MAGICARP_SPELL_CORPSES) + controller.queue_behavior(/datum/ai_behavior/find_and_set/friendly_corpses, BB_MAGICARP_SPELL_TARGET, MAGICARP_SPELL_TARGET_SEEK_RANGE) + return + if (MAGICARP_SPELL_OBJECTS) + controller.queue_behavior(/datum/ai_behavior/find_and_set/animatable, BB_MAGICARP_SPELL_TARGET, MAGICARP_SPELL_TARGET_SEEK_RANGE) + return + if (MAGICARP_SPELL_WALLS) + controller.queue_behavior(/datum/ai_behavior/find_and_set/nearest_wall, BB_MAGICARP_SPELL_TARGET, MAGICARP_SPELL_TARGET_SEEK_RANGE) + return + +/// This subtype only exists because if you queue multiple of the same action with different arguments it deletes their stored arguments +/datum/ai_behavior/find_potential_targets/nearest/magicarp + +/// Then use it on that target +/datum/ai_planning_subtree/targetted_mob_ability/magicarp + ability_key = BB_MAGICARP_SPELL + target_key = BB_MAGICARP_SPELL_TARGET + use_ability_behaviour = /datum/ai_behavior/try_mob_ability/and_clear_target diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm new file mode 100644 index 00000000000..4cb0ea4f476 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm @@ -0,0 +1,62 @@ +/** + * AI controller for carp + * Expected flow is: + * * If health is low, mark that we want to run away. + * * If we want to run away, find nearest target and run out of view of it. + * * Look for anything we want to eat in the area and target it. + * * If we don't have a target already, find something to attack. + * * Go and attack our target (which might be food, or might be a mob). + */ +/datum/ai_controller/basic_controller/carp + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic/allow_items(), + BB_PET_TARGETTING_DATUM = new /datum/targetting_datum/not_friends() + ) + + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + planning_subtrees = list( + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/simple_find_nearest_target_to_flee, + /datum/ai_planning_subtree/flee_target, + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/attack_obstacle_in_path/carp, + /datum/ai_planning_subtree/basic_melee_attack_subtree/carp, + ) + +/** + * Carp which bites back, but doesn't look for targets. + * 'Not hunting targets' includes food (and can rings), because they have been well trained. + */ +/datum/ai_controller/basic_controller/carp/pet + blackboard = list( + BB_TARGETTING_DATUM = new /datum/targetting_datum/basic/ignore_faction(), + BB_PET_TARGETTING_DATUM = new /datum/targetting_datum/not_friends() + ) + ai_traits = STOP_MOVING_WHEN_PULLED + planning_subtrees = list( + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee, + /datum/ai_planning_subtree/flee_target, + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/attack_obstacle_in_path/carp, + /datum/ai_planning_subtree/basic_melee_attack_subtree/carp, + ) + +/** + * AI for carp with a spell. + * Flow is basically the same as regular carp, except it will try and cast a spell at its target whenever possible and not fleeing. + */ +/datum/ai_controller/basic_controller/carp/ranged + planning_subtrees = list( + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/simple_find_nearest_target_to_flee, + /datum/ai_planning_subtree/flee_target, + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/find_nearest_magicarp_spell_target, + /datum/ai_planning_subtree/targetted_mob_ability/magicarp, + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/attack_obstacle_in_path/carp, + /datum/ai_planning_subtree/basic_melee_attack_subtree/magicarp, + ) diff --git a/code/modules/mob/living/basic/space_fauna/carp/magicarp.dm b/code/modules/mob/living/basic/space_fauna/carp/magicarp.dm new file mode 100644 index 00000000000..57c13488679 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/magicarp.dm @@ -0,0 +1,136 @@ +/// A list of spells magicarp can use and a corresponding name prefix to apply +GLOBAL_LIST_INIT(magicarp_spell_types, list( + /obj/projectile/magic/animate = "dancing", + /obj/projectile/magic/arcane_barrage = "arcane", + /obj/projectile/magic/change = "transforming", + /obj/projectile/magic/death = "grim", + /obj/projectile/magic/door = "unbarred", + /obj/projectile/magic/fireball = "blazing", + /obj/projectile/magic/resurrection = "vital", + /obj/projectile/magic/spellblade = "vorpal", + /obj/projectile/magic/teleport = "warping", + /obj/projectile/magic/babel = "babbling", +)) + +/// A reduced list of spells for magicarp spawned in xenobiology, less disruptive +GLOBAL_LIST_INIT(xenobiology_magicarp_spell_types, list( + /obj/projectile/magic/animate = "dancing", + /obj/projectile/magic/teleport = "warping", + /obj/projectile/magic/door = "unbarred", + /obj/projectile/magic/fireball = "blazing", + /obj/projectile/magic/spellblade = "vorpal", + /obj/projectile/magic/arcane_barrage = "arcane", +)) + +/// Associative list of magicarp spells to colours, expand this list if you expand the other lists +GLOBAL_LIST_INIT(magicarp_spell_colours, list( + /obj/projectile/magic/animate = COLOR_CARP_RUSTY, + /obj/projectile/magic/arcane_barrage = COLOR_CARP_PURPLE, + /obj/projectile/magic/change = COLOR_CARP_PINK, + /obj/projectile/magic/death = COLOR_CARP_DARK_BLUE, + /obj/projectile/magic/door = COLOR_CARP_GREEN, + /obj/projectile/magic/fireball = COLOR_CARP_RED, + /obj/projectile/magic/resurrection = COLOR_CARP_PALE_GREEN, + /obj/projectile/magic/spellblade = COLOR_CARP_SILVER, + /obj/projectile/magic/teleport = COLOR_CARP_GRAPE, + /obj/projectile/magic/babel = COLOR_CARP_BROWN, +)) + +/** + * # Magicarp + * + * Carp who can cast spells! + * Mostly created via wizard event or transformation. + * Come in 'does one thing' and 'does random things' varieties. + */ +/mob/living/basic/carp/magic + name = "magicarp" + desc = "50% magic, 50% carp, 100% horrible." + icon_gib = "magicarp_gib" + maxHealth = 50 + health = 50 + gold_core_spawnable = NO_SPAWN + greyscale_config = /datum/greyscale_config/carp_magic + ai_controller = /datum/ai_controller/basic_controller/carp/ranged + tamed_commands = list( + /datum/pet_command/idle, + /datum/pet_command/free, + /datum/pet_command/follow, + /datum/pet_command/point_targetting/attack/carp, + /datum/pet_command/point_targetting/use_ability/magicarp, + ) + /// List of all projectiles we can fire. + /// Non-static, because subtypes can have their own lists. + var/list/allowed_projectile_types + /// Our magic attack + var/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/spell + +/mob/living/basic/carp/magic/Initialize(mapload) + . = ..() + allowed_projectile_types = spell_list() + assign_spell() + +/// Returns the list of spells we are allowed to cast +/mob/living/basic/carp/magic/proc/spell_list() + return GLOB.magicarp_spell_types + +/// Updates name based on chosen spell +/mob/living/basic/carp/magic/proc/assign_spell() + var/obj/projectile/spell_type = pick(allowed_projectile_types) + name = "[GLOB.magicarp_spell_types[spell_type]] [name]" + set_greyscale(colors = list(GLOB.magicarp_spell_colours[spell_type])) + + spell = new (src) + spell.projectile_type = spell_type + spell.button_icon_state = initial(spell_type.icon_state) + spell.Grant(src) + ai_controller.blackboard[BB_MAGICARP_SPELL] = spell + assign_spell_ai(spell_type) + +/// If you have certain spells, use a different targetting datum +/mob/living/basic/carp/magic/proc/assign_spell_ai(spell_type) + var/static/list/spell_special_targetting = list( + /obj/projectile/magic/animate = MAGICARP_SPELL_OBJECTS, + /obj/projectile/magic/door = MAGICARP_SPELL_WALLS, + /obj/projectile/magic/resurrection = MAGICARP_SPELL_CORPSES, + ) + + ai_controller.blackboard[BB_MAGICARP_SPELL_SPECIAL_TARGETTING] = spell_special_targetting[spell_type] + +/// Shoot when you click away from you +/mob/living/basic/carp/magic/RangedAttack(atom/atom_target, modifiers) + spell.Trigger(target = atom_target) + +/*** + * # Chaos Magicarp + * + * Fires a random spell (and changes colour) every time, also beefier. + * Sometimes actually more durable than the much larger megacarp. That's magic for you. + * They trade off for this with a tendency to fireball themselves. + */ +/mob/living/basic/carp/magic/chaos + name = "chaos magicarp" + desc = "50% carp, 100% magic, 150% horrible." + maxHealth = 75 + health = 75 + +/mob/living/basic/carp/magic/chaos/assign_spell() + var/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/chaos/chaos_bolt = new(src) + chaos_bolt.permitted_projectiles = allowed_projectile_types + chaos_bolt.Grant(src) + spell = chaos_bolt + ai_controller.blackboard[BB_MAGICARP_SPELL] = spell + RegisterSignal(spell, COMSIG_ACTION_TRIGGER, PROC_REF(apply_colour)) + +/// Has a more limited spell pool but can appear from gold slime cores +/mob/living/basic/carp/magic/xenobiology + gold_core_spawnable = HOSTILE_SPAWN + +/mob/living/basic/carp/magic/xenobiology/spell_list() + return GLOB.xenobiology_magicarp_spell_types + +/mob/living/basic/carp/magic/chaos/xenobiology + gold_core_spawnable = HOSTILE_SPAWN + +/mob/living/basic/carp/magic/chaos/xenobiology/spell_list() + return GLOB.xenobiology_magicarp_spell_types diff --git a/code/modules/mob/living/basic/space_fauna/carp/megacarp.dm b/code/modules/mob/living/basic/space_fauna/carp/megacarp.dm new file mode 100644 index 00000000000..deadeaaa540 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/carp/megacarp.dm @@ -0,0 +1,34 @@ +/** + * ## Mega Space Carp + * + * A bigger space carp with more health and greater ability to smash objects. + * Brings in some buddies when it starts fleeing as a distraction. + * Has mildly randomised stats for some inexplicable reason, makes it somewhat more like a randomised Diablo mob. + */ +/mob/living/basic/carp/mega + icon = 'icons/mob/simple/broadMobs.dmi' + name = "Mega Space Carp" + desc = "A ferocious, fang bearing creature that resembles a shark. This one seems especially ticked off." + icon_state = "megacarp_greyscale" + icon_living = "megacarp_greyscale" + icon_dead = "megacarp_dead_greyscale" + icon_gib = "megacarp_gib" + health_doll_icon = "megacarp" + maxHealth = 20 + health = 20 + pixel_x = -16 + base_pixel_x = -16 + mob_size = MOB_SIZE_LARGE + obj_damage = 80 + cell_line = CELL_LINE_TABLE_MEGACARP + ridable_data = /datum/component/riding/creature/megacarp + greyscale_config = /datum/greyscale_config/carp_mega + butcher_results = list(/obj/item/food/fishmeat/carp = 2, /obj/item/stack/sheet/animalhide/carp = 3) + +/mob/living/basic/carp/mega/Initialize(mapload) + . = ..() + name = "[pick(GLOB.megacarp_first_names)] [pick(GLOB.megacarp_last_names)]" + melee_damage_lower += rand(2, 10) + melee_damage_upper += rand(10,20) + maxHealth += rand(30,60) + health = maxHealth diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index e3d12151a10..21a45775097 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1406,7 +1406,7 @@ if(WABBAJACK_ANIMAL) var/picked_animal = pick( - /mob/living/simple_animal/hostile/carp, + /mob/living/basic/carp, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/mushroom, /mob/living/simple_animal/hostile/netherworld/statue, @@ -1416,8 +1416,8 @@ /mob/living/simple_animal/hostile/giant_spider, /mob/living/simple_animal/hostile/giant_spider/hunter, /mob/living/simple_animal/hostile/blob/blobbernaut/independent, - /mob/living/simple_animal/hostile/carp/ranged, - /mob/living/simple_animal/hostile/carp/ranged/chaos, + /mob/living/basic/carp/magic, + /mob/living/basic/carp/magic/chaos, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher, /mob/living/simple_animal/hostile/asteroid/goliath/beast, /mob/living/simple_animal/hostile/headcrab, diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm deleted file mode 100644 index c59903c31fd..00000000000 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ /dev/null @@ -1,257 +0,0 @@ -/mob/living/simple_animal/hostile/carp - name = "space carp" - desc = "A ferocious, fang-bearing creature that resembles a fish." - icon = 'icons/mob/simple/carp.dmi' - icon_state = "base" - icon_living = "base" - icon_dead = "base_dead" - icon_gib = "carp_gib" - mob_biotypes = MOB_ORGANIC|MOB_BEAST - movement_type = FLYING - ai_controller = /datum/ai_controller/hostile_friend - speak_chance = 0 - turns_per_move = 5 - butcher_results = list(/obj/item/food/fishmeat/carp = 2, /obj/item/stack/sheet/animalhide/carp = 1) - response_help_continuous = "pets" - response_help_simple = "pet" - response_disarm_continuous = "gently pushes aside" - response_disarm_simple = "gently push aside" - emote_taunt = list("gnashes") - taunt_chance = 30 - speed = 0 - maxHealth = 25 - health = 25 - search_objects = 1 - wanted_objects = list(/obj/item/storage/cans) - harm_intent_damage = 8 - obj_damage = 50 - melee_damage_lower = 20 - melee_damage_upper = 20 - attack_verb_continuous = "bites" - attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' - attack_vis_effect = ATTACK_EFFECT_BITE - speak_emote = list("gnashes") - //Space carp aren't affected by cold. - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = 1500 - faction = list("carp") - pressure_resistance = 200 - gold_core_spawnable = HOSTILE_SPAWN - greyscale_config = /datum/greyscale_config/carp - /// Weighted list of usual carp colors - var/static/list/carp_colors = list( - COLOR_CARP_PURPLE = 7, - COLOR_CARP_PINK = 7, - COLOR_CARP_GREEN = 7, - COLOR_CARP_GRAPE = 7, - COLOR_CARP_SWAMP = 7, - COLOR_CARP_TURQUOISE = 7, - COLOR_CARP_BROWN = 7, - COLOR_CARP_TEAL = 7, - COLOR_CARP_LIGHT_BLUE = 7, - COLOR_CARP_RUSTY = 7, - COLOR_CARP_RED = 7, - COLOR_CARP_YELLOW = 7, - COLOR_CARP_BLUE = 7, - COLOR_CARP_PALE_GREEN = 7, - COLOR_CARP_SILVER = 1, // The rare silver carp - ) - /// Is the carp tamed? - var/tamed = FALSE - /// What colour is our 'healing' outline? - var/regenerate_colour = COLOR_PALE_GREEN - -/mob/living/simple_animal/hostile/carp/Initialize(mapload, mob/tamer) - AddElement(/datum/element/simple_flying) - apply_colour() - . = ..() - ADD_TRAIT(src, TRAIT_HEALS_FROM_CARP_RIFTS, INNATE_TRAIT) - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - AddComponent(/datum/component/regenerator, outline_colour = regenerate_colour) - add_cell_sample() - if(ai_controller) - ai_controller.blackboard[BB_HOSTILE_ATTACK_WORD] = pick(speak_emote) - if(tamer) - tamed(tamer) - else - make_tameable() - -/// Set a random colour on the carp, override to do something else -/mob/living/simple_animal/hostile/carp/proc/apply_colour() - if (!greyscale_config) - return - set_greyscale(colors = list(pick_weight(carp_colors))) - -/mob/living/simple_animal/hostile/carp/revive(full_heal_flags = NONE, excess_healing = 0, force_grab_ghost = FALSE) - . = ..() - if(!. || !tamed) - return - - var/datum/weakref/friendref = ai_controller.blackboard[BB_HOSTILE_FRIEND] - var/mob/living/friend = friendref?.resolve() - if(friend) - tamed(friend) - - update_icon() - -/mob/living/simple_animal/hostile/carp/death(gibbed) - if (tamed) - can_buckle = FALSE - return ..() - -/mob/living/simple_animal/hostile/carp/proc/make_tameable() - AddComponent(/datum/component/tameable, food_types = list(/obj/item/food/meat), tame_chance = 10, bonus_tame_chance = 5, after_tame = CALLBACK(src, PROC_REF(tamed))) - -/mob/living/simple_animal/hostile/carp/proc/tamed(mob/living/tamer) - tamed = TRUE - buckle_lying = 0 - AddElement(/datum/element/ridable, /datum/component/riding/creature/carp) - if(ai_controller) - var/datum/ai_controller/hostile_friend/ai_current_controller = ai_controller - ai_current_controller.befriend(tamer) - can_have_ai = FALSE - toggle_ai(AI_OFF) - -/mob/living/simple_animal/hostile/carp/add_cell_sample() - AddElement(/datum/element/swabable, CELL_LINE_TABLE_CARP, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) - -/mob/living/simple_animal/hostile/carp/proc/chomp_plastic() - var/obj/item/storage/cans/tasty_plastic = locate(/obj/item/storage/cans) in view(1, src) - if(tasty_plastic && Adjacent(tasty_plastic)) - visible_message(span_notice("[src] gets its head stuck in [tasty_plastic], and gets cut breaking free from it!"), span_notice("You try to avoid [tasty_plastic], but it looks so... delicious... Ow! It cuts the inside of your mouth!")) - - new /obj/effect/decal/cleanable/plastic(loc) - - adjustBruteLoss(5) - qdel(tasty_plastic) - -/mob/living/simple_animal/hostile/carp/Life(delta_time = SSMOBS_DT, times_fired) - . = ..() - if(stat == CONSCIOUS) - chomp_plastic() - -/mob/living/simple_animal/hostile/carp/holocarp - icon_state = "holocarp" - icon_living = "holocarp" - maxbodytemp = INFINITY - ai_controller = null - gold_core_spawnable = NO_SPAWN - del_on_death = 1 - greyscale_config = null - regenerate_colour = COLOR_WHITE - -/mob/living/simple_animal/hostile/carp/holocarp/add_cell_sample() - return - -/mob/living/simple_animal/hostile/carp/megacarp - icon = 'icons/mob/simple/broadMobs.dmi' - name = "Mega Space Carp" - desc = "A ferocious, fang bearing creature that resembles a shark. This one seems especially ticked off." - icon_state = "megacarp_greyscale" - icon_living = "megacarp_greyscale" - icon_dead = "megacarp_dead_greyscale" - icon_gib = "megacarp_gib" - health_doll_icon = "megacarp" - ai_controller = null - maxHealth = 20 - health = 20 - pixel_x = -16 - base_pixel_x = -16 - mob_size = MOB_SIZE_LARGE - greyscale_config = /datum/greyscale_config/carp_mega - - obj_damage = 80 - melee_damage_lower = 20 - melee_damage_upper = 20 - butcher_results = list(/obj/item/food/fishmeat/carp = 2, /obj/item/stack/sheet/animalhide/carp = 3) - -/mob/living/simple_animal/hostile/carp/megacarp/Initialize(mapload) - . = ..() - name = "[pick(GLOB.megacarp_first_names)] [pick(GLOB.megacarp_last_names)]" - melee_damage_lower += rand(2, 10) - melee_damage_upper += rand(10,20) - maxHealth += rand(30,60) - move_to_delay = rand(3,7) - -/mob/living/simple_animal/hostile/carp/megacarp/add_cell_sample() - AddElement(/datum/element/swabable, CELL_LINE_TABLE_MEGACARP, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) - -/mob/living/simple_animal/hostile/carp/megacarp/Login() - . = ..() - if(!. || !client) - return FALSE - - AddElement(/datum/element/ridable, /datum/component/riding/creature/megacarp) - can_buckle = TRUE - buckle_lying = 0 - -/mob/living/simple_animal/hostile/carp/lia - name = "Lia" - real_name = "Lia" - desc = "A failed experiment of Nanotrasen to create weaponised carp technology. This less than intimidating carp now serves as the Head of Security's pet." - gender = FEMALE - speak_emote = list("squeaks") - ai_controller = null - gold_core_spawnable = NO_SPAWN - faction = list(FACTION_NEUTRAL) - health = 200 - icon_dead = "magicarp_dead" - icon_gib = "magicarp_gib" - icon_living = "magicarp" - icon_state = "magicarp" - maxHealth = 200 - greyscale_config = null - -/mob/living/simple_animal/hostile/carp/lia/Initialize(mapload) - . = ..() - AddElement(/datum/element/pet_bonus, "bloops happily!") - -/// Boosted chance for Cayenne to be silver -#define RARE_CAYENNE_CHANCE 10 - -/mob/living/simple_animal/hostile/carp/cayenne - name = "Cayenne" - real_name = "Cayenne" - desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot." - gender = FEMALE - speak_emote = list("squeaks") - ai_controller = null - gold_core_spawnable = NO_SPAWN - faction = list(ROLE_SYNDICATE) - /// Overlay to apply to display the disk - var/mutable_appearance/disk_overlay - /// Overlay to apply over the disk so it looks like cayenne is holding it - var/mutable_appearance/mouth_overlay - -/mob/living/simple_animal/hostile/carp/cayenne/Initialize(mapload) - . = ..() - AddElement(/datum/element/pet_bonus, "bloops happily!") - var/datum/callback/got_disk = CALLBACK(src, PROC_REF(got_disk)) - var/datum/callback/display_disk = CALLBACK(src, PROC_REF(display_disk)) - AddComponent(/datum/component/nuclear_bomb_operator, got_disk, display_disk) - -/mob/living/simple_animal/hostile/carp/cayenne/apply_colour() - if (prob(RARE_CAYENNE_CHANCE)) - set_greyscale(colors = list(COLOR_CARP_SILVER)) - else - return ..() - -/// She did it! Treats for Cayenne! -/mob/living/simple_animal/hostile/carp/cayenne/proc/got_disk(obj/item/disk/nuclear/disky) - if (disky.fake) // Never mind she didn't do it - return - client.give_award(/datum/award/achievement/misc/cayenne_disk, src) - -/// Adds an overlay to show the disk on Cayenne -/mob/living/simple_animal/hostile/carp/cayenne/proc/display_disk(list/new_overlays) - if (!mouth_overlay) - mouth_overlay = mutable_appearance(SSgreyscale.GetColoredIconByType(/datum/greyscale_config/carp/disk_mouth, greyscale_colors), "disk_mouth") - new_overlays += mouth_overlay - - if (!disk_overlay) - disk_overlay = mutable_appearance('icons/mob/simple/carp.dmi', "disk_overlay") - new_overlays += disk_overlay - -#undef RARE_CAYENNE_CHANCE diff --git a/code/modules/mob/living/simple_animal/hostile/carp_magic.dm b/code/modules/mob/living/simple_animal/hostile/carp_magic.dm deleted file mode 100644 index bab4d58d16b..00000000000 --- a/code/modules/mob/living/simple_animal/hostile/carp_magic.dm +++ /dev/null @@ -1,97 +0,0 @@ -/// A list of spells magicarp can use and a corresponding name prefix to apply -GLOBAL_LIST_INIT(magicarp_spell_types, list( - /obj/projectile/magic/animate = "dancing", - /obj/projectile/magic/arcane_barrage = "arcane", - /obj/projectile/magic/change = "transforming", - /obj/projectile/magic/death = "grim", - /obj/projectile/magic/door = "unbarred", - /obj/projectile/magic/fireball = "blazing", - /obj/projectile/magic/resurrection = "vital", - /obj/projectile/magic/spellblade = "vorpal", - /obj/projectile/magic/teleport = "warping", - /obj/projectile/magic/babel = "babbling", -)) - -/// A reduced list of spells for magicarp spawned in xenobiology, less disruptive -GLOBAL_LIST_INIT(xenobiology_magicarp_spell_types, list( - /obj/projectile/magic/animate = "dancing", - /obj/projectile/magic/teleport = "warping", - /obj/projectile/magic/door = "unbarred", - /obj/projectile/magic/fireball = "blazing", - /obj/projectile/magic/spellblade = "vorpal", - /obj/projectile/magic/arcane_barrage = "arcane", -)) - -/// Associative list of magicarp spells to colours, expand this list if you expand the other lists -GLOBAL_LIST_INIT(magicarp_spell_colours, list( - /obj/projectile/magic/animate = COLOR_CARP_RUSTY, - /obj/projectile/magic/arcane_barrage = COLOR_CARP_PURPLE, - /obj/projectile/magic/change = COLOR_CARP_PINK, - /obj/projectile/magic/death = COLOR_CARP_DARK_BLUE, - /obj/projectile/magic/door = COLOR_CARP_GREEN, - /obj/projectile/magic/fireball = COLOR_CARP_RED, - /obj/projectile/magic/resurrection = COLOR_CARP_PALE_GREEN, - /obj/projectile/magic/spellblade = COLOR_CARP_SILVER, - /obj/projectile/magic/teleport = COLOR_CARP_GRAPE, - /obj/projectile/magic/babel = COLOR_CARP_BROWN, -)) - -/mob/living/simple_animal/hostile/carp/ranged - name = "magicarp" - desc = "50% magic, 50% carp, 100% horrible." - ranged = 1 - retreat_distance = 2 - minimum_distance = 0 //Between shots they can and will close in to nash - projectiletype = /obj/projectile/magic - projectilesound = 'sound/weapons/emitter.ogg' - maxHealth = 50 - health = 50 - gold_core_spawnable = NO_SPAWN - greyscale_config = /datum/greyscale_config/carp_magic - /// List of all projectiles we can fire. - /// Non-static, because subtypes can have their own lists. - var/list/allowed_projectile_types - -/mob/living/simple_animal/hostile/carp/ranged/Initialize(mapload) - . = ..() - allowed_projectile_types = spell_list() - assign_spell() - -/// Returns the list of spells we are allowed to cast -/mob/living/simple_animal/hostile/carp/ranged/proc/spell_list() - return GLOB.magicarp_spell_types - -/// Pick a random spell then update name and colour based on which one we picked -/mob/living/simple_animal/hostile/carp/ranged/proc/assign_spell() - projectiletype = pick(allowed_projectile_types) - name = "[GLOB.magicarp_spell_types[projectiletype]] [name]" - set_greyscale(colors = list(GLOB.magicarp_spell_colours[projectiletype])) - - -/mob/living/simple_animal/hostile/carp/ranged/chaos - name = "chaos magicarp" - desc = "50% carp, 100% magic, 150% horrible." - color = "#00FFFF" - maxHealth = 75 - health = 75 - gold_core_spawnable = NO_SPAWN - -/mob/living/simple_animal/hostile/carp/ranged/chaos/assign_spell() - return - -/mob/living/simple_animal/hostile/carp/ranged/chaos/Shoot() - projectiletype = pick(allowed_projectile_types) - apply_colour() - return ..() - -/mob/living/simple_animal/hostile/carp/ranged/xenobiology // these are for the xenobio gold slime pool - gold_core_spawnable = HOSTILE_SPAWN - -/mob/living/simple_animal/hostile/carp/ranged/xenobiology/spell_list() - return GLOB.xenobiology_magicarp_spell_types - -/mob/living/simple_animal/hostile/carp/ranged/chaos/xenobiology - gold_core_spawnable = HOSTILE_SPAWN - -/mob/living/simple_animal/hostile/carp/ranged/chaos/xenobiology/spell_list() - return GLOB.xenobiology_magicarp_spell_types diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 5693a2c305e..53e53b87a3f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -99,7 +99,7 @@ ..() /// Mimics can't be made out of these objects -GLOBAL_LIST_INIT(mimic_blacklist, list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/structure/blob)) +GLOBAL_LIST_INIT(animatable_blacklist, list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/structure/blob)) /mob/living/simple_animal/hostile/mimic/copy health = 100 @@ -143,7 +143,7 @@ GLOBAL_LIST_INIT(mimic_blacklist, list(/obj/structure/table, /obj/structure/cabl faction |= "[REF(owner)]" /mob/living/simple_animal/hostile/mimic/copy/proc/CheckObject(obj/O) - if((isitem(O) || isstructure(O)) && !is_type_in_list(O, GLOB.mimic_blacklist)) + if((isitem(O) || isstructure(O)) && !is_type_in_list(O, GLOB.animatable_blacklist)) return TRUE return FALSE diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b8102bb60ce..e7a4fc3027e 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -300,7 +300,7 @@ /mob/living/carbon/human/Animalize() - var/list/mobtypes = typesof(/mob/living/simple_animal) + var/list/mobtypes = typesof(/mob/living/simple_animal) + typesof(/mob/living/basic) var/mobpath = tgui_input_list(usr, "Which type of mob should [src] turn into?", "Choose a type", sort_list(mobtypes, GLOBAL_PROC_REF(cmp_typepaths_asc))) if(isnull(mobpath)) return @@ -334,7 +334,7 @@ /mob/proc/Animalize() - var/list/mobtypes = typesof(/mob/living/simple_animal) + var/list/mobtypes = typesof(/mob/living/simple_animal) + typesof(/mob/living/basic) var/mobpath = tgui_input_list(usr, "Which type of mob should [src] turn into?", "Choose a type", sort_list(mobtypes, GLOBAL_PROC_REF(cmp_typepaths_asc))) if(isnull(mobpath)) return @@ -372,7 +372,7 @@ return TRUE if(ispath(MP, /mob/living/simple_animal/crab)) return TRUE - if(ispath(MP, /mob/living/simple_animal/hostile/carp)) + if(ispath(MP, /mob/living/basic/carp)) return TRUE if(ispath(MP, /mob/living/simple_animal/hostile/mushroom)) return TRUE diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index a2a5cfa5910..b1b826c11b5 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -193,7 +193,7 @@ target.animate_atom_living(firer) /atom/proc/animate_atom_living(mob/living/owner = null) - if((isitem(src) || isstructure(src)) && !is_type_in_list(src, GLOB.mimic_blacklist)) + if((isitem(src) || isstructure(src)) && !is_type_in_list(src, GLOB.animatable_blacklist)) if(istype(src, /obj/structure/statue/petrified)) var/obj/structure/statue/petrified/P = src if(P.petrified_mob) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 12fadd21e5f..18444656670 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -650,7 +650,7 @@ /mob/living/basic/mouse, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/bee, - /mob/living/simple_animal/hostile/carp, + /mob/living/basic/carp, ) for(var/counter in 1 to rand(1, 25)) var/mobType = pick(valid_animals) diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index 68b9a984f67..77baae04425 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -187,7 +187,7 @@ /datum/reagent/oxygen = -3) virus_suspectibility = 2 - resulting_atoms = list(/mob/living/simple_animal/hostile/carp = 1) + resulting_atoms = list(/mob/living/basic/carp = 1) /datum/micro_organism/cell_line/megacarp desc = "Cartilaginous cyprinid cells" @@ -208,7 +208,7 @@ /datum/reagent/oxygen = -3) virus_suspectibility = 1 - resulting_atoms = list(/mob/living/simple_animal/hostile/carp/megacarp = 1) + resulting_atoms = list(/mob/living/basic/carp/mega = 1) /datum/micro_organism/cell_line/snake desc = "Ophidic cells" diff --git a/code/modules/spells/spell_types/conjure/carp.dm b/code/modules/spells/spell_types/conjure/carp.dm index 45007ee8503..5411030e75c 100644 --- a/code/modules/spells/spell_types/conjure/carp.dm +++ b/code/modules/spells/spell_types/conjure/carp.dm @@ -10,4 +10,4 @@ invocation_type = INVOCATION_SHOUT summon_radius = 1 - summon_type = list(/mob/living/simple_animal/hostile/carp) + summon_type = list(/mob/living/basic/carp) diff --git a/code/modules/spells/spell_types/shapeshift/shapechange.dm b/code/modules/spells/spell_types/shapeshift/shapechange.dm index d7b2f36da64..3079a7d5b86 100644 --- a/code/modules/spells/spell_types/shapeshift/shapechange.dm +++ b/code/modules/spells/spell_types/shapeshift/shapechange.dm @@ -13,7 +13,7 @@ possible_shapes = list( /mob/living/basic/mouse, /mob/living/basic/pet/dog/corgi, - /mob/living/simple_animal/hostile/carp/ranged/chaos, + /mob/living/basic/carp/magic/chaos, /mob/living/simple_animal/bot/secbot/ed209, /mob/living/simple_animal/hostile/giant_spider/viper/wizard, /mob/living/simple_animal/hostile/construct/juggernaut/mystic, diff --git a/code/modules/unit_tests/simple_animal_freeze.dm b/code/modules/unit_tests/simple_animal_freeze.dm index d979ca4f4e0..37e917b58da 100644 --- a/code/modules/unit_tests/simple_animal_freeze.dm +++ b/code/modules/unit_tests/simple_animal_freeze.dm @@ -127,15 +127,6 @@ /mob/living/simple_animal/hostile/boss, /mob/living/simple_animal/hostile/boss/paper_wizard, /mob/living/simple_animal/hostile/boss/paper_wizard/copy, - /mob/living/simple_animal/hostile/carp, - /mob/living/simple_animal/hostile/carp/cayenne, - /mob/living/simple_animal/hostile/carp/holocarp, - /mob/living/simple_animal/hostile/carp/lia, - /mob/living/simple_animal/hostile/carp/megacarp, - /mob/living/simple_animal/hostile/carp/ranged, - /mob/living/simple_animal/hostile/carp/ranged/chaos, - /mob/living/simple_animal/hostile/carp/ranged/chaos/xenobiology, - /mob/living/simple_animal/hostile/carp/ranged/xenobiology, /mob/living/simple_animal/hostile/cat_butcherer, /mob/living/simple_animal/hostile/construct, /mob/living/simple_animal/hostile/construct/artificer, @@ -387,7 +378,6 @@ /mob/living/simple_animal/hostile/blackmesa/xen/nihilanth, /mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt, /mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt/slave, - /mob/living/simple_animal/hostile/carp/megacarp/shorki, /mob/living/simple_animal/hostile/cazador, /mob/living/simple_animal/hostile/cult, /mob/living/simple_animal/hostile/cult/assassin, diff --git a/modular_skyrat/modules/liquids/code/ocean_biomes.dm b/modular_skyrat/modules/liquids/code/ocean_biomes.dm index 838abc28706..28e1c47d8f8 100644 --- a/modular_skyrat/modules/liquids/code/ocean_biomes.dm +++ b/modular_skyrat/modules/liquids/code/ocean_biomes.dm @@ -8,14 +8,14 @@ flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed, /obj/structure/flora/ocean/coral) flora_density = 25 fauna_density = 0.03 - fauna_types = list(/mob/living/simple_animal/hostile/carp) + fauna_types = list(/mob/living/basic/carp) /datum/biome/ocean_redsand turf_type = /turf/open/floor/plating/ocean/ironsand flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed, /obj/structure/flora/ocean/coral) flora_density = 40 fauna_density = 0.06 - fauna_types = list(/mob/living/simple_animal/hostile/carp) + fauna_types = list(/mob/living/basic/carp) /datum/biome/ocean_rocklight turf_type = /turf/open/floor/plating/ocean/rock diff --git a/modular_skyrat/modules/liquids/code/ocean_mapgen.dm b/modular_skyrat/modules/liquids/code/ocean_mapgen.dm index 932d1e6a465..b1f7ecae13e 100644 --- a/modular_skyrat/modules/liquids/code/ocean_mapgen.dm +++ b/modular_skyrat/modules/liquids/code/ocean_mapgen.dm @@ -88,7 +88,7 @@ feature_spawn_list = null - mob_spawn_list = list(/mob/living/simple_animal/hostile/carp = 1) + mob_spawn_list = list(/mob/living/basic/carp = 1) mob_spawn_chance = 1 flora_spawn_chance = 4 diff --git a/modular_skyrat/modules/mapping/voidraptor/code/mob.dm b/modular_skyrat/modules/mapping/voidraptor/code/mob.dm index 7eb54486fd6..9c6e75cf046 100644 --- a/modular_skyrat/modules/mapping/voidraptor/code/mob.dm +++ b/modular_skyrat/modules/mapping/voidraptor/code/mob.dm @@ -55,15 +55,20 @@ resize = 0.5 update_transform() -/mob/living/simple_animal/hostile/carp/megacarp/shorki +/mob/living/basic/carp/mega/shorki + name = "Shorki" desc = "A not so ferocious, fang bearing creature that resembles a shark. This one seems a little big for its tank." faction = list("neutral") gender = MALE + gold_core_spawnable = NO_SPAWN + ai_controller = /datum/ai_controller/basic_controller/carp/pet -/mob/living/simple_animal/hostile/carp/megacarp/shorki/Initialize(mapload) +/mob/living/basic/carp/mega/shorki/Initialize(mapload) . = ..() - name = "Shorki" - real_name = "Shorki" + AddElement(/datum/element/ai_retaliate) + AddElement(/datum/element/pet_bonus, "bloops happily!") + name = initial(name) + real_name = initial(name) /mob/living/simple_animal/pet/gondola/funky name = "Funky" diff --git a/tgstation.dme b/tgstation.dme index 9c1aa1c456c..3454ef0b681 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -33,6 +33,7 @@ #include "code\__DEFINES\admin.dm" #include "code\__DEFINES\adventure.dm" #include "code\__DEFINES\ai.dm" +#include "code\__DEFINES\ai_carp.dm" #include "code\__DEFINES\ai_pet_commands.dm" #include "code\__DEFINES\alarm.dm" #include "code\__DEFINES\alerts.dm" @@ -810,6 +811,7 @@ #include "code\datums\ai\basic_mobs\basic_subtrees\simple_find_target.dm" #include "code\datums\ai\basic_mobs\basic_subtrees\speech_subtree.dm" #include "code\datums\ai\basic_mobs\basic_subtrees\target_retaliate.dm" +#include "code\datums\ai\basic_mobs\basic_subtrees\targetted_mob_ability.dm" #include "code\datums\ai\basic_mobs\basic_subtrees\tipped_subtree.dm" #include "code\datums\ai\basic_mobs\pet_commands\pet_command_planning.dm" #include "code\datums\ai\basic_mobs\pet_commands\pet_follow_friend.dm" @@ -3723,6 +3725,12 @@ #include "code\modules\mob\living\basic\pets\dog.dm" #include "code\modules\mob\living\basic\pets\pet.dm" #include "code\modules\mob\living\basic\ruin_defender\stickman.dm" +#include "code\modules\mob\living\basic\space_fauna\carp\carp.dm" +#include "code\modules\mob\living\basic\space_fauna\carp\carp_abilities.dm" +#include "code\modules\mob\living\basic\space_fauna\carp\carp_ai_actions.dm" +#include "code\modules\mob\living\basic\space_fauna\carp\carp_controllers.dm" +#include "code\modules\mob\living\basic\space_fauna\carp\magicarp.dm" +#include "code\modules\mob\living\basic\space_fauna\carp\megacarp.dm" #include "code\modules\mob\living\basic\syndicate\syndicate.dm" #include "code\modules\mob\living\basic\syndicate\syndicate_ai.dm" #include "code\modules\mob\living\basic\vermin\axolotl.dm" @@ -3932,8 +3940,6 @@ #include "code\modules\mob\living\simple_animal\hostile\ant.dm" #include "code\modules\mob\living\simple_animal\hostile\bear.dm" #include "code\modules\mob\living\simple_animal\hostile\bees.dm" -#include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\carp_magic.dm" #include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" #include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" diff --git a/tools/UpdatePaths/Scripts/71421_simple_carp_to_basic.txt b/tools/UpdatePaths/Scripts/71421_simple_carp_to_basic.txt new file mode 100644 index 00000000000..9555176bc50 --- /dev/null +++ b/tools/UpdatePaths/Scripts/71421_simple_carp_to_basic.txt @@ -0,0 +1,8 @@ +# transforms simple carp to the new basic carp +# I'm not using {@subtypes} because the paths aren't exactly the same + +/mob/living/simple_animal/hostile/carp : /mob/living/basic/carp{@OLD} +/mob/living/simple_animal/hostile/carp/lia : /mob/living/basic/carp/pet/lia{@OLD} +/mob/living/simple_animal/hostile/carp/cayenne : /mob/living/basic/carp/pet/cayenne{@OLD} +/mob/living/simple_animal/hostile/carp/megacarp : /mob/living/basic/carp/mega{@OLD} +/mob/living/simple_animal/hostile/carp/ranged/@SUBTYPES : /mob/living/basic/carp/magic/@SUBTYPES{@OLD} diff --git a/tools/UpdatePaths/Scripts_Skyrat/more_carps.txt b/tools/UpdatePaths/Scripts_Skyrat/more_carps.txt new file mode 100644 index 00000000000..e6eb63a57fd --- /dev/null +++ b/tools/UpdatePaths/Scripts_Skyrat/more_carps.txt @@ -0,0 +1 @@ +/mob/living/simple_animal/hostile/carp/megacarp/shorki : /mob/living/basic/carp/mega/shorki{@OLD}