diff --git a/GainStation13/code/game/objects/items/docility_implant.dm b/GainStation13/code/game/objects/items/docility_implant.dm index d1e67514..5cedf064 100644 --- a/GainStation13/code/game/objects/items/docility_implant.dm +++ b/GainStation13/code/game/objects/items/docility_implant.dm @@ -18,6 +18,9 @@ if(!istype(target_human) || (target_human.fatness_real < required_fatness)) return FALSE + if(HAS_TRAIT(target_human, TRAIT_DOCILE)) + return FALSE //They probably already have an implant, they likely don't need this. + return target?.client?.prefs?.fatness_vulnerable /obj/item/implant/docile/implant(mob/living/target, mob/user, silent = FALSE) @@ -60,6 +63,7 @@ TRAIT_FAT_GOOD, TRAIT_HEAVY_SLEEPER, TRAIT_DOCILE, + TRAIT_LIVESTOCK, TRAIT_NO_MISC, TRAIT_NORUNNING, ) @@ -68,6 +72,8 @@ var/stored_name = "" /// What name do we want to give the mob before adding the randomized number var/name_to_give = "Livestock" + /// How much do we want to modifiy the productivity stats of the mob's current sex organs by? + var/productivity_mult = 4 /obj/item/implant/docile/livestock/can_be_implanted_in(mob/living/target) . = ..() @@ -88,6 +94,16 @@ target_human.real_name = new_name target_human.name = new_name + if(target_human?.getorganslot("testicles")) + var/obj/item/organ/genital/testicles/balls = target_human?.getorganslot("testicles") + balls.fluid_mult = balls.fluid_mult * productivity_mult + balls.fluid_max_volume = balls.fluid_max_volume * productivity_mult + + if(target_human?.getorganslot("breasts")) + var/obj/item/organ/genital/breasts/boobs = target_human?.getorganslot("breasts") + boobs.fluid_mult = boobs.fluid_mult * productivity_mult + boobs.fluid_max_volume = boobs.fluid_max_volume * productivity_mult + /obj/item/implant/docile/livestock/removed(mob/living/source, silent, special) . = ..() if(!.) @@ -97,12 +113,22 @@ target_human.real_name = stored_name target_human.name = stored_name -/obj/item/implantcase/docile - name = "implant case - 'Docility'" - desc = "A glass case containing a docility implant." - imp_type = /obj/item/implant/docile + if(target_human?.getorganslot("testicles")) + var/obj/item/organ/genital/testicles/balls = target_human?.getorganslot("testicles") + balls.fluid_mult = balls.fluid_mult / productivity_mult + balls.fluid_max_volume = balls.fluid_max_volume / productivity_mult + + if(target_human?.getorganslot("breasts")) + var/obj/item/organ/genital/breasts/boobs = target_human?.getorganslot("breasts") + boobs.fluid_mult = boobs.fluid_mult / productivity_mult + boobs.fluid_max_volume = boobs.fluid_max_volume / productivity_mult /obj/item/implantcase/docile + name = "implant case - 'Docility'" + desc = "A glass case containing a docility implant. Used to make those at high weights docile." + imp_type = /obj/item/implant/docile + +/obj/item/implantcase/docile/livestock name = "implant case - 'Livestock'" - desc = "A glass case containing a livestock implant." + desc = "A glass case containing a livestock implant. Functions similar to the docility implant, but changes the implantee's name and makes them even more helpless. cannot be combined with the docility implant." imp_type = /obj/item/implant/docile/livestock diff --git a/GainStation13/code/machinery/supply_teleporter.dm b/GainStation13/code/machinery/supply_teleporter.dm new file mode 100644 index 00000000..c3320363 --- /dev/null +++ b/GainStation13/code/machinery/supply_teleporter.dm @@ -0,0 +1,15 @@ +/obj/machinery/quantumpad/supply_only + name = "supply pad" + desc = "A modified version of the quantum pad, only able to teleport supplies and livestock." + circuit = /obj/item/circuitboard/machine/quantumpad/supply_only + +/obj/machinery/quantumpad/supply_only/check_mob_teleportability(mob/living/mob_to_check) + if(istype(mob_to_check, /mob/living/simple_animal)) + return TRUE + + return HAS_TRAIT(mob_to_check, TRAIT_LIVESTOCK) + +/obj/item/circuitboard/machine/quantumpad/supply_only + name = "Supply Pad (Machine Board)" + build_path = /obj/machinery/quantumpad/supply_only + diff --git a/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm b/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm index a070abc3..1fdf85db 100644 --- a/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm +++ b/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm @@ -69,3 +69,15 @@ credit_cost = 1500 item_to_dispense = /obj/item/storage/box/rndboards initial_stock = 2 + +/datum/feeders_den_goodie/docility_implant + name = "Docility Implant" + credit_cost = 100 + item_to_dispense = /obj/item/implantcase/docile + initial_stock = 5 + +/datum/feeders_den_goodie/docility_implant/livestock + name = "Livestock Implant" + credit_cost = 250 + item_to_dispense = /obj/item/implantcase/docile/livestock + initial_stock = 5 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 65687a2a..fda8c6fc 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -95,7 +95,7 @@ "ca" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/turf_decal/bot,/obj/effect/turf_decal/stripes/line,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/chemistry) "cb" = (/turf/open/floor/plasteel/white/side,/area/ruin/unpowered/syndicate_lava_base/virology) "cc" = (/obj/structure/table,/obj/item/paper_bin,/obj/item/pen,/turf/open/floor/mineral/plastitanium,/area/ruin/unpowered/syndicate_lava_base/cargo) -"cd" = (/obj/structure/rack,/obj/item/flashlight{pixel_x = -3; pixel_y = 3},/obj/item/flashlight,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) +"cd" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "cf" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{icon_state = "0-2"},/obj/machinery/power/apc/syndicate{dir = 1; name = "Cargo Bay APC"; pixel_y = 24},/obj/structure/closet/emcloset/anchored,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "cg" = (/obj/structure/closet/firecloset/full{anchored = 1},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "ch" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/mineral/plastitanium,/area/ruin/unpowered/syndicate_lava_base/testlab) @@ -222,7 +222,7 @@ "eZ" = (/obj/effect/mob_spawn/human/lavaland_syndicate{dir = 4; icon_state = "sleeper_s"},/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories) "fa" = (/obj/structure/cable/yellow{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 9},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main) "fb" = (/obj/structure/bed,/obj/item/bedsheet,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white/side{dir = 5},/area/ruin/unpowered/syndicate_lava_base/virology) -"fc" = (/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm/syndicate{dir = 4; pixel_x = -24},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/metal/fifty,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) +"fc" = (/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm/syndicate{dir = 4; pixel_x = -24},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/metal/fifty,/obj/structure/rack,/obj/item/flashlight,/obj/item/flashlight{pixel_x = -3; pixel_y = 3},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "fe" = (/obj/effect/turf_decal/stripes/corner,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "ff" = (/obj/structure/bed,/obj/item/bedsheet,/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white/side{dir = 5},/area/ruin/unpowered/syndicate_lava_base/virology) "fh" = (/obj/structure/grille,/obj/structure/window/plastitanium,/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/virology) @@ -235,7 +235,7 @@ "fo" = (/turf/open/floor/plasteel/white/side{dir = 1},/area/ruin/unpowered/syndicate_lava_base/main) "fq" = (/turf/closed/wall/mineral/plastitanium/explosive,/area/ruin/unpowered/syndicate_lava_base/virology) "fr" = (/obj/machinery/airalarm/syndicate{dir = 4; pixel_x = -24},/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{dir = 1},/obj/structure/disposalpipe/segment{dir = 5},/turf/open/floor/plasteel/white/side{dir = 8},/area/ruin/unpowered/syndicate_lava_base/virology) -"fs" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/obj/machinery/door/airlock/mining/glass{name = "Warehouse"; req_access_txt = "150"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/cargo) +"fs" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/obj/machinery/door/airlock/mining/glass{name = "Supply Station"; req_access_txt = "150"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/cargo) "ft" = (/obj/structure/grille,/obj/structure/window/plastitanium,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/cargo) "fu" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/table,/obj/item/folder/yellow,/obj/item/stack/wrapping_paper{pixel_y = 5},/obj/item/stack/packageWrap,/obj/item/hand_labeler,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "fv" = (/obj/structure/table,/obj/item/paper_bin,/obj/item/pen,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/item/stack/credits{amount = 30},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) @@ -556,6 +556,7 @@ "nt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 9},/obj/structure/cable/yellow{icon_state = "1-8"},/obj/effect/turf_decal/tile/red{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "nu" = (/obj/machinery/air_sensor{frequency = 1442; id_tag = "syndie_lavaland_n2_sensor"},/turf/open/floor/plating/airless,/area/ruin/unpowered/syndicate_lava_base/engineering) "nw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"nx" = (/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/cargo) "ny" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical/glass{dir = 4; name = "Medbay"},/turf/open/floor/plasteel/white,/area/ruin/unpowered/syndicate_lava_base/medbay) "nz" = (/turf/open/floor/plasteel/white/side{dir = 8},/area/ruin/unpowered/syndicate_lava_base/medbay) "nB" = (/obj/machinery/atmospherics/miner/nitrogen,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/syndicate_lava_base/engineering) @@ -594,6 +595,7 @@ "oP" = (/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/testlab) "pi" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "pY" = (/obj/effect/turf_decal/tile/green{dir = 1},/obj/effect/turf_decal/tile/green{dir = 4},/obj/effect/turf_decal/tile/green,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"qX" = (/obj/effect/turf_decal/stripes/line{dir = 9},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "rF" = (/obj/effect/turf_decal/stripes/corner,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "rI" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "150"},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "150"},/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/testlab) "rO" = (/obj/effect/turf_decal/tile/green,/obj/effect/turf_decal/tile/green{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) @@ -607,11 +609,13 @@ "uX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 9},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/medbay) "vx" = (/obj/structure/table/wood,/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{dir = 1},/obj/structure/sign/barsign{pixel_y = -32; req_access = null; req_access_txt = "0"},/turf/open/floor/wood,/area/ruin/unpowered/syndicate_lava_base/bar) "vD" = (/obj/structure/closet/emcloset/anchored,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 6},/obj/structure/cable/yellow{icon_state = "2-4"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"wG" = (/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "wN" = (/obj/machinery/hydroponics/constructable,/obj/structure/window/reinforced{dir = 8},/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "xn" = (/obj/machinery/hydroponics/constructable,/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "xo" = (/obj/structure/sink/kitchen{dir = 4; pixel_x = -13},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/bar) "xF" = (/obj/structure/table/reinforced,/obj/item/stock_parts/cell/high/plus{pixel_x = 7; pixel_y = -5},/obj/item/stock_parts/cell/high/plus{pixel_x = -8; pixel_y = -3},/obj/item/multitool{pixel_x = -1; pixel_y = -13},/obj/machinery/airalarm/syndicate{pixel_y = 24},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white/side{dir = 4},/area/ruin/unpowered/syndicate_lava_base/circuits) "xO" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"xP" = (/obj/effect/turf_decal/box,/obj/machinery/quantumpad/supply_only{map_pad_id = "lavalandbase"; map_pad_link_id = "denbase"},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "xT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/circuits) "yq" = (/obj/effect/turf_decal/stripes/corner{dir = 4},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "zy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{dir = 2},/obj/structure/cable/yellow{icon_state = "1-4"},/obj/structure/cable/yellow{icon_state = "1-8"},/turf/open/floor/plasteel/white/side{dir = 4},/area/ruin/unpowered/syndicate_lava_base/arrivals) @@ -621,6 +625,7 @@ "Ax" = (/obj/structure/table/reinforced,/obj/machinery/plantgenes{density = 0; pixel_y = 6},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "AL" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/circuits) "Bk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"BJ" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "CD" = (/obj/machinery/power/apc/syndicate{dir = 4; name = "Medbay APC"; pixel_x = 24},/obj/structure/cable/yellow,/obj/machinery/computer/operating{dir = 8},/turf/open/floor/plasteel/white/side{dir = 4},/area/ruin/unpowered/syndicate_lava_base/medbay) "CL" = (/obj/machinery/hydroponics/constructable,/obj/structure/window/reinforced{dir = 8},/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "Dc" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) @@ -638,6 +643,7 @@ "Ml" = (/obj/effect/turf_decal/stripes/corner{dir = 1},/obj/effect/turf_decal/stripes/white/corner{dir = 1},/turf/open/floor/circuit/telecomms,/area/ruin/unpowered/syndicate_lava_base/nanites) "Mn" = (/turf/closed/wall/mineral/plastitanium/explosive,/area/ruin/unpowered/syndicate_lava_base/bar) "MY" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"Nf" = (/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "NH" = (/obj/machinery/portable_atmospherics/scrubber,/obj/effect/turf_decal/bot,/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/engineering) "NZ" = (/obj/machinery/button/door{id = "lavalandsyndi_telecomms"; name = "Telecomms Blast Door Control"; pixel_x = 26; req_access_txt = "150"},/obj/item/storage/box/disks_nanite,/obj/item/storage/box/disks_nanite,/obj/item/nanite_scanner,/obj/item/nanite_remote/comm,/obj/item/nanite_remote,/obj/structure/closet/crate,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/nanites) "Ov" = (/obj/effect/turf_decal/stripes/line{dir = 6},/obj/structure/lattice/catwalk,/turf/open/lava/smooth/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/arrivals) @@ -645,6 +651,7 @@ "Pa" = (/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/circuits) "Px" = (/obj/structure/table/reinforced,/obj/item/stock_parts/cell/high/plus{pixel_x = -5; pixel_y = 9},/obj/item/stock_parts/cell/high/plus{pixel_x = -8; pixel_y = -3},/obj/item/multitool,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white/side{dir = 8},/area/ruin/unpowered/syndicate_lava_base/circuits) "PE" = (/obj/structure/table/reinforced,/obj/item/integrated_circuit_printer/upgraded,/turf/open/floor/plasteel/white/side{dir = 6},/area/ruin/unpowered/syndicate_lava_base/circuits) +"Qa" = (/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/obj/machinery/door/airlock/mining/glass{name = "Supply Station"; req_access_txt = "150"},/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/cargo) "Qk" = (/obj/item/toy/plush/nukeplushie{desc = "This one seems to be quite worn. It even has a different tag. It reads: Property of Aeterna. Please dry wash only."},/turf/open/floor/circuit/red,/area/ruin/unpowered/syndicate_lava_base/main) "Qm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "Ra" = (/obj/structure/cable/yellow{icon_state = "2-8"},/obj/structure/table/optable,/obj/item/surgical_drapes,/obj/effect/decal/cleanable/generic,/turf/open/floor/plasteel/white/side{dir = 4},/area/ruin/unpowered/syndicate_lava_base/medbay) @@ -660,14 +667,18 @@ "TB" = (/obj/structure/table/reinforced,/obj/machinery/smartfridge/disks{density = 0; pixel_y = 2},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "Ug" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/medbay) "UM" = (/obj/effect/turf_decal/tile/green,/obj/effect/turf_decal/tile/green{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) +"Vl" = (/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "Vu" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/effect/turf_decal/stripes/white/line{dir = 5},/turf/open/floor/circuit/telecomms,/area/ruin/unpowered/syndicate_lava_base/nanites) "Wt" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 10},/obj/structure/noticeboard{dir = 8; pixel_x = 27},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/stripes/white/line{dir = 1; icon_state = "steel_decals9"},/obj/effect/turf_decal/stripes/white/line{dir = 4; icon_state = "steel_decals9"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/nanites) "Xa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/power/apc/syndicate{dir = 1; name = "Arrival Hallway APC"; pixel_y = 24},/obj/structure/cable/yellow{icon_state = "0-4"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "Xm" = (/obj/effect/turf_decal/loading_area{dir = 9; icon_state = "steel_panel"; name = "steel pannel"},/obj/effect/turf_decal/loading_area{dir = 6; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "XL" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/structure/closet{name = "Hydroponics locker"},/obj/item/storage/box/disks_plantgene,/obj/item/storage/box/disks_plantgene,/obj/item/hatchet,/obj/item/hatchet,/obj/item/watertank,/obj/item/reagent_containers/glass/bucket,/obj/item/reagent_containers/glass/bucket,/obj/item/storage/bag/plants,/obj/item/storage/bag/plants,/obj/item/plant_analyzer,/obj/item/plant_analyzer,/obj/item/storage/box/disks_plantgene,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals) "Yj" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/medbay) +"YE" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) +"Zr" = (/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) "Zv" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals) "ZK" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/stripes/white/line{dir = 6; icon_state = "steel_decals6"},/obj/effect/turf_decal/stripes/white/line{dir = 10; icon_state = "steel_decals6"},/obj/effect/turf_decal/stripes/white/line{dir = 9; icon_state = "steel_decals6"},/obj/effect/turf_decal/stripes/white/line{dir = 5; icon_state = "steel_decals6"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/nanites) +"ZL" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/engine,/area/ruin/unpowered/syndicate_lava_base/cargo) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -677,11 +688,11 @@ aaaaaaaaaaaaabaaababababababababababababababababababababababababababaaababababab aaaaaaaaabaaabababababiiaeaeaeaeaeaeaeaeaeaeaeaeacabababababababababababababababababababababaaaaaaaa aaaaaaaaabababababababaeadaFagaFaeahaiajdraFaFaFaeababababababababababababababababababababaaaaaaaaaa aaaaaaababababababababaeaFaFaFalaxaHdddianaFaAaqaeababababababababababababababababababababababaaaaaa -aaaaaaaaababababababawaeaFaFaFaFanbebiaMaxbjbjayaeaBabababababababababababababababababababababaaaaaa -aaaaaaabababababababaIaeaFaFaFaFdrbeaYcZdraFaFaFaeaKasaLaLaLasabababababababababababababababaaaaaaaa -aaaaabababababababababaeaFaFaQaFaedcddbKanaFaFaXaeasasataZbbasacbgababababababababababababababaaaaaa -aaaaababababababababawaeaeaeaeaeaecqbNbhaxbjbjayblbnbPbScabpasasdydydydybrababababababababababaaaaaa -aaabababababababababawbraecTbtcTdrbQdibxdraFaFaFaeducrcAcAbAbBasbDbEbIdydydydydydyabababababababaaaa +aaaaaaaaababababababawaeaFaFaFaFanbebiaMaxbjbjayaeaBabababababababababdydydydynxabababababababaaaaaa +aaaaaaabababababababaIaeaFaFaFaFdrbeaYcZdraFaFaFaeaKasaLaLaLasababababdyqXBJwGdyababababababaaaaaaaa +aaaaabababababababababaeaFaFaQaFaedcddbKanaFaFaXaeasasataZbbasacbgababdyZLxPVldyabababababababaaaaaa +aaaaababababababababawaeaeaeaeaeaecqbNbhaxbjbjayblbnbPbScabpasasdydydydyNfYEZrdyabababababababaaaaaa +aaabababababababababawbraecTbtcTdrbQdibxdraFaFaFaeducrcAcAbAbBasbDbEbIdydyQadydydyabababababababaaaa aaababababababababababawaeaOaNbJbOazdibKrIaFaAaqaedBbRbRdEdIbTasdLdMbXccdycdcfcgdyacababababababaaaa aaabababababababababababaecTaUcTdrdddfbhaxchchcxaedUdVdXdYdZcyasebecdbeceeefegGfcEcFababababababaaaa aaabababababababababababaeaeaeaeaeckcHcMaeaeaeaeaedqdsdvevewasasdxdHcQdOfteCeDeEeFcFabababababababaa diff --git a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm index 5d99b05f..877cd915 100644 --- a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm +++ b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm @@ -13,7 +13,7 @@ "bW" = (/obj/structure/closet/secure_closet/freezer/meat,/obj/item/reagent_containers/food/snacks/carpmeat,/obj/item/reagent_containers/food/snacks/carpmeat,/obj/item/reagent_containers/food/snacks/carpmeat,/obj/item/reagent_containers/food/snacks/carpmeat,/obj/item/reagent_containers/food/snacks/carpmeat,/obj/item/reagent_containers/food/snacks/meat/rawbacon,/obj/item/reagent_containers/food/snacks/meat/rawbacon,/obj/item/reagent_containers/food/snacks/meat/rawbacon,/obj/item/reagent_containers/food/snacks/meat/slab/bear,/obj/item/reagent_containers/food/snacks/meat/slab/bear,/obj/item/reagent_containers/food/snacks/meat/slab/bear,/obj/structure/window/reinforced/tinted{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden) "bX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/meter,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) "cd" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden) -"cn" = (/obj/structure/table,/obj/machinery/recharger,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/structure/medkit_cabinet{pixel_y = 27},/obj/item/grenade/chem_grenade/lipoifier_weak{pixel_x = -12},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) +"cn" = (/obj/structure/table,/obj/machinery/recharger,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/structure/medkit_cabinet{pixel_y = 27},/obj/item/grenade/chem_grenade/lipoifier_weak{pixel_x = -12},/obj/item/implanter{pixel_x = 9; pixel_y = 15},/obj/item/implanter{pixel_x = 9; pixel_y = 11},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) "cw" = (/obj/machinery/light{dir = 8},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden) "cx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) "cy" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/food/snacks/store/cake/chocolate,/obj/machinery/light/small{dir = 1},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden) @@ -87,7 +87,7 @@ "lQ" = (/obj/structure/chair/sofa/right,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden) "lR" = (/obj/machinery/iv_drip/feeding_tube,/obj/machinery/light/small{dir = 1},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden) "ma" = (/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) -"mf" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/structure/reagent_dispensers/keg/milk,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) +"mf" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/machinery/quantumpad/supply_only{map_pad_id = "denbase"; map_pad_link_id = "lavalandbase"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) "mm" = (/obj/machinery/vending/mealdor{free = 1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden) "mD" = (/obj/structure/closet/emcloset/anchored,/obj/effect/turf_decal/stripes/white/line{dir = 2},/obj/effect/turf_decal/stripes/white/line{dir = 1; icon_state = "steel_decals_central4"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) "mJ" = (/obj/structure/chair/sofa/corner{dir = 1},/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden) @@ -227,6 +227,7 @@ "Eq" = (/obj/machinery/shower{dir = 8},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden) "Es" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden) "Ex" = (/obj/item/trash/boritos,/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden) +"EH" = (/obj/structure/reagent_dispensers/keg/milk,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) "EU" = (/obj/structure/table/wood,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/item/paper/fluff/ruins/feeder_den/report4,/obj/item/pen/red,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden) "EW" = (/obj/machinery/porta_turret/fattening,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"},/obj/structure/lattice/catwalk,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) "Ff" = (/obj/structure/sign/poster/contraband/eat{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden) @@ -387,7 +388,7 @@ FEFEFEFEfmBrBrBrnrZnNBLvAjNRgZKWNRAjNXTGTGTGTGBDTGXWZhZhZhqquOuOuOuOuOrJZOWrndWr FEFEFEfmfmBrBrBrDcDcNJNJDcnrnrnrnrnrnrnrnrnrDcWJiONxgUgUgUuXZpTKDcnrnrQFnrnrnrnrnrnrDciuiuDcDcBrFEFEFEFEFEFEFE FEFEBrZCfmISBrBrBrnrMaEqnrikNggqnrWNYEfncnbanrDxvYFDLNdCsRiNvYSsnrZeIoxCkoPgnrridlkCnrfNginrBrBrBrFEFEFEFEFEFE FEFEBrBrfmfmBrBrBrnrtyEqnrIGJhJhWsDOlsuklslsvtDxvYSyBeaaaaUBvYmUnrcWmaUerscxtVbXJhkMnrfNdAnrBrBrBrFEFEFEFEFEFE -FEFEFEBrwwfmeEBrBrDcnrnrDcnrxGHpNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrgFXsFHYpDBnrzlJhXPDcnrnrDcBrBrBrFEFEFEFEFEFE +FEFEFEBrwwfmeEBrBrDcnrnrDcxGHpEHNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrgFXsFHYpDBnrzlJhXPDcnrnrDcBrBrBrFEFEFEFEFEFE FEFEFEBrxZfmfmBrBrBrBrBrDcDcnrnrDcmflsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhfKDcnrRanrDcBrEWYNxZBrBrBrFEFEFEFEFE FEFEFEFEfmfmBrBrBrBrBrBrnrnKEfWKnrqhlslszcVFDczAnrnrnrkgnrnrnrnrDcmDnQddRCuFnrNtVWdvnrISVefmfmfxBrBrFEFEFEFEFE FEFEFEFEFEfmBrBrBrBrBrBrnrNUcVgkcRDOrfrfYhdzPItjfhnroHoHoHdrVxnwAaYAtBTYzGzEHivLMisCkgeEfmFEFEebFEFEFEFEFEFEFE diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 0db2431f..f2c4d5dc 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -228,6 +228,7 @@ #define TRAIT_NO_BACKPACK "no_backpack" #define TRAIT_NO_BUCKLE "no_buckle" #define TRAIT_DOCILE "docile" +#define TRAIT_LIVESTOCK "livestock" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 01f94565..d7a81bc2 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -162,6 +162,9 @@ if(QDELETED(ROI)) continue //sleeps in CHECK_TICK + if(isliving(ROI) && !check_mob_teleportability(ROI)) + continue + // if is anchored, don't let through if(ROI.anchored) if(isliving(ROI)) @@ -184,6 +187,10 @@ linked_pad = link . = TRUE +/// Checks if the mob is able to be teleported. +/obj/machinery/quantumpad/proc/check_mob_teleportability(mob/living/mob_to_check) + return TRUE + /obj/item/paper/guides/quantumpad name = "Quantum Pad For Dummies" info = "