From 1cad1ba53530e6ee70e544567a1cea74d02f91ad Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Jan 2026 01:26:36 +0000 Subject: [PATCH 01/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5795.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5801.yml | 4 ---- html/changelogs/archive/2026-01.yml | 5 +++++ 3 files changed, 5 insertions(+), 8 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5795.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5801.yml diff --git a/html/changelogs/AutoChangeLog-pr-5795.yml b/html/changelogs/AutoChangeLog-pr-5795.yml deleted file mode 100644 index 52551a8551..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5795.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {bugfix: modified tank pressure alerts} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5801.yml b/html/changelogs/AutoChangeLog-pr-5801.yml deleted file mode 100644 index f378da2f62..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5801.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {bugfix: ghosts and dead bodies can no longer unflip tables} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 50133e496b..c003ff5042 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -62,3 +62,8 @@ - rscadd: Added an emergency tank pressure alert system - balance: Increased emergency tank volumes - bugfix: fixed buckling between floors on an elevator +2026-01-11: + generalthrax: + - bugfix: ghosts and dead bodies can no longer unflip tables + zimon9: + - bugfix: modified tank pressure alerts From 81d08988856801acf5e155bfb34877aa7228160e Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Sun, 11 Jan 2026 16:53:06 -0500 Subject: [PATCH 02/53] stomach processes properly again (#5678) ## About The Pull Request i need to just unit test / set warns for this stuff ## Changelog :cl: fix: stomach works again /:cl: --- code/modules/surgery/organs/stomach.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index 4cb45bedf0..d9815f4118 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -36,6 +36,7 @@ create_reagents(reagent_vol) /obj/item/organ/stomach/on_life() + . = ..() //Manage species digestion if(istype(owner, /mob/living/carbon/human)) var/mob/living/carbon/human/humi = owner From a651d48c4bcaff60443799bff7dcd80d9063372a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Jan 2026 16:12:46 -0600 Subject: [PATCH 03/53] Automatic changelog generation for PR #5678 [ci skip] --- html/changelogs/AutoChangeLog-pr-5678.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5678.yml diff --git a/html/changelogs/AutoChangeLog-pr-5678.yml b/html/changelogs/AutoChangeLog-pr-5678.yml new file mode 100644 index 0000000000..6b9ff47817 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5678.yml @@ -0,0 +1,4 @@ +author: Erikafox +changes: + - {bugfix: stomach works again} +delete-after: true From 433da3221d9fcd82564f1991be2e944841ff7407 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Sun, 11 Jan 2026 17:03:19 -0500 Subject: [PATCH 04/53] fix reagent transfering + improve taste (#5683) ## About The Pull Request Accidentally regressed a few reagent transfer arguments making inhalers turn you into a balloon filled with salbutamol ports https://github.com/tgstation/tgstation/pull/69035 while I'm in the files ## Changelog :cl: Ingorer, Erika fix: Inhaler reagent administration being extremely weird. fix: fixed taste layering code: changed exposing reagents /:cl: --- code/datums/components/food/edible.dm | 2 +- code/game/machinery/iv_drip.dm | 2 +- .../mecha/equipment/tools/medical_tools.dm | 2 +- code/game/objects/items/crayons.dm | 6 +- code/game/objects/items/food/chewable.dm | 2 +- code/game/objects/items/tanks/watertank.dm | 2 +- .../detectivework/footprints_and_rag.dm | 2 +- code/modules/food_and_drinks/drinks/drinks.dm | 2 +- .../modules/food_and_drinks/food/condiment.dm | 2 +- code/modules/hydroponics/plant_genes.dm | 2 +- code/modules/paperwork/pen.dm | 2 +- .../projectile/bullets/dart_syringe.dm | 2 +- code/modules/reagents/chemistry/holder.dm | 96 +++++++++++-------- .../reagents/reagent_containers/borghydro.dm | 2 +- .../reagents/reagent_containers/dropper.dm | 2 +- .../reagents/reagent_containers/hypospray.dm | 6 +- .../reagents/reagent_containers/inhaler.dm | 2 +- .../reagents/reagent_containers/medigel.dm | 2 +- .../reagents/reagent_containers/pill.dm | 2 +- .../reagents/reagent_containers/syringes.dm | 2 +- code/modules/surgery/dental_implant.dm | 2 +- code/modules/unit_tests/_unit_tests.dm | 1 + code/modules/unit_tests/reagent_mod_expose.dm | 2 +- code/modules/unit_tests/reagent_transfer.dm | 26 +++++ 24 files changed, 108 insertions(+), 65 deletions(-) create mode 100644 code/modules/unit_tests/reagent_transfer.dm diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 47e2a9fdef..6f0c365e6c 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -405,7 +405,7 @@ Behavior that's still missing from this component that original food items had t return SEND_SIGNAL(parent, COMSIG_FOOD_EATEN, eater, feeder, bitecount, bite_consumption) var/fraction = min(bite_consumption / owner.reagents.total_volume, 1) - owner.reagents.trans_to(eater, bite_consumption, transfered_by = feeder, method = INGEST) + owner.reagents.trans_to(eater, bite_consumption, transfered_by = feeder, methods = INGEST) bitecount++ check_liked(fraction, eater) if(!owner.reagents.total_volume) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 9932f91b2a..4e3c4a063e 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -134,7 +134,7 @@ if(istype(beaker, /obj/item/reagent_containers/blood)) // speed up transfer on blood packs transfer_amount *= 2 - beaker.reagents.trans_to(attached, transfer_amount * seconds_per_tick * 0.5, method = INJECT, show_message = FALSE) //make reagents reacts, but don't spam messages + beaker.reagents.trans_to(attached, transfer_amount * seconds_per_tick * 0.5, methods = INJECT, show_message = FALSE) //make reagents reacts, but don't spam messages update_appearance() // Take blood diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 225c600631..7ea5008711 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -330,7 +330,7 @@ R += "[A.name] ([num2text(A.volume)]" mechsyringe.icon_state = initial(mechsyringe.icon_state) mechsyringe.icon = initial(mechsyringe.icon) - mechsyringe.reagents.trans_to(M, mechsyringe.reagents.total_volume, transfered_by = originaloccupant, method = INJECT) + mechsyringe.reagents.trans_to(M, mechsyringe.reagents.total_volume, transfered_by = originaloccupant, methods = INJECT) M.take_bodypart_damage(2) log_combat(originaloccupant, M, "shot", "syringegun") break diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index ed12303499..b3e140b5ec 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -398,7 +398,7 @@ if(affected_turfs.len) fraction /= affected_turfs.len for(var/t in affected_turfs) - reagents.trans_to(t, ., volume_multiplier, transfered_by = user, method = TOUCH) + reagents.trans_to(t, ., volume_multiplier, transfered_by = user, methods = TOUCH) check_empty(user) /obj/item/toy/crayon/attack(mob/M, mob/user) @@ -417,7 +417,7 @@ var/eaten = use_charges(user, 5, FALSE) if(check_empty(user)) //Prevents divsion by zero return - reagents.trans_to(M, eaten, volume_multiplier, transfered_by = user, method = INGEST) + reagents.trans_to(M, eaten, volume_multiplier, transfered_by = user, methods = INGEST) // check_empty() is called during afterattack else ..() @@ -667,7 +667,7 @@ target.set_opacity(initial(target.opacity)) . = use_charges(user, 2) - reagents.trans_to(target, ., volume_multiplier, transfered_by = user, method = VAPOR) + reagents.trans_to(target, ., volume_multiplier, transfered_by = user, methods = VAPOR) if(pre_noise || post_noise) playsound(user.loc, 'sound/effects/spray.ogg', 5, TRUE, 5) diff --git a/code/game/objects/items/food/chewable.dm b/code/game/objects/items/food/chewable.dm index 09ca16734a..71b0e33dbb 100644 --- a/code/game/objects/items/food/chewable.dm +++ b/code/game/objects/items/food/chewable.dm @@ -12,7 +12,7 @@ if(iscarbon(loc)) var/mob/living/carbon/C = loc if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob - if(!reagents.trans_to(C, REAGENTS_METABOLISM, method = INGEST)) + if(!reagents.trans_to(C, REAGENTS_METABOLISM, methods = INGEST)) reagents.remove_any(REAGENTS_METABOLISM) return reagents.remove_any(REAGENTS_METABOLISM) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 1dc1774dba..e3c5659c61 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -454,7 +454,7 @@ var/inj_am = injection_amount * seconds_per_tick var/used_amount = inj_am / usage_ratio - reagents.trans_to(user, used_amount, multiplier=usage_ratio, method = INJECT) + reagents.trans_to(user, used_amount, multiplier=usage_ratio, methods = INJECT) update_appearance() user.update_inv_back() //for overlays update diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index 56b85327ee..4c7a9a44fe 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -25,7 +25,7 @@ var/reagentlist = pretty_string_from_reagent_list(reagents) var/log_object = "containing [reagentlist]" if(user.a_intent == INTENT_HARM && !C.is_mouth_covered()) - reagents.trans_to(C, reagents.total_volume, transfered_by = user, method = INGEST) + reagents.trans_to(C, reagents.total_volume, transfered_by = user, methods = INGEST) C.visible_message(span_danger("[user] smothers \the [C] with \the [src]!"), span_userdanger("[user] smothers you with \the [src]!"), span_hear("You hear some struggling and muffled cries of surprise.")) log_combat(user, C, "smothered", src, log_object) else diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 54d91d230d..6537053a79 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -49,7 +49,7 @@ var/fraction = min(gulp_size/reagents.total_volume, 1) checkLiked(fraction, M) - reagents.trans_to(M, gulp_size, transfered_by = user, method = INGEST) + reagents.trans_to(M, gulp_size, transfered_by = user, methods = INGEST) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) return TRUE diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 3cd060b80a..011662b482 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -91,7 +91,7 @@ M.visible_message(span_warning("[user] fed [M] from [src]."), \ span_warning("[user] fed you from [src].")) log_combat(user, M, "fed", reagents.log_list()) - reagents.trans_to(M, 10, transfered_by = user, method = INGEST) + reagents.trans_to(M, 10, transfered_by = user, methods = INGEST) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) return 1 diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index f34cdb6658..c7a9466557 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -700,7 +700,7 @@ var/obj/item/seeds/our_seed = our_plant.get_plant_seed() if(living_target.reagents && living_target.can_inject()) var/injecting_amount = max(1, our_seed.potency * 0.2) // Minimum of 1, max of 20 - our_plant.reagents.trans_to(living_target, injecting_amount, method = INJECT) + our_plant.reagents.trans_to(living_target, injecting_amount, methods = INJECT) to_chat(target, span_danger("You are pricked by [our_plant]!")) log_combat(our_plant, living_target, "pricked and attempted to inject reagents from [our_plant] to [living_target]. Last touched by: [our_plant.fingerprintslast].") our_plant.investigate_log("pricked and injected [key_name(living_target)] and injected [injecting_amount] reagents at [AREACOORD(living_target)]. Last touched by: [our_plant.fingerprintslast].", INVESTIGATE_BOTANY) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 71527ca893..4d5bd056be 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -177,7 +177,7 @@ if(reagents.total_volume) if(M.reagents) - reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = INJECT) + reagents.trans_to(M, reagents.total_volume, transfered_by = user, methods = INJECT) /obj/item/pen/sleepy/Initialize() diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 6ae9d0fa2b..5602ebc015 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -14,7 +14,7 @@ if(blocked != 100) // not completely blocked if(M.can_inject(null, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..() - reagents.trans_to(M, reagents.total_volume, method = INJECT) + reagents.trans_to(M, reagents.total_volume, methods = INJECT) return BULLET_ACT_HIT else blocked = 100 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 9f3f425cdb..c49af83216 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -211,26 +211,25 @@ * * preserve_data - if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. * * no_react - passed through to [/datum/reagents/proc/add_reagent] * * mob/transfered_by - used for logging - * * remove_blacklisted - skips transferring of reagents with can_synth = FALSE - * * method - passed through to [/datum/reagents/proc/react_single] and [/datum/reagent/proc/on_transfer] - * * show_message - passed through to [/datum/reagents/proc/react_single] + * * remove_blacklisted - skips transferring of reagents without REAGENT_CAN_BE_SYNTHESIZED in chemical_flags + * * methods - passed through to [/datum/reagents/proc/expose_single] and [/datum/reagent/proc/on_transfer] + * * show_message - passed through to [/datum/reagents/proc/expose_single] * * round_robin - if round_robin=TRUE, so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors * * ignore_stomach - when using methods INGEST will not use the stomach as the target */ -/datum/reagents/proc/trans_to(obj/target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE, mob/transfered_by, remove_blacklisted = FALSE, method = null, show_message = TRUE, round_robin = FALSE, ignore_stomach = FALSE) +/datum/reagents/proc/trans_to(obj/target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE, mob/transfered_by, remove_blacklisted = FALSE, methods = NONE, show_message = TRUE, round_robin = FALSE, ignore_stomach = FALSE) var/list/cached_reagents = reagent_list if(!target || !total_volume) return if(amount < 0) return - var/atom/target_atom var/datum/reagents/R if(istype(target, /datum/reagents)) R = target target_atom = R.my_atom else - if(!ignore_stomach && (method & INGEST) && istype(target, /mob/living/carbon)) + if(!ignore_stomach && (methods & INGEST) && istype(target, /mob/living/carbon)) var/mob/living/carbon/eater = target var/obj/item/organ/stomach/belly = eater.getorganslot(ORGAN_SLOT_STOMACH) if(!belly) @@ -243,56 +242,63 @@ else R = target.reagents target_atom = target - amount = min(min(amount, src.total_volume), R.maximum_volume-R.total_volume) var/trans_data = null var/transfer_log = list() + var/r_to_send = list() // Validated list of reagents to be exposed + var/reagents_to_remove = list() if(!round_robin) var/part = amount / src.total_volume - for(var/reagent in cached_reagents) - var/datum/reagent/T = reagent - if(remove_blacklisted && !T.can_synth) + for(var/datum/reagent/reagent as anything in cached_reagents) + if(remove_blacklisted && !(reagent.can_synth)) continue - var/transfer_amount = T.volume * part + var/transfer_amount = reagent.volume * part if(preserve_data) - trans_data = copy_data(T) - R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = 1) //we only handle reaction after every reagent has been transfered. - if(method) - if(istype(target_atom, /obj/item/organ)) - R.expose_single(T, target, method, transfer_amount, show_message) - else - R.expose_single(T, target_atom, method, transfer_amount, show_message) - T.on_transfer(target_atom, method, transfer_amount * multiplier) - remove_reagent(T.type, transfer_amount) - transfer_log[T.type] = transfer_amount + trans_data = copy_data(reagent) + if(!R.add_reagent(reagent.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = TRUE)) //we only handle reaction after every reagent has been transfered. + continue + if(methods) + r_to_send += reagent + reagents_to_remove += reagent + + if(istype(target_atom, /obj/item/organ)) + R.expose_multiple(r_to_send, target, methods, part, show_message) + else + R.expose_multiple(r_to_send, target_atom, methods, part, show_message) + + for(var/datum/reagent/reagent as anything in reagents_to_remove) + var/transfer_amount = reagent.volume * part + remove_reagent(reagent.type, transfer_amount) + var/list/reagent_qualities = list(REAGENT_TRANSFER_AMOUNT = transfer_amount) + transfer_log[reagent.type] = reagent_qualities + else var/to_transfer = amount - for(var/reagent in cached_reagents) + for(var/datum/reagent/reagent as anything in cached_reagents) if(!to_transfer) break - var/datum/reagent/T = reagent - if(remove_blacklisted && !T.can_synth) + if(remove_blacklisted && !(reagent.can_synth)) continue if(preserve_data) - trans_data = copy_data(T) + trans_data = copy_data(reagent) var/transfer_amount = amount - if(amount > T.volume) - transfer_amount = T.volume - R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = 1) + if(amount > reagent.volume) + transfer_amount = reagent.volume + if(!R.add_reagent(reagent.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = TRUE)) //we only handle reaction after every reagent has been transfered. + continue to_transfer = max(to_transfer - transfer_amount , 0) - if(method) + if(methods) if(istype(target_atom, /obj/item/organ)) - R.expose_single(T, target, method, transfer_amount, show_message) + R.expose_single(reagent, target, methods, transfer_amount, show_message) else - R.expose_single(T, target_atom, method, transfer_amount, show_message) - T.on_transfer(target_atom, method, transfer_amount * multiplier) - remove_reagent(T.type, transfer_amount) - transfer_log[T.type] = transfer_amount - + R.expose_single(reagent, target_atom, methods, transfer_amount, show_message) + reagent.on_transfer(target_atom, methods, transfer_amount * multiplier) + remove_reagent(reagent.type, transfer_amount) + var/list/reagent_qualities = list(REAGENT_TRANSFER_AMOUNT = transfer_amount) + transfer_log[reagent.type] = reagent_qualities if(transfered_by && target_atom) target_atom.add_hiddenprint(transfered_by) //log prints so admins can figure out who touched it last. log_combat(transfered_by, target_atom, "transferred reagents ([log_list(transfer_log)]) from [my_atom] to") - update_total() R.update_total() if(!no_react) @@ -681,6 +687,20 @@ return A.expose_reagents(reagents, src, method, volume_modifier, show_message) +// Same as [/datum/reagents/proc/expose] but only for multiple reagents (through a list) +/datum/reagents/proc/expose_multiple(list/r_to_expose, atom/A, methods = TOUCH, volume_modifier = 1, show_message = 1) + if(isnull(A)) + return null + + var/list/cached_reagents = r_to_expose + if(!cached_reagents.len) + return null + + var/list/reagents = list() + for(var/datum/reagent/reagent as anything in cached_reagents) + reagents[reagent] = reagent.volume * volume_modifier + + return A.expose_reagents(reagents, src, methods, volume_modifier, show_message) /// Same as [/datum/reagents/proc/expose] but only for one reagent /datum/reagents/proc/expose_single(datum/reagent/R, atom/A, method = TOUCH, volume_modifier = 1, show_message = TRUE) @@ -784,10 +804,6 @@ if(isliving(my_atom)) R.on_mob_add(my_atom) //Must occur before it could posibly run on_mob_delete - else if(istype(my_atom, /obj/item/organ/stomach)) - var/obj/item/organ/stomach/belly = my_atom - var/mob/living/carbon/body = belly.owner - R.on_mob_add(body) update_total() if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 3251344da9..39d345eb30 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -106,7 +106,7 @@ Borg Hypospray to_chat(M, span_warning("You feel a tiny prick!")) to_chat(user, span_notice("You inject [M] with the injector.")) if(M.reagents) - var/trans = R.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = INJECT) + var/trans = R.trans_to(M, amount_per_transfer_from_this, transfered_by = user, methods = INJECT) to_chat(user, span_notice("[trans] unit\s injected. [R.total_volume] unit\s remaining.")) var/list/injected = list() diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index a210de949b..e5890ac1de 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -38,7 +38,7 @@ if(!safe_thing.reagents) safe_thing.create_reagents(100) - trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this, transfered_by = user, method = TOUCH) + trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this, transfered_by = user, methods = TOUCH) target.visible_message(span_danger("[user] tries to squirt something into [target]'s eyes, but fails!"), \ span_userdanger("[user] tries to squirt something into your eyes, but fails!")) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index aa48546fc0..e21e7d1d45 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -64,7 +64,7 @@ if(M.reagents) var/trans = 0 if(!infinite) - trans = reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = INJECT) + trans = reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, methods = INJECT) else reagents.expose(M, INJECT, fraction) trans = reagents.copy_to(M, amount_per_transfer_from_this) @@ -599,7 +599,7 @@ var/fraction = min(vial.amount_per_transfer_from_this/vial.reagents.total_volume, 1) vial.reagents.expose(L, INJECT, fraction) - vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, method = INJECT) + vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, methods = INJECT) if(vial.amount_per_transfer_from_this >= 15) playsound(loc,'sound/items/hypospray_long.ogg',50, 1, -1) if(vial.amount_per_transfer_from_this < 15) @@ -630,7 +630,7 @@ L.log_message("applied [src] to themselves ([contained]).", INDIVIDUAL_ATTACK_LOG) var/fraction = min(vial.amount_per_transfer_from_this/vial.reagents.total_volume, 1) vial.reagents.expose(L, PATCH, fraction) - vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, method = PATCH) + vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, methods = PATCH) if(vial.amount_per_transfer_from_this >= 15) playsound(loc,'sound/items/hypospray_long.ogg',50, 1, -1) if(vial.amount_per_transfer_from_this < 15) diff --git a/code/modules/reagents/reagent_containers/inhaler.dm b/code/modules/reagents/reagent_containers/inhaler.dm index 11a79be131..08cdff3547 100644 --- a/code/modules/reagents/reagent_containers/inhaler.dm +++ b/code/modules/reagents/reagent_containers/inhaler.dm @@ -252,7 +252,7 @@ /// Called when a inhaler we are in is used on someone. Transfers reagents and plays the puff sound. /obj/item/reagent_containers/inhaler_canister/proc/puff(mob/living/user, mob/living/carbon/target) playsound(src, puff_sound, puff_volume, TRUE, -6) - reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, method = INHALE) + reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, methods = INHALE) /// Returns a integer approximating how many puffs we can be used for. /obj/item/reagent_containers/inhaler_canister/proc/get_puffs_left() diff --git a/code/modules/reagents/reagent_containers/medigel.dm b/code/modules/reagents/reagent_containers/medigel.dm index ca9af195d4..8934b27767 100644 --- a/code/modules/reagents/reagent_containers/medigel.dm +++ b/code/modules/reagents/reagent_containers/medigel.dm @@ -72,7 +72,7 @@ else log_combat(user, M, "applied", src, reagents.log_list()) playsound(src, 'sound/effects/spray.ogg', 30, TRUE, -6) - reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, method = apply_type) + reagents.trans_to(M, amount_per_transfer_from_this, transfered_by = user, methods = apply_type) return /obj/item/reagent_containers/medigel/hadrakine diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 0a47719ab5..019aa6c7a5 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -50,7 +50,7 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), M, span_notice("[pick(strings(REDPILL_FILE, "redpill_questions"))]")), 50) if(reagents.total_volume) - reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = apply_type) + reagents.trans_to(M, reagents.total_volume, transfered_by = user, methods = apply_type) qdel(src) return TRUE diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 09342a7a26..bef38d2c8c 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -104,7 +104,7 @@ living_target.log_message("injected themselves ([contained]) with [name]", LOG_ATTACK, color="orange") else log_combat(user, living_target, "injected", src, addition="which had [contained]") - reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, method = INJECT) + reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, methods = INJECT) to_chat(user, span_notice("You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.")) /obj/item/reagent_containers/syringe/afterattack_secondary(atom/target, mob/user, proximity_flag, click_parameters) diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 0650c0f111..531377dc32 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -40,6 +40,6 @@ to_chat(owner, span_notice("You grit your teeth and burst the implanted [target.name]!")) log_combat(owner, null, "swallowed an implanted pill", target) if(target.reagents.total_volume) - target.reagents.trans_to(owner, target.reagents.total_volume, transfered_by = owner, method = INGEST) + target.reagents.trans_to(owner, target.reagents.total_volume, transfered_by = owner, methods = INGEST) qdel(target) return TRUE diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index b72870f125..4b49925614 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -111,6 +111,7 @@ #include "reagent_mod_procs.dm" #include "reagent_names.dm" #include "reagent_recipe_collisions.dm" +#include "reagent_transfer.dm" #include "resist.dm" #include "say.dm" #include "serving_tray.dm" diff --git a/code/modules/unit_tests/reagent_mod_expose.dm b/code/modules/unit_tests/reagent_mod_expose.dm index 16f9225bc6..d5de445404 100644 --- a/code/modules/unit_tests/reagent_mod_expose.dm +++ b/code/modules/unit_tests/reagent_mod_expose.dm @@ -37,7 +37,7 @@ TEST_ASSERT_EQUAL(human.drowsyness, 0, "Human is drowsy at the start of testing") drink.reagents.clear_reagents() drink.reagents.add_reagent(/datum/reagent/nitrous_oxide, 10) - drink.reagents.trans_to(human, 10, method = VAPOR) + drink.reagents.trans_to(human, 10, methods = VAPOR) TEST_ASSERT_NOTEQUAL(human.drowsyness, 0, "Human is not drowsy after exposure to vapors") // PATCH diff --git a/code/modules/unit_tests/reagent_transfer.dm b/code/modules/unit_tests/reagent_transfer.dm new file mode 100644 index 0000000000..9e0f4fe335 --- /dev/null +++ b/code/modules/unit_tests/reagent_transfer.dm @@ -0,0 +1,26 @@ +/// Tests transferring reagents between two reagents datums. +/datum/unit_test/reagent_transfer + +/datum/unit_test/reagent_transfer/Run() + var/datum/reagents/source_reagents = allocate(/datum/reagents, 100) + var/datum/reagents/target_reagents = allocate(/datum/reagents, 100) + + // Quick test to make sure reagents add properly. + source_reagents.add_reagent(/datum/reagent/water, 10) + TEST_ASSERT_EQUAL(length(source_reagents.reagent_list), 1, "Source reagents has [length(source_reagents.reagent_list)] unique reagents (expected 1).") + TEST_ASSERT_EQUAL(source_reagents.total_volume, 10, "Source reagents has incorrect total_volume [source_reagents.total_volume] (expected 10).") + + // Test to make sure the water reagent was added correctly. + var/datum/reagent/water/water_reagent = source_reagents.reagent_list[1] + TEST_ASSERT(istype(water_reagent), "Incorrect reagent type detected source reagents: [water_reagent.type] (expected /datum/reagent/water).") + TEST_ASSERT_EQUAL(water_reagent.volume, 10, "Source reagents has [water_reagent.volume] reagent volume (expected 10).") + + // Test to make sure reagents transfer properly. + source_reagents.trans_to(target_reagents, 10) + TEST_ASSERT_EQUAL(length(source_reagents.reagent_list), 0, "Source reagents has [length(source_reagents.reagent_list)] unique reagents after transfer (expected 0, possible duplication?)") + TEST_ASSERT_EQUAL(length(target_reagents.reagent_list), 1, "Target reagents has [length(target_reagents.reagent_list)] unique reagents after transfer (expected 1).") + TEST_ASSERT_EQUAL(target_reagents.total_volume, 10, "Target reagents has incorrect total_volume [source_reagents.total_volume] (expected 10).") + + water_reagent = target_reagents.reagent_list[1] + TEST_ASSERT(istype(water_reagent), "Incorrect reagent type detected in target reagents after transfer: [water_reagent.type] (should be /datum/reagent/water).") + TEST_ASSERT_EQUAL(water_reagent.volume, 10, "Target reagents has [water_reagent.volume] reagent volume (expected 10)") From 73a948cfd3cf56584dbfed70e917a5f5a801cc81 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Jan 2026 16:33:29 -0600 Subject: [PATCH 05/53] Automatic changelog generation for PR #5683 [ci skip] --- html/changelogs/AutoChangeLog-pr-5683.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5683.yml diff --git a/html/changelogs/AutoChangeLog-pr-5683.yml b/html/changelogs/AutoChangeLog-pr-5683.yml new file mode 100644 index 0000000000..64b64bc07b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5683.yml @@ -0,0 +1,6 @@ +author: Ingorer, Erika +changes: + - {bugfix: Inhaler reagent administration being extremely weird.} + - {bugfix: fixed taste layering} + - {code_imp: changed exposing reagents} +delete-after: true From 4c6e4d2bea87325c9cc4c0015e808df7a232a2a4 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 12 Jan 2026 01:23:06 +0000 Subject: [PATCH 06/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5678.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5683.yml | 6 ------ html/changelogs/archive/2026-01.yml | 7 +++++++ 3 files changed, 7 insertions(+), 10 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5678.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5683.yml diff --git a/html/changelogs/AutoChangeLog-pr-5678.yml b/html/changelogs/AutoChangeLog-pr-5678.yml deleted file mode 100644 index 6b9ff47817..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5678.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Erikafox -changes: - - {bugfix: stomach works again} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5683.yml b/html/changelogs/AutoChangeLog-pr-5683.yml deleted file mode 100644 index 64b64bc07b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5683.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Ingorer, Erika -changes: - - {bugfix: Inhaler reagent administration being extremely weird.} - - {bugfix: fixed taste layering} - - {code_imp: changed exposing reagents} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index c003ff5042..8d41d22cb6 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -67,3 +67,10 @@ - bugfix: ghosts and dead bodies can no longer unflip tables zimon9: - bugfix: modified tank pressure alerts +2026-01-12: + Erikafox: + - bugfix: stomach works again + Ingorer, Erika: + - bugfix: Inhaler reagent administration being extremely weird. + - bugfix: fixed taste layering + - code_imp: changed exposing reagents From d4bcbfd7b6efe0819d7f5eb0bdf83e87d0806b38 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Sun, 11 Jan 2026 18:35:12 -0800 Subject: [PATCH 07/53] Adds .45-70 Hollow Point to cargo (#5804) ## Why It's Good For The Game Initially I was going to increase the base damage of .45-70 but I think the simpler solution is just adding the hollow point package for open use since both .45-70 guns are extremely unwieldy and it'd unlikely be a guaranteed one-two on carbons because of the limb hit chance ## Changelog :cl: add: .45-70 hollowpoint added to cargo /:cl: --- code/modules/cargo/packs/ammo.dm | 8 +++++++- .../ammo_stacks/prefab_stacks/premade_pistol_stacks.dm | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 4b91b2a968..e9c80414ba 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -240,12 +240,18 @@ contains = list(/obj/item/storage/box/ammo/a4570) cost = 190 //5.6 ammo efficiency at 45 damage -/datum/supply_pack/ammo/a4570_box/match +/datum/supply_pack/ammo/a4570_match name = ".45-70 Match Crate" desc = "Contains a 24-round box containing devastatingly powerful .45-70 caliber ammunition, that travels faster, pierces armour better, and ricochets off targets." contains = list(/obj/item/storage/box/ammo/a4570_match) cost = 235 +/datum/supply_pack/ammo/a4570_hp + name = ".45-70 Hollow Point Ammo Box Crate" + desc = "Contains a 24-round box containing devastatingly powerful .45-70 hollow point caliber ammunition." + contains = list(/obj/item/storage/box/ammo/a4570_hp) + cost = 260 + /* 7.62 */ /datum/supply_pack/ammo/a762_ammo_box diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm index 8b68b28500..85d8805823 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm @@ -334,7 +334,7 @@ ammo_type = /obj/item/ammo_casing/a4570/match /obj/item/storage/box/ammo/a4570_match - name = "box of HP match .45-70 ammo" + name = "box of match .45-70 ammo" desc = "A 12-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." icon_state = "4570-match" From 1ebeb9d826d61dada0f3a5e7a109a974d29944d2 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Mon, 12 Jan 2026 10:59:02 -0800 Subject: [PATCH 08/53] Fixes Kali Subshuttle Docking Port (#5803) ## About The Pull Request by removing it ## Why It's Good For The Game subshuttle spawner already makes a docking port you dont need double ## Changelog :cl: fix: Kali Subshuttle Port is no longer double and works /:cl: --- _maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm index 7f447178cc..d16e6a018c 100644 --- a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm +++ b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm @@ -1718,13 +1718,6 @@ }, /turf/open/floor/plasteel/tech, /area/ship/security/armory) -"iV" = ( -/obj/docking_port/stationary{ - dir = 4; - name = "Karst Docking Gantry" - }, -/turf/open/floor/plating, -/area/ship/external/dark) "iZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -11479,7 +11472,7 @@ CN pi pi pi -iV +pi pi pi pi From 84573f03d1ed436bf27d6a86e0ad8bd9990421d3 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 12 Jan 2026 13:15:55 -0600 Subject: [PATCH 09/53] Automatic changelog generation for PR #5803 [ci skip] --- html/changelogs/AutoChangeLog-pr-5803.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5803.yml diff --git a/html/changelogs/AutoChangeLog-pr-5803.yml b/html/changelogs/AutoChangeLog-pr-5803.yml new file mode 100644 index 0000000000..8e61892f99 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5803.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {bugfix: Kali Subshuttle Port is no longer double and works} +delete-after: true From d47727820f50c3c0137157d5a78b684a4750136e Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Mon, 12 Jan 2026 13:59:22 -0500 Subject: [PATCH 10/53] puts a ghost spawn in trifuge (#5802) ## Changelog :cl: fix: trifuge has a ghost spawner again /:cl: --- _maps/outpost/indie_space.dmm | 1 + 1 file changed, 1 insertion(+) diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm index 73e354a99b..be81e80862 100644 --- a/_maps/outpost/indie_space.dmm +++ b/_maps/outpost/indie_space.dmm @@ -11712,6 +11712,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, +/obj/effect/landmark/observer_start, /turf/open/floor/plasteel/mono, /area/outpost/crew/bar) "SP" = ( From 2e649a2cc8e472c7f495e2bb3be26c8494cc0c6d Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 12 Jan 2026 13:34:38 -0600 Subject: [PATCH 11/53] Automatic changelog generation for PR #5802 [ci skip] --- html/changelogs/AutoChangeLog-pr-5802.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5802.yml diff --git a/html/changelogs/AutoChangeLog-pr-5802.yml b/html/changelogs/AutoChangeLog-pr-5802.yml new file mode 100644 index 0000000000..80f5321581 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5802.yml @@ -0,0 +1,4 @@ +author: Erikafox +changes: + - {bugfix: trifuge has a ghost spawner again} +delete-after: true From 5e1a78403115882b475a33a2e34c62d60de8c291 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Mon, 12 Jan 2026 11:53:43 -0800 Subject: [PATCH 12/53] Makes unique meats cut into 4 (#5794) ## Why It's Good For The Game I forgot in the other pr ## Changelog :cl: balance: Other non-standard meats cut into 4 cutlets as well /:cl: --- code/game/objects/items/food/meatslab.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index d2e990fe38..9e0cf561c3 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -205,7 +205,7 @@ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/tiris, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) /obj/item/food/meat/slab/tiris/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/tiris, 3, 30) + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/tiris, 4, 30) /obj/item/food/meat/slab/remes name = "remes meat" @@ -277,7 +277,7 @@ /obj/item/food/meat/slab/penguin/make_processable() . = ..() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/penguin, 3, 30) + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/penguin, 4, 30) /obj/item/food/meat/rawcrab name = "raw crab meat" @@ -320,7 +320,7 @@ /obj/item/food/meat/slab/chicken/make_processable() . = ..() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 30) + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 4, 30) /obj/item/food/meat/slab/mothroach name = "mothroach meat" From b00b6583bdbdb270b66b1eb81f65629c8629a370 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 12 Jan 2026 14:13:43 -0600 Subject: [PATCH 13/53] Automatic changelog generation for PR #5794 [ci skip] --- html/changelogs/AutoChangeLog-pr-5794.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5794.yml diff --git a/html/changelogs/AutoChangeLog-pr-5794.yml b/html/changelogs/AutoChangeLog-pr-5794.yml new file mode 100644 index 0000000000..91fecebcd3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5794.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Other non-standard meats cut into 4 cutlets as well} +delete-after: true From 0782a2d01de775142bb0d40d9b2b895b6052fc45 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jan 2026 01:16:23 +0000 Subject: [PATCH 14/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5794.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5802.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5803.yml | 4 ---- html/changelogs/archive/2026-01.yml | 6 ++++++ 4 files changed, 6 insertions(+), 12 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5794.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5802.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5803.yml diff --git a/html/changelogs/AutoChangeLog-pr-5794.yml b/html/changelogs/AutoChangeLog-pr-5794.yml deleted file mode 100644 index 91fecebcd3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5794.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Other non-standard meats cut into 4 cutlets as well} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5802.yml b/html/changelogs/AutoChangeLog-pr-5802.yml deleted file mode 100644 index 80f5321581..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5802.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Erikafox -changes: - - {bugfix: trifuge has a ghost spawner again} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5803.yml b/html/changelogs/AutoChangeLog-pr-5803.yml deleted file mode 100644 index 8e61892f99..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5803.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {bugfix: Kali Subshuttle Port is no longer double and works} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 8d41d22cb6..ddcb41c814 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -74,3 +74,9 @@ - bugfix: Inhaler reagent administration being extremely weird. - bugfix: fixed taste layering - code_imp: changed exposing reagents +2026-01-13: + Erikafox: + - bugfix: trifuge has a ghost spawner again + generalthrax: + - balance: Other non-standard meats cut into 4 cutlets as well + - bugfix: Kali Subshuttle Port is no longer double and works From 453086af72abc2303a0f2083da90b35e7e4a3adc Mon Sep 17 00:00:00 2001 From: Sarah C <93578146+SapphicOverload@users.noreply.github.com> Date: Tue, 13 Jan 2026 12:45:24 -0500 Subject: [PATCH 15/53] Fixes some guns firing twice simultaneously (#5648) Fixes some guns firing twice simultaneously, and makes click code a tiny bit more sane Resolves #5582 :cl: fix: Fixed some guns firing twice simultaneously /:cl: --- .../signals_obj/signals_item/signals_item.dm | 6 +++ code/__DEFINES/guns.dm | 1 + code/_onclick/click.dm | 29 +++---------- code/_onclick/item_attack.dm | 2 +- code/datums/components/attachment.dm | 11 +++++ code/datums/components/attachment_holder.dm | 8 ++++ code/datums/elements/directional_attack.dm | 41 ++++++++++++++----- .../objects/items/attachments/_attachment.dm | 4 ++ .../items/attachments/_gun_attachment.dm | 9 ++-- .../gun_attachments/flamethrower.dm | 10 +++-- .../attachments/gun_attachments/flaregun.dm | 7 ++-- code/modules/projectiles/gun.dm | 13 +++++- 12 files changed, 95 insertions(+), 46 deletions(-) diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm index 7ae5e19aff..c6ac80698e 100644 --- a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm +++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm @@ -43,6 +43,12 @@ #define COMSIG_ITEM_UNIQUE_ACTION "item_unique_action" //from base of obj/item/unique_action(): (mob/living/user) +///called in /obj/item/gun/try_fire_gun (user, src, target, flag, params) +#define COMSIG_MOB_TRYING_TO_FIRE_GUN "mob_trying_to_fire_gun" +///called in /obj/item/gun/fire_gun (user, target, flag, params) +#define COMSIG_GUN_TRY_FIRE "gun_try_fire" + #define COMPONENT_CANCEL_GUN_FIRE (1<<0) /// Also returned to cancel COMSIG_MOB_TRYING_TO_FIRE_GUN + ///from base of item/sharpener/attackby(): (amount, max) #define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" #define COMPONENT_BLOCK_SHARPEN_APPLIED 1 diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm index d1a0da6c9d..06b7abc0c6 100644 --- a/code/__DEFINES/guns.dm +++ b/code/__DEFINES/guns.dm @@ -129,6 +129,7 @@ #define COMSIG_ATTACHMENT_DETACH "attach-detach" #define COMSIG_ATTACHMENT_EXAMINE "attach-examine" #define COMSIG_ATTACHMENT_EXAMINE_MORE "attach-examine-more" +#define COMSIG_ATTACHMENT_TRY_FIRE_GUN "attach-try-fire-gun" #define COMSIG_ATTACHMENT_PRE_ATTACK "attach-pre-attack" #define COMSIG_ATTACHMENT_AFTER_ATTACK "attach-after-attack" #define COMSIG_ATTACHMENT_ATTACK "attach-attacked" diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 3e2bfdb967..326464a8cc 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -167,30 +167,11 @@ if(ismob(A)) changeNext_move(CLICK_CD_MELEE) UnarmedAttack(A,1,modifiers) - else - var/proximity = A.Adjacent(src) - if(W) - if(LAZYACCESS(modifiers, RIGHT_CLICK)) - var/pre_attack_seconday_result = W.pre_attack_secondary(A, src, params) - if(pre_attack_seconday_result == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) - return // this is making the base gun not fire on right click even without underbarrel - else - var/after_attack_secondary_result = W.afterattack_secondary(A, src, FALSE, params) - - if(after_attack_secondary_result == SECONDARY_ATTACK_CALL_NORMAL) - if(!proximity || !A.attackby(W, src, params)) - W.afterattack(A, src, proximity, params) - RangedAttack(A, params) - else - W.afterattack(A,src,0,params) - if(!proximity || !A.attackby(W, src, params)) - W.afterattack(A, src, proximity, params) - RangedAttack(A, params) - else - if(LAZYACCESS(modifiers, RIGHT_CLICK)) - ranged_secondary_attack(A, modifiers) - else - RangedAttack(A,modifiers) + else if(W) //Handle clicking on something out of reach + if(!(LAZYACCESS(modifiers, RIGHT_CLICK) && W.afterattack_secondary(A, src, FALSE, params) != SECONDARY_ATTACK_CALL_NORMAL)) + W.afterattack(A, src, FALSE, params) + else if(!(LAZYACCESS(modifiers, RIGHT_CLICK) && ranged_secondary_attack(A, modifiers) != SECONDARY_ATTACK_CALL_NORMAL)) + RangedAttack(A, modifiers) /// Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it /atom/proc/IsObscured() diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 67bc7861a2..55e823bb6f 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -294,7 +294,7 @@ */ /obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) - SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) + SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, src, proximity_flag, click_parameters) /** * Called at the end of the attack chain if the user right-clicked. diff --git a/code/datums/components/attachment.dm b/code/datums/components/attachment.dm index c60df34ccd..5c0aa915c6 100644 --- a/code/datums/components/attachment.dm +++ b/code/datums/components/attachment.dm @@ -15,6 +15,8 @@ var/datum/callback/on_alt_click var/datum/callback/on_examine var/datum/callback/on_attack_hand + ///Called on the parent's fire_gun + var/datum/callback/on_fire_gun ///Called on the parents preattack var/datum/callback/on_preattack ///Called on the parents wield @@ -36,6 +38,7 @@ datum/callback/on_detach = null, datum/callback/on_toggle = null, datum/callback/on_toggle_ammo = null, + datum/callback/on_fire_gun = null, datum/callback/on_preattack = null, datum/callback/on_attacked = null, datum/callback/on_secondary_action = null, @@ -58,6 +61,7 @@ src.on_detach = on_detach src.on_toggle = on_toggle src.on_toggle_ammo = on_toggle_ammo + src.on_fire_gun = on_fire_gun src.on_preattack = on_preattack src.on_attacked = on_attacked src.on_secondary_action = on_secondary_action @@ -79,6 +83,7 @@ if(attach_features_flags & ATTACH_AMMOMODE) RegisterSignal(parent, COMSIG_ATTACHMENT_TOGGLE_AMMO, PROC_REF(try_ammo)) attachment_ammo_action = new /datum/action/attachment/ammo(parent) + RegisterSignal(parent, COMSIG_ATTACHMENT_TRY_FIRE_GUN, PROC_REF(try_fire_gun)) RegisterSignal(parent, COMSIG_ATTACHMENT_PRE_ATTACK, PROC_REF(relay_pre_attack)) RegisterSignal(parent, COMSIG_ATTACHMENT_UPDATE_OVERLAY, PROC_REF(update_overlays)) RegisterSignal(parent, COMSIG_ATTACHMENT_GET_SLOT, PROC_REF(send_slot)) @@ -200,6 +205,12 @@ /datum/component/attachment/proc/handle_examine_more(obj/item/parent, mob/user, list/examine_list) SIGNAL_HANDLER +/datum/component/attachment/proc/try_fire_gun(obj/item/parent, obj/item/gun/parent_gun, mob/user, atom/target, flag, params) + SIGNAL_HANDLER + + if(on_fire_gun) + return on_fire_gun.Invoke(parent_gun, user, target, flag, params) + /datum/component/attachment/proc/relay_pre_attack(obj/item/parent, obj/item/gun, atom/target_atom, mob/user, params) SIGNAL_HANDLER_DOES_SLEEP diff --git a/code/datums/components/attachment_holder.dm b/code/datums/components/attachment_holder.dm index 1b4349fcbb..099cc96fa1 100644 --- a/code/datums/components/attachment_holder.dm +++ b/code/datums/components/attachment_holder.dm @@ -29,6 +29,7 @@ RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(handle_examine)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(handle_examine_more)) RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(handle_qdel)) + RegisterSignal(parent, COMSIG_GUN_TRY_FIRE, PROC_REF(handle_gun_try_fire)) RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK_SECONDARY, PROC_REF(handle_item_pre_attack)) RegisterSignal(parent, COMSIG_TWOHANDED_WIELD, PROC_REF(handle_item_wield)) RegisterSignal(parent, COMSIG_TWOHANDED_UNWIELD, PROC_REF(handle_item_unwield)) @@ -200,6 +201,13 @@ parent.update_icon() return TRUE +/datum/component/attachment_holder/proc/handle_gun_try_fire(obj/item/gun/parent_gun, mob/user, atom/target, flag, params) + SIGNAL_HANDLER + + for(var/obj/item/attach as anything in attachments) + if(SEND_SIGNAL(attach, COMSIG_ATTACHMENT_TRY_FIRE_GUN, parent_gun, user, target, flag, params)) + return COMPONENT_CANCEL_GUN_FIRE + /datum/component/attachment_holder/proc/handle_item_pre_attack(obj/item/parent, atom/target_atom, mob/user, params) SIGNAL_HANDLER diff --git a/code/datums/elements/directional_attack.dm b/code/datums/elements/directional_attack.dm index b9d225690f..65c14846a7 100644 --- a/code/datums/elements/directional_attack.dm +++ b/code/datums/elements/directional_attack.dm @@ -7,38 +7,59 @@ if(!ismob(target)) return ELEMENT_INCOMPATIBLE + RegisterSignal(target, COMSIG_MOB_ITEM_AFTERATTACK, PROC_REF(on_mob_afterattack)) RegisterSignal(target, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) /datum/element/directional_attack/Detach(datum/source, ...) . = ..() - UnregisterSignal(source, COMSIG_MOB_ATTACK_RANGED) + UnregisterSignal(source, list(COMSIG_MOB_ITEM_AFTERATTACK, COMSIG_MOB_ATTACK_RANGED)) + +/datum/element/directional_attack/proc/on_mob_afterattack(mob/source, atom/target, obj/item/weapon, proximity, params) + SIGNAL_HANDLER + + if(source.next_move > world.time) // prevents recursion + return NONE + + var/mob/living/target_mob = find_target(source, target, params2list(params)) + if(target_mob) + INVOKE_ASYNC(weapon, TYPE_PROC_REF(/obj/item, melee_attack_chain), source, target_mob, params) + source.changeNext_move(weapon.attack_cooldown) + return COMPONENT_CANCEL_ATTACK_CHAIN + return NONE + +/datum/element/directional_attack/proc/on_ranged_attack(mob/source, atom/clicked_atom, modifiers) + SIGNAL_HANDLER + + var/mob/living/target_mob = find_target(source, clicked_atom, modifiers) + if(target_mob) + INVOKE_ASYNC(source, TYPE_PROC_REF(/mob, UnarmedAttack), target_mob, TRUE, modifiers) + source.changeNext_move(CLICK_CD_MELEE) + return COMPONENT_CANCEL_ATTACK_CHAIN + return NONE /** - * This proc handles clicks on tiles that aren't adjacent to the source mob + * This proc handles clicks on tiles that aren't adjacent to the source mob and returns a target * In addition to clicking the distant tile, it checks the tile in the direction and clicks the mob in the tile if there is one * Arguments: * * source - The mob clicking * * clicked_atom - The atom being clicked (should be a distant one) * * click_params - Miscellaneous click parameters, passed from Click itself */ -/datum/element/directional_attack/proc/on_ranged_attack(mob/source, atom/clicked_atom, click_params) +/datum/element/directional_attack/proc/find_target(mob/source, atom/clicked_atom, modifiers) SIGNAL_HANDLER if(source.a_intent != (INTENT_DISARM) && source.a_intent != (INTENT_HARM)) - return + return FALSE if(QDELETED(clicked_atom)) - return + return FALSE var/turf/turf_to_check = get_step(source, angle_to_dir(Get_Angle(source, clicked_atom))) if(!turf_to_check || !source.Adjacent(turf_to_check)) - return + return FALSE var/mob/living/target_mob for(target_mob in turf_to_check) if(!target_mob || target_mob.stat == DEAD) continue - //This is here to undo the +1 the click on the distant turf adds so we can click the mob near us - source.next_click = world.time - 1 - INVOKE_ASYNC(source, TYPE_PROC_REF(/mob, ClickOn), target_mob, turf_to_check, click_params) - return + return target_mob diff --git a/code/game/objects/items/attachments/_attachment.dm b/code/game/objects/items/attachments/_attachment.dm index 02d2350322..5762f4299f 100644 --- a/code/game/objects/items/attachments/_attachment.dm +++ b/code/game/objects/items/attachments/_attachment.dm @@ -54,6 +54,7 @@ CALLBACK(src, PROC_REF(remove_attachment)), \ CALLBACK(src, PROC_REF(toggle_attachment)), \ CALLBACK(src, PROC_REF(toggle_ammo)), \ + CALLBACK(src, PROC_REF(on_fire_gun)), \ CALLBACK(src, PROC_REF(on_preattack)), \ CALLBACK(src, PROC_REF(on_attacked)), \ CALLBACK(src, PROC_REF(on_secondary_action)), \ @@ -104,6 +105,9 @@ gun_cell = null return TRUE +/obj/item/attachment/proc/on_fire_gun(obj/item/gun/gun, mob/user, atom/target, flag, params) + return NONE + /obj/item/attachment/proc/on_preattack(obj/item/gun/gun, atom/target, mob/user, list/params) return FALSE diff --git a/code/game/objects/items/attachments/_gun_attachment.dm b/code/game/objects/items/attachments/_gun_attachment.dm index 78abe2283e..59b24e2de7 100644 --- a/code/game/objects/items/attachments/_gun_attachment.dm +++ b/code/game/objects/items/attachments/_gun_attachment.dm @@ -60,9 +60,12 @@ attackby(attack_item,user) return COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN -/obj/item/attachment/gun/on_preattack(obj/item/gun/gun, atom/target, mob/living/user, list/params) - attached_gun.process_fire(target,user,TRUE) - return COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN +/obj/item/attachment/gun/on_fire_gun(obj/item/gun/gun, mob/living/user, atom/target, flag, params) + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + INVOKE_ASYNC(attached_gun, TYPE_PROC_REF(/obj/item/gun, fire_gun), target, user, flag, params) + attached_gun.process_fire(target,user,TRUE) + return COMPONENT_CANCEL_GUN_FIRE /obj/item/attachment/gun/unique_action(mob/living/user) attached_gun.unique_action(user) diff --git a/code/game/objects/items/attachments/gun_attachments/flamethrower.dm b/code/game/objects/items/attachments/gun_attachments/flamethrower.dm index 75704fad64..fc9da0228b 100644 --- a/code/game/objects/items/attachments/gun_attachments/flamethrower.dm +++ b/code/game/objects/items/attachments/gun_attachments/flamethrower.dm @@ -26,10 +26,12 @@ else return ..() -/obj/item/attachment/gun/flamethrower/on_preattack(obj/item/gun/gun, atom/target, mob/living/user, list/params) - log_combat(user, target, "flamethrowered", src) - attached_flamethrower.flame_turf(get_turf(target)) - return COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN +/obj/item/attachment/gun/flamethrower/on_fire_gun(obj/item/gun/gun, mob/living/user, atom/target, flag, params) + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + log_combat(user, target, "flamethrowered", src) + INVOKE_ASYNC(attached_flamethrower, TYPE_PROC_REF(/obj/item/flamethrower, flame_turf), get_turf(target)) + return COMPONENT_CANCEL_GUN_FIRE /obj/item/attachment/gun/flamethrower/on_unique_action(obj/item/gun/gun, mob/user) attached_flamethrower.unique_action(user) diff --git a/code/game/objects/items/attachments/gun_attachments/flaregun.dm b/code/game/objects/items/attachments/gun_attachments/flaregun.dm index 2ec9b7ee2f..79ce70a54b 100644 --- a/code/game/objects/items/attachments/gun_attachments/flaregun.dm +++ b/code/game/objects/items/attachments/gun_attachments/flaregun.dm @@ -30,8 +30,9 @@ to_chat(user, span_warning("\The [name] already has a flare loaded!")) return FALSE -/obj/item/attachment/gun/flare/on_preattack(obj/item/gun/gun, atom/target, mob/living/user, list/params) - if(!gun.safety) +/obj/item/attachment/gun/flare/on_fire_gun(obj/item/gun/gun, mob/living/user, atom/target, flag, params) + var/list/modifiers = params2list(params) + if(!gun.safety && LAZYACCESS(modifiers, RIGHT_CLICK)) if(loaded_flare) user.visible_message(span_warning("[user] fires a flare!"), span_warning("You fire the [name] at \the [target]!")) var/obj/item/flashlight/flare/flare_to_fire = loaded_flare @@ -43,7 +44,7 @@ else to_chat(user,span_warning("\The [name] doesn't have a flare loaded!")) playsound(src,'sound/weapons/gun/pistol/dry_fire.ogg') - return COMPONENT_NO_ATTACK + return COMPONENT_CANCEL_GUN_FIRE /obj/item/attachment/gun/flare/on_unique_action(obj/item/gun/gun, mob/user) . = ..() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 067d1c55de..15ae36373f 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -469,7 +469,11 @@ return /obj/item/gun/afterattack(atom/target, mob/living/user, flag, params) - . = ..() + if(fire_gun(target, user, flag, params)) + return TRUE + return ..() + +/obj/item/gun/proc/fire_gun(atom/target, mob/living/user, flag, params) if(!actually_shoots)// this gun doesn't actually fire bullets. Dont shoot. return //No target? Why are we even firing anyways... @@ -478,6 +482,13 @@ //If we are burst firing, don't fire, obviously if(currently_firing_burst) return + + if(SEND_SIGNAL(user, COMSIG_MOB_TRYING_TO_FIRE_GUN, src, target, flag, params) & COMPONENT_CANCEL_GUN_FIRE) + return + + if(SEND_SIGNAL(src, COMSIG_GUN_TRY_FIRE, user, target, flag, params) & COMPONENT_CANCEL_GUN_FIRE) + return + //This var happens when we are either clicking someone next to us or ourselves. Check if we don't want to fire... if(flag) if(target in user.contents) //can't shoot stuff inside us. From 8d033c87b806cf7a8fc8ff312a973b0b43363973 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jan 2026 12:05:54 -0600 Subject: [PATCH 16/53] Automatic changelog generation for PR #5648 [ci skip] --- html/changelogs/AutoChangeLog-pr-5648.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5648.yml diff --git a/html/changelogs/AutoChangeLog-pr-5648.yml b/html/changelogs/AutoChangeLog-pr-5648.yml new file mode 100644 index 0000000000..f544ec8dea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5648.yml @@ -0,0 +1,4 @@ +author: SapphicOverload +changes: + - {bugfix: Fixed some guns firing twice simultaneously} +delete-after: true From 0f9659aadc9c5434129615aaa6a76d419cbeb508 Mon Sep 17 00:00:00 2001 From: KOCMOHABT <25280520+KOCMODECAHTHUK@users.noreply.github.com> Date: Tue, 13 Jan 2026 23:13:48 +0500 Subject: [PATCH 17/53] FIX: Game Panel - Create Turf (#5694) ## About The Pull Request Allows you to spawn turfs not through a build mod, but also through the game panel. ## Why It's Good For The Game Missed `;` in code - Game Panel fix create turf Admins can look up turfs and spawn them again for reasons - Game Panel: https://github.com/CeladonSS13/Shiptest/pull/2562 ## Testing
Screenshot image
## Changelog :cl: fix: Game panel create turf list /:cl: --- code/modules/admin/create_turf.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/create_turf.dm b/code/modules/admin/create_turf.dm index 86e83f38ae..cf1b932a68 100644 --- a/code/modules/admin/create_turf.dm +++ b/code/modules/admin/create_turf.dm @@ -5,6 +5,6 @@ turfjs = jointext(typesof(/turf), ";") create_turf_html = file2text('html/create_object.html') create_turf_html = replacetext(create_turf_html, "Create Object", "Create Turf") - create_turf_html = replacetext(create_turf_html, "null /* object types */", "\"[turfjs]\"") + create_turf_html = replacetext(create_turf_html, "null; /* object types */", "\"[turfjs]\"") user << browse(create_panel_helper(create_turf_html), "window=create_turf;size=425x475") From f0a16aa0d7c94e670f80b9195eb9f41b949dc034 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jan 2026 12:34:54 -0600 Subject: [PATCH 18/53] Automatic changelog generation for PR #5694 [ci skip] --- html/changelogs/AutoChangeLog-pr-5694.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5694.yml diff --git a/html/changelogs/AutoChangeLog-pr-5694.yml b/html/changelogs/AutoChangeLog-pr-5694.yml new file mode 100644 index 0000000000..0b74121217 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5694.yml @@ -0,0 +1,4 @@ +author: KOCMODECAHTHUK +changes: + - {bugfix: Game panel create turf list} +delete-after: true From 0cdbbe11023d7879a3e76c389329530890d07c0a Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Tue, 13 Jan 2026 16:53:50 -0500 Subject: [PATCH 19/53] Prevents fake deathgasping (#5672) ## About The Pull Request Makes the deathgasp emote unusable as an intentional emote. It still triggers after someone dies naturally. ## Why It's Good For The Game It's pretty immersion breaking to see someone lying on the floor and deathgasping three times in a row in the slim chance that they can somehow survive and frag montage their way out of dying ## Changelog :cl: del: Removed intentional deathgasps /:cl: --------- Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/modules/mob/living/emote.dm | 4 ++++ code/modules/unit_tests/emoting.dm | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 3b3781f7bd..e1b9236f81 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -131,6 +131,10 @@ stat_allowed = HARD_CRIT /datum/emote/living/deathgasp/run_emote(mob/user, params, type_override, intentional) + //prevents fake deathgasping + if(intentional) + return + var/mob/living/simple_animal/S = user if(istype(S) && S.deathmessage) message_simple = S.deathmessage diff --git a/code/modules/unit_tests/emoting.dm b/code/modules/unit_tests/emoting.dm index 7111107b70..76949a239e 100644 --- a/code/modules/unit_tests/emoting.dm +++ b/code/modules/unit_tests/emoting.dm @@ -18,8 +18,8 @@ human.say("*shrug") TEST_ASSERT_EQUAL(emotes_used, 1, "Human shrugged while unconscious") - human.say("*deathgasp") - TEST_ASSERT_EQUAL(emotes_used, 2, "Human could not deathgasp while unconscious") + human.say("*gasp") + TEST_ASSERT_EQUAL(emotes_used, 2, "Human could not gasp while unconscious") /datum/unit_test/emoting/proc/on_emote_used() emotes_used += 1 From fbc1aaa073f3d37d1bcd7cfc047af471890518f4 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jan 2026 16:15:22 -0600 Subject: [PATCH 20/53] Automatic changelog generation for PR #5672 [ci skip] --- html/changelogs/AutoChangeLog-pr-5672.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5672.yml diff --git a/html/changelogs/AutoChangeLog-pr-5672.yml b/html/changelogs/AutoChangeLog-pr-5672.yml new file mode 100644 index 0000000000..fe8e962d33 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5672.yml @@ -0,0 +1,4 @@ +author: zimon9 +changes: + - {rscdel: Removed intentional deathgasps} +delete-after: true From 952bf283af288fc906046953b6f440e56c5ef11b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 14 Jan 2026 01:22:24 +0000 Subject: [PATCH 21/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5648.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5672.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5694.yml | 4 ---- html/changelogs/archive/2026-01.yml | 7 +++++++ 4 files changed, 7 insertions(+), 12 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5648.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5672.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5694.yml diff --git a/html/changelogs/AutoChangeLog-pr-5648.yml b/html/changelogs/AutoChangeLog-pr-5648.yml deleted file mode 100644 index f544ec8dea..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5648.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SapphicOverload -changes: - - {bugfix: Fixed some guns firing twice simultaneously} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5672.yml b/html/changelogs/AutoChangeLog-pr-5672.yml deleted file mode 100644 index fe8e962d33..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5672.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {rscdel: Removed intentional deathgasps} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5694.yml b/html/changelogs/AutoChangeLog-pr-5694.yml deleted file mode 100644 index 0b74121217..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5694.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: KOCMODECAHTHUK -changes: - - {bugfix: Game panel create turf list} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index ddcb41c814..5615fda3c1 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -80,3 +80,10 @@ generalthrax: - balance: Other non-standard meats cut into 4 cutlets as well - bugfix: Kali Subshuttle Port is no longer double and works +2026-01-14: + KOCMODECAHTHUK: + - bugfix: Game panel create turf list + SapphicOverload: + - bugfix: Fixed some guns firing twice simultaneously + zimon9: + - rscdel: Removed intentional deathgasps From 3642ea43ecc20d5d5f1d44dfeb07a57aa51263c5 Mon Sep 17 00:00:00 2001 From: thearbiber <135081923+thearbiber@users.noreply.github.com> Date: Thu, 15 Jan 2026 11:25:44 -0500 Subject: [PATCH 22/53] digi alt thighhigh adjustment (#5811) ## About The Pull Request image ## Why It's Good For The Game makes it shorter because it was basically the same as normal thighhigh before ## Changelog :cl: add: digi alt thighhigh adjustment /:cl: --- .../clothing/underwear/underwear_socks.dmi | Bin 31416 -> 31410 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/underwear/underwear_socks.dmi b/icons/mob/clothing/underwear/underwear_socks.dmi index b273b0637398eeb6541e7269c95cbdf63a7996f7..a6e9a5ec556b2b68e577788bb2832b31d3aa18c7 100644 GIT binary patch literal 31410 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ⅈ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 literal 31416 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 Date: Thu, 15 Jan 2026 10:44:16 -0600 Subject: [PATCH 23/53] Automatic changelog generation for PR #5811 [ci skip] --- html/changelogs/AutoChangeLog-pr-5811.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5811.yml diff --git a/html/changelogs/AutoChangeLog-pr-5811.yml b/html/changelogs/AutoChangeLog-pr-5811.yml new file mode 100644 index 0000000000..973a512816 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5811.yml @@ -0,0 +1,4 @@ +author: thearbiber +changes: + - {rscadd: digi alt thighhigh adjustment} +delete-after: true From 564290820e312813a2d897c234e02bf54619c9f7 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 16 Jan 2026 01:20:15 +0000 Subject: [PATCH 24/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5811.yml | 4 ---- html/changelogs/archive/2026-01.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5811.yml diff --git a/html/changelogs/AutoChangeLog-pr-5811.yml b/html/changelogs/AutoChangeLog-pr-5811.yml deleted file mode 100644 index 973a512816..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5811.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thearbiber -changes: - - {rscadd: digi alt thighhigh adjustment} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 5615fda3c1..463db1b684 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -87,3 +87,6 @@ - bugfix: Fixed some guns firing twice simultaneously zimon9: - rscdel: Removed intentional deathgasps +2026-01-16: + thearbiber: + - rscadd: digi alt thighhigh adjustment From 7501ac1c7aa0e1aae403859caa474532879afe35 Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Fri, 16 Jan 2026 14:54:31 -0300 Subject: [PATCH 25/53] Fixes Ponytail (Side) 4 (#5812) ## About The Pull Request Does what it says on the tin, deleting two pixels on the side states so eyes look normal ## Why It's Good For The Game It looked ugly before ## Changelog :cl: PositiveEntropy fix: Ponytail (Side) 4 now shows the eyes properly. /:cl: --- icons/mob/human_face.dmi | Bin 104474 -> 104540 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index a1fd0218994dc1779132cdfce2e909bdfec2d7c6..e9ba3a81929aedf05ee15e0c4a4795f616e04043 100644 GIT binary patch delta 58918 zcmcG0cT`i~)@>|UP(&0#MLJd*=w&g*IaY)x$MY9*^x5)90>h8r&P9& zf_u>s|ChV$K-YBSS>>B8V`H0xjgy?JF)KrE_b-Yq+1QAP>H3x<9dZ{uwx8$wl%$O} zjtd48rn;7rtO}}^^D#;FJ%_i?{~8{=a%-u3aQp*PMQX@9cMJtcU zjNa>eBZ7Hmw_~4-Uk{JC5kJ!=nrSn>FafS5#jBH(*Si!Cf4D5_S z+5PQh7PqwF53eoAMNV5%d3ukyVy8x_20|i9-S@X_#O20vbi@Sa=H|v@wr?%ok0PnT zQ27NaJkcTDeSI>81SvRNG+J3vQdf7bswW2rt^1mqnhN7~w>)(y86I&@bF=H}jL0Qh zhNZ$4tnvg5@=1(p9v76Ysi&>2EuA1oS*f%*cm=x(uPN=h{e&g@C^J_L|BVa{{)Gh$ z#%R3CHfCj_R@-BBLSUPFVw6N8iOERW7js)LSiAfCH%>s#=E-%*l8DYDfk7A}Rq;x3 zBSlMls@|NOR07s|S&@h3Z(4nUXvL;19^TW_CtV1af>#$cL7@u)!go159E))U7g17q z#Ux{0gj%tns3^NI#*U-vr75Y$KGj@TclhkEIf?J&{5LaW`{a*pGtyU5PR#e1KcXD4 zdU{>`lJ>NQ^7yG{2i$&4RSS;W=4pDx)_uSE&HNPk?f1?oa@#wzLlEVOG#EvFAD^$c zFnJ9NM~#iGpx;hV(gp>!9NJzXH7SYb;Cr@#dSq$4X`IAwg|tJfvFx>~XY9FS>S0Vvt)T=L(t{QysVDibd|J z)@X03?M18b{YYsT#g@>%j+PFqM7|olE{P8nk|P#FI&CAk45_il*FI(H78jCDAC!~ zMgN73*xmKMZr-dDtIscNl-%rU?V)5pP?y=zI_~;RO)We&A>oOYRW|q%5WB}w-0a#Bf7FBP zqEO8Yf%tG> z2104#gyDJCe!oHc4P-}-pSBzxHIzS4uGwhS#de)U&CvJut__O}{}4*Ht}+BR!Dw;y zuy&gA6tzu|9qrYUGamKNb7q97BzR+>1U2w^0iB+LJ0z2f+7ZsPUJqcxB4sR{FUcZ z@$=U9HpGitMQ#p~k=UDkluD?wa=eR;Jt00bM3JYr>Eta5HMxZ8m^0b4$=^~EQ~QCx z6NAIk5iump{9ZD#S@3FHC)C(Oo-a=ob@Tm1F626pK!M*FJ{_*|qUx3mZ^y{{sF9KR zhCvaNC2j+szzd;2PNX@AU+q=hVGI3n=mhSh)8+BWN$pL6oAZJ0f=LXqH}p$bW8lT- zp{i3xkdWSrSY$DrEe5O&39%f#Dt`4aLV&fR_Tqt>Uo(A@u3`Hdmy_=OgdD$Rk;k_D zH9nF8C%h%i5y}3~%wB9TD9m^9CpT0RnOjV5A-ly+D@1fkA^tw~=RDuQW#F5_+`*K$ zzcZHjHTM_h-E)PN`^&|tX)5-_&t9l7C@ieqvx&+{qNoR?4-TuucCz=LGrpS|Ut24E z0gMWjvTdWzQy~<412r0nE@_xfzVK=&AkVb+a{xYDQ9!)49QT@kH?#re8cR#sY?W*H`%XhWA~)y9)91Zi!Y>Y-CE(ueh9`E?gJuT@v) zz#Ny3#4{$7Y#sdhZ{s7+F{ZGIT_D&o#m1FLDWoz{5521OvK5%EVDXU42hj{p*%i%( zE}L!6NNID1-@jV4mq4MREk>d3(l?fcP3eaA0~1Z-2W}tBLD`1dVtw@ZpSj49i&qWLVEXqO%^ zy~`d;_(8)mBMWr|ymh>DuVU`bYt2Auu8sR? zUC3ar(Z*Rh0*~Kum&2Lu-%bnRz+1Owl4bF1Tb(OLU@R(`r|#@l)NM}1HC)m6zEcET zENRXD*_zK*S1IscoI!j%;~wLFR4M;wRhP!D)5oFQz{I2^aDjQxd10m{;+@MOi^5 zrKNqx`PGt55fSB@H5gmU<5(96s}jfPH?gn1xKg{(<^Y`m)rN{eODW{&?CK~LW}9NYTERs#Fz|Y-(jd^IbF`vtoqVeLNVue-$-@e zqg92!d(Lxm4Bu$%fQCr;=uo8klX6MPocs8cNr0KK=ilflgFq;r1ci0?^cY^)<*RU0 z1vu&xh^GyMPmnLEzgrI3lelyJu_(liF;srOKvG)TsUrV-`Bz^bg28xu-kI%7{GMlL za}yxETmE?b&wBBPh1PoZsZkMoxZv7&$QzBQj2WeqvIp3wliRfaC)Tn{!WdC=y^ zh*St20dH@diRbN0h(lxfqa?#Q80^c~RO4EcNY%G3rIWa@oSel9iN7Xyz!MLysae{R z=N89aPQBpdra!_MGzmJ$*V z4^959WJLl4C@${N;!ms+2(c{<%{&oNQ-Iad|78CH!wR`A)@WU3EYcs=9qtTMt*qV0 z{P~ml?tVtDOTqvEqssiOpML!K@g@0StkA(bFqp>r+hfTp!%Fzjzvbl;rs%1|oOerD zLk{9o390heuV3el=`g7G$BHF|sXl#rWb)(}OP1yXu-BjFaNd4dzT2&oIwaDtuHJXn z`B7K!F$FH@+?K=loBZwlud*1@UXN~WRt;lIi;B8~{S;Q*$X~nXSu!+~folwOJf%@_ z>^BT{ufu0%wyU7N{*mIfD2YCmp61`~ORKBL9S$9d4Zi%KE&ROK!4d}?%GCQoQ|^^_ z8>nbbjW==sx{0ly9SOQT(Xnq@@Cs7A&H%1zL5BiI=YZ+)(lSoMMv~Q%B_HeR#*yyw zz4N`;Dm18s%{ugkbnmzm4qW-T_;c;k955K{8Hglxbp;r*{Q&joHfiv5leb(r;)uyV zrUACYge({Z>EB>imIIgmUrW&cd-H$$R_OnGhyT5|0R8(VO`NUicQ+KZ6dTue!hP{D zqzz6TkVBV6$u;^;`{$Ax+i+N^M7i1mVzDjeRR+GIl1w!7GKVlSU*H7Je)=+S0aLcL zqf3(~h_Z~{r+Wz*O}qf?ne6W_sHjI?BFNfNCE5?0G7Y>ZzR~XZ8WI9GO5kaj-pH zP!l4*xMgdPs0`S9ghuK^JAG2|!vb!*K85MoiXB=3Rf}~2s1YrW@7Rdkp0f*IwA?Z!afL2TJ+jS65kB4A~SvhP-=l z&~~s>>HbB=TG{!^G)z$jvk8;z&@ULEx$ zMc8;)+D|sPYuBHAy+?YRN2E&UtrhBEzp(Dx0cxx13TEBg_$iaMFTqIL)*-_tFglDdpT}9Nce1U&ZoyV2fo4`AQ!Fx2DJ}o zQj;$+oN1QJR8tSsRaY3s$sW+r*S+ETIVp9Z?w%MTkgeFp+NP?SX$n=_KM-(lj^n`W z$K%baJ&zc!{;-JH-TC`eI-o%tIM!=yp*9bsp!BgkM4~*uTcaA^BHgf-0e&d}u6OTh z5WZ>Hti9*4 zJ>-3i$nyM5DWQN_QL*Y1d^^p_O@xxcN;V0VUzWo`izZu#{39-#0DH>UQCVJI{+f|- zWkD7IB|?7Gt|K}lARdn+DoQ8H08=p&>^@rCdw)yY5Ae-+pCB#o)IU7L+7m%O@&112{IPpZi%ZPd?mpD&A*Y&Q zzz%rE#t}{rc{Fd=AYYW%y!&>=(4bveh%Mm>(KK2-S6#r>v5;x%;=e%`8=KgfQ}5&D z_z-Ks>TnrrpWJqbKTeo>x+FWKBQD0RYIhSr@ig(2+& zy;%i-or&<^(siQEBJ7EWZ~&inhLvnYREQ&9z1q8XtN89~*9%p}@u8^Q2k{YGhx9;p zogG_+BqZ3RBVth~s`S<7SgrMy%J32FGo^{7-vdanSLdbbo&=l`_I(R450?Plgt`B4l0n#C& zw+2Fh0e1-<6X0xU&udkn>fI-Gcl6LrlVLHohj=g9n5z1-(8%&X1x>Ml^MVHi@4#I@FK|gM<>kCW~s8Tx(yd?W3_PeC*%?DGp2qItBSiLcOS^VmoXZe zj)-3gft1DNhOr|Slpp5%_Zz{rybs-ExBo)@BMM~%P_Vdpre>3pH+uZAs>$HE2;4&$ zIWMZm{TTZ-acU)N&X*$tN6x|!n`=GJY0mq9f4CCIGS8M1!N za=OopIj@hRH>bX_?|>u353T~tIFg>yC~?ZOir>jR5jBoE_9qwG(r*04cT8mDwXyBl zWBT^ZAB56_mjz)rSYeK=bdR`>X#Fh~BKV`fkQI9v=0#3g!>4*eQ-&xkAhxV>EHD?t zN%P6T=9@gP9wq`abm$u8M&;mqk}isnFGYTlr6Hm)K~pyJOBD5kHM)XT&Gm&0>y2*$ zrJO6}9{xJaof8pCYT`-&Iec>XWqxzmT%7W?Vg|TPU+O3w?kcDUs)5Pp@+=+Ld9A~$ z?D9gX6@;O$K%x(w^((GA{8KW9GRHzP`bF|e7?3CI@^5Bfl`fI=lm)7p zU~6v6L}J3#)KrE;B_N7wN4R+yVHs|7McO?2oc*a|MQ3#1K&bwB3m8BAa~LJX zu99Cb)m?it)OZ^ zt>1RSek8={n?=L@@#@24V`Co|N*mTy2JAzH!uNc12<7Fs3bXndgPcSTm1#jQK}I)r ze#&p7XC>#*?#OF#j)P+t-&l_%$ov`?08vTl(IehCRgu(OttSdPLh-2)w#H5SYmuFm zEkn)&3tlJ5$uyG)MeWQA_jH%#CHUcL5jWG3-JH*Cbq!$pguTlhN2-vNU~QJ=J7#*n)3N5D9=<1))Nku~!Du+4nQA&~F{#Gwow%mp?^QsD7SxQz3!o zmxVk4gB3y6ljS$$YLnBFqMxAxzkn;~zNpgN{Z!=t>%RtG& zlTuxg3vs~3IZrO|H-{;?N(lD2%XOWH4je7I--MiUP^WEnR#S>YCeT!zHC^zZw}|~({c}2kEzaq1TH#VNIEw*|F-VQWUC=VBtr60sT*4ns zz6pz50$C5@zNq-}GH@?sFye-cfkNUOa$bk3b8=pK96E@-x<)q;`G5xTwQzPuI@4C7 z#B&gw5LR|kRe^zP5L^XdmpB04#`B}-Q(mN1O1n#@#|@A}z5I9BEy}$-9*t?OgB$@# za9^Vz3BkOyz_EH6{Z)_jdsF1I*Nc%`RSuuPc*0=KO5cy&`7JQRd0gtI*QDVNJ%^4f z?BUYu3Oiy+7NGC)g|+<1rM1|*AlmSau}r)ISTbvJip1e=WU!NarQ!pZ~J- zPY(EBSN@-N{BK$Z{a^0uzv*)S+tr}|<=G1vf75ZzsEZu9zMhkp+pnqu&t;6U~Pmc@AE#0Ji+XAW;DaH$e6shV?Ly<~o! zRKyxF?#_{uleu%;Du`GCA@>V=3KwCkhC*w!#2StR%x3(`Sklwmu^ zT_H=h&9sHBJml^9S4q(xL6|?EYy(3FAkW~{#h171gm&o3orle0#1_{!C^UJz+M6=U zL3IV7DI`<>ZG63thofF-NOy0KooiB|Wb7H&mHmM77VN0P*6zaJK9UODNpVno5c3f3 z2XWC%)caJOcJ`IZf*%DVr5PsUFMCJg9-7yb=(q2+?p5~)71p=jPZQX0KeGgG<1*~AqJj>`-hp(ye0o~aNV1@maH0OIBD}ziNmmxskm-;J!wm)mit;==N?40!7ws@2 z2~Gj{K92c)bAiQ*Nr?GJ33cd*GY|8lRKirF@#;kFRUQkuV<$3m^aU86Ww+|?oY#>n ztvAOF?;cDCrsz3eW6A}cmI&{gNyqysXlHauy}cYEx47TLR-a>RWMuj5**#FMmz<@p z+K{j5uvPrxPWllh61Tq<(ZtAeSddqQlBq+U#SZ+~VHo*Pzg^#E4tJ zd04Bo>~oNF=2#!=BDQ zzdSE?_(X*W3^r;p>L&0`A^W>^daMz2RN`QvPVFKy8E|k#!`hX}ZHNOg>793gd_ZA)pSjbwr!p?`{L zU#lO&j=~J$DBHxYHf~60n}}ony5C0IET5`&O847S=a%90w!UBLyS@4t6s~jxd6QIs z8XmL8+?10OHuopR0i{CM*jVD}@4%rO`#_WM@60r1XdDMt6lUq`ZFH5kd}3A?d(2rNI5D)#>UCtXI|}2 zbMI^TuXkMkW5GHRoe+_yF2AezbZ_w;`A?|mwTt1M&CRcGgPAZ~s6PkJfJz1s?F*aO z2@K?72-*3lP}D{6M<;{7*ue#dj#)5T2(d9&HEHt4RzA-*`mq`qb3Gy-q@OB^UkmYp zR-@O?bflys7&0PV>mgH9Ze_s04FekGoUft@SS001dIjF&T`pff3&?6cLU@eR;WJGi zLRN5Sb01&d?Aq}jj`SPcrUT;Q;=hK5t~E9`uK(Sf+oXh zadp1iB@M6EnXKNnBqd!K2|5I0HO(mN(LJWm@8H7unqe3U{t}7f*at+G)xn$k2Xr#- zDvYwT0QP3khnka<2iDUmhO_b?#|VLnJOXNJnoD?!>i(YzTuA%3d%ZG@BFbPL{)z(_ zonONwg_akq%jA1pKxK0UR3>Dt$P`L;R@Q?*e|NH=+GE{|)h#UwyD{+nvkMuhe$3|&2H{JHW#tnGU#I)3omdbLR1wwtXF zk9#ZcYO1ZR14y)UbHwH$Ip5X23W4H%+Zw(^V?w(OeP(KB7ZOX;Ru+&%>wHfc(WYrR$P_`v#B%yzl? z;y)3xmKF1wR0@4Dj|3Ir_V$n!FY8CW_%6Tz^1G%A1GlodxR@6r6r^T0Z{yl1JoVb% z%j=G>*dEm)uv)1}a*T1h;lMj+b{I_FiYqBS0wLD#^o7{^K*+Ss3v!fV3l&WcUiw69 zIt`V>&yA`+k$64`cGaOZfAhHHU>i@bAqJInkpWGozA5!;epA58apqaqFRCMX{IHo4 zeXOVUEhJg(!z9_}i2YS9LsE#fBaQZ{TPm>ky0x!1l&0XTbl0rFwXH;O{XG*2j|a5l z?#@hP>QMdqz&U>~1px{9<|))DJo~7Wraal?Z@j;oPD=v#>~-cM_u}YL<5Th@_GYwu z(15vb$&ZpHAk^YrziGMgUVVPuzT95VjIs*sqTZ7rQakF8o~-w{!Eq%;3eeqml5XaW z9f+!x6DPQ2H+TKyzoQK|AG5;zabbUY)m)8ZyJg&U0V(~|>HM5KRF*Bh5U|7@Qd+Ct z&;l|%lUFfE#W^LTmF55D)wkIOdiy1@IN6iFADGx{ZIH~BsJ2LT9$;74+73^a+AJ}x zub`zRrw{TS#vtuSgBjmBPBdhwK|7RI4^!=~p($mmS;74L!e)Y0Q&j-`KTJs-UKxO`A$7 zV)tdNSq{}&+UT}WO4jZNL{bTvXHlLz{d}Kseg7QZG^&kIur&iHD$h{P)}%GU>SR4n z1#66P-v!7(sL7({lk&AtE~O;f2sO2VmAf`mu1;$&UfljH%|$~bm)!_i>shPLAA9o* zIMo2c@Kam6k0oQ(Q&B2F2W4<;xztUD4<>#US63$=1^hz8mYt2}Ba6?HUXOO=1W)^! zsIxZvZ`MavX)UK#R8+wART?)2i1L^y(I&GKNl*|C$z{LG#KhD=e``~6zPdnSfT_1B zt$Vc*%ysdiixyf(={I4rQi}4u>|ZLA&f0G4NkG2dQpiIKi*$>2<3*kPlH?GZrvv;f zOdz+pkH8-rmJS04NZYK(FZ{=bqXgCe7NF_g^S}FJCH8QAobhNF4otB2EA7 zSaJOEX}!9M!ye!b{ec)bf9_(R;cKW@o7aPQP^0F)m-zMs=8y4zyOf@^Z%1zB=&YgV z;*&$HrXx8Plk9xoRjz#+Z(>^adbm#fF1Wsy*oZ(%aFPKrlu7yv3KpXNG~RQkf}l%+ zC#bp3{ChJAO|)OZz8iDwV5JF{Nc9x++_VdQ4~P1vkUZbw-=p$DBGu!;ZH*Hi#)6$U zVhh&>?7@wz!j|i{*4D}rIj?AMuhxo~yL5KOrzx54QAc$~^By*4z=@V>>gqCu?sHi; z$n@y>yZL~PgnnUdt>Gyy*_Zx|1yV3f-gNTw2)PgzX9ZII@z;v+N|uQ4YdtsHR$X*H z=bwWV(W65{A?@pz+fAAVb|~LaJ;tcRBMXr}>G);;waI$Vgw(f|_89y8q0NXKI|M@H zyu+B;36M?Cs~#c+U!Lj;l^}PnJzW4)?RfZUPy(2P?@^!^!i$EFfw}H8)An(ej}CfN zakr1hW}Mg75H(wl2Ju!JUw>{HE1nCf&lSDVD>^;oE3?1WBf~jFai!fexr<@W3r%p5 zTH;sY*o*v&Jo2jOz-b%4DT}t!%(3Y0u8iZg#6D`RT#j+!neY#x!CL8*S2k zpZ;2^s`Sb3oKvo%BdoZ%I6btfdEp^ZE)9C&9;_>$QX(F^gGH*Oc0o=2aRE}(eM+Zr zC-t*%ZwnT5b2^9Sg^gWAu(kFHvH2BDyLZ;M-lNSOFb!6r8}c+d97!6SF>x&1w=2DY z0MEqudiv;olu1~x7-8`x{EI3A z0$k)|RBOGs-7U!8>l>=gbg&0~<(pBG#DZ%79CO2-OqNfnsP$0@BwYG+f%u;yBjzjy>x9w8{D`Yck#Uzn!03cz zsZOC}15kG_6FfI}&JKt*cf~+Il5kPQ!nP%>Gx=o_ zi-0)+#yNIti@kDMKO@yJRDv`@S9Hja{Su-c`kOM~0nm@D4dRU8SDs&c8{H}|yFdS2eH6ki4dFn(|K*%Mbyk2ez2$qAmt%PC1r)Vt4^mq<>zA$Og18 z*&Q{Bo?v-7b-Dz)EJBy{{&0K(5Qnt3Noe_nL;n!~9JEp@_s$LYtod@+;~uhuqvo9b zwM+kV<4o%PW#)zknJBgw*Dx_qRmOR`T7&+%%+un~>I~jb!=Q4{Z4KgQ=P9Q1AD8HY zD&OQO+tMG$X8*Hml&4hx{Zpvh#^c9_&2jU2)or%lKv^ZT$n(*^pY8Q^)W~HK9F55Q zr@L=z;N=v~@CnBrt@Hv_uUpe&I&<>OKi7m{X?N8xnsNRMS-GQ&{6EeEcx7Z1Z=U8v zwrTo}D9#$9Pvh*lX@vQ|VCWo}-4Dl~$FcmIrQ%3DUdkB0)5+eS^sGAtZX05=52q34 zPD}yump8U%WUXh9mNO5=f&shs^*>J_S$2K$z|bD#n4!kX^?sWsQN5j)pH3fa54IP= zb;GFV$i%md|J-BQ8}DzGm4_m^tm}F#QxE}5Ps1*Y98$Mo;RH_Gd^Vs!7YYAfs z$0|_hry7y|ELaRw9#l?%P>1ma%^5Sr2oS@~9WQW6hS8Sc}qY=42<)kPC-J~`E-;J^O; z)?8*2K!3dwB-3HG>0NFZtS0v%{zJ!y6FDPKcx_SX!=rlGuA%hA6z8pd zj{Zy%P)2RdlFRkG$&u%plMVs_aviwM>S{DU50Afp`rO{shqDm;^oFlG=1Ut8kE~Z{ z-jT%b`UCOE0y|qpE>MdQtM-9;U{c;L9-_717-Z8YF*z;H8hLuE_txIvGXP4!>m2ev z*k}7xOkt{4*lBwChm6#hIWYnx%Cj%u_}aJbH!PsmCusbL8!{!2jUZ|_nxaT&w4Vn7vAJUuzTk34Ady* zjUKw@yNe$Kh@(VXmgttgBQXff1?bgeo&OVh@*AlhZb$2|qK2;wPN|c2c4|~rRof>f zQs~+K%1TiUV2gLl4ZEmPFAtC2iM#k^mF9v5;Q7D=jB~tHfzy=a(S|8!5Ai_PZ%y?f09ngSLhS z22nr;ef8>9FD<{{Gvw)kdRq^$Z1%LPps975Vu16cxV~ zBYPfmCq@;6W2;6$-eBqGrqi_DNbCSv=Ze#mQ!(eR83ZzEsAzxEI}U?Kk1Ban(FqN? z4;Alc^dnXI2Kjh?okzHBZ96Ud))u9gGG%BiVzv-i=Gr`eS_`!>2gk(T2A7v8c(fYX z0VIC0al+x8H)qPaIy)8Zg+Xod1(I_{JIlu-z%1uyPDO%kv6cOURELrR*RAu);n|x* zW3f7j{7+DRxj;Uy>7n9x9}d;AJ1&rralPG>xZ4i4&RdwXr{42kI@Q(P9j2qFrvmy@ z=)D3!-86vP_EJ-Qx~R%`H8eC-OhzWzpLR=J{3?+ARQQfM7W#jAh%ZI&8-cDGRdw~Q zp`qB9#q_?J`Gtk-%*^{~-t!j(w5{|o84vLgptrVHCu4e&rJjIh1R&nDqFg!iK^a^u zj`ABwntWcp(kv(}v=U71trdysX#YO@l|S1O0E1su_4$h=V56W*A{r1;?Q2xZ8H7XZ zQog_i4(^1YU2j{sp8-Ihme$rvlB15OtvlzzjHq^;h*BFKuJGQlPP)X+4(aOgVNp)N z0&&4dw~1g5l}y%Kfg`vk&`ym^>01E+1r=C=oA6i}1Km(0-K~bABGsR5ZFBXsKlLNa zIG`qS!c;v5&l(mHp#r*vw){XVMow<7K9#&NrmYdjPq(%!Bd#Kfo% zAC7-e%F;46#(!m^)3*pjv0|1ceM?8jX4AVc`5WOt|p)@hX7IL`mJf-7m1P# zB}m-c2uioUz4>=0b;O)T1d1#TemCJW9~yuqqCsl|5eQlBckkcgSPcLiKc_ya5eby3 zz-S)xv(~YJeG(H>c0^J3>Z(uo5}fbsJp`-cOVuQqa+R$7{7k^8S!t^U(cS0w&AgM$ z%w3z%W>tvn$qucT zPzF{CRM()b?m?mdO=)QX;9P)I4YKs|GSJG81wNq^Bt$@D+X;L=D9~Ci$^8yI%KQ~f z8{mWH0MT)VF^F!;Kq6d`HT@Cc=AeUnd~J50>iY>0elZ=&y6(sjCt!1I~v*c&N$ZHv(d=%WAE-fWiuFSF5 zi9j}^Uj*l?ssJ+z!U09C6c76zCUT}D_3iaPj>0!-w~{>ogF5H*qWoMPA)UIH(EIJ? z*}cQJ$ZE6C&Bs=pL^nJwxt#WAwt}BalE3>V@7nodtzQThcv|8B&|Gotp_6i;=ka)U z11Y^qc-Qeo_Ln}B(IHl0%zGB1YaT=kEQT(Y9G|cHF?YIZM4GxnU}o>5(H;G~8qu{+ zKDWDFe8YNdOXsU`wbK#?gK=22X_azK3eDF5tv{flr^I3MxW#qGnJiXA8Gc(byy#8N8QmBJ^uV>TDR%}8Xe0q4yNXk{X; z$*vgnytVq{GUMY3<#wRVq1%_Wbq>7)4OBX9tyGF?)r#4zyetLwE^u(fe3<^=aLjXK zL=7JaiDM|up+|MP-mtmX%#?{;{R07x%?63m5|ml)=4ky80&t2lUrf0XPPIB*k%w;C zpam+VeSe->P>fUqfwYE(Vq&=OEeRtP$UyytJw>Kipct~zImwNjhLS{Y0-_o>7HBiFNsqN z!zcn4DCOJP%_pLOnZWlBez!PgU}z{16BFYCo}AvE#1cJTYv?cPt!`gzHJGD@QV9hy zU=RX6u@=-O!E?9w_eX&c(n~{kiMoKXDuE`%wN^gvm*_fz|Ur7H)^2jmo)$NaH70D_k zira$f5y!`K_ID#}1FPXZ%J;Gg@rRaP!lMScCA}$Alrhi0dvFjC5XFcBZ}ZAC(JNJb z^Zq^b5lfO3}jDd?x`a+e|^*pgS$aK5->~GB%&=FKr}$UM3Kb%UuHMAVcY8&blfb#0O+f<&A+l zWCzaNv=1O{2An26ZCU0HVfUAd+JCcC(L4k4NzQfum z4w_s(8kmiRqgjmqe!%}5$*oGbK9?KS}8g}2ZPyK2$R=Vkv2R8Hd&*OZ8YtB zdTt*UyV%bWj0vDZL+l)=(JSIDGytUmB7VXb6AhwmQc6l}MTJ-)G+5erF)Q5e)vE!r z)PCd(N5`iCPoxwbSbzekz18TfQ=XUf`Un$+s>Tih$ALklnQqvFoj^aH6QqARn#7tm@l}C%=RffW4Ihj^xyWi135@0NmBwCsrI0DWZege z8?3Da-{(+z3|g*oBhgZTRu_*5u~u+8NH5MhwHzi+JKy1G z78Vf!XngYQI)1n?2b0F8EcqudkVaFQYy!eVWslSeUTf{_(Jaog3*8EXhr`NbozX) z&jtflP-xjlXG&r}>=DD;k`z#4w`$2%F3ZwJ*iDTVeg6D;N-WD1qzItm(r6{0QeT1g zM#l)`M*afMo(esi7#ln9=2~RDM8d@Z@`T_&=_x@T?vpv&LVCKXFuvU?FCi|zF#@bd z)@!Z#u(MMwBQ9(q&HrgF`IjfJioiJ1H6bS0g!YI0F|z#g=Zl5-(*$qFNKm#Pw^e@d z;K7qDt(+W7U^4r&k+knVaFE_<_-J-H;b_Gr`K3@aD1B&MW`66$xgURqWxT>a6c7s! z`uci8$2pzlD0CD2)bSNC+8vF)+q0E@@-gG%hSKZ5Sn%85P{r6-LyPZQFVVw0Q=aHt z#dr^^Nh35ekAOk>*9!$y_GTWxypfci-gn_}C4#b*IV=Uv<$!B4y+2(B;+$wP8oF@m z$=6Jt`ddHgt!ho3$zw0vF!;gwE`IqH;Fx zaod>&Mcnv{%E%X}bA)?A6b9rGQ-N)#a;)`!$=MHq>JzD`_ z3_X!9Z6e!^S6LuVL!Wz;V)uF;oEH?p!v|fPgm9j>rJF`;9sB2p z(^nNFiJ{O%0 zyV;J0#K}a_UaA@jVVygrbt?1?a_yXLs zMId2A8WNpArpXv|0G0hytM2)e2aoqsc^`f9aqv^s>WB?fkLdafT~JMjas2R25LsRn z?^AvR`96BQS4< zkI;V4`86Eozpc&$^qUfhrQZ+x%zG1FDS4ig@e^x%@wWKiWr~N7k9RAaVG%akCi%xB zl9N8G0ouK+82?Ac$7ZH-ed2^#1=2$XDwR3qw^q-*38)WC3zz$JSPk{>9^I6I$>vC? zDUc!p)+(eK@-@b)23n=Aw$DuE`JeLae)_raxa&vGy`A*FZuXN?5~2^|-%6dmpY*%L zU@vQJudh~Nz52(NNDT}Y65_XqE?v~%7qVix;^#U$_(q+yKvi+P?g-{Bj~{gCwXPtB z>(BgyB_+&p@t4^**Nf=t4g6zn^B2Hmv`;QBXX-zlwvEO%(~e7C#XcDpXuM1e$F#FHG`&;`ly?O+tl+gyU-tmaHk*GsK82!?4Vs7C1G8`8n+4^sDqo4v-vfCmq|ZbjW&p0kAi~layuG z^4mA>dOic9BuSExeHr^&Bq3P_gCPksmc-0p%*^l1 z{e7P2kKerHHp@M8&Gk8-v%KH$b1pv=GApryLVY1upD`(A%hbbQe)?s^|Lq(&Hly2B z5s&?kdbnD2`8iO z(!v_~Hsq`_^7RjGL=#^l5@Y@CO}h${qlz>(7!pnjIjd66mjCsq()(QJ&&YPv?lusV zD7OeQ-$XJ~IWbZL0Ih#T8*Q69C>7~eRp#TmQs>j}x!+?dr+a3M&VtAfZp|00UZ8r6 zlu0H!d!)kuM}naqsj&8VG&|?|_u-zuVXI&vh&Eklnns@POt{ChNpN z$V+l+MaOgmw}O1}r%DAi&Is&2V=jH=*`Y4k+^&3cHI zUFqD#b-u>sJ7!@9i9HQUuKN`#UYom&lV<2c(F~i@C;who#?j^oA`r9!f}v zzwT4A|4P?0S^krY_xW_5!JqfNV`5?N4xg#Hjuss7M$+Dcz%Gm+W=p!r-lF^Ct6EWlWAc~lyGA_rrno}lGTlpG>wPj% z74*81KKgk5cRx4kd%z8qM*0!;Oh&i+8;u|q@@!Vz>{y^nS>pLVtq;kAdq&0wkBcCt z=|8@Wk`;#;OG|{kGVSl&l?sZ>u}QQ8$9FWdMxnyBC5Eur%HEc5ghvYt3&=U`O#LjgVc)bo z{w3fE%9@%afSMU@LUewusPR4#Jwe{?1JKK9HMNJqnh7A91laf2kCw9+h^lXL+q1*O z7cdP;OQS(Je&xztp_rYff-Yt((OO$~e*3CdKFM;oA$5$eudk(`%wq1=p5@;YZj%xd zAHNf{Pg%vqe5a68r!L$p0qSjjCAg%bf?bOJUEeL5)(=a53LgWjb1}9pDk_RaR5O^r z@7C^lf04LzdQ{HxP)NZ}(>gt*n0& zi%P9Eia1k(b16YKe#k{?1}(9QH0}NofEYPurocPqA(mVO%3RiEm*u9gEcA59hj!>ZB-;b>=v2YOkjMm)%#B-{x`{{8og3hV#-48D7o5utD<{=AEHn$h*Zz`dO}1mN7lqPzs-S#EUbn;1gmE%|dS zU=8F%1gWu<$8c(Pb8R~)u;WI#&8NabsbquO-1uLscXyz`)L~>x$FE<~?v)~AUaIe3 z7;BUVKGzEGx>XSBQQTs&^(J|jfk;I;mTRivywSmMX z>RX$26}92H1ne=@BJGx^|9Mw6n!jp6i&z?q*_^)I*RZzY&{f!r4tFs8>&mE8 z3@_KgCyMPqKUh}b|2F?`KfNA<)eazh2~}MPbiwcJZdI7u%l1zHLiOU+*nsv7o0ETNU{Mc(&+@J)Mqh!MfHOgolUsT4SdBW z%&a5*ZJ`Tt#q_)!rH>WS7sfu3H;)w@GoB5pTMZbn&e~tHPxA{H-UkA%O^0eKw^zgE z*9MlbSx4K#^=VJOfAMv8^{IL5R5i`fyL;>zaX+!Fq0l~zbsrD=d71PiXzqAXV~6n8 z*ztnRfXS!04mR!TJHr`8CI@O#GP-{?SgUeRURsjZyl6{SE;C|JT=KpGRQH@ zv#c1rVwpNiEN+lz`af`f0PbU=ePjmQl_8Y9=yFA!_&1DsZvM_vRw~U%FCd#tAu+vY zLISU6z=0%AfjD+p_orPmW(9*)b`!(9a_{s1TFbg0`?|lUOl&<`?$lJpgi#Un7fPJY=mUaXV`9Ukfo5jzrQAhuBTi)__TMnvWY%X zkAw&c$=fw2AG7A?WQP)1!O6>u7h7b1_Jr`j=4iodwY#j$P4wuCw3U_BlYqt%F`YoW z3Jm5fXB1$vaITpgU`yxo!<9po3N`F1XQfj6kG_hzt8Qdu;=SJ|69S+6?FFy0SX($! z<2w+DvnD)0_=yh$6rA=}Qap_`v8+U?Z6t|WcTy=p4}cQ*YLa+j-OSLr4$!c*Rp*z)fGp& zW=>j8x-t|8qf~zANWL2Ey>ZezxBs@B{BZ+&#|t>NH%moJLA;6Ld&lj^mzC=5+#>cg z=EZ^gv5kLb9|76I6U#c93VoW`qJ71ZcDQpA;jW1v{vP!pdHp1PU?*BzTR-+zLm$&txjHBn>*@}{fAnE z4>3VCo5HY-E$H8P!hQn$Y>KOA2(Q6WrXNjCM)tsBvQaDf*fzq&nE^nd2rb1j**R^> z<#bBa(f(TU+<*n8ptw;l%Pf+g6}FgoA_r>HUwz77y;6r>U`2|c;@vxmOw<3FR`K0> zb(v!;ijq#l+ZX6W_oGe#;ME4?$kmh>HV)p`2^X?I+743eO;W2in{T2{DBayGAd`Ym!3Bi!r8K3$493O0RxK)>{z%S?$w@56j3zPH(z1=Dd+7 zpm4tHmxftfDIzn36N_(!EgdDC9dc?EK22W#^z>U-3Gm>qGIjro>~%_{6^)n1d27P zd0tmC((J?<{qyh7R1`mNZ2aPV<3;!E?1pKYhdfogWMji3LnTY`mdKn0e>+qVmn>!X zSjr;F7)an!Qc@-Y)kObpgpayg%_v0kqC!w`p!-RX-_vAwez z7KK)L2M31-t~MVRa5UO32{3qwH}oRKTcb~WKqan_w-n8v@{gM!xvMo!!m+Abn>ezmi$%%?-)VlJR7(|E{|bzbH7Pk?P%e z402~kvY8pjI0dXY?p*8e8UA;DMzuz%$cBQzc9jRMX6EVG0 zAjFkX8dN|0Br$pRklp9tUX4G)8`|k(a#Z~U>QTX1~5_P6< zT3A$gcbd`mm0(fGW?=Bd*PG>#&piBc{X$^tvcEdfJ~n>J@Yu(lk-Z4L#*!NSBPYml zSxnzCbRMU`OfP(EkWVy8lzoQ%br%;lc#nr2(=T7WYF%4Xg3}E>qm{9}-@Y$AVUIju z`cmuPzLJfX7S6eCQ@UAZ%|Cw%3=Iuc$vwup*1bKvH(puGQJ)6sb46t(mfUm6hEGdOEJdVL?;~rq|5IH|(X-(5Pk#eRjEWi{@B(PI&+R`*D(! zUWp-s_P4s*->!zN|JkqbxSfcJjV}z}S%UTA(G3uL3J2NYzdo41*^JEyMs45ZnBZ_) z@N+{>5dzcaBI~dh$oIXX@x{y##}(6>2AUP-DFHnoWN~VtYe$$5CXjiLlg8ySK#8}+ z<(fdwh@0|RHFk7 z>dY+#qZ=w?Bgr$l2=kejoMOx8i6>2fn6sk=6~IV9)Dq4aG!S7%|f!wJ&E(2QPUj> z+*0giBXZC@v@(vY+B*}DylkL`UPCjurJznu>bybV_=U_ZEPOV^qw{85PPGt8tLQx?s3ly zm-*wYx?`c{Nc>#iNz%*SQ5>xN=V}FmQ*i8`sd9zkZR3i<68pX!@ z(3#K*{J&;w$LFwnepE74?Z0Ep_#@grX16@s2L*totYY|qcOB;1nc#tCt*}<{5i#l~ zPnNm0siJOq-w~>%eA%3+^Ns_6=iFc!A!eZOvaz|n2DIpMUOb>Ef1}XQB`$7BDJ)?$rl()%`-d`n+oJ zIq`|30$(`}Nk-F-yf5_i+kr> zQr{kCu|`6pU(?p>HK{8hAsgRbSms{4+~jW4PAsSe>)6-O9ptz1%`!sXR%@>`^EO(? zUfrp?_SMG5zNWsaifrlTHk%C2Nifln7V~9WO=;ro*gIq&B`-3p4a^JBmkf@c@_$+ z!}SusR+3W^;~qAq`EJ73H9*8J6z+?SZ`B^B{BWe ziln%|oxE0CpEueW-F0D7ml4^g@qUmrzcK`3QA>d5P@02}Hv4X^<&hC`U^Yo;uh8$! zO?75UsYAyzq_X>tK%7BM&JADA?rj21{qbG~%)kNp;B^*m^B_*4#9~Qt$Cm%n+vM(3 zJIA@*bhH)j=5K7&-p`Heyv@TK=mI5Q2SB~oeMKaU&<7C^Rj7*S<)ha05vq%klSr;f z!^4%8`AtN42%-?BfF-%_O*8M zPz#DeZ5V!+#Jx{@ZxMq!&hv4B#2~FA$xW2jWhBlpRpHXnLr`<`ifJBX;-@VK&Zvnd z*canHMEkM1uJWm8l|%}4_$YkKs{b@!r)4AoB5VoM8lONq{l3KD7~ zmGp>fG?jh2d7I=_qlBzM5{qQUCG2v|MYZc&JDn5;y}tV>WYovgN){-8iYss3+T9~ zA-j}nthh&)S$GSe08<}gYmV#e{yPuO`lLByZusUpdGn4!tG1Ag`mY5s@8&=C$iMk* z9~IMH-Y2RS;a7?xz)`#OG7z|DSd0xDobet1XjQ;rnDg`Qa}tZwd_fM95BHD3{eTIU zvo6)Q(-8`G^+#PX#ngCUd*n>=jKXV^*_|Yes|`n3ZP**7E6DLuvZ)s)%$#PQXW6c< zp&mbuM!^yx7H}7(8-GY7j;?P}8P$y|B&6q$%Y~Qq??YHC%gBKw!yJKn2XDiU9~WnZ zPmVl!VJ@9va@HWuw(tRf!)l_u2hNz4|AjAnZlpsp=UkqpUZK_5urLiflhh%_8-6xv zMlw+N?c$0d>}N!#;hO5pHbO z+_MNnmIqbho+6jp1%M3-;FF38@~cmsAbqqfxFUD_H~>Fj`j9<2J3F($c(Asqwpc|q zHGrR^p!-!V+6CKg@mx7%aa0)!m$CW~!B{?t3#C`1duPu=NSK_I1mta7F_t^CH?}R7 zZ`nP9ss_n2U^FFFRS(SbkZ3v`?eFg|Day-K=7e#oLTVBF;K9?*8&IPHq#d7-kPv#{ ztH~_7gBof0;Te*vr|NVnm@7ul?OEP${Nh@zIKax~4A3s0inqUw|GbGZliPy?W15=g zN&RURYr&e!I7Ec4)Z3lup?17&9Joxgnk5DTv*6+FjdXnb#&xenk_p&Dvcjy=!)TDB zJkDfn%?gW)UjPhNHkq~LGzYkggd!y|kM&q^bqDpW0Fna9>@9I`eW^ge!Ofops_emSHvS2HeMw8VQw3_8|vB6q@N6iesPF zDs$tP0vi)HWy4ot%$|HI@d1|D;GVCIIyfYVxbWe($HuaF>}>bHtZdnBkmp}-TPSYy z=`j65kmqFJYy(%ufVV}a7En4lV2xMSEy3XAy3}vwYx`(~m&*~~!lRGB{7O$Ya5dWI zBE!tfRIfx>RAN<;A=fN3)DO+yePY_<#LeZyuSdH#fk7E`zv9+eR~D3YRDJorzszyL zICe;@nZ?6)j_qIm{wVo+<4X*rW zlIi)ytqLRr(@WGS{L^-hGo|N!&MUu6Y>;h+w{$c_d9Dx+rfb!EsQV0sRn1_C5yat%Spw7C~!0$1&Ddn%(MP5q~zurxqBu>9HDa zRLKlweO)ObL78thunR8CFm@a@VDET&3I~V`QtcvdRD#_CYV2D3`{!D}&BffvJ*UQ{ zUe?loVzVr2?8Gg^d}Ii0=^5UT@*0P&{|T&#A)ue%D!Wo|I1nJA7JRYV-m9-4#|@=Z z*X*jdd_?7%X{|e3dS-FBHeQDs-dNsuaZM+`=U8TM(9rBEt$eB1k+69z`PkB2us`!ctEBFmmtp_-y{l`C=*f8jdS_C+gP?5kw?Eq{ zU!#s^`fXA-&*xd5RN)Pq8(KiT?Jb+H0DVzX5(yJXpxI#xlI=aHC;qy5@)#z@0h-eF ze_aaBHhTxQh`dw4eF4Gb_^jNoTmS_ZmYK=vO1&}dqL&LaSh#i~z#Z^ASko)tU+Xt< zerXp$zdNc^5e7RM072!_KLs4wJM+9r2x`L^ZwV{J+M4;%ma;L-wDTO~ChnE5s(4G7 z&?3_cduL1GDkuJdfqI-#=6UR0WhcOvuVK7y<5hzo3`i$M;uasY-PLG(bm5&ItT~8~ zk1Gb$jWgdId_I$6xlukM<~W-`VaaXHy_p+i7ZK}TCL<&y)`(0nYP)TfN?d&vUM|UwM zs^cs#xL$#B|EWRFB!zmpVDJYH$J~r?%mg{dTmlh1p;@*N!*y$japQ zKR+!al9&CFrLk?V)k)WBn4|8zmYgbzryEX7xJv|!P-3hzDaCif|IXj+$b7{n$nsvx z=MK-55xZ0ARUTl>Wc@9g1~+Pz|73Xj8y&5Rf zC*jVaJ~+%;&V4{*9T`eYZ^$(f+5NXrTZOGl7gxcJ7-%FiKB6r(h>bNjvPfu2_6 zCE^~!a(kB`aYtNa`7tx#$_@352e1VF^Pdtg zW7U9!uq*nL?(w0vsfru-ZzDWnUy6yj0kCW?z?W3oc7H80t@0y~EPkzKBJx-)7TLuc zOOz757fOI(FXqDtTQm69<{v{{0Wih-y_u9n`48iuh#W#%NOH2htiJXV{5qobSeKFz+Cm>Wr_=HI5!yU`pCtWH}&)M z*VDwYzB+3rz_ZN+F8LEuddujJ(5r}z+suc88mL+A&c6HH3-X#f=`LkedA1srsU21O z7tUC?2)nuO_!#$e`AnK{y6wN%bPq)=fWm zZfe8W@$ly*n{&Fk%fa~o z#fdRn(U+X_^MQ5o0eT}NY-u;C=W)jQRO5hqX_}kv*=8pWT5_f$!2J~rRtymr7tc37 z^;U1O>i*fpsPxzis}iG^h1MyM7bayJ4(1Pe{EY*^ON zAQsUO@e4ExKc`oKO}#zNw?}K@L2NoED2*$dvDHhr1E&s*VJnfOXAlRJw+jc$;|uSu z6S}$wwRw>#{z9Iqvsq>lnciUhKZz?#!MuT6q$IA_VBzPKL?XfFOu3pUTA8m&+LFRcBV4{d)6S#tQUhP36`Ao&R{#9)>3GC6tA zV&$Gng;qf7yULtw_CgFA;#CXqw+Q$f1IQ2)WVd#+?s8zO7ccgyv0LAo%`^<4HaHZM z4=4&${sc%|8Z`AKrKK!gWj??11TRP|YiIV}I9(`C5W@{{H-dcDsbb=O@b31D=Mq0G zsyF!uMd#%t%ib_YNCVyhjY|izR31DjT!_B&$&+yLV^~z=dPh%!iSx{?xw;_p=^_xZkmev^*;ujtVf zH>JJhOg1=gNVC&Ee5X>xPF@IfF_GP3rLk?!$4SUiDxui|uFjNfFq$%z(lxW`>HQlx zGzlJ{3YzErf#5ul*^6bfsT6w&-0TpCm$%RB;?vTY= z3VoReH1JoV9FOtU`sfVQ&uI$CGU2489o&z(%WMl<7X#afq#-_CbJ=9zYbpX|<}_>P zybRrbmL<2mm1iQAx{@fU7a=KFTU%=`lY>wMUjT&yrWkRr83*q7kMC(vs@(-eQCjB> zra*0bBgN%-sSJ|>B89H}UOCLvCIH9DSEh4BI<#KXhvPLD-Y6g^?Gx$5Ks`V6c(e!u zjSgKiz7dE&tasQt`Qz=GB%1(r^g=bT55qe3j!bA8G&kUjv&yqAE*`Cn@kW~euoPYI zdx=t+#Xt|u%+&sp5HpZ8Sm~_8jJLgBn7S|7((m+J*n*l_(#IWSG=3Uk!}t?hh5wJ} zZ|M7RkSGxhQO42UiRK(*o9(p&H9FeT(xGcwmMH7z%C~*;Dfvr0ThQGogU;y_dqn;yl40`K3LC!Wuiz!Vq$cUxLYufdr8 z2gAXycUt#Slf+mEOeilIsS#h(>46+GAT;>a)rB4(@$OBTj?2%LcO`b*+3D6bmF4^( z?;JGF5B~ajowjP~=$*OJ>ll{TIDfaIOa)He#J`wun%0p?K4D~e#E>L$lZQ2^J{dnQ zWZm=>=vf%1s1I-hC^nvT9z>mD835JElP}i+1ON);n*1qb&*!|q#{c0JP_AzV`zJcX zJX2m?UavGt@!*5l2N~*ja9?JpN%}pL&2Lu@>mDOo7v|g9+SX2Qfm$(G%c0O^q$tqa zTLBP_(vXWEo{=^Z&%3lQGpvR%*s4>?307EdQMP5IeEJp)-Kl4uLo%6sJt9IZBO{|a z03q&8(7gM3*rix8^4pBBu$I#3vrTiaHwy$p>*(k!vZTk|+m{0a1Fu68hLZfe==(vh z+D<#DgJ^n!UrB`#R@&I9SW&BudhsnsBER1uky4RY8&--w*8YRAIbuh)Ciou_-V}RY zNwK9_J;_QYEf(t#XbQV|_Ju9p=4nEeBT{yaPgBheE*=GbaVaeHsp7(s$n=c#WRRu- zk!^0kR2-F;_h037v|UQEVy_!T%G4yK;Y0pwsJQQ5Wf{80JOw5Kfa1|kKHE~Z1>#+q9IAOZNfB90YyzwZR0$yegi03$ zUP;YoGBQc%9gxh9`+EU>M&8#IHJ~ePX=h0oaC6=t2!|~$&HL8SuT5{58z5@C=@Ei1 zUvHe!*`>Ezq_^0r0J$X{eKh3}qiRJn6H95DFRDu=8Xm<#wVuS+5_5ejR_|ea`>Jsd zi`E-tZ|dHh7XrZfjgOC4qiO2kV#BpFllVV@GD?mcghcTDAnsfsUQ3AqsVbmP7+n0+ zlymTyc%jP?>ul%sUtihrKxohqyO#9rm)lXL3!4pfrQIqFui_a{Tt z-_V9@J*nm*Bb?u7{7CT%QtZ+E$c6jG?WG_4WmKd0w@Ea6pelrj>7r)~h^h~CB1cfS z6oynmlQ)zJC?%?@9?RS*M-P$tma+8Fez|Z9BM<5y?hu=T!MDC8PA48Zomg)s1&P9j zm%;&x{rzV79Aqa@nt|K~x_XmPyt*!w)KZieT3 z^x12u+*&+HDnZY|3%(CvJXAXV0ilt$vQfPj+Mu(zL@0{g3BoO%qsa!vuQ*$neDMB` z_gx@C0mbW)-CV%pLTad^_3!hp11*Nxj$8kPbne#J6|0N#R*!puws&#=nVRsW<@-^S zh~vcaMqQzq+!jB|y>b*C@TP6*B@0TB<)VBhmD;{)G`7@mGR2_s-y_@%eF5EzJ2Y2> zn$$ZBg4QSgnQR!gYAAJ$WZ0zG5tBD+BhOHO20JI6 zJ~?0jzf@*5;C-Hwkukq=!*9eme=oCD}O$Qm=WxuNH<_wjkq{#{Mk2I2CS(x#cCrq*BW$%F*4LLnM6n>l*OQtgAq z$+UBFdkc_h3;9%Ly^k@kEd;UU-p5l=>#lqmRJc)N*Unt!=05^&q2D-8N~|R5>y_f-Bq{u`UeCBFzDY1-%KlnI3`y&(6!H3gVOuwKf{iNnam79 zKwt&4@PQzL*uXn(y3ZdrH&`Q)Y4pnZJENH>+&0Y*XOHZuP5a}cc5_RcaeEK@D?+F{ z5C!y{2vI_X$$u~SXcgn2hdkWe^iJ&$DBR;>HXv$QNN~1L#&8GQik+)$b*SzZ$IPyc z>vej+f<*80bwz;UAW?29lY&(E$=#4W{>u|ml4vsq7vBBDO>*4rY5 z56($P*?O*CWrt`5GgL@E=d2@8)$8ex|D}0r9Y9TP#uNVm^wO>qX$%ryAZNb-Zu1^X zJYQ)W!_PY9Q+l;(h6SB#M<^l9Hf}V$RC67Ujw~Q6~2(zvp zgi;~xW0usg zD~s}apB9OMs}{fB4X5)&-%^BvyW1AwTCx5{)J4c7n74sj%wz+EIpTJt?=BsAR|>pK z^6^j>-%@&{N}t;aPQWRj#GGs{4pK@0&V~hp>PH!4jp*=MmFzxM%Rc z_k`b+-tV=>|1Zty*qz$K$?_fpWThAj@=m`U+9S%`ZQ$o0^d597UcJ`-&P9_Dnm&kI zwCx5X3E5B;nkh`X_V1TB-FssNpm^|PlzTO({8$)fHY??r|@UmTFR{BK~Y6@=pSWNcilL3?T?Nq*ZvHK6*7qD zF4mCb)I*B&A$@yg^sgaY%p)SOE*q{Ec43bVDJQo1p3B% zI{ZGEm=KTr8ZPb51Sv)RblY1KS)RJ|n|^C0O92@`D%no3-6@l4+9VtUo?2Se;f$~6 zPQdY6j^SzY+sVruD4qp8UnV{gEWa=@YCYWUgW!$@;^LRDf~JzG-O}lul9^r3TmM|w z$W|y6tg?VFw&R)6AtwKOLin5{e`GIZ5Ap_0w&4+1i-e>ds?fQG3l>w?4hozJ3sQxT z=-B+mb+gE^W9vH)C>JZnyy^xkuham#4KhIZ0gM|iLaWip|I?<)P99_}tiwE0z)mtX zBMtNqKab`SWFc9GqH?sOq@-FBbiYvBzkgxom!)@U{8dBy932_MU2R$+P5hoklpicM z^7O5YBE>|Qk|C73moYdEeRlA{D31rtj}0F)+~0xrAKfP22x?5}q>GZ;5>3wUv`h9i z1_TEFQPAp3c&mh2=hp%cAW`2Y*!9q*7+=g&VaxG$RA0h0GKIp zfZ5w)K~imMKRgMF29Xd}4@{}+yT+dj=PzbVEX9YY5=YZM-m%WJav1qf<1f1My3l3xMlF!Xa3#2b8%kyt z)ZW=YW|jH2;`a;g6!_i@U9C!abpCxK{ZCUJ@M-2d<}JB&7$c$xpeK4QPlp#xPV6|k zx}gaSGqbS*IUU4nUGyH9mnjOhR7o`!0)W$r>U38O0GptYds%}P178EEy{ElB$}6Z9 zl6zQM02HCr|DR|XWM3dD_*C$FFS+QH(`qTEw6t_a6PkuVN(qDh#>`@)sbt7?G# zVM2Y&6lh!l5ag}dkugP?aS(}UI6U^>ZW@S-*tlD)a6YgL&bqHp2{i#b$<&nq6E<4= zG^(4zawWHvKIw!>T9i0C!!5hcYR1?4{)NI^(N2%;X8AIap`32gTda|3BWWIPZf;(l zp2w?U&Kyz-%1orNH_jwJU_gy&J`mGw7TKEr_#GE_ye-l?UolSho>uc8l90%3bP;vu zk#S&4A5?=T5Kl-NEY}0(F->1`@btY<4Z%+;nu-hM{P3J>%<^yU$9_I@JV}!6a+k5S zUqP8w0rXV>MhC3Bl;c-J`>xB=E6JN;JKrMo2ifK$;IM)X^k;CSsKv~OwM3k1^8z2a zedEU!22)%Da_jMvv*g2XMp6CB4}iLz>L@@>2G;1D6=p^Kyogo6*06UtAaz~Fa$hW? z^ru5)-1S>`W$9J7Z`R&%D@)tls(W43%RgGrIQ4Y^Uc4I^+5cWVwnRr%nRAu6_p~Yx zVePMt{M-DuJ5u#k(1p35>u1^qI8IEG!=7&P+d6LMO#~@5FqFdJ>lC%W>(bd;U!H+c z*MB>Z6(R8PU>0iVU+=#{$k@%ZW5>}eD5Z@rLhINyw|^7|v@7-vH)D&j<#t-UF&eH1 zuBV;Y^G5uJib@Fryl`3lF@}?cI6@K6|eom8` zXMClA7pb_jN(+R{C7-v1-iY=rj)F?5<-HBIyc{pNCC9xeUm!4%ZBV*+tQ(mHKDSBbGIHzI+^?}QWb72EaC34F0iIy5 zblEY+3$8AJIP2&@P2eU-8YB`Qg%QJhySug6P{Kpj*R*B_0&~0OcgNRtREN775Uy?y zfn-G>cgaJobat0|TP`yXsacQFc;iOKp+T6Xhh4OGQCn$GI_`&F7(UXIQD??5--NAG zt@+W7#~d-(BL6zi8Ozo?oTAzLz2~c86YaQ(Hf_x-)x+Sp&Ni>ud$2q}F=;dw#S$Wk zgarY}9)(AAq?us4c4n-r4WC~!<^7O4Zh4Z~L-S#RJ^j$~ho5eP^HaX+F`<*H>3sGJ zR5f!yG_%v{aaP0=b>;2Gi8y+Ph{n?~M4sX%Gb<^Oz=`Ri*|>1L$lHuR^L(C`S!p{> zTlTHhK6RR7%Is?O>!Or#M&Wx0`~W6_&@lPjR6)3)5Y5LMc!${uae-Y zN>jiy3|F=c6`XH|iU5y5S}Frx0;Q|_uyI0L(T}En;evi?`qX~ZR%a%yW)4|c{L(%u zBJJrpeAOoEEN8H$_|+VNXjiG-ye`f+x3|Ue-X0OMmrrf`Jy>vSdH#%?$QRI^zXOf} z5_2IkA6lK#aY;3tQ`Ad%Qx^*uTZUUbeQjt={O>^i6vEK-dIu zfy|aY?M$q>^-<7uBkCEzXTt`%dhOa-0ObMU@0dO#^Ssa2F+K~thS?Fx43oApIUeA= zoK6Y%M=%N^76U4RIFBBZ>&iz~i|e?T9P0M{XxM*`PkZa5xSDb!J$-EFy$B?|aEwxx zPlJS!TM(y{=TFcHX_&}VuKP|T(dCj&Xom$!pvpnyM>Qs4xQzU(kHt(A{gDaPpZo2CIk$V-Xq9##{a! z3Z|QAtz9--+)vlz^aQ{se7#SM+IV|xU08Hsh%EEb+%b$=&_J@V|4=754U0bsl|tSd zAF`^G;C>gfNPZP;38wgUe18_YiE)K#OXXc-U|Y3kQG3FbhDMgc$6Wy1FRnTn{v`T< zUVPiW4y!(qvMFVV#(?bWI1tRZXj@0 zRh#8iT!(cVp?%#9IOQ>;td8Y1i zlMQF}_=ft&x4^Z+!A>-MygPhf%6=(;R!fXM>wFi%h~Q%G*L8~fr+o}k$QSJSOyl!t zN^&7^zRyqKY6cM&X)rb&W&;?$4kkRj6~HkTmz%&DfD4HD%LT%Mzs)RmTQdqvn~lDt ze}_(&AdI4*sPnD6R@VG_v+QJ@fB$uchOG7O^drBSu>wf?Iee3Zxq)c#uN~|4jrIkI zg47IT*C*$dHXp>6)>g1%I_^&&HsQ*khSfP{nQ`{gm$=`-s&%cd3Tyjw#)ONPt9mUE zw4(-3Cc@y*aQbR5#%|edR_8e+_)L1$^5=L}S=qgF(m>n+;tX;VXvQRr`^ZKbfpc>!GV~s@EU^o+vQ068O+Im|Cq}N>;R1*0FicefjdDk7B&vkN>#aE`J_)Dsfy5UlZ|65+i8Py&$>EOiU(R*cU3LN7 zf7u(GQGIQR?CRpe?|N@u;rd`%FBE>os*^8Am&1`${?Rr?Gtk45nm);#-Jrd()|&Fym`49?(Li-9N2qSz z`kt@3pAXdII&S<*|7vBPW$iL|Qw|?ISk(aY!c(VybLE>i|g; zKDFxj5Y1ROw8xSOl*FdpV!=zg5c$j*3kr;-)NJ5iLuNCAZa6z<&3MB$L(^9?yVAWI zk2bB=;1%;SVN#hqL1z?^i1>3VGwE<L}nWD@v`j6V7;(`E5~a>$=F zw;TAzh<}bvG)Hjo2jNUa@s^z)lN7+(skR&gZ_j+vz3wQDwCL7tkdGcJH8rX!4 z%@^inaj?eh_gk6P#_iNFd}!k%l09zSHH_Y;_j!~Dqd9J+f=Z0V1$lK)$%}#!yCR80 z{|eXXH0r+`L;>Adv23%MnzNprsQnCPseOx;Kp%nEJx6F*B)KHj?yh$6D@s!7!bmsQD&GIxpI3Ga)EhO9I?<0@A|Fy zkG6&16p#(WkWfZ{AB{@scF_+0tII2)E=nU~nvxy2ehD4KquBeF4#{OL(S0*n@Ch@g zeypX{EiJ1zylgix|7U!Il;)FC^ANv*j4hwbq>j!0j*n5b9mN^L72)2eh4=U3%H0xS zuAZ(){DbhdKK*XD=JvaC%(60YeBhDOut_vY0~Tq?v-=g013&*i*4{my>HdHGCtbO^D5WbZMI8r|)yUKcCNE-+zAJ-)Fa* znc3^L*WvkmJRgty<3vSaldpLPKiC1RD zjbJ&E{a&MNW*=n#U4A~sO+ytMJ#Rfw?&m;en-8IDfhZO?{F?ZXpPd4UxDWoEm`lAxJ)~b(6?0yw){caEZsC=%T*{aIZQ;})-{QT1#aIhUP zQJpNbQPwwH`zF?E+vBC8Vu?@Nb69I^BfIWt&=w0C^gFe&THJkx7wL{ZER!KcadkT# z5|spzR_5O0@{Lx%I}z1DnbsS`wKHInJU{hT6_o2J1BZC~=L5y6H&X-AhwZU{Nk^f}Ae|o#uLV5LX?DyC;nwZjE*ut3%K;{+05vDw z#6`zI$>``@H~34*|MWenZTvRTV%PS5aF#^<*kDuX6Yf^yp5|U$@-j{f<0L}N9k1%_ zxMlm*UVFj!xM*PNt;M5_)&x%sI5cn_<3TK;rRT4xpU+b6sE>#%H$f67`ub->+Y7TF zy~8p{Yd>c#RXKmiXuwrh_I|fNz<7H!`q#}c(40wJV^v(%j~dBei+la28?VIC#Tq|j zycUKLppp5`Z!(r7D>*O?u2aiTCbUui&;BJOf=D0|s^>m!4m^F+yVhs@R!|dc zR#_&`rtU&XiJLigt@iT+!T7TKx~COT$(M(6mxbY<@^MCGakryy9sEAAs=nX%m+=ee zK&u7n_m8XWt_{d z94xz5BbctO4Z2z>R0}|j6qgI1TJAKr#)%SfRR%i}mvJOPP&ANklTIEx5>M6jc0@g2 zMx4cItBx|}IaFj5tFP16agL6Lc+8_WTD%112Tp&e__vRdICS=!j;ZR5($OMWpb3N&Lz36`uoue!R15Ta_vV} zA|-3>Ov4blGfpIb^oFf)%WKo{^ig+RO>u?$B(v2s*^x8*rx}b? zDh^48*y!m9JF+-aMa?XF`4gzILk1@|F`bW1??7|Pfrs{NACz+`o)*-0S-Tw^ie|bK zL<><5;(c^4&PenAcu)zKP*9rhH#za8rd(rA&$CtmYkW*it$RomQ0e1Rcxj^l3TZqf zW^yiR0|zv&JX79AtKFwC1J!etu6Qp3`n8znnYY z6LSUZJ}EJ=kVh!SPiQ|6r;@4?mR1>QoZMx#0^WTeK4L&*(tsbhpssFZ0cXbr4Nksd#&Se;wIT=)7|r|G8MoeB zH>RCZesGsdd$KotjB(B9^bwmrim30|%h!VP{@a%t;j;5lm3-g)w&Y728Dj`sn(Fkn zorj4eAw@v!7C1EBW(C6;-UU2CI^rZDg6&D>iZ8m6a2lISEK_p;B9zBrV}QbeRL#R3 z!Lf&+r(7mo54@@PtoIvMgP!vJ`cEdjZdbw?+j+8pP>F-)IJM){g$|gCHc_KK?7Zv7 z0Q7vDj_n1ngLZkDwxt`xttjh=EPBxxzBHh6V)9Cbd-1w>wg%18(P3RkjoE&Msl8Y> z=1bzS^260FfP*hd%|#RG6&urqKKqAp5E5&!V?zz-n+g_ZQgVKFq)m1dt7ej3qxb7oWMiu3xRN>5=qXEvJ$a>XcRP%eYeFhL5z};3#cMkLo!=#hymH)@E&2 zN%XJu5g+RZmBQY1Fl44q&WBgG7|}#cji<(Y+33@t(tEC>o4sJ1PN0qaXnE!f&qt}M zy`eUo()3gP#dKDndYRGb;lK6Nz%23-%I+@mhG2nCRTbCgKY;C?6fvQ>?jxy7>! zaSKNST|`+aLMS7;d`Ki7nTxH_`q>VQ`g>IjTR0P=A`-xwR~8^$82=|~1u0@WOf*3v zx%qADBQG4E(tX zo8T9sRrXZUiXu+~-*>j7701_Bb0hAJwq0Kx!{fC4(P3eBcc$0(TWnqtC_)fy$Iegm zzd;(-+s}7DpGm!GLk1dc%pg$fmN9VAVBgykh{@=}KwR=OkX|c0p?dJE>v!jgABf~EgMALvEe^+3-)f$EtGJ*Ce5-aq1YukB zJC5%Gg|nXDo=t)Yoh>a{bP|33h`P~=LR0DS=;d?S=+zqo;&#lxKTC&7rYav{!@E;R>m%TTH=Jm_ab}Yb5;a;{-_HVMoxu4>%DshNLhKf zG(0LYY7avz8LXH)Rg?o8=eFEcSpRzLYwR;>hh0ZuTZpl~*&shth%vX3G=d7~f~VHe zz0;OW^Xk7w^8$h|2>eHxV9mXDWT6f9b7Gwk@_K zSTx=t99mrS&6lf17Id&N|N8QDn4u1_}aByjd7ZG{8#VQ++8&Le1^UP8$e-+Pf>Is%Z%-!)^WvI8rt@^;{Q-mH2Ag`75^n_tew#Jyoa@n4BM6{N zNRqsZ$#nA+FVE2}9ejLlrO)%w{;%S5Qg}T4Fi&%j>#2llGp^x9QThl_^q#3^Rtsmz zU0dFE%?b zTL#4Xv5@gNv0e`W%b|+^krc^h_~l1(yPhKGHM>-RDmxs>&;c&sbg}siMysBjirK#_ zZ|sJ^1XYA#Ap2r>0@0Z4KeRG-lfitJK9m~6EogRK^L<9)U%OR?km&4UceFaTq`~I0 z>x_mK%a1+HOmu9VnM*6^%M_Gm-`74C5Wbxv`DO-X@9+PS&OoYEBx$QMK zsDgMUN_v-gSTF{3!IF&kxk2f;xmrqdv*RpsP9ct2I+jG^6@O`u=C81;W`I0Rcj2;L z>`CB|Zn6TyW_z|DL%38FD$0%m9i%|hQ!Rk{V&O9Hj7&mWrKK(2C9W3c`hx^DD&8>t z99Sb>;zPy5?V7tKgKl@KIwsX>7f@&C!X|o9gfN}-pOxNsDW9MB6XHH+-K9=5fXZ5R z=AO>;1Eu3;yWo%wsc)&0C^6O8>1J0cJIKnnA56SESR+1?x$esTkMxBVYSccz#?x;< zdRRL{FFtB>CZ+3Phre{I$?CZy!lql~*_ zjotkKIh?-`bAQy{7H77tm$8H*DVZMHk(j+L(Y*DP2{0n#;vm4dn#Cd&^pQZeoAX9u z<>bkjDv(gu!ef*4#G2w17V-o{ZSe3Gq=+auSrsc*-!3|s?iDYp;OEZ=0XR9Fz#R(h zXvrQPe(!Nld_7k<`7Q6lai4!}jg&Diu#w&-KK+ZDrzsw&s#kxFLE)vT8)&rP33G{Od#Zd3F} zfHjpFv|Ejl^3+iuYvtGn#~osdfUpS&hYD%3cG0!vqbS4T%dO$msAjGt6!gnnQ>GL7P#dE1rzUl!o;1<*a*OW4r5!yI|LlF0ngtJ{@o zHLsPhtQMd@S9X@TU+3$o@+~-9hdL9}N1z9qKj)>WMi{gSeN2b^dY2ID?~hvvoig4} zbAP;KIJ8MR2Q;*)DF*9(zc0^W4A#kytu;QlvN>*O$H6&CP3=se44Q2 z1-GHYj8_P1fS%i^Vy6A*)yt+;^K9*%X3@@IDcmRipUacBv!yuVn!?y8u0gkHZ(@-J zcb`S2

f(Q<{^8u&xRT#{Flh8hdlQM>ig%Zm8E8)4~z(S2qz6oU|P8SV0gjR)6g6 zGaq@gX=k>~%5k-raZAejZ86(z;+(VWSw~K8_7brdk64P>8fbG`B<32>etFjWHsjGB zj`i%nJDhQSb6=uf+2A_iC@AnGJVlbpqki9Fjz{lKSYkmBYd2nA#}t`(+`0W+2-zY} z78%XVQIRAa03y=Gy1p34W$vN3R%||Co7NB8T!EJHr=+CV~ zaY1t+tv?8{NE$6F@?szIYT@)-*!D5VW@0+6()e|JXi4A{OpgG2?=k5HG3($ z=Uh2`(Fzu6@~OSv#4MU$%Hn#go@y^#2ghH=Zz$=iJ?mET zx~_jC0f)&L9h5T^UzuH^aZOk}ZeFC54zlt9$uvP2>}V@-!NmJ;b+%wMVi6JG+1sPc zldH`*zPJiN9?AYmAB&r`08)@Pi8mmE)!;XZ1fC(W^?VDIHR$U#k&&_OpBVjCX}6@G zDTqjthpy(xmlXamL03LzH@?isIFhjN9;JWe2=#&@__7D$M_x}^-u9bfs(0Z-bHa+^ zTPTJHAHzqmzXKe(_Z!tA^-{WHzLYZPoNmS&=&&hr6dR$LW{)-kMDe#361o&jH)oNa z4b7~azW88Za!k4Q>SSg|mg;qZ;VB7;s(_x3I{^R{0?Kh4`%V*Wv9%6Zj?iIKeZ8i2 zJU4XJqz1pX*M8p~35iVm`i4VEm&J_6+%}Tp68G|k$@Gf9$%jITJG2`;>#G5ua!wcj z`-DqoA@O=EAbNiu^_%{iKS?}1 z^WO!?{}*0CVDJA6yZL|Ki`#!r@Bhmon6#RIkoWUg=k#knjJlc-=J)dVvdg~9qX3n+f0Ur4-h*D<|o$Qeuty ztcW>iYPqXArpQgSL;n(d_9@If$#e)h{L8RJVBXx%LMt9Nl(9|s79sYZcASE{G^IOV z8|}X4zOS|6!54S;13Et4!o2Pa<+4EN=z+KaffFT zePO${v?^d@m5BiaeScb2ffP>IqZ_;NAb-i;ShZsI$>4_7)RYv3Qlr6jMO&b|Ob%fa zmDt$#&8^!jW_PzR--CZn^GX&4W~uU`_b&-pae9OC+(-#Yh3*h{U)v&XHNwGwrk<=( z&&T$dsh*t~8w#nmK39aTU{G})aZnjyi%H~k=CE#f_k;c9!|J=FEcVvdGS|GI%DFUA zi0w%#UIHh_nbOSbTweVqCR8%<_Ys!OW9%hv&eM}Zt2^gVBRFKYl_q)akqVv3wP`Y^b5l#yZ~9wPhaz2{n1ZB8{Vp8i1=F_Z;x=f@--MKkLf=a!M}0~C z7cTw&MiUBVGCjV>a!p|mM{#s_=l+#<2|oNp`8yQrdPE%kgP@4>)xMM;)LknuI`GIx zWgNTwa8O#1>y$5af-sKoac(7(SUaaPc%|H@Gw5Jj`1OcUI?HlsUOoD4Os78;bCfsc zkS|l8!xe=yRA$EU5UuJuO_((Uv*hQFd%qt`f=dfI*VER9>lLdfo)nPW3b~G>`2@LT zEVh@U89a3;&SzKHP4x7W zgP_Jrg>bdp%JkP0QaD5OKGc4qtrue?i!`Lt2SZ131J2{ojOz z6!KCFV04!lR~(SY+)@vKQpg>H!W)f_t2IDGXO_~8^)Llx&L6%5ku)|0 zj8LC>NPt|KcA!6xpnIg}LaFIu+yN|8H!lr=QURwg<{Zw5B-hRE85UO38J6U0H6orM zvAb+*!or6VJj4KtPA)G?sn4fW&L4&WC$QM+8clL&2S^O?5fHpVo*dP)+X z0ll#4xGqFXMgPG}bJ*rV4zqEIM}!g^-%}468kXs1L;SXhRoCyYG(5Nf^5iM=1@(_r z`Y@Abm~TkBYmm!-aGl$#72_}i|cFOVBH;9Y#dcq`OB;Ad~bl_%q6(GZ#$UD0k1yLqfo9$w|V=5;)FyvZ|+8 z<u%X2wl+-XI=2|eG>k@j zjdlq>iW@q2zOUJj8?A%7Az~aX9ZOeGWlX!m;gV%TVYNhm4tvt z?(W=jP=L3Z=K>xE`a?$0Av*+IARz0JUPSVN`Q4Wi-J|{@u0q{I>?X0cF0Bwl5JN6x z*EqwbMIH;ubzlL;He>z5E7&uPO6{Rihc=>=Zt~t%pp2JSMY`%mTNvY+fCB9h50`J3 z{@xK9>Fa5qwe!YCGn$Y>IQV?h`h^A>+@q(=5~v51q)6;n3(zzDEj?ts@n+Lsk^GY0 z^oulw3L&i@Ai7y#*|$GQI)$zY+nwzQd#_l(xX=Oqb}IJ7h)=n1AcXEz8&iW~2|ceZ zsjD)B`vIyEvnGc8@5s&esiT7`uKO_s^T6|5F&ky=QwtW>z$3yQGy=@f&@KVA`_h{4 zNYOb!hkeA;*tTx^<;rBk`GV4tfJk5BvEj~JuA1Q6j0U8a^h?|c!)MXc@vnuTMp5oD zWjnkqf*&5gm%KcPt!7}=zZt%#dUhMvqLRZ^UKmK8N`k4W!B#U#Xw$Y^O#WvTG%t!N zd}qChtp41Mi%_aYU2TA{L-S)KUKf`}f*5Xoo;b60ys_6mbMAt4pVuz$#E6F%x&yd8 z-hh{kl$#m1LXrdu29m!>v-MfYxe8jBQ+LLp-%)T%PEAb>qx{;#h};N$QL|m3w&TY( zEeC|fFLsaeoq~q%Gk4sST)ZD1o%Wvs)GaL7SLbJUN;I_7!HDAJvt;9Rfu^jY{N$SR z`17kx`6zby!N{$h4wml-EVTkuRNyE0@a?Hs-!+C9hTE>_VzMmJ<4({Z z3i`D&mC0Zu{Ft0a=Y-3m?P)-gA!>HNw!WDVGCk6_Ywa&C1?k-r^xDx4;kiB}bxp>$ zsuTn2ek>b_2vALuLbL+KiNjE96VS13c`dN*>6C3>)nv+6kv&7g3idI>YD0VzVGVQR z-<3(8K+USKKVh%}v}XEo4jx+S+9?(7stBaBUDX3H0lS{J78hYIa*Zv{`F;DfZFig5 z3BS64+1!pQV@@sqehH5^IeR+xuvjdn*mlp3Rp|0l-&7D0&t3fgyF~p_$#;4Ml=X_hJWt zcMg6?SSW!A@@WX&%0PCc^2l(`d7xwFdprc6eSgzim$DtfvWf#sP-Il3TG6BKmb@QZ zlGO?r(9GnSa^fQ}CL`Z=?c_1adJ`lvGbHnePCjh^7E+#=-gBk$Yp`FPvyVH@T$;~% zvMu3mJ&<2UuYz;*$GWrc=IWCybN3F6pex;>h-bYg?s!jb&kw8jFLl(k8x1<)fkyKyahtkQo7ctE6hdxFN;=TufU;X z5%2U%@yWaHpJK+`SZZ5V*ZPC2nvB2B+NIC3+z5%&Obn zPBbGO<+~%rNl%RytF#~w3zkT&V5wNjJ3{+f?>grF7m3pvu6#5cLejW5GI0S@oy-yv zAWDTRx5C~Mk9?Co7{Q-HNUI|5_N=lgbEG&LXNs}}B+)k}eVzju34y{vo`WZSO`k(W zGhk~@`Mr5~ROL6XDi=CE;+$rcbVzlzzpaya%1;$BOp23 zzx`kdkO6Ak@SaWjBZ7hU75}4KB&nR zao@IIz|=JA9X*PfhyiDM9E^X0+OLknX(`lF|8`i`9$P+5?Nv{FoX z+$vY^Tdks%h5EW7b#L5~D1Cir?vxzfKoZ<4M0D1JQL{$_#zan~SmEjz>G50RTe<6( z?CzL#IqmW|<8?j*eS5otx^_h^k0l$dKuyFpGlhl}Na*WbKiH`=UtN(79kr+)naznD?=&&x;0T%DK%S2 zvc{)MZ>^2@Y%MJuE1GXQ4za4P1iQU&3`NGAjnuYP5RS-^1O(9>jL3CT@V-bWx`?!} zv$+Xm#F3^mQ}C$0OSLbmj}Odmlb@j9E1IaN-s(u+U6%f2rKLsIm0dtidoM;%ypf3{ zVDYYeB;lSwU~|k7A4x-1E-(fig1-jX8cbbv6*HT9B>JCdmg)W>BCkye%mP{mWzq23EOsUWk@fE_`|+z3t4tIuu8?B=xpG-DOu2GeraL=R&VpJ$_z@M2+C%9>FaN- z_x&yV2P>U8y{dhb><0q7%n2T$`0xuZlGh%s1$DH=k1KI*=Oi(o<0bVl#CXZW|Cc9a z$j!cfE232lRf4A{F9e={UDRFnFQWA?og|7y^9$=T=ZHVM`egD$DbX22`r3Sh4PcPiqUn)yk>O{~OOQ!%z`RfA|Z>6AcU=I3jL#R1x*S0P}r?eSNHCw(o z&S=@C?=$#gwo#5C6xOmi%Q@s^AAWBCH#w(=g=3m&stkc%!m>-c>i%%boCSph6aI6I zGr(lBlTNBM28;I}AQi+bthyWS{rep1b#R%nwAR0qqq&FgBSeMmP?!K;B(TlPyD~Kb zxo}D7UH6}|`%X3s^%zTi%vQKER{+~z9Ho70eA#WK2@E~A9mB9~KIhjXX5(#BPo^S; ztBekXrPoSm{E}Sdo+=Yb*|a+$sYsW-IR*#?>*~TjF;EWJKD3-eg%xahojYDq4Eu4n+-a*7mYYekDXVgu=_;|Sn)fK{ zB}BRUi-seb@S&x?E$7Lh$>0duj#@7vv+m!B*f>i0JT@%M((nZ5rJeGLIk-Dv?b&qe z_l4h+m*z^SnpYn9FN6z5!1`>9d#$YGo{4q>#wPH@JSSi7nvMe_1d7W&as-)(_AIIz zdNR?|PZ`=DSK|&}h$>3*3Le(3g3}SRVq-Yakq_K6mx)V7`XzdfDb&3|fEJWL1@}Ci zZSmqjt0683%9J@T?d`ost;`h!w1tpY@jm4TFTY3xVK2VhLHNi3h=_|XWXY(G;(4#M zeyjq|Wt%YsaD)z(w)libWOo}YKJ#?}#`^A{*I`t-UUn^CSVB9b`Y%qUtWZucdoG56 z1lB#Zp>2xSu4c#N%RbHU`$Rs&qh9;>KTHP0OVbTOLYb~QYTmr$4p18U0O;8|aYRLWhk7XT?jr8< zxup^TiL>JRw6t_{4@z+}@L_IGs8A6x=slCTny8K1YC2ORZbh*=5KO9__RGprY+!*y z_4PX#eEV=XWd9Y!T;!%PG=45hyoTY|e=(ST$fO4pqJC1EfafPftr+`ZiHYQAZ2MHF zGH6;OhB_b^@ed?eW}_DcDuOmR39+>=FL=nfk8Po@qM%hIt<3dY1{QjT%D-ITWOii( z@MHN_g+Ib8VW2k|OWyL0uBajA$gkPaWOwTRa|4O4+P}Mmh2j@n;yk6;j?|g$hd@q8K98r+bNUu7R4jz zRm<^gsb!z_&(`)VBd7`YgP=4k9&b#$C8c$^?5j3)gVoR;o_}{v|TO7$E z*p8@`@{d{MELsAa=f#iDAm-r42R696&7?K2m#((h)xBIdGxEn^iJZ7hg^g=(GaX4v z#JogE9@z0;Mq_ESKkThf=MquuwT+nbJi>6()(Yo+Ku|K*R#LVw?5o-PBM9yOWNu*olCzcCzc#sO0qheQg%}!6E+G(`V_p=AEMhEw`1RRt3 zEw;;n@`cj>WJQ_z2|VQk+Lsbb==k`93AZwTY6!y!MZR|nz|9Ne6!DIXGfxX=NuA|a zXu{LiVzQhY>^>sxY9AR(PCw*y3?dMs@G&>WctQuP{lP22X!dg-)M4%J4Cq!*h;yF> zu7adz$z#;wGViAUr4tJ`lyPk`meHR^s#f5CZ<;xDhLx*$xj-iqDJL|Wth$R5l^lC* z-?Rc;y}p7w_+nwzq%d%9xjbCIu4h{W;(+8-1S?D4-myi+X#FoUp3ODpyxKZK_dGC3bbuK@Zsv@E#5s?bjcCY?SIN@8;3ZpOI&k;$I4VHP` z>_3kL@X5R>Xi84_n@X42tjTbzPZ_3~7^t?i?Lb{K%&3oemb7;>_zSQ6uD^yxc7E~HG?_nxzyuwQ>_5!|IT#7g+8O{6$f$f zMY@yuqTv~w_w2)gW9evq1ZVa<@_>-Mu{Pm977p1VEVw7$9YBK^5N6Ba&``EKqq zMSr(o>ZWh6Fb50$&>5QAINhP@{pfM!Wg6sOW#B^-sw#6xmw`I-0TvabrJ%*J-WRjp zs#|s+L-9(rPv^2Rr}-lrg>`TQL#UX9m70H0{g(%fPT0g29tRR_rbY!@MH;@1^T@QR zuhH_b=gM7-qsSX0-o(QT!! zNEZ?9@y~;r^uuX3wjV&3h!+V!(W>@Degm$vLYQW+RkKwe1l($~ltfCrl?U``mgNHi z&Vl=VED`NjDvmS<7S{12N0h)@-rOmm4uU@d9M=h=1s_Yzi=y(wJLju?&gxSfL9gZT z&Txt$mue1836%>RGu3$D5%#!8)D-ijzJz;AgpbTKyvi;fks>NUkM7?G72#!z#Q3Xt2V6ip;VP0-F z)cR@o4K>lp|5JHo6wg&b&fF;n@fQkv?2SIW42srx*hnb@lkK5Gp-M$YYvq zvG>F70yq?CL*E9PRxcyJ>M8Wm)o@w;2);I*gLe@-hDaOBUgX3#b(|WD-!zt}?RR3; ziB6;5DSwTF;Yl*bwydpZr7UU;(F}RrX+BV9?@EjU63$*H3}+DqOI@bs8l57@BW?hh z5qvh|uY4!CMJt;6Ue{d58dZ!+wmOyJ6QRxYHF9Y;>uJamjJMwj_50#d%>81%7sUSu z(E<~+eNQeQs&uF5OIqkz>kkdNcv_Qe3rzX_E`1HYiqN|&lnD@U@t?=QKmt~}WyT(l zc*!JWEhVX^@A^!VbAsT_yVXJ_W|k(kZps)O1Z1Z$EDgZu2g^`JFRvq~Hmk=x?LJu(8K>u_DQdRNcrPv>Hf0NvK-Xpuu@@7X$L z@;pdwdCjZY@+>?Qq)A0FNPFaO*4|sCq&ks!S(EE=*>_wB4{^YFBOVU*@C5d?BfUPt zmpTL2q>Z|%6tCVER-P@W z>hbMkR*0{R1is;EhNKbDLhL~PUy}niZt)r)gs~li4EvGB)PT|pwDaXQKobv!J4+td z9dgq~VSl)Ff~N2i62BZxCUxGsl-?@v-)B-Ydm;q{8P)+0Ch&W9m3*I1OcE1|i0`d$ zvMzyIMj-k_C;W$Owf5}zT8h1{Npddj?2jx13jjPoED109j?^dbU#+^Zp9)@$efGDY zPl7-3Dj?VAl=_Io>^|VQN*uCu2eZOtI=%gWc6n>v|Jd~Zi8=uRFslFI1pmKYLH|3u z`G4MvIC$m%zH!ba`I}3p_7ofK5QB+VjZ;CV!0$ra_b+rkrXt^N4$CT!!*9l&%^8g4 z&}mFL5WJ((2t5%=T+yV4uW4uA1SJr=q+)$ey8~U`p`$fHH^(GKG@>|q#TmQ-Izuqf ze!C)|J?QPgwY(4_7MH*t{bkPc(@fxiq&2+U7^#x((nR}vjKunF*|Fs_%a<|DoL;|G zCUZ-fz@pKn4Co13AOIgkuH54oiLr#(NEon(xM#Lbd&YxVv_)hFhMcK?j^Sfd5TsOs z=9;way(V7_2JInxfGAa`p%FJ-ClH+69>~d|0`Ols!A_UHx+^*{G0^~%9D8sOM&&3@ zKizngTtEcGcTcx~60#er)zAp#*I-7yl)R0z^wfJY5FiGw0UWG{Zc;ECHqqhaU3 z`;SE(BKKl^sl{THuK4SrvBZW`j!f9)7eSn3;`x5~@{0}OQy}^(nmp$hwUU1;!1h16 zUg>#YxuwxDHnwxXcXEdLU0R zh52q1Lo54qZhg1Vnz8*O%cKZ;Z~Tk043IHnnK|Q$`S8J|JOogh@F#?_3r0*Su-I#G zq6Vey+%pVdtmihiZAWVX+6?4C=}nRmG<=Z=XST6Nh{p?3XYS0wxfRg+Ijj;06$$w8 zXcH6bLkox|6@#5rEkY;LsW}`7t@3{2pBh0;j2RQQy--*lC@O5CTQ_+MR?eFtZS_ZH z5>GAIoGm>{=My|1TyS(c0kn}(U|Vl~HhEc5U~Fh8KTbLA;bcVgd{+LriSC+=M8ndza1VNMne1T7AW)LWv&93+;n_Ko>Dy zdk6wt3dbC_`nrwcQOOtDRVY_Yqn>*hr48YP_#s-Ct=jbeDQO#Hh zXnlD=jOth%UsIXWey-wC*8wdB#LZ!gu_QU-DvjL?#GH6Nz~wj1E(23?3-GOk0B@*x z32_y^^ZDnX)FD$p?+tI2vgFRiXH)WKl@DgDeh3yeB1 zluTKAEC*SsGzgmxmuAL>?dBg1?bEyAArSVPUwD%EJ?-Ix3qG_KF$fWBC*&Zs7QiOu zC+mStjpC(3bvl@WNvTf&8;WBM>;-lgTyW4=+PkpdCSaCsklSDxSvHlO{Eo1p7Mq_$ zx|wuxb(?I#vRY9r{*S922iAYUq6SplloJ-qqkvB^QLAiF1Dt?^cEFD7A{tF-)(8ze z6{XCW{8)A%=U~|!N!4HBicP`g^e#btB>xyta={5|W=Dv+R0J5)v3$tk1zTEt3m|@z zh&!Acd`paRd|nGoa3mB=y=;&x`147ZN(h$)W;mWf`wj~?=@ln9n0BUYW+P zx(PND8^>>eS5oa5VHM{qC7ZYX&@m$R0ZLlRaZbGC+0^9qGw<_5#D@OHQ(|{oga8sV zDj-c6r*46pD!yFfnZ;2Tct#M(b`aJA=$={;^^WpQa}<$X7aHI}~Us5*yN+j+bi0VHfXR#t5G=n?s4{5?XGG;5OAto z8xV!<5Uu#w;dfSuSP0SN)IVdSaPz04uvyJAicqx?Ld-YlU`$N9ALH2&k4k?IZq+f? z-#NqAza0kJ7`W?tgs{S?t7AXE?tZZ8nKTxpiK|3G3k1-$VWJknbCm|GP1Vpk8mCW~ z%z+1qu5ORBDf<^|^cb2MZ}z8^#MS)>Eu2a;Qcwa|m9YTZ{0!tVPYj)g(9ai0L8P`X z9gY50)zZHzo&Yiqf{Vl!&3MEY%77DAInF2}1*<{$J_D+eZaBD@cH&v(#`Dy#1bHZM z?+1YexlAC?l61k5(pz-if~;ri6UQ-K0&9u$D~A|PnwZ4ZNZ*D;GM@>{hZk_L8yh2sYLALJBeMis zRK6KxlwL|7_J_bXdS@(FqXR$1q?EW98%j6dNRk@r=#fc8lh~ejDt0_twtkIxu`-<< zolsbU0RpUBJ``6;LgJD{mJ}7JY@29r+wrm;q9BfY_l$zrhOh29dKy9=ks<(XGu$uh zabZ@}qq87E-_pVI{M+H{z_ev2SY;}zX~ewKfQEh@8OmAz&DlQG+q%~Mq#bh`^Jo*bqm$HqbDC~oG8BzF|VUKf$=>^TE?wRLmk%T zH;bxU*vWiq>81BLiIq}qq#y)niGkDbp_jgc!lV$1p?_cl&wmIVr4AN_7LBFSS0B0y zMCksy4Qk_=&PxhEKy21J>8IaY=|W48UJ;m(XIJ+861 zH@$7kIq~R)(k7NWlJbI74nyHaiK0tD-bRtH;z^8g*@R``)Qr_Rfv1ayMAUSix9Mst z9*pGeq5#lDykm>0!+rd!mfGCcqb#6{tT>2nTrbhcTQr{)=gC3*q!k^S3vN4ekS;J~ zA{`jK_-xJW<-tDBq0}Ej@%V323pdIV<)MnpK^LJZ)gO>Q`JEH}GJco#56LrqT`){pca_Kw_iC%BUjzU}6bharjr->)oGyj;x@-CLtw4H)H~E zr$T$XEt5JzDA*3thVKGm*<$(t2l94*knhxaWQMW(X1JMwu4*jMChU!sI&DSj z3vo@$=~@5c^4ZI}P80lqlESFTD|ouwO$QGC=bC%~V&eZEgt%3rQ<}~c%_|9M6d7IN zlk1FSVL83_20uR~+X0hqA8{F|d@mua+;mlO2fjNuDXI^1IWQ}DTmuhULpwXf{q&L~ zh`%k*2WM}YmWKnWuL^<#YC3ec3_$wjHtzJm+Pzl_@sH@)(w}%UfyDFe4@%%a_ z3{{aDL2tlxJdoT00oNa}nLt2h)hixo;7&iQG^+Co1jI+PzhF5)UeAwww%M~dYvkkr zy#AWlv)R8%tON>S@+_=#f6bfRX-!VK6=oC>!Iv9KAs|pY2LZl`o2(;S+t*^wP-dA%{ zTzHxdT=MnOGT zAqAeaL>m@Te6;_aly8DmXRL5{!N$QKDt_?&X&gi#?&(q#BiNz)jdyA8VbkIm36R1O zZcCYhSY=(eu9TCj%JL^dP_)ZUh}y%Cnv#goU(yzRb7^msvL(x@KtJuiemqbY5UAv8 zp{#z^ZH4(2xQ+K}&u6H}?{j=1c4pTo2Wgb9TjgA!a9dkg8ZlqLN$5nrnPHJ=A-{8B zeTT&>9+1k z0Sb_0-ULY-lUs)Y%}p->gBwud^v{|S#~&I(wUyng6mr&0rI|lwIQ3a$!^1PTTtPQ zNh~x&n}xZ9;6AVzSy~>jMaIW91IJT*;N!|8!2I*x{Ot4Hw`ywt6`)cq`n8Wy+GcpoN2bc54`Ki%XFdPFX|OA*0xYNpgG&!h+DVh-p#z z4$KG?T#(s};5($rBug21Os=+Y+%Nd&@&ZojNH*bcaDCi#nb-h`hBsT4CD zj!7KF!yMc*&JvD;8R%YOAt?aA3#SCRJEqrr71Ac#P^HVb7T;L-g6xc{DfiK{va%A4E*DA^Wbb7P>@2=Wq0$;b!} z0|zlMq@c|^5kV*)lpgFQEFFpyBZ?ARoHAt5*ij~%xWvc&ig1!k1d)f@eqY3Cu#FKnT)=zjAvHb@Ur#yJ7M6VZRaBL<$~6FH zR1gj{&4r$AU|cr=iVvldMCAY%`lsbclPcinu=D24p$N1kx$X4)iT6f3e0{)E&{#r$ z-$`IJHm%}@MS^97$9-{fL!~T*2iNUWJdVCVSY?vBNOS~0cgg;77J2DqkaX6Jr#g?L zI8gm0=^h8po3&T&<3x-lh)L-MUC61gm$Wn&0b+5eLL*>$s)+szse~P{aBLERa{)g1 z9`7sou@Xe6YLbY!sR>H#u`j9$1abL;Aq)0}Mb9@#)V8I2ei_l&#b0~Bd8YoGtJtpd z$?1_80=RAbo74Nl)lz3+lAFquhn&&fz1?0uMQvi!Cd>``vAh})fTsC<_)qBwu}cz- z++NVrkt4P=j~jFbiZ%(d^%6K86RYx!I`AoARs8$Wbgjpe>lYBiQiqfUxSIFjB{ak~nI%S$g$y zK)D~o6`h0C-(6avjuW2nqcJrIU z2z1GOp^=@}A=R01W^# z1>(obIFi{5*5(KB3cp2c&yVTP0nAbWdSH$RJ?uqYDsy{*BjY2km4N%JSLY=h3T9YI zclzeOvj7n<`+$`?kvA7J+8#06;h%jUyQ(##M;lVF~W!R+5y2aoX=t03>oK|=&u78e3jg-6pFb|BE7#dZ~eh~^h80s&! zJRe#Wb=Ub<{9f3Qz5vmn?uCp`q9O~4Z}iK}eeyXs5L@skoiEkZW79SC!MjsX&h`%` z>Bg-WS$`@@;EB=4hu5UzrUk#)UvMWPGZ6>lB@v9q&~U+~{hcLJVzh*zP)Vjw&!KzK zS@PQaWPutcGbGk2)?VW>H{;z^Z8S(YB{1>`@t zw;?gR8m7+Shn1_(E!BEDC)mNkNlS03M*-PM3xfNRRK}XsyRI@*MmM5$*MADfP-tW$ z0)tVHU3xwqNj+n{TPCACKO>QcEt@_~?nS+fCQ9ml+1<)#>m1}sicJ93V=5_Xk6mBA ze(X1pGJhgWGfUJA(MY?o_W{Um`rLIwB^$O79(p`C4iP$$@9i@Ruh!SwqX5cQw` zsRP_C32`M6hCNEK2a(YHt{BpzCtaqrx*o1%R*^o1Y^nTj5=GQWo-xP7b6cGgjA5L= z>acyeY45{p?l17Z*EQoErT=&vxfnxIdq_DphngI5?0Y+<{Y7xgMP9=C_UoXVhMvZd zj4o%;92lF?-7@2f49lpUbtucQepz&rBY~vaVCi86AstCS_&N`IeDOyuChf6P3%Hhd zt-gTGL~IuzYD}gTJLc$84X6=-xS%a$F97G=j!tO6yvw}K1daW|YdEs5I$*B;n9EZG zsPbt~Qv9c$vwUhYIDVKDcg4KTv|hYw@Nm-^|*QhkA+mSjV5qRJqtx<-pw9jow{X!;$steK`P-YAsjSrW(V zNTU0%1MC^>D+#vo1Q-?PneQ=rU^qW&RT2s)#ZP9Fh zCFe{S%r@Xt;jnvsMZZQT>sLQ(C8P$m+P0AkgI%&+Y}yG*$_$q=WeejpBR#}VoNvSC zP)V=hmW_IQy50rL>TfS7ZzwyW*?&IVo0*bRfhY2n{AxA4CqbUfyPn+Jt9Hp9xOus6 znfKBzH5=~B$=%u)=0)=P=_ROEoiRJ4FBcZTmzS~WD$Xflap%V#R0dbo8(RqTwlZ-jfoMFQXg2dLLDm1J4U!_m-(l?y1Y{m>KccD$rWQ1RpQ^ zKx9q2@i=z{H!Q?n$CzuctOJ&(P(%BMp3PkAWe`yo7mXWc_yyLfS*7{`90+$tD+`rC zOzP%zv-db-@8c3o(1bSbf@tB>+RS0)4^wNA!&0YA($+tC{;Q~vwP)Jog|NcKCCD04 z;wnzw)tSR!E_ZQ*K5@M{?X&{MOBF!XNhpu3+vw8#1=$!s)muubeL)v8YeZ?ic%fj8 zdLB9IFF)DERG!f!`zFK0g;@Q<^vk>B$FdP`+g?HR5c_<+&nrz5XxYl$?hE!$A80<|aMSExVyv5sFkMfW`MOh%f?5*$ zKXztczQ_7N!$NkyzjYvEL|a-j)DPt_C{AUcZ!3rVwb_5bBFnxgfps-4k32N-^@5R4 z`5xGSZ^W8c7F!*!^z*#dYYbEFuVm(74vn3-;f>Q;+lx&p4h;Jgsv2eOrEGTD;E}qD za>TO?#QxfGFRpPrOUJQ9BB7qt(%+yfWLo`NTqHP}ht%sd`;b=nn_4aW%ji~&YHrKX zqEVHV(+Tdo{0Fs1xISAhcvMuig6~66dCzGVkC<>sj?E`b+P1+4V;N1n@$;pNkVhj9 z#EelNT9Nj9a*gZ4WKwRqE$8mXdp>_0gi-HoZM<2Luqi%#M-1%J{(fCly;?|x?NPn~ zm4YkJfWb1`-+G!2+&%Ik9~l<%Vx>B=%nTl#e{l$itEw{x;N`9`;H@UJj={E-x9wR6 zTxYUj>%!@GdtpG+gPnz`Z2pgl`t)B>TRT?2M5$>(OEJrKRee#pw zQ@%TTZOF7uL(L%*v=5Ye_!Q`RhE%Xeq2>mwW=thI+%wp zcn(nOwpn7#5)qze75=?>l3#y>(LWvyOf;pj*gD-h>Ae1b=5ZL`IL!lk8sZ_f#6ps>u#A^kEw=tQ@;%vH&OH0@i0-e zu_tQGON%FB>{b*x7`8GR3WO`RrB-DH1%w_JHkZ|w6`-Jq#UQ~)EZ*xy*!=6>;@{Kp zlKODb}9?RSuI-E%m_XO|J zBa+JPSZj@`RX7@&SQU3FZm(TtOvOJj$k-o&3SO*k{9#$+y7W}LKtOW7LW)%=8Ifsz zN-NYChg(_ci<0TyKW$#_%!YI5TlQd79j_KJNuAEGFEB~g1EjZ9>Zj&$`~JBZvpZYfHiy zs-JDS=+os)M#(($IC^Ha%mx_?sCE!o)XhZclra zO0gQ0h|9c63Tu)b{Vvb>2U28nX|eL4U0ThvG+5Z{)f)|fSMXx>`s;6aIk{WQn@L^e zzQb)0VgcslUjeDQfN#t|AGw13{Vt|@b+M3gyIgYvXG25#yoqZ#!UR0ibai#d zZi?tIl#eh^UFU`c4v8_ny_7>cNisoSi8yS1?(1uukZ72Ybyv3GSmfuB7#=L8-V@&t z{4BHavb}CUh8h~=#vprrZNKTf57$%Ti{E!=1{*{Ep+}bwF?(DKX2`7yCUJ~jUM%l5 zvRZ6D-Frrr+|tF;gF?Of5ev8bX>4g})^ou@E(8(kGh}LL=rfSlA`mfRS6t|fF1d1C zJ?tN-aNnc~k$rA>U$zfEyuV#Syj@Xo!346jEbo?rDo7}qI&WM`xQe&5h^YLZ1o>O3 zg$%*Y(j*tr_9a>R&xbdcWNT)g2f7@|@cbgktxKhrR`<%>EiFHMQ!_HcT{tNGgllnc zC&Wr9$;9qjI5@Q^S@xmmR93FwRDS8nx8i2vx4RENO$4uKYN)CBaTlv!Wcn%eZEAcu zxoWQjdT-x7I+_%)nu^tFJ|b?o*PFc8Ic%-7ewH^#*}N}ayl`Lo^JVR+jcrwQ@iaJi zoJ1VhDX}8i9Suuzv3|VTT_4@H!`#HsZRf(;#y)j6qee5N{axaFx1)A185^G*;Mof= zMJDB!`m9fMx_VFZ1vA8?!G?zKPh=%;=0inA0+O_))wu@o@$v5qVLbv8R=F0`b$e;~ zh+Ha~I@UM*+)KSaerXtt7OckoB!5UR;eNHu;9hG12K2$hy9x<;hNiK-tQXuXTZy&`F1j zYVbj(!Rp>3t(G~z`$oL)5TS)H=>1Mvzo^nKCN%7)H56HXFoP@3WG)<*MV|f8`A%cu zoZL=ETUx`Jtj6b*TQMajRCUX2ZnJH~`;@-#y?wV!F&}uwxhB`6s2d}hjBiUe7U^c* zShb29;(Pv)NKZ%<7uhen-w0JS9Y9Ah-tnqA6}Ni8N_-o1e400?A!h9$`?sVqRWm6+ zOGrHHt_=B~2l3dWzi^KeS5RO7Nb<(8ovBlSGwsw~B#Zb+BkF1+dqrYGf`K{W1-c(Z z%VHB<-0w)1F%uyLSy^5G{gTO*-;opOCM_N=5GBujH6A(4^e~r&Xi{4W7RQLg*hm zG(kd9<~FwX2_~Fb=0#M@Hi5c%T4%0)yLm#TZJwu$9ZEZX?F44Jho@>~#mN!8Gh2JZ z2LOtYfI!DizjUdKW}SIN4TS9W zIQR#x;l;8w2}hj!NFP<#z`#I_$ByG`P97hNTZc6;(b;hrg95$j*}crii^67R!_L)M zDB#5J3J2V_0=aFJjY#|IuuaBr#*)`#j7Dy6|L`0$l8p3z>G+hq)=Z?&EB!I0{fhg* zL!W#c5>bD+`NIWwbILzpLNv?#G~)Nc&svLBby8ai_TvccX>kv@i@HfwpZMe|sUr~n z;*`lPu;Ke`M8K}LvYi9Vd=FTOI#f_lu&p6H{1p%I7LpMC7iHeyeZ>XS)AO;Xua9~} zCTobHg$fq@*-l=VoMIpG>{)%Bx4hS{Q!nM^9(dz+E9ibPuqW+9;3G{D`RARJXBRSu`l3bMd}%0KZ=L*3oo0Ayx#m@6qODREtaD2FtQ(3L@AJ4-X4+T9fxh9J6r)uUqW0-qj$$o!=#w@rKjEV6eM?MIFt}_2ES160js9 z*E@uTrgbV6nsS%_ydsj`(8j*r_KLOIP5}RILi<;Ryex*FC9CZX4N87DA0gM;KNc1e zwAI`&^XqpE+}PURyYSNIT8Tkgdt(Efuz{1jLtRvlD@ow%$&>!OK!TogfQOPQ_8i>YM zIKYFvjj>ffc3&^k7$S*Y<~N{kUmbfN(KnEumNq9OqF%Nb!xND%y4y)%pEI7W{`&QV zfx+0qB0-Itldge9j{#$#wGyNnCVz{U-?Wn+*hx-(!T3{L#*|#T3fKHx=d48HKK@ru zHn9vZM%ja=rm5~L)xh*1L&KUzuxzV%VK5D(7yH$}yxDhmFD$S&8-kD0WV~9Phylb* z6)sz_oN1E&zdK*twPcC%zHeGe1Y62|{Rp6oKKy&dzl0Z?VED^M0x2HJHNs}Z8^?3~ zL7xK`jt?zK6P-kh0{mMCg+KVW-m81XYg-$Tck|8*aR~qRyZHwk4Cdm>?g?c@->@Ve zE}Hn%G~BH9L+GJ!`3>j5nK z4!jsX5>3uQu>N5`-s#o%qBTd2t=RKwSA1p{Y$(YrM*gMVs-AtiV?;I4`cGagfRVv| zCehN58%l=<`uf)C#Th<42dQn&+e!v+)7+f$PP*A)cQ8$dt*@_tqG)hBhJ#~9t3#C~ zK_od$#snVf2AqoozG((ih?QO73I_hQP>R+2y3E20QCRo>!M+EB5($j{tEKP!m9g>{ zVQOk>9f+VEmOQFInxwTmgh=tJPw(HK9V>@kgf$ZPFnz23(O55*Be0O9nIR=~N0TkFq{MZ3HNsv&9LgO14o{Nd@oZA(Uh)OodSzlvv;c{Gddyk* z0ry;2Kz99F+1>#Jc1vMvjT`iki-SLKtCGAYO9_J@PP#mhqozj84Q*HdaDc=89Ax2& zsLkbgLkr^v9Nl(+FxdUgf_PZGAsdtk@9;Sm+BgXTFMR2E;%Fr!mekK&jRTgo9i}a| zdgR>jJvF+yx=`jK!+V!;Si!#J0iBuw29>Uw^9|4<*RNl9 z@6*kX8_l3i-q>Tgeto2IN{OX0d*k@E5d<|O$B9JZSaAQ){p(+~@3c41pJqk94-eSv z7auNg{BBZZuQa?n$6fp{3XGTo6Wx`Dae7l+Z0l)2wX?Jh0~uKa|v_fw%Vpq4-xXY6`mr8 z9#JJ7$90frrRl%k$Z55ejg!xG9uRgc#_ng(3@7Mp;x%j3uQiY0?Ru2mH$MpPdvBt-4C87SNl&WWo+-uP^v z;TTt4tsueK5~s7>BN{n^u~M2yo*qDgt77FEu0eyMNyN!_u0kU%q7N*Hr1CXeY3a9p zQIn@+nvcUQoi^$sU@D5+p@@Zv_y8nyNZ&kEt)Rjf>~}PQ-#SummR@r=b)7`z^mf{s zhw}(RQ@q=mjf-+MyedLRUoI2O-V+}4;-xoywcxy`E!mr6gWQar1#Jt|eEVx2p-ET5eQhVkXuyt<54W?5; zM{vV=1K%TDP37xv&qxCnrcMM$wy{~Cdna(K*X4E(+oqgl`}|*e%bABIEad7BvJugk zIr?j03f{6e>TMEwS9bFm`{XsV;~;{V<))+Lc|3KgT}pmoFZ;H{_&^bG-}cIiDa-j& z)l8Uv^7i5it_Iu35?p6=61NB)df-#B$J_|mf;(N6JXID>tjOzF=)|9}5SJ2#+MCJC znK^e)KL{5~f;kk1Aws)@ctT{vskHvcY2~|((eFx_i8`kf8`#N4#|;?}#qW@OWJ%@s zA3P|&o@^k{9#tGLvqnGF5;{z;zjLM^Hk$dBXb?2t1 ztA3$_1^0HJlFql$Ic~^elMFJ`>HPL{_NDXS%~JD*y+2vJY|-6FXLQk!IG{blizeBH zUL8#oowgsRj!^Z@KG_Y&kk^8|_SYx%pJR0Fo?@H)_sgduF10|#Z^z6Bn_2P>Cr8#( zLwy1(1DwB%S-cgBQL#g#>jQH9^#jo$sY@^taPs<=a`q9iAu=JXjnDF~iQ1I5z0k=! z5RrdF=GALWuFn#j(*RjG5Ie_AXC0I)xA#IEQ;Q>S25sBR4miW#Ok2~{BE??2A*s_k zRvf>VoG6p0nuZL@$zw!5Ecbb#x8HTnH>sAZ!-DT*o^1w3hSLZ4daq;0ms>nwglODS z>cjbq%Wqn^lG5Q|Nk(=}g>~DWWX|4-TWl88Y4~&0(;i5E3ailwVS43*e2fxz+oX1_ z&QnR5ZX0@8K84N}f!~8yGMt(}m(_Ub{Ws+F;&BKRK>%)vZ^^Ojy`oMEJ^SUD;aiEl z>B_`oq?#%CyK2wJ>P;z9Os=esI^`^B8~4~r{vk8Vz02dLhml#{a)MX5Jux4$r)YWS ztEpfaYQO`#uN`c?p+d7D8gI2nvDZ|ebC6=|kGlWtcI;Sw2{ABmO#MvM4Ov&|k50~T zUC8#U9*VT-+G7<_6I#>Xt(XrylLgtFFJ!=ts_GVN*Nxy=a-j5?=@DM6rzR#l^O!)x zHuQ|^^N2F)N`WB9KR-b+VFa9+SZ2^-#~;9Ge8c;<^}yN?7H}7LW=dsWIm-mx%`54S z=+G7H|nfByjL2M{3sE1Jpp+9AGdoRN{yK>5oRTC5qhRn8x3 z7_96;x>%GhhftrIemqXuzG{?iOi|jCWrq{a1o)CTWfXU zliH2|r4E%iNne1PFE<3*4GjaN-B=SyYJD;paF8{8a|J**M@BzNHezWhwb)o#h%pJ& z#eCfL#~-zSLn0lAJqmtk3|fgL+k23!;|Ri=}be; z)*mmL76agKwIjM3Wxm=sx!d#cROO9RO#nVp;tvVh6l9Bj2H26h^H@dN{jhT-1Xg;6 zp9F;5h+u`=AG#KTZCj|WrKMZJX0xDQ?7ym3W)j%1M))_q*-X7hW{W~opDdcxWH3Vh8xb{*24H(@{%jaJSsPF z_(5TQ!&K>_#A|dNySkK19`jn$J)A!41+2KYL!5F3rpivqg()v923;*GSmj_l4;3_W zrDd`{@EKyx4}4IBT^eoU55ToH$zKuiJyv%-Q7i z3zNeG4xaj(y5Ngz>wnB~((56=PUHR^G$GaCiNv6dLVv=P;r{M%Ya!1QIX?HjEg$sqsXYJu8h3BhfVZv=5X|F7-6x4lQQT)8A!;ku9U7?@8wSehG#l4*5n1L%e7M=d}Ezt84Dj`2?p^X7I4GLh+=%C=@NnDZbl6 zM_=^_lPss;Ih%s)gUls_A6`uXjdFhsXtAc-_X1}M*v-)0ccf#3x{uAw^@)aZ$n48W zkNfn`ILbdXd~GT-L8edA>d`-A+~cR|3A?j>^PZu6VZnf+@Zx?*4mPyirdlHzFIj z@{V%eWVawTf^fL9w|ik_Fi+#5Ke_nH>fRpnPgC+sL5Ks0tGS_bigI~@5IKR!`z>$^dxXw<)V5{!i$XF+LcO4Cs_unybO^X;6 zMQ_~rZBRPwb7GTlSCl!NV|@S1+I?q1-4Swjjs-aemfW^ch$WNu|5;z2C})n&r@VJx z3CkN=%!Gsn9Q3HEskxXUI`3o#a41KymQS97wJ;&$jQ^5iy9uI|qT`UevFwuADgC48 zUz9HDUOXcFdp#l!%GzQ@`h}x`ZiJz;!vjG^@54R4QOzp^pfcELD89L??F!XY?gTD7 z$QC^sr!TaQ4qpXt*+!@l7r!e?>ja*72y3Ya+#vpOt2jf9LfD0;nwrt~AJqBIdf?ie z{ajr&tjm*jcXvAgYi?*6uocp{rHtTVczInh#e}>2F1!K~KSl-A4Ar2TXgv6a~F*~glvU1AYQgIIOUL&jR*4k&oQ5 zCGP}WF2~RS9BN(ueRnU24|+L+P@I#yxp?C=^EZIMrQhLjM7>9nSm9Sa>FFEY*`Wvy zKx_uzQ3J`pr>Cci6dQCPD|AAX0C#iKBF#mUfBG&NbkIYaP@BtD@rMsPcpkzY4@?3g zLL)~9R0p|OY56@w5-BH!>6?AR)>j4w1{%>6cLpNOh{E>(`1f&x9N<#&0U3mux3#wB zFzxrRi$;$FYlK@P}VtC7M&~LrR3J<=fF{W(wT`1~r1EPZ@9k6@5sH zG+@uMw|;W429!gdJ@e2N3l_m`hUx&+*CTVGNw!oOg)!n^5=H;A*1o23fq8zTWk?#D z`B%VOOmeK{PBPu-kfbaVV@`3gy6Z&kjLRuAAT4<0J{K+p#17kiIiN=HZcLawlSoLm z&xl!Au*)ybNA4-zm5wDH;i3PAzy? z_N{gUPtN0!E=XZNx3*p~7@tjT?AciGGi{_oFD*Ij*&H1GqDDjpz{{?*`kp*P?kEI% z*GA!Cs_wr9V3Vl$Q-m6#7t5Q*L?>2xi>}p{AJ^TGpP7t^rEVq2MWuj%LSx__|oK3 zmEnnpMcuuo;ya|5%>O?YU=Q4l0ZDA9GJD|Mw<#oj>9VHGp(4oTvveWExx*RypzoC0 zFZsBi+;dqE_E>utMAL+Y1ZBV8RrV!ef^$C}wOU_{RDUmZX6$$-w(b}(PyD5U6uSuY z-;bYIMPWf;jElV3$MWbhZJOFuy){_JL`JfAox!y2i_2;GnZj!#@RxPx@?uJJBafy* zVP%{(PyFMy6XfXHRcA?{`Ny)(h$u@`;X+T${ZI>2=lUEiy|S)7ZpCJ4_Y)4WhR!DOrD+o6{dnw`xdd(D}a=SvrujncsU4MfyI5`FZw)Qgtrg*f4 zw8c`6& z?I)$CU-iOj;qfY5m4PgCTOa1I@AcvYZH4{+dSop4)62; zwLi1;0kr0>m2}a5b+~H4*Yg<8WTXH5`IH13^1=-aXy22R&kYSTPZXAbY;E~9vxP_` z=K|-UimAVuJ{5NM_UXg*dovFL=Q6tf;Y?gJwpk63j1(M44>q@3*unj(l zVP2K$+@=Io^$mvtXk;Y!&5uwV^3SFBHhuTC5NG~1H5z4?p5O5712J>*%ojk1liHfe z;v;V|kN_2}kT*BT>fT&d%11M4>eoKpJB{CtcLnh@trBJW1tsmXr`C7f;TNr3Q_U ztU+#5ixeor@8K8M4Ij4L@cK0}GM=lpX&>a>Yl=B`smzdlx3e88P0^zLVtefk@;6+j zj^hb&#O8vvXM&?LMXBa=bkufwBlPlAx^{$d8%wqHN{TCq?wVLvk%avlA!vFYdkyGS z?!6raT8hTK6+m;$Ow!?Bz7rpZ?!rvFDVCvaL>C#!|NK+Ke#UM4#lCdlu9k`{jE$4^ z3=Jg)+sc{4pL_YOW09N^^SWCJ8bif_)oQH`vTH5=`Eo!6l{YM=@~^Hn-Gw|gAa zK8AJd@G98YJJE~B7HbR+A+G(+oH^l5_)#ItWeX&g+!vBtCnz``LgR#5N>MSdzob+X zL?7Luiz5(w>QPe@F(eJv_wkiKa87^!`g-X*G%%1zjR84Fa>Tv%W^<6s8zmBt_7^`M zjITV`0(BTC7Z*_>X<+Zohp3hre##RTs?lU1i*98@acM65da+p!r>`PL!by(Q~36JeR zRLU|({e|BS2f<>Sy`O~nDl-DArA5zx^k^LEoEUzQ`kK(m+G4g>Ctz=0$mbPHUFz;; zQ5{#zGehgmHrq2#r_aL9T$0l&5z)`BM!VLG+`%~4@Do^batpir!n5TY&yg}E{ka8pfN-OJ9%&f;%>U@z*k<9MzM@|#e$Jo@uU&Ir{3-ddlzo*s06u-8 ztWY!n_bv65!a2Afg$gJ<%ePj3rS`PBbGAzrUK{Pnzemj)3KisEi?s7rY6{4aWa&WO z7r$c5Y{ZE2_4ToyT)Oa`g8eA3>9bp0AunD9P~c*PZ0h5_2L60#e>gJqwcWRzeeZ~- zL81TU92DmU6f_JW$>|SsQIB^*-H0b&N&rN{=WPnmMsM;zlaIYu|F;x zANt*nYm1f|1>HXePIN_V*X1iU}d&*-W5#G=Kd)cdhQm(Hkgd!!K2^u@N z-1{uu5P828C57GX5BPymQqE5YEAedSEd~_;<(QhJq|Sj7#FMe-@eKc+MVM*Q*;3lb zgD&Pj$yPmSvaaFwBv~?U{@fIRExwrAfz94ya_#~M52rDkwf{R0)n)CIR71xY`BWY$ z+6}U^>&A0k*&~{N5;%e1CZ4PCHotqPul(l`t9no8(exyw0e2B2tmEs)orUiJEj{I1v zQO46OKEOA{UK?$uUT z8wg@>XDX_jHMF7|0$!0QOBWpGUj!@3^U-o17}Etd{PoGs%(*_UOPy&RXcJJ5?=z?5 ztmQ^}ii#99Sa`S!g@`49pvr{X*n+?aB;>O5ZJj_qWB>ZkvhJNY@?m?L*-*b>4fxSa z887*|?}%}$3=j1{L*$eH+;iP=z|YB#&;R-j7B9lo3r`olBTb=I=YiM5dm{L}+`P0V zGIf=Mw9LH>>AIk`E0rY9({8zs!4THLli+Z|;297bc@pIHp?qlL{h?1ZCQJEc{?1B) z_CvAN!$6=TU`|Y^$nz0uTC5@g?s+`z&C*G72mc_GA)XGgG-m=TmVI^n+(r$Q9VX+4 zu?nK#GM$eX*C`7EHZyZkEYK%x$FHYVUx~f8yhs<=vlFed?(xZ&RG#w(chq*5CHq7# z)&~WNB@w0;gRN0K@#8zq;T-@aKniq=7%Otdev?0YBVmzB4?AZ5jZJ+#}ME2;B7s9nb#!B!;~^NntdOg z$(^>u;J-xl}&vKX#F*76ssHZ!qJI+ep-K_!v_Uli_~Tz4VL`1K;5@?fj^aFn{qUfD7_wKfnqw6J6k&-0hKe`!E z3EHJEx**d8uXqVjz>XqE9bfRuT7c}Lh-ts<)O7x*zP|n2Oc5qWECF$1S5@`2F7{BMwZyosqX>}}Ni{)h#0xNSkTpDz{ z!Dk~OFEhwQQ4xGoQSn9;YJ;i~Apf@s2rxtKq;GT_9MrNpJ+djjacBVn ziAOPM(l>s5wHa;TOJvu$;LH%C#p5X*+gbHK{Js)PI+2(P5iEpO7o8P&F4v>{(d(Q- zPFVIj^800rxt`h#OS8D-_sMIv zCeCAHT6ZvoD{0cyI*h#1qW3uUB@1lqtd&-LHZC%hPf;_9MNMXQjFgOP-=>qip4PPY zuI>5Rur^2puwFoIrDJI+4CKu^rlzL5`_dM`vL3~Dc5H7~0Bf|zLcs2x0^?l6H1s>M zI}8vCOHq`rhsw%I5m8Z26X$%;<^aS)`QN{P0uVyAOD{Rz8z|7@RXaB~%UrN1a|#Xu zbBmz|bkoY}YViaOMTFAb4RupmB1D%x`@AR$vfR8UytjeA`SU2sXkZnjZ!6#~;)toZ zfusG~}iL|THk zph(RdHw8zQG}CeJZ$yN50FY_}Xd$I_Y|T_?w7<-VKBTWtnP30CwHV>%V-bG~0|V~Z z*w}3xv;}v@BLLZ41IKWKhyLB(o>NjH$JbWf$0UDF zRpA2GtqMHpHZwCxNzvehaLh1g`5Ta)7Hhs=|Gz0GQ{R(%v=r071*R+xnEZzh)iZ!| zxV;6jyu8ydN%3|0`MhBHF2=-f!kwH{%|0GGJsSNMgfF!0+{0n!m-8|cz!k|UDW4tg z^C6K)jd8c8jrtPMmID3;8gvn9X+bdUj1+fCK=-xPpis4-$YegWfAnT?lK-ROX1OQTXx)AMhoKZXZ>jSQAx9m@)w-0R*Q& zk!Vg2uF+K2Br;==Ai$7-LWLv+PWPj^QqPn>cH$c8(Iy79yL}4yud2Q`Mr?0Y7|D8&P3wBHRsZ{agFs*hQfS zF%>~;6zilIMVm0I!Lw)2fIQO1&(CCivf&Ppa5IRC^dtaEqqC<+P2+&+y&}b#0B;@u z%8|n|Nf{Xlz-mEBR^-tmzI;8^3lDDSEPI*&d8F<0=RZt_Yv ze?^zTlJ)fTY?RxsV1SGjm8#M~JZht`eX*S?`d-Lzl|3o&&ek?$0_FAWgEU9qDGd{Q ziaGyXuKM^fs_XCH&x$N8w{?tpIXO9X47f$y$tVyKO#E3XjrFutr|N+KtzOSXRb1Z~%pkJ3)=f&Q{{i_eqJ2EDmT-2f;e?k2`CdEp_)a-(sbNXQa6v=Jt7&_{M!>4v-j(RG)K1zuqpisExlls8L zYGBE|p+VdMqKS1$wEDmsg7xhkiB!tI1P?E;&-67&*80mWI(~QjqCOzJDeer|!*v#x z929EG2@ciboQC{ma`p(8OMWcKwlAMn{wu};Tfj_>$Ki-L3iO#2Bj=3i$N@7dOB*78 z(o1p$3cCDWQRoTy03P;O95Fcr3?(5k(a^jGG#&t?@sogUmiP_AFlAvXDk@eRd~h;4 zHQDRR)y^#7`$1Kdr~!nT=)sHu9*J&eSu$sDD4csYEyMO@1zyL`Md8#0h)x4N&*(Zv?-1u|i zDCP>3*a4)&#qIe-%dT`u9~*0Hc_wD&2n&zr&!68m6W~v5@L5;!eG&q~=y1toL(aYN z?<+p*adVqx-*h;2*e)u2gl#hQ66w-P|hwdMIGyehUtz$ z2b;zq`=wva@tJb1(9Zd zcAtehd(M8@|1#A*TS-Ub@644z-1s|1g5&9zFt(LRCTLheX1#y?xai8)_nqvfjs+0q8kT2XmGSV0qO6x5F?xKq#ntHQaX4j(DRn&1UZ=|YetjZa z@#nbSC{Ew2>zy0T+~frl80^3G-@O}p92_1V9+cJfGk!K4#g{*Bp}$rkL3>(_;z(O( z%2;s^o$&b5Wvkef^z`0jZ(a@^3kxA2vxT;|&mKLy2zF^*;88UNDS59?I5wDB0LoYE z2JXhnuMO1q9&B@k_>Lji0JhJAEPy$>6c%)$XzmT(@WD;wa9p_pH25~IL8zsEDzKHm zCMMbfJPIz0i;t)D2Lds7tYx%J6GBNzUETQXttSQ+kR6I`IR|tBLICA8+IJO3@P3~% zsk96m0MLqJvyKt%LLA%a2uK+e20H=ZEL3pGdC{3R-4C!c5T-YACgt z`>O1x?CxVfu^&(0)>gHB+e{*{7-R-F_H3on-zrhEx(4X6_-&wTZ>?k; zYH3-`(f+K}9^x#aQYkerWA<-`;hHg+1a->NVd5Yr1Ot3|}SS2;-7Z zu-xCFo;!jL0*C+nu|g)C^-!N)YXWLH6SDk*Lwi>ZS@z(^v%e$WJodZEI$fRD-QFvT z96d?e$2Wrt-=~4#sk=jatK>G+Xj#*RF!7AH>A#uJ`=N5Qrfv#kM4_{0?>Y%TtIU9h{+a~P#p!-5ZRC1>* zb+kg>K+B(~bq5iYY$)zohsDNy!Cdz#;~#4S-dYH>*CT z1|dwqVH*!aGBVTSCkMXk85l5`RRk#qHm!{#p8@bJ=uue-O2N!eeCdNIc_nvxLP5%P z3eFG7xqY}&SZV_b5ll?Xw(d@<+z|Jj+m($1pkYydeqKc4o^}<%f^l|MN8em9o0C&S zT#_Fk#Ms}`{vXU2VsH~prrv9#x6bYCY!4?|s@m$ubFEL5n^bCbjQpMWH;4FfYGcOj zAxn#(u<$dG7`~XC3O!j1x&Vk57t)z*S9{&QJkT;zr@A+2Rcc9Ai_;kshgt#yU)K4f zd&R9d=tpGF{Zp^GcKU@AO%s!;mKnPbZx}+U95V{qF)aP@2MTDzolrfFU;ZTHRc|$z zUB-S7_xaK$zsB#Y+P>%mQ8uPC_3kS}`v#{oIetWGAoIcI{qV~gkum_RM$x)_Gh2mA!0 zueY}o1h}))Q=V5)*ZO64irn!z8zyl&6~K{cTz8+{VR4rE4KPMgi9!`cW(oNIyj$QF z#UE9ZlVd_cP9Mg~k{DNsf6B7umTd)_eK*AGb5TkVWtm?~ok6|aWl>eMXxufqEM$3i&x8!A9U zxbYAW2Q--`G+WpYoceSqASASK{>>QD-)CTjrPD^odt*xQi<=SmojZmj*z-`>Z5{2H z$*V6w&#Am6;)4|hEZT_hYDyEUfMv;eZ|YKvBV(#Y^Y5~!_qS;~pkdj9Ujg9S$;tNY zI{-YtXsJY1-S91H57ho0eI)yC%vxsX5WAL)g*TrC^@@*O;xefPTZ zsN@$W6jX;CWnUe|@~vHm8fuEGW#TMQe{lhHtpSbjyDTqW31f@8^v1B#px}l05H3YI zB;;2#d+0X+V4K{_WVU{667JYWA%C9u(>DFCr_DOnEq%iFQMJ+>Bd~LG+sbe$3n;yh zL6I;rb$B2u8#2_@-B|$LLpJ>x(ug3?I_kc+j|F=lvMWaF92|*TN}azGhQw*RIY%D& z0;XsMCmA7oq8$OMa1`(ef@(rSg3YT}MyTWMZvDZ}@DGX{l-7%3OX0`t-`pOiO@?#C zdy2zusR(DjGIlHm9#sVnFOJ>pefZZ~QCcAULMu@8?9MQMAe($cCcFhv8GOu&gB}(D zWrqkNlDYZlD@Cd5<>lo*-QrOIz#|WypPzre<@MqaNLCsH{@Hp_G#sfwVp&jHn#gP^ zl}k~A$R5w|;(;n+SUf67!B*s&@A~1}Cxw~)L_O6w9d}BJvZigauRF*;bE>fC63@)` z_UEfHxYm6Of<>Q0KNPvvSU?-K9B^tO(h$&*g}DlN`k%$`PA^2}?bGd3l%z}%kNidb z@^=dMN+sqAEDn{NCZEn}r|kNN>I@^?_)$OgwGa~j<9Xwgbzx$+FC5gCa* zkqata#qe>t&+VH^Rp9; zi?okk?eGtKKVLmi-!H|JPWE?_@^Au5SlK_Ny?zi#9d&rlmkB$y~6lAUX4}r@hHA8=QDl508X`FAmih}Hx00gSsrIr6GL@Y?_$YN0pyoZYzTnmVdLKGM zO*J4&)zmd9zU27FmTVT5YMKFpJJ1&R?7mIxg< za)2GmYO}IZi_(Njsf#}%9BKqin5Ar^<$UfJzK0YeLilBCf~zpIu(u=f%{-xp-zvZMgcL51Bf+ z*G_>d%{bW1#7`$PsjRX`{A5J?A#Tr#CRp9I_lBx7sn5r&#>A~)u(+t| zwi{0N#J;T5awzAW{4L-4UxupdfoEV+ykeJIysFp@KyiLiO+tk8KByqLGx1Re--)?4 zdHXZV&v{HTa&%C*iRG>oZ;u^=6!|2~1!Hk#!Zp~GA$tmD^+HVQ^swZ=AF{-7`sc6@ zGuoNTF4EY8OiYi`NxS_;P&}$6=jPPq^EkI0`dF!RL7xFJHV?J$SM4j9+)-sNQ|_g;b-7hpME?_5cX5{#e0R`DpoI2?GcuU+#3`R#nE zy%4qo&K&ETvH0Kb(_-9Ui|ku4*ss0savJ3)Gv#Y)Mm*9ZH#>*;=O1@hL6PYHC}53> zc{r!Hiz80KQlFq6_cqJ5)m7RTMIMNJ$%w=Vag)QPDNob#;j4z+m6)#@KTZT^`6@hs zIu?kNQrNodA%)f4lSiCpGMH8|ce@@Pm=^8#goQ zqJt%YZ{99BZ2SLcdlP>s|LA>qq#_C_Qnsj6lBI;~Taj$p%Dz?hCE2pwB%wk+Dj_5x zYREeFAtCwLvJ3`85@zhoSZ6$EKHu-}`TYUU>zS7(#xgVa{eGWwo$I>JxwjA%RE6-j z|4g&0Lf6tByFSLyJNK^kf@zk1`}&&eO!#GEy}Dk5Ys`fI9zunGhzq}*Ch?Y|v*xm0 zvFralh%!k1umIB}>JQid&u^kGd~2>(^H%{&H2o%E=wSa^rj){aYW%;iQD6JbVY49r z^Tn5Q#1sE35TShN-MjzYxc~qE3_<;WdXlI}Pk5yUk3pURZ2{aybe)f-T8XZYfqWDb zLvNKd4}MIHHX_mAs-2R6+ujl2iv)mPzG#t_iR>bj1u?n83o1u;0({gKSp6NCv>yv= z>wMHHyKA1)Tqqt}@n@ML$t5K*)xDud^t^rHXpg}e<*Vvh=K@}A%4B#qo>oIG%;>xSV@*kR_=m)dqRYpcd2 zcBe-W%}YXQN|ou_KP>dNU5v@GF*D1n3kqJ(P92%#IYCrwF8RpvL^pUhlKozD$)9dR z_ITYFyoU(k^Z1EhQ=eC|6S|HMv7rlYezd9%F*OtWOnErFVw#=MXx4|pNrwh6w%P~^ z9zL9y-XK0!z}fah_cZ6yX2?>Y;yLc;Gqba5myi_A;yX`TC)K1m`>RiVEvXh}Xqa4n zA11aLA^^nAHV?|q{y|p7)PAP@amW#DGBHg+>w?<_HcYKQ|Eg=$+18x;0=HfKybtRU$6HrU^yAELSNU!hC{ipq(z)~+PilVox_wZ!O#$WwnOBGdVbXS+|cT9%`fGxjdzNE z#C<4B%vEm7eJEYMuJO@;vA!_DbGJo`e(2=vLCHPXd9plBc-?lPymhxYyY&TbcfOgR zlia>fXs^72!eO@P!%IvrUQGV{!)1Q%=*u?buAMozQT|cdoWbtD+8)8Jvu;K8;Reb| z>r|l7e)WFVpX_4(aM@JnktSw(FjVgVhl^sBT@equpE@mtU z*gJ?7T+iN;C;jp#Z`?P4 z`q%Uj2nmMgp18|AHxb>}@bB{mkf#ntH!<&zyklW8>~DTykL39?@V6iX0dy)$u!n&* zl=byf>H4Q$>!`)xr*ubXX&A&)C$ozwvn$$L?nQ`lf|WQ^gD!JfMZE|$OeI8F@b|J@ zIC}eJT8D$X@0T+SZwZUhI8t*<%TtQS*XjzBIWY&@HFh~ zC<32+_<8eJ#2s5K8=i*o{F#*{^xZ+~;GskIo}O$>?0nJ|SeoJ$fl&nC7=|a!7KUQ@ zZy76O1>l#ZrS@~F4mM$f#Pf{Xc|_ls29N0Jce=BpOnLGY_TFktzGpr-GNOqfDqGvz zQVI%grWoMiE<_ z-zS%O@CR(~SiNktThbLtdUTU2a~zew6`?wgc9+4IY*AKqQjhbRu5e=D ze?Kz+`hULFPfpw1!7iTv)T3>3n)3i?NmVtj0FMMW*|^`}=KeJLz-cmQOD?+Ix0vS_tqCjgaFTwELxqRf7Nir=wU zsDdNO&CRVcWb=}^Rb@D^hJlI#8`LmVoI+`;3#>EwbbamfhZ9=eF!&O&%F%`4N#nEI z9 z%gx7Pu4iwov`a|I$qh=r`elk$4tah(`^VJ7>%`9}cV}m3{HCj-JVqmQBex|h%$L9v z_YISkmGLyW{Bf+5^zd?pLNKMaVmK-3a`_1|hCI`=JRF+U4)MV#bVy1?1+irXR?>Ig zC!OrbDmCj<8PvoSe=+YZe|D7+C5vHkkP4CGPwgEw9o~aO%n^QWD@AH5OdFGP(s}+T}p~9D#h+G7?U1SJOEVJxM|8t_0uobocxbPhp!saJNB_V^-HL*Rf|d9&urNoImtVQ_CJGLlde(b%g|$eMTIis8 zzR3dfl&^MPFY?mpTZ!1+OULE-*fv6xHNPEBY`fb{AQYkfVTWHzIVe0413yOJ@uIKQ zFQsT!Sq+%ozGa<3=Ome<)U|VrKtLMf{+0sE`j!~?Ez#Ggh98aueVtf`;uuX~hWgb6sq-(O+BU;V$#vGnODz;qYIPTlO-I% zS|03ScVWhe;nge7w!56No+Ay=dHSO7Hp3k;?xv-sB^Ppbb(gPy*1RBIVniHcIAJTs z9m(;#?1Vw+xj|jB0>QOq$MW4q%`9t!W{_MA-@YS0qQOiDtM zE(gx{A6v@CQkN@G4n98nA?(e}sXlKubGy< zQ_1Zv2(|9fsz_(1N&>v#rp5Ki&FRcm2)>2ZHBVJfz9*O8z8bb8SHJO_^(f0e*wiOT zA*BlbYj0;}X2Lo4KnQ`DfNXSlg+(4YtM80<%k(+m9;FV?FU>OP`!+RWNNQX;n4;L% zH+a7!+5&daA-8u*!Sw?kxepaSk<9S5V|{D?R&0?YtSACII_jP|oRgW^g~Rd+<1Os*&wUa3xU&gL=fS3{FQ^!} zv^F?6IO{G`)BpBx98vU;-S)Aa9__XH#t5~;ahe2A-zqi;3vZe0H7OJG*9?Z^Cl3{iYEvxrY*-msc}AuQ3^|X%Ntb zj}yn4+eUd6AgsDn58?0=f`Ua+VH81Qe&^^G_Ske{LIR1p$D(x=xvix}-lhU#!gsng zZ=K4r(>}>;ckpe!{6&VoT>DSQPFb6zZ~5645-P>@o~Xj}O?X#QFx7R-fg{??ruil> zwNEeoDL&iW-0}R^luv)I@>31_;;)q_rQYXNggzr754)7lD(`Mimzao7q z4U@VOw33n}{93=w>dbluVHzpw+4TUk;=BFfLqkJ?`UVC~C1P^~?5;0lyyk-1X`kw{ zex`~&KPD#ZE8i8a_fZV5=%Jhb`d2mUjV$=%RVr-z2(leASL(`FH-|q_Ta7q9~}k4zc3PtBh_`d-zy;a_CGAA z@^YQRapXP;?&sd}=_v2u0#j5&J-Sm;$<*t@YaIvy|80rMKW#}Hvj)gBXX$4!CvH@u zVQozsFv9ZL-QLU?geI{orjf-Fui{rrx%Xs2T#@{!6kCMY?#%6U-OVy=KsFi?4kwkX z7xHp*!yUI=cW1ni7dV?xd$&}~{Bq#{@}k+STxtC%neR(x82VJm=R6xipW90!%8cI& z_6&&>URSE`@o<|H<@%ypKH~Dwzrk1kxOP#u{8}%;=Z&gMN*9~4^` z^l48>o?agl3QItS7uQemFxSgoQ6dYVpeA>8`fAp-{Ue`e&*x5 zl$3}%M)r*$YPsjbb?k5_r9tXMTt-St%A=d{H_x9e8(}9ts_$LhRogRT?bo2RigtPe zU<)9(D>lIL>yQYW0W-kLCIdcho1$Y!qR*DayX3`%EH$VdKDgiSO`+Z`hJkLA* z=?a&xBA+~2xt?}*c7B`i=9&HW*+i6w|2P+F+`q;xVc)fBd3V^#2l^j<9!URUA_}V{ zrrF_+rDd<_iH7<2`H8OOK^9IM$o(Q)z(cE>`s-_J@01_>{ys~g_{;Id*TfsN$`K9H z?k`sKD#Zs79vP32w6m*mg2p()r*=)hKPhr2h)|D>1yau}!y4yN*&^yYGOYR54nC^0 zsonY2e#onc_zX8&v-`K^8=PD|Hpj5A`hn0zUwJ@Aar}FQIAc+R2vN>#BJIQKWqYb0 zvK{4xtF||l92Ox4bwuwP-C!Wx;J zWg^-*;a&S$2gxbxUnG$t@$*mHr{t6L^W6BI(TW?5;|=ejl5h%9CZvFS1%rAQdp&y) z1A!?M?x7Z#&J`EhYE@gG@@LTIRN`8a2NkrTyt4g$@pEs_M;2&z(md)K)q0_4-n z3!Aoh(@0)&f6QJ0Hsi}K_@x0Qwi;#AGH3Ml* zkHGr)Eokp__VUtla&nrNNjvzBs6eoQ8I7(7s};syr4PtnDn==Mtz&Keqc8WBOTES6 zbGgTRg{5ji*MqLQ@{El&eu360wZeKKLYudDNw%>t#S(q0Q!5)*9dmS3;KI=Ki#qP@ z5M@-uI&FHfe1~e=q51YL@-{s7T~7?dBdjog(_D&4kzB^eK@GPY6XB3mKTz&7BlRCN{f= z508Ly{$t8V&gT#F3Ov{uuYZv|Dvr5hZQZ<_7tbp6-7?E?Mi+raV!1wFCrD4To$;NR zQP1@hJIRfK!I`&!Fr{R8n?BP2Zfk3+TVoPSI{h4j4m+%&y1mv*|AyX^`1KDh_O2&f zOXq_U$UnXxmb#*JuW)o)xudf~=ZM;fek?ZMYfpyqa@hujmB39LKLXpGj7hah?^;|DWZXFPd^N-QvqxRa^>TOG#uG&m8 zR1Ab&mdZ$1mq{vRpp9aw0l&XRA*`RwKJ)PMHU-ee6YVa%LP1fJaaf%WfR6L=^qqM6iHeV8VtZD{QQOa}B8Si_Qcn~+$Tuj?on&t`2{pFEvD@LgVs*xvFz+k{2o(_;j9p@r;HQX9{_di|wG*UUs;D-2*qFUZKq{sG6+faDsLUHO%k zNDF44K`!I$I-;^+SWh9&pGq7Uucn?N3`q_1<@iS)e^dDc1)~ee1YaqFy4u>I?D+jR?*rg>DE_e&7b9@9 z%8Ct2#XFX^mnmFCKzA932&nfS85cJH#}0s~nPk^#%-B391CetS3Zd|4_xf4#v$In_ zR@dw5F`zSvhsyr?<4P0kCG_IXe(+*D@TkjszI#K+zTilq>E0)UZW!ZH*#wJ?{gUCQ zf}AJ32WQlH1OgzLM5#wi@E%rrLtnCWb#+kvRu`w{vaKvh>Y{I2Vi!KNNfy*2rR^qp z$#wDa9_+$;#^t5w6GY?kN zRW{-&r`V1hp1%i0av&`rb9y`8p3G#G^6s6KKL__UwBNwbD_xXtiH7Uncw%PK=EJJ% z7xHc{q}`R^Te6dQF=0=Cz1m2QQGUNh;2eDMq19ZHBg9>KZt)5w|E&W5adTN?y=eceSzpneH_KZE3pp^vcWUzj&`>H^T?^ZRDQgu>-h$pc9|%mX@d8J3UB?o@s(n0G zQ?gs-eW(?k0@O-~$I&w0y=#Q3i5D-x)m}Ym-Gof}x)$yBv`*8>&pr7eMcYGtLd>YAEN;=;oI@H~rKDx9&3NPka{eHrcd zuMZ=GgQ`%I(pq=7Re<`5AS^PW_)_E?);0mOmCtXgNJ&M^&bo*>+#<3~I24w$@!Q6H zV+lJSA0$`idab9!QO&i=0~?I$Q7UMbh&jJ?9jd$d1--be`uZ)r2~}6-R8FnZUZK5@ zBiOt+>ZtJ9&%Hjsm!4FHO;-C> zSwZ5Z2i%R{KaXAVl{VR4?>P8rj=W1=MP6gqk)6fZ=gHza=g$C<$R;3nu29z|F`|h9 zAW|;QOFBMxl<;$1xsbrf0n_XaVtB~C=y6sKQdmJ_588Ck-39ssb)ZD#f&N|^6 zpIyJLC&i^&x7!%ai2~Xjx2GY07QHkJfkxVB_s4g$4H#o3(NKR;*Z2F7!dN(Zp4OH( zoz-&Jf!7NAfEph#4{`bg5=^tjKCli_%(x()OuC+9bQRn+2`OLLQSG)Dca7;^i*qOB zufm+VCOteQ0IB2OqL8WivBM}}(^sN;XKS-)6=Eb+FN4LTTw+lxZntgT-{3R0eQHJX zwo`I3o*mU@vf}k~YGp6#Q?cf^#9ikCnXi5|rlAmyq6`p!d5!mG17rDN|MB!LvpmFE zJ`MS#H%2;eM6}P}LYwuB(LKTTrPVL zr+@Zwqn*dJpyb2t+h(^vwog4KENWR=^6KPp`c(0WzGevu4#F;z=O>x>!r+L!-q?x? zL`IH(%gG)UZd!gf-{kQE^MjvCE|?+) z6WgBv;|rY5L3Z{gAwE4`15>jppid0NlOMpO1U`9R;BFY8Fo5&`M!!lw5;tUUpt#^S z`}(#h55PyCZGm=x0*Sxb;V>g3Dj z(o4$wb$)1IfRaJYQ|8#t9k8{sc!hE`=I{6NtM>#|0r?Rh&j#d)FbA`phsPnnD%g!F zi87oDeaCEeA@Shu{o`}>bkYr!CH^F5>`2e+Tn(y8FMScJ`$c;#B1`s7ONUVL0{lf$ zj`Acdg~+3c-k!X1?gtI)X!l!?0%2W{bn|B#o9POoX>J+Mi$+7y=iGur8cNER? zP1wH6{zkHEWV~xuZKCvvnEWmQfCs-yzA%c0h$gomd2^3n(p0dLzux?fUjsZEr9Kho zQ>B>oSn5bQYt%PhNRau%ylK3bGP@X^`BrAwG8g=)>qqpjl!j#)s^%E=n6DJhSvx=L z+&&5HL7-whne2BE*cU+fQkN8kf6YpNd=+r0HMKE}N|!NuXM9E-Um6L6o&eF}Gs;d{d* zsGwzQ-N85$96I$Eoo313FeC;dN?(QKEnZZg|84TTr&Sh`|S=eCGp% zKDmN^QQ&#M0uK)K3@mLr*A6Q%FtBnUJvUM*gkI0Wc7o#~#{IdDZH`j0C>m}oSYon~ zTiwt{5K(?YUSG$lt86Favz0*^Uu;aJ(ZWWjZk^)}n;{1pe2)L@eNL=aV9~``=xsso ze`^v0-Eg8iMo6&ISg&jFTjoZi*;gj`5z=yo*>oE7gh|6k^^7e-HRC79r9%(~g!a;< z4q!eP7Cb*4o4$~AyUc4BJ_iC2g6Cl5*9aPe{RhScfa&%{`7K%Ma-+aadQ;{ep#~|z zz&>h;oQQtd;R94m04vH5ciRNnpg>ey9OM=mbPHRV-Slw$)h6JRAAdP`I%R=F*BV(S zb?2Li>V0C9J3@{?cVeu>*PkkdJggZ}_ru<~9YM(+@q_`AAsoQUn&}uVSpXi)@R z-)8CrQQ^Le%PiUzF(vARN1z*Sq*oXOmt}fAQ(|_z*0F_mcR1l3dMJ1!KR6f=lJLU7 zY_3AMk(zOEu);rWr$JYQy|lHp^|ij9Uc;qNxtWBb!fF3*7xu~ZRrFjH;PURzH7_V{ zu_2@)sRczV>7Agv8Ryx2qRL$JVB~tNr`P4~!Ct;UqosVw6;CCdSVXG(m-8wjVo|>Y zD*IuA>YlH_0s{TdRh>^DhKv&P(yOf(hAG`j`%G1t`6{Uaup(rO%R3-UvsL<^4av%&CIz!eQtT*rx74OJl)+-9%boQ zm)pD6rvL)?SFrsgP8^Pym`^78{N6Z_rJj2|D{Wy*Cv?!6uwO*FI$e~f-yApZ4-^2S zCnlJ5Idi@=hGP$`kzR8FUS3|n1**2Tf*)VKG=k`6=j_b<=AJ!BeiW%$j)VIjY%JNs zoSpYp;-G>d1M02Xa>6jr?9BDGz6yf}{J^mR#49N(VvlAQgzH~?gTlM8=;3XCZ_3w> zdYUB&D&mwSJ->|dm2sv>#>j7D4C{W(xPl3uV&iV7OQ=Bh5s~Tv z%mGDR^3^J=`J~%L4=GC>n$)7_0;JJMrdlFD&ryoq*P)WCF9-KW22f>ljBZ#mbyEG2 zHz_mWrDCiASF#M9Ess5M$ueYyGr1gCTOshuQz42E($a9|5kM(`SjnUQP{9fJ2b(VG+D%Jpnl`rQ5In10F(iy3tYxa5WT_=L>EJh0onIMY3XWwyI&!U?WtCf zmmdcUhLctvP#So$-vV*;!im^=^q#ZZo5Wh@(*@ZL^!(V5Mz#f9 z&0_6&U5{Ne5^;_b02skI%ToHpH7BR(bzfxTGbUNRvQCyCa)Iq|%8vhgQTrzzac<VVe&vr_excd)=>3uoJY*AOfmUDIysrNqa#RH{wB=*&~lUkZPmI-*6# ziXeaVbRsnl`RCxcbQ5qAFeK(Yet3AC98_MYaV-IpnAkFJo%?M@Ww%u282IwF!5tH* z_|gc}@18-m28flFTgcRayI{0;jM>wrM!T;SfAKKjZmsN*f88N}Dmjtm9q>HYPIEqT z^R_d5%hL3O!;tKY8@^bsXR*u>^W!vE#SoHKPP5M`#MpwcQgX34oqHZ!Ktue zw_yp~8E#8-lvi~^V30~551mFj{2W~oBzK)T1~Cz`a&khZ*Y|!`NiC?`ZBWZ%d-C3*!*yiJbUmHc4tAL+y3SzE z{ZAY6k%IE^D_;)&mq;w23_r7YE}7KUP$C8tk862BIio)Rs0n|_#PGjYK-BFX?H?_{ zp$yWrDy_sr;0hQy)l`85t?fjfSc_RG+qfZ#0b2`MQjXU5AUh$T2w?3p#hwD;)5D_D9yPjxB(r7XB|JIL_@jKmDr>eT+ z2o;p%@%nSYQZvKP9e>?`N6zuMwo$Ri9%F(;T8=I;X-aa`I_5`0lB3m!_4JHoc^rgn z37a(Eq@aRkAfBv|W26QI%KUrgDIfEj^s@SMzbI(ekfp-WQGo@(z^T}N> z0Ib5L5-1ygJn1SZXiOU3a(tjk0nZ8_<*H`$On-f@qRA2X?RT3YHh4!5S;%zom*~~$ zRn;}U_1_rV|H#e<8?j9-gy-uH4b=CJLE|WWevT~B&)1DAp}TzZobKY>;-YK`&!xjk zh|L0*%q&}WpLF|{Jkje&ujKl#zTTkVNA8+yGX*NBaO$PtrCc|iTnj>xl{n~huXN6! z!n>w5Vq= z&STD4h`}6#3(LqHGL5oJ)V|xwh-gaR6i@!_r#kG0`3KZTK)9ehi6=M7hVt79y9z`w zg%lY^3<9^9*c@Owj{6xYKEhsZ?JIELHJwrV@uWHD8mtTuWhRybU71dv2N6$>&qCpd zuYh&g5WrdYdy=2%evDs>>-2>PbpgP22$zj^96-pUknrWmNej;a5VioxgB1qa{Ec&a zT{N?Ap(7TlcM^))hlb3-f1>zk?nYwg$9quD3fxsX2fUA>H`6;7g05dq$``U^pTCeW z+=BY@%WZDv7N{7L>aobc zqb<;I2OOFuv^Kt)3xNw*1u09i_h0akcMdxG7_DXhg8psInsNyJ-E}j{hk^3y*YImN z{C{peqoJ2?v!0>9Q~GWARPy2T4Cm=Yo^7)CIfkF~&n_Z~B(>d1z?vp`T2Hk!A3j}m z9+15nU-0GG9WgVsf@S={1W8@`-$1{4lkA#_z_|E0gf@JWte24ex}5G%eA7Pdx~LYG zN!SSPvMJb=bmXXo1G@w;onJE$Wk4Z_U^itcb# z)z*fzZYn7$EtNegi@%pQ4C<-(RqK`t4dIke9=pz`U3X|+_d|(ye)Ib{)N+1ilv44a2 zeHXwqlzS+Y`iQub=#%!pB>}axy*mt!ctiq@)>AVaQ@BI^hKAp8@87E)1q(J`2+yR- zs>4LmHebv0AKZ(y-kq;A!*V$~-wWL)B?Rq)eAi+VOl*>9K-`&=+owOi;xy8cE-oBt`iPF za%5N#>38LNt+NkM3)H-H$+Q@_v{MqADeix<1DVGT?%mZ6unwkzS{zOEN^U0;bo&iX z9{~pgXnw0Xuj&mY*S1AkUUq&&grEGtW!mPO(7H95jn8q@JgARs64sGk>i`K{vQfo$ zt@0_s$E#60>`@$Pm@`|keh*(?9lsOt3e^z^NK6JV1j$Uzh9+iq&_7C6L{I<)P! z*=~!b|AXRSiz@fpjq5mc040#%gx@sMIi(OWWK~hIdge(u!tu>{$y9~gZ}?BVcjyM= z+e6_Lhfq2fN!?mvlH^6rH*blwcK_T0s)VzlVtp7c!f`(5`^=9|6kNvji8KcXf^2eE zn`=4C>&Sh3820XoU@F9tP;7%NLokuyE;yWEu>p^K3($$KNE{5gA=Y4D?DGcHY{VSl zE(3#^uwY1{OJdrmk6hwo1BPsPk6b^s0`Pxa+#%o=$}kwl!7Uk+_4$O0-#@laZn_u* z7+iF}V{J*jQG6$)S(7=}wLjBVMZ`L{NWUGD8(8x|+63XQ7Zi6H&f321W(j2Z2%NcR zuv|dhZJq3?Kk};M-mdaE!oD*_%^{Gew2 z=bfLgSK2+3w@bH`Y^UY=X3hFNu2Ibra!kajUpq$qTUXulR{i=2vn6JIvbR<}brYNb z$H}lf@|VXBT^f1;jzASHQ-2 z%N&J9vIv zieEjyyF)sGn`$PX3Z z=;6C$`Y`xL z()b{-PJ3qEEuHVX>nI$;Xy_)t5>y8W3@`=Q1j|$Gsxz z56Y&}rBXY|Pkt9U`Xi9rXfvQhZlOK-pTEB&_5tt)cl=BNJL*{2Lp5bEvg}2H0AMYk z=-s`+^c4gSpPlhaI-9c=sQAf56ol!cEaiW~kLKq5%2yck{+8w4PB_^1;<}pgg-A)^ zOL@1(?}{G0+&{a1lCm41xFw{+K2I~1jkkH4PP8#{Sc6F45-vS7k&k1Qzqz?|Bw&dl?BWNv55X3z;k$1|mnB3JuA z@In8KFS6W2Oui+%5Ob^UKF;-YQpb;**s7CWfYFYHts?CSyQJ2Y-5nKLz$0?|fcrK` zWh=Yeb9p`h+I0SH10kizs`}jJp%;{8ZS9n{`yWlq{{VXR`MdRE+2du~{ky^`lKyG2 zb8|)4(4PoI1Q*u4w%u(LNXTxrq)v16CN!Dhc4sCZme5w;wrw@c<5c{%RiLk-SnA`i z^Dd@n50zY3*_!$WMjFma88eS;g@!G^j~qnP8z!=~THO!>{m$_X<7mOOt+*CDS3c`Fa&g3W8;mAV^k%X6L8P%Bx4-U>eD5mFsxvr_TD{+I=oT_gv=Wbo=m{YY zo{6I9eU8L{~t&w2p}xf_;Mf$6`_jKk2c<(_wuJQ5yMNPy^M6U&o46n z@!f=%7%;L4>UWdLo|`*24~c!O0UjL)2_ zRR-iNTc*6>D1sh#5g&cCU3j)|x}Tr**t z2d)rtFW*ERnlD~)x>|lRG{Rgjl0vFg)(3D!NS*BFrfr;ko`eQ8ArVN`dSkSlsT{2X9Xfz zu+ZWI1SbFsI?)ULC+;$=qv_sp#ADB!qYHKojSbtUV3>r=OP!n-PrM;mq3bsLRTvD? zgBpJvvCB)pc!d1=x`aA$P2cO^jxTOb9}2CjjKUttP9wd<&r26FyLS6%j-q?r{HV`N zUFbId-83`AHp(`x0vpTmr61H8FFdF{u3j|b-plJW13i#=YVF5!<$wDYuoH;3yZsbY zcb})UpEYHE%=w_ax*YIc^`W7VAo)q{VQcH_ld;)a#eC2EtG@z4g0gc76X5#%VM?kJ z&Y6=_g{NDwq3R0Bix#|pzu`IVL>-akRV1^cY05{4hxyt4fX6qqQ`)D-*S8-)kHt>= zP-$hz)hJyNM!kcO`6QSnDO-N9^+72q3kYDW96gYy@B|#5bQxIs z1gPpydS^9(;`sUVS>ZqU!J5u+bnDpPzke%Mbzi8(Y6=4$04Jfd8{(!RliXi1Ut0CW z9SR`eMU*q6n>z)*glhP2UE*bw_z85Q6sc)w8CyK z_Y-2YTx2ZJ52a>h37pziG5R@ey0q^-_mdmvGjZ0ugDme&^ibs-othi_Pyq2$!0<8$ zmzM`7qmJT$5OBELcoF%2+^tC{>3(*0cHA#xM_G22-*GRuXNJr6Zez)l-R6jo&)@h5 zpQPRf9&$ICgn;GGXL&h)iS*kGE;o*)UIhO(e2CL1m~sx?vs{(=;|90#1V7f3)b@YK zO)I>IyIXE?Ez2(1rnpX{R1n=RmzwFYvGGJTFJtQn2=P z5Y1&#Bz9fCrNGC+$^}#$&RQY;2Cf3zKD%|W5xuPvM{lMv7McghJ@VZI`8Rz5Ia03C z_|j0wDl~Mo{Iy4sgaJcf-2+uy+mN8`$uT+r5wtZvlLLSqXevTNIV|D1*o{5Asav|Vv6~XI^Hob-yIshe zq^##lTEai3eP)RB*N~uxN4B@Np)=(0!c4=~3P@_oFS@$Yn~Lx%$sHMNX}Tgk0|QSp zY3o9=AGnMHHoDO2Q55kRar=BJ<)%6_xU(%;C!v;wjRP*6 zJ|(WpfYx-+(}_t)b^ZOOAnKh0RY|PGNUv=`&6+MyJvg2WT^d0Cm%Dh2c&dDDayu-L zfJ3g;QE<7TE+dOyOTB`x@UuxCQ>`9dUGcT;2q5*6Dk{4# z>KHvCCj+f;Ot>G@`Lz@)z}f^Ev=v1K*$Wb|jOCWsdOO62UZ#ezjIix{-Yg7} z(LdChy`KR$+JA8vkC&2>7on5u;>kc;us?jg{_(FoesLU{M!9px_VS)t%>CumKRe+g z9~Cq%J1kH=h?6tI??9ty`7w=c9=`(iQ~?aR6(K6T91&l462Yj+9p$E%vs-NEjLD=( zkzP_}xdoMe`EupURfj;P05a)f&93E*y83)C{{G;`vzZyPW|mZe6U3gasP;NKGExsc z`9;w3GF5`Gdvkf@xrBrN{r%KXYWYHm-N|z(Rn-{an5BZL@+~c`J^zB~gZ2mMqFMQp z$@ULJ`6np;?uCWlg!Y17X2G0M+(tTU(Jh{0l`4Xyh z`6tW9P0yd!Z(OdjxwcbLe5FQTCi(SpQGK=3SHHQ91F*V+dTSbhH-DFs`WQE zpyz8Hw0d&(6pH^TF*o^n?^XM~@1A3tS$CWfS1NRv%bMM`f89=(5Tn(94v_5#G4|w#FOb!@UCz~f6kfj+zxu9`yrG4g5DB4yY~}QP#^<)*jvGt`s9_7 z&e7-19%{xXIY4Bf=hH01Zkc@+=abvP&j{Ul*P;HqeqFla-AL2mAkQ#@$Ad!+)>j!W zcs*UVdDLdtPjK(F4bJQLNkvd#{{)Ze_wndH@lN#qL%4bVNSt_*k%;ib53KAh+bC~h z>*VszzyAZkV3izrTh$TZh*i;z@{X(i*F@tdSR|eCOkwbcF-r9$4cXB{suYQ^{(3C6 z>_ae1wLF@L6wDWXyS05M?c%-de|uvJC1^*n1lzR71>Z2xk{GC1kG|k3D9N)ew<9ywa#5mbbl|CDs{wO5scy6g>a`^7b}e9r)}P<@TxS!|R8DRhiR0C? zK5|EI^=)eEH)y^H!IQ)M7cQrC+=o!%rgg@n0@4-qk^CnCK7;H9UN_QHV+NB;DSbw^ z=6CKiKsN^X3E{&N8Lfs_PfTvn*r5MMFT0HLVZy*T47CR?Wtas0gVr2*{}=c>Q|7#|kFO3Gla&Ozx;Wdu2fK=ixQ@l00P;W3 zD{tZZ{VIHN99iwvfn02iX|FO=)K+MQ*1l?FHExjCyD!4t*NHPsZxQ-%pfTFRV?N%` z-&!2Uh+V&OCA?R!T-of)yjB`?<-(8xtL?OL-XiR2W%>qO(xcM;7}t@ChOpF9O!j~m zYf_&-CZX-SY$E!jdeK&QhY4(6B=u7{Z*FemLRmL9pNykCrn~#`AV@YMw5i8b#^l&p zt%9fd`T8|k!S2AK1^ykH{{H&rFXLJ&=emfdD4M}n-9j70AKj8EM<_Gk65HgN}vI1B)xY*{cv><$+1G}6uDsT%L z2YV>~YcT40yt^lRgVJ6UbH8xkySBSuVM;UKRiC|N(z~c8dl-dn4(! zRXBH4U5@YixucJ}ra$v@Nke0Jeo^J9CtxCa?+}IZJN9fww@qncW1|{;<>{vyR@afP zpSS#=>@mwk1-jAYhYiiW4u~puqn}TZEh%%%YkseF2M2crztqsR<*WHMtR3~8=F~)O zJ^m-&;5nna{^|B|y^h*STwq^fmY*l`+4V+r(}S)voxc1BuB6{+hwku(=~afo)W@kE z_o0K#O-nN~HFcOg7p+A%*)8-ZjvXaqVy~PGN57ns-)JLIU7xGgdm7Amq#t}V1M>un z9qAKVo~V_5>);xD%vl4)y6J`BskS2qkfueUZ8bG))G^!9!PS)o3AH#ZtgGupRG&Rjn# z)f6W2-pTv#dnXhJ^_>6*!NBxbOoVjT?89n<%&;xrfO1il-Oa8kG-m7{!sfTdw|!lg z4OEVh1!ohK*Q>hPkjVrUap=9`46Vq&cIz~Dv%~A-t~OGZ7m(nxtw`=OE};+fE+T9e zf!6X*nyibT9NCiW>_+uiGHbERFWD!Wx_m6N;O#WhvC zghLsje}}MZ$=%BuE%<|^OSAm8^Z)3la+C(0j?Nr^=!67UsazC1@PRaj?>$l#FnX`q z8pqM~o+RC?d&F@-0NGjg>q2^29Sl^cYi|-F66d~}w0+NMlglslTHnmp_tHD0#Bt6l z^SK~-$aBzK{olvEJo8}|EtGZ+;eq>=Q?nH%41v-k)u9*0pmA;HIm${l*{cPvtdvv~ zvUwplvAnmc8cj23R2#hIW+`7w?o3xK8H-O+P?IvU+Z{J9ZNt~CM&U6?55cO z{VG6g{EBxio?2qOt`Nd_uO;qm;jnLLr>JY|C|y5!7y`Cpk=3j%OfkkmP07T6Yw66hHls+ zEBv-_`v11U<>2JvrwFup!bh8;b|%4)lbInavGf%HqtF;g-K3D!9Ixx(zzN%IxBZ#4 zo%sSrwK@r`(x}@$Gviq^7%UaN^ZOX~Vr98i zP&Si+x3zer+VAFA==$j2Yx(HG2M6R(KR9oQpqLjMBbicK2&GO5Aux6ObtDt}&n%7T zKSNHLug_)#3YV_@_o9Qg^%lH4cPiI%B*M;fn%8knNA0lkF){2-lAc90GTS{-{UxZ>~YhWNq$A>ChOdK zyXj}gW%}?gI|av2)D2-(gi4OGdO$arRzbTyvvUiN*SJKO0CLsO2Zw}AfW}ze?x)5< zFTc5!r=-BEUxdHt@87Xm=y!$jNm+jP@BLv5aqxY`?)+h3+soWKXLJraH1TnS(p(N6oC825J51RWF#&n{4_p zl0Gt>Z_oQQTo*=I-TARe9U7=awbf2-`r{o&Ri;j#em52wJ<0V1kgiS5X0`_VvF(wsSqi60HCDr7kvun zhv=EVg`hf5E2){FJTLdT!h}NWf?G&ed_wE(mI+SEvnt<*Oon8KlL+qx{?uIkNpzzh zXmY3x268VgK=2#|brS)lII&tcC4Y45)ph@MJn@fd(}Sjd&OUVK)bfqRhpo`j37@P& zqmjtMxvVn17y6sU3_A3<1;d{o-b{!1tKPbpf06%F6Kfx5SR;*+(8@d=Z_=Z&^ws`p z_}sGWZ1i|1ix?^WKV_`8w%78FDlGGUEdTucB12owsy)p4NQsSfM!d8jl&xNi3*RM^G*LR~@Ibl;0&;)i<+)JZj zJC%h+vWR_hr)m#*2K1N~F}jGWO|Ltrhl zE*l1jgJQY2liEVz4sDDUJtC7W>Ag3Catvl=!gGL@I z2SQKn%AUjRIuN7Y&{&d|ar>-Mc6OB=`c&c#k0aBZAmg; zU<%<7rqCj~{BWeq%~tWFtZx?&*;(Z^9XrN+a5r5PSj<%oK@jauR0D^G)7zw zoobi8S{=eJ0woXZL2ZT(&Ush&!YXHy~j+iP-+Oc&f z4AyD01<<8_oDIS32@(61e?!+6nijznH@b9bQ=O{}atyIL9>3V2j=3)AE^r!p`dnS1 zY+2pdM=dd4CuqJIm;e=lSpr$zEkN--9zV{eXZo z|1hu5Glxbr|5QJZn>;ExbtsW0(V9<0oqdf9yRCMo?Z=7RNipPxz5y_^eEDG>K5xdrABSF){b9+eiRBgOr zh7W&(R%#ziBZ}u?R4qYe_8lkiw4F64L6ND8nX7P%@XR3P@hTxk=`5@{%e9qk$}Fs} zJhw?P;X9{_?Co+@dsE~KMlmsfSnLn?_@svngO0be7-BZkoH0^MUStSvbSgqVB0m3r zVyL%xdA)Zm#=)a=q4IgYG*+Q%)-rAql#^em<8cL_DU_wG^o%2KNUMHciVkwz;bDk@ zsxy!wQ&Nlq<2qgTu;16wd+V-AWlxk$DpQBc6c26cxm8oTi{^00+4~obPtmTEAy^<$ z+b_3Hc)nUeb(=Udo%biw;vIeL7FRJxY%(;CMWlwx$RH8o9aCHrn!}7eb`&HF7=Gw_ zB{*Mo%!0^6;H-~>PN5!r%28Yt)SN1UZUjrdz})}s)B*<1C5=@{g}TQ3@n}K4d-h0( z8H!q`YR~CT%wpNKRfr1SSvz9DsPqN%qGiH2hX#2)I9?MvF;o*~cPZuB9vb=G(6)=M z6Q95s@Lm0Jy5~aY%tF^k3nUht>TAwdYj3NU+XLkk(NJV+Xb%ta^11}Na=3t=2yxcl zXPNO3J1`<%`Ep8F8tF+?6iP}a?d_9ycqc2b=+#hA9}Kh^8W@OL)d;V6$>WvS4tBq9 z$pzm#fy2R1qVJfHh&?qEOT4zR5*J>O5$E1wn=g#e9#9A4x9x#m;d+swB6UomJ!V-9 zh7M1)^Pa5z+T1@*(*UOmeWxlg(EqT_ie7GJ`!d) z`iwY>`hq(JCK8A7Z)#it-4pAkI5>{ATMw5E&@%CUV*m9+*!5DR;9gl`DbV=L!oQ}`3?Uj9Mq%E2wm>F zQU;fANJe)_*!dwj`9QH0X#~p+M#+&1a-JFt_#Q{Y=mHQ6t499%S2M_dj z=A&j^;Yy?PyNfy+hPt@r?Zb;!er|WGH2y5t`>*x-lzTg@^)9$SaNqB#)oi-=O)kB( zNiM!?>_eBxsuc9zx=;zh9qbs-%T0d`ytHrUSOTv~K>>K>_g1A}r-nw4S<0PzupfBZ zS#xB(ncmtTeL4Et*wn??rsL7P!=qcnqw=^&PQ+PEdBkpnLd@{Mshuy zCMWOBH-Qs_jfAxzQ2x(rr+t8SSLwN}HTM@h-`*moJkZfRx5uh2)GrMYqNEMpdnmN4 z8|zWguQzCGR}D=O)4YOMKWDT}EINrbc#}QN#1j7Oh1dX$Jk8j>cTp zhepp}gKO0g+(alYHyvYb$LUbtm>+uj%<(<9u}2pO#I@{mL4O=xCCT$AzY~Y28K4}u zR}-vMxB@y^uO8bG2Z~Q@h=#2`6SeRE3O@(>hCq1}r7x4~W8vR%VkToIHYqP$?$aOZ zUrK4o0i)^ThuWiX zx&qC0Ko+=y&JUPWtVZ}S5~al<+*Y^*veMw1g^QIiu&vYI8uCk#SXZ8Ct~|N6&l&7% z9INll{DBX7)UJR@fhiVg=T3B=q>ae>Id}1=I?|uL#AqIDQjNwkKVMk0DMB;rjh($^ z{4k#K9(PO2u^EU2y}WE*q)&)VO#a!G;Wq1%4f;_0N3LF>A1{2dxyb(w1u%%J>)9W%an}U#;qz; z%EYfp-l}aV2blB+kE^`h zPS>Lb-34$X3W^eRKnK006$K`#{UR688xpOFIKY1V5CCJ)q&Z*4wqTgt4U6|ly+mV zPxutiP3^A4L{Bqe8K`=KudL8UPWRu0<5$cs*$g#JYu;b1kMamXkFO1C#Mv$Ts&BEp zFQHB6oTEwK7p#ez;&B0nSMrlP6!K}sr=wTc-c0D}k;%j(JC? z^F<9}SFPsRdaAK5RD$K;%9?f}jqD4TXKxrz*A2<)g50kHX9IY?x6*?-9uE(|7hShy z;y+tc17|%Gr&|r{J7_H4Gw`TYku%Cp=#p(GfK(q}n>O>D+Dlk=Mr@Y%z3I}nd-@`!?h)h(i@k!w6 z@)X}h*%Eu-&b&E~HmQiBH3Dy9J>&zUWT6io7iVybk2{Oxn;mNjnML{u7r3ygl!IIj zOzlRR(_(_x+I1Ms0!~8!%0brrDybQN()%&siCAVE3aS65R6<$KH>Wq)Xem-{4*WRf z<8hL-AyH?{ID?C`%u6}+Yi)&wB5W16Z{1&}*CiFa=`CEKtGmal2rh;@ipRiXJGEev zAxLK*6<9z<=>XA_hTt(sWDe#$!72!k?bdym&O76`${ka zSaf79GRNRB&+6`;y_o+fd^P2vx_*X@}pl=^bYsZPOu^HEDJinM=vL|nen}KqN*zAJV z^+KsqXbhkd7Sy5D))g({s)^vv)Fb!{P%KD0fF(gb$1^mgX1CVfn8}WU*7`Co_E~iN z1v~-#E>*KC4#5V<1@j;t&0e|j9-t0CtEi~d<5867z`2(Rr3ijgYXXkhSy~PRFx$U< z+ZkAW+$Z2B?`T3Zq~VM*>KA z%Cq6mJz|VaX3G6=9l5nx=)BgzvS<~sTty*YRx-gJUZM9h4^dFT0&)*feO9}-g0Ej~ z6O8{f-eeuK(xxb7Brs1sWVUe-ZRGYf?(upde}akfuc4O3hxg9Wwt>xKYi5!k0*VN7 z4tBMBxt)byL$#T#1mvfgUltP5Obd^8lFQ!&wtI|SE+`k*=n3pz>I=MKB`ief$&t7Z zmSw!k-+rx{lE-eJ)gGWOg6ipW`%+E6(6h+885q!|^`-^*y2C-f7hb%>1zB*5z*$Al z0;{)UtD(?&Jej5O3;bOO8t74!Xi*Xp3QWKHph5!e=4ImD6hBl*0RAYHAeA=f+ytn)lSMvRy?T z8&zXT`prp(IO6;QDKRf^5b#0WHaR)2W09-rkyetDM;Cq=)w*<@v`MP+w0kKcamUFP z&hmY19TYQxk*wjz4;_s5K9B$YitKPh`eIQ?H%{D_ho)i>bzxkdB`oX9J8fqX2EC%f zPm0zPMGxTg5$(ObUL|^39zNXPugKxlsmNg%91l5*$kS8#F~&NJxd!jq=g8ynM|9ZbEk97mG&||rf zDwj@gJMNQLr4*i;vzH`Rr3vCwZoDjLCzicbEp4uEXsI$!iWYfNU3JU)M;6aGJKI%S zNzK&t#-DQTg+*zjKsWok8WMo}G;x1ERx&cRKU-aVcwU-mOg|S}0f`~oXTXpOR z<_0BFd(*0v@I|Qa5w*@xDov$H9utbEipe58*5U)!HR{4!AMQ}fSG2)SY|-U=O6klf zMD@LYmVWWBT2a3Y4ePD^FV6g>>4N^754Wt1R3ZX&E0FBq+J!$`zZ9-D%|AkTlXCDOB2w9lL96mcPnp|bpeoepU@qWI=VrY%~w zDr4w3LKUX#0`=ES>F7%Nz~>X_coLm>{j3UiKU}ZXt2eD&tIZ^GtgOT0sQozZOe5Ys zq78ci|Me6(lkyBANcgnI|A}E;$oIA%or^`JsR>1nz~n;cV>}~}{62si^a&PUh<_cM z`4WMFWLL-^ZtonZt$KZG6B9<2jv$|9ut1s(WI@iTPixwb4d^_AyZzae-Zf*n?>%2f zma8ho-ovn4+fq8OO>Q;O%znLLXuSK#Lbk@Y0vfT0Lt{uX-)ZoN3gPdKlwOTr%gM(8 zMv{dIrKLN3GCE#M!e^xbIEspT)7m%L0Rd$DW8#y5MDBh;AL=2?RF@8)bWgrykr5Ne zT5`zwr`!jisR`fPU@MzCUlU-ATPKe7r@$tqXVj~0GWN;HU8~$KAe#4*6FS)VwIX_k zt5-HP#J_|nO)gyWtv(9K`L_b>tE-p7(Yz0kr8e+P0lSXt)h~o_!v&jFQw?ONgRmed zFvZQbe2Yej9L->8<-={L4vUTp)`xG8evjmm!uatSpAW^uG^o`Kvxxo79w}4gX?dIl zY{y6ly84i7H{{gEuMwMNO|ma=7!`Pk&erZaX*CaHpbr&Z4Wps6w0Uq6duK3HjR973 z5knmlzEIdn-Ev7PBi^rCuVv~^>{j5=8fME0DDlc6-*VBRO?y~)?MR$wqEWIHjw z5?16oN)?8R@7fcf(+C*MhNW0ywT-Z(-NRF_SLn#UG_Nu^ zXJewf?bDg$)k#aTtsBI>3fNy|P`s^H}biuU2e{MR6q(Ilv7?K|6)0ZcDS%HBDk zmao35ki+2S6(UDAG*j7K@_EB*ef;uBHZppiJ)w+vm|qRwJ86LkqD}nyttTMS z@|5pBZ+O_{jRsKJPp8-W3q7`*H1mrF2OaQ8vs9+`0^bHOmMEp1i=9aV>U**Ns^6a( z7JmLo<|(sprxxN{nE_r9FLgfFqh8V~Wabg#7s)4FN3C-Vf(mhOXL0YCj79-S0|)R2 z6J)V9d;LNM=R&Pe4iy6b2YhMD-%D=CazV4L)<}2OuW~${2?dW&~KjZ^evT4T!8Z19pV@*26@eenU|o7IbXCr@8#4!*QBZt}q?`pK#V@*%9s*ga^p2zo6} zeuoM%q)n49423y#Z`h;DkBVCRgN7$#PK{MAMMBGI3>-IA>4HkUIf_E?{zZDS8}e<9 z;fwx7*-#kWJbXmyG4e#Kx z^+6Y3gXp1&?|x32H5FweD-T8??MGGINZZ;Kl%rGW4R5=LzA_gPW+6gFlE?Dbqr9DC zq(`&z(*&f~ljO?B#>R_2=O~uZ34O|Ln?b52f1SR49CP9bNobgyjgcV$=Ic}Ee>WOV^|>n&+(l#;#RIX7YO zdMQrf9kZi=PiVmjOfi)5da#n|J8S2*W%k7$+4Wh2o2Op{#iT7$0Ckv{@h1R*ZpWND z{C&0DO`-a5o1Q7{8{&u&cYx+;IH%o&+2N7Q^a!}-nP^FRKxz`Qy`sy)y;xQJ$qEuo z0eG?F^u-q&*B;D2jMLFGjF$@uSj#29B{K?pX$vh92bH8?h_Vv=mhJZ8c>yk_?@5Wk zbn-9?MqCBjiSw;K0S|Zuq4*abjLoR-7V12-%tox)<7W!0*6J(1E z-r;al|8FK8Ci;ncJpPAA0AK&+onHPrlFZH6>n`A;TB zRVc~~XJBb+W!hWrJ2@vmV0v()qpWT~mSmz$(en@;T=P($yf<9o6kX6qq|WodeEDSS z&pZ9pZh>W{U4Xve4-rG~BfbVUH09_lhp0hf4Lp;8VIN%+EXGoXD()28&x2`9?CG>e z_*}e}AUOAYKDTb$q;FW8$bNbqk{cQ=;t=fBqiM#;^HS_G9 zD@Otx=3YK27Sm$1Pc4uLN+i;Y!6!B{*@SO76P>z8owKHQ7qF(ka>xVFUU`qgkM{*dmvrcWxt zFSd3yp`Nl%Yl{p*Cf}@l)W3Nun1U5mt4`c$PBB}?*rywF8a$M0eCpFAVMa$_`_vt@ zVSmwW-$WYCY=v> zcBc!~1VARXFM#m~s6 z4Mw+t%tU{OA(|J!)qCieMaN|u?hiWt$|4kANvSC2N=?4z6C)?=y#C;8fl;yD*Sc{2 zh6)?14zk8&mE~sM+^JUoELolk2TiZ=3%_QrDw9b8C0#+0A0hZ+LCEz}mmI&CoD4+5 z=wu<2V19|Q#CZ$vUyc1%hv)s03dio*3mmRhQN1uF2Mh9}cA;)J@mUq0d?#~knC(uA zB&9SGvE48pnj_CST~}GfXIj7A>~X`82KAY&TivQ0J)Vdu4q0e`wij~Gys3zHs4?Yy zHs%H02(zToXRPq3-~$)c-=GZ?le3He93LKZPhA~8TE{KW;OX`zNY^&Bj9T;*cAw08 zNWQI1>EzS-lAn0`sC%g{R!WF!QW4J}>+F_men@|G#PCny#!=1lh{3KHdT{_6^4UF1 z+4Pze28dk3v(8gvw4ms##;;q<&dj)ZG_mne94jma7tz4#_aOLj4Wh$J$SX|(iI@+} zzyV}AswdJzM-GLhYqC%54}R;17Ab$QW_ZI(79D9hWx959dQZdX4#nUTO=U0fKjfFH z$p1EYXYTE&WuBNRRk2$64jKWq2fv}$Rsu5KKucAg7j*?4o1XxIP4v3&a2OL8sB z8i5bqz36K1C%YIh!1=)xFP2C5%UKkMxq+_QGq{Ow^?jDyb3C1(k9zlkvLQ&j?(tzz zc?k#`d?cF`Bqgy|AV3qv0PaWtbF*W+ItrRb_Cf#yFWyApUqE+9JrliLgf(@S08izU zd0dLd@MvPTzC%!;T-knGfEqQOuGzeO!DOopRo}9m}V zvkoUxU4)gOFxR_++Yc(n+SfUsUP2yf^V(iHLRV~{y5}r^@2(MJ;@E|M+@R=z^vD_w z#+tMxDIk8r_RbTUUuoUkp&8OmP(nUiCSUzbr&idk9;0sGdk~p1#Czze@butAyR4-Y zUR%nO)~qln@-*dQs)xvbyh&&FGVTgO7?K*b_z8TNMu8J+JZchu5sQYT4C{WS-I6+R zsE;u5SSY{gSeAi=&jERquI;`5JBn`Lv^o%rat;WYauq~|3`ir-XAvn%_4MKtubxW| zSmy8UMK8MMFVUPor6vE5AFt2Tg^BZS2T+KBF#=x36Pgpp6Hz&87uD#qluv4b-^Ng7 zN5@P*rd|o?LYk{ORpAE$xhH*me0wIGH|-PfA^s;|N%kxJXM)(bAhhnbg-yL#0Y4W5 z;lR>|=eC8nJy4+uBve8|08iBo@lYn{jZ4(1q$i!U5!F)RxlqMlfB*VS5YVW8mTMo1 zVGdrycJR8VjOmIxr9XwfDG2}77uo(KR-RZce2MY(2zDJg=SmoKwHlcmRMXTL6Y|>B z@gLFTpVjeic_=GYUcHxm8h=kYVfT4~l)D#DlzD35mcXO`PaO5+1p+hsK=1+3SN_^+7^4NaWZ+;%6zhaj?q%M3c4wA3S!Vue zgYG8CSr$P%>HnRxejsf)`j41m``QMT<+D*mAr=djqNue_7a+-OUHb-MB`(wy^7NaU z=D}3lmDqZF$BrWa>KIUaX4n-ooIaVDGZ_qf_A0AB75UGTYDto{k&RT*Ashn`Yp9^H0A81r>x;>z8bT&gBH87L5-#?VN{UQsp zDkh@b_=_JIu%Qpd>8pMd^#^p$$EPg&H!tG4WWuk;^r|z`r&cG6iG0*`v6|m_By6tZ zNRapfoOrEO?CqUKW3F+JTZ4I0l1EFiUt{EJc;(u{Mn?QuPNeCV$0PjLj*-Kg;)l+S zYjz%4m3l9l1`XB8%zinE!Z%S>w+KF`)ROT8HHwzPkf z0DgrFnb%d?QyW+`atshE;NP@8m;V4@44xRqiD@wMC1iO6_nrip2+TAA0I`lpf)&~`c04&*Sc zfm*swcm|=O-5|>fs7&;(${eP!^qB-TB786C+Li`-qzX-+sB_Dnfdte;pwH4OrnGK1 zE_GDd+mGbpj^|rr3q~WORLiut&+VdeERrZAe1&^su_Ni}0_{Tg32?m$flaQ)*fF{y ziZ`{ydkvgQ@Yw=%v*`oy6o9($`QVttGQqF9ZgSwedhBWTzDpfC0vJT;<}0*}#o82^ zU95l|T~1p7U-VDY_G(@+g0-y+=J1H~A(^Af314sLt42>~vFs=+yX_E>gGSF-u$aMsakpRVm zMtbrXMkG)oqb(Z(Joe$+nbZTX#iA2P>tjRI*91kQK}Z!7zQuV7HZQtChk&XY#ftoIB9bviF8o4rWt{R*_u z9(fFbWQDly9rJFB$>-!vv%k1hctj?#9wn@~7sx37M$(%-5g%MSnR~JN z4NNUKaRGoUHE(rJdmI#BGXG9v`4_r81KGr;Dcq8N?fCStK8c=DNg3uFDu*4dZ~ZbX z!kxe7&;DG0vhIiW%)1H(gFfRyR`Zz6VFkIRxpnca#V94Rij>_hhOxrhA{MRUqw6e5 zO|U5-l&;~w0_>FCuHWN_Y73g4LP2WHp6gyA2Zq*|qG@o!L-|D^qSZf+BTDPw|2kxN1e+fhp^@^(u zKBGN=))cutMk7)#B^i8fyDtINj98R^xefR)Z7zu?y~sKUvFxXK2@vO3d(QKde- z5(RMC{`y=uZ!HK95f%yq78|DIr!KZ*e9V57X-i9bn0)p)TR_W14pF7v^8zU3w)3t3 zV!x`VZY*?4dy>427ay{Hu!XrtF{nHGQy;bs514&F@|PO8f1i2o*c#vk$}wMT??6aD z2>)QsiXc7W@j^!{A$&=PZMs!Ce>^sIgMUWYp|U^&s1tEMM;bX+)nVHyy#*A#7@HsG zSM&oCw#W2iPYeAo4Wc13tkfrwrU$tbDj|)}YpbO%C%c(l+{ahWut# z4;}}m;u86*h%{8YwTa2d)EV%rt$E2Rj2jn6vY~z!MBX zx^x@OUUp#aUj)Isv)Waf^}w1yBFg6xstk`*C|xi7!dyva^!yQ0tCvNE420Wx6aL4}}27ti>f~ zxy4&<;fZdtC*k*l(`$RIk1ZFd1c0|u$mI#hLqNmPTrbE2Eev2j+SD)o8>-fyPfG?NiW!x|c+mqpUpXlg52X!3bL04HWBCPc=Q$m}e*z4HfIlLuI%K=4 z`i z3M`PCwh&_TxQLHP4TczUV1yS26mGqK2t9A8b_qq$ObGY8^Vy~d7uFLozro|qznXPA zU;N$DSJ~^3URyY#nn5{fu*&<+Vc{fPn?PM=A1I?{QQbl;XjLe)NEa`CJ))_7JIR~t z`c8ZT^e~=Uc=9X#F_QRD&G5#xe8o4opxjG%E*^+jr)%V7ZH&)wo>|tOALFw<8YQia z{{)V;pgt=4=d!ebh_A~hoU4(j;x8<_cU5&sM98Wmd{^A0XgQ$IE~FDGcd(_iVmXOU z{=$bKAhwdd3hwYp;P}0gaySf24j0H1#T^m%iBvR1!)MeCRhDCb(*m%3DR5|GN_i*D zKCilrjyl^M{@K6`KFC6-CtybbbXl;dL+3}!*e71RTaDyAhiUVuJ|@!E^jN;Oc?@ zwEcKTEk>NS_!z+G-EJ)hc%;T5&)OWy_M!HnNept@Z60#kjquk&%mu~;%9fN&?>Rh! z*48Xj`wpb#3m_KwcDY9zhp6krDCe`TK1b_r0@!V^*0>uw@yJ zF&65m?;Nnk0v&5#z7OXbzOa3<3&s#S9`_8oH9g(@0r)gNtWth2`A>8M6W{EujFUmM z;&~_%P!ly5N2s{Ek9L)JJy58BaIjVS6~8Ztt@%r3n%)60k=wsQ1GcY69uvr}_BCa5 z=yGjh$0(gf`9f`{;E8&lBbzsHGN30(yd3GKEUWv$%+vLA_?TIR-q*LLtT$UZXITX{ zb)y2~C+0M4hX>8(Mb88&y`2aKZuTgM(Dt|CnjIw{%inBu(Umy9{QA`QwzP?aWh-m? z@22(|HBG{b#>R3rF;KVQ?@w#H-P*aU7C}P+tzHaz0i;+uw}l@D%IaPO8BYQ&to+kFDJ0yFg(f@g%r|i$0s|@MJdjOmZRP=d2i^{UZ z#u!hfHe?yl>}IYZ;9M@df<%p>(7lWO8_6GVvH(Br*FmKpqDh52d+X4sseyM@rvJe@ zdr-bZBNXHpfsZv-oSU(~Cw?vMJ#bbB2AXS-Paa+AGaW*do))maCUrH%!uACPwK1fy zt@U}P zhwQyCyKQ_Ls(VWOqDApqpgq5v4s;dxS+LS9IA$LeL>rdep#Q|A4MqWE_0WN9KhwU| z=n3HFxwo<>)|(~(VEMgR>{5!QHc(z%`({-alLdk!dQR;}FIx)|Yi@yOme|@Sd)>~V zd>Q*)5O?s70;A5g#;OBD_9&+XT0aEvHJsvjr7c|MzgR%ySnkU!!6z|5p0-aGn$t?7 zS6b%Hf3!LTf{Rt^1wwMW=T)&aX0xi(f)f$)&zD`2>@BeTeEam9G@HQvEkI*!S8z+9 zqnkE!S#4|*&<#2+u3e@_j|sM)lhpCtWFr~qyY8NHqU_afl+vteO6EU;KMjNdFg z-!(DgzQ~EOd&=hqj$oAE>=67d@E{;E0^bPM8`RPi%fBd^b`4 zx$r;#Uw?@}N4Hi5f7sD46I12ybi{OwtN8)Ek`CRvmRRIh+qI>p-Kw4vh0HOhU*Iz4 zSpdfq#KsVfkWfjyw~p{sVAX0Uar)8MvV#JhMXuYVL1JfG9rQ=U=eP>^U}=>fkYUwC ziL!qhT1WkCBOqZxFs-JOKiKk~CoJ@39{Rq5rfbluWbUr@%gWInsti!PbOHaB>3G-g zA`WV{Gz5b52ibOLH4t;?&KdoP!QGnlBn zV~H8r~-n~U4Oxx-#$`z#&p zUn<2MwKqq7umP`j>Cjd(9fO=g@uFB4AE%0Fw83Uw4kL?)CPZYK`j=E*4{aR_Zv=AA z!JRtM5_U296X3l^&3pxHeKydEOYo6~>GKO2L>Q1rqBT4M*IsfAL3bNI`FVBH@!+jB zh(F~^iIIigQ~kR5gE%-9t)^M#34@tj-qDo}bnW0>i4Fs}8OWCiax0<%iTp3^sY2z+ zH=8+(-BHyBByXfm?a8;{nicC!`AHan|BbQ_^{nt~JU?f36!t?J^kNaZ88^391sKYN z1Wt`0+bN3|Ptv$W39^RG13C+#1^r5hv_S5wRRbiU>jcQJr|$`I$wm!rHnn+sZH`?b zmQr=b12cRi0h{9EFF@{duuAOu`I;a=8i(!6;ROY8mHULpi1Qw>`4~dWH1l}>4Y315 zh}N3^6^yN!&0DXT2o=0O9bVHjZ{6+7_2Y&PK_@MFZi9TQSRxevvX;aB9!kZ!egXW; zWI~c4SW|8H?{0mB&m+$EDPHG<^gC&sqzd+Tu#TQd zq#@Z4Zvee=M}hp+qY=lzSJR%|tkUZbGLGEoC4eR5m<`S4gC3 z$ZPOEai~-tsX<Y!2+yS!xH;mc7zU^A~D!S5oZy|RBPfMj2r z1wgn6bWoZ7 zsFiN!%)=DZ zo-zf9_(d)(X;t{)8L>P}?m4LtQVDFm3!Zb(tK6`d_O+6u5uhg0*KwXb5F|66Sn{uI_I;(OYW8fh$97 zPJrWXt-LxwPDl%77M%wgqO(BZQ{5uSKDZ9n65t9m2k*=RNz1t0IFF~kfj!##lgg_) zJMBXo9i|m0RT44y_RA`X`2gY)tiTaHy2m(OUs;BAU~2B$pR2q5KG9756o&`Zg$Q?h z?i*EpRC9MSH)K(@tj@0cJlELxCxyhXqv!#R546_exR!Woso8T4Kj>$ekNgE9%%i4b z`*_2in}UHKH`lJc+e(MMJvmfj$1}O;_m^wC09=ICB)#pTl9tm_9{3^1bUJ!ay@pwM zLcfyuV{xsxY&lS4t8(`cw3*1AZ=1AyaO{T8y>ky8ohd3+1!Au~WDo)8{^rwVIh9sv zGqo?RI}UP}0#9=GvVdcE*m?0fh;5%PZuZ#hQb^fq7e!{&WP^Cz>d$Q^;jUf$p|06? ztu-LMaRI&5LydR+ZS50JJ+O**$}>j`FFIL`a3)f~(%DUfsx;avc=D4%Rl6}|NAh@u zn;fjCteceUcqY}0Fz?+%nM=)DrL(FZfkhPEzArAB$StjMDIbv33UPD`ST`{5BSS|$ zyPBG@!83W|n;kK>`KqbP@7!Sug@3elAw%Antmiz3+6(82k0IDt5RUC{k(LC)qrT{O z9JEV-Ff`X770a5|U;sgo>l#R=eWDx7JSRCnTO3s{Hd>X7&z%BEw3)RjZ@NWF1(pT+ zvw2mOVuhEc4^eqKg&$7cQHjGD8pELA?rR>iQIqe{%w!_`p{eywuXO_f)VeiRj ze4=cZoE6HVO=pBhS_Z{r8dj-@)p)K!y$j7IbylSBmuWKZ^#u2DF5_&8wDnVQIs_I4 zkPO!0D@gA$>G+AS)jg~VbVy6xJxfWV+rkPbmNGMo4L>ZLuUng#G8sDtKhX+4bolCh zD-(>sSPbXGB=RU=9G{))8Y_RxoLWLh_`Z06R#xc#sI`}ksDN4ymgPC znyx}!dy^$IM6D?wd=7Y~o$q--?KP#N7omJ>-L-Shr)P4aqc#vW-j+B%AMvMrTnQ?0 zd*`uJZRVc=Fr^31ZN&)m9e}z5Nz&2$U2#|l35Kq;*!F!^iFHqekFU!cOZ@XhSPJ5c zcEN-b!#?JcQ`V?!coi)3T@W9n7SQkxl0XLn)?q=y-CM4Tg$4DR%&6*H05U?^YZ*)+ zF#!b*j1Df(Y27hHn|0)7j1&WUf3YzLrj9f`ryGOuJnsoN19mAk~mC)qtWfaAyv z{@}v>^p^>#pbf9jk`xl!5o~zr!Yy1ikizyb)e^8II*c{W4Ky86Qz79cXgJ^)dav>Y zoJfgzO93x_l)2S#Gt#rW|z2?hWu+7nKv`y-z1rk35*dhB{E1?#E)>2>lZxd^KV&uKGZiI8Zx0n^G}7VI(+wP zze*^`xKJa}cv~m)h0gV6d?-3Gz^Z&Nyo#5r28*2oxej|*kgp2LBzckm?GeH`es~o4@lloD$_S{1Nf5>~CyIORikG-A6#gWzDbc)1HfS;;^_9pD zdnZn5S(OmIsn<6y3R>@wiEM{&?Uk~X;{<@#;G`Yll)Ro_We-IfAADKYGOK^#`{lWp z1481~zz;mxJLyNO(z!&?4!-5=L*toNmsH;Tu~o>*352S>zJd5l%AE%QY#}jffOg`~ zNpH#!`m<$dnq)*nst0}Z{s=BkNXYBTUMU%c-yXU`B_0q^vDxfHZ+QOy z-*?de_CY=dmBYV55f9+aDkuOy19|C^fCq8DSx}e^3{-R!ST6x~0zp3zQ42H}{Cjmm zB?NEJO~Zh=XrB@kN&wZ%O+&eE4?c=?W6IP8^6&R`pm+n;>& zXG%gYK;K1Ld)up)GA{@OQY^_kX_Ag!V>+7{3+Di{)z>b;qL4McqSG@@O5Ae*njg8I63NwhKX{t4Fgya9zlOJKEj~jL!p?>=7G~xuHtrLgZ;K zj^MS6$_oRm@azPz6{EqmAoJrNKcCu>Ky+oRbq&>RH0`M^&UWmFPJb`~;j9ak}-1`Di z=H(CGp*y(Rhbfk`mN1D+l&2O(i!bO@60u){;noSxzfF+Yr#nQR7KeeCL3q^0I|4q_ zm3$$$MyjQbXP~Jz_Wd2Nzm5=prIJSh>B@lr1VaA+COT{_4ft_5xNVBt)&%_zzmxXk zRo?<4gOO#Ey zlGmHIfBXBcb=P|Ly?4&p`|Pu?=MUZ4s~u7PPetJkW^3<~j$E6%{bo9%D!AGn(glzm zx0_YU;zEqbKIG|>k=l_!5s;*Hh7R6wUXI#JsEL2c4$9zWK@4UPp63UIHAF*Yw$Mc-0Se1o=1;2rp-vb=Q8ji_ zg%QmQ)$}vAntBjG*a#<0P9j;ww>``#@jd@Xe{sq^{q{)l>_UNe<^L{)3TB?n*pifz)=&1 zv31SPJ2$TR;g|7#GRIQsN;q*E#FZeuHXYu?S*M11vHr2!^uUqqj(`*|4@Iu= z1+su?I*~0L-@y+9J|zK_6fP~S9JCTgi$Z>an93kmhe!O3z8Sw34NDLBH_I$lm7a*Y zgpH09x#GcjRDy6en{r81j(8lRr>^lY#ul(XFA->QC&l-62}&GsRUC1Rc%=AAlgWec z3#Gyq@f=XXt}C#uh;oZ^QFX^in`~2@)FTCA^ypm&&_s_=&iGh?zhV9uA%?nPP%D)#vXyeg|xDQFpq_{#Mq8+8NQ?L}GT*CITOKm+N-6}lX# zkVmHAwQgD;^KQlLF(^xke19#YAyBXFVt=>u>i(%!)_{Cru5bbN3P~ElQ-=5@`z<;u z`FW!Vbq(=CAT5F-jp9;L?K=8-Y4t4!?&io8;QCB4TqdAZN!{R8Oo6!fWG;f102&H& zm+OGuiZ+w+ZP(^Oh(Kd{5*A_8fqeL;&4q}PNjx^T#9DOUXpkw$jB3G*gQ`_6$3}rN z;If7A=D);JeQyY0#7A>)RHvhL5Gi%glc=_-++qvbP>(B!2%znEqfAz(c7jmDnkE#5 z{8PQ7(`z|mraXFj!4u4>{QT|id8+S*102aBc~||L=Tkd=&eW`cNl{B4d-6`TG4|*x z3q!lF`dYd~qx}^k)!gux8HD-Yvba>mrEl zHT+k2H2_Fk-5OkN>#4}Aa$R`ykQvm#l+FV$m~M?8ecG?Mj=M5EP|6PIMWqL?AhF-? zL{3-=7MH-<=;?j(1aVNQ+(n$J=&ZV(+%M*Xv7?8ZifF){$lnPl(!Chlbi&YMgc; z7}?)(9qKbll47|-slC$!QGj-t!D(^FIPt>?2}&0c@!4sH5|amV$c7l07te;?mZ@;* zD`u9&U;ts_o&^zSKIIf`N=&YLcP2r{?Vd_!zqrwI%!8qOLEA1dQt+-Xhww9D#Z1x29Is6T-e%hz|eb}<{( zlAft~j7Vpv=^tGX#^8muBSL^Xmf#k^-NUx;&PScqEDu$lC#*1@HrE!IcDq51`((Om z0O@h$RH@|Qriz;VQIfU+Kq7e3B-YiNqM^iZ$0*VHsGUK_P_mg z@i3?>iU+cB&DI65suLoCBxG%%W>|s4&seJE(%0qbiQ-Sp++&3(vRmbt&Mkd4+0iF| z@w>92$2}jj*PEe);e2&-8q_^a$c@*zEUgjHe0u|fm-3C({}hIDu3!E_F&v0 z4k61hB%55*UdUx`bJ5!-^Etwty^`>Bc?2UdmrzEpa31?G?ao_LM?YQFyIk<-IAv~E zWlk6Q3knj_=Tf`O4uq9qiPi&Y9YS*NT>n^Svc@wpTVe{MuU}ldov?kuBvD1VMe4Qk zmXBjbDfkM9h}*z6(5Vi!t&JR3MdnnwItQF zK4;_QT4`UShvYX_E!c7_Mv2xdV-w3l^P(A2A#5z4#5;~>ymN*hFD#!R%X=WUpNj3y z#C#coPnTh_{xP~o3y9A2`7l*O%JOZRq0=ySLCCvZu|D;c(}ix4`Gnb*WXq6*l(2&G zrPkI|*migkgE;Zh*ATCGUhrmLEHNPZVSYn;Msmy601X1j&O(|yp)AI_V~}@_ZgmRl z)w-4Dz{_i%HV<(3@W0Q7&g9oSEgF#0r&-1~=6!xo@i9C#728p$otz6F-FVG5rUP}O z0ES?d?CfiwiZ50CtF~kalluxy;(dRMWVElzV>VM>Og&bvAFCPe^%gyMp|}PNoss&7 z=O@=EPnsbX{6))TW17+6s{8NE{$Ha6+)LYD_UH9p4_T(NBLwJcRx`V=TOU0WW)V&& z=GYglt!l8xJ$RAGq&IJEZJjL2R4q?zxp^6ZRq-s=zAGea``t@igFGCeZ}U>Kt!V>Y z--eilrs;fMnl9S@XQfqA&qNWY)GsV+K~kHh32{-rF$I#BhPVjryx!7}C*a`-gLnxF}AO#s|db& Date: Fri, 16 Jan 2026 12:15:31 -0600 Subject: [PATCH 26/53] Automatic changelog generation for PR #5812 [ci skip] --- html/changelogs/AutoChangeLog-pr-5812.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5812.yml diff --git a/html/changelogs/AutoChangeLog-pr-5812.yml b/html/changelogs/AutoChangeLog-pr-5812.yml new file mode 100644 index 0000000000..6963fab255 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5812.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {bugfix: Ponytail (Side) 4 now shows the eyes properly.} +delete-after: true From dad6c66c6073d87bc1564b09672f4334c91745b3 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 17 Jan 2026 01:16:32 +0000 Subject: [PATCH 27/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5812.yml | 4 ---- html/changelogs/archive/2026-01.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5812.yml diff --git a/html/changelogs/AutoChangeLog-pr-5812.yml b/html/changelogs/AutoChangeLog-pr-5812.yml deleted file mode 100644 index 6963fab255..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5812.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {bugfix: Ponytail (Side) 4 now shows the eyes properly.} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 463db1b684..175caff7ae 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -90,3 +90,6 @@ 2026-01-16: thearbiber: - rscadd: digi alt thighhigh adjustment +2026-01-17: + PositiveEntropy: + - bugfix: Ponytail (Side) 4 now shows the eyes properly. From ef5c77c678b19463c6d77c380718aee57a71cf06 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Fri, 16 Jan 2026 22:29:37 -0800 Subject: [PATCH 28/53] Ramzi Ice Command Post (#5753) ## About The Pull Request image image image Adds the Ramzi Ice Command Post, includes: -A sizable amount of ammo and engineering equipment -Some cybernetics and other treats like a limited emag -Roumain DB, Scout, Cottonmouth, Absolution, Himehabu for guns -A little over 2000 in cash along with secret documents -Three Viscerator grenades (warn against ramzi use) -Tier Four Vein ## Why It's Good For The Game Wanted another ruin to ice to give them a nice clean five. Think this would be the second planet along with rock to have a full five modern ruins. Also wanted to return the ice T4 vein to ice worlds. ## Changelog :cl: add: Added a new ruin, Ramzi Command Post, on ice worlds /:cl: --------- Signed-off-by: generalthrax <139387950+generalthrax@users.noreply.github.com> --- .../RandomRuins/BeachRuins/beach_gunsmith.dmm | 4 +- .../IceRuins/icemoon_command_post.dmm | 8584 +++++++++++++++++ code/datums/ruins/icemoon.dm | 7 + code/game/area/areas/ruins/icemoon.dm | 48 + .../simple_animal/hostile/human/syndicate.dm | 2 + 5 files changed, 8642 insertions(+), 3 deletions(-) create mode 100644 _maps/RandomRuins/IceRuins/icemoon_command_post.dmm diff --git a/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm b/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm index 29a36f8500..3a2cd1f0ae 100644 --- a/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm @@ -4453,9 +4453,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/mob/living/simple_animal/hostile/human/ramzi/ranged/hydra{ - wander = 0 - }, +/mob/living/simple_animal/hostile/human/ramzi/ranged/hydra/gunsmith, /turf/open/floor/wood/walnut, /area/ruin/beach/gunsmith) "Up" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm b/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm new file mode 100644 index 0000000000..51a40fbb31 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm @@ -0,0 +1,8584 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"au" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/wall/white/directional/east{ + name = "kitchen cabinet"; + dir = 8; + pixel_x = -30; + pixel_y = 0 + }, +/obj/item/plate{ + pixel_x = -9; + pixel_y = -4 + }, +/obj/item/plate{ + pixel_x = -9; + pixel_y = -6 + }, +/obj/item/plate{ + pixel_x = -9; + pixel_y = -8 + }, +/obj/item/plate{ + pixel_x = -9; + pixel_y = -10 + }, +/obj/item/plate/small{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/item/plate/small{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/plate/small{ + pixel_x = 6; + pixel_y = -7 + }, +/obj/item/plate/small{ + pixel_x = 6; + pixel_y = -10 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"aw" = ( +/mob/living/simple_animal/hostile/viscerator, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"aZ" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/turf/closed/mineral/random/snow, +/area/ruin/icemoon/command_post) +"bx" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/structure/curtain/cloth, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen/second) +"bC" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"bH" = ( +/obj/structure/toilet{ + pixel_x = 0; + pixel_y = 13 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"bI" = ( +/obj/machinery/door/poddoor{ + dir = 8; + id = "caveshed" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/storage) +"bK" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/spacecash/bundle/c50{ + pixel_x = 9; + pixel_y = 13 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"bM" = ( +/obj/structure/rack, +/obj/item/grown/log{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/grown/log{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/grown/log{ + pixel_x = 10; + pixel_y = 5 + }, +/obj/item/grown/log{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/grown/log{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/hatchet/wooden{ + pixel_x = 5; + pixel_y = -9 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/crew_quarters) +"bV" = ( +/obj/structure/railing/thin{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"bX" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"ce" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/machinery/button/door{ + pixel_x = -22; + pixel_y = -9; + id = "ramziminingofficer"; + normaldoorcontrol = 1; + name = "door lock"; + specialfunctions = 4; + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/officer) +"cj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"cl" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"cn" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"cp" = ( +/obj/structure/dresser, +/obj/item/poster/random_contraband{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms/third) +"cT" = ( +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"cU" = ( +/turf/open/floor/carpet/green, +/area/ruin/icemoon/command_post/officer) +"da" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms/second) +"df" = ( +/obj/structure/barricade/wooden, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"do" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/armory) +"dJ" = ( +/turf/closed/mineral/ice, +/area/ruin/icemoon/command_post/kitchen) +"dS" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/structure/barricade/wooden, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"dX" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"eg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/eva) +"er" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/terminal, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + piping_layer = 4; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"et" = ( +/obj/machinery/drill, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"ey" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/gun_maint_kit{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/flashlight/pen{ + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"ez" = ( +/obj/effect/turf_decal/trimline/opaque/syndiered/line{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"eE" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"eM" = ( +/obj/structure/closet/wall/directional/south, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -9; + pixel_y = -10 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 7; + pixel_y = -9 + }, +/obj/item/clothing/suit/ramzi, +/obj/item/clothing/suit/ramzi{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -7; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms/third) +"eQ" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"eZ" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/armory) +"fa" = ( +/obj/machinery/door/airlock/grunge{ + id_tag = "ramziminingbathroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms) +"fb" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/officer) +"ff" = ( +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post/kitchen) +"fq" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"fs" = ( +/turf/closed/mineral/ice, +/area/ruin/icemoon/command_post) +"fD" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"fG" = ( +/obj/structure/rack, +/obj/item/storage/belt/security/webbing/ramzi{ + pixel_x = -8; + pixel_y = 7 + }, +/obj/item/storage/belt/security/webbing/ramzi/alt{ + pixel_x = -7; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms) +"fM" = ( +/obj/structure/chair/stool, +/obj/item/weldingtool/electric{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding{ + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/eva) +"fO" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/kitchen) +"fV" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots/ice_boots{ + pixel_x = -10; + pixel_y = -4 + }, +/obj/item/clothing/shoes/winterboots/ice_boots{ + pixel_x = -10; + pixel_y = 1 + }, +/obj/item/clothing/shoes/winterboots/ice_boots{ + pixel_x = -10; + pixel_y = 6 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = 6; + pixel_y = 5 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms) +"fY" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 4 + }, +/obj/structure/sign/poster/contraband/syndiemoth{ + pixel_x = 31; + pixel_y = 0 + }, +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -8; + pixel_y = -13 + }, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = 1; + pixel_y = -13 + }, +/obj/item/clothing/suit/ramzi{ + pixel_x = 11; + pixel_y = -12 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/hoodie/rilena{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/toy/plush/rilena{ + pixel_x = -8; + pixel_y = -1 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"gd" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/officer) +"gf" = ( +/obj/machinery/blackbox_recorder, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"gh" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 6; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"gj" = ( +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"gk" = ( +/obj/machinery/power/floodlight, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"gr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"gA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/layer4{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/ruin/icemoon/command_post/engi) +"gD" = ( +/obj/structure/platform/ship{ + dir = 8 + }, +/obj/structure/railing/thin{ + dir = 8 + }, +/obj/machinery/computer/security{ + dir = 4; + icon_state = "computer-middle" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/icemoon/command_post/mission_control) +"gG" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"gK" = ( +/obj/machinery/door/airlock/grunge, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms) +"gP" = ( +/obj/structure/barricade/sandbags, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"gR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9; + layer = 2.041 + }, +/mob/living/simple_animal/hostile/human/ramzi/melee/machete, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"gZ" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 5; + layer = 2.040 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"ha" = ( +/obj/machinery/door/airlock/grunge, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen/second) +"hh" = ( +/obj/effect/turf_decal/road/line{ + dir = 8 + }, +/turf/open/floor/concrete/pavement/icemoon, +/area/ruin/icemoon/command_post) +"hl" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"hn" = ( +/obj/structure/kitchenspike, +/mob/living/basic/bear/polar{ + icon_state = "polarbear_dead"; + density = 0; + health = 0; + stat = 4 + }, +/obj/effect/gibspawner/generic/animal, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post/kitchen) +"ho" = ( +/obj/structure/closet/cardboard, +/mob/living/simple_animal/hostile/retaliate/poison/snake{ + name = "chilly snake"; + desc = "Brrrr." + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/patterned, +/area/ruin/icemoon/command_post/dorms/third) +"hr" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"ht" = ( +/obj/structure/chair/bench/beige{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/ash, +/obj/item/cigbutt{ + pixel_x = 9; + pixel_y = -8 + }, +/obj/item/cigbutt{ + pixel_x = 13; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms/second) +"hy" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/structure/railing/thin{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"hz" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/concrete/slab_1/icemoon/lit, +/area/ruin/icemoon/command_post) +"hN" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 5; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"hW" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"hX" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/chair/stool{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"ig" = ( +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post/kitchen) +"iz" = ( +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/decal/cleanable/oil, +/obj/machinery/button/door{ + pixel_x = 0; + pixel_y = 25; + name = "garage button"; + id = "cavegarage" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"iC" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"iI" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"iJ" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 6 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/turf/closed/mineral/random/snow, +/area/ruin/icemoon/command_post) +"iN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 6; + layer = 2.040 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"iR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"jc" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"je" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"ji" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/plate{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"jp" = ( +/obj/machinery/telecomms/processor, +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"jq" = ( +/obj/structure/table/rolling, +/obj/item/weldingtool/largetank{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/crowbar/power, +/obj/item/screwdriver/power{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"js" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"jt" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms/second) +"jF" = ( +/obj/machinery/door/airlock/grunge, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/armory) +"jG" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"jJ" = ( +/obj/structure/railing/thin{ + dir = 8 + }, +/turf/open/floor/plasteel/stairs/left, +/area/ruin/icemoon/command_post) +"jK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"jM" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/human/ramzi/ranged/space/shotgun, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"jN" = ( +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"jO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/armory) +"jQ" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/structure/railing/thin/corner{ + dir = 8 + }, +/obj/structure/chair/handrail{ + dir = 1; + name = "overhead handrail" + }, +/mob/living/simple_animal/hostile/human/ramzi/ranged/smg/sidewinder, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"jR" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"jU" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post) +"jY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/icemoon/command_post/dorms/third) +"kb" = ( +/obj/effect/spawner/bunk_bed, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/obj/structure/sign/poster/official/moth/meth{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms/second) +"kh" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/mission_control) +"kl" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"km" = ( +/obj/structure/railing/thin{ + dir = 6 + }, +/mob/living/simple_animal/hostile/human/ramzi/ranged/space/sniper/sentry, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"kp" = ( +/turf/closed/mineral/random/snow, +/area/ruin/icemoon/command_post) +"kr" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"kC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor{ + dir = 8; + id = "cavegarage" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/engi) +"kJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = 9; + pixel_y = 0 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"kR" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"le" = ( +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/icemoon/command_post/mission_control) +"lg" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"lr" = ( +/obj/structure/platform, +/obj/structure/railing/thin, +/obj/structure/crate_shelf, +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/condiment/milk{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/reagent_containers/condiment/tiris_milk{ + pixel_x = -10; + pixel_y = 0 + }, +/obj/item/reagent_containers/condiment/milk{ + pixel_x = 6; + pixel_y = -2 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post/kitchen) +"ly" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"lD" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 8 + }, +/obj/structure/filingcabinet{ + dir = 4; + pixel_x = -10; + pixel_y = 0 + }, +/obj/item/clipboard, +/obj/item/clipboard, +/obj/item/folder/syndicate, +/obj/item/folder/syndicate, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"lP" = ( +/obj/effect/turf_decal/trimline/opaque/syndiered/line{ + dir = 6 + }, +/mob/living/simple_animal/hostile/human/ramzi/ranged/officer, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"lT" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"lW" = ( +/obj/item/cigbutt/roach{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/cigbutt/roach{ + pixel_x = 10; + pixel_y = 0 + }, +/obj/item/cigbutt/roach{ + pixel_x = -12; + pixel_y = 0 + }, +/obj/item/cigbutt/roach{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/item/cigbutt/roach{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/cigbutt/roach{ + pixel_x = 8; + pixel_y = 16 + }, +/obj/item/cigbutt/roach{ + pixel_x = -10; + pixel_y = 8 + }, +/obj/item/cigbutt/roach{ + pixel_x = -4; + pixel_y = 15 + }, +/obj/item/cigbutt/roach{ + pixel_x = -13; + pixel_y = 17 + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/tiles{ + pixel_x = 0; + pixel_y = 0 + }, +/area/ruin/icemoon/command_post/dorms/second) +"lZ" = ( +/obj/machinery/door/window/eastleft, +/obj/structure/closet/wall/white/directional/west, +/obj/item/soap/syndie{ + pixel_x = -9; + pixel_y = -9 + }, +/obj/item/towel{ + pixel_x = -9; + pixel_y = 8 + }, +/obj/item/towel{ + pixel_x = -10; + pixel_y = 6 + }, +/obj/item/towel{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/item/pushbroom{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/mop{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/bucket{ + pixel_x = 6; + pixel_y = -1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/icemoon/command_post/dorms) +"mc" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"mt" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms) +"mE" = ( +/obj/machinery/telecomms/receiver, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"mL" = ( +/obj/item/cigbutt{ + pixel_x = -12; + pixel_y = 13 + }, +/obj/item/cigbutt{ + pixel_x = -14; + pixel_y = 16 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles{ + pixel_x = 0; + pixel_y = 0 + }, +/area/ruin/icemoon/command_post/dorms/second) +"mR" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "officelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms/second) +"mY" = ( +/obj/structure/table/wood/poker, +/obj/item/spacecash/bundle/c10{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/item/spacecash/bundle/c100{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"na" = ( +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/obj/structure/chair/bench/beige, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"nb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/structure/sign/poster/contraband/ambrosia_vulgaris{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/bench/beige, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms/second) +"ng" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"nh" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border{ + dir = 8 + }, +/obj/structure/filingcabinet/double{ + dir = 8; + pixel_x = 10; + pixel_y = 0 + }, +/obj/item/clipboard, +/obj/item/clipboard, +/obj/item/folder/syndicate, +/obj/item/folder/syndicate, +/obj/item/folder/documents/syndicate/red, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"nk" = ( +/obj/structure/table, +/obj/item/plate/small{ + pixel_x = 4; + pixel_y = 7; + layer = 2.9 + }, +/obj/item/food/cheese/wedge{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/food/soup/oatmeal{ + pixel_x = -5; + pixel_y = 0 + }, +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"nl" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/washing_machine, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms) +"ny" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/kitchen) +"nA" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"nE" = ( +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"nG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/light/directional/south, +/turf/open/floor/concrete/slab_2, +/area/ruin/icemoon/command_post/dorms) +"nM" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "leftarmoury" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"nN" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/chair/stool{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"nP" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 10; + layer = 2.040 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"nX" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 10; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"nZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"oc" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/icemoon/command_post/dorms) +"og" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"oh" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"oj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"ok" = ( +/turf/open/floor/plasteel/stairs/mid, +/area/ruin/icemoon/command_post) +"on" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"os" = ( +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"ow" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/officer) +"oz" = ( +/obj/effect/turf_decal/road/line{ + dir = 4 + }, +/mob/living/simple_animal/hostile/viscerator, +/turf/open/floor/concrete/pavement/icemoon, +/area/ruin/icemoon/command_post) +"oC" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"oF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"oJ" = ( +/obj/structure/railing/thin{ + dir = 10 + }, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"oP" = ( +/obj/effect/turf_decal/road/line{ + dir = 4 + }, +/turf/open/floor/concrete/pavement/icemoon, +/area/ruin/icemoon/command_post) +"oQ" = ( +/obj/machinery/power/floodlight{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"oV" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/warning/explosives/alt{ + pixel_x = 0; + pixel_y = 29 + }, +/obj/structure/railing/thin, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"pf" = ( +/obj/machinery/telecomms/hub, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"pm" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"pn" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"po" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"pD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/head/cowboy/black{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/item/clothing/shoes/cowboy/black{ + pixel_x = -8; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = 5; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 5; + pixel_y = -13 + }, +/obj/item/clothing/neck/shemagh/ramzi{ + pixel_x = 13; + pixel_y = -9 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 12; + pixel_y = -5 + }, +/obj/item/storage/box/ammo/a357{ + pixel_x = 7; + pixel_y = 5; + layer = 2.9 + }, +/obj/item/clothing/suit/ramzi{ + pixel_x = 4; + pixel_y = -16 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"pE" = ( +/obj/structure/table, +/obj/item/plate/small{ + pixel_x = -7; + pixel_y = -1; + layer = 2.9 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 9; + pixel_y = 12 + }, +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/obj/item/food/garlicbread{ + pixel_x = -7; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"pF" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/corner/opaque/orange{ + dir = 6 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/sign/warning{ + pixel_x = 28; + pixel_y = 1 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"pH" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"pK" = ( +/obj/machinery/oven, +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"pN" = ( +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"pR" = ( +/obj/structure/closet/secure_closet/armorycage{ + req_access = null + }, +/obj/item/storage/toolbox/ammo/c10mm{ + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/storage/toolbox/ammo/c556{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/storage/toolbox/ammo/shotgun{ + pixel_x = -6; + pixel_y = -5 + }, +/obj/item/ammo_box/magazine/m10mm_cottonmouth, +/obj/item/ammo_box/magazine/m10mm_cottonmouth{ + pixel_x = 8; + pixel_y = 0 + }, +/obj/item/ammo_box/magazine/m10mm_cottonmouth{ + pixel_x = 13; + pixel_y = 0 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"pU" = ( +/obj/machinery/door/poddoor{ + dir = 8; + id = "cavegarage" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/engi) +"qd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms) +"qg" = ( +/mob/living/simple_animal/hostile/human/ramzi/ranged/smg, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/mission_control) +"qr" = ( +/mob/living/simple_animal/hostile/viscerator, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"qs" = ( +/obj/effect/turf_decal/trimline/opaque/syndiered/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"qz" = ( +/obj/machinery/power/rtg/geothermal, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"qJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"qS" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 6 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/structure/barricade/wooden, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"qX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"rb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/mob/living/simple_animal/hostile/human/ramzi/ranged/space/hydra, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"rl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"rI" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"rN" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/eva) +"rS" = ( +/obj/item/flashlight/flare/burnt, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"sm" = ( +/obj/machinery/door/poddoor{ + dir = 8; + id = "caveshed" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/storage) +"sB" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/servingdish, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"sI" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"sK" = ( +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/plate{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/food/butterbiscuit{ + pixel_x = -10; + pixel_y = 7 + }, +/obj/item/food/boiledegg{ + pixel_x = -1; + pixel_y = 10 + }, +/obj/item/food/boiledegg{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"sQ" = ( +/turf/closed/mineral/random/snow, +/area/ruin/icemoon/command_post/kitchen) +"sS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"sT" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 6; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"sW" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 1 + }, +/obj/machinery/suit_storage_unit/inherit, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"sX" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/mission_control) +"sZ" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 1 + }, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/safe/floor, +/obj/structure/chair/comfy/grey/old/alt, +/obj/item/card/emag/limited, +/obj/item/organ/cyberimp/arm/toolset, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken3" + }, +/area/ruin/icemoon/command_post/dorms) +"ta" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"tf" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"tj" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 10; + pixel_y = -2 + }, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"tr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"tt" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/machinery/computer/telecomms/monitor{ + dir = 4; + icon_state = "computer-right" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"tM" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"tQ" = ( +/obj/machinery/telecomms/bus, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"tT" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/structure/railing/thin{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"ua" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms) +"uc" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 10; + layer = 2.040 + }, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/structure/railing/thin{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"ul" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"ur" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"ux" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/closet/wall/orange/directional/north, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -8; + pixel_y = 15 + }, +/obj/item/gun_maint_kit{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/gun_maint_kit{ + pixel_x = -3; + pixel_y = -7 + }, +/obj/item/weldingtool/largetank/empty{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/weldingtool/largetank/empty{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/item/stock_parts/cell/hyper{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/item/stock_parts/cell/hyper{ + pixel_x = 8; + pixel_y = -8 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"uA" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"uB" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/slab_1/icemoon/lit, +/area/ruin/icemoon/command_post) +"uK" = ( +/obj/effect/spawner/bunk_bed, +/obj/machinery/light/small/directional/north, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"uM" = ( +/turf/template_noop, +/area/template_noop) +"uQ" = ( +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"uR" = ( +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_x = 0; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/icemoon/command_post/dorms/third) +"uV" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/contraband/winchester{ + pixel_x = -31; + pixel_y = 0 + }, +/obj/structure/chair/comfy/beige/old/alt{ + dir = 4 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken" + }, +/area/ruin/icemoon/command_post/dorms) +"uW" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/structure/table, +/obj/item/plate{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/food/soup/oatmeal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"vb" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/towel, +/obj/item/towel, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms) +"ve" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms/second) +"vk" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 10; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"vt" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -10; + pixel_y = 1 + }, +/obj/item/flashlight/pen{ + pixel_x = -4; + pixel_y = -8 + }, +/obj/item/gun_maint_kit{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/gun_maint_kit{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"vu" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/machinery/telecomms/server, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"vv" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/closet, +/obj/item/storage/box/flares{ + pixel_x = 9; + pixel_y = 1 + }, +/obj/item/storage/box/flares{ + pixel_x = 9; + pixel_y = -6 + }, +/obj/item/trench_tool{ + pixel_x = 0; + pixel_y = -3 + }, +/obj/item/radio/weather_monitor{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/radio/weather_monitor{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms) +"vB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"vG" = ( +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"vI" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"vJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"vS" = ( +/turf/closed/wall/mineral/titanium/survival/nodiagonal, +/area/ruin/icemoon/command_post/dorms/third) +"vV" = ( +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/mission_control) +"wc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/mission_control) +"wg" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"wh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ + dir = 8; + piping_layer = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"wj" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"wp" = ( +/obj/structure/platform/ship{ + dir = 10 + }, +/obj/structure/railing/thin{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/syndiered/line, +/obj/machinery/computer/crew/syndie{ + dir = 4; + icon_state = "computer-left" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/icemoon/command_post/mission_control) +"wy" = ( +/obj/structure/closet/crate/freezer, +/obj/effect/mapping_helpers/crate_shelve, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab/dofitis, +/obj/item/food/meat/slab/dofitis, +/obj/item/food/meat/slab/miras, +/obj/item/food/meat/slab/miras, +/turf/open/floor/plating/asteroid/iceberg, +/area/ruin/icemoon/command_post/kitchen) +"wz" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"wA" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 5; + layer = 2.040 + }, +/obj/structure/closet, +/obj/item/clothing/suit/armor/ramzi{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/clothing/suit/armor/ramzi{ + pixel_x = 2; + pixel_y = -9 + }, +/obj/item/clothing/suit/armor/ramzi/bulletproof{ + pixel_x = 11; + pixel_y = -10 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"wH" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 1 + }, +/obj/structure/fermenting_barrel/distiller, +/obj/structure/sign/poster/contraband/red_rum{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/platform/ship_three{ + dir = 1; + layer = 2.9 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = -11; + pixel_y = 21 + }, +/obj/item/reagent_containers/food/drinks/bottle/trappist{ + pixel_x = 13; + pixel_y = 21 + }, +/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium{ + pixel_x = 4; + pixel_y = 21 + }, +/obj/item/reagent_containers/food/drinks/bottle/sake/wolfgirl{ + pixel_x = -3; + pixel_y = 22 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/icemoon/command_post/dorms) +"wJ" = ( +/obj/machinery/power/floodlight{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-9" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"wN" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"wO" = ( +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"wP" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/armory) +"wT" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clipboard{ + pixel_x = 4; + pixel_y = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"xd" = ( +/obj/structure/dresser, +/obj/structure/noticeboard{ + pixel_x = 0; + pixel_y = 28; + name = "gun rack"; + desc = "A board for holding a gun." + }, +/obj/item/melee/knife/hunting, +/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/factory{ + pixel_x = -7; + pixel_y = 27; + layer = 3.1 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"xf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/north, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"xn" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"xq" = ( +/obj/structure/sink/kitchen{ + dir = 1; + name = "sink" + }, +/obj/structure/mirror{ + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"xy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/mission_control) +"xB" = ( +/obj/structure/closet/secure_closet/freezer/wall/directional/north, +/obj/item/reagent_containers/condiment/flour{ + pixel_x = -10; + pixel_y = 8 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = 0; + pixel_y = 9 + }, +/obj/item/reagent_containers/condiment/flour{ + pixel_x = -10; + pixel_y = 4 + }, +/obj/item/food/grown/onion{ + pixel_x = -3; + pixel_y = -5 + }, +/obj/item/food/grown/onion{ + pixel_x = -9; + pixel_y = -6 + }, +/obj/item/food/grown/onion{ + pixel_x = -14; + pixel_y = -6 + }, +/obj/item/food/grown/potato{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/food/grown/potato{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/item/food/grown/potato{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"xI" = ( +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms/second) +"xJ" = ( +/turf/open/lava, +/area/ruin/icemoon/command_post) +"xM" = ( +/obj/structure/railing/thin{ + dir = 4 + }, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"xX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/icemoon/command_post/dorms) +"xY" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"yj" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"yo" = ( +/obj/structure/closet/crate/engineering, +/obj/item/storage/box/emptysandbags{ + pixel_x = 2; + pixel_y = 0 + }, +/obj/item/storage/box/emptysandbags{ + pixel_x = -5; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"ys" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"yv" = ( +/obj/effect/turf_decal/atmos/air, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/turf/open/floor/engine/air, +/area/ruin/icemoon/command_post/engi) +"yA" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"yC" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"yE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/armory) +"yN" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"yU" = ( +/obj/structure/railing/thin{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/right, +/area/ruin/icemoon/command_post) +"yW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/layer4{ + name = "Oxygen Canister Filling" + }, +/obj/effect/turf_decal/industrial/hatch/blue, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"zb" = ( +/obj/structure/crate_shelf, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/radiation, +/obj/item/stack/sheet/mineral/plasma/twenty, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"zd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"ze" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 10; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"zk" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/mission_control) +"zm" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/armory) +"zr" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/machinery/telecomms/relay, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"zA" = ( +/obj/structure/marker_beacon{ + picked_color = "Bronze" + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"zB" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 4; + pixel_x = 7; + pixel_y = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"zG" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/officer) +"zH" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/eva) +"zL" = ( +/obj/item/folder/documents/syndicate/red{ + pixel_x = 0; + pixel_y = 7 + }, +/obj/structure/safe/floor, +/obj/item/spacecash/bundle/c1000, +/obj/item/spacecash/bundle/c1000, +/turf/open/floor/plating/rust, +/area/ruin/icemoon/command_post/officer) +"zU" = ( +/obj/item/cutting_board{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/food/sausage{ + pixel_x = -10; + pixel_y = 11 + }, +/obj/item/food/sausage{ + pixel_x = -7; + pixel_y = 7 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/crew_quarters) +"Af" = ( +/obj/structure/railing/thin/corner{ + dir = 8 + }, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"Ao" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"At" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/components/trinary/mixer/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"AB" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"AG" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/storage/box/stockparts/t3{ + pixel_x = -7; + pixel_y = -2 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"AZ" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/human/ramzi/ranged/cottonmouth, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"Ba" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = 10; + pixel_y = -1 + }, +/obj/item/food/grown/tobacco{ + pixel_x = -9; + pixel_y = 13 + }, +/obj/item/food/grown/tobacco{ + pixel_x = -10; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/officer) +"Be" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"Bj" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"Bk" = ( +/obj/structure/table/reinforced{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = 5; + pixel_y = 14 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"Br" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"Bs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/machinery/holopad, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"BN" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"BT" = ( +/mob/living/simple_animal/hostile/viscerator, +/obj/structure/platform/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"BV" = ( +/obj/structure/vein/ice/classfour, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"Ce" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "officelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/eva) +"Cf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"Ci" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Cl" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Cq" = ( +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/obj/structure/chair/bench/beige{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"Cy" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"CE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"CI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/portable_atmospherics/canister/hydrogen, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"Dn" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/dorms) +"DL" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/machinery/computer/telecomms/server{ + dir = 4; + icon_state = "computer-left" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"DM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"DO" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/plate_shard{ + pixel_x = 17; + pixel_y = 9 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"DT" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"Ef" = ( +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms) +"Eh" = ( +/obj/structure/fireplace{ + dir = 8; + pixel_x = -18; + pixel_y = -17 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -3; + pixel_y = -6 + }, +/obj/item/food/grown/onion{ + pixel_x = -11; + pixel_y = 10 + }, +/obj/item/food/grown/onion{ + pixel_x = -15; + pixel_y = 6 + }, +/obj/item/food/grown/potato{ + pixel_x = 0; + pixel_y = 9 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/crew_quarters) +"Ek" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/double/black, +/obj/structure/noticeboard{ + pixel_x = 0; + pixel_y = 28 + }, +/obj/item/clothing/neck/cloak/nanotrasen{ + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/carpet/green, +/area/ruin/icemoon/command_post/officer) +"En" = ( +/obj/structure/closet/wall/med/directional/north, +/obj/item/bonesetter{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/stack/medical/splint/twelve{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/medical/bruise_pack{ + pixel_x = 7; + pixel_y = 20 + }, +/obj/item/stack/medical/ointment{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/chitosan{ + pixel_x = 10; + pixel_y = 16 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 8; + pixel_y = 7 + }, +/obj/item/reagent_containers/hypospray/medipen/morphine{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/reagent_containers/hypospray/medipen/morphine{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/item/reagent_containers/medigel/sterilizine{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/item/clothing/suit/ramzi/smock{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/item/clothing/head/ramzi/surgical{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/item/clothing/neck/stethoscope{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = -6; + pixel_y = 12; + layer = 2.9 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"Er" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 8 + }, +/obj/structure/sign/poster/contraband/stechkin{ + pixel_x = -32; + pixel_y = -1 + }, +/obj/structure/closet/wall/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -11; + pixel_y = -11 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -3; + pixel_y = -11 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 9; + pixel_y = -9 + }, +/obj/item/clothing/neck/shemagh/ramzi{ + pixel_x = -10; + pixel_y = 4 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = 0; + pixel_y = -1; + layer = 3.1 + }, +/obj/item/storage/box/ammo/c22lr{ + pixel_x = -7; + pixel_y = 10 + }, +/obj/item/gun_maint_kit{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 8; + pixel_y = -1 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/icemoon/command_post/dorms) +"Ez" = ( +/obj/structure/dresser, +/obj/item/gun/ballistic/automatic/pistol/himehabu{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/ammo_box/magazine/m22lr_himehabu{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/ammo_box/magazine/m22lr_himehabu{ + pixel_x = 10; + pixel_y = 9 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"EB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/platform{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"EG" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen/second) +"EI" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/human/ramzi/ranged/shotgun, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"ES" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms) +"EV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer2{ + dir = 8 + }, +/turf/open/floor/engine/air, +/area/ruin/icemoon/command_post/engi) +"Fe" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate/freezer, +/obj/item/food/raw_sausage, +/obj/item/food/raw_sausage, +/obj/item/food/raw_sausage, +/obj/item/food/raw_sausage, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/obj/item/food/raw_meatball, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post/kitchen) +"Fh" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/mission_control) +"Fk" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"Fo" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 6; + layer = 2.040 + }, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/structure/railing/thin{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"Fs" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30"; + dir = 1 + }, +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/toy/toy_xeno{ + pixel_x = 12; + pixel_y = 5 + }, +/obj/item/toy/toy_xeno{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/icemoon/command_post/dorms) +"Fw" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/rcl/pre_loaded, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"Fy" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/concrete/slab_2, +/area/ruin/icemoon/command_post/dorms) +"FR" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/corner/opaque/orange{ + dir = 6 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/structure/sign/warning{ + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"Gq" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/mission_control) +"Gw" = ( +/obj/machinery/autolathe, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -8; + pixel_y = 0 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"Gy" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"GI" = ( +/obj/structure/platform/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"GW" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"GX" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 5; + layer = 2.040 + }, +/obj/structure/chair/stool, +/obj/item/reagent_containers/glass/bucket{ + pixel_x = 7; + pixel_y = 15 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"Hg" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/mob/living/simple_animal/hostile/human/ramzi/ranged/space/stormtrooper/hydra/dmr{ + wander = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/armory) +"Ho" = ( +/obj/effect/turf_decal/road, +/turf/open/floor/concrete/pavement/icemoon, +/area/ruin/icemoon/command_post) +"Hx" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/mob/living/simple_animal/hostile/human/ramzi/melee/space/sledge{ + wander = 0 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"HB" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "officelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen) +"HG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/eva) +"HQ" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/storage) +"HT" = ( +/obj/machinery/button/door{ + pixel_x = 0; + pixel_y = 25; + name = "garage button"; + id = "cavegarage" + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"Ii" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/human/ramzi/ranged/space/shotgun, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"Il" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"Im" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"Is" = ( +/obj/effect/turf_decal/borderfloor, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"Iw" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/item/poster/random_contraband, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms/third) +"IJ" = ( +/obj/effect/turf_decal/trimline/opaque/syndiered/line{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"IO" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "officelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/mission_control) +"IY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/storage) +"IZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/eva) +"Jh" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"Ji" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 2 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Jl" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"Jn" = ( +/obj/structure/railing/thin/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"Jr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken3" + }, +/area/ruin/icemoon/command_post/dorms) +"Jt" = ( +/obj/structure/filingcabinet{ + dir = 4; + pixel_x = -10; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/armory) +"Ju" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"Jy" = ( +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/toolbox/syndicate{ + pixel_x = -13; + pixel_y = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"JA" = ( +/obj/effect/turf_decal/borderfloorblack/corner, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 9; + layer = 2.04 + }, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/trash/syndi_cakes{ + pixel_x = -5; + pixel_y = 4 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/armory) +"JC" = ( +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"JE" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"JH" = ( +/turf/open/floor/plating/asteroid/snow/lit, +/area/overmap_encounter/planetoid/ice/explored) +"JK" = ( +/obj/machinery/button/door{ + name = "shed door"; + id = "caveshed"; + pixel_x = 0; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Ka" = ( +/obj/machinery/button/door{ + pixel_x = 21; + pixel_y = -9; + id = "ramziminingbathroom"; + normaldoorcontrol = 1; + name = "bathroom lock"; + specialfunctions = 4; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/carpet/black{ + name = "bathroom mat" + }, +/area/ruin/icemoon/command_post/dorms) +"Km" = ( +/obj/structure/dresser, +/obj/item/disk/nuclear/fake{ + pixel_x = -5; + pixel_y = 11 + }, +/turf/open/floor/carpet/green, +/area/ruin/icemoon/command_post/officer) +"KC" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border{ + dir = 8 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"KG" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms) +"KH" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"KK" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/officer) +"Ld" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"Lh" = ( +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/icemoon/command_post/dorms) +"Li" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"Ll" = ( +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/icemoon/command_post/kitchen) +"Lo" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/structure/closet, +/obj/item/clothing/head/helmet/m10/ramzi{ + pixel_x = -7; + pixel_y = -4 + }, +/obj/item/clothing/head/helmet/m10/ramzi{ + pixel_x = -7; + pixel_y = -8 + }, +/obj/item/clothing/head/helmet/bulletproof/x11/ramzi{ + pixel_x = 8; + pixel_y = -9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"LA" = ( +/turf/open/floor/concrete/slab_1/icemoon/lit, +/area/ruin/icemoon/command_post) +"LD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -10; + pixel_y = -13 + }, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -1; + pixel_y = -13 + }, +/obj/item/clothing/suit/ramzi{ + pixel_x = 7; + pixel_y = -12 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/storage/pouch/engi{ + pixel_x = -10; + pixel_y = 0 + }, +/obj/item/radio/old{ + pixel_x = -9; + pixel_y = 12; + name = "decommissioned uplink"; + desc = "An old operative's uplink disguised as a radio. This one is no longer supplied." + }, +/obj/item/stack/telecrystal/five{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken3" + }, +/area/ruin/icemoon/command_post/dorms) +"LH" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"LI" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen) +"LM" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"LQ" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/armory) +"LY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"Me" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"Mf" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/engi) +"Mh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"Mn" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border, +/obj/machinery/fax/ramzi, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"MM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"No" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/carpet/green, +/area/ruin/icemoon/command_post/officer) +"Nq" = ( +/obj/structure/dresser, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/obj/structure/sign/poster/contraband/smoke{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/storage/pill_bottle/finobranc{ + pixel_x = 8; + pixel_y = 7 + }, +/obj/item/reagent_containers/hypospray/medipen/tramal{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/reagent_containers/hypospray/medipen/tramal{ + pixel_x = -9; + pixel_y = 5 + }, +/obj/item/reagent_containers/hypospray/medipen/rabbit{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms/second) +"Nv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"NA" = ( +/obj/machinery/door/airlock/freezer{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen) +"NE" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen) +"NF" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"NL" = ( +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 11; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 4; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -10; + pixel_y = -10 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -4; + pixel_y = 0 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -9; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms/second) +"NX" = ( +/obj/structure/crate_shelf, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/engineering, +/obj/item/trench_tool, +/obj/item/trench_tool{ + pixel_x = 0; + pixel_y = 5 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"Ob" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/directional/south, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"Of" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4{ + dir = 5 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/engi) +"Og" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 6 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Oi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"Op" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/concrete/slab_2, +/area/ruin/icemoon/command_post/dorms) +"Oy" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"OA" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"OC" = ( +/obj/structure/guncloset, +/obj/item/gun/ballistic/shotgun/doublebarrel/roumain, +/obj/machinery/light/small/directional/east, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"OD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/concrete/slab_2, +/area/ruin/icemoon/command_post/dorms) +"OV" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms/third) +"OW" = ( +/obj/structure/dresser{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/item/clothing/gloves/boxing{ + pixel_x = -6; + pixel_y = 12 + }, +/obj/item/storage/fancy/cigarettes/cigpack_cannabis{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/storage/fancy/cigarettes/cigpack_cannabis{ + pixel_x = 11; + pixel_y = 8 + }, +/obj/item/melee/knife/switchblade{ + pixel_x = -6; + pixel_y = 7 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms/second) +"OZ" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/mission_control) +"Pd" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/table, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -8; + pixel_y = 13 + }, +/obj/item/food/soup/oatmeal{ + pixel_x = 7; + pixel_y = 0 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"Pf" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen) +"Ps" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken" + }, +/area/ruin/icemoon/command_post/dorms) +"PA" = ( +/obj/structure/railing/thin/corner{ + dir = 8 + }, +/obj/structure/chair/handrail{ + dir = 1; + name = "overhead handrail" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/eva) +"PC" = ( +/obj/structure/platform/ship{ + dir = 8 + }, +/obj/structure/railing/thin{ + dir = 8 + }, +/obj/machinery/modular_computer/console/preset/command{ + dir = 4; + icon_state = "computer-middle" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/icemoon/command_post/mission_control) +"PI" = ( +/obj/effect/spawner/bunk_bed, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_x = 0; + pixel_y = 31 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms/second) +"PL" = ( +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"PM" = ( +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/obj/structure/chair/bench/beige{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"PN" = ( +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 0; + pixel_y = -10 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -8; + pixel_y = -10 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 9; + pixel_y = -8 + }, +/obj/item/clothing/suit/ramzi, +/obj/item/clothing/suit/ramzi{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 0; + pixel_y = 6 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/icemoon/command_post/dorms/third) +"Qi" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate/engineering, +/obj/item/storage/box/flares{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/storage/box/flares{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/storage/box/flares{ + pixel_x = -8; + pixel_y = 2 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"Qj" = ( +/obj/structure/railing/thin/corner, +/obj/structure/chair/handrail{ + dir = 1; + name = "overhead handrail" + }, +/obj/item/clothing/suit/space/hardsuit/syndi/ramzi, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/eva) +"Qt" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = 7; + pixel_y = 12 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"Qv" = ( +/obj/effect/turf_decal/trimline/opaque/syndiered/line{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"QB" = ( +/obj/structure/platform{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"QC" = ( +/obj/effect/turf_decal/borderfloorblack/corner, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 9; + layer = 2.04 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/crew_quarters) +"QF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"QM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"QS" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "officelock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/armory) +"QW" = ( +/obj/effect/turf_decal/road/line{ + dir = 8 + }, +/turf/open/floor/concrete/pavement/icemoon, +/area/overmap_encounter/planetoid/ice/explored) +"QY" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"Rp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10; + color = "#543C30" + }, +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"Rs" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/radio/intercom/wideband/table{ + dir = 1; + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = 4; + pixel_y = 31 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"Ru" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 6 + }, +/turf/closed/mineral/random/snow, +/area/ruin/icemoon/command_post) +"RB" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/pen{ + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"RG" = ( +/turf/open/floor/concrete/slab_2/icemoon, +/area/ruin/icemoon/command_post) +"RI" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 2; + name = "Air to Distro" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/engi) +"RJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -1; + pixel_y = -11 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = -8; + pixel_y = -11 + }, +/obj/item/clothing/neck/shemagh/ramzi{ + pixel_x = -7; + pixel_y = 4; + layer = 3.1 + }, +/obj/item/clothing/neck/scarf/pink{ + pixel_x = 1; + pixel_y = -2; + layer = 3.1 + }, +/obj/item/clothing/under/dress/skirt/pinafore/maroon{ + pixel_x = 10; + pixel_y = 1; + layer = 3.1 + }, +/obj/item/camera{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/storage/photo_album{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 4; + pixel_y = -9 + }, +/obj/item/clothing/shoes/heels/black{ + pixel_x = 11; + pixel_y = -14 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"RR" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloorblack/corner, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 9; + layer = 2.04 + }, +/obj/item/plate_shard{ + pixel_x = -5; + pixel_y = -12 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"Sb" = ( +/obj/effect/turf_decal/corner/opaque/syndiered/border{ + dir = 1 + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/mission_control) +"Sf" = ( +/turf/open/floor/plating/asteroid/iceberg, +/area/ruin/icemoon/command_post/kitchen) +"Sh" = ( +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"Sk" = ( +/obj/structure/guncloset, +/obj/item/gun/ballistic/automatic/pistol/rattlesnake/cottonmouth, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"Sq" = ( +/obj/structure/table/rolling, +/obj/item/storage/toolbox/syndicate{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/clothing/glasses/welding{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"SF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken" + }, +/area/ruin/icemoon/command_post/dorms) +"SH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"Ta" = ( +/obj/structure/closet/secure_closet/armorycage{ + pixel_x = 0; + pixel_y = 0; + req_access = null + }, +/obj/item/grenade/spawnergrenade/manhacks{ + pixel_x = -5; + pixel_y = -4 + }, +/obj/item/grenade/spawnergrenade/manhacks{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/grenade/spawnergrenade/manhacks{ + pixel_x = -5; + pixel_y = 11 + }, +/obj/item/grenade/smokebomb{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/grenade/smokebomb{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/grenade/smokebomb{ + pixel_x = 7; + pixel_y = 11 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"Tb" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/mob/living/simple_animal/hostile/viscerator, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Te" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/mission_control) +"Tz" = ( +/obj/structure/platform/corner{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"TA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/dorms) +"TQ" = ( +/obj/machinery/door/airlock/external{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/icemoon/command_post/dorms/third) +"TR" = ( +/obj/effect/turf_decal/siding/wood/end{ + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"TV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/storage) +"Ui" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/kitchen/second) +"Uj" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/officer) +"Uk" = ( +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"Uo" = ( +/obj/structure/table/wood, +/obj/machinery/fax/ramzi, +/obj/item/radio/intercom/wideband/directional/west, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/officer) +"Uq" = ( +/obj/machinery/door/airlock/grunge, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"UP" = ( +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/storage) +"Ve" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"Vf" = ( +/obj/effect/turf_decal/road, +/mob/living/simple_animal/hostile/viscerator, +/turf/open/floor/concrete/pavement/icemoon, +/area/ruin/icemoon/command_post) +"Vi" = ( +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/concrete, +/area/ruin/icemoon/command_post/engi) +"Vj" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Vr" = ( +/mob/living/simple_animal/hostile/viscerator, +/turf/open/floor/concrete/slab_1/icemoon/lit, +/area/ruin/icemoon/command_post) +"Vs" = ( +/obj/structure/table/reinforced, +/obj/item/plate{ + pixel_x = 10; + pixel_y = 0 + }, +/obj/item/plate{ + pixel_x = 10; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = -5; + pixel_y = -7 + }, +/obj/item/cutting_board{ + pixel_x = -4; + pixel_y = 0 + }, +/obj/item/melee/knife/butcher{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/melee/knife/kitchen{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -13; + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -13; + pixel_y = 10 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3; + pixel_y = 10 + }, +/obj/item/plate{ + pixel_x = 10; + pixel_y = -6 + }, +/obj/item/plate{ + pixel_x = 10; + pixel_y = -9 + }, +/obj/structure/closet/wall/white/directional/east{ + name = "kitchen cabinet" + }, +/obj/effect/turf_decal/corner/transparent/red/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/icemoon/command_post/kitchen) +"Vu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5; + color = "#543C30" + }, +/obj/structure/closet/wall/blue/directional/east, +/obj/item/clothing/suit/armor/ramzi/captain{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/clothing/suit/armor/ramzi/officer{ + pixel_x = -9; + pixel_y = 8 + }, +/obj/item/clothing/head/ramzi/beret{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/clothing/head/ramzi/peaked{ + pixel_x = 9; + pixel_y = 12 + }, +/obj/item/clothing/under/syndicate/ramzi/officer{ + pixel_x = 10; + pixel_y = 1 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -1; + pixel_y = -5 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"Vv" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 4; + layer = 2.040 + }, +/obj/machinery/button/door{ + dir = 8; + pixel_x = 22; + pixel_y = -10; + id = "rightarmoury"; + name = "Right Armoury Lockdown" + }, +/obj/machinery/button/door{ + dir = 8; + pixel_x = 22; + pixel_y = 10; + name = "Left Armoury Lockdown"; + id = "leftarmoury" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/icemoon/command_post/armory) +"Vw" = ( +/turf/open/floor/plating/asteroid/icerock, +/area/overmap_encounter/planetoid/ice/explored) +"VC" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "rightarmoury" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"VR" = ( +/obj/effect/spawner/bunk_bed, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms/third) +"Wa" = ( +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6; + color = "#543C30" + }, +/obj/structure/closet/wall/directional/east, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 12; + pixel_y = 9 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 10; + pixel_y = -3 + }, +/obj/item/clothing/neck/shemagh/ramzi{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 8; + pixel_y = -12 + }, +/obj/item/clothing/suit/ramzi{ + pixel_x = -1; + pixel_y = 11 + }, +/obj/item/reagent_containers/food/drinks/flask/det{ + pixel_x = -1; + pixel_y = 3; + name = "premium flask"; + desc = "Alcohol is our friend. Can you really abandon a friend?" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"Wc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/concrete/slab_4, +/area/ruin/icemoon/command_post/armory) +"Wt" = ( +/turf/open/floor/concrete/slab_1/icemoon/lit, +/area/overmap_encounter/planetoid/ice/explored) +"Wz" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "officelock" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/engi) +"WB" = ( +/obj/structure/platform/ship{ + dir = 8 + }, +/obj/structure/railing/thin{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/syndiered/line{ + dir = 1 + }, +/obj/machinery/computer/monitor{ + dir = 4; + icon_state = "computer-right" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/icemoon/command_post/mission_control) +"WF" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/armory) +"WL" = ( +/obj/machinery/power/rtg/geothermal, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"WO" = ( +/obj/structure/crate_shelf, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post/kitchen) +"WX" = ( +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/engi) +"Xc" = ( +/obj/effect/spawner/bunk_bed, +/obj/item/toy/plush/moth/redish{ + pixel_x = 9; + pixel_y = -2; + name = "Yitosun"; + desc = "An adorable mothperson plushy. It's a red bug! A little nametag labeled 'Yitosun' is penned in a neat cursive." + }, +/obj/item/toy/plush/moth/poison{ + pixel_x = 5; + pixel_y = -8; + name = "Anna"; + desc = "An adorable mothperson plushy. It's a toxic bug! A little nametag labeled 'Anna' is penned in a neat cursive." + }, +/obj/item/toy/plush/moth/monarch{ + pixel_x = -1; + pixel_y = -6; + name = "Debbie"; + desc = "An adorable mothperson plushy. It's an important bug! A little nametag labeled 'Debbie' is penned in a neat cursive." + }, +/obj/item/toy/plush/moth/snow{ + pixel_x = -8; + pixel_y = -6; + name = "Myo"; + desc = "An adorable mothperson plushy. It's a cool bug! A little nametag labeled 'Myo' is penned in a neat cursive. The antennae are perked up like bunny ears." + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"Xp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/officer) +"Xt" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/eva) +"Xw" = ( +/obj/item/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"XF" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post) +"XM" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/syndicate{ + pixel_x = -2; + pixel_y = 0 + }, +/obj/item/clothing/glasses/welding{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/engi) +"XP" = ( +/obj/structure/platform{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"XS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood/walnut, +/area/ruin/icemoon/command_post/dorms) +"Yb" = ( +/obj/effect/turf_decal/road, +/turf/open/floor/concrete/pavement/icemoon, +/area/overmap_encounter/planetoid/ice/explored) +"Ye" = ( +/mob/living/simple_animal/hostile/human/ramzi/ranged/smg/sidewinder{ + wander = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating/icemoon, +/area/ruin/icemoon/command_post) +"Yn" = ( +/obj/machinery/telecomms/broadcaster, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/icemoon/command_post/mission_control) +"Yt" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/structure/curtain/cloth, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/kitchen/second) +"Yy" = ( +/mob/living/simple_animal/hostile/human/ramzi/ranged/cottonmouth, +/obj/machinery/light/directional/south, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"YD" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"YE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/icemoon/command_post/mission_control) +"YF" = ( +/obj/structure/dresser, +/obj/item/stack/arcadeticket{ + pixel_x = 0; + pixel_y = 15 + }, +/obj/structure/sign/poster/rilena/tali{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/reagent_containers/food/drinks/rilenacup{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/paper/fluff/ruins{ + name = "angry note"; + pixel_x = -6; + pixel_y = 7; + default_raw_text = "you dumb fucker STOP MOVING THE CHAIR i dont care you have your safe under it, its cramped as all hell in here" + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/dorms) +"YP" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 8; + layer = 2.040 + }, +/obj/structure/railing/thin/corner, +/obj/structure/chair/handrail{ + dir = 1; + name = "overhead handrail" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/eva) +"YQ" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating/asteroid/icerock/cracked, +/area/ruin/icemoon/command_post) +"YS" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/ruin/icemoon/command_post/dorms/second) +"YT" = ( +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -8; + pixel_y = -11 + }, +/obj/item/clothing/under/syndicate/ramzi/overalls{ + pixel_x = -3; + pixel_y = -11 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 6; + pixel_y = -11 + }, +/obj/item/clothing/under/syndicate/ramzi{ + pixel_x = 12; + pixel_y = -11 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/clothing/shoes/combat{ + pixel_x = 10; + pixel_y = 3 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/dorms/second) +"YU" = ( +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/eva) +"YY" = ( +/turf/closed/wall/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"YZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/armory) +"Zl" = ( +/obj/effect/turf_decal/road/line{ + dir = 4 + }, +/turf/open/floor/concrete/pavement/icemoon, +/area/overmap_encounter/planetoid/ice/explored) +"Zp" = ( +/obj/effect/turf_decal/corner_steel_grid{ + dir = 9 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/mob_spawn/human/skeleton, +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/icerock, +/area/ruin/icemoon/command_post) +"Zw" = ( +/turf/open/floor/concrete/slab_1, +/area/ruin/icemoon/command_post/kitchen/second) +"ZH" = ( +/obj/machinery/door/airlock/grunge, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/crew_quarters) +"ZN" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + id_tag = "ramziminingofficer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/reinforced, +/area/ruin/icemoon/command_post/officer) +"ZT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/concrete/tiles, +/area/ruin/icemoon/command_post/mission_control) +"ZZ" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/closet, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 9; + pixel_y = 1 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 0; + pixel_y = 1 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -9; + pixel_y = 1 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/clothing/head/ramzi/flap{ + pixel_x = -9; + pixel_y = 8 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -9; + pixel_y = -9 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = -3; + pixel_y = -9 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = 2; + pixel_y = -9 + }, +/obj/item/clothing/neck/scarf/maroon{ + pixel_x = 8; + pixel_y = -9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ruin/icemoon/command_post/dorms) + +(1,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(2,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(3,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +os +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(4,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +os +os +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +"} +(5,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +nE +qr +kp +kp +kp +kp +kp +kp +kp +kp +HQ +HQ +HQ +HQ +HQ +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +"} +(6,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +nE +nE +os +kp +kp +jt +jt +jt +jt +jt +HQ +gk +MM +Fw +HQ +HQ +kp +vS +vS +vS +vS +vS +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +"} +(7,1,1) = {" +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +fs +fs +fs +kp +kp +nE +os +kp +jt +jt +ht +Nq +kb +jt +NX +UP +UP +UP +et +HQ +kp +vS +VR +cp +VR +vS +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +JH +JH +JH +uM +uM +"} +(8,1,1) = {" +uM +uM +uM +uM +uM +uM +kp +kp +fs +fs +fs +fs +kp +kp +kp +kp +nE +kp +kp +jt +PI +mL +xI +NL +jt +zb +IY +UP +UP +wz +HQ +kp +vS +Iw +OV +eM +vS +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +JH +JH +JH +JH +uM +"} +(9,1,1) = {" +uM +uM +uM +uM +uM +kp +kp +fs +fs +fs +fs +kp +kp +kp +fs +kp +qr +os +kp +jt +OW +xI +da +YT +jt +Qi +UP +UP +IY +wz +HQ +kp +vS +ho +uR +PN +vS +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +Vw +JH +JH +JH +JH +"} +(10,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +fs +fs +fs +fs +fs +fs +fs +fs +kp +os +os +qr +jt +nb +lW +YS +ve +jt +HQ +TV +Sh +Mh +HQ +HQ +kp +vS +vS +jY +vS +vS +kp +kp +XF +AB +kp +kp +AB +XF +kp +Vw +Vw +Vw +Vw +JH +JH +"} +(11,1,1) = {" +uM +uM +uM +kp +kp +kp +kp +kp +fs +kp +fs +dJ +dJ +dJ +dJ +dJ +XF +YQ +kp +jt +jt +jt +mR +jt +jt +HQ +sm +bI +bI +HQ +kp +kp +kp +vS +TQ +vS +nE +os +qr +hz +LA +Vr +LA +LA +hz +LA +Wt +Wt +Vw +Wt +JH +JH +"} +(12,1,1) = {" +uM +uM +uM +kp +kp +kp +kp +fs +kp +fs +kp +dJ +hn +Sf +ff +sQ +kp +qr +kp +EG +RR +DO +Li +au +nX +EG +JK +os +os +xY +kp +kp +kp +kp +Br +nE +os +os +os +qr +hh +hh +hh +hh +hh +hh +QW +QW +Vw +QW +JH +JH +"} +(13,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +XF +wy +ig +ig +je +LI +kp +nE +kp +EG +sK +ji +ur +Ld +pn +ha +DM +qJ +os +Vj +os +kp +kp +XF +xf +os +os +os +os +os +Vf +Ho +Ho +Ho +Ho +Ho +Yb +Vw +Vw +JH +JH +Yb +"} +(14,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +KG +KG +KG +KG +Fe +WO +lr +Ll +LI +kp +nE +nE +EG +Ju +LH +sS +po +hr +EG +os +vB +Ye +gP +zd +zd +zd +zd +rl +os +os +os +os +os +oP +oP +oz +oP +oP +oP +Zl +Zl +Vw +Zl +Zl +JH +"} +(15,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +KG +Ez +Er +KG +LI +LI +LI +NA +LI +kp +os +aw +EG +Qt +Zw +tr +oj +Pd +Yt +os +Ci +os +Vj +os +os +os +nE +os +os +os +os +qr +uB +LA +Vr +LA +LA +uB +LA +Wt +Wt +Wt +Vw +Wt +JH +"} +(16,1,1) = {" +uM +kp +kp +kp +kp +kp +kp +KG +uK +RJ +KG +na +pE +PM +iR +LI +LI +kp +os +EG +sB +EI +jK +Zw +Ui +Yt +os +Ci +os +os +qr +os +os +os +os +os +os +os +kp +XF +AB +kp +kp +AB +XF +kp +Vw +Vw +Vw +JH +JH +JH +"} +(17,1,1) = {" +kp +kp +kp +kp +KG +KG +KG +KG +Fs +cj +KG +na +nk +Cq +Oy +xn +LI +BT +pN +EG +EG +oC +uW +yN +EG +EG +os +oQ +qr +os +os +os +os +rS +os +os +os +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +Vw +JH +JH +JH +JH +"} +(18,1,1) = {" +kp +kp +kp +kp +KG +lZ +Lh +KG +KG +mt +KG +xB +jN +gR +Jh +CE +NE +mc +os +os +EG +EG +bx +EG +EG +kp +kp +nE +os +qr +os +os +os +os +os +os +nE +nE +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +JH +JH +JH +uM +"} +(19,1,1) = {" +kp +kp +kp +kp +KG +En +xq +KG +Fy +Op +KG +pK +jN +Pf +ny +fO +LI +Tz +os +os +os +os +Br +os +kp +kp +XF +kp +nE +os +os +os +nE +os +os +nE +kp +nE +nE +kp +kp +kp +kp +kp +kp +kp +kp +JH +JH +JH +JH +uM +"} +(20,1,1) = {" +uM +kp +kp +kp +KG +bH +Ka +fa +OD +nG +KG +jU +Vs +LI +LI +HB +LI +YY +YY +fD +fD +GI +Br +os +nE +nE +Im +nE +nE +os +rS +zA +nE +os +os +Yy +XF +kp +nE +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +"} +(21,1,1) = {" +uM +kp +kp +kp +KG +KG +KG +KG +KG +TA +KG +KG +KG +YY +QC +ly +rI +vk +YY +bV +oJ +XP +Br +os +os +os +nE +nE +os +os +nE +BV +nE +os +nE +nE +kp +kp +nE +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +"} +(22,1,1) = {" +uM +uM +kp +kp +kp +KG +xd +uV +KG +Cf +SF +oc +Dn +Uq +wN +Xw +PL +iC +ZH +RG +Af +jJ +Br +os +os +os +os +os +os +os +nE +zA +os +os +nE +os +nE +nE +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +"} +(23,1,1) = {" +uM +uM +kp +kp +kp +KG +uK +pD +KG +xX +fV +qd +ZZ +YY +eQ +mY +bK +kr +YY +RG +ul +ok +Br +os +os +os +os +os +os +os +os +os +rS +os +os +os +nE +nE +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +"} +(24,1,1) = {" +uM +uM +kp +kp +kp +KG +wH +Wa +gK +XS +ES +ua +vv +YY +jM +gr +hW +Bj +Jl +RG +Jn +yU +Br +os +os +os +os +os +os +os +os +os +os +os +os +os +nE +kp +kp +kp +kp +kp +kp +kp +kp +uM +JH +uM +uM +uM +uM +uM +"} +(25,1,1) = {" +uM +uM +kp +kp +kp +KG +KG +KG +KG +rb +fG +Ef +vb +YY +GX +JE +fq +sT +Jl +xM +km +QB +Br +os +os +os +os +os +os +os +nE +os +os +os +os +os +kp +kp +kp +kp +kp +kp +kp +kp +kp +JH +JH +JH +uM +uM +uM +uM +"} +(26,1,1) = {" +uM +uM +kp +kp +kp +KG +sZ +Jy +gK +Ps +Jr +TR +nl +YY +Eh +zU +bM +YY +YY +on +on +Tz +Br +os +os +os +os +os +nE +og +XF +pH +nE +os +os +os +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +JH +JH +JH +uM +uM +uM +"} +(27,1,1) = {" +uM +uM +kp +kp +kp +KG +Xc +LD +Uj +Uj +ZN +Uj +Uj +Uj +Uj +YY +YY +YY +nE +nE +nE +nE +Br +os +os +os +os +os +nE +kp +kp +kp +nE +os +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +Vw +JH +JH +uM +uM +uM +"} +(28,1,1) = {" +uM +uM +uM +kp +kp +KG +YF +fY +Uj +ce +gd +lD +KK +Uo +Uj +GI +os +nE +nE +og +XF +bX +Br +os +os +os +os +os +kp +kp +kp +kp +os +yo +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +Vw +Vw +JH +uM +uM +uM +uM +"} +(29,1,1) = {" +uM +uM +uM +kp +kp +KG +KG +KG +Uj +sW +vJ +gj +Rp +Ba +fb +EB +zd +Ve +zd +zd +nZ +zd +Nv +QF +QF +JC +os +os +nE +kp +kp +nE +aw +os +os +XF +kp +kp +XF +kp +kp +XF +kp +kp +Vw +Vw +JH +JH +uM +uM +uM +uM +"} +(30,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +Uj +Km +cU +Xp +Bs +ow +zG +mc +os +sI +nE +os +Br +os +os +nE +os +os +tM +QF +QF +Me +Me +cT +os +Ji +yA +Og +yA +Ru +iJ +yA +yA +qS +df +Vw +Vw +Vw +JH +JH +uM +uM +uM +uM +"} +(31,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +Uj +Ek +No +Vu +zL +Uj +Uj +Tz +os +nE +nE +os +Br +os +nE +nE +nE +os +os +os +os +nE +kp +kp +wJ +Tb +YD +Cl +aZ +aZ +Zp +YD +YD +dS +os +Vw +Vw +Vw +Vw +JH +JH +uM +uM +uM +"} +(32,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +Uj +Uj +Uj +Uj +Uj +Uj +os +os +nE +nE +rN +rN +Ce +rN +rN +rN +HT +nE +os +os +os +lT +kp +kp +XF +kp +kp +XF +kp +kp +XF +kp +kp +XF +kp +Vw +Vw +Vw +Vw +JH +JH +uM +uM +uM +"} +(33,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +os +os +nE +nE +rN +rN +oV +Xt +YP +uc +rN +kC +kC +pU +pU +kC +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +Vw +JH +JH +uM +uM +uM +uM +"} +(34,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +nE +nE +nE +rN +ey +eg +zH +PA +tT +rN +iz +cn +nA +nA +NF +Mf +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Vw +JH +JH +uM +uM +uM +uM +uM +"} +(35,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +Gq +Gq +Gq +Gq +rN +jR +HG +IZ +YU +Be +rN +BN +Sq +vG +LY +jc +Bk +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +JH +JH +JH +JH +uM +uM +uM +uM +uM +"} +(36,1,1) = {" +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +Gq +Gq +tQ +pf +jp +rN +wg +YU +zH +fM +kR +rN +Is +Vi +vG +QY +jc +XM +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(37,1,1) = {" +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +Gq +gf +uQ +uQ +Fk +rN +ux +YU +zH +Qj +hy +rN +AZ +wO +vG +vG +GW +Ob +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(38,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Gq +vu +uQ +YE +mE +rN +wA +Lo +zH +jQ +Fo +rN +ys +vG +vG +Ii +Gy +Gw +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(39,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Gq +zr +oF +Fh +Yn +WF +WF +WF +jO +WF +WF +WF +iI +vG +vG +wO +bC +AG +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(40,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +Gq +Gq +Gq +Gq +IO +Gq +WF +JA +eE +zm +Cy +ze +jF +LM +kl +QM +jq +ng +kJ +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(41,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +Gq +Gq +tt +DL +Te +zk +nP +WF +Hx +Oi +LQ +YZ +nN +WF +WX +hl +jG +js +ta +Mf +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(42,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +Gq +cl +vV +OZ +xy +sX +kh +jF +do +wP +eZ +Uk +hX +WF +Mf +pF +FR +Mf +Wz +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(43,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +Gq +wT +qg +vV +wc +ZT +DT +WF +hN +pm +vI +vI +gh +WF +Mf +Mf +Mf +Mf +lg +Mf +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(44,1,1) = {" +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +Gq +Gq +WB +gD +PC +wp +le +WF +QS +WF +yE +yE +WF +WF +gA +Mf +yW +Of +gG +CI +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(45,1,1) = {" +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +Gq +Mn +Qv +wj +wj +qs +dX +WF +uA +Jt +Hg +Wc +vt +WF +yv +oh +At +RI +er +Il +Mf +kp +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(46,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +Gq +RB +IJ +ez +ez +lP +Sb +WF +gZ +tf +Vv +SH +iN +WF +EV +Mf +yj +qX +wh +Ao +Mf +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(47,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +Gq +Rs +KC +KH +nh +zB +tj +WF +nM +nM +WF +VC +VC +WF +Mf +Mf +yC +Mf +OA +Mf +Mf +kp +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(48,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +Gq +Gq +Gq +Gq +Gq +Gq +Gq +WF +Sk +pR +WF +OC +Ta +WF +XF +XF +qz +XF +WL +XF +XF +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(49,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +WF +WF +WF +WF +WF +WF +WF +XF +xJ +xJ +xJ +xJ +nE +XF +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(50,1,1) = {" +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +XF +nE +nE +xJ +xJ +xJ +XF +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(51,1,1) = {" +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +nE +nE +nE +os +xJ +nE +kp +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(52,1,1) = {" +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +os +os +os +os +nE +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(53,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +os +os +os +os +os +nE +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(54,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +nE +os +os +os +nE +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(55,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +kp +nE +os +os +os +nE +kp +uM +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} +(56,1,1) = {" +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +kp +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +kp +kp +os +os +os +os +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +uM +"} diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index e5a4b62393..ac5aa322fd 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -31,3 +31,10 @@ description = "There's been reports of a number of unmarked structures on a nearby ice world and what's more, a Gezenan transport just went missing in orbit." suffix = "icemoon_downed_transport.dmm" ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) + +/datum/map_template/ruin/icemoon/command_post + name = "Ramzi Command Post" + id = "command_post" + description = "A Ramzi Clique-controlled command post that directs raids and manages communications within its outfit within the sector." + suffix = "icemoon_command_post.dmm" + ruin_tags = list(RUIN_TAG_HARD_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER) diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index 4fcd299b2b..6ad63ac6e3 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -224,3 +224,51 @@ /area/ruin/unpowered/icemoon/downed_transport/security_office name = "Security Office" icon_state = "security" + +// command post + +/area/ruin/icemoon/command_post + name = "Command Post" + icon_state = "green" + +/area/ruin/icemoon/command_post/eva + name = "Command Post EVA Storage" + icon_state = "red" + +/area/ruin/icemoon/command_post/armory + name = "Command Post Armory" + icon_state = "armory" + +/area/ruin/icemoon/command_post/engi + name = "Command Post Garage" + icon_state = "engine" + +/area/ruin/icemoon/command_post/crew_quarters + name = "Command Post Crew Quarters" + icon_state = "crew_quarters" + +/area/ruin/icemoon/command_post/kitchen + name = "Command Post Kitchen" + icon_state = "cafeteria" + +/area/ruin/icemoon/command_post/dorms + name = "Command Post Dorms" + icon_state = "Sleep" + +/area/ruin/icemoon/command_post/officer + name = "Command Post Officer Dorm" + icon_state = "Sleep" + +/area/ruin/icemoon/command_post/mission_control + name = "Command Post Mission Control" + icon_state = "bridge" + +/area/ruin/icemoon/command_post/kitchen/second + +/area/ruin/icemoon/command_post/dorms/second + +/area/ruin/icemoon/command_post/dorms/third + +/area/ruin/icemoon/command_post/storage + name = "Command Post Shed" + icon_state = "storage" diff --git a/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm index 6db399c867..0614693726 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm @@ -302,6 +302,8 @@ casingtype = /obj/item/ammo_casing/a556_42 l_hand = /obj/item/gun/ballistic/automatic/assault/hydra projectilesound = 'sound/weapons/gun/rifle/hydra.ogg' + +/mob/living/simple_animal/hostile/human/ramzi/ranged/hydra/gunsmith mob_spawner = /obj/effect/mob_spawn/human/corpse/ramzi/trooper armor_base = /obj/item/clothing/suit/armor/ramzi/bulletproof From 4f95bfb217fb98e43f1b500240cbd507a3210015 Mon Sep 17 00:00:00 2001 From: rivercadaver Date: Sat, 17 Jan 2026 01:30:06 -0500 Subject: [PATCH 29/53] cavecrew remap (#5442) ## About The Pull Request image image ## Why It's Good For The Game Remaps cavecrew. Adds a bit more threat, some salvage, and keeps most of the original ruin loot the same. Mostly removes the metagame entrance that I never liked. Featuring: more vicious enemy placement, higher threat, some more versatile rewards, and some basic map hazards. Gives an old ruin some love while keeping it's essential concept. ## Changelog :cl: add: Added new things /:cl: --------- Co-authored-by: Erika Fox <94164348+Erikafox@users.noreply.github.com> --- .../JungleRuins/jungle_cavecrew.dmm | 14860 ++++++++++------ code/game/turfs/open/floor/plating/jungle.dm | 20 + .../hostile/human/frontiersman.dm | 13 + 3 files changed, 9482 insertions(+), 5411 deletions(-) diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index a741bc112f..4dd7b8dad1 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1,371 +1,277 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ad" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "5-8" + icon_state = "2-10" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 0; + pixel_y = -8 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"ae" = ( -/obj/structure/table/reinforced, -/obj/item/storage/backpack/duffelbag/syndie/c4{ - pixel_y = 5; - pixel_x = 2 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 10; + pixel_y = 6 }, -/obj/item/crowbar/power{ - pixel_y = -4 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -14; + pixel_y = 6 }, -/obj/effect/turf_decal/industrial/fire{ - dir = 5 +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash/large{ + pixel_x = -9; + pixel_y = 6 }, -/obj/item/ammo_casing/caseless/rocket{ - pixel_x = -6 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"ae" = ( +/obj/machinery/portable_atmospherics/canister/toxins{ + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50); + name = "shitty plasma canister"; + max_integrity = 60; + desc = "A shoddily constructed container of Plasma gas. Highly toxic." }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/security) +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) "ag" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"ah" = ( +/obj/structure/chair/bench/grey/directional/east, /obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 + dir = 9 }, -/obj/structure/closet/secure_closet/engineering_welding{ - req_access = null; - anchored = 1 +/obj/item/trash/candy, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"am" = ( +/obj/structure/cable{ + icon_state = "2-9" }, /obj/structure/railing{ dir = 4; layer = 4.1 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/engineering) -"ah" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"am" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) +/obj/structure/marker_beacon, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) "aq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/west, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 }, -/area/ruin/powered) +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"ar" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) "aw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, /obj/structure/cable{ - icon_state = "2-9" + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"aI" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "6-8" + icon_state = "4-6" }, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/jungle/cavecrew/cargo) -"aL" = ( -/obj/machinery/door/airlock/grunge{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/red{ + dir = 1 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"aM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing/corner{ +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"ax" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/road/slow{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-6" +/obj/effect/turf_decal/corner/opaque/tan/half{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"aO" = ( -/obj/structure/destructible/tribal_torch/lit{ - pixel_x = -11; - pixel_y = 19 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"aC" = ( +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 }, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/closed/wall/mineral/titanium/survival/pod, /area/overmap_encounter/planetoid/cave/explored) -"aY" = ( -/obj/structure/falsewall/plastitanium, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"bh" = ( -/obj/machinery/computer/camera_advanced{ - dir = 8 +"aD" = ( +/obj/machinery/button/door{ + pixel_x = -1; + pixel_y = -22; + dir = 1; + id = "cavecheckpointnorth" }, -/obj/effect/turf_decal/techfloor{ +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"aF" = ( +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" + }, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"aI" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"bm" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/security) -"bp" = ( -/turf/closed/wall/r_wall/yesdiag, -/area/ruin/powered) -"bt" = ( -/obj/effect/turf_decal/techfloor{ - dir = 5 +/obj/structure/table/wood/poker, +/obj/item/spacecash/bundle/c10, +/obj/item/spacecash/bundle/c10{ + pixel_x = 9; + pixel_y = 5 }, -/obj/structure/chair/office{ - dir = 4; - name = "tactical swivel chair" +/obj/item/spacecash/bundle/c1{ + pixel_x = -8; + pixel_y = 8 }, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"bx" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ - dir = 1 +/obj/item/spacecash/bundle/c20{ + pixel_x = 9; + pixel_y = -5 }, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"bG" = ( -/obj/structure/spacevine, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/cave/explored) -"bH" = ( -/obj/structure/bed, -/obj/effect/spawner/random/bedsheet, -/obj/structure/curtain/cloth/grey, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/carpet/nanoweave/beige, +/turf/open/floor/carpet/green/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"bJ" = ( -/obj/structure/flora/grass/jungle{ - pixel_x = -13; - pixel_y = -14 +"aL" = ( +/obj/structure/table/wood/reinforced{ + color = "#55391A" }, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/closed/mineral/random/jungle, /area/overmap_encounter/planetoid/cave/explored) -"bK" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 6; - pixel_y = 9 +"aO" = ( +/obj/structure/falsewall/plastitanium, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew) +"aR" = ( +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"aY" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -4; - pixel_y = -6 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"bg" = ( +/obj/structure/hazard/electrical/electrified_water, +/obj/structure/cable{ + icon_state = "0-1" }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"bU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants{ - icon_state = "plant-10" +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew) +"bj" = ( +/obj/structure/table/wood/reinforced, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 6; + pixel_y = 11 }, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/obj/item/spacecash/bundle/c1000{ + pixel_x = 7; + pixel_y = 4 }, -/turf/open/floor/pod/light, -/area/ruin/jungle/cavecrew/hallway) -"bX" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 +/obj/item/lighter{ + pixel_y = -6; + pixel_x = -4 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"cb" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/item/camera_bug{ + pixel_x = -9; + pixel_y = 9 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"cj" = ( -/obj/machinery/porta_turret/ruin/frontiersmen{ - dir = 6 +/obj/machinery/portable_atmospherics/canister/chlorine{ + name = "shoddily constructed chlorine canister"; + desc = "This canister of chlorine seems really week. Best hope it doesn't end up in your line of fire!"; + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50) }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/jungle/cavecrew/ship) -"ck" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"bm" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"cx" = ( -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/structure/chair{ + dir = 1 }, -/obj/machinery/door/airlock/hatch{ - dir = 4 +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"bp" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = -1; + pixel_y = -1 }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"cK" = ( -/obj/item/stack/rods/ten{ - pixel_x = -3 +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew/hallway) +"bs" = ( +/obj/structure/cable{ + icon_state = "2-9" }, -/obj/item/stack/ore/salvage/scraptitanium/five{ - pixel_x = 11; - pixel_y = -10 +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/obj/item/stack/ore/salvage/scrapsilver/five{ - pixel_y = 8; - pixel_x = 8 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"bt" = ( +/obj/machinery/portable_atmospherics/canister/oxygen{ + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50); + name = "poorly-maintained o2 canister"; + max_integrity = 60; + desc = "A poorly-constructed canister of Oxygen. Necessary for human life, but with this level of rust and pressure, more of a hazard." }, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"cO" = ( -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel/patterned/jungleplanet, +/turf/open/floor/plating/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"cV" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_x = -11; - pixel_y = 13 - }, -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 5; - pixel_x = 10 - }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"cX" = ( -/obj/structure/flora/junglebush/large{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/structure/flora/grass/jungle/b{ - pixel_x = 10; - pixel_y = 9 - }, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"dd" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"de" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ruin/jungle/cavecrew/ship) -"dj" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/industrial/loading{ - dir = 1 +"bu" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"dm" = ( -/obj/machinery/power/smes/engineering, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/radiation{ - dir = 4 +/obj/effect/decal/cleanable/plastic, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/components/binary/pump, /obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"ds" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 + icon_state = "1-9" }, -/obj/structure/chair/plastic{ - dir = 4; - pixel_y = 9; - pixel_x = -7 +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/ship) +"bx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/decal/cleanable/ash, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"bB" = ( +/obj/structure/platform/wood{ + dir = 6 }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"dt" = ( -/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"bF" = ( /obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/structure/closet/crate/secure/weapon, -/obj/item/grenade/chem_grenade/metalfoam{ - pixel_x = 2 - }, -/obj/item/grenade/chem_grenade/metalfoam{ - pixel_x = 6 - }, -/obj/item/grenade/empgrenade{ - pixel_x = -4 + dir = 8 }, -/obj/item/grenade/frag, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"du" = ( -/obj/machinery/porta_turret/ruin/frontiersmen{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 }, -/turf/closed/wall/mineral/plastitanium, -/area/ruin/jungle/cavecrew/ship) -"dz" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 +/obj/effect/turf_decal/industrial/caution{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/dark, /area/ruin/jungle/cavecrew/ship) -"dA" = ( -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"dH" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"dP" = ( -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 8; - pixel_x = 8 - }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" - }, -/area/ruin/powered) -"dQ" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"dS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/west, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"ea" = ( +"bG" = ( +/obj/structure/fermenting_barrel, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew/cargo) +"bH" = ( /obj/structure/railing{ dir = 8; layer = 4.1 @@ -373,3644 +279,6611 @@ /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, /area/ruin/jungle/cavecrew/ship) -"ef" = ( -/obj/structure/railing{ - dir = 1 +"bJ" = ( +/obj/structure/spacevine, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"bK" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"bT" = ( +/obj/structure/hazard/electrical/electrified_water, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew) +"bU" = ( /obj/structure/cable{ - icon_state = "4-10" + icon_state = "5-10" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"eg" = ( -/obj/effect/turf_decal/industrial/warning, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"ei" = ( -/obj/structure/frame/computer{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/effect/turf_decal/borderfloorblack{ + dir = 8; + layer = 2.01 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"ej" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "gut_holo"; +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"bY" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"cb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"ce" = ( +/obj/structure/platform/wood{ dir = 1 }, -/obj/machinery/button/shieldwallgen{ - dir = 1; - id = "gut_holo"; - pixel_x = 8; - pixel_y = -21 +/turf/open/floor/plasteel/stairs/wood/jungleplanet{ + dir = 4 }, -/obj/machinery/button/door{ - id = "gut_cargo"; - name = "Cargo Door Control"; - pixel_y = -22; - dir = 1 +/area/overmap_encounter/planetoid/cave/explored) +"cf" = ( +/obj/structure/railing{ + dir = 6; + layer = 3.1 }, -/obj/machinery/door/poddoor/shutters{ - id = "gut_cargo"; - name = "Blast Shutters"; - dir = 4 +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#c1b6a5" }, -/turf/open/floor/engine/hull/interior, +/obj/item/clothing/mask/whistle/trench{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/megaphone{ + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"ch" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/weapon, +/obj/item/ammo_box/magazine/m10mm_ringneck, +/obj/item/ammo_box/magazine/m10mm_ringneck, +/obj/item/gun/ballistic/automatic/pistol/ringneck, +/obj/item/melee/knife/combat, +/turf/open/floor/pod, /area/ruin/jungle/cavecrew/ship) -"eo" = ( -/obj/effect/decal/cleanable/dirt/dust, +"ci" = ( +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/sheet/metal/ten, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-5" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/obj/structure/closet/crate/secure/engineering, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/rods/ten, +/obj/item/stack/rods/ten, +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" }, -/area/ruin/powered) -"er" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 9 +/area/ruin/jungle/cavecrew) +"cj" = ( +/obj/machinery/door/poddoor, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/engine/hull/reinforced, +/area/ruin/jungle/cavecrew/ship) +"ck" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/wrapping, -/obj/structure/cable{ - icon_state = "6-8" +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"cl" = ( +/obj/structure/table, +/obj/item/storage/bag/tray/cafeteria{ + pixel_x = -9; + pixel_y = -1 }, -/obj/machinery/power/terminal, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/warning, -/obj/item/storage/toolbox/syndicate{ - pixel_y = 5; - pixel_x = 11 +/obj/item/storage/bag/tray/cafeteria{ + pixel_x = 9; + pixel_y = 10 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/item/reagent_containers/food/drinks/soda_cans/vimukti{ + pixel_x = 10; + pixel_y = 0 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -10; + pixel_y = 15 }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"cn" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"cs" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/spacevine/dense, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"cv" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/ship) -"es" = ( -/turf/template_noop, -/area/template_noop) -"eG" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_y = -8; - pixel_x = -31 - }, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"eQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/plasma, -/obj/effect/decal/cleanable/glass{ - pixel_x = 11; - pixel_y = -11 - }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"eU" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"cx" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 }, +/obj/machinery/light/directional/east, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"eY" = ( -/obj/structure/railing{ - layer = 3.1 +/obj/structure/cable{ + icon_state = "2-9" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"cD" = ( +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"cM" = ( +/obj/structure/flora/junglebush/large{ + pixel_x = -7; + pixel_y = 8 }, -/area/ruin/powered) -"fg" = ( -/obj/structure/flora/rock/jungle{ - pixel_x = 3; - pixel_y = 7 +/obj/structure/flora/grass/jungle/b{ + pixel_x = 10; + pixel_y = 9 }, +/obj/structure/spacevine, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"fv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/wall/red/directional/south{ - name = "Bartender's locker" +"cO" = ( +/obj/structure/cable{ + icon_state = "6-8" }, -/obj/item/clothing/under/suit/waiter/syndicate, -/obj/item/clothing/suit/apron/purple_bartender, -/obj/item/reagent_containers/food/drinks/shaker{ - pixel_x = -9; - pixel_y = 2 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"cV" = ( +/turf/closed/mineral/random/jungle, +/area/ruin/jungle/cavecrew/cargo) +"cX" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/obj/item/storage/pill_bottle/happy{ - pixel_y = -9; - pixel_x = -8 +/obj/structure/cable{ + icon_state = "2-9" }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" +/obj/effect/turf_decal/corner/opaque/yellow/half{ + dir = 4 }, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/hallway) -"fy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark/corner, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"fG" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 6; - pixel_y = 11 +"cZ" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"fI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken3" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/drip{ - pixel_x = 19; - pixel_y = 9 +/area/ruin/jungle/cavecrew/dormitories) +"dd" = ( +/obj/machinery/portable_atmospherics/canister/oxygen{ + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50); + name = "poorly-maintained o2 canister"; + max_integrity = 60; + desc = "A poorly-constructed canister of Oxygen. Necessary for human life, but with this level of rust and pressure, more of a hazard." }, -/obj/machinery/light/small/broken/directional/south, -/turf/open/floor/wood{ - icon_state = "wood-broken6" +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 }, -/area/ruin/jungle/cavecrew/dormitories) -"fS" = ( -/turf/closed/mineral/random/jungle, -/area/ruin/powered) -"fY" = ( -/obj/structure/railing{ - dir = 4; - layer = 3.1 +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 9 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/water/jungle, +/turf/open/floor/plasteel/tech, /area/ruin/jungle/cavecrew/cargo) -"gd" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"ge" = ( -/obj/structure/closet/cabinet, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/clothing/under/frontiersmen, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/under/misc/pj/blue, -/obj/machinery/light/small/broken/directional/north, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +"de" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -18; + pixel_y = 4 }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"gk" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 10; - color = "#808080" +/obj/structure/mirror{ + pixel_y = 29; + pixel_x = 0 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/south, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"gm" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ - dir = 1 +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"df" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"dh" = ( +/obj/machinery/door/airlock/hatch{ + dir = 4; + name = "Bathroom" }, -/turf/open/floor/plating/rust, +/turf/open/floor/plasteel/jungleplanet, /area/ruin/jungle/cavecrew/hallway) -"gv" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_y = -31; - pixel_x = -1 +"dj" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating/asteroid/dirt/jungle, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"gF" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/frontiersmen/officer, -/obj/item/clothing/suit/armor/frontier, -/obj/item/clothing/head/beret/sec/frontier/officer, -/turf/open/floor/carpet/red_gold, -/area/ruin/jungle/cavecrew/dormitories) -"gM" = ( -/obj/structure/cable{ - icon_state = "4-8" +"dk" = ( +/obj/structure/railing{ + dir = 9 }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 +/obj/machinery/conveyor_switch/oneway{ + pixel_y = 8; + layer = 3.09; + id = "outpost2" }, +/turf/open/floor/concrete/slab_4/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"gP" = ( -/obj/effect/turf_decal/industrial/loading{ +"dl" = ( +/obj/effect/turf_decal/industrial/caution/white{ + color = "#d2d53d"; dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"gU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark/corner, -/obj/structure/cable{ - icon_state = "4-10" +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"dm" = ( +/obj/structure/chair/plastic{ + dir = 8; + pixel_x = 8; + pixel_y = 0 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"gZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"hh" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"hm" = ( -/obj/structure/railing/corner{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/obj/effect/turf_decal/corner/opaque/red/half{ + dir = 4 }, -/area/ruin/powered) -"ht" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/tree/jungle/small, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"dp" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, /area/overmap_encounter/planetoid/jungle/explored) -"hz" = ( -/obj/effect/turf_decal/techfloor{ +"ds" = ( +/obj/item/flashlight/lantern{ + light_on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken5" + }, +/area/overmap_encounter/planetoid/cave/explored) +"dt" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, -/obj/structure/chair/plastic{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "4-9" }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/ship) +"du" = ( +/obj/effect/decal/cleanable/crayon{ + color = "#FF3333"; + icon_state = "danger"; + pixel_y = -4; + pixel_x = -5 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"dz" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"ib" = ( +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 8 + }, +/area/overmap_encounter/planetoid/cave/explored) +"dA" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/railing{ - layer = 4.1 +/obj/effect/turf_decal/borderfloor{ + dir = 4 }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; +/obj/machinery/door/airlock/grunge{ + name = "Prep Room"; + dir = 4 + }, +/turf/open/floor/plasteel/jungleplanet, +/area/ruin/jungle/cavecrew) +"dB" = ( +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/effect/turf_decal/borderfloor{ dir = 8 }, -/area/ruin/powered) -"ij" = ( -/mob/living/simple_animal/hostile/venus_human_trap, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Command Post" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/bridge) +"dH" = ( +/obj/structure/flora/rock/pile/largejungle, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"iT" = ( -/obj/structure/flora/rock{ - pixel_x = 9 +"dK" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 }, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"iV" = ( -/turf/closed/wall/rust, -/area/ruin/powered) -"iW" = ( -/turf/open/floor/plating/asteroid/dirt, -/area/overmap_encounter/planetoid/jungle/explored) -"ja" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/engineering) -"jd" = ( -/obj/structure/spacevine/dense, -/turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"jf" = ( +"dP" = ( /obj/structure/railing{ - layer = 4.1 - }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" + layer = 3.1 }, -/area/ruin/powered) -"jg" = ( -/obj/structure/spacevine/dense, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"jh" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew/hallway) +"dQ" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/bed/dogbed/cayenne, -/mob/living/simple_animal/pet/dog/corgi/puppy{ - name = "Kiwi"; - faction = list("neutral","frontiersman") - }, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, -/area/ruin/jungle/cavecrew/dormitories) -"jm" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, +/obj/machinery/autolathe/hacked, +/turf/open/floor/plasteel/patterned/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"jn" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"jA" = ( +"dR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "5-10" +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"jC" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, +/area/ruin/jungle/cavecrew) +"dS" = ( +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/clothing/under/frontiersmen/deckhand, +/obj/item/clothing/under/frontiersmen, +/obj/item/clothing/under/frontiersmen, +/turf/open/floor/wood/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"jF" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/rust, -/area/ruin/jungle/cavecrew/security) -"jO" = ( -/obj/structure/flora/junglebush/large{ - pixel_y = -4 - }, -/obj/item/flashlight/lantern{ - pixel_x = 14; - pixel_y = -3 +"dT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"dU" = ( +/obj/item/shovel, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/overmap_encounter/planetoid/jungle/explored) -"jU" = ( -/obj/effect/turf_decal/industrial/warning{ +/area/ruin/jungle/cavecrew) +"dZ" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner_steel_grid/diagonal, +/obj/structure/chair/plastic{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"jZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/mob/living/simple_animal/hostile/human/frontier{ + pixel_x = 0; + pixel_y = 0 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"ki" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg3" +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"ea" = ( +/obj/structure/chair{ + pixel_x = -9; + pixel_y = 12; + dir = 4 }, -/area/ruin/powered) -"kj" = ( -/obj/structure/flora/rock/jungle{ - pixel_x = 5; - pixel_y = 10 +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/f3/sentry, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"eb" = ( +/obj/structure/platform/wood{ + dir = 6 }, -/obj/structure/flora/rock/pile/largejungle{ - pixel_y = -31; - pixel_x = 6 +/obj/structure/cable{ + icon_state = "1-8" }, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"ku" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -5; - pixel_y = 18 - }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 14; - pixel_y = 1 +"ec" = ( +/obj/effect/turf_decal/trimline/opaque/green/filled/shrink_cw{ + dir = 4 }, -/turf/open/water/jungle, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"kv" = ( -/obj/structure/railing/corner{ - dir = 8 +"ef" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/corner/opaque/yellow, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"eg" = ( +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/cave/explored) +"ei" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"en" = ( +/obj/structure/flora/driftlog, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"eo" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "shotgun"; + pixel_x = 4; + pixel_y = 6 }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/obj/effect/decal/cleanable/crayon{ + icon_state = "shotgun"; + pixel_x = 4; + pixel_y = -6 }, -/area/ruin/powered) -"kA" = ( -/obj/structure/flora/grass/jungle{ - pixel_x = -13; - pixel_y = -14 +/obj/structure/cable{ + icon_state = "1-6" }, -/obj/structure/flora/grass/jungle{ - pixel_x = -11; - pixel_y = 10 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"ep" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 14; + pixel_x = 2 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 2; + pixel_x = 12 + }, +/turf/open/water/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) -"kH" = ( -/obj/structure/cable{ - icon_state = "1-4" +"er" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/engineering) -"kL" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -5; - pixel_y = 18 +/turf/open/floor/concrete/slab_3{ + dir = 8 }, -/turf/open/water/jungle, +/area/ruin/jungle/cavecrew/cargo) +"es" = ( +/turf/template_noop, +/area/template_noop) +"et" = ( +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"kO" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +"eE" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"eF" = ( +/obj/structure/platform/wood{ + dir = 6 }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"kR" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 5 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -11; + pixel_y = 12 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/engineering) -"kV" = ( -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 6; + pixel_y = -4 }, -/obj/structure/bookcase/random/fiction, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/toy/figure/curator{ - pixel_y = 19; - pixel_x = -11 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 4; + pixel_y = 14 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"lh" = ( -/obj/structure/chair/stool/bar{ - pixel_x = -5; - dir = 8 +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_x = -7; + pixel_y = 13 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"lm" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/bridge) -"lo" = ( -/obj/structure/flora/ausbushes/sparsegrass{ - pixel_x = 7; - pixel_y = 6 +"eG" = ( +/obj/structure/cable{ + icon_state = "2-6" }, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/open/floor/concrete/slab_3/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"lu" = ( -/obj/machinery/door/airlock/maintenance_hatch{ +"eN" = ( +/obj/machinery/shower{ dir = 4 }, +/turf/open/floor/plating/catwalk_floor, +/area/ruin/jungle/cavecrew/hallway) +"eO" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/secure/gear, +/obj/item/gun_maint_kit, +/obj/item/gun_maint_kit, /obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/engineering) -"ly" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "2-9" + icon_state = "6-8" }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"lz" = ( -/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"lA" = ( -/obj/structure/cable{ - icon_state = "1-9" - }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"lD" = ( -/obj/structure/railing{ - layer = 3.1 +"eQ" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/oil{ + pixel_x = 8; + pixel_y = 12 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ + dir = 1 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/ship) +"eU" = ( +/obj/machinery/atmospherics/components/binary/valve/on, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"eY" = ( +/obj/structure/spacevine, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"lI" = ( -/obj/structure/flora/tree/jungle/small{ - icon_state = "tree2" +"fb" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"fg" = ( +/turf/open/floor/plating/asteroid/dirt, +/area/overmap_encounter/planetoid/cave/explored) +"fr" = ( +/obj/effect/turf_decal/corner_steel_grid/diagonal, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"fu" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"lR" = ( -/obj/structure/flora/rock/jungle{ - pixel_x = 10; - pixel_y = 5 +"fv" = ( +/obj/structure/cable{ + icon_state = "1-4" }, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"lS" = ( -/obj/structure/railing/corner, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"lV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/garbage{ - pixel_x = -5 - }, -/obj/structure/sign/poster/contraband/lusty_xenomorph{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/freezer/wall/directional/west, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -8; - pixel_y = 5 +"fy" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/cargo) +"fz" = ( +/obj/structure/girder, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"fD" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/area/ruin/jungle/cavecrew/hallway) -"lY" = ( -/obj/structure/flora/ausbushes/palebush, -/turf/open/water/jungle, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"mb" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 +"fG" = ( +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"fI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"fN" = ( +/obj/structure/railing/corner{ + dir = 8 }, -/obj/machinery/power/port_gen/pacman, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable/yellow{ +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"fS" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/dirt, +/area/overmap_encounter/planetoid/cave/explored) +"fT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"fX" = ( +/obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"fY" = ( +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"ge" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"gh" = ( +/obj/structure/cable{ + icon_state = "5-10" }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"mm" = ( -/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered, +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"mt" = ( -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/security) -"mv" = ( -/obj/machinery/door/window/brigdoor/southright{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"gk" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 }, -/obj/effect/turf_decal/spline/fancy/opaque/black, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"mw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/decal/cleanable/wrapping{ - pixel_x = -13; - pixel_y = 7 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"mz" = ( -/obj/structure/chair/stool/bar{ - pixel_x = -6 +/obj/effect/decal/cleanable/wrapping, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/item/storage/toolbox/syndicate{ + pixel_y = 5; + pixel_x = 11 }, -/obj/effect/decal/cleanable/vomit/old{ - pixel_x = -14; - pixel_y = 18 +/obj/machinery/atmospherics/components/binary/pump, +/obj/structure/cable{ + icon_state = "5-8" }, -/turf/open/floor/wood{ +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/ship) +"gm" = ( +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"go" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ icon_state = "wood-broken7" }, -/area/ruin/jungle/cavecrew/hallway) -"mI" = ( -/obj/structure/dresser, -/obj/machinery/light/directional/south, -/turf/open/floor/carpet/red_gold, -/area/ruin/jungle/cavecrew/dormitories) -"mK" = ( -/obj/structure/railing{ - layer = 3.1 +/area/overmap_encounter/planetoid/cave/explored) +"gq" = ( +/obj/structure/cable{ + icon_state = "6-9" }, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"mL" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 5 - }, -/obj/effect/decal/cleanable/plastic, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/area/overmap_encounter/planetoid/cave/explored) +"gs" = ( +/obj/structure/cable{ + icon_state = "2-10" }, -/obj/machinery/power/terminal, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"gu" = ( +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew) +"gv" = ( +/obj/machinery/porta_turret/ruin/frontiersmen, +/turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/jungle/cavecrew/ship) -"na" = ( -/obj/structure/flora/grass/jungle/b{ - pixel_x = 10; - pixel_y = -19 - }, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"np" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9; - color = "#808080" +"gw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"gA" = ( +/obj/structure/cable{ + icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"nq" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 17; - pixel_x = 3 +/mob/living/simple_animal/hostile/human/frontier, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"gC" = ( +/obj/structure/cable{ + icon_state = "4-10" }, -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 5; - pixel_x = -9 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"gD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"gF" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 6; + pixel_y = 11 }, -/turf/open/water/jungle, +/turf/closed/mineral/random/jungle, /area/overmap_encounter/planetoid/cave/explored) -"nu" = ( -/obj/machinery/computer/card/minor/cmo, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +"gG" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"gM" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"nv" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"nA" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 4 +/obj/machinery/door/airlock/grunge{ + name = "Armory" }, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"nO" = ( -/obj/structure/table/wood/reinforced, -/obj/item/reagent_containers/glass/bottle/cyanide{ - pixel_x = 7; +/turf/open/floor/plasteel/jungleplanet, +/area/ruin/jungle/cavecrew) +"gP" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 6; pixel_y = 9 }, -/obj/item/reagent_containers/glass/bottle/histamine{ - pixel_x = -9; - pixel_y = 6 - }, -/obj/item/reagent_containers/glass/bottle/chlorine{ - pixel_x = -6 +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -4; + pixel_y = -6 }, -/obj/item/reagent_containers/glass/mortar{ - pixel_x = 5 +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"gR" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/obj/item/pestle{ - pixel_x = 4 +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/carpet/red/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"gS" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/moth/meth{ - pixel_y = 32 +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"gU" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/opaque/yellow/half, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"ha" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"nV" = ( /obj/structure/railing{ - dir = 9; + dir = 4; layer = 4.1 }, -/obj/structure/reagent_dispensers/beerkeg{ - pixel_x = 8 +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"hg" = ( +/obj/structure/platform/wood{ + dir = 8 }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/jungle/cavecrew/cargo) -"oe" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"oq" = ( -/turf/closed/mineral/random/jungle, -/area/ruin/jungle/cavecrew/cargo) -"ov" = ( -/obj/structure/flora/grass/jungle/b{ - pixel_y = -4 - }, -/turf/open/floor/plating/asteroid/dirt, -/area/overmap_encounter/planetoid/jungle/explored) -"oA" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/desk_flag{ - pixel_x = -6; - pixel_y = 17 +/area/overmap_encounter/planetoid/cave/explored) +"hh" = ( +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 }, -/obj/item/megaphone/sec{ - name = "syndicate megaphone"; - pixel_x = 1; - pixel_y = 4 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"hi" = ( +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 1 }, -/obj/item/camera_bug{ - pixel_x = -5; - pixel_y = -3 +/obj/machinery/camera/autoname, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"hm" = ( +/obj/structure/platform/wood{ + dir = 1 }, -/obj/item/documents/frontier, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"oD" = ( -/obj/structure/spacevine/dense, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"oJ" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg3" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"hp" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"hs" = ( +/obj/structure/railing{ + layer = 4.1 }, -/area/ruin/powered) -"oP" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 6 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, +/area/overmap_encounter/planetoid/cave/explored) +"ht" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"oQ" = ( -/obj/structure/flora/grass/jungle{ - pixel_x = -13; - pixel_y = -14 - }, -/obj/structure/flora/grass/jungle/b, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"oR" = ( -/obj/structure/fermenting_barrel{ +"hz" = ( +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag{ pixel_x = -7; - pixel_y = 5 + pixel_y = -7 }, -/obj/structure/fermenting_barrel{ - pixel_x = 5; - pixel_y = -5 +/obj/item/reagent_containers/glass/concrete_bag{ + pixel_x = 6; + pixel_y = -6 }, -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/ruin/powered) -"oT" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" + }, +/area/ruin/jungle/cavecrew) +"hB" = ( +/obj/structure/cable{ + icon_state = "1-2" }, +/turf/open/floor/plasteel/stairs/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"hE" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "4-9" +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"hM" = ( +/obj/structure/chair/office{ + dir = 1; + pixel_x = -2; + pixel_y = 2 }, -/obj/structure/cable{ - icon_state = "5-10" +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 1; + layer = 2.01 }, -/obj/machinery/power/terminal, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/turf_decal/borderfloorblack{ + dir = 6 }, -/obj/item/stack/cable_coil/red{ - pixel_x = 8; - pixel_y = 5 +/mob/living/simple_animal/hostile/human/frontier/ranged/wasp, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"hQ" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"hU" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 14 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/ship) -"oV" = ( -/obj/effect/turf_decal/industrial/warning/dust/corner, -/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ib" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-9" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/obj/machinery/camera/autoname, +/obj/item/reagent_containers/glass/concrete_bag{ + pixel_x = 9; + pixel_y = -8 }, -/area/ruin/powered) -"pc" = ( -/obj/structure/table/wood/reinforced, -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/structure/table/reinforced{ + color = "#c1b6a5" }, -/obj/item/toy/figure/vanguard{ - pixel_y = 2; - pixel_x = -8 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 }, -/obj/item/toy/figure/warden{ - pixel_x = 8; - pixel_y = 2 +/obj/effect/turf_decal/corner/opaque/red/three_quarters{ + dir = 4 }, -/obj/item/food/candyheart{ - pixel_x = 1; - pixel_y = -1 +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"ih" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 17; + pixel_x = 3 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"pj" = ( -/obj/structure/railing/corner{ - dir = 8 +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = -9 }, -/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured, -/turf/open/floor/plasteel/stairs{ - dir = 1 +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ij" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken" }, -/area/ruin/jungle/cavecrew/ship) -"pn" = ( -/obj/effect/turf_decal/industrial/radiation{ +/area/overmap_encounter/planetoid/cave/explored) +"ik" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = -8; + pixel_y = 7 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"iv" = ( +/obj/structure/spacevine, +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"ix" = ( +/obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 4 }, -/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"iz" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/secure/engineering, +/obj/item/stack/sheet/mineral/plasma/twenty, +/obj/item/stack/sheet/mineral/plasma/twenty, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"iA" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-5" }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "2-4" }, -/turf/open/floor/plasteel/tech/grid, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"iD" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"iM" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/obj/item/reagent_containers/glass/concrete_bag, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"pJ" = ( -/turf/open/floor/engine/hull/reinforced/interior, -/area/ruin/jungle/cavecrew/ship) -"qr" = ( +"iT" = ( /obj/structure/railing{ - dir = 4; layer = 3.1 }, -/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, -/obj/structure/catwalk/over/plated_catwalk, /turf/open/water/jungle, -/area/ruin/jungle/cavecrew/cargo) -"qM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-2" +/area/overmap_encounter/planetoid/cave/explored) +"iV" = ( +/turf/closed/wall/concrete, +/area/ruin/jungle/cavecrew) +"iW" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 10; + pixel_y = 5 }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg3" +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ja" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" }, -/area/ruin/powered) -"qO" = ( -/turf/closed/wall/rust, -/area/ruin/jungle/cavecrew/cargo) -"qU" = ( -/obj/structure/spacevine, +/area/ruin/jungle/cavecrew) +"jb" = ( +/obj/structure/flora/grass/jungle, /turf/open/water/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"rh" = ( -/obj/structure/cable/yellow{ - icon_state = "6-8" +"jc" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"rm" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" - }, -/area/ruin/powered) -"rn" = ( -/obj/structure/flora/grass/jungle/b{ - pixel_x = 13; - pixel_y = -12 +/obj/effect/turf_decal/corner/opaque/tan/half, +/obj/effect/turf_decal/road/slow, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"jd" = ( +/obj/structure/marker_beacon, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"jf" = ( +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"jg" = ( +/obj/structure/railing{ + dir = 1; + layer = 2.89 }, -/obj/structure/flora/grass/jungle/b{ - pixel_x = 10; - pixel_y = 9 +/obj/structure/chair{ + dir = 1 }, -/obj/structure/destructible/tribal_torch/lit{ - pixel_x = -11 +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"jh" = ( +/obj/structure/flora/tree/jungle, +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 }, +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/rock/pile/largejungle, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"rr" = ( -/obj/effect/decal/cleanable/dirt/dust, +/area/overmap_encounter/planetoid/jungle/explored) +"ji" = ( /obj/structure/cable{ - icon_state = "4-9" + icon_state = "1-2" }, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/jungle/cavecrew/cargo) -"rx" = ( -/obj/structure/flora/rock/jungle{ - pixel_y = 12 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"jm" = ( +/obj/item/storage/box/stockparts/t2{ + pixel_x = 4; + pixel_y = 3; + name = "FIX THE GODDAMN OREMACHINE" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"jn" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"jv" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 }, +/obj/structure/spacevine, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"rA" = ( -/obj/structure/railing/corner{ - dir = 8 +"jz" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"jA" = ( +/obj/structure/cable{ + icon_state = "5-8" }, -/turf/open/water/jungle, +/obj/machinery/mineral/processing_unit_console{ + pixel_y = 20; + machinedir = 2; + output_dir = 4 + }, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/spitter, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"jF" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"rK" = ( -/obj/effect/decal/cleanable/dirt, +"jM" = ( +/obj/structure/spacevine, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"jO" = ( /obj/structure/cable{ icon_state = "1-6" }, -/turf/open/floor/plasteel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/hallway) -"rN" = ( -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"sh" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/secure_closet{ - icon_state = "sec"; - name = "Ammo Locker"; - req_access_txt = "1" +"jR" = ( +/obj/effect/turf_decal/atmos/plasma, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 }, -/obj/item/ammo_box/magazine/skm_46_30, -/obj/item/ammo_box/magazine/skm_46_30, -/obj/item/ammo_box/magazine/skm_46_30, -/obj/item/ammo_box/magazine/illestren_a850r, -/obj/item/ammo_box/magazine/illestren_a850r, -/obj/item/storage/box/ammo/a4570, -/obj/item/storage/box/ammo/a12g_buckshot, -/obj/item/storage/box/ammo/a12g_buckshot, -/obj/item/ammo_box/magazine/m12g_slammer, -/obj/item/ammo_box/magazine/m12g_slammer, +/obj/effect/turf_decal/industrial/warning/dust, /turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/security) -"sj" = ( -/obj/effect/turf_decal/techfloor{ +/area/ruin/jungle/cavecrew/cargo) +"jS" = ( +/obj/effect/turf_decal/borderfloorblack{ + layer = 2.030; dir = 9 }, -/obj/structure/cable{ - icon_state = "1-6" +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 4; + layer = 2.01 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, /area/ruin/jungle/cavecrew/bridge) -"sp" = ( -/obj/effect/turf_decal/industrial/outline/yellow, +"jU" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-10" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"sv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/jungle/cavecrew/cargo) -"sI" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"sJ" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 5 }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"sM" = ( +/obj/effect/turf_decal/box, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"jW" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/rock/pile/largejungle, /obj/structure/spacevine, -/obj/structure/spacevine/dense, -/turf/open/water/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"ta" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"tu" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = 8; - pixel_y = 15; - density = 0 - }, -/obj/structure/sign/poster/contraband/punch_shit{ - pixel_x = 32 - }, -/obj/item/kirbyplants{ - icon_state = "plant-25"; - pixel_x = -3; - pixel_y = 6 +"ka" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + dir = 1; + layer = 2.89 }, -/obj/effect/decal/cleanable/greenglow{ - color = "#808080"; - pixel_x = -11; - pixel_y = 3 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"kc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"kd" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 }, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"ki" = ( /obj/machinery/light_switch{ pixel_y = 21; pixel_x = -10 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/hallway) -"tx" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck/syndicate{ - pixel_x = -4; - pixel_y = 1 +/obj/structure/guncloset, +/obj/effect/turf_decal/industrial/warning{ + dir = 6 }, -/obj/item/toy/figure{ - pixel_x = -3; +/obj/item/gun/ballistic/automatic/smg/skm_carbine, +/obj/item/gun/ballistic/shotgun/automatic/slammer{ + pixel_x = 0; pixel_y = 8 }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"tA" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"tK" = ( -/obj/effect/turf_decal/industrial/traffic{ +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"kj" = ( +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"kl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ dir = 1 }, -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/internals, -/obj/item/tank/internals/oxygen, -/obj/item/tank/internals/oxygen, -/obj/item/tank/internals/oxygen, -/obj/item/tank/jetpack/oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"ks" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"tQ" = ( +"kt" = ( +/obj/structure/railing{ + dir = 4; + layer = 3.1 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/table, +/obj/item/binoculars, +/obj/item/flashlight{ + pixel_x = -1; + pixel_y = 11 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"kv" = ( +/obj/structure/sign/poster/rilena/ri{ + pixel_x = 0; + pixel_y = 31 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"kw" = ( +/obj/structure/flora/tree/jungle/small, /obj/structure/flora/grass/jungle{ pixel_x = -13; pixel_y = -14 }, -/obj/structure/flora/grass/jungle, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"tY" = ( -/obj/structure/spacevine, -/obj/structure/spacevine, +"kA" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 17; + pixel_x = 3 + }, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"tZ" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"ua" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"kB" = ( +/obj/structure/platform/wood{ + dir = 8 }, -/obj/structure/chair{ - pixel_x = -9; - pixel_y = 12; +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"kE" = ( +/obj/item/trash/can, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"uf" = ( -/obj/effect/turf_decal/techfloor/hole{ - dir = 4; - pixel_x = 4 +/obj/machinery/camera/autoname{ + dir = 8 }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 4; - pixel_x = 4 +/turf/open/floor/carpet/red/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"kH" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/obj/effect/turf_decal/borderfloor{ +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"kL" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/industrial/warning/dust/corner{ dir = 8 }, -/obj/machinery/door/airlock/highsecurity, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/security) -"ui" = ( -/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"kO" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/ship) +"kQ" = ( +/obj/item/storage/box/ammo/a12g_beanbag, +/obj/item/gun/ballistic/shotgun/doublebarrel/empty, +/turf/open/floor/carpet/red/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"kR" = ( +/obj/structure/chair/bench/grey/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/mob/living/simple_animal/hostile/human/frontier, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"kS" = ( +/obj/structure/railing{ + layer = 4.1 + }, /turf/open/floor/plating/jungleplanet{ icon_state = "plating_rust" }, -/area/ruin/jungle/cavecrew/cargo) -"uq" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 7; - pixel_y = 27 +/area/overmap_encounter/planetoid/cave/explored) +"kV" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -5; - pixel_y = 15 +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"kW" = ( +/obj/structure/flora/tree/jungle{ + icon_state = "tree10" }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"lb" = ( +/obj/structure/flora/driftlog, /turf/open/water/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) -"ur" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/oil{ - pixel_x = 8; - pixel_y = 12 - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 1 +"ld" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, -/obj/structure/window/plasma/reinforced/spawner, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/ship) -"uu" = ( -/obj/structure/closet/cabinet, -/obj/effect/turf_decal/siding/wood{ - dir = 5 +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/obj/item/clothing/under/frontiersmen, -/obj/item/clothing/head/beret/sec/frontier, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"ll" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"uC" = ( -/turf/open/water/jungle, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"uX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing/corner{ +"lm" = ( +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"lo" = ( +/turf/open/floor/engine/hull/reinforced, +/area/ruin/jungle/cavecrew/ship) +"lu" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/yellow/three_quarters, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/hallway) -"uY" = ( -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"vd" = ( -/obj/structure/guncloset, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 +"ly" = ( +/obj/structure/sign/poster/contraband/backdoor_xeno_babes_6, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/dormitories) +"lz" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/gun/ballistic/revolver/ashhand{ - pixel_y = -1 +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" }, -/obj/item/gun/ballistic/rifle/illestren/sawn, -/obj/item/gun/ballistic/shotgun/automatic/slammer{ - pixel_x = 0; - pixel_y = 8 +/area/ruin/jungle/cavecrew) +"lA" = ( +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"lD" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"lF" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"lH" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable{ + icon_state = "1-6" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/security) -"vg" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" }, -/obj/structure/chair/comfy/shuttle{ - dir = 1; - name = "tactical chair" +/area/ruin/jungle/cavecrew) +"lI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken4" }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ruin/jungle/cavecrew/ship) -"vh" = ( -/obj/machinery/porta_turret/ruin/frontiersmen{ - dir = 9 +/area/overmap_encounter/planetoid/cave/explored) +"lM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/closed/wall/mineral/plastitanium, -/area/ruin/jungle/cavecrew/ship) -"vt" = ( +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"lR" = ( /obj/structure/cable{ - icon_state = "1-9" + icon_state = "1-6" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"lS" = ( +/obj/machinery/conveyor{ + id = "sbase"; + dir = 5 }, -/area/ruin/powered) -"vM" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp/green{ - pixel_y = 13; - pixel_x = 8 +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"lV" = ( +/turf/closed/wall/concrete, +/area/ruin/jungle/cavecrew/bridge) +"lY" = ( +/turf/closed/wall/mineral/titanium/survival/pod, +/area/overmap_encounter/planetoid/cave/explored) +"mb" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/paper_bin{ - pixel_x = -4; - pixel_y = 4 +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"mc" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"mm" = ( +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/industrial/radiation{ + dir = 4 }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = -4 +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/item/clipboard{ - pixel_x = -2; - pixel_y = 8 +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"mt" = ( +/obj/structure/flora/ausbushes/stalkybush, +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"mv" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 }, -/obj/item/phone{ - pixel_x = 8; - pixel_y = -4 +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"mx" = ( +/obj/structure/platform/wood{ + dir = 5 }, -/obj/item/storage/fancy/cigarettes/cigars/havana{ - pixel_y = -8; - pixel_x = 4 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -6; + pixel_y = -20 }, -/obj/item/lighter{ - pixel_y = -16; - pixel_x = 13 +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -11; + pixel_y = -14 }, -/turf/open/floor/plasteel/tech, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/concrete/slab_2/jungleplanet, /area/ruin/jungle/cavecrew/bridge) -"vY" = ( +"my" = ( /obj/structure/railing{ - dir = 1; - pixel_y = 8 + layer = 4.1 }, -/turf/open/floor/plating/jungleplanet/lit, +/obj/effect/turf_decal/techfloor, +/mob/living/simple_animal/hostile/human/frontier/ranged/pounder, +/turf/open/floor/plasteel/patterned/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"we" = ( -/obj/effect/decal/cleanable/dirt/dust, +"mz" = ( +/obj/effect/turf_decal/corner_steel_grid/diagonal, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"wg" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/bed{ - icon_state = "dirty_mattress" +/obj/machinery/camera/autoname{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/security) -"wk" = ( -/obj/structure/table/wood, -/obj/item/trash/syndi_cakes{ - pixel_x = -4; - pixel_y = 9 +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = 3; + pixel_y = 1 }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"wr" = ( -/obj/effect/decal/cleanable/dirt/dust, +/obj/item/grenade/firecracker{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/item/assembly/timer{ + pixel_x = 9; + pixel_y = -4 + }, +/obj/item/stack/sheet/metal{ + pixel_x = -15; + pixel_y = 0 + }, +/obj/item/stack/sheet/metal{ + pixel_x = -13; + pixel_y = 3 + }, +/obj/item/screwdriver{ + pixel_x = 3; + pixel_y = -4 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"mC" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/engine/hull, +/area/ruin/jungle/cavecrew/ship) +"mG" = ( /obj/structure/cable{ icon_state = "2-8" }, +/obj/item/trash/candy, /obj/structure/cable{ icon_state = "1-8" }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/dark/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"wt" = ( -/turf/closed/mineral/random/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"wz" = ( -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" - }, -/area/ruin/jungle/cavecrew/cargo) -"wB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"wG" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"wH" = ( -/obj/structure/flora/tree/jungle, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"wN" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/jungle/cavecrew/security) -"wZ" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"xi" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 9 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high{ - pixel_y = -5; - pixel_x = -3 +"mI" = ( +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/tech/techmaint, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/trash/raisins, +/obj/item/trash/raisins, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash, +/obj/effect/spawner/random/trash, +/obj/effect/spawner/random/trash, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/crushed_can, +/obj/effect/spawner/random/trash/crushed_can, +/obj/effect/spawner/random/trash/crushed_can, +/obj/structure/closet/crate/trashcart, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"xv" = ( -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"xG" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/trash/can/food{ - pixel_x = -9; - pixel_y = 4 +"mJ" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 }, -/obj/item/trash/candy{ - pixel_y = 3 +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"xI" = ( -/obj/machinery/door/window/brigdoor/southright{ - dir = 1 +/area/overmap_encounter/planetoid/cave/explored) +"mK" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew) +"mL" = ( +/obj/structure/chair/plastic{ + dir = 8; + pixel_x = 8; + pixel_y = 0 }, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/security) -"xS" = ( /obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew) +"mM" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/buckshot/neutered, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"yj" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/item/bait_can/worm, +/obj/item/fishing_line, +/obj/item/fishing_rod, +/obj/item/fishing_hook, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"mO" = ( +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/obj/structure/bed{ - icon_state = "dirty_mattress" +/area/ruin/jungle/cavecrew/cargo) +"mY" = ( +/turf/open/floor/concrete/slab_3/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"na" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_x = 10; + pixel_y = -19 }, -/obj/effect/decal/cleanable/vomit/old, -/obj/structure/grille/broken, -/turf/open/floor/wood{ - icon_state = "wood-broken4" +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew) +"ne" = ( +/turf/closed/indestructible/rock/jungle, +/area/ruin/jungle/cavecrew/bridge) +"ni" = ( +/obj/item/flashlight/lantern{ + light_on = 1 }, -/area/ruin/jungle/cavecrew/dormitories) -"yk" = ( -/obj/effect/turf_decal/borderfloor, -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"yx" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid/dirt, -/area/overmap_encounter/planetoid/jungle/explored) -"yA" = ( -/obj/structure/railing/corner{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-5" }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"np" = ( /turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"nq" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"yC" = ( +"nr" = ( +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/obj/structure/chair/sofa/olive/old/left, /obj/effect/turf_decal/siding/wood{ - dir = 8 + dir = 5 }, -/obj/structure/fluff/hedge, -/obj/structure/curtain/bounty, -/turf/open/floor/wood, +/mob/living/simple_animal/hostile/human/frontier/ranged/surgeon{ + environment_smash = 0 + }, +/turf/open/floor/carpet/green/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"yJ" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/ruin/jungle/cavecrew/cargo) -"yV" = ( +"nu" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 + }, +/obj/structure/flora/grass/jungle, +/obj/structure/spacevine, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/jungle/cavecrew/cargo) -"yW" = ( -/obj/structure/closet/crate/goldcrate, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"zj" = ( +/area/overmap_encounter/planetoid/cave/explored) +"nv" = ( /obj/structure/cable{ - icon_state = "0-6" + icon_state = "1-2" }, -/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"zu" = ( -/obj/effect/turf_decal/industrial/warning{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"zG" = ( +/area/overmap_encounter/planetoid/cave/explored) +"nC" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/corner/opaque/red/half, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"nI" = ( /obj/structure/flora/grass/jungle{ pixel_x = -13; pixel_y = -14 }, +/obj/structure/flora/grass/jungle, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"zJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/freezer/kitchen/wall{ +"nJ" = ( +/obj/structure/table, +/obj/item/wrench, +/obj/item/hand_labeler, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"nO" = ( +/obj/structure/railing{ dir = 4; - pixel_x = -28 - }, -/obj/item/circuitboard/machine/microwave{ - pixel_y = -5; - pixel_x = -5 + layer = 3.1 }, -/obj/item/circuitboard/machine/reagentgrinder, -/obj/item/circuitboard/machine/processor{ - pixel_y = -4; - pixel_x = 1 +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/floor/plating/jungleplanet/lit, +/area/overmap_encounter/planetoid/cave/explored) +"nQ" = ( +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"nT" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"nV" = ( +/obj/machinery/door/poddoor/shutters{ + id = "cavecheckpointnorth"; + name = "Checkpoint North" }, -/turf/open/floor/plating/rust, -/area/ruin/jungle/cavecrew/hallway) -"zN" = ( -/obj/machinery/shower{ - dir = 4 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"od" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating/catwalk_floor, -/area/ruin/jungle/cavecrew/hallway) -"zW" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"zX" = ( +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/cargo) +"oe" = ( /obj/structure/railing{ - dir = 8; - layer = 3.1 + dir = 10 }, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Af" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/steeldecal/steel_decals4{ - dir = 4 +"of" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 }, -/obj/effect/turf_decal/techfloor/hole/right, /obj/structure/cable{ - icon_state = "2-9" + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"Ap" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_y = -17; - pixel_x = -11 +/area/ruin/jungle/cavecrew/ship) +"oh" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 7; + pixel_y = 27 }, -/obj/structure/flora/tree/jungle/small, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"At" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_y = -17; - pixel_x = -11 +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -5; + pixel_y = 15 }, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/closed/mineral/random/jungle, /area/overmap_encounter/planetoid/cave/explored) -"AK" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/hallway) -"AR" = ( -/obj/structure/railing{ - dir = 8; - layer = 3.1 +"ol" = ( +/obj/structure/chair/office{ + dir = 1; + pixel_x = -7 }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 8 +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 4; + layer = 2.01 }, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"AV" = ( -/obj/structure/cable{ - icon_state = "1-6" +/obj/effect/turf_decal/borderfloorblack{ + layer = 2.030; + dir = 10 }, -/turf/open/floor/plasteel/stairs/left, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, /area/ruin/jungle/cavecrew/bridge) -"AW" = ( -/obj/effect/turf_decal/industrial/warning/dust/corner{ - dir = 8 +"om" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"oq" = ( +/obj/structure/dresser, +/obj/item/reagent_containers/food/drinks/soda_cans/vimukti{ + pixel_x = 1; + pixel_y = 5 }, -/obj/effect/decal/cleanable/garbage{ - pixel_y = 5; - pixel_x = -4 +/obj/item/reagent_containers/food/drinks/soda_cans/vimukti{ + pixel_x = -9; + pixel_y = 10 }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"Be" = ( -/obj/structure/bed, -/obj/effect/spawner/random/bedsheet, -/obj/structure/curtain/cloth/grey, -/turf/open/floor/carpet/red_gold, +/obj/item/reagent_containers/food/drinks/soda_cans/vimukti{ + pixel_x = 9; + pixel_y = 14 + }, +/turf/open/floor/wood/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"Bp" = ( -/obj/structure/cable/yellow{ - icon_state = "4-10" +"ov" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"ow" = ( +/obj/structure/chair/plastic{ + dir = 4 }, /obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"Bt" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - color = "#808080"; dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"Bv" = ( -/turf/open/floor/plasteel/stairs/right, -/area/ruin/jungle/cavecrew/bridge) -"By" = ( -/obj/structure/cable{ - icon_state = "2-9" +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered{ + name = "The Cook" }, -/obj/item/stack/rods/ten{ - pixel_x = 7 +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"ox" = ( +/obj/structure/barricade/wooden, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"oD" = ( +/obj/machinery/atmospherics/components/binary/valve/on{ + dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/jungle/cavecrew/cargo) -"Bz" = ( -/obj/machinery/vending/donksofttoyvendor, -/obj/structure/sign/barsign{ - pixel_y = 32 +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg3" }, +/area/overmap_encounter/planetoid/cave/explored) +"oJ" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"BF" = ( -/obj/machinery/door/poddoor{ - id = "gut_launchdoor" - }, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ruin/jungle/cavecrew/ship) -"BP" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/jungle/cavecrew/ship) -"BR" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_x = -1; - pixel_y = 17 +"oM" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/flora/ausbushes/reedbush{ - pixel_x = 11; - pixel_y = 8 +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"oP" = ( +/obj/structure/railing{ + dir = 1; + layer = 2.89 }, -/turf/open/water/jungle, +/turf/open/floor/plating/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"BT" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = -2; - pixel_x = -4 - }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"BU" = ( -/obj/structure/closet/crate/silvercrate, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"BV" = ( -/obj/structure/railing/corner{ - dir = 8 +"oR" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "5-8" - }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg3" - }, -/area/ruin/powered) -"Cc" = ( -/obj/item/stack/ore/salvage/scrapmetal/ten{ - pixel_x = 2; - pixel_y = -4 - }, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/jungle/cavecrew/cargo) -"Cd" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 + icon_state = "2-9" }, -/obj/machinery/computer/helm, -/turf/open/floor/plasteel/telecomms_floor, -/area/ruin/jungle/cavecrew/ship) -"Cg" = ( -/obj/structure/table/wood, -/obj/item/trash/tray, -/obj/item/trash/waffles, -/obj/item/trash/energybar, -/turf/open/floor/plating/rust, -/area/ruin/jungle/cavecrew/hallway) -"Cq" = ( -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/ruin/powered) -"Cr" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/corner/opaque/blue/half{ dir = 1 }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/item/book/manual/wiki/engineering{ - pixel_x = 5; - pixel_y = -7 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"oS" = ( +/obj/structure/flora/junglebush/large{ + pixel_x = -7; + pixel_y = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"Cy" = ( -/obj/effect/mob_spawn/human/corpse/frontier, -/turf/open/water/jungle/lit, +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"CB" = ( +"oV" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew) +"oW" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"CC" = ( -/obj/effect/turf_decal/industrial/warning/dust/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/hazard/electrical/electrified_water, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew) +"oZ" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "6-8" }, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"CF" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"CH" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine, -/obj/structure/closet/crate/secure/weapon, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"CJ" = ( -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"CN" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 9 +/area/overmap_encounter/planetoid/cave/explored) +"pa" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/salvageable/computer, +/obj/effect/turf_decal/industrial/traffic{ + dir = 6 }, -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/human/frontier, +/obj/machinery/light/directional/east, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-2" }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech/grid/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"CY" = ( -/obj/structure/railing/corner{ - dir = 1 +"pc" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"pg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"pj" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 }, +/obj/machinery/computer/helm{ + icon_state = "computer-left" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"pk" = ( /obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) +"pl" = ( +/obj/structure/sign/poster/contraband/hacking_guide, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/engineering) +"pn" = ( /obj/structure/cable{ - icon_state = "1-5" + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"CZ" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 +/obj/structure/cable{ + icon_state = "5-8" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"Df" = ( +"pq" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/flora/rock/pile/largejungle, /obj/structure/flora/tree/jungle, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"Dg" = ( -/obj/structure/table/wood/reinforced, -/obj/effect/turf_decal/siding/wood{ - dir = 5 +"pv" = ( +/obj/structure/closet/crate, +/obj/item/stack/ore/salvage/scrapuranium/five, +/obj/item/stack/ore/salvage/scrapplasma/five, +/obj/item/stack/ore/salvage/scrapplasma/five, +/obj/item/stack/ore/salvage/scrapplasma/five, +/obj/item/stack/ore/salvage/scrapsilver/five, +/obj/item/stack/ore/salvage/scraptitanium/five, +/obj/item/stack/ore/salvage/scraptitanium/five, +/obj/item/stack/ore/salvage/scrapmetal/twenty, +/obj/item/stack/ore/salvage/scrapmetal/ten, +/obj/effect/turf_decal/road/slow{ + dir = 4 }, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_x = -7; - pixel_y = 8 +/obj/effect/turf_decal/corner/opaque/tan/half{ + dir = 4 }, -/obj/item/trash/can/food{ - pixel_x = -9; - pixel_y = 4 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"pC" = ( +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 8; + pixel_y = 15; + density = 0 }, -/obj/item/storage/crayons{ - pixel_y = -8; - pixel_x = 5 +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 }, -/obj/item/melee/energy/sword/saber/pirate/red, -/turf/open/floor/wood, +/turf/open/floor/wood/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"Dh" = ( -/obj/structure/flora/ausbushes/stalkybush, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"Dy" = ( -/obj/effect/decal/cleanable/dirt/dust, +"pG" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/jungle/cavecrew/cargo) -"DC" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"DJ" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 5; - pixel_x = 10 +/obj/structure/marker_beacon, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"pK" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"pY" = ( +/obj/structure/cable{ + icon_state = "1-5" }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"DP" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 6; - color = "#808080" +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/obj/structure/cable{ + icon_state = "6-10" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"DV" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"qb" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 +/obj/machinery/button/door{ + pixel_x = -5; + pixel_y = 24; + id = "bunker-control" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"DZ" = ( -/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"qj" = ( +/obj/effect/turf_decal/atmos/plasma, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/cargo) +"qr" = ( +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) +"qu" = ( +/obj/effect/spawner/bunk_bed, +/obj/item/toy/plush/lizardplushie{ + pixel_x = 8; + pixel_y = -8 + }, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"qx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"qL" = ( /obj/structure/cable{ - icon_state = "2-6" + icon_state = "1-8" }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"Eb" = ( -/obj/structure/bed{ - icon_state = "dirty_mattress" +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood, -/obj/item/food/grown/berries/poison{ +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"qM" = ( +/obj/structure/chair{ pixel_x = -9; - pixel_y = -1 + pixel_y = 3; + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/security) -"Ej" = ( -/obj/structure/railing{ - dir = 10; - layer = 3.1 +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/internals/neutered/sentry{ + desc = "A member of the brutal Frontiersman terrorist fleet! This one waits patiently, their finger on the trigger, as the glint of their scope in the sun catches your eye. A pin on their lapel reads 'proudly vegan!'." }, -/turf/open/water/jungle, +/turf/open/floor/plating/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"Em" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/techfloor/hole, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"Es" = ( -/obj/structure/flora/grass/jungle/b, +"qO" = ( +/obj/machinery/light/directional/north, +/obj/machinery/suit_storage_unit, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ruin/jungle/cavecrew/ship) +"qU" = ( +/obj/structure/flora/grass/jungle, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"Ex" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg3" +"qZ" = ( +/obj/structure/platform/wood{ + dir = 5 }, -/area/ruin/powered) -"EH" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/obj/structure/cable{ + icon_state = "8-10" }, -/area/ruin/powered) -"EI" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_x = -1; - pixel_y = -37 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken" }, +/area/overmap_encounter/planetoid/cave/explored) +"rg" = ( +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/machinery/light/small/directional/south, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"EP" = ( -/obj/structure/railing/corner{ - dir = 8 +/area/overmap_encounter/planetoid/cave/explored) +"rh" = ( +/obj/effect/spawner/bunk_bed, +/obj/item/toy/plush/snakeplushie{ + pixel_x = -7; + pixel_y = 7 }, -/turf/closed/mineral/random/jungle, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"rm" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"rn" = ( +/turf/closed/indestructible/rock/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Fs" = ( +"rr" = ( +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"rA" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/ship) +"rK" = ( +/obj/structure/flora/junglebush/large, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"Fw" = ( -/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered, +/area/overmap_encounter/planetoid/jungle/explored) +"rN" = ( /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"Fy" = ( -/obj/effect/turf_decal/siding/wood/corner{ +/area/overmap_encounter/planetoid/jungle/explored) +"rU" = ( +/obj/structure/railing/corner{ dir = 1 }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/structure/chair/comfy/orange/directional/east{ - buildstackamount = 0; - color = "#c45c57" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood{ - icon_state = "wood-broken7" +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"rY" = ( +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 }, -/area/ruin/jungle/cavecrew/dormitories) -"FY" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 13; - pixel_y = 7 +/obj/structure/flora/ausbushes/sunnybush{ + pixel_x = 0; + pixel_y = 6 }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 5; - pixel_y = 11 +/obj/effect/turf_decal/siding/wood{ + dir = 10 }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -2; - pixel_y = 1 +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew/hallway) +"sa" = ( +/obj/effect/turf_decal/trimline/opaque/green/filled/shrink_ccw{ + dir = 4 }, -/turf/open/water/jungle, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"Ge" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/fullupgrade{ - dir = 1 +"sh" = ( +/obj/structure/cable{ + icon_state = "2-5" }, -/turf/open/floor/plating/rust, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/hallway) -"Gk" = ( -/obj/machinery/door/window/southleft{ +"sj" = ( +/obj/structure/platform/wood{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/hallway) -"Gm" = ( -/obj/structure/railing{ - dir = 9; - layer = 4.1 +/obj/structure/cable{ + icon_state = "1-10" }, -/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ - dir = 9 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken2" }, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/jungle/cavecrew/cargo) -"Go" = ( -/obj/structure/flora/ausbushes/stalkybush, -/obj/machinery/light/directional/west, -/turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"GN" = ( -/obj/machinery/porta_turret/ruin/frontiersmen{ - dir = 9 - }, -/turf/closed/wall/r_wall/syndicate/nodiagonal, +"sl" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/red/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"GR" = ( -/obj/structure/flora/rock/jungle{ - pixel_x = 3; - pixel_y = 9 +"sn" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/machinery/door/airlock/grunge, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/light/directional/east, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"sr" = ( +/obj/structure/marker_beacon, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"GZ" = ( -/obj/effect/turf_decal/industrial/warning/dust/corner{ +"st" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/borderfloor{ dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"Hk" = ( -/obj/structure/flora/tree/jungle/small{ - icon_state = "tree2" +/obj/machinery/door/airlock/grunge{ + name = "Checkpoint" }, -/obj/structure/flora/rock/pile/largejungle, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"Hw" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/gear, -/obj/item/gun/ballistic/automatic/smg/skm_carbine{ - pixel_y = -6 +/turf/open/floor/plasteel/jungleplanet, +/area/ruin/jungle/cavecrew) +"sv" = ( +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/item/gun/ballistic/automatic/zip_pistol, -/obj/item/gun/ballistic/automatic/zip_pistol, -/obj/item/gun/ballistic/automatic/zip_pistol, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"HD" = ( -/obj/item/chair/greyscale{ - dir = 8; - pixel_y = -7; - pixel_x = -3 +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/chair/sofa/olive/old/right/directional, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/robot_debris, -/obj/effect/decal/cleanable/oil, -/obj/item/stack/cable_coil/cut/yellow, -/turf/open/floor/plating/rust, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/green/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"HG" = ( -/obj/structure/cable{ - icon_state = "1-2" +"sx" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/area/ruin/jungle/cavecrew) +"sI" = ( +/obj/structure/platform/wood{ + dir = 8 + }, +/obj/item/flashlight/lantern{ + light_on = 1 }, -/area/ruin/powered) -"HI" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/jungle/cavecrew/cargo) -"HL" = ( -/obj/structure/barricade/wooden, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"HQ" = ( -/obj/structure/flora/grass/jungle, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"HV" = ( -/obj/effect/decal/cleanable/dirt, +"sJ" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-5" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "2-10" + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"HW" = ( -/obj/structure/destructible/tribal_torch/lit{ - pixel_x = -11; - pixel_y = 19 +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"sL" = ( +/obj/structure/flora/tree/jungle{ + icon_state = "tree8" }, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"Id" = ( -/obj/machinery/porta_turret/ruin/frontiersmen{ - dir = 1 +"sM" = ( +/obj/machinery/power/smes{ + charge = 5e+006 }, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/jungle/cavecrew/ship) -"Ie" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"Ir" = ( -/obj/structure/spacevine, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"Is" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/industrial/radiation{ + dir = 5 }, -/obj/structure/table/wood/reinforced, -/obj/item/paicard{ - pixel_x = 4; - pixel_y = 2 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/flashlight/lamp{ - pixel_x = -6; - pixel_y = 2 +/turf/open/floor/pod, +/area/ruin/jungle/cavecrew/ship) +"sP" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can{ + pixel_x = 12; + pixel_y = 15 }, -/obj/item/storage/fancy/cigarettes/cigpack_carp{ - pixel_y = 1; - pixel_x = -5 +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"sR" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/lighter/greyscale{ - pixel_x = -1; - pixel_y = -6 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"sV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"Iu" = ( -/obj/structure/flora/rock/jungle{ - pixel_x = 9 +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"sZ" = ( +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Iv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/engineering) -"Ix" = ( -/obj/structure/barricade/sandbags, -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/ruin/powered) -"Iz" = ( -/obj/structure/girder, -/obj/structure/flora/grass/jungle/b, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"II" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/item/book/manual/wiki/hacking{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/item/book/manual/wiki/cooking{ - pixel_x = 5; - pixel_y = -6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/garbage{ - pixel_x = 10; - pixel_y = 4 +"ta" = ( +/obj/machinery/door/poddoor/shutters{ + id = "cavecheckpointsouth"; + name = "Checkpoint South" }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"IO" = ( -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"to" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/effect/turf_decal/steeldecal/steel_decals10, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/button/massdriver{ - id = "gut_launchdoor"; - name = "Cannon Button"; - pixel_x = 21; - pixel_y = 8; - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"tp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/brushed, +/turf/open/floor/plasteel/dark, /area/ruin/jungle/cavecrew/ship) -"IP" = ( -/obj/effect/decal/cleanable/dirt/dust, +"ts" = ( +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"tu" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"IQ" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ +/obj/effect/turf_decal/corner_steel_grid/diagonal, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, +/obj/machinery/light/directional/east, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"IX" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 1 +/obj/item/trash/can, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"tw" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 4; + layer = 2.01 }, -/obj/structure/cable, -/obj/machinery/door/poddoor{ - id = "gut_engines"; - name = "Thruster Blast Door" +/obj/machinery/door/airlock/grunge{ + name = "Armory"; + dir = 4 }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/ship) -"IZ" = ( -/obj/item/reagent_containers/syringe/contraband/methamphetamine, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = -4 +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"tx" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 }, -/obj/effect/turf_decal/siding/wood{ +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"tA" = ( +/obj/effect/turf_decal/techfloor{ dir = 8 }, -/obj/structure/closet/wall/directional/west, -/obj/item/restraints/handcuffs/cable/white, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/chem_pile, -/obj/effect/decal/cleanable/blood/drip, -/obj/effect/decal/cleanable/plastic, -/obj/effect/decal/cleanable/glass, -/obj/item/reagent_containers/syringe/contraband/mammoth{ - pixel_y = 11; - pixel_x = 5 - }, -/obj/item/reagent_containers/syringe/contraband/morphine{ - pixel_y = 4; - pixel_x = -4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken2" - }, -/area/ruin/jungle/cavecrew/dormitories) -"Jg" = ( -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/cave/explored) -"Jh" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/blood/gibs/old{ - pixel_y = -5; - pixel_x = 3 +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 1 }, -/obj/effect/mob_spawn/human/corpse/damaged, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"Jl" = ( +/obj/effect/turf_decal/trimline/transparent/green/filled/warning, /obj/structure/chair/comfy/shuttle{ - dir = 8; + dir = 1; name = "tactical chair" }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" - }, -/turf/open/floor/plasteel/tech, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/wasp, +/turf/open/floor/plasteel/patterned/brushed, /area/ruin/jungle/cavecrew/ship) -"Jm" = ( -/obj/structure/flora/rock{ - icon_state = "basalt2"; - pixel_x = -5; - pixel_y = 11 +"tB" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken4" }, -/turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Jo" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 4 +"tC" = ( +/obj/machinery/light/small/directional/south{ + pixel_x = 11; + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "0-1" }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/item/toy/plush/moth/punished, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"tK" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/light/directional/east, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/obj/machinery/button/door{ + pixel_x = 22; + pixel_y = 9; + dir = 8; + id = "cavecheckpointnorth" }, -/area/ruin/powered) -"Jt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants{ - icon_state = "plant-10" +/obj/effect/turf_decal/trimline/opaque/tan/filled/warning{ + dir = 1 }, -/turf/open/floor/pod/light, -/area/ruin/jungle/cavecrew/hallway) -"Jz" = ( -/turf/closed/wall/rust, -/area/overmap_encounter/planetoid/cave/explored) -"JB" = ( -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/jungle/cavecrew/cargo) -"JJ" = ( -/obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/drip{ - pixel_x = -21; - pixel_y = 11 +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"tQ" = ( +/turf/closed/wall/concrete, +/area/ruin/jungle/cavecrew/engineering) +"tX" = ( +/obj/structure/cable{ + icon_state = "1-6" }, -/turf/open/floor/plating/rust, -/area/ruin/jungle/cavecrew/dormitories) -"JK" = ( -/obj/item/soap{ - pixel_x = 13; - pixel_y = 10 +/obj/structure/curtain/cloth{ + open = 0; + icon_state = "bathroom-closed" }, -/obj/item/reagent_containers/glass/bucket/wooden{ - pixel_x = -9 +/turf/open/floor/plasteel/stairs/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"tY" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/decal/cleanable/vomit, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/security) -"JQ" = ( -/obj/structure/barricade/sandbags, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"JR" = ( -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Ke" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 }, -/area/ruin/powered) -"Kh" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/airlock/hatch{ +/obj/effect/turf_decal/industrial/warning/dust{ dir = 4 }, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/jungle/cavecrew/hallway) -"Kw" = ( -/obj/structure/flora/rock/pile/largejungle, -/turf/closed/mineral/random/jungle, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"Kz" = ( -/obj/structure/cable{ - icon_state = "1-9" +"tZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"KA" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/ruin/powered) -"KM" = ( -/obj/structure/cable{ - icon_state = "2-6" +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"ua" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/bridge) +"uf" = ( /obj/structure/cable{ - icon_state = "0-6" + icon_state = "4-8" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"KN" = ( -/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4; + layer = 2.01 + }, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Power Control" + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"uk" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"un" = ( /obj/structure/cable{ - icon_state = "4-10" + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"KQ" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/spline/fancy/opaque/black, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"KW" = ( -/obj/structure/table/wood/reinforced, -/obj/item/table_bell{ - pixel_x = 9; - pixel_y = -1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = -5; - pixel_y = 10 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"uq" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 }, -/obj/item/dice/d2, -/obj/item/spacecash/bundle/c1000{ - pixel_x = 3; - pixel_y = 8 +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame/neuter{ + wander = 0 }, -/obj/item/spacecash/bundle/c1000{ - pixel_x = 6; - pixel_y = 11 +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"uu" = ( +/obj/structure/railing{ + dir = 10 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"KZ" = ( -/obj/item/toy/plush/hornet/gay, -/turf/open/floor/plating/asteroid/dirt, -/area/overmap_encounter/planetoid/jungle/explored) -"Lb" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/grey, -/obj/item/bedsheet/hos, -/obj/machinery/light/directional/south, -/turf/open/floor/carpet/red_gold, -/area/ruin/jungle/cavecrew/dormitories) -"Lc" = ( /obj/structure/cable{ - icon_state = "6-8" + icon_state = "2-5" }, -/turf/open/floor/plating/jungleplanet/lit, +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered/sentry, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"uz" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/wall/directional/west{ + name = "Slop Closet" + }, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/grown/cabbage, +/obj/item/food/grown/cabbage, +/obj/item/food/grown/cabbage, +/obj/item/food/grown/cabbage, +/obj/item/food/grown/carrot, +/obj/item/food/grown/carrot, +/obj/item/food/grown/carrot, +/obj/item/food/grown/carrot, +/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium{ + pixel_x = -6; + pixel_y = -2; + name = "Secret Ingredient" + }, +/obj/item/food/grown/peas, +/obj/item/food/grown/peas, +/obj/item/food/deadmouse, +/obj/item/food/deadmouse, +/obj/item/food/deadmouse, +/obj/item/food/grown/garlic, +/obj/item/food/grown/garlic, +/turf/open/floor/carpet/red/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"uB" = ( +/obj/structure/railing/corner, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"Ll" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 14; - pixel_y = 1 +"uC" = ( +/obj/structure/railing{ + dir = 4; + layer = 3.1 }, +/obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Lm" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating/asteroid/dirt/jungle/dark, -/area/overmap_encounter/planetoid/jungle/explored) -"Lo" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" +"uJ" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = -9 }, -/obj/machinery/fax/ruin, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"Lp" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"uN" = ( +/obj/machinery/button/door{ + pixel_x = 22; + pixel_y = -9; + dir = 8; + id = "cavecheckpointsouth" }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname{ + dir = 8 }, -/obj/structure/window/plasma/reinforced/spawner, +/obj/effect/turf_decal/trimline/opaque/tan/filled/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"uR" = ( +/obj/machinery/mineral/unloading_machine{ + input_dir = 2; + output_dir = 1 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"uX" = ( /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-2" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/ship) -"Lv" = ( -/obj/structure/flora/ausbushes/leafybush, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/effect/turf_decal/industrial/caution/white{ + color = "#d2d53d"; + dir = 8 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"uY" = ( +/obj/structure/flora/ausbushes/stalkybush, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Lw" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"Ly" = ( -/obj/structure/flora/tree/jungle/small, -/obj/structure/flora/grass/jungle, -/obj/structure/flora/rock/pile/largejungle, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"LA" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/jungle/cavecrew/cargo) -"LD" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5; - color = "#808080" +"vb" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + layer = 4.1 }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/jungle/cavecrew/security) -"LK" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8; - name = "tactical chair" +/mob/living/simple_animal/hostile/human/frontier/ranged/pounder/space{ + environment_smash = 0 }, -/obj/effect/turf_decal/techfloor{ +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"vd" = ( +/obj/structure/platform/wood{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"LN" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"LT" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper{ + environment_smash = 0 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"LY" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8; - name = "tactical chair" +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ve" = ( +/obj/structure/railing/corner{ + dir = 8 }, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" +/area/overmap_encounter/planetoid/cave/explored) +"vg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 1 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plating, /area/ruin/jungle/cavecrew/ship) -"Ma" = ( -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"Mf" = ( -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +"vh" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/area/ruin/powered) -"Mm" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"vi" = ( /obj/structure/cable{ - icon_state = "1-10" + icon_state = "4-8" }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Mr" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"vk" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/ship) -"MA" = ( -/obj/machinery/porta_turret/ruin/frontiersmen{ - dir = 5 +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg3" }, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/jungle/cavecrew/ship) -"MR" = ( -/mob/living/simple_animal/hostile/carp, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"MT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-5" +/area/overmap_encounter/planetoid/cave/explored) +"vr" = ( +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" }, -/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"MU" = ( -/obj/machinery/power/smes{ - charge = 5e+006 +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/radiation{ - dir = 5 +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"vt" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "0-4" +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"vJ" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/ship) -"MY" = ( -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/security) -"Nf" = ( /obj/structure/spacevine, -/turf/closed/mineral/random/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"vM" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/pizzabox/margherita, +/obj/item/pizzabox/margherita, +/obj/item/pizzabox/meat, +/obj/item/pizzabox/meat, +/obj/item/storage/box/donkpockets, +/obj/item/storage/box/donkpockets, +/obj/effect/decal/cleanable/food/tomato_smudge, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"vO" = ( +/obj/structure/flora/driftlog, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"vY" = ( +/turf/closed/wall/concrete, +/area/ruin/jungle/cavecrew/hallway) +"we" = ( +/turf/open/floor/concrete/slab_4/jungleplanet, /area/overmap_encounter/planetoid/cave/explored) -"Ng" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Nh" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ruin/jungle/cavecrew/ship) -"Nj" = ( -/obj/structure/flora/ausbushes/sunnybush{ - pixel_x = 12; - pixel_y = 2 +"wf" = ( +/obj/structure/flora/junglebush/large{ + pixel_x = -7; + pixel_y = 8 }, -/obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/jungle/cavecrew/cargo) -"Nn" = ( +/area/overmap_encounter/planetoid/jungle/explored) +"wg" = ( +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"wk" = ( +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"wl" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Np" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 +/obj/item/trash/can, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"wq" = ( +/obj/structure/flora/tree/jungle{ + icon_state = "tree10" }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"Nr" = ( +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"wr" = ( /turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/jungle/cavecrew/hallway) -"Ns" = ( +/area/ruin/jungle/cavecrew) +"ws" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/rock/pile/largejungle, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"wt" = ( +/obj/machinery/light/directional/west, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/storage/pill_bottle/tramal{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/gun/ballistic/revolver/ashhand{ + pixel_y = 8; + pixel_x = -3 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -8; + pixel_y = -5 + }, +/obj/item/blackmarket_uplink{ + pixel_x = 10; + pixel_y = -5 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"ww" = ( +/obj/structure/flora/tree/jungle{ + icon_state = "tree9" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"wz" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/regular, +/obj/item/roller, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"wB" = ( /obj/structure/flora/rock/jungle{ pixel_x = 3; pixel_y = 9 }, +/obj/structure/flora/grass/jungle, /turf/open/floor/plating/asteroid/dirt/jungle/dark, /area/overmap_encounter/planetoid/jungle/explored) -"Ny" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 +"wE" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +/area/ruin/jungle/cavecrew) +"wF" = ( +/obj/effect/turf_decal/industrial/warning/dust{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"NC" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"wG" = ( +/obj/item/clothing/suit/armor/vest/frontier, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier, +/obj/item/clothing/mask/gas/frontiersmen, +/obj/structure/closet, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"wN" = ( /turf/open/floor/plating/jungleplanet{ icon_state = "plating_rust" }, -/area/ruin/jungle/cavecrew/cargo) -"NK" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ +/area/overmap_encounter/planetoid/cave/explored) +"wP" = ( +/obj/effect/turf_decal/corner/opaque/yellow/half, +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"wQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"xh" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"xi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"NM" = ( -/obj/machinery/power/port_gen/pacman/super, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Mess Hall" }, -/obj/machinery/button/door{ - id = "gut_engines"; - name = "Engine Shutters"; - pixel_y = -22; - dir = 1 +/turf/open/floor/plasteel/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"xr" = ( +/obj/structure/spacevine, +/obj/structure/flora/tree/jungle{ + icon_state = "tree10" }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/ship) -"NR" = ( -/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"NW" = ( -/obj/structure/destructible/tribal_torch/lit{ - pixel_x = 16; - pixel_y = 15 +"xu" = ( +/obj/structure/falsewall/plastitanium, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"xv" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 10; + pixel_y = 5 }, +/obj/structure/flora/ausbushes/ppflowers, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"Oe" = ( +"xE" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Oi" = ( -/obj/machinery/door/airlock/highsecurity, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/security) -"OJ" = ( -/obj/effect/turf_decal/borderfloor{ - dir = 4 - }, -/obj/machinery/door/airlock/hatch{ - dir = 4 + icon_state = "1-5" }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"OR" = ( +/turf/open/floor/concrete/slab_3/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"xI" = ( /obj/structure/cable{ - icon_state = "2-6" + icon_state = "5-10" }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"OU" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/beret/sec/frontier{ - pixel_y = 10; - pixel_x = -4 +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"xJ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/storage/toolbox/ammo{ - pixel_y = 2 +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"xL" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"xS" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"yg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/obj/item/storage/toolbox/ammo{ - pixel_y = -6; - pixel_x = -5 +/obj/structure/cable{ + icon_state = "2-5" }, -/obj/item/grenade/frag{ - pixel_x = 8; - pixel_y = -6 +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"yj" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -8; + pixel_y = 3 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/security) -"Pg" = ( +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"yk" = ( /obj/effect/turf_decal/siding/thinplating/dark, -/obj/structure/cable{ - icon_state = "5-8" +/obj/machinery/suit_storage_unit/inherit, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, +/turf/open/floor/engine/hull/reinforced, +/area/ruin/jungle/cavecrew/ship) +"yr" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 10; + pixel_y = 5 }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) +"yx" = ( /obj/machinery/light/directional/south, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Pi" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/frame/computer, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Pq" = ( -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 1 +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew) +"yA" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/area/ruin/jungle/cavecrew/ship) -"PB" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 10 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"PF" = ( -/obj/machinery/mass_driver{ - dir = 1; - id = "gut_launchdoor" +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 }, -/turf/open/floor/engine/hull/reinforced/interior, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, /area/ruin/jungle/cavecrew/ship) -"PS" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"Ql" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 14; - pixel_x = 2 - }, -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 2; - pixel_x = 12 +"yC" = ( +/obj/structure/cable{ + icon_state = "4-9" }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"Qt" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"yJ" = ( +/obj/structure/flora/ausbushes/sunnybush{ + pixel_x = 12; + pixel_y = 2 }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 1 +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/destructible/tribal_torch/lit, +/obj/structure/fermenting_barrel{ + pixel_x = -14; + pixel_y = -8 }, -/obj/structure/window/plasma/reinforced/spawner, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/fermenting_barrel{ + pixel_x = -28; + pixel_y = 16 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/ship) -"Qx" = ( -/obj/structure/flora/rock/pile/largejungle, /turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"Qy" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" +/area/ruin/jungle/cavecrew/cargo) +"yK" = ( +/obj/machinery/porta_turret/ruin/frontiersmen{ + dir = 9 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew) +"yU" = ( +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/structure/cable{ + icon_state = "1-2" }, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/hallway) -"Qz" = ( -/obj/structure/flora/tree/jungle/small, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"QE" = ( -/obj/structure/spacevine, -/obj/structure/spacevine, -/turf/open/water/jungle, +"yW" = ( +/obj/structure/fluff/fokoff_sign, +/turf/open/water/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) -"QH" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "0-5" +"yZ" = ( +/obj/structure/railing{ + layer = 4.1 }, -/obj/effect/turf_decal/techfloor{ +/obj/effect/turf_decal/industrial/warning/dust{ dir = 8 }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"QP" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/ship) -"QR" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate, -/obj/item/chair/plastic{ - pixel_y = 6 +/area/overmap_encounter/planetoid/cave/explored) +"zf" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing/corner, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"zl" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 9; + pixel_y = 9 }, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 7 +/obj/item/clothing/head/hardhat{ + pixel_x = -9; + pixel_y = -1 }, -/obj/item/storage/wallet/random{ - pixel_y = -6 +/obj/item/clothing/head/hardhat{ + pixel_x = -11; + pixel_y = 9 }, -/obj/item/stack/telecrystal/five, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, +/turf/open/floor/plating/jungleplanet/lit, +/area/ruin/jungle/cavecrew) +"zr" = ( +/obj/structure/spacevine/dense, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"zt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"zu" = ( +/turf/open/floor/plating/jungleplanet, /area/ruin/jungle/cavecrew/cargo) -"QX" = ( -/obj/structure/table/wood/reinforced, -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"zG" = ( +/obj/effect/decal/cleanable/crayon{ + color = "#FF3333"; + icon_state = "getout"; + pixel_y = -13; + pixel_x = -28 }, -/obj/item/flashlight/lamp/green{ - pixel_y = 13; - pixel_x = -7 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"zI" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/secure/gear, +/obj/item/storage/box/ammo/a762_40, +/obj/item/storage/box/ammo/a762_40, +/obj/item/ammo_box/magazine/skm_762_40/extended/empty, +/obj/structure/cable{ + icon_state = "4-9" }, -/obj/item/pen{ - pixel_y = 8; - pixel_x = 5 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"zJ" = ( +/obj/structure/cable{ + icon_state = "5-10" }, -/obj/item/pen/charcoal{ - pixel_y = 1; - pixel_x = 5 +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 4 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"Rd" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 +/obj/effect/turf_decal/steeldecal/steel_decals10, +/obj/machinery/camera/autoname{ + dir = 8 }, -/obj/machinery/power/port_gen/pacman, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"zL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2 }, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/obj/structure/closet/cabinet, +/obj/item/clothing/head/frontier/peaked, +/obj/item/clothing/under/frontiersmen/officer, +/obj/item/clothing/suit/armor/frontier, +/obj/item/clothing/shoes/combat, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"zM" = ( +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 1; + layer = 2.01 }, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"Rh" = ( -/obj/structure/spacevine, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"Ri" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/jungle/cavecrew/dormitories) -"Rj" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/jungle/cavecrew/ship) -"Rr" = ( -/obj/structure/railing{ - layer = 4.1 +/obj/effect/turf_decal/borderfloorblack{ + layer = 2.030; + dir = 10 }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"zN" = ( +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"zW" = ( +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"zX" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 }, -/area/ruin/powered) -"RI" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"RJ" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/secure/loot, -/obj/item/storage/box/maid{ - pixel_x = -5; - pixel_y = 3 +/obj/machinery/suit_storage_unit/inherit, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, +/turf/open/floor/engine/hull/reinforced, +/area/ruin/jungle/cavecrew/ship) +"Af" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/toilet{ + dir = 8; + pixel_x = 8; + pixel_y = 0 }, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"RL" = ( -/obj/structure/flora/grass/jungle, -/turf/open/floor/plating/asteroid/dirt/jungle, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Aj" = ( +/turf/open/floor/concrete/slab_1/jungleplanet, /area/overmap_encounter/planetoid/jungle/explored) -"RM" = ( +"Al" = ( +/obj/structure/spacevine/dense, /turf/open/water/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) -"RT" = ( -/obj/machinery/computer/crew/syndie{ - dir = 4 +"As" = ( +/obj/structure/cable{ + icon_state = "4-10" }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "4-9" }, -/turf/open/floor/plasteel/tech, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet/lit, /area/ruin/jungle/cavecrew/bridge) -"RV" = ( -/turf/open/floor/plasteel/stairs{ - dir = 1 +"At" = ( +/obj/structure/flora/rock/pile/largejungle, +/obj/structure/punji_sticks, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"AE" = ( +/obj/structure/cable{ + icon_state = "1-6" }, -/area/ruin/jungle/cavecrew/ship) -"RZ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "gut_cargo"; - name = "Blast Shutters"; +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ dir = 4 }, -/turf/open/floor/engine/hull/interior, -/area/ruin/jungle/cavecrew/ship) -"Sj" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/bridge) -"SI" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"AH" = ( +/obj/structure/cable{ + icon_state = "4-10" }, -/obj/machinery/autolathe/hacked, -/turf/open/floor/plasteel/tech/techmaint, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"ST" = ( +"AR" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/railing{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"AV" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"SY" = ( -/obj/structure/railing{ - dir = 4; - layer = 3.1 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/hull, +/area/ruin/jungle/cavecrew/ship) +"AW" = ( /obj/structure/cable{ - icon_state = "2-9" + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Tc" = ( -/obj/item/stack/ore/salvage/scrapmetal/five{ - pixel_x = -5; - pixel_y = -12 +/turf/open/floor/concrete/slab_3/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Ba" = ( +/obj/structure/table/wood/reinforced, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = -8; + pixel_x = 4 }, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/jungle/cavecrew/cargo) -"Td" = ( -/obj/machinery/power/terminal, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/obj/item/phone{ + pixel_x = 8; + pixel_y = -4 }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"Tf" = ( -/obj/structure/table/wood, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 5; - pixel_y = 3 +/obj/item/flashlight/lamp/green{ + pixel_y = 13; + pixel_x = 8 }, -/obj/item/reagent_containers/food/drinks/bottle/moonshine{ - pixel_x = -2; - pixel_y = 3 +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Bd" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" }, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"Th" = ( /obj/effect/turf_decal/techfloor{ - dir = 9 + dir = 4 }, -/obj/structure/cable{ - icon_state = "0-4" +/turf/open/floor/engine/hull, +/area/ruin/jungle/cavecrew/ship) +"Be" = ( +/obj/machinery/button/shieldwallgen{ + dir = 1; + id = "gut_holo"; + pixel_x = -2; + pixel_y = -21 }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"Ti" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Tu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Tw" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Tx" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/jungleplanet{ - icon_state = "plating_rust" +/obj/machinery/button/door{ + id = "gut_cargo"; + name = "Cargo Door Control"; + pixel_y = -22; + dir = 1; + pixel_x = -11 }, -/area/ruin/jungle/cavecrew/cargo) -"Ty" = ( -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"TD" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 1; - pixel_y = 16 +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -15; - pixel_y = -5 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "gut_holo"; + dir = 1 }, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = 7; - pixel_y = 1 +/turf/open/floor/engine/hull/interior, +/area/ruin/jungle/cavecrew/ship) +"Bo" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Bp" = ( +/obj/effect/decal/cleanable/crayon{ + color = "#FF3333"; + icon_state = "getout"; + pixel_y = -3; + pixel_x = -5 }, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"TE" = ( -/obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" + icon_state = "4-8" }, -/area/ruin/powered) -"TJ" = ( -/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/catwalk/over/plated_catwalk/dark, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"TY" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/structure/flora/bigplant, +/turf/open/floor/plating/jungleplanet/lit, /area/ruin/jungle/cavecrew/bridge) -"Ua" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"Bs" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = -2; + pixel_x = -4 }, -/obj/structure/chair/comfy/orange/directional/east{ - color = "#66b266" +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Bt" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" }, -/obj/item/book/manual/wiki/surgery{ - pixel_x = 10; - pixel_y = -5 +/obj/item/reagent_containers/glass/rag, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Bv" = ( +/obj/structure/table, +/obj/item/reagent_containers/pill/finobranc, +/obj/item/reagent_containers/pill/finobranc{ + pixel_x = -6; + pixel_y = 3 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/obj/item/reagent_containers/pill/finobranc{ + pixel_x = 4; + pixel_y = 8 }, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) -"Ud" = ( -/obj/machinery/light/directional/west, -/turf/open/water/jungle, +/obj/structure/large_mortar, +/obj/item/pestle, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Ue" = ( -/obj/structure/falsewall/plastitanium, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/dormitories) -"Uf" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 4 - }, +"Bx" = ( +/obj/machinery/light/floor, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "4-9" + icon_state = "5-10" }, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Us" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 9 +/area/ruin/jungle/cavecrew) +"By" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-5" + }, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Bz" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, /obj/item/stack/sheet/mineral/plasma/twenty{ pixel_y = 7 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/jungleplanet, /area/ruin/jungle/cavecrew/engineering) -"Uy" = ( +"BF" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"BH" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/secure/gear, +/obj/item/attachment/bayonet, +/obj/item/attachment/bayonet, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"BJ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"UC" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 6 +/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ + dir = 1 }, -/obj/machinery/vending/tool, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"UI" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/techfloor/hole, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/transparent/green/filled/warning, /turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"UJ" = ( -/obj/structure/table/wood/reinforced, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_x = -1; - pixel_y = 3 +/area/ruin/jungle/cavecrew/ship) +"BN" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/modular_computer/laptop/preset/civilian/rilena{ + pixel_x = -3; + pixel_y = 12 }, -/obj/item/newspaper{ +/obj/machinery/jukebox/boombox{ pixel_x = 6; - pixel_y = 10 + pixel_y = -14 }, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/cable{ - icon_state = "0-2" +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew) +"BP" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"UN" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plasteel/patterned/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"UP" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"UV" = ( -/obj/structure/flora/rock/pile/largejungle, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"UY" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_x = -1; - pixel_y = -37 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"BS" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + dir = 1; + layer = 2.89 }, -/obj/structure/flora/rock/pile/largejungle{ - pixel_y = -11; - pixel_x = -1 +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" }, -/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Vb" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 8 +"BT" = ( +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"BV" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + layer = 4.1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/west, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"Vd" = ( -/obj/structure/flora/tree/jungle, -/obj/structure/flora/grass/jungle{ - pixel_x = -11; - pixel_y = 10 +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg1" }, -/obj/structure/flora/grass/jungle/b, -/obj/structure/flora/rock/pile/largejungle, -/turf/open/floor/plating/asteroid/dirt/jungle, -/area/overmap_encounter/planetoid/jungle/explored) -"Vk" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "6-8" +/area/overmap_encounter/planetoid/cave/explored) +"Cc" = ( +/obj/structure/curtain/cloth{ + open = 0; + icon_state = "bathroom-closed" }, -/obj/structure/closet/crate/science, -/obj/item/storage/box/stockparts/t2{ - pixel_x = 4; - pixel_y = 3 +/turf/open/floor/plasteel/stairs/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Cd" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/item/storage/backpack/duffelbag{ - pixel_y = -5 +/obj/structure/closet/body_bag{ + name = "body bag - Mark #2" }, -/obj/item/storage/fancy/cigarettes/cigpack_cannabis, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Vu" = ( -/obj/effect/turf_decal/techfloor/hole{ - dir = 4; - pixel_x = 4 +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/turf_decal/borderfloorblack{ + dir = 6; + layer = 2.01 }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 4; - pixel_x = 4 +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Cg" = ( +/obj/structure/platform/wood{ + dir = 4 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Cl" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 14; + pixel_y = 1 }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Co" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-4" }, -/obj/machinery/door/airlock/grunge{ - dir = 8 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Cq" = ( +/obj/structure/spacevine, +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Cr" = ( +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Vx" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-10" +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Cv" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/chair/bench/grey/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 }, -/turf/open/floor/plating/jungleplanet/lit, -/area/ruin/powered) -"Vy" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech/techmaint, -/area/ruin/jungle/cavecrew/engineering) -"VC" = ( -/turf/open/floor/plasteel/stairs{ - planetary_atmos = 1; - initial_gas_mix = "JUNGLEPLANET_ATMOS" +/mob/living/simple_animal/hostile/human/frontier, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Cy" = ( +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg2" }, -/area/ruin/jungle/cavecrew/cargo) -"VO" = ( -/obj/structure/closet/secure_closet{ - icon_state = "armory"; - name = "armor locker"; - req_access_txt = "1" +/area/overmap_encounter/planetoid/cave/explored) +"CB" = ( +/obj/structure/flora/driftwood, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"CC" = ( +/obj/structure/cable{ + icon_state = "6-10" }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/cobweb, -/obj/item/clothing/under/frontiersmen, -/obj/item/clothing/under/frontiersmen, -/obj/item/clothing/under/frontiersmen, -/obj/item/clothing/suit/armor/vest/frontier, -/obj/item/clothing/suit/armor/vest/frontier, -/obj/item/clothing/suit/armor/vest/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/security) -"VU" = ( -/obj/machinery/power/terminal{ - dir = 8 +/area/ruin/jungle/cavecrew) +"CD" = ( +/obj/structure/platform/wood{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"CF" = ( +/obj/structure/cable{ + icon_state = "2-8" }, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"CH" = ( +/obj/structure/spacevine, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"CJ" = ( +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew) +"CN" = ( /obj/effect/turf_decal/techfloor{ dir = 9 }, -/obj/effect/turf_decal/techfloor/corner, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"VV" = ( -/obj/machinery/light/directional/east, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"VZ" = ( -/turf/closed/wall/r_wall/yesdiag, -/area/ruin/jungle/cavecrew/cargo) -"Wc" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/bookcase/random/nonfiction, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/hallway) -"Wg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-10" +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"CO" = ( +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" }, -/obj/structure/cable{ - icon_state = "2-10" +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"CP" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 }, -/turf/open/floor/plasteel/tech, +/obj/structure/flora/tree/jungle{ + icon_state = "tree9" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"CR" = ( +/obj/machinery/porta_turret/ruin/frontiersmen{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, /area/ruin/jungle/cavecrew/ship) -"Wh" = ( -/obj/structure/flora/ausbushes/reedbush{ - pixel_y = 20 +"CY" = ( +/obj/structure/flora/rock/jungle{ + pixel_y = 13 }, -/obj/structure/flora/ausbushes/reedbush{ +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"CZ" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Da" = ( +/obj/structure/flora/grass/jungle{ pixel_x = -13; - pixel_y = 10 + pixel_y = -14 }, -/obj/structure/railing{ - dir = 6; - layer = 3.1 +/obj/structure/spacevine, +/obj/structure/flora/ausbushes/sunnybush{ + pixel_x = 12; + pixel_y = 2 }, -/turf/open/water/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Wk" = ( -/obj/effect/turf_decal/siding/thinplating/dark, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"Wu" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/zipties{ - pixel_y = 7; - pixel_x = 4 +"Dh" = ( +/obj/machinery/fax/ruin, +/obj/structure/table/reinforced{ + color = "#c1b6a5" }, -/obj/item/storage/box/syndie_kit/emp{ - pixel_x = -3 +/obj/effect/turf_decal/borderfloorblack{ + layer = 2.030; + dir = 9 }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/security) -"Wv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Do" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/obj/structure/closet/secure_closet/engineering_welding{ + req_access = null; + anchored = 1 }, -/area/ruin/powered) -"WD" = ( -/obj/structure/toilet{ +/obj/structure/railing{ dir = 4; - pixel_x = -1; - pixel_y = 5 + layer = 4.1 }, -/obj/structure/sink{ - pixel_y = 22; - pixel_x = 6 +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Dx" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/mirror{ - pixel_y = 32 +/obj/structure/table/glass, +/obj/item/toy/cards/deck{ + pixel_x = -8; + pixel_y = -1 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/jungle/cavecrew/hallway) -"WE" = ( -/obj/effect/decal/cleanable/dirt, +/obj/item/toy/cards/deck/tarot{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/book/fish_catalog{ + pixel_x = -10; + pixel_y = 8 + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"DB" = ( +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"DC" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"DH" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"WN" = ( -/obj/structure/flora/rock/jungle{ - pixel_y = 13 +/obj/item/reagent_containers/glass/concrete_bag{ + pixel_x = -15; + pixel_y = 2 }, -/turf/open/water/jungle, -/area/overmap_encounter/planetoid/cave/explored) -"WS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"DJ" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-5" }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "plating_rust" +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"DK" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"DP" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 }, -/area/ruin/powered) -"Xb" = ( /turf/open/floor/plating/asteroid/dirt/jungle, -/area/ruin/powered) -"Xd" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "gut_holo" +/area/overmap_encounter/planetoid/jungle/explored) +"DR" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/poddoor/shutters{ - id = "gut_cargo"; - name = "Blast Shutters"; - dir = 4 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"DS" = ( +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew/cargo) +"DW" = ( +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 }, -/turf/open/floor/engine/hull/interior, -/area/ruin/jungle/cavecrew/ship) -"Xs" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/loot, -/obj/item/storage/pill_bottle/iron{ - pixel_x = -6 +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic{ + dir = 10 }, -/obj/item/storage/pill_bottle/lsd{ - pixel_y = -3; - pixel_x = -2 +/obj/item/storage/belt/utility/full/engi, +/obj/item/storage/toolbox/electrical, +/obj/item/clothing/glasses/welding{ + pixel_y = 5 }, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Xu" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/obj/item/multitool{ + pixel_x = 9 }, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"DX" = ( +/obj/structure/spacevine, +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"DY" = ( /obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 + dir = 1 }, /obj/structure/cable{ - icon_state = "2-5" + icon_state = "6-8" }, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"XM" = ( -/obj/structure/flora/grass/jungle{ - pixel_x = 6; - pixel_y = -22 +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"DZ" = ( +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 8 }, -/obj/structure/flora/junglebush/b, -/turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"Ya" = ( -/obj/structure/flora/grass/jungle, -/obj/structure/flora/rock/pile/largejungle, -/turf/open/floor/plating/asteroid/dirt/jungle, +"Em" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Es" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, /area/overmap_encounter/planetoid/jungle/explored) -"Yb" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 1 +"Ew" = ( +/obj/structure/railing/corner{ + dir = 8 }, -/obj/machinery/door/poddoor{ - id = "gut_engines"; - name = "Thruster Blast Door" +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Ey" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = -11; + pixel_y = 13 }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ruin/jungle/cavecrew/ship) -"Yf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/jukebox, -/turf/open/floor/wood{ - icon_state = "wood-broken3" +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = 10 }, -/area/ruin/jungle/cavecrew/hallway) -"Yn" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8; - name = "tactical chair" +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"EA" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" }, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 }, -/obj/effect/decal/cleanable/vomit/old{ - pixel_y = 6 +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"EH" = ( +/obj/structure/railing{ + layer = 4.1 }, +/obj/structure/flora/ausbushes/palebush, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-5" }, -/obj/machinery/light/directional/east, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"EI" = ( /obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"YA" = ( -/obj/structure/chair/comfy/grey/directional/east, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-6" }, -/mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/bridge) -"YE" = ( +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"EK" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/engineering) +"EM" = ( +/obj/effect/turf_decal/trimline/opaque/green/filled/line{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"EN" = ( +/mob/living/simple_animal/hostile/human/frontier/civilian{ + r_hand = null + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"EP" = ( /obj/effect/turf_decal/techfloor{ - dir = 9 + dir = 8 }, -/obj/structure/table/wood, -/obj/item/storage/fancy/nugget_box, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"EU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 1 }, -/turf/open/floor/plasteel/patterned/brushed, -/area/ruin/jungle/cavecrew/security) -"YK" = ( -/obj/structure/railing/corner{ +/area/ruin/jungle/cavecrew) +"Fa" = ( +/obj/structure/chair/comfy/grey/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/turf/open/floor/plating/jungleplanet/lit{ - icon_state = "platingdmg1" +/obj/structure/cable{ + icon_state = "1-10" }, -/area/ruin/powered) -"YL" = ( -/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Fe" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-10" }, -/turf/open/floor/plating/asteroid/dirt, -/area/ruin/powered) -"YN" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 +/obj/item/stack/cable_coil/random/five, +/obj/item/wirecutters, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Fm" = ( +/obj/machinery/porta_turret/ruin/frontiersmen{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ruin/jungle/cavecrew/ship) +"Fp" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5"; + pixel_x = 0; + pixel_y = 2 + }, +/obj/machinery/button/door{ + pixel_x = -8; + pixel_y = 11; + dir = 8; + id = "cavecheckpointnorth" + }, +/obj/item/reagent_containers/food/drinks/rilenacup{ + pixel_x = 5; + pixel_y = -3 + }, +/obj/item/toy/plush/rilena{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/machinery/button/door{ + pixel_x = -8; + pixel_y = 0; + dir = 8; + id = "cavecheckpointsouth" }, -/obj/effect/turf_decal/steeldecal/steel_decals1, /turf/open/floor/plasteel/dark, -/area/ruin/jungle/cavecrew/bridge) -"YR" = ( -/obj/structure/fluff/fokoff_sign, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"YS" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 6 +/area/ruin/jungle/cavecrew) +"Fq" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 }, -/turf/open/floor/plasteel, -/area/ruin/jungle/cavecrew/hallway) -"YV" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, -/area/ruin/jungle/cavecrew/cargo) -"Zd" = ( /obj/structure/flora/grass/jungle{ pixel_x = -13; pixel_y = -14 }, -/obj/structure/flora/rock/pile/largejungle, +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/jungle/explored) -"Zi" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/filingcabinet{ - pixel_x = -9 +"Fw" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Fy" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/item/kirbyplants{ - icon_state = "plant-03"; - pixel_x = 6 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"FK" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"FN" = ( +/obj/structure/platform/wood{ + dir = 9 }, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Gd" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/obj/structure/railing{ + layer = 4.1 }, -/turf/open/floor/wood, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Gf" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Gg" = ( +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Gh" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector, +/turf/open/floor/engine/hull/reinforced, +/area/ruin/jungle/cavecrew/ship) +"Gm" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high{ + pixel_y = -5; + pixel_x = -3 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Gn" = ( +/obj/machinery/computer/crew/syndie{ + dir = 8; + icon_state = "computer-right" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Go" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Gq" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Gr" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "gut_holo" + }, +/turf/open/floor/engine/hull/interior, +/area/ruin/jungle/cavecrew/ship) +"Gy" = ( +/obj/machinery/light/directional/east, +/obj/machinery/computer/card/minor/cmo{ + dir = 8; + icon_state = "computer-left" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"GF" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"GJ" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"GK" = ( +/obj/effect/turf_decal/atmos/oxygen, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/cargo) +"GN" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"GT" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg2" + }, +/area/overmap_encounter/planetoid/cave/explored) +"GU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/red/jungleplanet, /area/ruin/jungle/cavecrew/dormitories) -"Zx" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 10 +"GV" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/belt/utility/full/engi, -/obj/item/clothing/glasses/welding{ - pixel_y = 5 +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/obj/item/multitool{ - pixel_x = 9 +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"GW" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor, +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_x = 0; + pixel_y = 30 + }, +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"GZ" = ( +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) +"Hb" = ( +/obj/structure/flora/tree/jungle/small, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Hc" = ( +/obj/structure/platform/wood{ + dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Hd" = ( /obj/structure/cable{ icon_state = "0-2" }, /obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ruin/jungle/cavecrew/engineering) -"ZD" = ( -/obj/effect/turf_decal/techfloor{ +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 8; + pixel_y = -11 + }, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Hj" = ( +/obj/machinery/light/directional/east, +/obj/item/kirbyplants{ + icon_state = "plant-12"; + pixel_x = 8; + pixel_y = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 5 }, -/obj/machinery/computer/crew, -/obj/machinery/light_switch{ - pixel_y = 21; - pixel_x = -10 +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ruin/jungle/cavecrew/ship) -"ZG" = ( -/obj/structure/flora/ausbushes/stalkybush{ - pixel_x = -8; - pixel_y = 3 +/obj/effect/turf_decal/corner/opaque/red/three_quarters{ + dir = 8 }, -/turf/open/water/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"ZM" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/closet/crate, -/obj/item/clothing/suit/space/nasavoid/old, -/obj/item/clothing/head/helmet/space/nasavoid/old, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel/tech, -/area/ruin/jungle/cavecrew/ship) -"ZQ" = ( -/obj/structure/flora/rock/pile/largejungle{ - pixel_x = -20; - pixel_y = -31 +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Hp" = ( +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered{ + environment_smash = 0 }, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) -"ZS" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, +"Hw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Hx" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"HD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters{ + id = "cavecheckpointnorth"; + name = "Checkpoint North" + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"HG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "4-9" + }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/loot, -/turf/open/floor/plasteel/patterned/cargo_one/jungleplanet, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"HI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/toxins{ + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50); + name = "shitty plasma canister"; + max_integrity = 60; + desc = "A shoddily constructed container of Plasma gas. Highly toxic." + }, +/turf/open/floor/plasteel/tech, /area/ruin/jungle/cavecrew/cargo) -"ZT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +"HL" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 }, -/obj/structure/dresser, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/newspaper{ - pixel_x = -4; - pixel_y = 8 +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/wood, -/area/ruin/jungle/cavecrew/dormitories) +/obj/effect/decal/cleanable/oil, +/turf/open/floor/engine/hull/interior, +/area/ruin/jungle/cavecrew/ship) +"HN" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"HO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew) +"HV" = ( +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"HW" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Ie" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"Ip" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/portable_atmospherics/canister/chlorine{ + name = "shoddily constructed super-high-capacity chlorine canister"; + desc = "Oh Huntsman, this is a bad idea."; + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50); + maximum_pressure = 14119.25; + max_integrity = 60 + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/ship) +"Ir" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Is" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"Iu" = ( +/obj/effect/spawner/bunk_bed, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"Iv" = ( +/obj/item/storage/box/zipties{ + pixel_y = 7; + pixel_x = 4 + }, +/obj/item/grenade/frag{ + pixel_x = 8; + pixel_y = -6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/storage/box/syndie_kit/emp, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"Iw" = ( +/obj/structure/platform/wood{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Iz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"IA" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"ID" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"II" = ( +/obj/structure/platform/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"IO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"IP" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"IS" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"IX" = ( +/obj/structure/flora/junglebush/c, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"IZ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/item/stack/cable_coil/random/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Jg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Jh" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_x = 10; + pixel_y = 25 + }, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"Ji" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Jl" = ( +/obj/machinery/button/door{ + pixel_x = 22; + pixel_y = 9; + dir = 8; + id = "cavecheckpointsouth" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 1 + }, +/area/ruin/jungle/cavecrew) +"Jm" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/obj/machinery/computer/crew{ + icon_state = "computer-right" + }, +/obj/machinery/button/door{ + id = "gut_cargo"; + name = "Cargo Door Control"; + pixel_y = 22; + pixel_x = -1 + }, +/obj/item/melee/boarding_axe, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Jo" = ( +/obj/structure/flora/junglebush/large{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Jt" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/borderfloorblack{ + layer = 2.030; + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Jz" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"JB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"JC" = ( +/obj/structure/platform/wood, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"JI" = ( +/obj/structure/cable{ + icon_state = "4-6" + }, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 4 + }, +/area/overmap_encounter/planetoid/cave/explored) +"JJ" = ( +/obj/structure/cable{ + icon_state = "8-10" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"JQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/concrete_bag{ + pixel_x = -10; + pixel_y = 10 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"JS" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"JX" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Kd" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/button/massdriver{ + id = "gut_launchdoor"; + name = "Cannon Button"; + pixel_x = 21; + pixel_y = 8; + dir = 8 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 5; + layer = 2.01 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Ke" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/corner/opaque/yellow/half, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Kg" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg3" + }, +/area/overmap_encounter/planetoid/cave/explored) +"Kh" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/machinery/light/directional/east, +/obj/item/stack/cable_coil/random/five, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"Kw" = ( +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_x = 32 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/dormitories) +"Kz" = ( +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"KA" = ( +/obj/machinery/power/shuttle/engine/fire{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "gut_engines"; + name = "Thruster Blast Door" + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/ship) +"KC" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"KF" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/secure/weapon, +/obj/item/grenade/empgrenade, +/obj/item/grenade/empgrenade, +/obj/item/grenade/frag, +/obj/item/grenade/smokebomb, +/obj/item/grenade/smokebomb, +/obj/item/grenade/smokebomb, +/turf/open/floor/pod, +/area/ruin/jungle/cavecrew/ship) +"KK" = ( +/obj/structure/railing/corner, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"KM" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + name = "Ammo Locker"; + req_access_txt = "1" + }, +/obj/item/ammo_box/magazine/skm_46_30, +/obj/item/ammo_box/magazine/skm_46_30, +/obj/item/ammo_box/magazine/skm_46_30, +/obj/item/ammo_box/magazine/illestren_a850r, +/obj/item/ammo_box/magazine/illestren_a850r, +/obj/item/storage/box/ammo/a4570, +/obj/item/storage/box/ammo/a12g_buckshot, +/obj/item/storage/box/ammo/a12g_buckshot, +/obj/item/ammo_box/magazine/m12g_slammer, +/obj/item/ammo_box/magazine/m12g_slammer, +/obj/machinery/light/directional/east, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"KN" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"KQ" = ( +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"KR" = ( +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"KW" = ( +/turf/open/floor/plasteel/stairs, +/area/ruin/jungle/cavecrew/ship) +"KZ" = ( +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Lb" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/plasma/reinforced/spawner, +/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/ship) +"Lc" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Ld" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 8; + pixel_y = -3 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Li" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/plastic{ + pixel_x = -1; + pixel_y = 12 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/corner/opaque/red/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Lm" = ( +/turf/closed/wall/concrete, +/area/ruin/jungle/cavecrew/cargo) +"Ln" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Lp" = ( +/obj/structure/cable{ + icon_state = "1-9" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Lq" = ( +/obj/item/shovel, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) +"Lv" = ( +/obj/item/storage/backpack/duffelbag/syndie/c4{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/effect/turf_decal/industrial/fire{ + dir = 5 + }, +/obj/item/crowbar/power{ + pixel_y = -4 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/light/directional/south, +/obj/item/grenade/spawnergrenade/manhacks{ + pixel_x = -11; + pixel_y = 3 + }, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"Lw" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"LA" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/dormitories) +"LD" = ( +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/obj/machinery/vending/cola/shamblers, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"LM" = ( +/obj/structure/spacevine, +/obj/structure/punji_sticks, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"LN" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"LT" = ( +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"LW" = ( +/obj/structure/spacevine/dense, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"LY" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"Ma" = ( +/obj/effect/turf_decal/industrial/loading, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"Mb" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/structure/cable{ + icon_state = "1-6" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Mf" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -5; + pixel_y = 18 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 14; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Mg" = ( +/obj/item/shovel, +/obj/item/clothing/head/hardhat, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Mk" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Mm" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/red/three_quarters{ + dir = 1 + }, +/obj/structure/flippedtable{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Mo" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 10; + pixel_y = 5 + }, +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Mp" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken4" + }, +/area/overmap_encounter/planetoid/cave/explored) +"Mr" = ( +/obj/machinery/atmospherics/components/trinary/mixer, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/cargo) +"Ms" = ( +/obj/structure/railing{ + dir = 6; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"MA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"MG" = ( +/obj/structure/flora/ausbushes/stalkybush, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"MN" = ( +/obj/structure/spacevine, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"MR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/decal/cleanable/crayon, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"MT" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/loading{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"MU" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/food/egg_smudge, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken3" + }, +/area/ruin/jungle/cavecrew/dormitories) +"MW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 8 + }, +/area/ruin/jungle/cavecrew/hallway) +"MY" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/opaque/yellow/half, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"MZ" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 10; + pixel_y = 5 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Na" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"Nc" = ( +/obj/structure/spacevine, +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Nf" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/item/circuitboard/machine/autolathe, +/obj/structure/closet/crate, +/obj/effect/spawner/random/circuit/machine/common, +/obj/item/circuitboard/machine/chem_heater, +/obj/item/circuitboard/machine/suit_storage_unit/industrial, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"Ng" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Nj" = ( +/obj/structure/flora/rock/pile/largejungle, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Nk" = ( +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Nl" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "bunker-control" + }, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Nn" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Np" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" + }, +/area/overmap_encounter/planetoid/cave/explored) +"Nq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken2" + }, +/area/overmap_encounter/planetoid/cave/explored) +"Nr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Ns" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_x = -1; + pixel_y = -37 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Ny" = ( +/obj/structure/flora/ausbushes/sunnybush{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew/hallway) +"NC" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/yellow/half{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"NG" = ( +/obj/structure/cable{ + icon_state = "2-6" + }, +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered, +/turf/open/floor/concrete/slab_3/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"NK" = ( +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plating/jungleplanet{ + icon_state = "platingdmg3" + }, +/area/ruin/jungle/cavecrew) +"NL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/random/entertainment/cigarette, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"NM" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"NN" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"NP" = ( +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"NR" = ( +/obj/structure/spacevine/dense, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"NT" = ( +/obj/structure/bed/double{ + dir = 1 + }, +/obj/item/bedsheet/double/brown{ + dir = 1 + }, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"NW" = ( +/obj/machinery/porta_turret/ruin/frontiersmen{ + dir = 1 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/ship) +"Oc" = ( +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew) +"Oe" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"Oi" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Os" = ( +/obj/structure/platform/wood{ + dir = 1 + }, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Ou" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Ov" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"Oy" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"OA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"OF" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 9 + }, +/obj/item/stack/sheet/metal/twenty, +/obj/effect/turf_decal/box, +/turf/open/floor/concrete/slab_1, +/area/ruin/jungle/cavecrew/engineering) +"OG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/concrete/slab_3{ + dir = 8 + }, +/area/overmap_encounter/planetoid/cave/explored) +"OI" = ( +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"OP" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/jukebox/boombox, +/turf/open/floor/plasteel/patterned/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"OR" = ( +/obj/structure/ore_box, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"OU" = ( +/obj/machinery/mineral/processing_unit{ + output_dir = 4; + input_dir = 2 + }, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"OV" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"OZ" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Pc" = ( +/turf/open/floor/plasteel/stairs/jungleplanet{ + dir = 4 + }, +/area/overmap_encounter/planetoid/cave/explored) +"Pf" = ( +/obj/effect/turf_decal/corner_techfloor_gray/diagonal, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Pg" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/yellow/half, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Pq" = ( +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Pt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Px" = ( +/obj/effect/turf_decal/corner/opaque/tan/half, +/obj/effect/turf_decal/road/slow, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"PB" = ( +/obj/effect/turf_decal/industrial/radiation{ + dir = 4 + }, +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"PC" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 1; + pixel_y = 16 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -15; + pixel_y = -5 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 7; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"PF" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/blue/half{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"PN" = ( +/obj/structure/railing{ + dir = 4; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"PS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"PY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/ruin/jungle/cavecrew) +"PZ" = ( +/obj/structure/closet, +/obj/item/clothing/mask/gas/frontiersmen, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier, +/obj/item/clothing/suit/armor/vest/frontier, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Qb" = ( +/obj/item/documents/frontier, +/obj/item/desk_flag{ + pixel_x = -11; + pixel_y = 14 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Ql" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/gear, +/obj/item/clothing/suit/space/hardsuit/syndi/ramzi, +/obj/item/clothing/neck/dogtag/ramzi, +/obj/item/clothing/neck/dogtag/ramzi, +/obj/item/clothing/suit/armor/ramzi, +/obj/item/clothing/head/helmet/m10/ramzi, +/obj/item/clothing/glasses/hud/security/sunglasses/ramzi, +/obj/item/clothing/glasses/hud/security/sunglasses/ramzi, +/turf/open/floor/pod, +/area/ruin/jungle/cavecrew/ship) +"Qx" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Qy" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "outpost2" + }, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Qz" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/window/plasma/reinforced/spawner, +/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/ship) +"QB" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"QE" = ( +/obj/structure/platform/wood{ + dir = 9 + }, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 7; + pixel_y = -8 + }, +/obj/effect/decal/cleanable/ash/large{ + pixel_x = 0; + pixel_y = -9 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"QH" = ( +/obj/structure/cable{ + icon_state = "4-6" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/caution, +/obj/structure/cable{ + icon_state = "4-9" + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"QJ" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"QK" = ( +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"QP" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Command Post" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/bridge) +"QQ" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"QR" = ( +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"QT" = ( +/obj/structure/platform/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"QU" = ( +/obj/structure/cable{ + icon_state = "2-10" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"QX" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/engineering) +"Rc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Rd" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "bunker-control" + }, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Rh" = ( +/mob/living/simple_animal/hostile/carp, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Ri" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Rj" = ( +/obj/structure/cable{ + icon_state = "1-10" + }, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Rr" = ( +/obj/structure/chair/bench/grey/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"RD" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"RG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"RI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/closet, +/obj/item/clothing/under/frontiersmen, +/obj/item/clothing/under/frontiersmen, +/obj/item/clothing/under/frontiersmen, +/obj/item/clothing/under/frontiersmen, +/obj/item/clothing/under/frontiersmen, +/obj/item/clothing/head/soft/frontiersmen, +/obj/item/clothing/head/soft/frontiersmen, +/obj/item/clothing/head/soft/frontiersmen, +/obj/item/clothing/head/soft/frontiersmen, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/head/soft/frontiersmen, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"RJ" = ( +/obj/effect/spawner/bunk_bed, +/obj/machinery/light/directional/north, +/obj/item/toy/plush/carpplushie/dehy_carp{ + pixel_x = 7; + pixel_y = 9 + }, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"RL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + dir = 8 + }, +/area/ruin/jungle/cavecrew/cargo) +"RM" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"RT" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet{ + icon_state = "wood-broken5" + }, +/area/overmap_encounter/planetoid/cave/explored) +"RV" = ( +/obj/structure/cable{ + icon_state = "5-10" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Sj" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"SD" = ( +/obj/item/storage/secure/safe, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/engineering) +"SI" = ( +/obj/item/pen{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = 17; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/item/clipboard{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/structure/table/wood/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"SK" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"SM" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + dir = 9; + layer = 4.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"SR" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/spacevine/dense, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"ST" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"SW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4; + layer = 2.01 + }, +/obj/machinery/door/airlock/grunge{ + name = "Armory"; + dir = 4 + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"SX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/reagent_containers/glass/concrete_bag, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"SY" = ( +/obj/structure/cable{ + icon_state = "2-6" + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Tc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"Te" = ( +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/button/door{ + id = "gut_engines"; + name = "Engine Shutters"; + pixel_y = -22; + dir = 1 + }, +/turf/open/floor/pod, +/area/ruin/jungle/cavecrew/ship) +"Tf" = ( +/obj/effect/turf_decal/steeldecal/steel_decals4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Th" = ( +/obj/structure/cable{ + icon_state = "1-9" + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/concrete/slab_3{ + dir = 8 + }, +/area/overmap_encounter/planetoid/cave/explored) +"Ti" = ( +/obj/effect/decal/cleanable/crayon{ + color = "#FF3333"; + icon_state = "danger"; + pixel_y = -4; + pixel_x = -5 + }, +/obj/structure/cable{ + icon_state = "6-9" + }, +/turf/open/floor/plating/jungleplanet, +/area/ruin/jungle/cavecrew) +"Tj" = ( +/obj/structure/platform/wood{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Ts" = ( +/obj/structure/railing{ + layer = 3.1 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 9; + pixel_x = 1 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = -13; + pixel_y = -2 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Tu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister/toxins{ + armor = list("melee" = 50, "bullet" = 0, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50); + name = "shitty plasma canister"; + max_integrity = 60; + desc = "A shoddily constructed container of Plasma gas. Highly toxic." + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/cargo) +"Tv" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/item/clothing/head/soft/frontiersmen, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"Tw" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = 10 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Tx" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Ty" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"TC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "UNDER CONSTRUCTION!" + }, +/turf/open/floor/plasteel/jungleplanet, +/area/ruin/jungle/cavecrew) +"TD" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/corner_steel_grid/diagonal, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"TE" = ( +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"TJ" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"TO" = ( +/obj/structure/railing{ + dir = 1; + layer = 2.89 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"TP" = ( +/obj/structure/girder, +/obj/structure/hazard/electrical/electrified_water, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew) +"TY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"Ud" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew) +"Ue" = ( +/obj/machinery/conveyor{ + id = "outpost3"; + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Ug" = ( +/obj/structure/spacevine, +/obj/structure/flora/grass/jungle, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Uh" = ( +/obj/structure/flora/ausbushes/sunnybush{ + pixel_x = 12; + pixel_y = 2 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Us" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_2/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"Uy" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/suit_storage_unit/inherit/industrial, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"UC" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/storage/toolbox/ammo{ + pixel_y = 2 + }, +/obj/item/storage/toolbox/ammo{ + pixel_y = -6; + pixel_x = -5 + }, +/turf/open/floor/pod/jungleplanet, +/area/ruin/jungle/cavecrew) +"UI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/crayon, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"UJ" = ( +/obj/structure/cable{ + icon_state = "1-5" + }, +/obj/effect/decal/cleanable/food/flour, +/obj/item/kirbyplants{ + icon_state = "plant-21"; + pixel_y = 2; + pixel_x = 0 + }, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"UN" = ( +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/effect/turf_decal/industrial/caution/white{ + color = "#d2d53d"; + dir = 8 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"UV" = ( +/obj/structure/flora/rock{ + pixel_x = 9 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"UY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Vb" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -5; + pixel_y = 18 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Vd" = ( +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Vg" = ( +/obj/structure/cable{ + icon_state = "4-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Vh" = ( +/obj/structure/platform/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Vi" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/structure/cable{ + icon_state = "4-9" + }, +/obj/effect/turf_decal/corner/opaque/yellow, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Vk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_x = 2; + pixel_y = 8 + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Vm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Vu" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Vx" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Vy" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 14; + pixel_y = 1 + }, +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"VB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"VD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"VH" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"VO" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"VU" = ( +/obj/structure/destructible/tribal_torch/lit, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/cave/explored) +"VV" = ( +/obj/machinery/computer/camera_advanced{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"VZ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/directional/east, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine/hull, +/area/ruin/jungle/cavecrew/ship) +"Wc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"We" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Wg" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Wh" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Wj" = ( +/obj/structure/sign/poster/radio/icf, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew) +"Wk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"Wl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_x = 10; + pixel_y = 7 + }, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Wn" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" + }, +/area/overmap_encounter/planetoid/cave/explored) +"Wq" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" + }, +/area/ruin/jungle/cavecrew) +"Wr" = ( +/mob/living/simple_animal/hostile/human/frontier, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Wu" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Wv" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/hallway) +"Wz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/tan/filled/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"WA" = ( +/mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured{ + name = "Officer Seth"; + environment_smash = 0 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/random/entertainment/cigarette{ + pixel_x = 14; + pixel_y = -6 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"WD" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed/jungleplanet, +/area/ruin/jungle/cavecrew) +"WE" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/stairs, +/area/ruin/jungle/cavecrew/ship) +"WK" = ( +/obj/structure/railing/wood, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/stairs/wood/jungleplanet{ + dir = 4 + }, +/area/overmap_encounter/planetoid/cave/explored) +"WN" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"WP" = ( +/obj/structure/spacevine, +/obj/structure/punji_sticks, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"WS" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/concrete/slab_4/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"WY" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Xb" = ( +/obj/structure/platform/wood, +/turf/open/floor/plasteel/stairs/wood/jungleplanet{ + dir = 8 + }, +/area/overmap_encounter/planetoid/cave/explored) +"Xd" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" + }, +/area/overmap_encounter/planetoid/cave/explored) +"Xf" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 + }, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"Xi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/ruin/jungle/cavecrew) +"Xj" = ( +/obj/structure/table, +/obj/structure/reagent_dispensers/servingdish, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/item/kitchen/spoon/plastic, +/obj/item/kitchen/spoon/plastic, +/obj/item/kitchen/spoon/plastic, +/obj/item/kitchen/spoon/plastic, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Xo" = ( +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Xq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/tan/filled/warning, +/turf/open/floor/concrete/reinforced/jungleplanet, +/area/ruin/jungle/cavecrew) +"Xs" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"Xt" = ( +/obj/item/stack/rods/ten, +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew) +"Xu" = ( +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Xy" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plating/jungleplanet{ + icon_state = "plating_rust" + }, +/area/overmap_encounter/planetoid/cave/explored) +"XC" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/structure/flora/tree/jungle{ + icon_state = "tree9" + }, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"XH" = ( +/obj/structure/sign/poster/contraband/radiofreefrontier, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/hallway) +"XK" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"XM" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/effect/mob_spawn/human/corpse/ramzi, +/obj/structure/closet/body_bag{ + name = "body bag - Mark #1" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4; + layer = 2.01 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"XN" = ( +/obj/machinery/light/directional/north, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"XT" = ( +/obj/structure/cable{ + icon_state = "4-9" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"XU" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/reagentgrinder{ + name = "Slop-O-Matic"; + desc = "Insert meat, vegetables, and rum and press blend. Food for the whole cell!"; + pixel_x = 7; + pixel_y = 15 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -10; + pixel_y = 13 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -9; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -9; + pixel_y = 7 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_x = 8; + pixel_y = -1 + }, +/turf/open/floor/carpet/red/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"XW" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/platform/wood{ + dir = 8 + }, +/turf/open/floor/wood/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Yc" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/punji_sticks, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Yf" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 13; + pixel_y = 7 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 5; + pixel_y = 11 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Yi" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Yj" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/structure/flora/ausbushes/palebush, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Yl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/engineering) +"Yn" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Yo" = ( +/obj/structure/cable{ + icon_state = "4-6" + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"Yp" = ( +/obj/structure/flora/driftwood, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Yq" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Yv" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/glass/rag, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/food/pizza/vegetable, +/turf/open/floor/carpet/red/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"YA" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/corner/opaque/yellow/half{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/hallway) +"YE" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + dir = 8 + }, +/area/ruin/jungle/cavecrew/cargo) +"YG" = ( +/obj/structure/railing{ + dir = 1; + layer = 2.89 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"YK" = ( +/obj/structure/grille/broken, +/obj/structure/hazard/electrical/electrified_water, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew) +"YL" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/jungleplanet, +/area/ruin/jungle/cavecrew) +"YN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/airalarm/directional/west, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs, +/area/ruin/jungle/cavecrew/ship) +"YR" = ( +/turf/closed/wall/concrete, +/area/overmap_encounter/planetoid/cave/explored) +"YS" = ( +/turf/open/floor/plating/asteroid/dirt, +/area/ruin/jungle/cavecrew) +"YV" = ( +/obj/machinery/porta_turret/ruin/frontiersmen{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/jungle/cavecrew/ship) +"YX" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/asteroid/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"Za" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/borderfloorblack{ + layer = 2.030; + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/ship) +"Zd" = ( +/obj/structure/falsewall/plastitanium{ + name = "slightly ajar wall" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/bridge) +"Zh" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Zi" = ( +/obj/structure/flora/ausbushes/stalkybush, +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Zk" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Zm" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"Zx" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"Zy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew/cargo) +"ZA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) +"ZB" = ( +/obj/structure/cable{ + icon_state = "1-6" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 2 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/carpet/green/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"ZD" = ( +/turf/closed/mineral/random/jungle, +/area/ruin/jungle/cavecrew) +"ZL" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ZM" = ( +/obj/effect/decal/cleanable/crayon{ + color = "#FF3333"; + icon_state = "danger"; + pixel_y = -4; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plating/jungleplanet{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew) +"ZP" = ( +/obj/machinery/light/directional/west, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ZQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/reagent_containers/glass/concrete_bag, +/turf/open/floor/concrete/slab_1/jungleplanet, +/area/ruin/jungle/cavecrew) +"ZR" = ( +/obj/effect/decal/cleanable/ash{ + pixel_x = -8; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = 9; + pixel_y = 12 + }, +/turf/open/floor/plating/asteroid/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ZS" = ( +/turf/open/floor/wood/jungleplanet, +/area/ruin/jungle/cavecrew/dormitories) +"ZT" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/paper_bin{ + pixel_x = -11; + pixel_y = 13 + }, +/obj/item/pen{ + pixel_y = 13; + pixel_x = -15 + }, +/obj/item/trash/popcorn{ + pixel_x = -4; + pixel_y = -7 + }, +/obj/item/radio/intercom/table{ + dir = 4; + pixel_x = 5; + pixel_y = 0 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew) +"ZV" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plating/jungleplanet, +/area/overmap_encounter/planetoid/cave/explored) (1,1,1) = {" es @@ -4049,15 +6922,6 @@ es es es es -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es @@ -4076,8 +6940,245 @@ es es es es -"} -(2,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(2,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(3,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(4,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +es +es +es +es +es +rN +BF +HW +rN +rN +rN +ww +rN +rN +es +es +es +es +es +es +es +es +es +"} +(5,1,1) = {" +es +es +es +es +es es es es @@ -4108,41 +7209,49 @@ es es es es +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG es +rN +rN +np +wq +rN +rN +rN +rN +ov +rN +BF +ov +om +rN es es es es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es -Ma -Ma -NR -Ma -Ma -Ma es es +"} +(6,1,1) = {" es es es es es es -"} -(3,1,1) = {" es es es @@ -4169,45 +7278,52 @@ es es es es +fG +fG +fG +fG +fG +fG +fG +QX +QX +QX +QX +QX +QX +fG +fG +fG +fG +fG +fG +rN +Ns +rN +BF +Fq +rN +rN +rN +om +dH +HW +np +wg es es es es es es -wt -wt -wt -wt -wt -wt -wt -jm -jm -jm -jm -wt -wt -wt -wt -wt -wt -wt -wt -Ma -EI -Ma -Qz -Ma -Ma +"} +(7,1,1) = {" es es es es es es -"} -(4,1,1) = {" es es es @@ -4231,48 +7347,121 @@ es es es es +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +QX +mm +PB +Gm +dQ +QX +fG +fG +fG +fG +fG +fG +fG +rN +rN +np +rN +Oe +ov +rN +rN +ov +np +kW +wg +wg es es es es es +"} +(8,1,1) = {" es es -wt -wt -wt -wt -wt -wt -wt -wt -wt -jm -dm -pn -jm -wt -wt -wt -wt -wt -wt -wt -wt -wt -Ma -Ma -NR -Ma -Ns -Ma es es es es es +es +es +es +es +es +es +es +TE +TE +TE +TE +TE +fY +TE +es +es +es +es +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +QX +GN +sJ +Go +sP +QX +fG +fG +fG +fG +fG +fG +fG +fG +np +dH +np +ov +rN +Cr +rN +np +np +np +wg +wg +np +es +es +es +es "} -(5,1,1) = {" +(9,1,1) = {" es es es @@ -4281,2253 +7470,3179 @@ es es es es +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +fY +TE +TE +TE +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +LA +LA +LA +LA +LA +LA +QX +GW +Nr +tx +Do +QX +wr +wr +Wj +wr +wr +fG +fG +fG +fG +fG +fG +fG +rN +ov +IS +Is +GJ +wg +vO +Es +DK +rN es es es +"} +(10,1,1) = {" es es es -RM -RM -RM -RM -RM -RM -RM es es es es +TE +TE +TE +TE +TE +TE +TE +fY +fY +TE +TE +fY +fY +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +Kw +ah +kR +MU +gR +uz +QX +ld +Bz +fr +dZ +QX +wr +ki +UC +Iv +wr +fG +fG +fG +fG +fG +fG +fG +fG +rN +YX +wg +wg +Ld +np +np +om +rN es es es +"} +(11,1,1) = {" +es +es +es +es +TE +TE +TE +TE +TE +TE +TE +TE +Rh +TE +TE +fY +fY +fY +Pq +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +LA +Xj +cl +oM +XU +kQ +SD +DW +Wc +fr +mz +pl +SK +gS +EP +kd +wr +wr +fG +fG +fG +fG +fG +fG +fG +fG +wg +jb +Oe +wB +kW +rN +rN +HW +rN +es +es +"} +(12,1,1) = {" +es +es es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -jm -VU -QH -jm -jm -jm -wt -wt -wt -wt -wt -wt -wt -wt -jO -Qx -NR -lI -Ma es +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +fY +fY +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +LA +LA +LA +LA +LA +Cv +Rr +VD +Yv +sl +QX +pa +mG +tu +TD +QX +Uy +WD +zN +DB +Lv +wr +fG +fG +fG +fG +fG +fG +fG +fG +fG +rN +FK +Is +Oe +om +rN +rN +TJ +rN es +"} +(13,1,1) = {" es es +TE +TE +TE +TE +TE +TE +TE +fY +TE +TE +fY +fY +Pq +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +wP +fG +fG +ly +qu +Xs +rh +LA +LD +wl +VD +GU +kE +QX +QX +QX +QX +uf +QX +wr +Kh +ow +LY +KM +wr +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +np +rN +Is +qU +rN +rN +HW +rN es "} -(6,1,1) = {" -es -es +(14,1,1) = {" es -wt -wt -wt -wt -wt -wt -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM es +TE +TE +TE +TE +TE +TE +TE +TE +Nn +Sj +fY +fY +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +LA +RJ +Ng +Iu +LA +eE +Wl +cZ +UJ +Wv +Wv +eN +eN +Wv +ST +Ke +wr +wr +ib +Mm +wr +wr +ZD +ZD +fG +fG +fG +fG +fG +fG +fG +fG +rN +rN +rN +TJ +Is +rN +np +rN es +"} +(15,1,1) = {" es es +TE +TE +TE +TE +TE +TE +gP +lb +TE +TE +LN +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +YR +fG +fG +fG +LA +oq +tZ +RI +LA +LA +pC +Nk +vM +Wv +de +Af +Wv +Wv +Pt +gU +wr +NK +aw +nC +YS +gu +ZD +ZD +ZD +TP +iV +iV +iV +iV +fG +fG +fG +rN +rN +HW +HW +OV +dH +rN es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -jm -Bp -gM -xi -SI -jm -wN -wN -wN -wN -wN -wt -wt -wt -rx -Ma -ij -wt -Ma +"} +(16,1,1) = {" es es +TE +TE +TE +TE +TE +TE +TE +TE +MG +fG +oh +fG +gF +fG +fG +fG +fG +fG +fG +fz +dd +HI +Tu +pc +fG +fG +fG +LA +Vk +Tx +bx +ZS +LA +LA +xi +LA +Wv +dh +Wv +Wv +SY +yU +Pg +gM +Li +gA +Ti +wE +gu +Oc +ZD +ZD +YK +lH +dU +Xt +iV +iV +fG +fG +fG +rN +rK +om +rN +OV +HW es +"} +(17,1,1) = {" es +TE +TE +TE +TE +TE +rK +rN +yj +TE +fG +fG +fG +fG +fG +fG +fG +nT +ae +Na +Lm +EI +GK +qj +jR +Ov +fG +fG +fG +LA +sv +Dx +ZB +NM +LA +Ny +DY +kc +sh +jO +kc +lA +bU +ef +lu +wr +Hj +dm +mL +Wq +bg +bT +ZD +ZD +ZD +sx +ZM +lz +ci +iV +fG +fG +fG +fG +rN +TJ +rN +TJ +OV es "} -(7,1,1) = {" +(18,1,1) = {" es +TE +TE +TE +rN +rN +Zm +lD +dH +fG +fG +fG +fG +fG +fG +fG +YR +ae +zu +JS +Wk +Zy +od +Mr +fy +eU +er +fS +fG +LA +nr +aI +JB +Tf +tX +PF +Xf +Vi +NC +NC +cX +YA +NC +lu +Wv +wr +wr +SW +tw +wr +wr +TP +ZD +ZD +CJ +ja +oW +Bx +hz +wr +fG +fG +fG +kj +rN +rN +rN +np +rN es -wt -wt -wt -wt -wt -wt -wt -wt -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM +"} +(19,1,1) = {" es -wt -wt -wt -wt -wt -wt -wt -wt -Nr -Nr -Nr -Nr -Nr -jm -mb -CN -CZ -Vy -jm -wN -VO -OU -Wu -wN -wt -wt -Kw -ov -Jh -Lm -wt -wt +TE +TE +rN +pq +rN +dH +ei +fG +fG +fG +fG +fG +fG +fG +fG +fG +bt +nJ +sV +OP +BT +Zy +vh +Zy +BT +YE +ag +YR +LA +LA +dS +rr +ZS +Cc +oR +AE +MY +Wv +Wv +XH +Wv +Wv +Wv +Wv +fG +fG +DR +jf +fG +fG +ZD +ZD +ZD +oV +iV +CC +dR +YL +wr +fG +fG +fG +fG +CP +rN +Cr +rN es es +"} +(20,1,1) = {" es +TE +TE +qU +qU +qU +BF +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +ht +my +BT +Ma +iz +zI +Us +Zy +ks +fS +fG +LA +LA +LA +LA +LA +rY +rm +Ke +Wv +fG +fG +fG +YR +fG +fG +fG +EH +dz +DZ +fG +fG +ZD +ZD +ZD +ZD +iV +zl +QH +du +wr +fG +fG +fG +fG +qU +HW +ov +rN es es "} -(8,1,1) = {" -es +(21,1,1) = {" es -wt -wt -wt -iW -iW -wt -wt -wt -wt -RM -MR -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -Nr -Nr -lV -zJ -gm -jm -Rd -Us -kR -ag -jm -mt -np +TE +TE +ww +rN dH -gk -wN -wN -wt -Kw -iW -Kw -wt -wt -wt -wt -es -es +lD +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +YR +cD +cf +Ov +Ma +wz +eO +RL +qx +ks +fg +fG +fG +fG +fG +fG +Wv +Wv +fX +Wv +Wv +fG +fG +WS +Vx +By +xE +gC +Hx +eo +jf +Co +Vm +Oc +IA +HO +ZD +wr +wr +IZ +XT +wr +fG +fG +fG +fG +kj +rN +kw +en es es "} -(9,1,1) = {" -es -es -wt -wt -KZ -RM -NR -NR -wt -wt -wt -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -Nr -Nr -tx -dQ -Qy -Ge -jm +(22,1,1) = {" +TE +TE +TE +TE +rN +ei +TJ +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +JS +VB +Zy +Ma +Nf +BH +yC +BT +QB +qr +qr +fG +fG +fG +fG +vY +dP +MW +bp +vY +fG +NG +sR +Rj +gs +AW +AR +ZA +gG +cx Zx +ZA +GF +mb +lR +ZD +ZD wr -ja -kH -jm -MY -am -Bt -zu -ae -wN -wt -wt -yx -Jz -wt -wt -wt -wt -wt -es +wr +TC +wr +wr +fG +fG +fG +fG +NR +cs +dp es es "} -(10,1,1) = {" -es -es -wt -wt -Rh -Rh -RM -RM -Rh -wt -wt -wt -RM -RM -RM -RM -RM -RM -RM +(23,1,1) = {" +TE +TE +TE +TE +rN +rN +lD +fb +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +cV +fz +gw +DS +DS +BT +cO +qx +nq MR -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -Nr -Bz -wk -Tf -Gk -Cg -jm -UC -Iv -jm -lu -jm -wN -vd -LD -DP -sh -wN -Ri -Ri -aY -Ri -wt -wt -wt -wt -wt -wt -es +lF +jn +ZA +ZA +jf +JX +ZA +OI +mY +et +we +eG +Lp +fT +fG +fG +fG +fG +fG +YR +fG +fG +mv +oe +na +GF +Ud +st +IO +qL +Gq +wr +fG +fG +fG +NR +NR +nQ +vJ +wf es "} -(11,1,1) = {" -es -es -wt -wt -wt -Rh -Rh -wt -jg -wt -wt -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -Nr -Wc -lh -mz -fv -Nr -Nr -Nr -Nr -Nr -ah -Ti -wN -wN +(24,1,1) = {" +TE +TE +TE +TE +TE +yW +rN +dH +fG +nQ +WP +Cq +fG +lY +jF +lY +fG +lY +fG +Lm +cV +cV +yJ +bG +mO +uB +bs +PS +UI +Iz +tY +MA +GV +uX +pG +UN +am +uX +dj +ha +ha Th -nv -wN -wN -Ri -BU -we -Ri -Ri -wt -wt -wt -wt -wt -es +fG +YR +fG +Qx +cM +fG +fG +fG +YR +XN +Ew +oe +YS +Tc +wr +kv +EN +Jz +wr +fG +fG +nQ +NR +NR +Nc +Yi +rN es "} -(12,1,1) = {" -es -es -wt -wt -wt -wt -wt -wt -bK -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM +(25,1,1) = {" +TE +TE +TE +TE +TE +Ey +TE +rN +BF +nQ +LW +Xu +zr +jW +Yc +Uh +KN +oP +qM RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -lm -lm -lm -lm -lm -tu -AK -Yf -Nr -WD -zN -Nr -Nr -Uy -Oe +Gg +Gg wN -YE -ds -UI -jF -JK -Ri -sJ -TJ -yW -Ri -wt -wt -wt -wt -wt +mJ +dK +yZ +KQ +KQ +lY +YG +oD +kS +aC +LT +LT +LT +LT +LT +LT +LT +LT +LT +KQ +ZP +KQ +KQ +iW +fG +YR +fG +CY +KQ +KQ +iT +Oc +SX +wr +Fp +BN +ZT +wr +fG +YR +nQ +nQ +nQ +nQ +OV +ov +es +"} +(26,1,1) = {" +wg +wg +wg +wg +wg +wg +wg +wg +wg +WN +NR +nQ +aR +Yq +eY +KQ +KQ +Lc +kt +uC +uC +uC +uC +nO +Kg +hs +KQ +KQ +KQ +ka +WY +Oi +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Xu +mc +ea +ZR +KQ +KQ +KQ +iT +hE +Xi +wr +mK +mK +mK +wr +iV +lm +jz +nQ +iv +aR +rN +rK +es +"} +(27,1,1) = {" +wg +wg +wg +wg +wg +CB +wg +wg +wg +Vd +Vd +eY +eY +Em +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +jd +ZV +KQ +KQ +KQ +BS +vk +vb +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +IX +Bv +KQ +KQ +KQ +KQ +iT +Yo +TY +nV +Wz +Ie +Xq +ta +EU +kl +Aj +rN +iD +MZ +VO +MZ es +"} +(28,1,1) = {" +wg +wg +wg +wg +wg +wg +wg +wg +wg +Vd +Vd +Vd +wk +Vd +Cl +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +ZL +KQ +KQ +KQ +BS +Ty +BV +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +iT +mM +HG +nV +Wz +wQ +Xq +ta +EU +lm +Aj +rN +np +rN +QJ +rN es "} -(13,1,1) = {" -es +(29,1,1) = {" +wg +wg +wg +wg +wg +wg +wg +wg +wg +Vd +Vd +Vd +Vd +HV +QR +Cl +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +Lw +KQ +NW +rA +Gr +HL +Be +rA +lo +lo +Fm +oJ +oJ +oJ +rA +rA +gv +KQ +KQ +KQ +KQ +KQ +eY +KQ +KQ +KQ +KQ +KQ +iT +bm +CF +HD +tK +ID +uN +ta +Jl +lm +Aj +SR +Yi +QQ +oS +ll es +"} +(30,1,1) = {" +wg +wg +wg +wg +wg +wg +wg +wg +wg +wg +wk +wk +Vd +KQ +KQ +KQ +KQ +kA +KQ +KQ +KQ +KQ +KQ +KQ +Lw +Lw +KQ +rA +qO +CN +bF +BP +rA +rA +rA +rA +pj +tA +KW +yA +sM +rA +rA +KQ +KQ +KQ +KQ +eY +eY +KQ +KQ +KQ +KQ +iT +ZQ +yx +wr +wr +dA +wr +wr +iV +hi +ik +nQ +nQ +NR +xv +ge es -wt -wt -wt -RM -RM -RM -RM -RM -RM +"} +(31,1,1) = {" +TE +TE +TE +TE +TE +TE +TE +TE +wg +wg +Vd +Wg +Vd +mt +Vy +Em +uJ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +Lw +KQ +rA +yk +Ir uq -RM -fG -RM -RM -RM -RM -wt -wt -wt -wt -wt -Xs -IQ -wt -wt -wt -lm -lm -RT -oA -TY -lm -Nr -aL -Nr -Nr -Kh -Nr -Nr -KM -ad -ck -Oi -hz -xS -xv -xI -bm -Ri -Ri -Ue -Ri -Ri -wt -wt -wt -wt -wt -wt +MT +KF +ch +Ql +rA +Jm +BJ +KW +EA +gk +Lb +KA +KQ +KQ +KQ +UV +Cq +RD +Yf +KQ +Yj +KK +Ms +PY +aD +wr +PZ +cv +Bt +wr +fG +YR +NR +NR +DX +ws +Cr +rN es "} -(14,1,1) = {" -es -es -es -es -RM -RM -RM -RM -RM -RM -RM -RM -Ma -Ma -ZG -RM -wt -wt -wt -wt -wt -wt -wt -RJ -Ng -NC -ui -QR -wt -lm -UJ -YA -sj -Ie -lm +(32,1,1) = {" +TE +TE +TE +TE +TE +TE +TE +TE +TE +wg +WN +Wg +Vd +Vd +Vd +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +Lw +KQ +rA +zX +Ir +tp +hp Jt -ST -Nn -MT -rK -Nn -WE -jA -fy +bX +Za +YN +bH +bH +HN +pY +dt +eQ +KA +KQ +eg +KQ +Xu +Cq +Cq +PC +KQ +bY +iT YS -wN +PY +Jh +wr wG -kO -Np -wg -Eb -Ri -xG -mw -Ri -Ri -wt -wt -wt -wt -wt -wt +zG +Tv +wr +fG +fG +fG +NR +Nc +NR +jv +QQ es "} -(15,1,1) = {" -es +(33,1,1) = {" +TE +TE +TE +TE +TE +TE +TE +TE +TE +Vd +Vd +Vd +Vd +Vy +mt +Em +KQ +KQ +KQ +KQ +KQ +KQ +KQ +eg +Lw +Lw +KQ +rA +rA +xh +Fy +DC +Kd +XM +Cd +WE +kH +Xo +QU +of +bu +Qz +KA +KQ +KQ +Mo +Xu +fG +Cq +Cq +Xu +KQ +Ts +YS +Tc +ox +wr +wr +aO +wr +wr +fG +fG +fG +fG +NR +iD +xr +rN +es +"} +(34,1,1) = {" +es +TE +TE +TE +TE +TE +TE +TE +TE +Vd +Vd +Vd +Vd +eY +Cl +Vb +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +Lw +KQ +Gh +cj +kO +Ip +vg +rA +rA +rA +rA +VZ +AV +Bd +mC +Te +rA +rA +KQ +KQ +Xu +fG +fG +YR +fG +fG +PN +Vu +pv +ax +yK +fG +rn +ce +fG +fG +fG +fG +fG +fG +fG +NR +kV es es -RM -RM -RM -RM -RM -RM -RM -Ma -Ma -ht -Es -Qx -wt -wt -wt -wt -wt -wt -wt -qO -sp -tZ -IQ -tZ -YV -wt -lm -vM -KW -wZ -Af -AV -CJ -uX -gU -DV -DV -aw -Mm -NK -YS -Nr -wN -wN -uf -wN -wN -wN -Ri -ua -jC -mI -Ri -wt -wt -wt -wt -wt -wt -wt "} -(16,1,1) = {" +(35,1,1) = {" +es +TE +TE +TE +TE +TE +TE +TE +TE +wg +Vd +wk +Vd +mt +TE +KQ +ih +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +Lw +KQ +NW +rA +rA +rA +rA +rA +lo +lo +CR +rA +rA +rA +rA +rA +YV +KQ +KQ +KQ +fG +fG +fG +fG +QX +QX +QX +QX +ts +pn +QX +fG +fG +ij +fG +fG +fG +fG +fG +fG +fG +rN +vr es es -RM -RM -RM -RM -RM -RM -RM -Ma -Df -Ma -Qx -Ya -wt -wt -wt -wt -wt -wt -JR -RI -oq -Vk -Tx -bx -ZS -Tw -Jz -lm -lm -nu -YN -Em -Bv -SY -aM -Pg -Nr -Nr -Nr -Nr -Nr -Nr -Nr -fS -eY -Rr -ki -fS -fS -Ri -uu -hh -Be -Ri -wt -wt -wt -wt -wt -wt -wt "} -(17,1,1) = {" +(36,1,1) = {" +es +TE +TE +TE +TE +TE +TE +TE +TE +Vd +Vd +QR +Vd +Vd +Em +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Lw +zf +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +Xu +YR +fG +fG +fG +fG +QX +lS +Ue +uR +jU +un +QX +fG +rn +Os +fG +fG +fG +fG +fG +fG +fG +ge +ge +es es -RM -RM -RM -RM -RM -RM -RM -RM -RL -RL -RL -Qz -wt -wt -wt -wt -wt -wt -cO -CB -eg -oq -nA -Uf -tK -nA -gP -wt -lm -Sj -Lo -bt -gd -lm -bU -ef -Wk -Nr -fS -fS -fS -iV -fS -fS -fS -kv -YK -rm -Mf -fS -Ri -Ri -cx -Ri -Ri -Ri -Ri -Ri -Ri -Ri -wt -wt "} -(18,1,1) = {" +(37,1,1) = {" es -RM -RM -RM -RM -RM -RM -RM -RM -Ma -Ma -Qx -Es -wt -wt -wt -wt -wt -qO -Tu -gZ -eg -VC -JB -aI -JB -JB -Cc -cK -oR -Sj -Sj -ei -bh -lm -Nr -Vu -Nr -Nr -fS -fS -AW -Vb -GZ -uY -uY -uY -tA -tA +TE +TE +TE +TE +TE +TE +TE +fY +WN +wk +eY +Kz +Zi Mf uY -PS -dA -dA -zj -Iz -Ri -nO -IZ -fI -Ri -wt -wt -"} -(19,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -Ma -Ya -wH -wt -wt -wt -wt -wt -wt -Pi -UN -oP -Gm -yJ -HI -rr -HI -Tc -dA -Ix -JQ -Sj -Sj -Sj -lm -mK -ib -Fw -Nr -fS -OR -IP -eo -HG -eo -eo -IP -oV +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +jd +Gd +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KQ +KZ Jo -CC -YL -YL -YL -YL -YL -Kz -yk -eQ -JJ -yj +fG +fG +fG +fG +fG +QX +Qy +dk +OZ +vi +Wu +QX +fG +fG +dT +fG +fG +fG +fG +fG +fG +fG +hQ +QJ +es +es +"} +(38,1,1) = {" +es +TE +TE +TE +TE +TE +TE +TE +fY +Vd +wk +wk +nQ +Da +KZ +KQ +KQ +SM +hU +Ji +Yn +Yn +Yn +Np +Xy +Ln +KQ +KQ +lY +wN +Cy +wN +lY +KQ +KQ +KQ +KQ +KQ +KQ +KQ +UV +GZ +iW +fG +fG +tQ +tQ +EK +EK +QX +OU +TO +tQ +jA +cb +xu Ri -wt -wt +Cg +ds +YR +rn +rn +fG +fG +fG +fG +XC +es +es +es "} -(20,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -Ma -Ma -Es -Kw -wt -wt -wt -wt -wt -wt -oP -nV -yA -yJ -yV -Lc -sv -LA -sI -rm -Ke -tA -sI -Ex +(39,1,1) = {" +es +es +TE +TE +Tw +TE +TE +jv +Ug +MN +NR +bJ +KR +Xu +At +KN +KN +jg +Gg +xL +Gg +Gg +wN +Xd +Wn +GT +KQ +KQ +kL +wF aq -hm -BV -sI -dS -EH -DZ -lA -Mf -wt -wt -wt -wt -wt -Jz -wt -EP -zX -Ej -na -CF -KA -Ri -ge -HD -Ri -Ri -wt -wt +aq +hh +dl +sr +dl +sr +dl +fN +uu +QK +KZ +KZ +yr +KZ +df +ts +Px +DH +JQ +OF +rU +AH +cb +jm +QX +fG +rn +dT +rn +rn +FN +YR +fG +fG +rN +rN +es +es +es "} -(21,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM +(40,1,1) = {" +es +es +TE +TE +Bs +Yp +rN +fu +fG +fG +jM +LM +fG +lY +nu +lY +fG +lY +fG YR -NW -Qx -wt -Nf -wt -wt -wt -wt -wt -wt -Nj -yV -wz -lz -By -Dy -WS -WS -Wv +fG +KQ +KQ +KZ +pg +ve +ck IP -LN -HG +gD +we +UY +ZA +ZA +jf +ZA +ZA +jf +jf +Fe +OG +Vg +Zk +nv +RG +RG +Rc +ji +jc +Yl +aY +OA +xJ +mI +iM +OR +QX +fG +fG +Xb +rn +rn +Hp +fG +fG +fG +VO +TJ +es +es +es +"} +(41,1,1) = {" +es +es +TE +TE TE -Vx -ly -qM -DC -oJ -LN -vt -wt -Jz -wt -fg -cX -wt -wt -wt -wt -Ty -rA -Ej -CF rN -Ri -Ri -Ri -Ri -wt -wt -wt -"} -(22,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -cV -RM -RM -RM -qU -qU -Nf -wt -Jz -wt -wt -fY -fY -qr -fY -VZ -vY -dP +sL +rN +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +YR +pK +pg +pg +fT +fT +fT +mY +ZA jf -bp -AR -AR -AR -AR -AR -AR -AR -AR -AR -AR -AR -Ty -Ud -Ty -Ty -lR -wt -Jz -wt -WN -Ty -Ty -lD -Cq -CF -Ri -Ua -Is -Ri -wt -wt -wt +sa +EM +ec +We +Pc +JI +xI +JJ +ZA +pK +fG +fG +tQ +tQ +tQ +QX +QX +QX +QX +QX +QX +QX +QX +Wr +KZ +go +KZ +KZ +zW +fG +fG +fb +rN +rN +es +es +es "} -(23,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -uC -qU -tY -jd -Go -Ll -Ty -nq -Ty -Ty -Ty -Id -Xd -RZ -ej -Rj -Ty -Ty -vh -QP -QP +(42,1,1) = {" +es +es +TE +TE +rN +rN +bK +rN +fb +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +KC +VU +KN +uk +uk +ua +ua +ua +ua +Nl +Rd +Rd +ua QP -Rj -Rj -BP -Ty -Ty -Ty -Ty -Ty -Ty -Ty -bG -Ud -FY -Ty -lY -Ty -lD -Lw -CF -yk -Cr -ZT -Ri -wt -wt -wt +dB +ua +gm +CH +fG +fG +rn +rn +fI +tB +cn +CD +fv +rn +rn +YR +rn +KZ +NN +YR +rn +rn +Iw +fG +fG +fG +rN +Zh +ge +es +es +es "} -(24,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -uC -QE -tY -jd -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Rj -jn -wB -ZM -Rj -Rj -Rj -Rj -Cd -vg -Pq -Td -MU -Rj -Rj -Ty -Ty -Ty -Jg -Ty -Ty -Ir -Ir -TD -Ty -Ty -Ty +(43,1,1) = {" +es +es +TE +TE +rN +rN +jh +rN +dH +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +pk +ar +fG +fG +ua +NT +zL +ua +qb +Pf +Pf +Pf +gh +CZ +ua +fG +fG +fG +fG +rn +FN +NP +rn +rn +rn +Gf +XW +fI +Fw +Nq +KZ +YR +YR +YR +rn +rn +fG +fG +fG +rN +Cr +es +es +es +es +"} +(44,1,1) = {" +es +es +TE +TE +rN +ov +rN lD -Lw -UP -Ri -II -bH -Ri -wt -wt -wt +Wh +rN +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +uk +fI +pk +Lq +fG +ua +ua +lM +yg +sn +to +Mb +ix +zJ +vt +Mk +ua +fG +fG +fG +YR +KZ +RV +rn +rn +lV +rn +rn +Jg +rn +rn +KZ +rn +rn +YR +fG +fG +fG +fG +fG +rN +XC +rN +es +es +es +es "} -(25,1,1) = {" -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -Cy -uC +(45,1,1) = {" +es +es +TE +TE +TE +jz +dH +ov +rN qU -Ir -Ty -Ll +aF +rN +Nj +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +uk +pk +qr +uk +fG +ua +SI +Fa +Ou +ua Dh -Lv -Ty -Jg -Ty -Ty -Rj -dz -wB -dj -LT -Hw -CH -Rj -ZD -de -Pq -rh -er -Qt -Yb -Ty -Ty -Ty -Ty -Ty -Ty -Ir -bG +zM +As +ua +jS +ol +ua +fG +fG +KZ +DJ +sj +rn +rn +QE wt -Ty -Ty -lS -Wh -CF -HL -Ri +ne +rn +hm +rn +YR +KZ +Vh +KZ +fG +fG +fG +fG +fG +rN +CO +np +es +es +es +es +es +"} +(46,1,1) = {" +es +es +TE +TE +TE +TE +lD +nI +Hb +VH +rN +rN +xS +xS +NR +fG +fG +fG +fG +fG +fG +fG +fG +fG +Mg +fI +fG +fG +ua +Ba +bj +VV +ua +Qb +hM +Bp +ua +Gy +Gn +ua +fG +rn +II +fG +fG +rn +lV +Hd +WA +iA +NL +Oy +rn +rn +rn +KZ +fG +fG +fG +fG +fG +rN +TJ kV -Ri -Ri -wt -wt -wt -"} -(26,1,1) = {" +rN +es +es +es +es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -uC -qU -Ir -jd -Ty -Ll -kL -Ty -Ty -Ty -Ty -Rj -bX -mm -KQ -zW -Mr -eU -pj -ea -Ny -Xu -CY -oT -ur -IX -Ty -Ty -Ty -Ty -Ty -Jg -Ir -wt -wt -wt -VV -lD -Xb -dA -GN -Ri -Ri -Ri -wt -wt -wt -wt "} -(27,1,1) = {" +(47,1,1) = {" es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -uC +es +TE +TE +TE +TE +ep +TE +lD qU -jd -Ir -Dh -Jg -Ty -Ty -Ty -Ty -Ty -Rj -dt -oe -mv -IO -jU -cb -RV -wB -KN -HV -Wg -mL -Lp -IX -Ty -Ty -Ty -Ty -Ty -Ty -Ty -wt -wt -Ri -Ri -Ri -Ri -OJ -Ri -wt -wt -wt -wt -wt -wt -wt +TE +lb +Bo +nQ +fY +fY +Nn +Al +fG +fG +fG +fG +fG +fG +YR +lI +YR +fG +ua +ua +ua +ua +ua +ua +ua +Zd +ua +ua +ua +ua +fI +RT +XK +fG +fG +rn +rn +mx +ad +eF +rn +rn +rn +rn +rn +rn +fG +fG +fG +fG +rN +rN +VO +rN +es +es +es +es +es +es "} -(28,1,1) = {" +(48,1,1) = {" +es +es +es +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +fY +fY +TE +TE +TE +TE +fG +fG +fG +fG +fG +KZ +fG +rn +fG +fG +fG +fG +fG +fG +fG +WK +ni +vd +nv +hg +rg +YR +oZ +fG +fG +fG +rn +rn +rn +rn +rn +fD +hB +tC +YR +fG +fG +fG +fG +kj +Cr +DP +ge +es +es +es +es +es +es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -uC -qU -Ir -Ir -Ty -Lv -Ty -Ty -Ty -Ty -Ty -BF -Nh -pJ -PF -Rj -Rj -Rj -Rj -Yn -LK -Jl -LY -NM -Rj -Rj -Ty -Ty -Ty -Ty -VV -iT -wt -wt -Ri -Ri -Zi -jh -yC -PB -Ri -wt -wt -wt -wt -wt -wt -wt "} -(29,1,1) = {" +(49,1,1) = {" +es +es +es +es +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +Rh +TE +TE +fG +fG +fG +rn +Tj +lI +sI +zt +KZ +fG +fG +aL +fG +rn +qZ +Nq +fG +fG +KZ +fG +fG +KZ +gq +fG +fG +fG +fG +fG +fG +sZ +eb +rn +rn +rn +fG +fG +fG +fG +HW +np +rN +es +es +es +es +es +es es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -qU -oD -Ir -Ir -Dh -ku -Ty -Ty -Ty -Ty -Ty -MA -Rj -Rj -Rj -Rj -Ty -Ty -du -Rj -Rj -Rj -Rj -Rj -cj -Ty -Ty -Ty -Ty -wt -Jz -wt -wt -wt -Ri -QX -Fy -jZ -ta -hh -Ri -wt -wt -wt -wt -wt -wt -wt "} -(30,1,1) = {" +(50,1,1) = {" +es +es +es +es +es +es +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +fG +rn +rn +fG +fG +rn +Tj +go +KZ +fG +YR +rn +rn +fI +fG +fG +JC +fG +fG +fG +Tj +Mp +cn +nv +kB +Hw +hB +Oy +rn +rn +rn +rn +fG +fG +fG +rN +np +rN es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -qU -jd -Ir -sM -VV -Ty -Dh -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -wt -wt -wt -wt -wt -wt -Ri -Dg -pc -gF -Lb -Ri -Ri -wt -wt -wt -wt -wt -wt es -"} -(31,1,1) = {" es es -RM -RM -RM -RM -RM -RM -RM -RM -DJ -RM -RM -RM -RM -wt -Ir -Nf -wt -Jz -wt -Jg -Jg -Ty -Ty -Ty -Ty -Ty -Ty -Jm -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -aO -UV -Ty -Ty -wt -wt -wt -wt -wt -wt -wt -Ri -Ri -Ri -Ri -Ri -Ri -wt -wt -wt -wt -wt -wt -wt es -"} -(32,1,1) = {" es es -RM -RM -RM -RM -RM -RM -RM -RM -BT -RM -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -GR -rn -Jg -Ty -BR -Jg -Ty -Ty -Ty -Ty -Ty -Ty -Ty -UY -Fs -ZQ -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es "} -(33,1,1) = {" +(51,1,1) = {" es es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -HW -Ma -wt -wt -wt -wt -wt -wt -wt -wt -wt -Jz -kj -XM -HQ -Jg -Jg -Ty -Jg -Ty -Ty -Ty -VV -Ty -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es -"} -(34,1,1) = {" es es es es -RM -RM -RM -RM -RM -RM -RM -Ma -kA -Ma -Kw -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -bJ -lo -Fs -Ap -Fs -gv -Iu -UV -wt -Jz -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es -"} -(35,1,1) = {" +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +TE +es +fG +fG +fG +fG +rn +rn +rn +Tj +KZ +QT +KZ +KZ +bB +rn +fG +lI +fG +fG +fG +fG +rn +rn +rn +rn +rn +rn +rn +rn +rn +rn +rn +fG +fG +es +es +es +es +es +es +es +es es es es es -RM -RM -RM -RM -RM -RM -RM -Ma -Vd -Ma -Qx -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -Kw -At -UV -HQ -eG -Kw -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es "} -(36,1,1) = {" +(52,1,1) = {" es es es es es -RM -RM -RM -RM -RM -RM -zG -Ma -Es -Zd -Ma -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es -"} -(37,1,1) = {" es es es es es -RM -RM -RM -RM -RM -RM -dd -Qx -zG -Ma -RL -Hk -Ma -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es -"} -(38,1,1) = {" es es es es es es -RM -RM -RM -RM -RM -RM -Es -tQ -Ly -oQ -Ma -Ma -RM -RM -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es es +fG +fG +rn +rn +fG +rn +fG +fG +rn +rn +fG +Hc +fG +fG +fG +fG +rn +rn +rn +rn +rn +rn +rn +rn +fG +rn +fG +fG +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(53,1,1) = {" +es +es es es -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es -"} -(39,1,1) = {" es es es es es es -RM -RM -RM -RM -RM -RM -Ql -RM -Es -RL -RM -RM -RM -RM -RM -RM -RM -RM -RM -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es @@ -6536,62 +10651,43 @@ es es es es -wt -wt -wt -wt -wt es es es es es -"} -(40,1,1) = {" es es es es +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG +fG es es +fG +fG +fG +fG +fG es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM es es es es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es @@ -6604,6 +10700,8 @@ es es es es +"} +(54,1,1) = {" es es es @@ -6611,8 +10709,6 @@ es es es es -"} -(41,1,1) = {" es es es @@ -6620,23 +10716,6 @@ es es es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -MR -RM -RM -RM -RM -RM es es es @@ -6644,18 +10723,6 @@ es es es es -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt -wt es es es @@ -6669,6 +10736,14 @@ es es es es +fG +fG +fG +fG +fG +fG +fG +fG es es es @@ -6676,8 +10751,6 @@ es es es es -"} -(42,1,1) = {" es es es @@ -6686,22 +10759,6 @@ es es es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM es es es @@ -6713,14 +10770,10 @@ es es es es -wt -wt -wt -wt -wt -wt es es +"} +(55,1,1) = {" es es es @@ -6741,8 +10794,6 @@ es es es es -"} -(43,1,1) = {" es es es @@ -6753,19 +10804,6 @@ es es es es -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM es es es diff --git a/code/game/turfs/open/floor/plating/jungle.dm b/code/game/turfs/open/floor/plating/jungle.dm index 851937d937..e57bf36e82 100644 --- a/code/game/turfs/open/floor/plating/jungle.dm +++ b/code/game/turfs/open/floor/plating/jungle.dm @@ -53,6 +53,14 @@ light_range = 2 light_power = 1 +/turf/open/floor/plasteel/tech/grid/jungleplanet + planetary_atmos = TRUE + initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS + +/turf/open/floor/pod/jungleplanet + planetary_atmos = TRUE + initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS + //for bombed spartport /turf/open/floor/carpet/red/jungleplanet @@ -212,3 +220,15 @@ light_range = 2 light_power = 1 light_color = COLOR_JUNGLEPLANET_LIGHT + +/turf/open/floor/concrete/slab_2/jungleplanet + planetary_atmos = TRUE + initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS + +/turf/open/floor/concrete/slab_3/jungleplanet + planetary_atmos = TRUE + initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS + +/turf/open/floor/concrete/slab_4/jungleplanet + planetary_atmos = TRUE + initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS diff --git a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm index e45f6d81c7..dfadd5e5ec 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm @@ -15,6 +15,19 @@ r_hand = /obj/item/melee/knife/survival dodging = TRUE +/mob/living/simple_animal/hostile/human/frontier/civilian + name = "Frontiersman Doorguard" + desc = "A new recruit to the brutal Frontiersman terrorist fleet. This one is too new or stupid to even be assigned a knife." + minimum_distance = 10 + retreat_distance = 10 + obj_damage = 0 + r_hand = null + environment_smash = ENVIRONMENT_SMASH_NONE + +/mob/living/simple_animal/hostile/human/frontier/civilian/Aggro() + ..() + say("GUARDS!!") + /mob/living/simple_animal/hostile/human/frontier/internals icon_state = "frontiersmanmelee_mask" atmos_requirements = IMMUNE_ATMOS_REQS From 7a42a76a2610c2971ee718e6c184d1fd60ccdd5f Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Sat, 17 Jan 2026 21:44:41 -0800 Subject: [PATCH 30/53] Puts NGR radio on the haboob (#5815) ## Why It's Good For The Game forgot ## Changelog :cl: fix: Haboob now has correct headsets for officer /:cl: --- _maps/shuttles/syndicate/syndicate_ngr_haboob.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/shuttles/syndicate/syndicate_ngr_haboob.dmm b/_maps/shuttles/syndicate/syndicate_ngr_haboob.dmm index e4cfb80704..bf1b5906e5 100644 --- a/_maps/shuttles/syndicate/syndicate_ngr_haboob.dmm +++ b/_maps/shuttles/syndicate/syndicate_ngr_haboob.dmm @@ -780,7 +780,7 @@ /obj/effect/turf_decal/trimline/opaque/tan/line{ dir = 8 }, -/obj/item/radio/headset/syndicate/alt/leader, +/obj/item/radio/headset/syndicate/alt/ngr, /turf/open/floor/plasteel/mono/dark, /area/ship/crew/dorm/captain) "jS" = ( @@ -3540,7 +3540,6 @@ /obj/item/clothing/gloves/tackler/combat/insulated, /obj/item/clothing/mask/breath/ngr, /obj/item/clothing/mask/balaclava/ngr, -/obj/item/radio/headset/syndicate/alt/captain, /obj/item/storage/belt/military/assault, /obj/item/clothing/head/ngr/flap, /obj/item/clothing/glasses/hud/security/sunglasses/ngr, @@ -3568,6 +3567,7 @@ icon_state = "solgov_wall"; name = "captain's closet" }, +/obj/item/radio/headset/syndicate/alt/captain/ngr, /turf/open/floor/carpet/red_gold, /area/ship/crew/dorm/captain) "Xx" = ( From 2b305a80706979db096b11f1b94b3da1c50a3b54 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 18 Jan 2026 00:04:42 -0600 Subject: [PATCH 31/53] Automatic changelog generation for PR #5815 [ci skip] --- html/changelogs/AutoChangeLog-pr-5815.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5815.yml diff --git a/html/changelogs/AutoChangeLog-pr-5815.yml b/html/changelogs/AutoChangeLog-pr-5815.yml new file mode 100644 index 0000000000..0c1ec26aba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5815.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {bugfix: Haboob now has correct headsets for officer} +delete-after: true From fdbb2c38086d943883c5f03982cab77bea5a2a31 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 19 Jan 2026 01:23:53 +0000 Subject: [PATCH 32/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5815.yml | 4 ---- html/changelogs/archive/2026-01.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5815.yml diff --git a/html/changelogs/AutoChangeLog-pr-5815.yml b/html/changelogs/AutoChangeLog-pr-5815.yml deleted file mode 100644 index 0c1ec26aba..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5815.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {bugfix: Haboob now has correct headsets for officer} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 175caff7ae..1488ecae9d 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -93,3 +93,6 @@ 2026-01-17: PositiveEntropy: - bugfix: Ponytail (Side) 4 now shows the eyes properly. +2026-01-19: + generalthrax: + - bugfix: Haboob now has correct headsets for officer From aed50ef0402157d09f0d981404e4d9a3571ab0e7 Mon Sep 17 00:00:00 2001 From: ValorousHeart <38843661+ValorousHeart@users.noreply.github.com> Date: Tue, 20 Jan 2026 01:57:37 -0500 Subject: [PATCH 33/53] replaces flea syndicate headset with pirate headset (#5821) ## Why It's Good For The Game this probably wont ever come into play but in the event it does prevents some stupid things from happening ## Changelog :cl: fix: flea now has pirate headset instead of syndicate one /:cl: --- _maps/shuttles/subshuttles/ramzi_flea.dmm | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/_maps/shuttles/subshuttles/ramzi_flea.dmm b/_maps/shuttles/subshuttles/ramzi_flea.dmm index 02670ae403..bcee70ce4c 100644 --- a/_maps/shuttles/subshuttles/ramzi_flea.dmm +++ b/_maps/shuttles/subshuttles/ramzi_flea.dmm @@ -49,7 +49,6 @@ icon_state = "0-8" }, /obj/machinery/turretid/ship{ - pixel_x = 0; pixel_y = 24; id = "roachgun"; req_access = null @@ -196,19 +195,16 @@ mag_count = 3 }, /obj/item/storage/belt/military/assault{ - pixel_x = 0; pixel_y = -10 }, /obj/item/clothing/shoes/workboots{ - pixel_x = 0; pixel_y = -9 }, /obj/item/storage/toolbox/syndicate{ - pixel_x = 0; pixel_y = 12 }, /obj/item/clothing/gloves/combat, -/obj/item/radio/headset/syndicate/alt/leader, +/obj/item/radio/headset/pirate/alt/captain, /obj/item/megaphone, /obj/item/clothing/under/syndicate/ramzi/officer, /obj/item/clothing/head/ramzi/beret, @@ -412,8 +408,7 @@ icon_state = "4-8" }, /obj/item/radio/intercom/wideband/directional/south{ - pixel_x = 7; - pixel_y = -26 + pixel_x = 7 }, /obj/effect/turf_decal/siding/thinplating/dark{ dir = 6 From 1361f4d6643d1cdfa30fe9438b47502136afa3c1 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 20 Jan 2026 01:19:22 -0600 Subject: [PATCH 34/53] Automatic changelog generation for PR #5821 [ci skip] --- html/changelogs/AutoChangeLog-pr-5821.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5821.yml diff --git a/html/changelogs/AutoChangeLog-pr-5821.yml b/html/changelogs/AutoChangeLog-pr-5821.yml new file mode 100644 index 0000000000..4e9feba871 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5821.yml @@ -0,0 +1,4 @@ +author: ValorousHeart +changes: + - {bugfix: flea now has pirate headset instead of syndicate one} +delete-after: true From 1cdd39e62c8cfe95ebb761b53a4f69055f59ed4b Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Tue, 20 Jan 2026 06:43:56 -0800 Subject: [PATCH 35/53] replaces roach syndicate headsets with pirate headsets (#5820) ## Why It's Good For The Game this probably wont ever come into play but in the event it does prevents some stupid things from happening ## Changelog :cl: fix: roach now has pirate headsets instead of syndicate ones /:cl: --- _maps/shuttles/pirate/pirate_roach.dmm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_maps/shuttles/pirate/pirate_roach.dmm b/_maps/shuttles/pirate/pirate_roach.dmm index 9eaf63d46d..9e37443f9b 100644 --- a/_maps/shuttles/pirate/pirate_roach.dmm +++ b/_maps/shuttles/pirate/pirate_roach.dmm @@ -278,7 +278,6 @@ pixel_x = 0; pixel_y = -10 }, -/obj/item/radio/headset/syndicate/alt/captain, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, @@ -295,6 +294,7 @@ /obj/item/clothing/head/ramzi/peaked, /obj/item/clothing/suit/armor/ramzi/officer, /obj/item/clothing/suit/armor/ramzi/captain, +/obj/item/radio/headset/pirate/alt/captain, /turf/open/floor/plasteel/tech, /area/ship/bridge) "dR" = ( @@ -1201,10 +1201,10 @@ pixel_x = 9; pixel_y = 12 }, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/pirate/alt, +/obj/item/radio/headset/pirate/alt, +/obj/item/radio/headset/pirate/alt, +/obj/item/radio/headset/pirate/alt, /obj/item/storage/belt/security/webbing/ramzi/alt, /obj/item/storage/belt/security/webbing/ramzi/alt, /obj/item/storage/belt/security/webbing/ramzi/alt, @@ -2042,7 +2042,7 @@ /obj/item/storage/toolbox/syndicate, /obj/item/clothing/gloves/color/yellow, /obj/item/storage/belt/utility, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/pirate/alt, /obj/structure/cable{ icon_state = "1-2" }, From d2b734cf65fb9aa0f50570ead0d4dfca44a316c3 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 20 Jan 2026 09:07:42 -0600 Subject: [PATCH 36/53] Automatic changelog generation for PR #5820 [ci skip] --- html/changelogs/AutoChangeLog-pr-5820.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5820.yml diff --git a/html/changelogs/AutoChangeLog-pr-5820.yml b/html/changelogs/AutoChangeLog-pr-5820.yml new file mode 100644 index 0000000000..671b8b5b79 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5820.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {bugfix: roach now has pirate headsets instead of syndicate ones} +delete-after: true From 4b27871f1bd7b879547a7a895a66480dc27572ac Mon Sep 17 00:00:00 2001 From: KOCMOHABT <25280520+KOCMODECAHTHUK@users.noreply.github.com> Date: Tue, 20 Jan 2026 19:48:27 +0500 Subject: [PATCH 37/53] FIX: REMOVED NULL SPACE MY GUN - CTF CM-82 (#5818) ## About The Pull Request Fixes code missed in PR #5628 where non-CTF guns were incorrectly being deleted. ## Why It's Good For The Game Fix CTF guns code missed `/cm82/ctf/` code. Prevents non-CTF guns from being improperly deleted when thrown or drop. ## Changelog :cl: fix: Non-CTF CM-82 guns no longer get deleted when thrown or drop /:cl: --- code/modules/awaymissions/capture_the_flag.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 5ae2aa5a0c..e4fd3d6260 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -468,11 +468,11 @@ /obj/item/gun/ballistic/automatic/assault/cm82/ctf desc = "CLIP's standard assault rifle, a relatively new service weapon. This rifle will disintegrate if dropped." -/obj/item/gun/ballistic/automatic/assault/cm82/dropped() +/obj/item/gun/ballistic/automatic/assault/cm82/ctf/dropped() . = ..() addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 30) -/obj/item/gun/ballistic/automatic/assault/cm82/proc/floor_vanish() +/obj/item/gun/ballistic/automatic/assault/cm82/ctf/proc/floor_vanish() if(isturf(loc)) qdel(src) From fdd8bd564263474dab6ba4c06a997ffa3afb3338 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 20 Jan 2026 09:30:06 -0600 Subject: [PATCH 38/53] Automatic changelog generation for PR #5818 [ci skip] --- html/changelogs/AutoChangeLog-pr-5818.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5818.yml diff --git a/html/changelogs/AutoChangeLog-pr-5818.yml b/html/changelogs/AutoChangeLog-pr-5818.yml new file mode 100644 index 0000000000..d804190229 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5818.yml @@ -0,0 +1,4 @@ +author: KOCMODECAHTHUK +changes: + - {bugfix: Non-CTF CM-82 guns no longer get deleted when thrown or drop} +delete-after: true From f7268afb57b9521be145fc30644ba6f95c71ebc9 Mon Sep 17 00:00:00 2001 From: Theos Date: Tue, 20 Jan 2026 15:31:36 -0500 Subject: [PATCH 39/53] Shield bash now works for any melee weapon (#5814) ## About The Pull Request Shield bash now works for anything classified as a melee weapon Batons aren't real and cannot hurt you. This sword, however... ## Why It's Good For The Game half life 1 crowbar sound effect ## Changelog :cl: add: bashing your shield is no longer restricted to batons and now works for all melee weapons /:cl: --- code/game/objects/items/shields.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 9f134fd7e1..6dd1506b15 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -93,7 +93,7 @@ material_flags = MATERIAL_NO_EFFECTS /obj/item/shield/riot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/melee/baton)) + if(istype(W, /obj/item/melee)) if(COOLDOWN_FINISHED(src, baton_bash)) user.visible_message(span_warning("[user] bashes [src] with [W]!")) playsound(src, shield_bash_sound, 50, TRUE) From 3fae00b3a6af88474f1c46ffa740973db174edcf Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 20 Jan 2026 14:52:12 -0600 Subject: [PATCH 40/53] Automatic changelog generation for PR #5814 [ci skip] --- html/changelogs/AutoChangeLog-pr-5814.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5814.yml diff --git a/html/changelogs/AutoChangeLog-pr-5814.yml b/html/changelogs/AutoChangeLog-pr-5814.yml new file mode 100644 index 0000000000..43a11ca2f2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5814.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {rscadd: bashing your shield is no longer restricted to batons and now works + for all melee weapons} +delete-after: true From 7e3b112ca07e2f640f3648e18d9ef9dd7c2e2589 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 21 Jan 2026 01:21:55 +0000 Subject: [PATCH 41/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5814.yml | 5 ----- html/changelogs/AutoChangeLog-pr-5818.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5820.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5821.yml | 4 ---- html/changelogs/archive/2026-01.yml | 10 ++++++++++ 5 files changed, 10 insertions(+), 17 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5814.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5818.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5820.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5821.yml diff --git a/html/changelogs/AutoChangeLog-pr-5814.yml b/html/changelogs/AutoChangeLog-pr-5814.yml deleted file mode 100644 index 43a11ca2f2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5814.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SomeguyManperson -changes: - - {rscadd: bashing your shield is no longer restricted to batons and now works - for all melee weapons} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5818.yml b/html/changelogs/AutoChangeLog-pr-5818.yml deleted file mode 100644 index d804190229..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5818.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: KOCMODECAHTHUK -changes: - - {bugfix: Non-CTF CM-82 guns no longer get deleted when thrown or drop} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5820.yml b/html/changelogs/AutoChangeLog-pr-5820.yml deleted file mode 100644 index 671b8b5b79..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5820.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {bugfix: roach now has pirate headsets instead of syndicate ones} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5821.yml b/html/changelogs/AutoChangeLog-pr-5821.yml deleted file mode 100644 index 4e9feba871..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5821.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: ValorousHeart -changes: - - {bugfix: flea now has pirate headset instead of syndicate one} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 1488ecae9d..8d1e29dfe4 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -96,3 +96,13 @@ 2026-01-19: generalthrax: - bugfix: Haboob now has correct headsets for officer +2026-01-21: + KOCMODECAHTHUK: + - bugfix: Non-CTF CM-82 guns no longer get deleted when thrown or drop + SomeguyManperson: + - rscadd: bashing your shield is no longer restricted to batons and now works for + all melee weapons + ValorousHeart: + - bugfix: flea now has pirate headset instead of syndicate one + generalthrax: + - bugfix: roach now has pirate headsets instead of syndicate ones From f4fe5e9c82e3be3e6276f32f04917f09f9ace633 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Thu, 22 Jan 2026 06:16:25 -0500 Subject: [PATCH 42/53] 516 compat audio player (#5813) https://github.com/tgstation/tgstation/pull/89777 ## Changelog :cl: hry-gh fix: the admin music player works again on 516 /:cl: --- tgui/packages/tgui-panel/audio/player.js | 117 ----------------------- tgui/packages/tgui-panel/audio/player.ts | 101 +++++++++++++++++++ 2 files changed, 101 insertions(+), 117 deletions(-) delete mode 100644 tgui/packages/tgui-panel/audio/player.js create mode 100644 tgui/packages/tgui-panel/audio/player.ts diff --git a/tgui/packages/tgui-panel/audio/player.js b/tgui/packages/tgui-panel/audio/player.js deleted file mode 100644 index 92f42667ae..0000000000 --- a/tgui/packages/tgui-panel/audio/player.js +++ /dev/null @@ -1,117 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { createLogger } from 'tgui/logging'; - -const logger = createLogger('AudioPlayer'); - -export class AudioPlayer { - constructor() { - // Doesn't support HTMLAudioElement - if (Byond.IS_LTE_IE9) { - return; - } - // Set up the HTMLAudioElement node - this.node = document.createElement('audio'); - this.node.style.setProperty('display', 'none'); - document.body.appendChild(this.node); - // Set up other properties - this.playing = false; - this.volume = 1; - this.options = {}; - this.onPlaySubscribers = []; - this.onStopSubscribers = []; - // Listen for playback start events - this.node.addEventListener('canplaythrough', () => { - logger.log('canplaythrough'); - this.playing = true; - this.node.playbackRate = this.options.pitch || 1; - this.node.currentTime = this.options.start || 0; - this.node.volume = this.volume; - this.node.play()?.catch((error) => logger.log('playback error', error)); - for (let subscriber of this.onPlaySubscribers) { - subscriber(); - } - }); - // Listen for playback stop events - this.node.addEventListener('ended', () => { - logger.log('ended'); - this.stop(); - }); - // Listen for playback errors - this.node.addEventListener('error', (e) => { - if (this.playing) { - logger.log('playback error', e.error); - this.stop(); - } - }); - // Check every second to stop the playback at the right time - this.playbackInterval = setInterval(() => { - if (!this.playing) { - return; - } - const shouldStop = - this.options.end > 0 && this.node.currentTime >= this.options.end; - if (shouldStop) { - this.stop(); - } - }, 1000); - } - - destroy() { - if (!this.node) { - return; - } - this.node.stop(); - document.removeChild(this.node); - clearInterval(this.playbackInterval); - } - - play(url, options = {}) { - if (!this.node) { - return; - } - logger.log('playing', url, options); - this.options = options; - this.node.src = url; - } - - stop() { - if (!this.node) { - return; - } - if (this.playing) { - for (let subscriber of this.onStopSubscribers) { - subscriber(); - } - } - logger.log('stopping'); - this.playing = false; - this.node.src = ''; - } - - setVolume(volume) { - if (!this.node) { - return; - } - this.volume = volume; - this.node.volume = volume; - } - - onPlay(subscriber) { - if (!this.node) { - return; - } - this.onPlaySubscribers.push(subscriber); - } - - onStop(subscriber) { - if (!this.node) { - return; - } - this.onStopSubscribers.push(subscriber); - } -} diff --git a/tgui/packages/tgui-panel/audio/player.ts b/tgui/packages/tgui-panel/audio/player.ts new file mode 100644 index 0000000000..d75fab4487 --- /dev/null +++ b/tgui/packages/tgui-panel/audio/player.ts @@ -0,0 +1,101 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { createLogger } from 'tgui/logging'; + +const logger = createLogger('AudioPlayer'); + +type AudioOptions = { + pitch?: number; + start?: number; + end?: number; +}; + +export class AudioPlayer { + element: HTMLAudioElement | null; + options: AudioOptions; + volume: number; + + onPlaySubscribers: { (): void }[]; + onStopSubscribers: { (): void }[]; + + constructor() { + this.element = null; + + this.onPlaySubscribers = []; + this.onStopSubscribers = []; + } + + destroy(): void { + this.element = null; + } + + play(url: string, options: AudioOptions = {}): void { + if (this.element) { + this.stop(); + } + + this.options = options; + + const audio = (this.element = new Audio(url)); + audio.volume = this.volume; + audio.playbackRate = this.options.pitch || 1; + + logger.log('playing', url, options); + + audio.addEventListener('ended', () => { + logger.log('ended'); + this.stop(); + }); + + audio.addEventListener('error', (error) => { + logger.log('playback error', error); + }); + + if (this.options.end) { + audio.addEventListener('timeupdate', () => { + if ( + this.options.end && + this.options.end > 0 && + audio.currentTime >= this.options.end + ) { + this.stop(); + } + }); + } + + audio.play(); + + this.onPlaySubscribers.forEach((subscriber) => subscriber()); + } + + stop(): void { + if (!this.element) return; + + logger.log('stopping'); + + this.element.pause(); + this.element = null; + + this.onStopSubscribers.forEach((subscriber) => subscriber()); + } + + setVolume(volume: number): void { + this.volume = volume; + + if (!this.element) return; + + this.element.volume = volume; + } + + onPlay(subscriber: () => void): void { + this.onPlaySubscribers.push(subscriber); + } + + onStop(subscriber: () => void): void { + this.onStopSubscribers.push(subscriber); + } +} From 91d2d51af10ab8bdc5fa2745d4ba8648dcede1c6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 22 Jan 2026 05:37:35 -0600 Subject: [PATCH 43/53] Automatic changelog generation for PR #5813 [ci skip] --- html/changelogs/AutoChangeLog-pr-5813.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5813.yml diff --git a/html/changelogs/AutoChangeLog-pr-5813.yml b/html/changelogs/AutoChangeLog-pr-5813.yml new file mode 100644 index 0000000000..fae9b0b6e2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5813.yml @@ -0,0 +1,4 @@ +author: hry-gh +changes: + - {bugfix: the admin music player works again on 516} +delete-after: true From 1ff4403069e1cd5c602a85534baf4abd1e04360c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 23 Jan 2026 01:20:09 +0000 Subject: [PATCH 44/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5813.yml | 4 ---- html/changelogs/archive/2026-01.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5813.yml diff --git a/html/changelogs/AutoChangeLog-pr-5813.yml b/html/changelogs/AutoChangeLog-pr-5813.yml deleted file mode 100644 index fae9b0b6e2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5813.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: hry-gh -changes: - - {bugfix: the admin music player works again on 516} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index 8d1e29dfe4..d9e8d8efaa 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -106,3 +106,6 @@ - bugfix: flea now has pirate headset instead of syndicate one generalthrax: - bugfix: roach now has pirate headsets instead of syndicate ones +2026-01-23: + hry-gh: + - bugfix: the admin music player works again on 516 From d63dc04a93ac3c47a58bab007edf5fbd68d9ae35 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Fri, 23 Jan 2026 21:11:49 -0500 Subject: [PATCH 45/53] Fix T4 Drill not drilling (#5806) resolves #5828 ## Changelog :cl: fix: T4 drill missions will now progress properly fix: T4 drills now have a sound associated with their mining. fix: drills will now properly unanchor themselves from veins they destroy. /:cl: --- code/modules/mining/drill.dm | 1 + code/modules/missions/outpost/industrial_drill.dm | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mining/drill.dm b/code/modules/mining/drill.dm index 3a013ad714..11208c930f 100644 --- a/code/modules/mining/drill.dm +++ b/code/modules/mining/drill.dm @@ -290,6 +290,7 @@ if(destructive) our_vein.Destroy() our_vein = null + anchored = FALSE playsound(src, 'sound/machines/switch2.ogg', 50, TRUE) update_icon_state() update_overlays() diff --git a/code/modules/missions/outpost/industrial_drill.dm b/code/modules/missions/outpost/industrial_drill.dm index 6675a5ed6f..ccd6139169 100644 --- a/code/modules/missions/outpost/industrial_drill.dm +++ b/code/modules/missions/outpost/industrial_drill.dm @@ -63,8 +63,8 @@ return return ..() -/obj/machinery/drill/sampler_mission/mission/mine_success() - //add thumping noise? Dune thumper... +/obj/machinery/drill/sampler_mission/mine_success() + playsound(src, 'sound/effects/podwoosh.ogg', 50) num_current++ if(num_current == samples_required) From 53465781fd3273a873cd7beedbf081228156a13b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 23 Jan 2026 20:30:27 -0600 Subject: [PATCH 46/53] Automatic changelog generation for PR #5806 [ci skip] --- html/changelogs/AutoChangeLog-pr-5806.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5806.yml diff --git a/html/changelogs/AutoChangeLog-pr-5806.yml b/html/changelogs/AutoChangeLog-pr-5806.yml new file mode 100644 index 0000000000..6adb016f0a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5806.yml @@ -0,0 +1,7 @@ +author: Erikafox +changes: + - {bugfix: T4 drill missions will now progress properly} + - {bugfix: T4 drills now have a sound associated with their mining.} + - {bugfix: drills will now properly unanchor themselves from veins they + destroy.} +delete-after: true From f488f8eed77817a7c0ec8bf299e8981d310e3e9f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Sat, 24 Jan 2026 09:13:32 -0500 Subject: [PATCH 47/53] Water Immersion - Carried Away Edition (#5548) ## About The Pull Request ports https://github.com/tgstation/tgstation/pull/77219 https://github.com/tgstation/tgstation/pull/89320 (partially) https://github.com/tgstation/tgstation/pull/76376 https://github.com/tgstation/tgstation/pull/75892 https://github.com/tgstation/tgstation/pull/90587 https://github.com/tgstation/tgstation/pull/82735 https://github.com/tgstation/tgstation/pull/93038 ## Why It's Good For The Game BqGA08LDYh ## Changelog :cl: Smartkar, Ghommie, Melbert, Jacqurel, Rhials, Erika (Porting Fox) code: Updated some status effect tick code to be more clear of how long is elapsing between ticks. Some effects that were inadvertently weakened are now stronger as a result (fire and some heretic effects). fix: Fixed grab offsets not showing for anything but passive grab refactor: Refactored pixel offsets of mobs. Report any oddities refactor: Replaced hardcoded "safeties" for lava, chasms and ignoring turf slowdowns on catwalks with traits. balance: much like catwalks, tables and conveyors also disable turf slowdowns. balance: slippery turfs won't slip you when walking on a table. fix: pixel offsets from grabbing other mobs now respect the body offset variables. refactor: Changed some code so that resized mobs no longer look like they're poking over the below tile with their legs or not even reaching the bottom edge of the tile they're on. add: deep water swimming w/ immersive drowning image: walking on water will now immerse you in it... visually, at least. /:cl: --- .../JungleRuins/jungle_paradise.dmm | 27 +- code/__DEFINES/dcs/signals/signals.dm | 32 +- .../signals/signals_atom/signals_atom_main.dm | 18 + .../signals_atom/signals_atom_movable.dm | 2 + code/__DEFINES/dcs/signals/signals_datum.dm | 21 ++ .../signals/signals_mob/signals_mob_living.dm | 3 + code/__DEFINES/flags.dm | 3 + code/__DEFINES/layers.dm | 10 + code/__DEFINES/living.dm | 6 + code/__DEFINES/logging.dm | 1 + code/__DEFINES/misc.dm | 4 + code/__DEFINES/mobs.dm | 3 + code/__DEFINES/traits/declarations.dm | 2 + code/__DEFINES/traits/sources.dm | 7 + code/__DEFINES/traits/traits.dm | 27 +- code/__HELPERS/_planes.dm | 17 + code/__HELPERS/angles.dm | 3 + code/__HELPERS/animation.dm | 37 +++ code/__HELPERS/matrices.dm | 25 -- code/__HELPERS/visual_effects.dm | 11 + code/_globalvars/traits.dm | 3 + code/controllers/subsystem/atoms.dm | 6 +- code/datums/components/chasm.dm | 310 +++++++++++------ code/datums/components/clickbox.dm | 66 ++-- code/datums/components/riding.dm | 2 + code/datums/components/slippery.dm | 4 + code/datums/components/wet_floor.dm | 12 +- code/datums/diseases/_MobProcs.dm | 1 + code/datums/elements/give_turf_traits.dm | 79 +++++ code/datums/elements/immerse.dm | 312 ++++++++++++++++++ code/datums/elements/movetype_handler.dm | 9 +- code/datums/elements/swimming_tile.dm | 159 +++++++++ code/datums/elements/watery_tile.dm | 81 +++++ code/datums/mutations/body.dm | 6 +- .../proximity_monitor/proximity_monitor.dm | 1 + code/datums/status_effects/buffs.dm | 4 +- code/datums/status_effects/debuffs.dm | 8 +- .../status_effects/debuffs/fire_stacks.dm | 29 +- .../status_effects/debuffs/jittering.dm | 4 +- code/datums/status_effects/status_effect.dm | 37 ++- code/datums/status_effects/wound_effects.dm | 2 +- .../MapData/outposts/cybersun_gas_giant.dm | 24 +- code/game/atoms.dm | 33 +- code/game/atoms_movable.dm | 21 +- code/game/data_huds.dm | 25 ++ code/game/machinery/computer/arcade.dm | 2 +- code/game/objects/effects/decals/cleanable.dm | 10 +- .../objects/items/devices/radio/intercom.dm | 1 + .../objects/items/robot/robot_upgrades.dm | 6 +- .../structures/beds_chairs/alien_nest.dm | 6 +- .../objects/structures/beds_chairs/chair.dm | 6 +- code/game/objects/structures/catwalk.dm | 4 + code/game/objects/structures/kitchen_spike.dm | 4 +- code/game/objects/structures/lattice.dm | 9 + code/game/objects/structures/signs/_signs.dm | 4 + code/game/objects/structures/tables_racks.dm | 5 + code/game/turfs/open/acid.dm | 24 +- code/game/turfs/open/chasm.dm | 7 +- code/game/turfs/open/lava.dm | 54 ++- code/game/turfs/open/openspace.dm | 16 + code/game/turfs/open/water.dm | 80 ++++- code/game/turfs/turf.dm | 12 +- code/modules/mining/lavaland/ruins/gym.dm | 7 +- .../basic/space_fauna/hivebot/_hivebot.dm | 2 +- .../carbon/alien/humanoid/update_icons.dm | 4 - .../living/carbon/alien/larva/update_icons.dm | 4 - .../mob/living/carbon/carbon_defines.dm | 7 +- .../modules/mob/living/carbon/damage_procs.dm | 2 +- .../mob/living/carbon/human/damage_procs.dm | 4 +- code/modules/mob/living/carbon/human/dummy.dm | 1 + .../mob/living/carbon/human/human_defense.dm | 9 +- .../mob/living/carbon/human/species.dm | 8 +- .../modules/mob/living/carbon/update_icons.dm | 26 -- code/modules/mob/living/damage_procs.dm | 8 +- code/modules/mob/living/death.dm | 2 + code/modules/mob/living/emote.dm | 39 +-- code/modules/mob/living/init_signals.dm | 7 + code/modules/mob/living/living.dm | 46 +-- code/modules/mob/living/living_defense.dm | 2 +- code/modules/mob/living/living_defines.dm | 16 +- code/modules/mob/living/living_movement.dm | 11 +- .../modules/mob/living/living_update_icons.dm | 197 ++++++++++- .../mob/living/silicon/damage_procs.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 3 +- .../mob/living/simple_animal/bot/secbot.dm | 3 +- .../simple_animal/hostile/jungle/mook.dm | 3 +- .../simple_animal/hostile/jungle/seedling.dm | 5 +- .../hostile/mining_mobs/gutlunch.dm | 6 +- .../mob/living/simple_animal/slime/slime.dm | 4 - code/modules/mob/mob.dm | 19 -- code/modules/mob/update_icons.dm | 3 - code/modules/movespeed/modifiers/mobs.dm | 13 +- .../outpost/elevator/elevator_platform.dm | 6 +- code/modules/pixelshifting/pixelshift.dm | 55 ++- code/modules/power/lighting.dm | 10 + .../chemistry/reagents/drink_reagents.dm | 8 +- .../chemistry/reagents/other_reagents.dm | 8 +- code/modules/recycling/conveyor2.dm | 4 +- code/modules/unit_tests/_unit_tests.dm | 3 + code/modules/unit_tests/burn.dm | 17 + code/modules/unit_tests/medical_wounds.dm | 4 +- .../modules/unit_tests/status_effect_ticks.dm | 23 ++ icons/effects/effects.dmi | Bin 903017 -> 903273 bytes shiptest.dme | 11 +- 104 files changed, 1819 insertions(+), 540 deletions(-) create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm create mode 100644 code/__DEFINES/dcs/signals/signals_datum.dm create mode 100644 code/__HELPERS/animation.dm create mode 100644 code/__HELPERS/visual_effects.dm create mode 100644 code/datums/elements/give_turf_traits.dm create mode 100644 code/datums/elements/immerse.dm create mode 100644 code/datums/elements/swimming_tile.dm create mode 100644 code/datums/elements/watery_tile.dm create mode 100644 code/modules/unit_tests/burn.dm create mode 100644 code/modules/unit_tests/status_effect_ticks.dm diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index fa178ae482..eb27ab81a6 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -255,7 +255,6 @@ dir = 5 }, /obj/item/storage/case/surgery{ - pixel_x = 0; pixel_y = 4 }, /turf/open/floor/pod/light, @@ -3942,10 +3941,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/spacevine, /obj/structure/spacevine, -/obj/structure/girder{ - icon = 'icons/effects/32x64.dmi'; - icon_state = "crystal" - }, +/obj/structure/flora/rock/crystal, /turf/open/floor/plating/asteroid/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) "Cp" = ( @@ -4418,9 +4414,8 @@ /turf/open/floor/pod, /area/ruin/jungle/paradise/comms) "Fw" = ( -/obj/structure/girder{ - icon = 'icons/effects/32x64.dmi'; - icon_state = "crystal" +/obj/structure/flora/rock/crystal{ + layer = 5 }, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) @@ -6338,12 +6333,7 @@ /turf/open/floor/plating/asteroid/dirt/grass/jungle, /area/overmap_encounter/planetoid/jungle/explored) "UO" = ( -/obj/structure/girder{ - icon = 'icons/effects/32x64.dmi'; - icon_state = "crystal"; - pixel_x = 10; - pixel_y = -4 - }, +/obj/structure/flora/rock/crystal, /turf/open/water/jungle, /area/overmap_encounter/planetoid/cave/explored) "UR" = ( @@ -6676,10 +6666,7 @@ /area/overmap_encounter/planetoid/cave/explored) "Xe" = ( /obj/structure/flora/grass/jungle/b, -/obj/structure/girder{ - icon = 'icons/effects/32x64.dmi'; - icon_state = "crystal" - }, +/obj/structure/flora/rock/crystal, /turf/open/floor/plating/asteroid/dirt/jungle/dark, /area/overmap_encounter/planetoid/cave/explored) "Xg" = ( @@ -10385,8 +10372,8 @@ Iw Iw Iw pL +UO eC -Fw Jt fV eC @@ -10658,7 +10645,7 @@ eC eC fm eC -Fw +UO eC Rp Rp diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index 972a6b2c66..86efbaee06 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -37,23 +37,6 @@ ////////////////////////////////////////////////////////////////// -// /datum signals -/// when a component is added to a datum: (/datum/component) -#define COMSIG_COMPONENT_ADDED "component_added" -/// before a component is removed from a datum because of RemoveComponent: (/datum/component) -#define COMSIG_COMPONENT_REMOVING "component_removing" -/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation -#define COMSIG_PREQDELETED "parent_preqdeleted" -/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called -#define COMSIG_QDELETING "parent_qdeleting" -/// generic topic handler (usr, href_list) -#define COMSIG_TOPIC "handle_topic" - -/// fires on the target datum when an element is attached to it (/datum/element) -#define COMSIG_ELEMENT_ATTACH "element_attach" -/// fires on the target datum when an element is attached to it (/datum/element) -#define COMSIG_ELEMENT_DETACH "element_detach" - // /atom signals ///from base of atom/proc/Initialize(): sent any time a new atom is created #define COMSIG_ATOM_CREATED "atom_created" @@ -112,13 +95,7 @@ #define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" ///from base of [/atom/update_icon]: (signalOut, did_anything) #define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" -///from base of atom/Entered(): (atom/movable/entering, /atom) -#define COMSIG_ATOM_ENTERED "atom_entered" -///from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc) -#define COMSIG_ATOM_EXIT "atom_exit" - #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) -///from base of atom/Exited(): (atom/movable/exiting, atom/newloc) -#define COMSIG_ATOM_EXITED "atom_exited" + ///from base of atom/Bumped(): (/atom/movable) #define COMSIG_ATOM_BUMPED "atom_bumped" ///from base of atom/ex_act(): (severity, target) @@ -596,6 +573,13 @@ /// The index of message_args that corresponds to the actual message #define TREAT_MESSAGE_MESSAGE 1 +///from base of mob/living/death(): (gibbed) +#define COMSIG_LIVING_DEATH "living_death" + +///from base of mob/living/gib() +#define COMSIG_LIVING_GIBBED "living_gibbed" + + ///From /datum/component/creamed/Initialize() #define COMSIG_MOB_CREAMED "mob_creamed" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm new file mode 100644 index 0000000000..f1b3eb3767 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -0,0 +1,18 @@ +///from base of atom/Entered(): (atom/movable/entering, /atom) +#define COMSIG_ATOM_ENTERED "atom_entered" +///from base of atom/movable/Moved(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs) +#define COMSIG_ATOM_ABSTRACT_ENTERED "atom_abstract_entered" +///from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc) +#define COMSIG_ATOM_EXIT "atom_exit" + #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) +///from base of atom/Exited(): (atom/movable/exiting, atom/newloc) +#define COMSIG_ATOM_EXITED "atom_exited" +///from base of atom/movable/Moved(): (atom/movable/gone, direction) +#define COMSIG_ATOM_ABSTRACT_EXITED "atom_abstract_exited" + +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization and has a loc +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on" + + +/// Called on [/atom/SpinAnimation()] : (speed, loops, segments, angle) +#define COMSIG_ATOM_SPIN_ANIMATION "atom_spin_animation" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm new file mode 100644 index 0000000000..d4ccf28cbe --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -0,0 +1,2 @@ +/// From /datum/element/immerse/proc/add_immerse_overlay(): (atom/movable/immerse_mask/effect_relay) +#define COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY "movable_edit_unique_submerge_overlay" diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm new file mode 100644 index 0000000000..72818acc55 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -0,0 +1,21 @@ +// Datum signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// /datum signals +/// when a component is added to a datum: (/datum/component) +#define COMSIG_COMPONENT_ADDED "component_added" +/// before a component is removed from a datum because of ClearFromParent: (/datum/component) +#define COMSIG_COMPONENT_REMOVING "component_removing" + +/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PREQDELETED "parent_preqdeleted" +/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called +#define COMSIG_QDELETING "parent_qdeleting" +/// generic topic handler (usr, href_list) +#define COMSIG_TOPIC "handle_topic" + +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_ATTACH "element_attach" +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_DETACH "element_detach" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 279c1a18b2..1d42ebbfdd 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -11,6 +11,9 @@ /// From /mob/living/unfriend() : (mob/living/old_friend) #define COMSIG_LIVING_UNFRIENDED "living_unfriended" +/// From /mob/living/update_offsets(animate) : (new_x, new_y, new_w, new_z, animate) +#define COMSIG_LIVING_UPDATE_OFFSETS "living_update_offsets" + /// From /datum/ai/behavior/climb_tree/perform() : (mob/living/basic/living_pawn) #define COMSIG_LIVING_CLIMB_TREE "living_climb_tree" diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index b9733d93d5..5f84cfb7b9 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -125,6 +125,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define PHASING (1<<4) #define THROWN (1<<5) +/// Combination flag for movetypes which, for all intents and purposes, mean the mob is not touching the ground +#define MOVETYPES_NOT_TOUCHING_GROUND (FLYING|FLOATING) + //Fire and Acid stuff, for resistance_flags #define LAVA_PROOF (1<<0) /// 100% immune to fire damage (but not necessarily to lava or heat) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 4d11a88a7c..52a3027645 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -76,6 +76,8 @@ #define HIGH_SIGIL_LAYER 2.56 #define BELOW_OPEN_DOOR_LAYER 2.6 +///Anything below this layer is to be considered completely (visually) under water by the immerse layer. +#define WATER_LEVEL_LAYER 2.61 #define OPEN_DOOR_LAYER 2.7 #define DOOR_HELPER_LAYER 2.71 //keep this above OPEN_DOOR_LAYER #define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible @@ -160,6 +162,14 @@ ///Wants to be part of the game plane, but also wants to draw above literally everything else #define HIGH_GAME_PLANE 30 + +//Placeholders in case the game plane and possibly other things between it and the floor plane are ever made into topdown planes + +///Below this level, objects with topdown layers are rendered as if underwater by the immerse element +#define TOPDOWN_WATER_LEVEL_LAYER 100 + TOPDOWN_LAYER +///Above this level, objects with topdown layers are unaffected by the immerse element +#define TOPDOWN_ABOVE_WATER_LAYER 200 + TOPDOWN_LAYER + //HUD layer defines #define FULLSCREEN_PLANE 31 diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index 1f2316e8e1..d3aa9fcb1b 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -1,3 +1,9 @@ // living_flags /// Simple mob trait, indicating it may follow continuous move actions controlled by code instead of by user input. #define MOVES_ON_ITS_OWN (1<<0) + +// Used in living mob offset list for determining pixel offsets +#define PIXEL_W_OFFSET "w" +#define PIXEL_X_OFFSET "x" +#define PIXEL_Y_OFFSET "y" +#define PIXEL_Z_OFFSET "z" diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index a2f670fb5f..c0438f5f31 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -16,6 +16,7 @@ #define INVESTIGATE_EXONET "exonet" #define INVESTIGATE_NANITES "nanites" #define INVESTIGATE_PRESENTS "presents" +#define INVESTIGATE_DEATHS "death" // Logging types for log_message() #define LOG_ATTACK (1 << 0) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 11cdc9e501..6cfd4226e1 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -31,6 +31,10 @@ #define RESIZE_DEFAULT_SIZE 1 +//Lying angles, which way your head points +#define LYING_ANGLE_EAST 90 +#define LYING_ANGLE_WEST 270 + //transfer_ai() defines. Main proc in ai_core.dm #define AI_TRANS_TO_CARD 1 //Downloading AI to InteliCard. #define AI_TRANS_FROM_CARD 2 //Uploading AI from InteliCard diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index e82c634bbd..5123acf1dc 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -322,6 +322,8 @@ #define GALOSHES_DONT_HELP (1<<2) #define SLIDE_ICE (1<<3) #define SLIP_WHEN_CRAWLING (1<<4) +/// the mob won't slip if the turf has the TRAIT_TURF_IGNORE_SLIPPERY trait. +#define SLIPPERY_TURF (1<<5) #define MAX_CHICKENS 50 @@ -583,3 +585,4 @@ GLOBAL_LIST_INIT(layers_to_offset, list( /// In dynamic human icon gen we don't replace the held item. #define NO_REPLACE 0 + diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 486f0b7456..f63fd6af08 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -2,3 +2,5 @@ #define TRAIT_MOB_TIPPED "mob_tipped" /// Trait given to mobs that have the basic eating element #define TRAIT_MOB_EATER "mob_eater" +/// Trait given to objects with the wallmounted component +#define TRAIT_WALLMOUNTED "wallmounted" diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index 4343bf6b26..efd180a0d4 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -1,2 +1,9 @@ /// Trait applied to mobs by being tipped over #define TIPPED_OVER "tipped-over" +/// Trait from mob/living/update_transform() +#define UPDATE_TRANSFORM_TRAIT "update_transform" +/// Trait from mob/living/update_offsets() +#define UPDATE_OFFSET_TRAIT "update_offset" + +/// From grabbing someone +#define GRABBING_TRAIT "grabbing" diff --git a/code/__DEFINES/traits/traits.dm b/code/__DEFINES/traits/traits.dm index 818d4a5af1..24df9782b3 100644 --- a/code/__DEFINES/traits/traits.dm +++ b/code/__DEFINES/traits/traits.dm @@ -1,5 +1,5 @@ -#define SIGNAL_ADDTRAIT(trait_ref) "addtrait [trait_ref]" -#define SIGNAL_REMOVETRAIT(trait_ref) "removetrait [trait_ref]" +#define SIGNAL_ADDTRAIT(trait_ref) ("addtrait " + trait_ref) +#define SIGNAL_REMOVETRAIT(trait_ref) ("removetrait " + trait_ref) // trait accessor defines #define ADD_TRAIT(target, trait, source) \ @@ -27,14 +27,14 @@ if (sources && !islist(sources)) { \ _S = list(sources); \ } else { \ - _S = sources \ + _S = sources\ }; \ - if (_L && _L[trait]) { \ + if (_L?[trait]) { \ for (var/_T in _L[trait]) { \ if ((!_S && (_T != ROUNDSTART_TRAIT)) || (_T in _S)) { \ _L[trait] -= _T \ } \ - }; \ + };\ if (!length(_L[trait])) { \ _L -= trait; \ SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(trait), trait); \ @@ -189,6 +189,20 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_SNOWSTORM_IMMUNE "snow_immunity" #define TRAIT_ASHSTORM_IMMUNE "ash_immunity" #define TRAIT_SANDSTORM_IMMUNE "sand_immunity" + +///Lava will be safe to cross while it has this trait. +#define TRAIT_LAVA_STOPPED "lava_stopped" +///Chasms will be safe to cross while they've this trait. +#define TRAIT_CHASM_STOPPED "chasm_stopped" +///The effects of the immerse element will be halted while this trait is present. +#define TRAIT_IMMERSE_STOPPED "immerse_stopped" +///The effects of acid turfs will be stopped while the trait is present +#define TRAIT_ACID_STOPPED "immerse_stopped" +///Turf slowdown will be ignored when this trait is added to a turf. +#define TRAIT_TURF_IGNORE_SLOWDOWN "turf_ignore_slowdown" +///Mobs won't slip on a wet turf while it has this trait +#define TRAIT_TURF_IGNORE_SLIPPERY "turf_ignore_slippery" + /// Mobs that have this trait cannot be extinguished #define TRAIT_NO_EXTINGUISH "no_extinguish" #define TRAIT_NOFIRE "nonflammable" @@ -522,5 +536,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Climbable trait, given and taken by the climbable element when added or removed. Exists to be easily checked via HAS_TRAIT(). #define TRAIT_CLIMBABLE "trait_climbable" +/// If this movable is currently treading in a turf with the immerse element. +#define TRAIT_IMMERSED "immersed" + /// Trait applied by element #define ELEMENT_TRAIT(source) "element_trait_[source]" diff --git a/code/__HELPERS/_planes.dm b/code/__HELPERS/_planes.dm index d8306c356d..56ea69f750 100644 --- a/code/__HELPERS/_planes.dm +++ b/code/__HELPERS/_planes.dm @@ -78,3 +78,20 @@ // This is solvable with lowspec preferences, which would not be hard to implement // Player popups will now render their effects, like overlay lights. this is fixable, but I've not gotten to it // I think overlay lights can render on the wrong z layer. s fucked + +/// Whitelist of planes allowed to use TOPDOWN_LAYER +GLOBAL_LIST_INIT(topdown_planes, list( + "[FLOOR_PLANE]" = TRUE, + )) + +#define IS_TOPDOWN_PLANE(plane) GLOB.topdown_planes["[PLANE_TO_TRUE(plane)]"] + +/// Checks if a passed in MA or atom is allowed to have its current plane/layer matchup +/proc/check_topdown_validity(mutable_appearance/thing_to_check) + if(istype(thing_to_check, /atom/movable/screen/plane_master)) + return + if(IS_TOPDOWN_PLANE(thing_to_check.plane)) + if(thing_to_check.layer - TOPDOWN_LAYER < 0 || thing_to_check.layer >= BACKGROUND_LAYER) + stack_trace("[thing_to_check] ([thing_to_check.type]) was expected to have a TOPDOWN_LAYER layer due to its plane, but it DID NOT! layer: ([thing_to_check.layer]) plane: ([thing_to_check.plane])") + else if(thing_to_check.layer - TOPDOWN_LAYER >= 0 && thing_to_check.layer < BACKGROUND_LAYER) + stack_trace("[thing_to_check] ([thing_to_check.type] is NOT ALLOWED to have a TOPDOWN_LAYER layer due to its plane, but it did! layer: ([thing_to_check.layer]) plane: ([thing_to_check.plane])") diff --git a/code/__HELPERS/angles.dm b/code/__HELPERS/angles.dm index 8c6d151044..cf8da6bbac 100644 --- a/code/__HELPERS/angles.dm +++ b/code/__HELPERS/angles.dm @@ -74,3 +74,6 @@ return SOUTH if(226 to 315) return WEST + +// 180s an angle +#define REVERSE_ANGLE(degrees) (SIMPLIFY_DEGREES(degrees + 180)) diff --git a/code/__HELPERS/animation.dm b/code/__HELPERS/animation.dm new file mode 100644 index 0000000000..7e3d322c04 --- /dev/null +++ b/code/__HELPERS/animation.dm @@ -0,0 +1,37 @@ +/// The duration of the animate call in mob/living/update_transform +#define UPDATE_TRANSFORM_ANIMATION_TIME (0.2 SECONDS) + +///Animates source spinning around itself. For docmentation on the args, check atom/proc/SpinAnimation() +/atom/proc/do_spin_animation(speed = 1 SECONDS, loops = -1, segments = 3, angle = 120, parallel = TRUE) + var/list/matrices = list() + for(var/i in 1 to segments-1) + var/matrix/segment_matrix = matrix(transform) + segment_matrix.Turn(angle*i) + matrices += segment_matrix + var/matrix/last = matrix(transform) + matrices += last + + speed /= segments + + if(parallel) + animate(src, transform = matrices[1], time = speed, loops , flags = ANIMATION_PARALLEL) + else + animate(src, transform = matrices[1], time = speed, loops) + for(var/i in 2 to segments) //2 because 1 is covered above + animate(transform = matrices[i], time = speed) + //doesn't have an object argument because this is "Stacking" with the animate call above + //3 billion% intentional + +/// Similar to shake but more spasm-y and jerk-y +/atom/proc/spasm_animation(loops = -1) + var/list/transforms = list( + matrix(transform).Translate(-1, 0), + matrix(transform).Translate(0, 1), + matrix(transform).Translate(1, 0), + matrix(transform).Translate(0, -1), + ) + + animate(src, transform = transforms[1], time = 0.2, loop = loops) + animate(transform = transforms[2], time = 0.1) + animate(transform = transforms[3], time = 0.2) + animate(transform = transforms[4], time = 0.3) diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 3c3f57e01e..884b1e4829 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -2,31 +2,6 @@ . = new_angle - old_angle Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT -/atom/proc/SpinAnimation(speed = 10, loops = -1, clockwise = 1, segments = 3, parallel = TRUE) - if(!segments) - return - var/segment = 360/segments - if(!clockwise) - segment = -segment - var/list/matrices = list() - for(var/i in 1 to segments-1) - var/matrix/M = matrix(transform) - M.Turn(segment*i) - matrices += M - var/matrix/last = matrix(transform) - matrices += last - - speed /= segments - - if(parallel) - animate(src, transform = matrices[1], time = speed, loops , flags = ANIMATION_PARALLEL) - else - animate(src, transform = matrices[1], time = speed, loops) - for(var/i in 2 to segments) //2 because 1 is covered above - animate(transform = matrices[i], time = speed) - //doesn't have an object argument because this is "Stacking" with the animate call above - //3 billion% intentional - //Dumps the matrix data in format a-f /matrix/proc/tolist() . = list() diff --git a/code/__HELPERS/visual_effects.dm b/code/__HELPERS/visual_effects.dm new file mode 100644 index 0000000000..eb292c905c --- /dev/null +++ b/code/__HELPERS/visual_effects.dm @@ -0,0 +1,11 @@ +#define DO_FLOATING_ANIM(target) \ + animate(target, pixel_z = 2, time = 1 SECONDS, loop = -1, flags = ANIMATION_RELATIVE); \ + animate(pixel_z = -2, time = 1 SECONDS, flags = ANIMATION_RELATIVE) + +#define STOP_FLOATING_ANIM(target) \ + var/__final_pixel_z = 0; \ + if(ismovable(target)) { \ + var/atom/movable/__movable_target = target; \ + __final_pixel_z = __movable_target.base_pixel_z; \ + }; \ + animate(target, pixel_z = __final_pixel_z, time = 1 SECONDS) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index a9ff89f9fe..ca68f727a0 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -164,6 +164,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_T_RAY_VISIBLE" = TRAIT_T_RAY_VISIBLE, "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT ), + /obj = list( + "TRAIT_WALLMOUNTED" = TRAIT_WALLMOUNTED, + ), /atom = list( "TRAIT_KEEP_TOGETHER" = TRAIT_KEEP_TOGETHER, "TRAIT_CLIMBABLE" = TRAIT_CLIMBABLE, diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index ee629f41fa..4a5a231712 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -102,7 +102,11 @@ SUBSYSTEM_DEF(atoms) else if(!(A.flags_1 & INITIALIZED_1)) BadInitializeCalls[the_type] |= BAD_INIT_DIDNT_INIT else - SEND_SIGNAL(A,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE) + SEND_SIGNAL(A, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE) + var/atom/movable/location = A.loc + if(location) + /// Sends a signal that the new atom `src`, has been created at `loc` + SEND_SIGNAL(location, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, A, arguments[1]) if (created_atoms) created_atoms += A diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index d5dad9ccf2..f0ba463b68 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -1,6 +1,10 @@ +/// List of weakrefs to containers for things which have fallen into chasms +GLOBAL_LIST_INIT(chasm_storage, list()) + // Used by /turf/open/chasm and subtypes to implement the "dropping" mechanic /datum/component/chasm var/turf/target_turf + var/obj/effect/abstract/chasm_storage/storage var/fall_message = "GAH! Ah... where are you?" var/oblivion_message = "You stumble and stare into the abyss before you. It stares back, and you fall into the enveloping dark." @@ -22,128 +26,242 @@ /obj/effect/dummy/phased_mob, /obj/effect/mapping_helpers, /obj/effect/wisp, - )) + /obj/effect/ebeam, + /obj/effect/fishing_lure, + )) -/datum/component/chasm/Initialize(turf/target) - RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(Entered)) +/datum/component/chasm/Initialize(turf/target, mapload) + RegisterSignal(parent, SIGNAL_ADDTRAIT(TRAIT_CHASM_STOPPED), PROC_REF(on_chasm_stopped)) + RegisterSignal(parent, SIGNAL_REMOVETRAIT(TRAIT_CHASM_STOPPED), PROC_REF(on_chasm_no_longer_stopped)) target_turf = target - START_PROCESSING(SSobj, src) // process on create, in case stuff is still there + RegisterSignal(parent, COMSIG_ATOM_ABSTRACT_ENTERED, PROC_REF(entered)) + RegisterSignal(parent, COMSIG_ATOM_ABSTRACT_EXITED, PROC_REF(exited)) + RegisterSignal(parent, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(initialized_on)) + //allow catwalks to give the turf the CHASM_STOPPED trait before dropping stuff when the turf is changed. + //otherwise don't do anything because turfs and areas are initialized before movables. + if(!mapload) + addtimer(CALLBACK(src, PROC_REF(drop_stuff)), 0) + +/datum/component/chasm/UnregisterFromParent() + remove_storage() + +/** + * Deletes the chasm storage object and removes empty weakrefs from global list + */ +/datum/component/chasm/proc/remove_storage() + if (!storage) + return + QDEL_NULL(storage) + var/list/chasm_storage = list() + for (var/datum/weakref/ref as anything in GLOB.chasm_storage) + if (!ref.resolve()) + continue + chasm_storage += ref + GLOB.chasm_storage = chasm_storage -/datum/component/chasm/proc/Entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) +/datum/component/chasm/proc/entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER + drop_stuff() - START_PROCESSING(SSobj, src) - drop_stuff(arrived) +/datum/component/chasm/proc/exited(datum/source, atom/movable/exited) + SIGNAL_HANDLER + UnregisterSignal(exited, list(COMSIG_MOVETYPE_FLAG_DISABLED, COMSIG_LIVING_SET_BUCKLED, COMSIG_MOVABLE_THROW_LANDED)) -/datum/component/chasm/process(seconds_per_tick) - if (!drop_stuff()) - STOP_PROCESSING(SSobj, src) +/datum/component/chasm/proc/initialized_on(datum/source, atom/movable/movable, mapload) + SIGNAL_HANDLER + drop_stuff(movable) -/datum/component/chasm/proc/is_safe() - //if anything matching this typecache is found in the chasm, we don't drop things - var/static/list/chasm_safeties_typecache = typecacheof(list(/obj/structure/lattice, /obj/structure/stone_tile, /obj/structure/catwalk)) +/datum/component/chasm/proc/on_chasm_stopped(datum/source) + SIGNAL_HANDLER + UnregisterSignal(source, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_EXITED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON)) + for(var/atom/movable/movable as anything in source) + UnregisterSignal(movable, list(COMSIG_MOVETYPE_FLAG_DISABLED, COMSIG_LIVING_SET_BUCKLED, COMSIG_MOVABLE_THROW_LANDED)) - var/atom/parent = src.parent - var/list/found_safeties = typecache_filter_list(parent.contents, chasm_safeties_typecache) - for(var/obj/structure/stone_tile/S in found_safeties) - if(S.fallen) - LAZYREMOVE(found_safeties, S) - return LAZYLEN(found_safeties) +/datum/component/chasm/proc/on_chasm_no_longer_stopped(datum/source) + SIGNAL_HANDLER + RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(entered)) + RegisterSignal(parent, COMSIG_ATOM_EXITED, PROC_REF(exited)) + RegisterSignal(parent, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(initialized_on)) + drop_stuff() -/datum/component/chasm/proc/drop_stuff(AM) - if (is_safe()) - return FALSE +#define CHASM_NOT_DROPPING 0 +#define CHASM_DROPPING 1 +///Doesn't drop the movable, but registers a few signals to try again if the conditions change. +#define CHASM_REGISTER_SIGNALS 2 - var/atom/parent = src.parent - var/to_check = AM ? list(AM) : parent.contents - for (var/thing in to_check) - if (droppable(thing)) - . = TRUE - INVOKE_ASYNC(src, PROC_REF(drop), thing) - -/datum/component/chasm/proc/droppable(atom/movable/AM) - var/datum/weakref/falling_ref = WEAKREF(AM) +/datum/component/chasm/proc/drop_stuff(atom/movable/dropped_thing) + if(HAS_TRAIT(parent, TRAIT_CHASM_STOPPED)) + return + var/atom/atom_parent = parent + var/to_check = dropped_thing ? list(dropped_thing) : atom_parent.contents + for (var/atom/movable/thing as anything in to_check) + var/dropping = droppable(thing) + switch(dropping) + if(CHASM_DROPPING) + INVOKE_ASYNC(src, PROC_REF(drop), thing) + if(CHASM_REGISTER_SIGNALS) + RegisterSignals(thing, list(COMSIG_MOVETYPE_FLAG_DISABLED, COMSIG_LIVING_SET_BUCKLED, COMSIG_MOVABLE_THROW_LANDED), PROC_REF(drop_stuff), TRUE) + +/datum/component/chasm/proc/droppable(atom/movable/dropped_thing) + var/datum/weakref/falling_ref = WEAKREF(dropped_thing) // avoid an infinite loop, but allow falling a large distance if(falling_atoms[falling_ref] && falling_atoms[falling_ref] > 30) - return FALSE - if(!isliving(AM) && !isobj(AM)) - return FALSE - if(is_type_in_typecache(AM, forbidden_types) || AM.throwing || (AM.movement_type & (FLOATING|FLYING))) - return FALSE + return CHASM_NOT_DROPPING + if(is_type_in_typecache(dropped_thing, forbidden_types) || (!isliving(dropped_thing) && !isobj(dropped_thing))) + return CHASM_NOT_DROPPING + if(dropped_thing.throwing || (dropped_thing.movement_type & (FLOATING|FLYING))) + return CHASM_REGISTER_SIGNALS + //Flies right over the chasm - if(ismob(AM)) - var/mob/M = AM + if(ismob(dropped_thing)) + var/mob/M = dropped_thing if(M.buckled) //middle statement to prevent infinite loops just in case! var/mob/buckled_to = M.buckled if((!ismob(M.buckled) || (buckled_to.buckled != M)) && !droppable(M.buckled)) - return FALSE - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(istype(H.belt, /obj/item/wormhole_jaunter)) - var/obj/item/wormhole_jaunter/J = H.belt - //To freak out any bystanders - H.visible_message(span_boldwarning("[H] falls into [parent]!")) - J.chasm_react(H) - return FALSE - return TRUE - -/datum/component/chasm/proc/drop(atom/movable/AM) - var/datum/weakref/falling_ref = WEAKREF(AM) + return CHASM_REGISTER_SIGNALS + if(ishuman(dropped_thing)) + var/mob/living/carbon/human/victim = dropped_thing + if(istype(victim.belt, /obj/item/wormhole_jaunter)) + var/obj/item/wormhole_jaunter/jaunter = victim.belt + var/turf/chasm = get_turf(victim) + var/fall_into_chasm = jaunter.chasm_react(victim) + if(!fall_into_chasm) + chasm.visible_message(span_boldwarning("[victim] falls into the [chasm]!")) //To freak out any bystanders + return fall_into_chasm ? CHASM_DROPPING : CHASM_NOT_DROPPING + return CHASM_DROPPING + +#undef CHASM_NOT_DROPPING +#undef CHASM_DROPPING +#undef CHASM_REGISTER_SIGNALS + +/datum/component/chasm/proc/drop(atom/movable/dropped_thing) + var/datum/weakref/falling_ref = WEAKREF(dropped_thing) //Make sure the item is still there after our sleep - if(!AM || !falling_ref?.resolve()) + if(!dropped_thing || !falling_ref?.resolve()) falling_atoms -= falling_ref return falling_atoms[falling_ref] = (falling_atoms[falling_ref] || 0) + 1 - var/turf/T = target_turf + var/turf/below_turf = target_turf + var/atom/parent = src.parent + + if(falling_atoms[falling_ref] > 1) + return // We're already handling this + + if(below_turf) + /* + if(HAS_TRAIT(dropped_thing, TRAIT_CHASM_DESTROYED)) + qdel(dropped_thing) + return + */ - if(T) // send to the turf below - AM.visible_message(span_boldwarning("[AM] falls into [parent]!"), span_userdanger("[fall_message]")) - T.visible_message(span_boldwarning("[AM] falls from above!")) - AM.forceMove(T) - if(isliving(AM)) - var/mob/living/L = AM - L.Paralyze(100) - L.adjustBruteLoss(30) + dropped_thing.visible_message(span_boldwarning("[dropped_thing] falls into [parent]!"), span_userdanger("[fall_message]")) + below_turf.visible_message(span_boldwarning("[dropped_thing] falls from above!")) + dropped_thing.forceMove(below_turf) + if(isliving(dropped_thing)) + var/mob/living/fallen = dropped_thing + fallen.Paralyze(100) + fallen.adjustBruteLoss(30) falling_atoms -= falling_ref + return - else - // send to oblivion - AM.visible_message(span_boldwarning("[AM] falls into [parent]!"), span_userdanger("[oblivion_message]")) - if (isliving(AM)) - var/mob/living/L = AM - L.notransform = TRUE - L.Paralyze(20 SECONDS) - - var/oldtransform = AM.transform - var/oldcolor = AM.color - var/oldalpha = AM.alpha - animate(AM, transform = matrix() - matrix(), alpha = 0, color = rgb(0, 0, 0), time = 10) - for(var/i in 1 to 5) - //Make sure the item is still there after our sleep - if(!AM || QDELETED(AM)) - return - AM.pixel_y-- - sleep(2) + // send to oblivion + dropped_thing.visible_message(span_boldwarning("[dropped_thing] falls into [parent]!"), span_userdanger("[oblivion_message]")) + if (isliving(dropped_thing)) + var/mob/living/falling_mob = dropped_thing + falling_mob.notransform = TRUE + falling_mob.Paralyze(20 SECONDS) + var/oldtransform = dropped_thing.transform + var/oldcolor = dropped_thing.color + var/oldalpha = dropped_thing.alpha + var/oldoffset = dropped_thing.pixel_y + + animate(dropped_thing, transform = matrix() - matrix(), alpha = 0, color = rgb(0, 0, 0), time = 10) + for(var/i in 1 to 5) //Make sure the item is still there after our sleep - if(!AM || QDELETED(AM)) + if(!dropped_thing || QDELETED(dropped_thing)) return + dropped_thing.pixel_y-- + sleep(0.2 SECONDS) + + //Make sure the item is still there after our sleep + if(!dropped_thing || QDELETED(dropped_thing)) + return - if(iscyborg(AM)) - var/mob/living/silicon/robot/S = AM - qdel(S.mmi) - if(isliving(AM)) - var/mob/living/L = AM - if(L.stat != DEAD) - L.death(TRUE) + /* + if(HAS_TRAIT(dropped_thing, TRAIT_CHASM_DESTROYED)) + qdel(dropped_thing) + return + */ - falling_atoms -= falling_ref - qdel(AM) - if(AM && !QDELETED(AM)) //It's indestructible - var/atom/parent = src.parent - parent.visible_message(span_boldwarning("[parent] spits out [AM]!")) - AM.alpha = oldalpha - AM.color = oldcolor - AM.transform = oldtransform - AM.throw_at(get_edge_target_turf(parent,pick(GLOB.alldirs)),rand(1, 10),rand(1, 10)) + if(!storage) + storage = new(get_turf(parent)) + RegisterSignal(storage, COMSIG_ATOM_EXITED, PROC_REF(left_chasm)) + GLOB.chasm_storage += WEAKREF(storage) + + if(storage.contains(dropped_thing)) + return + + dropped_thing.alpha = oldalpha + dropped_thing.color = oldcolor + dropped_thing.transform = oldtransform + dropped_thing.pixel_y = oldoffset + + if(dropped_thing.forceMove(storage)) + if (isliving(dropped_thing)) + RegisterSignal(dropped_thing, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) + else + parent.visible_message(span_boldwarning("[parent] spits out [dropped_thing]!")) + dropped_thing.throw_at(get_edge_target_turf(parent, pick(GLOB.alldirs)), rand(1, 10), rand(1, 10)) + + if(isliving(dropped_thing)) + var/mob/living/fallen_mob = dropped_thing + fallen_mob.notransform = FALSE + if (fallen_mob.stat != DEAD) + fallen_mob.investigate_log("has died from falling into a chasm.", INVESTIGATE_DEATHS) + fallen_mob.death(TRUE) + fallen_mob.apply_damage(300) + + falling_atoms -= falling_ref + +/** + * Called when something has left the chasm depths storage. + * Arguments + * + * * source - Chasm object holder. + * * gone - Item which has just left the chasm contents. + */ +/datum/component/chasm/proc/left_chasm(atom/source, atom/movable/gone) + SIGNAL_HANDLER + UnregisterSignal(gone, COMSIG_LIVING_REVIVE) + +#define CHASM_TRAIT "chasm trait" + +/** + * Called if something comes back to life inside the pit. Expected sources are badmins and changelings. + * + * Arguments + * * escapee - Lucky guy who just came back to life at the bottom of a hole. + */ +/datum/component/chasm/proc/on_revive(mob/living/escapee) + SIGNAL_HANDLER + var/atom/parent = src.parent + parent.visible_message(span_boldwarning("After a long climb, [escapee] leaps out of [parent]!")) + ADD_TRAIT(escapee, TRAIT_MOVE_FLYING, CHASM_TRAIT) //Otherwise they instantly fall back in + escapee.forceMove(get_turf(parent)) + escapee.throw_at(get_edge_target_turf(parent, pick(GLOB.alldirs)), rand(1, 10), rand(1, 10)) + REMOVE_TRAIT(escapee, TRAIT_MOVE_FLYING, CHASM_TRAIT) + escapee.Paralyze(20 SECONDS, TRUE) + UnregisterSignal(escapee, COMSIG_LIVING_REVIVE) + +#undef CHASM_TRAIT + +/** + * An abstract object which is basically just a bag that the chasm puts people inside + */ +/obj/effect/abstract/chasm_storage + name = "chasm depths" + desc = "The bottom of a hole. You shouldn't be able to interact with this." + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/datums/components/clickbox.dm b/code/datums/components/clickbox.dm index e56cd18b2a..610ef48881 100644 --- a/code/datums/components/clickbox.dm +++ b/code/datums/components/clickbox.dm @@ -21,7 +21,7 @@ /// For simple animals that have different icon states when dead. var/dead_state /// the underlay that has been added to the parent. - var/mutable_appearance/clickbox_undelay + var/mutable_appearance/clickbox_underlay /datum/component/clickbox/Initialize(icon_state = "sphere", x_offset = 0, y_offset = 0, max_scale = 2, min_scale = 0.5, dead_state) if(!isatom(parent)) @@ -33,63 +33,69 @@ src.max_scale = max_scale src.min_scale = min_scale - RegisterSignal(parent, COMSIG_ATOM_VV_MODIFY_TRANSFORM, PROC_REF(on_modify_or_update_transform)) + RegisterSignal(parent, COMSIG_ATOM_VV_MODIFY_TRANSFORM, PROC_REF(on_vv_modify_transform)) var/clickbox_icon_state = icon_state - if(dead_state && isliving(parent)) + if(isliving(parent)) var/mob/living/living_parent = parent - src.dead_state = dead_state - RegisterSignal(living_parent, COMSIG_LIVING_POST_UPDATE_TRANSFORM, PROC_REF(on_modify_or_update_transform)) - RegisterSignal(living_parent, COMSIG_MOB_DEATH, PROC_REF(on_death)) - RegisterSignal(living_parent, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) - if(living_parent.stat == DEAD) - clickbox_icon_state = dead_state + RegisterSignal(living_parent, COMSIG_LIVING_POST_UPDATE_TRANSFORM, PROC_REF(on_update_transform)) + if(dead_state) + src.dead_state = dead_state + RegisterSignal(living_parent, COMSIG_LIVING_DEATH, PROC_REF(on_death)) + RegisterSignal(living_parent, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) + if(living_parent.stat == DEAD) + clickbox_icon_state = dead_state update_underlay(clickbox_icon_state) /datum/component/clickbox/UnregisterFromParent() var/atom/movable/mov_parent = parent UnregisterSignal(mov_parent, list(COMSIG_ATOM_VV_MODIFY_TRANSFORM, COMSIG_LIVING_POST_UPDATE_TRANSFORM, COMSIG_MOB_DEATH, COMSIG_LIVING_REVIVE)) - mov_parent.underlays -= clickbox_undelay + mov_parent.underlays -= clickbox_underlay -/// Removes the old underlay and adds a new one if conditions are met. The underlay is scaled up/down if necessary -/datum/component/clickbox/proc/update_underlay(clickbox_icon_state) +/// Removes the old underlay and adds a new one. The underlay is scaled up/down if necessary +/datum/component/clickbox/proc/update_underlay(clickbox_icon_state, width, height) var/atom/movable/mov_parent = parent if(!clickbox_icon_state) - clickbox_icon_state = clickbox_undelay?.icon_state || icon_state - mov_parent.underlays -= clickbox_undelay // Remove the previous underlay. - - var/width = abs(mov_parent.transform.a) // Negative values flip the parent, so abs() is good to have here. - var/height = abs(mov_parent.transform.e) // Idem. + clickbox_icon_state = clickbox_underlay?.icon_state || icon_state + mov_parent.underlays -= clickbox_underlay // Remove the previous underlay. var/clickbox_width = 1 - if(width > max_scale) + var/abs_width = abs(width) //Taking into account inverted transform values. + if(abs_width > max_scale) clickbox_width = max_scale/width - else if(width < min_scale && width) + else if(abs_width && abs_width < min_scale) clickbox_width = min_scale/width var/clickbox_height = 1 - if(height > max_scale) + var/abs_height = abs(height) //Ditto + if(abs_height > max_scale) clickbox_height = max_scale/height - else if(height < min_scale && height) + else if(abs_height && abs_height < min_scale) clickbox_height = min_scale/height - clickbox_undelay = mutable_appearance('icons/misc/clickbox.dmi', clickbox_icon_state, CLICKBOX_LAYER, alpha = 1, appearance_flags = RESET_COLOR|RESET_ALPHA) - clickbox_undelay.transform = clickbox_undelay.transform.Scale(clickbox_width, clickbox_height) + clickbox_underlay = mutable_appearance('icons/misc/clickbox.dmi', clickbox_icon_state, CLICKBOX_LAYER, alpha = 1, appearance_flags = RESET_COLOR|RESET_ALPHA) + clickbox_underlay.transform = clickbox_underlay.transform.Scale(clickbox_width, clickbox_height) //Keeps the underlay more or less centered. - clickbox_undelay.pixel_x = x_offset * 1/clickbox_width - clickbox_undelay.pixel_y = y_offset * 1/clickbox_height - mov_parent.underlays += clickbox_undelay + clickbox_underlay.pixel_w = x_offset * 1/clickbox_width + clickbox_underlay.pixel_z = y_offset * 1/clickbox_height + mov_parent.underlays += clickbox_underlay + +/datum/component/clickbox/proc/on_vv_modify_transform(atom/source) + SIGNAL_HANDLER + var/width = source.transform.a + var/height = source.transform.e + update_underlay(clickbox_underlay.icon_state, width, height) -/datum/component/clickbox/proc/on_modify_or_update_transform(atom/source) +/datum/component/clickbox/proc/on_update_transform(mob/living/source, previous_size) SIGNAL_HANDLER - update_underlay() + update_underlay(clickbox_underlay.icon_state , source.current_size, source.current_size) /datum/component/clickbox/proc/on_death(mob/living/source) SIGNAL_HANDLER - update_underlay(dead_state) + update_underlay(dead_state, source.current_size, source.current_size) /datum/component/clickbox/proc/on_revive(mob/living/source) SIGNAL_HANDLER - update_underlay(icon_state) + update_underlay(icon_state, source.current_size, source.current_size) #undef CLICKBOX_LAYER diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 26b73353c1..8b82332ed6 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -1,3 +1,5 @@ +//port https://github.com/tgstation/tgstation/pull/89320's refactor + /datum/component/riding var/last_vehicle_move = 0 //used for move delays var/last_move_diagonal = FALSE diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 5b6afb3062..cdfe00aa18 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -62,6 +62,10 @@ SIGNAL_HANDLER if(!isliving(arrived)) return + if(lube_flags & SLIPPERY_TURF) + var/turf/turf = get_turf(source) + if(HAS_TRAIT(turf, TRAIT_TURF_IGNORE_SLIPPERY)) + return var/mob/living/victim = arrived if(!(victim.movement_type & FLYING) && victim.slip(knockdown_time, parent, lube_flags, paralyze_time, force_drop_items) && callback) callback.Invoke(victim) diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index e006b47829..a2e9cfdb3e 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -73,23 +73,23 @@ /datum/component/wet_floor/proc/update_flags() var/intensity - lube_flags = NONE + lube_flags = SLIPPERY_TURF switch(highest_strength) if(TURF_WET_WATER) intensity = 60 - lube_flags = NO_SLIP_WHEN_WALKING + lube_flags |= NO_SLIP_WHEN_WALKING if(TURF_WET_LUBE) intensity = 80 - lube_flags = SLIDE | GALOSHES_DONT_HELP + lube_flags |= SLIDE | GALOSHES_DONT_HELP if(TURF_WET_ICE) intensity = 120 - lube_flags = SLIDE | GALOSHES_DONT_HELP + lube_flags |= SLIDE | GALOSHES_DONT_HELP if(TURF_WET_PERMAFROST) intensity = 120 - lube_flags = SLIDE_ICE | GALOSHES_DONT_HELP + lube_flags |= SLIDE_ICE | GALOSHES_DONT_HELP if(TURF_WET_SUPERLUBE) intensity = 120 - lube_flags = SLIDE | GALOSHES_DONT_HELP | SLIP_WHEN_CRAWLING + lube_flags |= SLIDE | GALOSHES_DONT_HELP | SLIP_WHEN_CRAWLING else qdel(parent.GetComponent(/datum/component/slippery)) return diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 5cf4219a4d..74df1cbe8a 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -152,3 +152,4 @@ /mob/living/proc/reset_shocked() flags_1 &= ~ SHOCKED_1 + diff --git a/code/datums/elements/give_turf_traits.dm b/code/datums/elements/give_turf_traits.dm new file mode 100644 index 0000000000..a93e0783d8 --- /dev/null +++ b/code/datums/elements/give_turf_traits.dm @@ -0,0 +1,79 @@ +/// A bespoke element that adds a set of traits to the turf while occupied by at least one attached movabled. +/datum/element/give_turf_traits + element_flags = ELEMENT_DETACH|ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///A list of traits that are added to the turf while occupied. + var/list/traits + ///List of sources we are using to reapply traits when turf changes + var/list/trait_sources = list() + +/datum/element/give_turf_traits/Attach(atom/movable/target, list/traits) + . = ..() + if(!istype(target)) + return ELEMENT_INCOMPATIBLE + + src.traits = traits + + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + if(isturf(target.loc)) + add_to_occupied_turfs(target.loc, target) + +/datum/element/give_turf_traits/Detach(atom/movable/source) + UnregisterSignal(source, COMSIG_MOVABLE_MOVED) + if(isturf(source.loc)) + remove_from_occupied_turfs(source.loc, source) + return ..() + +/// Removes the trait from the old turf and adds it to the new one. +/datum/element/give_turf_traits/proc/on_moved(atom/movable/source, atom/old_loc) + SIGNAL_HANDLER + if(isturf(old_loc)) + remove_from_occupied_turfs(old_loc, source) + + if(isturf(source.loc)) + add_to_occupied_turfs(source.loc, source) + +/** + * Registers the turf signals if it was previously unoccupied and adds it to the list of occupied turfs. + * Otherwise, it just adds the movable to the assoc value of lists occupying the turf. + */ +/datum/element/give_turf_traits/proc/add_to_occupied_turfs(turf/location, atom/movable/source) + var/trait_source = REF(source) + if(isnull(trait_sources) || isnull(trait_sources[location])) + RegisterSignal(location, COMSIG_TURF_CHANGE, PROC_REF(pre_change_turf)) + + LAZYADDASSOCLIST(trait_sources, location, trait_source) + var/update_movespeeds = (TRAIT_TURF_IGNORE_SLOWDOWN in traits) && !HAS_TRAIT(location, TRAIT_TURF_IGNORE_SLOWDOWN) + for(var/trait in traits) + ADD_TRAIT(location, trait, trait_source) + if(update_movespeeds) + for(var/mob/living/living in location) + living.update_turf_movespeed() + +/** + * Unregisters the turf signals if it's no longer unoccupied and removes it from the list of occupied turfs. + * Otherwise, it just removes the movable from the assoc value of lists occupying the turf. + */ +/datum/element/give_turf_traits/proc/remove_from_occupied_turfs(turf/location, atom/movable/source) + var/trait_source = REF(source) + LAZYREMOVEASSOC(trait_sources, location, trait_source) + if(isnull(trait_sources) || isnull(trait_sources[location])) + UnregisterSignal(location, COMSIG_TURF_CHANGE) + + for(var/trait in traits) + REMOVE_TRAIT(location, trait, trait_source) + + if((TRAIT_TURF_IGNORE_SLOWDOWN in traits) && !HAS_TRAIT(location, TRAIT_TURF_IGNORE_SLOWDOWN)) + for(var/mob/living/living in location) + living.update_turf_movespeed() + +/// Signals are carried over when the turf is changed, but traits aren't, so they've to be readded post-change. +/datum/element/give_turf_traits/proc/pre_change_turf(turf/changed, path, list/new_baseturfs, flags, list/post_change_callbacks) + SIGNAL_HANDLER + post_change_callbacks += CALLBACK(src, PROC_REF(reoccupy_turf)) + +/// Reapply turf traits to the provided turf +/datum/element/give_turf_traits/proc/reoccupy_turf(turf/changed) + for(var/trait in traits) + for(var/source in trait_sources[changed]) + ADD_TRAIT(changed, trait, source) diff --git a/code/datums/elements/immerse.dm b/code/datums/elements/immerse.dm new file mode 100644 index 0000000000..49730cde18 --- /dev/null +++ b/code/datums/elements/immerse.dm @@ -0,0 +1,312 @@ +/// A list of movables that shouldn't be affected by the element, either because it'd look bad or barely perceptible +GLOBAL_LIST_INIT(immerse_ignored_movable, typecacheof(list( + /obj/effect, + /mob/dead, + /obj/projectile, + /obj/structure/platform, + /obj/structure/railing, +))) + +/// A visual element that makes movables entering the attached turfs look immersed into that turf. +/// May the gods forgive me for the bullshit you're about to witness +/datum/element/immerse + element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE + argument_hash_start_idx = 2 + + /// An association list of turfs that have this element attached and their affected contents. + var/list/attached_turf_contents = list() + + /// A list of generated immersion masks based on object width, height and whever they're fully immersed underwater + var/list/immersion_masks = list() + /// An assoc list of instances of /atom/movable/immerse_mask used as abstract effect relays, because god is dead + var/list/generated_visual_overlays = list() + /// icon_state used as a mask by our turf + var/mask_icon = "immerse" + /// Alpha of the mask, to make the liquid partially transparent + var/alpha = 180 + +/datum/element/immerse/Attach(turf/target, mask_icon = "immerse", alpha = 180) + . = ..() + if(!isturf(target) || !mask_icon) + return ELEMENT_INCOMPATIBLE + + src.mask_icon = mask_icon + src.alpha = alpha + + RegisterSignal(target, SIGNAL_ADDTRAIT(TRAIT_IMMERSE_STOPPED), PROC_REF(stop_immersion)) + RegisterSignal(target, SIGNAL_REMOVETRAIT(TRAIT_IMMERSE_STOPPED), PROC_REF(start_immersion)) + + if(!HAS_TRAIT(target, TRAIT_IMMERSE_STOPPED)) + start_immersion(target) + +/datum/element/immerse/Detach(turf/source) + UnregisterSignal(source, list(SIGNAL_ADDTRAIT(TRAIT_IMMERSE_STOPPED), SIGNAL_REMOVETRAIT(TRAIT_IMMERSE_STOPPED))) + if(!HAS_TRAIT(source, TRAIT_IMMERSE_STOPPED)) + stop_immersion(source) + return ..() + + +/// Makes the element start affecting the turf and its contents. Called on Attach() or when TRAIT_IMMERSE_STOPPED is removed. +/datum/element/immerse/proc/start_immersion(turf/source) + SIGNAL_HANDLER + RegisterSignals(source, list(COMSIG_ATOM_ABSTRACT_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON), PROC_REF(on_init_or_entered)) + RegisterSignal(source, COMSIG_ATOM_ABSTRACT_EXITED, PROC_REF(on_atom_exited)) + attached_turf_contents += source + for(var/atom/movable/movable as anything in source) + if(!(movable.flags_1 & INITIALIZED_1) || movable.invisibility >= INVISIBILITY_OBSERVER) + continue + on_init_or_entered(source, movable) + +/// Stops the element from affecting on the turf and its contents. Called on Detach() or when TRAIT_IMMERSE_STOPPED is added. +/datum/element/immerse/proc/stop_immersion(turf/source) + SIGNAL_HANDLER + UnregisterSignal(source, list(COMSIG_ATOM_ABSTRACT_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, COMSIG_ATOM_ABSTRACT_EXITED)) + for(var/atom/movable/movable as anything in attached_turf_contents[source]) + remove_from_element(source, movable) + attached_turf_contents -= source + +/** + * If the movable is within the right layers and planes, not in the list of movable types to ignore, + * or already affected by the element for that matter, signals will be registered and, + * unless the movable is flying, it'll appear as if immersed in that water. + */ +/datum/element/immerse/proc/on_init_or_entered(turf/source, atom/movable/movable) + SIGNAL_HANDLER + if(QDELETED(movable)) + return + + if(HAS_TRAIT(movable, TRAIT_IMMERSED)|| HAS_TRAIT(movable, TRAIT_WALLMOUNTED)) + return + if(!ISINRANGE(PLANE_TO_TRUE(movable.plane), FLOOR_PLANE, GAME_PLANE)) + return + + // First, floor plane objects use TOPDOWN_LAYER, second this check shouldn't apply to them anyway. + var/layer_to_check = IS_TOPDOWN_PLANE(source.plane) ? TOPDOWN_ABOVE_WATER_LAYER : ABOVE_ALL_MOB_LAYER + if(movable.layer >= layer_to_check) + return + if(is_type_in_typecache(movable, GLOB.immerse_ignored_movable)) + return + + var/atom/movable/buckled = null + if(isliving(movable)) + var/mob/living/living_mob = movable + buckled = living_mob.buckled + living_mob.add_movespeed_modifier(/datum/movespeed_modifier/wading) + RegisterSignal(living_mob, COMSIG_LIVING_SET_BUCKLED, PROC_REF(on_set_buckled)) + RegisterSignal(living_mob, COMSIG_LIVING_UPDATE_OFFSETS, PROC_REF(on_update_offsets)) + RegisterSignal(movable, COMSIG_LIVING_POST_UPDATE_TRANSFORM, PROC_REF(on_update_transform)) + + RegisterSignal(movable, COMSIG_ATOM_SPIN_ANIMATION, PROC_REF(on_spin_animation)) + RegisterSignal(movable, COMSIG_QDELETING, PROC_REF(on_movable_qdel)) + try_immerse(movable, buckled) + LAZYADD(attached_turf_contents[source], movable) + ADD_TRAIT(movable, TRAIT_IMMERSED, ELEMENT_TRAIT(src)) + +/datum/element/immerse/proc/on_movable_qdel(atom/movable/source) + SIGNAL_HANDLER + remove_from_element(source.loc, source) + +/** + * Called by init_or_entered() and on_set_buckled(). + * This applies the overlay if neither the movable or whatever is buckled to (exclusive to living mobs) are flying + * as well as movetype signals when the movable isn't buckled. + */ +/datum/element/immerse/proc/try_immerse(atom/movable/movable, atom/movable/buckled) + var/atom/movable/to_check = buckled || movable + if(!(to_check.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) && !movable.throwing) + add_immerse_overlay(movable) + if(buckled) + return + RegisterSignal(movable, COMSIG_MOVETYPE_FLAG_ENABLED, PROC_REF(on_move_flag_enabled)) + RegisterSignal(movable, COMSIG_MOVETYPE_FLAG_DISABLED, PROC_REF(on_move_flag_disabled)) + RegisterSignal(movable, COMSIG_MOVABLE_POST_THROW, PROC_REF(on_throw)) + RegisterSignal(movable, COMSIG_MOVABLE_THROW_LANDED, PROC_REF(on_throw_landed)) + +/// Called by on_set_buckled() and remove_from_element(). +/// This removes the filter and signals from the movable unless it doesn't have them. +/datum/element/immerse/proc/try_unimmerse(atom/movable/movable, atom/movable/buckled) + var/atom/movable/to_check = buckled || movable + if(!(to_check.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) && !movable.throwing) + remove_immerse_overlay(movable) + if(buckled) + return + if(isliving(movable)) + var/mob/living/living_mob = movable + living_mob.remove_movespeed_modifier(/datum/movespeed_modifier/wading) + UnregisterSignal(movable, list( + COMSIG_MOVETYPE_FLAG_ENABLED, + COMSIG_MOVETYPE_FLAG_DISABLED, + COMSIG_MOVABLE_POST_THROW, + COMSIG_MOVABLE_THROW_LANDED + )) + +/datum/element/immerse/proc/on_set_buckled(mob/living/source, atom/movable/new_buckled) + SIGNAL_HANDLER + try_unimmerse(source, source.buckled) + try_immerse(source, new_buckled) + +/// Removes the overlay from mob and bucklees is flying. +/datum/element/immerse/proc/on_move_flag_enabled(atom/movable/source, flag, old_movement_type) + SIGNAL_HANDLER + if(!(flag & MOVETYPES_NOT_TOUCHING_GROUND) || (old_movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || source.throwing) + return + remove_immerse_overlay(source) + for(var/mob/living/buckled_mob as anything in source.buckled_mobs) + remove_immerse_overlay(buckled_mob) + +/// Works just like on_move_flag_enabled, except it only has to check that movable isn't flying +/datum/element/immerse/proc/on_throw(atom/movable/source) + SIGNAL_HANDLER + if(source.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) + return + remove_immerse_overlay(source) + for(var/mob/living/buckled_mob as anything in source.buckled_mobs) + remove_immerse_overlay(buckled_mob) + +/// Readds the overlay to the mob and bucklees if no longer flying. +/datum/element/immerse/proc/on_move_flag_disabled(atom/movable/source, flag, old_movement_type) + SIGNAL_HANDLER + if(!(flag & MOVETYPES_NOT_TOUCHING_GROUND) || (source.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || source.throwing) + return + add_immerse_overlay(source) + for(var/mob/living/buckled_mob as anything in source.buckled_mobs) + add_immerse_overlay(buckled_mob) + +/// Works just like on_move_flag_disabled, except it only has to check that movable isn't flying +/datum/element/immerse/proc/on_throw_landed(atom/movable/source) + SIGNAL_HANDLER + if(source.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) + return + add_immerse_overlay(source) + for(var/mob/living/buckled_mob as anything in source.buckled_mobs) + add_immerse_overlay(buckled_mob) + +/// Called when a movable exits the turf. If its new location is not in the list of turfs with this element, +/// remove the movable from the element. +/datum/element/immerse/proc/on_atom_exited(turf/source, atom/movable/exited, direction) + SIGNAL_HANDLER + if(!attached_turf_contents[exited.loc]) + remove_from_element(source, exited) + return + LAZYREMOVE(attached_turf_contents[source], exited) + LAZYADD(attached_turf_contents[exited.loc], exited) + +//// Remove any signal, overlay, trait given to the movable and reference to it within the element. +/datum/element/immerse/proc/remove_from_element(turf/source, atom/movable/movable) + var/atom/movable/buckled = null + if(isliving(movable)) + var/mob/living/living_mob = movable + buckled = living_mob.buckled + + try_unimmerse(movable, buckled) + LAZYREMOVE(attached_turf_contents[source], movable) + + UnregisterSignal(movable, list(COMSIG_LIVING_SET_BUCKLED, COMSIG_QDELETING, COMSIG_LIVING_UPDATE_OFFSETS, COMSIG_ATOM_SPIN_ANIMATION, COMSIG_LIVING_POST_UPDATE_TRANSFORM)) + REMOVE_TRAIT(movable, TRAIT_IMMERSED, ELEMENT_TRAIT(src)) + +/// Generate a mask filter mutable to use as render_source for the alpha filter based on provided width, height and immersion state +/datum/element/immerse/proc/generate_immerse_mask(width, height, is_below_water) + var/clean_height = height + width = ceil(width / ICON_SIZE_X) * ICON_SIZE_X + height = ceil(height / ICON_SIZE_Y) * ICON_SIZE_Y + + var/mask_key = "[width]-[height]-[is_below_water]" + var/mutable_appearance/target_mask = immersion_masks[mask_key] + if (target_mask) + return target_mask + + if (width == ICON_SIZE_X && height == ICON_SIZE_Y) + target_mask = mutable_appearance('icons/effects/effects.dmi', mask_icon, alpha = alpha) + immersion_masks[mask_key] = target_mask + return target_mask + + var/icon/column_icon = icon('icons/effects/effects.dmi', mask_icon) + var/y_tiles = 1 + if (height != ICON_SIZE_Y) + column_icon.Crop(1, 1, ICON_SIZE_X, ICON_SIZE_Y) // Use base icon and crop it out so animation frames respect dmi's delays + y_tiles = ceil((height / ICON_SIZE_Y - 1) / 2) + 1 + column_icon.Scale(ICON_SIZE_X, y_tiles * ICON_SIZE_Y) + var/icon/effect_icon = icon('icons/effects/effects.dmi', mask_icon) + var/icon/fill_icon = icon('icons/effects/alphacolors.dmi', "white") + for (var/y_tile in 1 to y_tiles - 1) + column_icon.Blend(fill_icon, ICON_OVERLAY, 1, 1 + (y_tile - 1) * ICON_SIZE_Y) + column_icon.Blend(effect_icon, ICON_OVERLAY, 1, 1 + (y_tiles - 1) * ICON_SIZE_Y) + + var/icon/immerse_icon = null + if (width == ICON_SIZE_X) + immerse_icon = column_icon + else + immerse_icon = icon('icons/effects/effects.dmi', mask_icon) // Use base icon and crop it out so animation frames respect dmi's delays + immerse_icon.Crop(1, 1, ICON_SIZE_X, ICON_SIZE_Y) + immerse_icon.Scale(ceil(width / ICON_SIZE_X) * ICON_SIZE_X, ceil(height / ICON_SIZE_Y) * ICON_SIZE_Y) + for (var/x_tile in 1 to ceil(width / ICON_SIZE_X)) + immerse_icon.Blend(column_icon, ICON_OVERLAY, 1 + (x_tile - 1) * ICON_SIZE_X, 1) + target_mask = mutable_appearance(immerse_icon) + target_mask.alpha = alpha + target_mask.pixel_y = -(y_tiles - 1) * ICON_SIZE_Y + floor((clean_height - ICON_SIZE_Y) / 2) + immersion_masks[mask_key] = target_mask + return target_mask + +/datum/element/immerse/proc/add_immerse_overlay(atom/movable/movable) + // This determines if the overlay should cover the entire surface of the object or not + var/layer_to_check = IS_TOPDOWN_PLANE(movable.plane) ? TOPDOWN_WATER_LEVEL_LAYER : WATER_LEVEL_LAYER + var/is_below_water = (movable.layer < layer_to_check) ? "underwater-" : "" + // Tall mobs still only get covered to their feet, unless they're offset down + var/mutable_appearance/immerse_mask = generate_immerse_mask(movable.get_cached_width(), max(ICON_SIZE_Y - movable.pixel_z, ICON_SIZE_Y), is_below_water) + var/atom/movable/immerse_mask/effect_relay = generated_visual_overlays[movable] + if (!effect_relay) + effect_relay = new(movable) + movable.vis_contents += effect_relay + generated_visual_overlays[movable] = effect_relay + var/mutable_appearance/mask_copy = new(immerse_mask) + effect_relay.appearance = mask_copy + effect_relay.render_target = "*immerse_[REF(movable)]" + SEND_SIGNAL(movable, COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY, effect_relay) + // Should always render above any other filters that could be adding visuals + movable.add_filter("immerse_mask", INFINITY, alpha_mask_filter(y = -floor((movable.get_cached_height() - ICON_SIZE_Y) / 2) - movable.pixel_z, render_source = effect_relay.render_target, flags = MASK_INVERSE)) + +/datum/element/immerse/proc/remove_immerse_overlay(atom/movable/movable, deleting = TRUE) + movable.remove_filter("immerse_mask") + if (!deleting) + return + var/atom/movable/immerse_mask/mask = generated_visual_overlays[movable] + movable.vis_contents -= mask + generated_visual_overlays -= movable + QDEL_NULL(mask) + +/// A band-aid to keep the (unique) visual overlay from scaling and rotating along with its owner. I'm sorry. +/datum/element/immerse/proc/on_update_transform(mob/living/source, resize, new_lying_angle, is_opposite_angle) + SIGNAL_HANDLER + var/matrix/new_transform = matrix() + new_transform.Scale(1 / source.current_size) + new_transform.Turn(-new_lying_angle) + var/atom/movable/immerse_mask/effect_relay = generated_visual_overlays[source] + var/mutable_appearance/relay_appearance = new(effect_relay.appearance) + relay_appearance.transform = new_transform + effect_relay.appearance = relay_appearance + +/// Spin the overlay in the opposite direction so it doesn't look like it's spinning at all. +/datum/element/immerse/proc/on_spin_animation(atom/source, speed, loops, segments, segment) + SIGNAL_HANDLER + var/atom/movable/immerse_mask/immerse_mask = generated_visual_overlays[source] + immerse_mask.do_spin_animation(speed, loops, segments, -segment) + +/datum/element/immerse/proc/on_update_offsets(mob/living/source, new_x, new_y, new_w, new_z, animate) + SIGNAL_HANDLER + var/old_height = ceil(max(ICON_SIZE_Y - source.pixel_z, ICON_SIZE_Y) / ICON_SIZE_Y) + var/new_height = ceil(max(ICON_SIZE_Y - new_z, ICON_SIZE_Y) / ICON_SIZE_Y) + if (old_height != new_height) + remove_immerse_overlay(source, FALSE) + add_immerse_overlay(source) + + if (source.pixel_z == new_z) + return + + if (animate) + source.transition_filter("immerse_mask", list("y" = -floor((source.get_cached_height() - ICON_SIZE_Y) / 2) - new_z), time = UPDATE_TRANSFORM_ANIMATION_TIME) + else + source.modify_filter("immerse_mask", list("y" = -floor((source.get_cached_height() - ICON_SIZE_Y) / 2) - new_z)) + +/atom/movable/immerse_mask + appearance_flags = RESET_TRANSFORM|RESET_COLOR|RESET_ALPHA|KEEP_APART + vis_flags = VIS_HIDE diff --git a/code/datums/elements/movetype_handler.dm b/code/datums/elements/movetype_handler.dm index 0f43fffdc4..ccaedf0976 100644 --- a/code/datums/elements/movetype_handler.dm +++ b/code/datums/elements/movetype_handler.dm @@ -97,13 +97,8 @@ ///Floats the movable up and down. Not a comsig proc. /datum/element/movetype_handler/proc/float(atom/movable/target) - animate(target, pixel_y = 2, time = 10, loop = -1, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - animate(pixel_y = -2, time = 10, loop = -1, flags = ANIMATION_RELATIVE) + DO_FLOATING_ANIM(target) /// Stops the above. Also not a comsig proc. /datum/element/movetype_handler/proc/stop_floating(atom/movable/target) - var/final_pixel_y = target.base_pixel_y - if(isliving(target)) - var/mob/living/living_target = target - final_pixel_y += living_target.get_standard_pixel_y_offset() - animate(target, pixel_y = final_pixel_y, time = 1 SECONDS) + STOP_FLOATING_ANIM(target) diff --git a/code/datums/elements/swimming_tile.dm b/code/datums/elements/swimming_tile.dm new file mode 100644 index 0000000000..8a00658fd8 --- /dev/null +++ b/code/datums/elements/swimming_tile.dm @@ -0,0 +1,159 @@ +/// A tile which drains stamina of people crossing it and deals oxygen damage to people who are prone inside of it +/datum/element/swimming_tile + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE + /// How much stamina does it cost to enter this tile? + var/stamina_entry_cost + /// How fast do we kill people who collapse? + var/ticking_oxy_damage + /// Probability to exhaust our swimmer + var/exhaust_swimmer_prob + /// Tracked list of all mobs that are present in our turfs + var/list/mob/swimmers = list() + +/datum/element/swimming_tile/Destroy(force) + swimmers = null + return ..() + +/datum/element/swimming_tile/Attach(turf/target, stamina_entry_cost = 7, ticking_oxy_damage = 2, exhaust_swimmer_prob = 30) + . = ..() + if(!isturf(target)) + return ELEMENT_INCOMPATIBLE + + src.stamina_entry_cost = stamina_entry_cost + //src.ticking_stamina_cost = ticking_stamina_cost + src.ticking_oxy_damage = ticking_oxy_damage + src.exhaust_swimmer_prob = exhaust_swimmer_prob + + RegisterSignals(target, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON), PROC_REF(enter_water)) + RegisterSignal(target, COMSIG_ATOM_EXITED, PROC_REF(out_of_water)) + + for(var/mob/living/drownee in target.contents) + if(!(drownee.flags_1 & INITIALIZED_1)) //turfs initialize before movables + continue + enter_water(target, drownee) + +/datum/element/swimming_tile/Detach(turf/source) + UnregisterSignal(source, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, COMSIG_ATOM_EXITED)) + for(var/mob/living/dry_guy in source.contents) + out_of_water(source, dry_guy) + return ..() + +/// When something enters the water set up to start drowning it +/datum/element/swimming_tile/proc/enter_water(atom/source, mob/living/swimmer) + SIGNAL_HANDLER + + if(!istype(swimmer)) + return + + if(QDELETED(swimmer)) + return + + if(HAS_TRAIT(swimmer, TRAIT_IMMERSED)) + dip_in(swimmer) + + if(swimmer in swimmers) + return + + RegisterSignal(swimmer, SIGNAL_ADDTRAIT(TRAIT_IMMERSED), PROC_REF(dip_in)) + RegisterSignal(swimmer, COMSIG_QDELETING, PROC_REF(on_swimmer_del)) + swimmers |= swimmer + +/// When something exits the water it probably shouldn't drowning +/datum/element/swimming_tile/proc/out_of_water(atom/source, mob/living/landlubber) + SIGNAL_HANDLER + UnregisterSignal(landlubber, list(SIGNAL_ADDTRAIT(TRAIT_IMMERSED), COMSIG_QDELETING)) + swimmers -= landlubber + +/datum/element/swimming_tile/proc/on_swimmer_del(atom/source) + SIGNAL_HANDLER + out_of_water(null, source) + +/// When we've validated that someone is actually in the water start drowning the-I mean, start swimming! +/datum/element/swimming_tile/proc/dip_in(mob/living/floater) + SIGNAL_HANDLER + + //((!HAS_TRAIT(floater, TRAIT_SWIMMER) && (isnull(floater.buckled) || (!isvehicle(floater.buckled) && !ismob(floater.buckled))) && prob(exhaust_swimmer_prob))) + if (((isnull(floater.buckled) && !ismob(floater.buckled))) && prob(exhaust_swimmer_prob)) + + //First, we determine our effective stamina entry cost baseline. This includes the value from the water, as well as any heavy clothing being worn. The strength trait halves this value. + //effective_stamina_entry_cost = HAS_TRAIT(floater, TRAIT_STRENGTH) ? (stamina_entry_cost + clothing_weight(floater)) : ((stamina_entry_cost + clothing_weight(floater)) / 2) + + //Being in high gravity doubles our effective stamina cost + var/gravity_modifier = floater.has_gravity() > STANDARD_GRAVITY ? 2 : 1 + + + floater.apply_damage(clamp((stamina_entry_cost) * gravity_modifier, 1, 100), STAMINA, no_animation = TRUE) + floater.apply_status_effect(/datum/status_effect/exercised, 15 SECONDS) + + floater.apply_status_effect(/datum/status_effect/swimming, ticking_oxy_damage) // Apply the status anyway for when they stop riding + +/* clothing weight needs an audit before this +/// The weight of our swimmers clothing, including slowdown, impacts the amount of stamina damage dealt on dipping in. +/datum/element/swimming_tile/proc/clothing_weight(mob/living/floater) + var/extra_stamina_weight = 0 + for(var/obj/item/equipped_item in floater.get_equipped_items()) + if(ispath(equipped_item, /obj/item/clothing/under/shorts)) + continue + extra_stamina_weight += (clamp(equipped_item.w_class - 2, 0, 100) + equipped_item.slowdown) //Clothing that speeds us up reduces the stamina drain! + return extra_stamina_weight +*/ + + +///Added by the swimming_tile element. Drains stamina over time until the owner stops being immersed. Starts drowning them if they are prone or small. +/datum/status_effect/swimming + id = "swimming" + alert_type = null + duration = STATUS_EFFECT_PERMANENT + status_type = STATUS_EFFECT_UNIQUE + tick_interval = 5 SECONDS + /// How much damage do we do every tick interval? + //var/stamina_per_interval + /// How much oxygen do we lose every tick interval in which we are drowning? + var/oxygen_per_interval + /// Probability that we lose breaths while drowning + var/drowning_process_probability = 20 + +/datum/status_effect/swimming/on_creation(mob/living/new_owner, ticking_oxy_damage = 2) + . = ..() + //stamina_per_interval = ticking_stamina_cost + oxygen_per_interval = ticking_oxy_damage + //if (!HAS_TRAIT(owner, TRAIT_SWIMMER)) + owner.add_movespeed_modifier(/datum/movespeed_modifier/swimming_deep) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_IMMERSED), PROC_REF(stop_swimming)) + +/datum/status_effect/swimming/on_remove() + owner.remove_movespeed_modifier(/datum/movespeed_modifier/swimming_deep) + UnregisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_IMMERSED)) + +/datum/status_effect/swimming/tick(seconds_between_ticks) + //if (HAS_TRAIT(owner, TRAIT_MOB_ELEVATED)) + // return + if (owner.buckled) // We're going to generously assume that being buckled to any mob or vehicle leaves you above water + if (ismob(owner.buckled)) + return + + var/gravity_modifier = owner.has_gravity() > STANDARD_GRAVITY ? 2 : 1 + + var/under_pressure = prob(drowning_process_probability * gravity_modifier) + + // You might not be swimming but you can breathe + if (HAS_TRAIT(owner, TRAIT_NOBREATH) || (owner.mob_size >= MOB_SIZE_HUMAN && owner.body_position == STANDING_UP)) + return + if (iscarbon(owner)) + var/mob/living/carbon/carbon_owner = owner + if (carbon_owner.internal || carbon_owner.external) + return + if (isbasicmob(owner)) + var/mob/living/basic/basic_owner = owner + if (basic_owner.unsuitable_atmos_damage == 0) + return // This mob doesn't "breathe" + owner.apply_damage(oxygen_per_interval * seconds_between_ticks, OXY) + if(under_pressure) + owner.losebreath += oxygen_per_interval + +/// When we're not in the water any more this don't matter +/datum/status_effect/swimming/proc/stop_swimming() + SIGNAL_HANDLER + qdel(src) diff --git a/code/datums/elements/watery_tile.dm b/code/datums/elements/watery_tile.dm new file mode 100644 index 0000000000..f53ce2a62c --- /dev/null +++ b/code/datums/elements/watery_tile.dm @@ -0,0 +1,81 @@ +/datum/element/watery_tile + element_flags = ELEMENT_DETACH + /// List of atoms that are present in this element's turfs + var/list/atom/movable/wet_dogs = list() + +/datum/element/watery_tile/Destroy(force) + wet_dogs = null + return ..() + +/datum/element/watery_tile/Attach(turf/target) + . = ..() + if(!isturf(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignals(target, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON), PROC_REF(enter_water)) + RegisterSignal(target, COMSIG_ATOM_EXITED, PROC_REF(out_of_water)) + for(var/atom/movable/movable as anything in target.contents) + if(!(movable.flags_1 & INITIALIZED_1) || movable.invisibility >= INVISIBILITY_OBSERVER) //turfs initialize before movables + continue + enter_water(target, movable) + +/datum/element/watery_tile/Detach(turf/source) + UnregisterSignal(source, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, COMSIG_ATOM_EXITED)) + for(var/atom/movable/movable as anything in source.contents) + out_of_water(source, movable) + return ..() + +/datum/element/watery_tile/proc/enter_water(atom/source, atom/movable/entered) + SIGNAL_HANDLER + + if(QDELETED(entered)) + return + + if(HAS_TRAIT(entered, TRAIT_IMMERSED)) + dip_in(entered) + + if(entered in wet_dogs) + return + + RegisterSignal(entered, SIGNAL_ADDTRAIT(TRAIT_IMMERSED), PROC_REF(dip_in)) + RegisterSignal(entered, COMSIG_QDELETING, PROC_REF(on_content_del)) + if(isliving(entered)) + RegisterSignal(entered, SIGNAL_REMOVETRAIT(TRAIT_IMMERSED), PROC_REF(dip_out)) + wet_dogs |= entered + +/datum/element/watery_tile/proc/dip_in(atom/movable/source) + SIGNAL_HANDLER + if(isobj(source)) + var/obj/target = source + target.extinguish() + if(!isliving(source)) + return + var/mob/living/our_mob = source + our_mob.adjust_wet_stacks(3) + our_mob.apply_status_effect(/datum/status_effect/watery_tile_wetness) + +/datum/element/watery_tile/proc/out_of_water(atom/source, atom/movable/gone) + SIGNAL_HANDLER + on_content_del(gone) + if(isliving(gone)) + dip_out(gone) + +/datum/element/watery_tile/proc/on_content_del(atom/movable/source) + SIGNAL_HANDLER + UnregisterSignal(source, list(SIGNAL_ADDTRAIT(TRAIT_IMMERSED), SIGNAL_REMOVETRAIT(TRAIT_IMMERSED), COMSIG_QDELETING)) + wet_dogs -= source + +/datum/element/watery_tile/proc/dip_out(mob/living/source) + SIGNAL_HANDLER + source.remove_status_effect(/datum/status_effect/watery_tile_wetness) + +///Added by the watery_tile element. Keep adding wet stacks over time until removed from the watery turf. +/datum/status_effect/watery_tile_wetness + id = "watery_tile_wetness" + alert_type = null + duration = STATUS_EFFECT_PERMANENT + status_type = STATUS_EFFECT_UNIQUE + +/datum/status_effect/watery_tile_wetness/tick(seconds_between_ticks) + . = ..() + owner.adjust_wet_stacks(1) diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index f936839887..5082848826 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -351,16 +351,14 @@ if(..()) return ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) - owner.resize = 1.25 - owner.update_transform() + owner.update_transform(1.25) owner.visible_message(span_danger("[owner] suddenly grows!"), span_notice("Everything around you seems to shrink..")) /datum/mutation/human/gigantism/on_losing(mob/living/carbon/human/owner) if(..()) return REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) - owner.resize = 0.8 - owner.update_transform() + owner.update_transform(0.8) owner.visible_message(span_danger("[owner] suddenly shrinks!"), span_notice("Everything around you seems to grow..")) /datum/mutation/human/spastic diff --git a/code/datums/proximity_monitor/proximity_monitor.dm b/code/datums/proximity_monitor/proximity_monitor.dm index d099dc843f..f3b680c85b 100644 --- a/code/datums/proximity_monitor/proximity_monitor.dm +++ b/code/datums/proximity_monitor/proximity_monitor.dm @@ -11,6 +11,7 @@ var/static/list/loc_connections = list( COMSIG_ATOM_ENTERED = PROC_REF(on_entered), COMSIG_ATOM_EXITED = PROC_REF(on_uncrossed), + COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON = PROC_REF(on_entered), ) /datum/proximity_monitor/New(atom/_host, range, _ignore_if_not_on_turf = TRUE) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index ff3fa78721..863f0174b2 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -88,7 +88,7 @@ /datum/status_effect/blooddrunk id = "blooddrunk" duration = 10 - tick_interval = 0 + tick_interval = -1 alert_type = /atom/movable/screen/alert/status_effect/blooddrunk var/last_health = 0 var/last_bruteloss = 0 @@ -387,7 +387,7 @@ id = "concealed" var/concealment_power = 75 alert_type = /atom/movable/screen/alert/status_effect/concealed - tick_interval = 1 + tick_interval = 2 /atom/movable/screen/alert/status_effect/concealed name = "Concealed" diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index eae5afa1df..f8fdf90045 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -3,7 +3,7 @@ //Largely negative status effects go here, even if they have small benificial effects //STUN EFFECTS /datum/status_effect/incapacitating - tick_interval = 0 + tick_interval = -1 status_type = STATUS_EFFECT_REPLACE alert_type = null var/needs_update_stat = FALSE @@ -236,7 +236,7 @@ /datum/status_effect/pacify id = "pacify" status_type = STATUS_EFFECT_REPLACE - tick_interval = 1 + tick_interval = 2 duration = 100 alert_type = null @@ -612,7 +612,7 @@ id = "go_away" duration = 100 status_type = STATUS_EFFECT_REPLACE - tick_interval = 1 + tick_interval = 2 alert_type = /atom/movable/screen/alert/status_effect/go_away var/direction @@ -635,7 +635,7 @@ id = "fake_virus" duration = 1800//3 minutes status_type = STATUS_EFFECT_REPLACE - tick_interval = 1 + tick_interval = 2 alert_type = null var/msg_stage = 0//so you dont get the most intense messages immediately diff --git a/code/datums/status_effects/debuffs/fire_stacks.dm b/code/datums/status_effects/debuffs/fire_stacks.dm index 8a96052cbf..b7aee1f2c5 100644 --- a/code/datums/status_effects/debuffs/fire_stacks.dm +++ b/code/datums/status_effects/debuffs/fire_stacks.dm @@ -126,7 +126,7 @@ /// Type of mob light emitter we use when on fire var/firelight_type = /obj/effect/dummy/lighting_obj/moblight/fire -/datum/status_effect/fire_handler/fire_stacks/tick(seconds_per_tick, times_fired) +/datum/status_effect/fire_handler/fire_stacks/tick(seconds_between_ticks) if(stacks <= 0) qdel(src) return TRUE @@ -135,9 +135,9 @@ return TRUE if(iscyborg(owner)) - adjust_stacks(-0.55 * seconds_per_tick) + adjust_stacks(-0.55 * seconds_between_ticks) else - adjust_stacks(-0.05 * seconds_per_tick) + adjust_stacks(-0.05 * seconds_between_ticks) if(stacks <= 0) qdel(src) @@ -148,34 +148,33 @@ qdel(src) return TRUE - deal_damage(seconds_per_tick, times_fired) + deal_damage(seconds_between_ticks) /** * Proc that handles damage dealing and all special effects * * Arguments: * - seconds_per_tick - * - times_fired * */ -/datum/status_effect/fire_handler/fire_stacks/proc/deal_damage(seconds_per_tick, times_fired) - owner.on_fire_stack(seconds_per_tick, times_fired, src) +/datum/status_effect/fire_handler/fire_stacks/proc/deal_damage(seconds_between_ticks) + owner.on_fire_stack(seconds_between_ticks, src) var/turf/location = get_turf(owner) - location.hotspot_expose(700, 25 * seconds_per_tick, TRUE) + location.hotspot_expose(700, 25 * seconds_between_ticks, TRUE) /** * Used to deal damage to humans and count their protection. * * Arguments: * - seconds_per_tick - * - times_fired + * - no_protection: When set to TRUE, fire will ignore any possible fire protection * */ -/datum/status_effect/fire_handler/fire_stacks/proc/harm_human(seconds_per_tick, times_fired, no_protection = FALSE) +/datum/status_effect/fire_handler/fire_stacks/proc/harm_human(seconds_between_ticks, no_protection = FALSE) var/mob/living/carbon/human/victim = owner var/thermal_protection = victim.get_thermal_protection() @@ -183,12 +182,12 @@ if(thermal_protection >= FIRE_IMMUNITY_MAX_TEMP_PROTECT) return if(thermal_protection >= FIRE_SUIT_MAX_TEMP_PROTECT) - victim.adjust_bodytemperature(5.5 * seconds_per_tick) + victim.adjust_bodytemperature(5.5 * seconds_between_ticks) return - victim.adjust_bodytemperature((victim.dna.species.bodytemp_heating_rate_max + (stacks * 12)) * 0.5 * seconds_per_tick) + victim.adjust_bodytemperature((victim.dna.species.bodytemp_heating_rate_max + (stacks * 12)) * 0.5 * seconds_between_ticks) victim.apply_damage((stacks * 0.5), FIRE, blocked = victim.run_armor_check(null, "fire", armour_penetration=stacks*5, silent=TRUE), spread_damage = TRUE) - if(SPT_PROB(20, seconds_per_tick)) + if(SPT_PROB(20, seconds_between_ticks)) var/obj/item/bodypart/it_burns = victim.get_bodypart(pick(BODY_ZONE_L_ARM,BODY_ZONE_L_LEG, BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_CHEST, BODY_ZONE_HEAD)) if(it_burns) var/datum/wound/burn_injury @@ -277,8 +276,8 @@ enemy_types = list(/datum/status_effect/fire_handler/fire_stacks) stack_modifier = -1 -/datum/status_effect/fire_handler/wet_stacks/tick(seconds_per_tick) - adjust_stacks(-0.5 * seconds_per_tick) +/datum/status_effect/fire_handler/wet_stacks/tick(seconds_between_ticks) + adjust_stacks(-0.5 * seconds_between_ticks) if(stacks <= 0) qdel(src) diff --git a/code/datums/status_effects/debuffs/jittering.dm b/code/datums/status_effects/debuffs/jittering.dm index b665341787..a269e9bf32 100644 --- a/code/datums/status_effects/debuffs/jittering.dm +++ b/code/datums/status_effects/debuffs/jittering.dm @@ -43,14 +43,14 @@ qdel(src) -/datum/status_effect/jitter/tick() +/datum/status_effect/jitter/tick(seconds_between_ticks) var/time_left_in_seconds = (duration - world.time) / 10 owner.do_jitter_animation(time_left_in_seconds) // Decrease the duration by our resting_modifier, effectively skipping resting_modifier ticks per tick var/resting_modifier = owner.resting ? 5 : 1 - duration -= ((resting_modifier - 1) * initial(tick_interval)) + duration -= ((resting_modifier - 1) * seconds_between_ticks) /// Helper proc that causes the mob to do a jittering animation by jitter_amount. /// jitter_amount will only apply up to 300 (maximum jitter effect). diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index a4ec128f1a..82d804d518 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -9,7 +9,8 @@ var/duration = -1 /// When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. /// While processing, this becomes the world.time when the next tick will occur. - /// -1 = will stop processing, if duration is also unlimited (-1). + /// Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) + /// -1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale. var/tick_interval = 1 SECONDS /// The mob affected by the status effect. var/mob/living/owner @@ -45,14 +46,15 @@ if(duration != -1) duration = world.time + duration - tick_interval = world.time + tick_interval + if(tick_interval != -1) + tick_interval = world.time + tick_interval if(alert_type) var/atom/movable/screen/alert/status_effect/new_alert = owner.throw_alert(id, alert_type) new_alert.attached_effect = src //so the alert can reference us, if it needs to linked_alert = new_alert //so we can reference the alert, if we need to - if(duration > 0 || initial(tick_interval) > 0) //don't process if we don't care + if(duration > world.time || tick_interval > world.time) //don't process if we don't care switch(processing_speed) if(STATUS_EFFECT_FAST_PROCESS) START_PROCESSING(SSfastprocess, src) @@ -78,16 +80,17 @@ // Status effect process. Handles adjusting it's duration and ticks. // If you're adding processed effects, put them in [proc/tick] // instead of extending / overriding ththe process() proc. -/datum/status_effect/process(seconds_per_tick, times_fired) +/datum/status_effect/process(seconds_per_tick) if(QDELETED(owner)) qdel(src) return - if(tick_interval == 0) - tick(seconds_per_tick, times_fired) - else if(tick_interval < world.time) - var/initial_tick_interval = initial(tick_interval) - tick(initial_tick_interval / (1 SECONDS), times_fired) - tick_interval = world.time + initial_tick_interval + if(tick_interval != -1 && tick_interval < world.time) + var/tick_length = initial(tick_interval) + tick(tick_length / (1 SECONDS)) + tick_interval = world.time + tick_length + if(QDELING(src)) + // tick deleted us, no need to continue + return if(duration != -1 && duration < world.time) qdel(src) @@ -101,9 +104,17 @@ /datum/status_effect/proc/get_examine_text() return null -/// Called every tick from process(). -/datum/status_effect/proc/tick(seconds_per_tick, times_fired) - return +/** + * Called every tick from process(). + * This is only called of tick_interval is not -1. + * + * Note that every tick =/= every processing cycle. + * + * * seconds_between_ticks = This is how many SECONDS that elapse between ticks. + * This is a constant value based upon the initial tick interval set on the status effect. + * It is similar to seconds_per_tick, from processing itself, but adjusted to the status effect's tick interval. + */ +/datum/status_effect/proc/tick(seconds_between_ticks) /// Called whenever the buff expires or is removed (qdeleted) /// Note that at the point this is called, it is out of the diff --git a/code/datums/status_effects/wound_effects.dm b/code/datums/status_effects/wound_effects.dm index 5eb9d903e2..47e43ffc23 100644 --- a/code/datums/status_effects/wound_effects.dm +++ b/code/datums/status_effects/wound_effects.dm @@ -34,7 +34,7 @@ /datum/status_effect/limp id = "limp" status_type = STATUS_EFFECT_REPLACE - tick_interval = 0 + tick_interval = -1 alert_type = /atom/movable/screen/alert/status_effect/limp var/msg_stage = 0//so you dont get the most intense messages immediately /// The left leg of the limping person diff --git a/code/game/MapData/outposts/cybersun_gas_giant.dm b/code/game/MapData/outposts/cybersun_gas_giant.dm index 7d6ea43c51..3ab31534da 100644 --- a/code/game/MapData/outposts/cybersun_gas_giant.dm +++ b/code/game/MapData/outposts/cybersun_gas_giant.dm @@ -38,9 +38,13 @@ UnregisterSignal(src, COMSIG_ATOM_ENTERED) /turf/open/cybersun_outpost_exterior/proc/object_enter(datum/source, atom/movable/mover) - //fucking ew - //use the chasmstop trait the moment water immersion is out of hell - if(is_safe()) + if(HAS_TRAIT(src, TRAIT_CHASM_STOPPED)) + return FALSE + if(cleaning) + return FALSE + if(mover.movement_type & (FLYING | FLOATING)) + return FALSE + if(iseffect(mover) || isprojectile(mover)) return FALSE if(isliving(mover)) new /obj/effect/particle_effect/shield_blip(src) @@ -49,23 +53,13 @@ idiot.visible_message(span_warning("[idiot] loses their footing as the shield focuses around their steps!"), span_warning("The shield under you shifts and buckles!")) idiot.AdjustKnockdown(20) new /obj/effect/particle_effect/sparks/quantum(src) - if(cleaning) - return FALSE - if(iseffect(mover) || isprojectile(mover)) - return FALSE - if(mover.movement_type & (FLYING | FLOATING)) - return FALSE - cleaning = TRUE addtimer(CALLBACK(src, PROC_REF(clean_tile)), 30 SECONDS) return TRUE -/turf/open/cybersun_outpost_exterior/proc/is_safe() - var/list/safeties = typecacheof(list(/obj/structure/catwalk, /obj/structure/lattice)) - var/list/found_safeties = typecache_filter_list(contents, safeties) - return LAZYLEN(found_safeties) - /turf/open/cybersun_outpost_exterior/proc/clean_tile() + if(HAS_TRAIT(src, TRAIT_CHASM_STOPPED)) + return FALSE if(!length(contents)) return FALSE new /obj/effect/particle_effect/sparks/quantum(src) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 06d8e022f8..d99f2ecb09 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -152,10 +152,14 @@ /// The current connector overlay appearance. Saved so that it can be cut when necessary. var/connector_overlay - ///Default X pixel offset - var/base_pixel_x - ///Default Y pixel offset - var/base_pixel_y + ///Default pixel x shifting for the atom's icon. + var/base_pixel_x = 0 + ///Default pixel y shifting for the atom's icon. + var/base_pixel_y = 0 + //Default pixel w shifting for the atom's icon. + var/base_pixel_w = 0 + ///Default pixel z shifting for the atom's icon. + var/base_pixel_z = 0 ///Wanted sound when hit by a projectile var/hitsound_type = PROJECTILE_HITSOUND_NON_LIVING @@ -1751,3 +1755,24 @@ message += " | BWB: [dealt_bare_wound_bonus]" victim.log_message(message, LOG_ATTACK, color="blue") + + +/** + * Proc called when you want the atom to spin around the center of its icon (or where it would be if its transform var is translated) + * By default, it makes the atom spin forever and ever at a speed of 60 rpm. + * + * Arguments: + * * speed: how much it takes for the atom to complete one 360° rotation + * * loops: how many times do we want the atom to rotate + * * clockwise: whether the atom ought to spin clockwise or counter-clockwise + * * segments: in how many animate calls the rotation is split. Probably unnecessary, but you shouldn't set it lower than 3 anyway. + * * parallel: whether the animation calls have the ANIMATION_PARALLEL flag, necessary for it to run alongside concurrent animations. + */ +/atom/proc/SpinAnimation(speed = 1 SECONDS, loops = -1, clockwise = TRUE, segments = 3, parallel = TRUE) + if(!segments) + return + var/segment = 360/segments + if(!clockwise) + segment = -segment + SEND_SIGNAL(src, COMSIG_ATOM_SPIN_ANIMATION, speed, loops, segments, segment) + do_spin_animation(speed, loops, segments, segment, parallel) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 000a4e8932..3958549d6f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -303,12 +303,12 @@ pulling.Move(get_step(pulling.loc, move_dir), move_dir, glide_size) return TRUE -/mob/living/Move_Pulled(atom/A) +/mob/living/Move_Pulled(atom/moving_atom) . = ..() - if(!. || !isliving(A)) + if(!. || !isliving(moving_atom)) return - var/mob/living/L = A - set_pull_offsets(L, grab_state) + var/mob/living/pulled_mob = moving_atom + set_pull_offsets(pulled_mob, grab_state, animate = FALSE) /atom/movable/proc/check_pulling() if(pulling) @@ -527,12 +527,12 @@ return FALSE //Called after a successful Move(). By this point, we've already moved -/atom/movable/proc/Moved(atom/OldLoc, Dir, Forced = FALSE, list/old_locs) +/atom/movable/proc/Moved(atom/old_loc, movement_dir, Forced = FALSE, list/old_locs) SHOULD_CALL_PARENT(TRUE) if (!inertia_moving) inertia_next_move = world.time + inertia_move_delay - newtonian_move(Dir) + newtonian_move(movement_dir) if (length(client_mobs_in_contents)) update_parallax_contents() @@ -544,12 +544,17 @@ stack_trace("move_stacks is negative in Moved()!") move_stacks = 0 //setting it to 0 so that we dont get every movable with negative move_stacks runtiming on every movement - var/previous_virtual_z = OldLoc?.virtual_z() || 0 + var/previous_virtual_z = old_loc?.virtual_z() || 0 var/current_virtual_z = virtual_z() if(current_virtual_z != previous_virtual_z) on_virtual_z_change(current_virtual_z, previous_virtual_z) - SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, OldLoc, Dir, Forced, old_locs) + SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, old_loc, movement_dir, Forced, old_locs) + + if(old_loc) + SEND_SIGNAL(old_loc, COMSIG_ATOM_ABSTRACT_EXITED, src, movement_dir) + if(loc) + SEND_SIGNAL(loc, COMSIG_ATOM_ABSTRACT_ENTERED, src, old_loc, old_locs) return TRUE diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 26eea2375f..9ae6032760 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -467,3 +467,28 @@ Diagnostic HUDs! holder.icon_state = "electrified" else holder.icon_state = "" + +#define CACHED_WIDTH_INDEX "width" +#define CACHED_HEIGHT_INDEX "height" + +/atom/proc/get_cached_width() + if (isnull(icon)) + return 0 + var/list/dimensions = get_icon_dimensions(icon) + return dimensions[CACHED_WIDTH_INDEX] + +/atom/proc/get_cached_height() + if (isnull(icon)) + return 0 + var/list/dimensions = get_icon_dimensions(icon) + return dimensions[CACHED_HEIGHT_INDEX] + +/atom/proc/adjust_hud_position(image/holder, animate_time = null) + if (animate_time) + animate(holder, pixel_w = -(get_cached_width() - ICON_SIZE_X) / 2, pixel_z = get_cached_height() - ICON_SIZE_Y, time = animate_time) + return + holder.pixel_w = -(get_cached_width() - ICON_SIZE_X) / 2 + holder.pixel_z = get_cached_height() - ICON_SIZE_Y + +#undef CACHED_WIDTH_INDEX +#undef CACHED_HEIGHT_INDEX diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index d3d72098db..5dd866bff0 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -655,7 +655,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( maxSeverity = 2 //part of gitting gud is rng mitigation var/severity = rand(1,maxSeverity) //pray to RNGesus. PRAY, PIGS if(severity == 1) - to_chat(M, span_userdanger("You suddenly feel slightly nauseated.") ) + to_chat(M, span_userdanger("You suddenly feel slightly nauseated.")) if(severity == 2) to_chat(usr, span_userdanger("You suddenly feel extremely nauseated and hunch over until it passes.")) M.Stun(60) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 804b316a2b..dcd1695945 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -77,10 +77,14 @@ //Add "bloodiness" of this blood's type, to the human's shoes //This is on /cleanable because fuck this ancient mess -/obj/effect/decal/cleanable/proc/on_entered(datum/source, atom/movable/AM) +/obj/effect/decal/cleanable/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER - if(iscarbon(AM) && blood_state && bloodiness > 40) - SEND_SIGNAL(AM, COMSIG_STEP_ON_BLOOD, src) + + if(arrived.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) + return + + if(iscarbon(arrived) && blood_state && bloodiness > 40) + SEND_SIGNAL(arrived, COMSIG_STEP_ON_BLOOD, src) update_appearance() /obj/effect/decal/cleanable/wash(clean_types) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 0a80b257cb..6cc1999240 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -25,6 +25,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom, 31) if(!current_area) return RegisterSignal(current_area, COMSIG_AREA_POWER_CHANGE, PROC_REF(AreaPowerCheck)) + ADD_TRAIT(src, TRAIT_WALLMOUNTED, type) /obj/item/radio/intercom/examine(mob/user) . = ..() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index c8fb81cc4f..d2dda76bbf 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -535,17 +535,15 @@ R.SetLockdown(0) R.set_anchored(FALSE) R.notransform = FALSE - R.resize = 2 R.hasExpanded = TRUE - R.update_transform() + R.update_transform(2) /obj/item/borg/upgrade/expand/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) if (R.hasExpanded) R.hasExpanded = FALSE - R.resize = 0.5 - R.update_transform() + R.update_transform(0.5) /obj/item/borg/upgrade/rped name = "engineering cyborg RPED" diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 573b665ae7..0d22cf26aa 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -66,14 +66,12 @@ span_hear("You hear squelching...")) /obj/structure/bed/nest/post_buckle_mob(mob/living/M) - M.pixel_y = M.base_pixel_y - M.pixel_x = M.base_pixel_x + 2 + M.add_offsets(type, x_add = 2) M.layer = BELOW_MOB_LAYER add_overlay(nest_overlay) /obj/structure/bed/nest/post_unbuckle_mob(mob/living/M) - M.pixel_x = M.base_pixel_x + M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN) - M.pixel_y = M.base_pixel_y + M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN) + M.remove_offsets(type) M.layer = initial(M.layer) cut_overlay(nest_overlay) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 1f65200f93..03ac121432 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -329,11 +329,11 @@ item_chair = /obj/item/chair/plastic /obj/structure/chair/plastic/post_buckle_mob(mob/living/Mob) - Mob.pixel_y += 2 - .=..() + Mob.add_offsets(type, z_add = 2) + . = ..() /obj/structure/chair/plastic/post_unbuckle_mob(mob/living/Mob) - Mob.pixel_y -= 2 + Mob.remove_offsets(type) /obj/item/chair/plastic name = "folding plastic chair" diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 696e80f1d6..50e777db72 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -17,10 +17,14 @@ var/number_of_rods = 2 var/hatch_open = FALSE var/obj/item/stack/tile/plated_tile + var/list/give_turf_traits = list(TRAIT_IMMERSE_STOPPED, TRAIT_CHASM_STOPPED, TRAIT_LAVA_STOPPED, TRAIT_TURF_IGNORE_SLOWDOWN, TRAIT_ACID_STOPPED) /obj/structure/catwalk/Initialize() . = ..() update_appearance() + if(length(give_turf_traits)) + give_turf_traits = string_list(give_turf_traits) + AddElement(/datum/element/give_turf_traits, give_turf_traits) /obj/structure/catwalk/over layer = CATWALK_LAYER //over pipes, duh diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index e80ca8672a..f6244a9b5e 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -82,7 +82,7 @@ var/matrix/m180 = matrix(L.transform) m180.Turn(180) animate(L, transform = m180, time = 3) - L.pixel_y = L.get_standard_pixel_y_offset(TRUE) + L.add_offsets(type, y_add = -6, animate = FALSE) else if (has_buckled_mobs()) for(var/mob/living/L in buckled_mobs) user_unbuckle_mob(L, user) @@ -124,7 +124,7 @@ var/matrix/m180 = matrix(M.transform) m180.Turn(180) animate(M, transform = m180, time = 3) - M.pixel_y = M.base_pixel_y + M.get_standard_pixel_y_offset(TRUE) + M.remove_offsets(type, animate = FALSE) M.adjustBruteLoss(30) src.visible_message(text("[span_danger("[M] falls free of [src]!")]")) unbuckle_mob(M,force=1) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 34e6897964..4ae448cb99 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -14,9 +14,16 @@ smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_LATTICE) canSmoothWith = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_OPEN_FLOOR, SMOOTH_GROUP_WALLS) + var/list/give_turf_traits = list(TRAIT_CHASM_STOPPED) var/number_of_mats = 1 var/build_material = /obj/item/stack/rods +/obj/structure/lattice/Initialize(mapload) + . = ..() + if(length(give_turf_traits)) + give_turf_traits = string_list(give_turf_traits) + AddElement(/datum/element/give_turf_traits, give_turf_traits) + /obj/structure/lattice/examine(mob/user) . = ..() . += deconstruction_hints(user) @@ -85,6 +92,7 @@ smoothing_groups = list(SMOOTH_GROUP_LATTICE, SMOOTH_GROUP_CATWALK, SMOOTH_GROUP_OPEN_FLOOR) canSmoothWith = list(SMOOTH_GROUP_CATWALK) obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP + give_turf_traits = list(TRAIT_IMMERSE_STOPPED, TRAIT_CHASM_STOPPED, TRAIT_LAVA_STOPPED, TRAIT_TURF_IGNORE_SLOWDOWN, TRAIT_ACID_STOPPED) /obj/structure/lattice/catwalk/deconstruction_hints(mob/user) return span_notice("The supporting rods look like they could be cut.") @@ -112,6 +120,7 @@ smoothing_flags = SMOOTH_BITMASK obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP resistance_flags = FIRE_PROOF | LAVA_PROOF + give_turf_traits = list(TRAIT_IMMERSE_STOPPED, TRAIT_CHASM_STOPPED, TRAIT_LAVA_STOPPED, TRAIT_ACID_STOPPED) /obj/structure/lattice/lava/attackby(obj/item/C, mob/user, params) . = ..() diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 7ddd5ce010..8a892ede37 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -19,6 +19,10 @@ ///sign_change_name is used to make nice looking, alphebetized and categorized names when you use a pen on a sign backing. var/sign_change_name = "Sign - Blank" //If this is ever seen in game, something went wrong. +/obj/structure/sign/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_WALLMOUNTED, type) + /obj/item/sign name = "sign backing" desc = "A plastic sign backing, use a pen to change the decal. It can be placed on a wall." diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 7be1a4ba96..6184f637a2 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -42,6 +42,11 @@ /// Whether or not this table can actually be flipped. TODO: Make setting flipped_table_type to null do this instead and remove this var var/can_flip = TRUE +/obj/structure/table/Initialize() + . = ..() + var/static/list/give_turf_traits = list(TRAIT_TURF_IGNORE_SLOWDOWN, TRAIT_TURF_IGNORE_SLIPPERY, TRAIT_IMMERSE_STOPPED) + AddElement(/datum/element/give_turf_traits, give_turf_traits) + /obj/structure/table/examine(mob/user) . = ..() . += deconstruction_hints(user) diff --git a/code/game/turfs/open/acid.dm b/code/game/turfs/open/acid.dm index ad1df546ba..53e00fd864 100644 --- a/code/game/turfs/open/acid.dm +++ b/code/game/turfs/open/acid.dm @@ -65,30 +65,8 @@ underlay_appearance.icon_state = "basalt" return TRUE -/turf/open/water/acid/attackby(obj/item/_item, mob/user, params) - ..() - if(istype(_item, /obj/item/stack/rods)) - var/obj/item/stack/rods/R = _item - var/obj/structure/lattice/H = locate(/obj/structure/lattice, src) - if(H) - to_chat(user, span_warning("There is already a lattice here!")) - return - if(R.use(2)) - to_chat(user, span_notice("You construct a catwalk.")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) - new /obj/structure/lattice/catwalk(locate(x, y, z)) - else - to_chat(user, span_warning("You need one rod to build a lattice.")) - return - /turf/open/water/acid/proc/is_safe_to_cross() - //if anything matching this typecache is found in the lava, we don't burn things - var/static/list/acid_safeties_typecache = typecacheof(list(/obj/structure/catwalk, /obj/structure/stone_tile, /obj/structure/lattice/)) - var/list/found_safeties = typecache_filter_list(contents, acid_safeties_typecache) - for(var/obj/structure/stone_tile/stone_tile in found_safeties) - if(stone_tile.fallen) - LAZYREMOVE(found_safeties, stone_tile) - return LAZYLEN(found_safeties) + return HAS_TRAIT(src, TRAIT_ACID_STOPPED) /turf/open/water/acid/proc/melt_stuff(thing_to_melt) diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm index 416f69ad1c..c4de3e2fa9 100644 --- a/code/game/turfs/open/chasm.dm +++ b/code/game/turfs/open/chasm.dm @@ -14,7 +14,10 @@ /turf/open/chasm/Initialize(mapload, inherited_virtual_z) . = ..() - AddComponent(/datum/component/chasm, below()) + apply_components(mapload) + +/turf/open/chasm/proc/apply_components(mapload) + AddComponent(/datum/component/chasm, below(), mapload) /turf/open/chasm/examine(mob/user) . = ..() @@ -23,6 +26,8 @@ /// Lets people walk into chasms. /turf/open/chasm/CanAllowThrough(atom/movable/mover, border_dir) . = ..() + if(HAS_TRAIT(src, TRAIT_CHASM_STOPPED)) + return TRUE if(!isliving(mover)) return TRUE if(mover.movement_type & (FLOATING|FLYING)) diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index 9e74fba8dc..2bb70f5802 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -19,6 +19,10 @@ var/particle_emitter = /obj/effect/particle_emitter/lava var/particle_prob = 15 + + /// Whether the immerse element has been added yet or not + var/immerse_added = FALSE + /// Whether the lava has been dug with hellstone found successfully var/is_mined = FALSE @@ -27,14 +31,28 @@ if(prob(particle_prob) && ispath(particle_emitter, /obj/effect/particle_emitter)) particle_emitter = new particle_emitter(src) AddElement(/datum/element/lazy_fishing_spot, FISHING_SPOT_PRESET_LAVALAND_LAVA) + RegisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(on_atom_inited)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_LAVA_STOPPED),PROC_REF(drop_contents_into_lava)) /turf/open/lava/Destroy() . = ..() + UnregisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) + UnregisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_LAVA_STOPPED)) for(var/mob/living/leaving_mob in contents) leaving_mob.RemoveElement(/datum/element/perma_fire_overlay) if(isatom(particle_emitter)) QDEL_NULL(particle_emitter) +///We lazily add the immerse element when something is spawned or crosses this turf and not before. +/turf/open/lava/proc/on_atom_inited(datum/source, atom/movable/movable) + SIGNAL_HANDLER + if(burn_stuff(movable)) + START_PROCESSING(SSobj, src) + if(immerse_added || is_type_in_typecache(movable, GLOB.immerse_ignored_movable)) + return + AddElement(/datum/element/immerse, "immerse", 215) + immerse_added = TRUE + /turf/open/lava/ex_act(severity, target) contents_explosion(severity, target) @@ -54,20 +72,21 @@ /turf/open/lava/airless initial_gas_mix = AIRLESS_ATMOS -/turf/open/lava/Entered(atom/movable/AM) +/turf/open/lava/Entered(atom/movable/arrived) . = ..() - if(burn_stuff(AM)) + if(!immerse_added && !is_type_in_typecache(arrived, GLOB.immerse_ignored_movable)) + AddElement(/datum/element/immerse, "immerse", 215) + immerse_added = TRUE + if(burn_stuff(arrived)) START_PROCESSING(SSobj, src) - if(isliving(AM)) - AM.AddElement(/datum/element/perma_fire_overlay) /turf/open/lava/Exited(atom/movable/Obj, atom/newloc) . = ..() if(isliving(Obj) && !islava(Obj.loc)) Obj.RemoveElement(/datum/element/perma_fire_overlay) -/turf/open/lava/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if(burn_stuff(AM)) +/turf/open/lava/hitby(atom/movable/arrived, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + if(burn_stuff(arrived)) START_PROCESSING(SSobj, src) /turf/open/lava/process(seconds_per_tick) @@ -136,15 +155,21 @@ return TRUE return FALSE -/turf/open/lava/proc/is_safe() - //if anything matching this typecache is found in the lava, we don't burn things - var/static/list/lava_safeties_typecache = typecacheof(list(/obj/structure/catwalk, /obj/structure/stone_tile, /obj/structure/lattice/lava)) - var/list/found_safeties = typecache_filter_list(contents, lava_safeties_typecache) - for(var/obj/structure/stone_tile/S in found_safeties) - if(S.fallen) - LAZYREMOVE(found_safeties, S) - return LAZYLEN(found_safeties) +/** + * Called when a lava stopper (Catwalks/boulder platforms) is removed and it's contents need to be subjected to the lava underneath. + */ +/turf/open/lava/proc/drop_contents_into_lava() + SIGNAL_HANDLER + balloon_alert_to_viewers("[pick("splash","pshhhh","hiss","blorble")]!") + playsound(src, 'sound/items/match_strike.ogg', 15, TRUE) + for(var/atom/movable/each_content as anything in contents) + on_atom_inited(src, each_content) + return TRUE +/turf/open/lava/proc/is_safe() + if(HAS_TRAIT(src, TRAIT_LAVA_STOPPED)) + return TRUE + return FALSE /turf/open/lava/proc/burn_stuff(AM, seconds_per_tick = 1) . = 0 @@ -204,6 +229,7 @@ L.adjustFireLoss(20 * seconds_per_tick) if(L) //mobs turning into object corpses could get deleted here. + L.AddElement(/datum/element/perma_fire_overlay) L.adjust_fire_stacks(20 * seconds_per_tick) L.ignite_mob() diff --git a/code/game/turfs/open/openspace.dm b/code/game/turfs/open/openspace.dm index 291a22a2bb..58771d6312 100644 --- a/code/game/turfs/open/openspace.dm +++ b/code/game/turfs/open/openspace.dm @@ -28,6 +28,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/openspace/Initialize(mapload, inherited_virtual_z) // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker . = ..() + //RegisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(on_atom_created)) vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it. return INITIALIZE_HINT_LATELOAD @@ -35,6 +36,10 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr . = ..() AddElement(/datum/element/turf_z_transparency, FALSE) +/turf/open/openspace/ChangeTurf(path, list/new_baseturfs, flags) + //UnregisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) + return ..() + /turf/open/openspace/can_have_cabling() if(locate(/obj/structure/catwalk, src)) return TRUE @@ -80,6 +85,17 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/openspace/proc/CanBuildHere() return can_build_on +/** + * Drops movables spawned on this turf after they are successfully initialized. + * so that spawned movables that should fall to gravity, will fall. + */ +/* +/turf/open/openspace/proc/on_atom_created(datum/source, atom/created_atom) + SIGNAL_HANDLER + if(ismovable(created_atom)) + zfall_if_on_turf(created_atom) +*/ + /turf/open/openspace/attackby(obj/item/C, mob/user, params) ..() if(!CanBuildHere()) diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm index 4c0edd83da..c3eda78826 100644 --- a/code/game/turfs/open/water.dm +++ b/code/game/turfs/open/water.dm @@ -6,7 +6,6 @@ icon_state = "water" baseturfs = /turf/open/water planetary_atmos = TRUE - slowdown = 1 bullet_sizzle = TRUE bullet_bounce_sound = null //needs a splashing sound one day. layer = WATER_TURF_LAYER @@ -16,9 +15,66 @@ clawfootstep = FOOTSTEP_WATER heavyfootstep = FOOTSTEP_WATER + ///The transparency of the immerse element's overlay + var/immerse_overlay_alpha = 180 + ///Icon state to use for the immersion mask + var/immerse_overlay = "immerse" + /// Fishing element for this specific water tile + var/datum/fish_source/fishing_datum = /datum/fish_source/ocean + /// Whether the immerse element has been added yet or not + var/immerse_added = FALSE + /** + * Variables used for the swimming tile element. If TRUE, we pass these values to the element. + * - is_swimming_tile: Whether or not we add the element to this tile. + * - stamina_entry_cost: how much stamina it costs to enter the swimming tile, and for each move into a tile + * - ticking_oxy_damage: How much oxygen is lost per tick when drowning in water. Also determines how many breathes are lost. + * - exhaust_swimmer_prob: The likelihood that someone suffers stamina damage when entering a swimming tile. + */ + var/is_swimming_tile = FALSE + var/stamina_entry_cost = 7 + var/ticking_oxy_damage = 2 + var/exhaust_swimmer_prob = 30 + var/datum/reagent/reagent_to_extract = /datum/reagent/water var/extracted_reagent_visible_name = "water" +/turf/open/water/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(on_atom_inited)) + AddElement(/datum/element/watery_tile) + if(!isnull(fishing_datum)) + AddElement(/datum/element/lazy_fishing_spot, fishing_datum) + //ADD_TRAIT(src, TRAIT_CATCH_AND_RELEASE, INNATE_TRAIT) + +///We lazily add the immerse element when something is spawned or crosses this turf and not before. +/turf/open/water/proc/on_atom_inited(datum/source, atom/movable/movable) + SIGNAL_HANDLER + UnregisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) + make_immersed(movable) + +/** + * turf/Initialize() calls Entered on its contents too, however + * we need to wait for movables that still need to be initialized + * before we add the immerse element. + */ +/turf/open/water/Entered(atom/movable/arrived) + . = ..() + make_immersed(arrived) + +///Makes this turf immersable, return true if we actually did anything so child procs don't have to repeat our checks +/turf/open/water/proc/make_immersed(atom/movable/triggering_atom) + if(immerse_added || is_type_in_typecache(triggering_atom, GLOB.immerse_ignored_movable)) + return FALSE + AddElement(/datum/element/immerse, immerse_overlay, immerse_overlay_alpha) + immerse_added = TRUE + if(is_swimming_tile) + AddElement(/datum/element/swimming_tile, stamina_entry_cost, ticking_oxy_damage, exhaust_swimmer_prob) + return TRUE + +/turf/open/water/Destroy() + UnregisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) + return ..() + /turf/open/water/Initialize(mapload, inherited_virtual_z) . = ..() var/area/overmap_encounter/selected_area = get_area(src) @@ -42,6 +98,19 @@ . += span_notice("You could probably scoop some of the [extracted_reagent_visible_name] if you had a beaker...") /turf/open/water/attackby(obj/item/_item, mob/user, params) + if(istype(_item, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = _item + var/obj/structure/lattice/H = locate(/obj/structure/lattice, src) + if(H) + to_chat(user, span_warning("There is already a lattice here!")) + return + if(R.use(2)) + to_chat(user, span_notice("You construct a catwalk.")) + playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + new /obj/structure/lattice/catwalk(locate(x, y, z)) + else + to_chat(user, span_warning("You need one rod to build a lattice.")) + return if(istype(_item, /obj/item/fish)) to_chat(user, span_notice("You toss the [_item.name] into the [name].")) playsound(_item, "sound/effects/bigsplash.ogg", 90) @@ -118,6 +187,8 @@ /turf/open/water/beach/deep color = "#4566ad" light_color = LIGHT_COLOR_DARK_BLUE + immerse_overlay = "immerse_deep" + is_swimming_tile = TRUE /turf/open/water/beach/deep/outpost color = "#22423b" @@ -125,6 +196,9 @@ initial_gas_mix = "o2=22;n2=82;TEMP=305" light_range = 2 light_power = 0.90 + is_swimming_tile = TRUE + immerse_overlay_alpha = 210 + stamina_entry_cost = 20 /turf/open/water/tar name = "tar pit" @@ -132,12 +206,12 @@ color = "#574747" light_range = 0 slowdown = 2 + fishing_datum = null reagent_to_extract = /datum/reagent/asphalt extracted_reagent_visible_name = "tar" - + immerse_overlay_alpha = 240 /turf/open/water/whitesands - name = "sulfuric acid pool" desc = "Shallow sulfuric acid. It isn't the best ideas to step in this, but you are able to without many short term consequnces." baseturfs = /turf/open/water/whitesands diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index fff903c44b..38259c9fdf 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -372,15 +372,15 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) return (mover.movement_type & PHASING) || (mover.pass_flags & pass_flags_self) // If they can phase through us, let them in. If not, don't. return TRUE -/turf/open/Entered(atom/movable/AM) - . =..() +/turf/open/Entered(atom/movable/arrived) + . = ..() //melting - if(isobj(AM) && air?.return_temperature() > T0C) - var/obj/O = AM + if(isobj(arrived) && air?.return_temperature() > T0C) + var/obj/O = arrived if(O.obj_flags & FROZEN) O.make_unfrozen() - if(!AM.zfalling) - zFall(AM) + if(!arrived.zfalling) + zFall(arrived) // Initializes the baseturfs list, given an optional "fake_baseturf_type". // If "fake_baseturf_type" is a list, then this turf's baseturfs are set to that list. diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index 63b220828f..69a764f3b5 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -60,12 +60,16 @@ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) L.apply_status_effect(STATUS_EFFECT_EXERCISED) +/// roughly 8 seconds for 1 workout rep +#define WORKOUT_LENGTH 8 + /obj/structure/weightmachine name = "weight machine" desc = "Just looking at this thing makes you feel tired." icon = 'icons/obj/gym_equipment.dmi' density = TRUE anchored = TRUE + var/pixel_shift_z = -3 var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 5 @@ -141,7 +145,8 @@ playsound(user, 'sound/machines/click.ogg', 60, TRUE) obj_flags &= ~IN_USE update_appearance() - user.pixel_y = user.base_pixel_y + animate(user, pixel_z = pixel_shift_z, time = WORKOUT_LENGTH * 0.5, flags = ANIMATION_PARALLEL|ANIMATION_RELATIVE) + animate(pixel_z = -pixel_shift_z, time = WORKOUT_LENGTH * 0.5, flags = ANIMATION_PARALLEL) var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) to_chat(user, finishmessage) diff --git a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm index 756df5dc68..55591c1a39 100644 --- a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm +++ b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm @@ -177,7 +177,7 @@ /mob/living/basic/hivebot/core/Initialize(mapload) . = ..() - transform *= 1.3 + update_transform(1.3) /mob/living/basic/hivebot/core/death(gibbed) //once we get better sprites i want this to be like the claw's death. aka fucking cool. diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 2ec9d31f39..770404a5e3 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -51,10 +51,6 @@ // update_icons() //Handled in update_transform(), leaving this here as a reminder update_transform() -/mob/living/carbon/alien/humanoid/perform_update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that. - . = ..() - update_icons() - /mob/living/carbon/alien/humanoid/update_inv_handcuffed() remove_overlay(HANDCUFF_LAYER) var/cuff_icon = "aliencuff" diff --git a/code/modules/mob/living/carbon/alien/larva/update_icons.dm b/code/modules/mob/living/carbon/alien/larva/update_icons.dm index 66c35f69ed..261efb6a33 100644 --- a/code/modules/mob/living/carbon/alien/larva/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/larva/update_icons.dm @@ -21,10 +21,6 @@ else icon_state = "larva[state]" -/mob/living/carbon/alien/larva/perform_update_transform() //All this is handled in update_icons() - ..() - update_icons() - /mob/living/carbon/alien/larva/update_inv_handcuffed() update_icons() //larva icon_state changes if cuffed/uncuffed. diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 60637426e2..09f59ebd27 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -11,6 +11,9 @@ usable_legs = 0 //Populated on init through list/bodyparts num_hands = 0 //Populated on init through list/bodyparts usable_hands = 0 //Populated on init through list/bodyparts + + rotate_on_lying = TRUE + var/list/internal_organs = list() ///List of [/obj/item/organ] in the mob. They don't go in the contents for some reason I don't want to know. var/list/internal_organs_slot= list() ///Same as [above][/mob/living/carbon/var/internal_organs], but stores "slot ID" - "organ" pairs for easy access. var/silent = 0 ///Can't talk. Value goes down every life proc. NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU. @@ -26,6 +29,8 @@ var/obj/item/clothing/mask/wear_mask = null var/obj/item/clothing/neck/wear_neck = null var/obj/item/tank/internal = null + /// "External" air tank. Never set this manually. Not required to stay directly equipped on the mob (i.e. could be a machine or MOD suit module). + var/obj/item/tank/external = null var/obj/item/clothing/head = null var/obj/item/wear_id = null //only used by humans @@ -45,8 +50,6 @@ var/gib_type = /obj/effect/decal/cleanable/blood/gibs - var/rotate_on_lying = 1 - var/tinttotal = 0 /// Total level of visualy impairing items var/list/icon_render_keys = list() diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 83f2c5b1e8..899783042f 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null) +/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null, no_animation=FALSE) SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMAGE, damage, damagetype, def_zone) var/hit_percent = (100-blocked)/100 if(!damage || (!forced && hit_percent <= 0)) diff --git a/code/modules/mob/living/carbon/human/damage_procs.dm b/code/modules/mob/living/carbon/human/damage_procs.dm index 144a247455..9e60814773 100644 --- a/code/modules/mob/living/carbon/human/damage_procs.dm +++ b/code/modules/mob/living/carbon/human/damage_procs.dm @@ -1,7 +1,7 @@ /// depending on the species, it will run the corresponding apply_damage code there -/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null) - return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced, spread_damage, wound_bonus, bare_wound_bonus, sharpness, attack_direction) +/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null, no_animation=FALSE) + return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced, spread_damage, wound_bonus, bare_wound_bonus, sharpness, attack_direction, no_animation) /mob/living/carbon/human/revive(full_heal = 0, admin_revive = 0) if(..()) diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index a5cb90f790..859f35f482 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -101,3 +101,4 @@ GLOBAL_LIST_EMPTY(dummy_mob_list) /mob/living/carbon/human/dummy/apply_height_offsets(image/appearance, upper_torso) return */ + diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index ea599f830f..46ac5117e8 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -1031,12 +1031,11 @@ * * Arguments: * - delta_time - * - times_fired * - stacks: Current amount of firestacks * */ -/mob/living/carbon/human/proc/burn_clothing(delta_time, times_fired, stacks) +/mob/living/carbon/human/proc/burn_clothing(delta_time, stacks) var/list/burning_items = list() var/obscured = check_obscured_slots(TRUE) //HEAD// @@ -1096,10 +1095,10 @@ return GLOB.fire_appearances[fire_icon] -/mob/living/carbon/human/on_fire_stack(delta_time, times_fired, datum/status_effect/fire_handler/fire_stacks/fire_handler) +/mob/living/carbon/human/on_fire_stack(delta_time, datum/status_effect/fire_handler/fire_stacks/fire_handler) SEND_SIGNAL(src, COMSIG_HUMAN_BURNING) - burn_clothing(delta_time, times_fired, fire_handler.stacks) + burn_clothing(delta_time, fire_handler.stacks) var/no_protection = FALSE if(dna && dna.species) no_protection = dna.species.handle_fire(src, no_protection) - fire_handler.harm_human(delta_time, times_fired, no_protection) + fire_handler.harm_human(delta_time, no_protection) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 1d206a95a2..1b17cb307c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1739,7 +1739,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) return TRUE -/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null) +/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null, no_animation=FALSE) SEND_SIGNAL(H, COMSIG_MOB_APPLY_DAMAGE, damage, damagetype, def_zone, wound_bonus, bare_wound_bonus, sharpness, attack_direction) var/hit_percent = (100-(blocked+armor))/100 hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100 @@ -1766,7 +1766,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_damage_overlays() else //no bodypart, we deal damage with a more general method. H.adjustBruteLoss(damage_amount) - if(H.stat <= HARD_CRIT) + if(H.stat <= HARD_CRIT && !no_animation) H.shake_animation(damage_amount) if(BURN) H.damageoverlaytemp = 20 @@ -1776,7 +1776,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_damage_overlays() else H.adjustFireLoss(damage_amount) - if(H.stat <= HARD_CRIT) + if(H.stat <= HARD_CRIT && !no_animation) H.shake_animation(damage_amount) if(TOX) var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.tox_mod @@ -1794,7 +1794,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_stamina() else H.adjustStaminaLoss(damage_amount) - if(H.stat <= HARD_CRIT) + if(H.stat <= HARD_CRIT && !no_animation) H.shake_animation(damage_amount) if(BRAIN) var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.brain_mod diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 08ce6c9bb7..ddc3239a13 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -1,29 +1,3 @@ -//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. -/mob/living/carbon/perform_update_transform() - var/matrix/ntransform = matrix(transform) //aka transform.Copy() - var/final_pixel_y = pixel_y - var/final_dir = dir - var/changed = 0 - if(lying_angle != lying_prev && rotate_on_lying) - changed++ - ntransform.TurnTo(lying_prev , lying_angle) - if(!lying_angle) //Lying to standing - final_pixel_y = get_standard_pixel_y_offset() - else //if(lying != 0) - if(lying_prev == 0) //Standing to lying - pixel_y = base_pixel_y + get_standard_pixel_y_offset() - final_pixel_y = base_pixel_y + get_standard_pixel_y_offset(lying_angle) - if(dir & (EAST|WEST)) //Facing east or west - final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass - if(resize != RESIZE_DEFAULT_SIZE) - changed++ - ntransform.Scale(resize) - resize = RESIZE_DEFAULT_SIZE - - if(changed) - SEND_SIGNAL(src, COMSIG_PAUSE_FLOATING_ANIM, 0.3 SECONDS) - animate(src, transform = ntransform, time = (lying_prev == 0 || lying_angle == 0) ? 2 : 0, pixel_y = final_pixel_y, dir = final_dir, easing = (EASE_IN|EASE_OUT)) - /mob/living/carbon var/list/overlays_standing[TOTAL_LAYERS] diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 896cbe75cb..e9de62371e 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -15,10 +15,12 @@ * * wound_bonus - see /carbon/apply_damage + * * no_animation - makes it so there's no shaking animation on application + * Returns TRUE if damage applied */ -/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null) +/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null, no_animation = FALSE) SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMAGE, damage, damagetype, def_zone) var/hit_percent = (100-blocked)/100 if(!damage || (!forced && hit_percent <= 0) || !(flags_1 & INITIALIZED_1)) @@ -27,7 +29,7 @@ switch(damagetype) if(BRUTE) adjustBruteLoss(damage_amount, forced = forced) - if(stat <= HARD_CRIT) + if(stat <= HARD_CRIT && !no_animation) shake_animation(damage_amount) if(BURN) adjustFireLoss(damage_amount, forced = forced) @@ -41,7 +43,7 @@ adjustCloneLoss(damage_amount, forced = forced) if(STAMINA) adjustStaminaLoss(damage_amount, forced = forced) - if(stat <= HARD_CRIT) + if(stat <= HARD_CRIT && !no_animation) shake_animation(damage_amount) return TRUE diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index e4fae7448f..f9e51870a5 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -12,6 +12,7 @@ spread_bodyparts(no_brain, no_organs) spawn_gibs(no_bodyparts) + SEND_SIGNAL(src, COMSIG_LIVING_GIBBED) if(!safe_gib) qdel(src) @@ -78,6 +79,7 @@ update_health_hud() med_hud_set_health() med_hud_set_status() + SEND_SIGNAL(src, COMSIG_LIVING_DEATH) stop_pulling() if(typing_indicator) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index e1b9236f81..9a488f63f7 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -387,11 +387,11 @@ . = ..() if(!.) return FALSE - animate(user, pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + animate(user, pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) for(var/i in 1 to SHIVER_LOOP_DURATION / (0.2 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) + animate(pixel_w = -2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = 2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) #undef SHIVER_LOOP_DURATION /datum/emote/living/sigh @@ -496,11 +496,11 @@ . = ..() if(!.) return FALSE - animate(user, pixel_x = user.pixel_x + 2, time = 0.5 SECONDS) + animate(user, pixel_w = 2, time = 0.5 SECONDS, flags = ANIMATION_RELATIVE) for(var/i in 1 to 2) - animate(pixel_x = user.pixel_x - 4, time = 1.0 SECONDS) - animate(pixel_x = user.pixel_x + 4, time = 1.0 SECONDS) - animate(pixel_x = user.pixel_x - 2, time = 0.5 SECONDS) + animate(pixel_w = -6, time = 1.0 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = 6, time = 1.0 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = -2, time = 0.5 SECONDS, flags = ANIMATION_RELATIVE) /datum/emote/living/tremble key = "tremble" @@ -512,11 +512,11 @@ . = ..() if(!.) return FALSE - animate(user, pixel_x = user.pixel_x + 2, time = 0.2 SECONDS) + animate(user, pixel_w = 2, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) for(var/i in 1 to TREMBLE_LOOP_DURATION / (0.4 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count - animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS) - animate(pixel_x = user.pixel_x + 2, time = 0.2 SECONDS) - animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS) + animate(pixel_w = -4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = 4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_CONTINUE) + animate(pixel_w = -2, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) #undef TREMBLE_LOOP_DURATION /datum/emote/living/twitch @@ -528,11 +528,11 @@ . = ..() if(!.) return FALSE - animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + animate(user, pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = -2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) animate(time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + animate(pixel_w = 2, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) /datum/emote/living/twitch_s key = "twitch_s" @@ -542,11 +542,8 @@ . = ..() if(!.) return FALSE - animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) - animate(time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS) - animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS) + animate(user, pixel_w = -1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) + animate(pixel_w = 1, time = 0.1 SECONDS, flags = ANIMATION_RELATIVE) /datum/emote/living/wave key = "wave" diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index 46e0ef139a..372e253f04 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -30,6 +30,8 @@ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_EYESCLOSED), PROC_REF(on_eyesclosed_trait_gain)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_EYESCLOSED), PROC_REF(on_eyesclosed_trait_loss)) + RegisterSignal(src, COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY, PROC_REF(edit_immerse_overlay)) + RegisterSignals(src, list( SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), SIGNAL_REMOVETRAIT(TRAIT_CRITICAL_CONDITION), @@ -191,3 +193,8 @@ /mob/living/proc/on_movement_type_flag_disabled(datum/source, trait) SIGNAL_HANDLER update_movespeed(FALSE) + +/mob/living/proc/edit_immerse_overlay(datum/source, atom/movable/immerse_mask/effect_relay) + SIGNAL_HANDLER + effect_relay.transform = effect_relay.transform.Scale(1 / current_size) + effect_relay.transform = effect_relay.transform.Turn(-lying_angle) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d79885e7c6..93cf5a5d65 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -351,39 +351,6 @@ set_pull_offsets(M, state) -/mob/living/proc/set_pull_offsets(mob/living/M, grab_state = GRAB_PASSIVE) - if(M.buckled) - return //don't make them change direction or offset them if they're buckled into something. - var/offset = 0 - switch(grab_state) - if(GRAB_PASSIVE) - offset = GRAB_PIXEL_SHIFT_PASSIVE - if(GRAB_AGGRESSIVE) - offset = GRAB_PIXEL_SHIFT_AGGRESSIVE - if(GRAB_NECK) - offset = GRAB_PIXEL_SHIFT_NECK - if(GRAB_KILL) - offset = GRAB_PIXEL_SHIFT_NECK - M.setDir(get_dir(M, src)) - switch(M.dir) - if(NORTH) - animate(M, pixel_x = M.base_pixel_x, pixel_y = M.base_pixel_y + offset, 3) - if(SOUTH) - animate(M, pixel_x = M.base_pixel_x, pixel_y = M.base_pixel_y - offset, 3) - if(EAST) - if(M.lying_angle == 270) //update the dragged dude's direction if we've turned - M.set_lying_angle(90) - animate(M, pixel_x = M.base_pixel_x + offset, pixel_y = M.base_pixel_y, 3) - if(WEST) - if(M.lying_angle == 90) - M.set_lying_angle(270) - animate(M, pixel_x = M.base_pixel_x - offset, pixel_y = M.base_pixel_y, 3) - -/mob/living/proc/reset_pull_offsets(mob/living/M, override) - if(!override && M.buckled) - return - animate(M, pixel_x = M.base_pixel_x, pixel_y = M.base_pixel_y, 1) - //mob verbs are a lot faster than object verbs //for more info on why this is not atom/pull, see examinate() in mob.dm /mob/living/verb/pulled(atom/movable/AM as mob|obj in oview(1)) @@ -544,11 +511,14 @@ /// Proc to append behavior related to lying down. /mob/living/proc/on_lying_down(new_lying_angle) - layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs + if(layer == initial(layer)) //to avoid things like hiding larvas. + layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs ADD_TRAIT(src, TRAIT_PULL_BLOCKED, LYING_DOWN_TRAIT) density = FALSE // We lose density and stop bumping passable dense things. if(HAS_TRAIT(src, TRAIT_FLOORED) && !(dir & (NORTH|SOUTH))) setDir(pick(NORTH, SOUTH)) // We are and look helpless. + if(rotate_on_lying) + add_offsets(LYING_DOWN_TRAIT, y_add = PIXEL_Y_OFFSET_LYING) /// Proc to append behavior related to lying down. @@ -557,7 +527,7 @@ layer = initial(layer) density = initial(density) // We were prone before, so we become dense and things can bump into us again. REMOVE_TRAIT(src, TRAIT_PULL_BLOCKED, LYING_DOWN_TRAIT) - + remove_offsets(LYING_DOWN_TRAIT) //Recursive function to find everything a mob is holding. Really shitty proc tbh. @@ -1354,7 +1324,7 @@ GLOBAL_LIST_EMPTY(fire_appearances) * * fire_handler: Current fire status effect that called the proc */ -/mob/living/proc/on_fire_stack(delta_time, times_fired, datum/status_effect/fire_handler/fire_stacks/fire_handler) +/mob/living/proc/on_fire_stack(delta_time, datum/status_effect/fire_handler/fire_stacks/fire_handler) return //Mobs on Fire end @@ -1506,8 +1476,8 @@ GLOBAL_LIST_EMPTY(fire_appearances) set_blurriness(var_value) if(NAMEOF(src, maxHealth)) updatehealth() - if(NAMEOF(src, resize)) - update_transform() + if(NAMEOF(src, current_size)) + update_transform(current_size) if(NAMEOF(src, lighting_alpha)) sync_lighting_plane_alpha() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 6334477532..0c5f825546 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -234,7 +234,7 @@ to_chat(user, span_danger("You're strangling [src]!")) if(!buckled && !density) Move(user.loc) - user.set_pull_offsets(src, grab_state) + user.set_pull_offsets(src, user.grab_state) return 1 diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index d244900cad..3fae89ca28 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -11,7 +11,8 @@ bad_type = /mob/living - var/resize = 1 ///Badminnery resize + ///Tracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it. + var/current_size = RESIZE_DEFAULT_SIZE var/lastattacker = null var/lastattackerckey = null @@ -185,6 +186,9 @@ ///Default Y offset var/body_pixel_y_offset = 0 + ///The height offset of a mob's maptext due to their current size. + var/body_maptext_height_offset = 0 + /// FOV view that is applied from either nativeness or traits var/fov_view /// Native FOV that will be applied if a config is enabled @@ -192,10 +196,20 @@ /// Lazy list of FOV traits that will apply a FOV view when handled. var/list/fov_traits + var/rotate_on_lying = FALSE + + ///what multiplicative slowdown we get from turfs currently. + var/current_turf_slowdown = 0 + ///how much recoil do we experience when shooting. Ideally some. var/recoil_effect = 1 //i hate guncode ///how much recoil do we experience from being shot. Ideally some. var/impact_effect = 1 + /// Lazylists of pixel offsets this mob is currently using + /// Modify this via add_offsets and remove_offsets, + /// NOT directly (and definitely avoid modifying offsets directly) + VAR_PRIVATE/list/offsets + /// World time of the last time this mob heard a radio crackle, to reduce spamminess. COOLDOWN_DECLARE(radio_crackle_cooldown) diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 9634040582..df1460bd4d 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -26,11 +26,14 @@ /mob/living/proc/update_move_intent_slowdown() add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run) -/mob/living/proc/update_turf_movespeed(turf/open/T) - if(isopenturf(T)) - add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown) - else +/mob/living/proc/update_turf_movespeed(turf/open/turf) + if(isopenturf(turf) && !HAS_TRAIT(turf, TRAIT_TURF_IGNORE_SLOWDOWN)) + if(turf.slowdown != current_turf_slowdown) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = turf.slowdown) + current_turf_slowdown = turf.slowdown + else if(current_turf_slowdown) remove_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown) + current_turf_slowdown = 0 /mob/living/proc/update_pull_movespeed() diff --git a/code/modules/mob/living/living_update_icons.dm b/code/modules/mob/living/living_update_icons.dm index 454ed6e441..274a5a4f10 100644 --- a/code/modules/mob/living/living_update_icons.dm +++ b/code/modules/mob/living/living_update_icons.dm @@ -1,16 +1,193 @@ -/// Called whenever the mob is to be resized or when lying/standing up for carbons. -/mob/living/update_transform() - perform_update_transform() // carbon mobs do it differently than silicons and simple animals. - SEND_SIGNAL(src, COMSIG_LIVING_POST_UPDATE_TRANSFORM) // ...and we want the signal to be sent last. - -/mob/living/proc/perform_update_transform() - var/matrix/ntransform = matrix(transform) //aka transform.Copy() +/** + * Called whenever the mob is to be resized or when lying/standing up for carbons. + * IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. + */ +/mob/living/proc/update_transform(resize = RESIZE_DEFAULT_SIZE) + var/matrix/ntransform = matrix(transform) + var/current_translate = get_transform_translation_size(current_size) + var/final_dir = dir var/changed = FALSE + if(lying_angle != lying_prev && rotate_on_lying) + changed = TRUE + if(lying_angle && lying_prev == 0) + if(current_translate) + ntransform.Translate(0, -current_translate) + // Standing to lying and facing east or west + if(dir & (EAST|WEST)) + // ...So you fall on your side, rather than your face or ass + final_dir = pick(NORTH, SOUTH) + else + if(current_translate && !lying_angle && lying_prev != 0) + ntransform.Translate(current_translate * (lying_prev == 270 ? -1 : 1), 0) + // Done last, as it can mess with the translation. + ntransform.TurnTo(lying_prev, lying_angle) + if(resize != RESIZE_DEFAULT_SIZE) changed = TRUE + var/is_vertical = !lying_angle || !rotate_on_lying + var/new_translation = get_transform_translation_size(resize * current_size) + // scaling also affects translation, so we've to undo the old translate beforehand. + if(is_vertical && current_translate) + ntransform.Translate(0, -current_translate) + ntransform.Scale(resize) - resize = RESIZE_DEFAULT_SIZE + current_size *= resize + // Update the height of the maptext according to the size of the mob so they don't overlap. + var/old_maptext_offset = body_maptext_height_offset + body_maptext_height_offset = initial(maptext_height) * (current_size - 1) * 0.5 + maptext_height += body_maptext_height_offset - old_maptext_offset + // and update the new translation + if(is_vertical && new_translation) + ntransform.Translate(0, new_translation) + + if(!changed) //Nothing has been changed, nothing has to be done. + return FALSE + + // ensures the floating animation doesn't mess with our animation + if(HAS_TRAIT(src, TRAIT_MOVE_FLOATING)) + ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT) + addtimer(TRAIT_CALLBACK_REMOVE(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT), 0.3 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + //if true, we want to avoid any animation time, it'll tween and not rotate at all otherwise. + var/is_opposite_angle = REVERSE_ANGLE(lying_angle) == lying_prev + var/animate_time = is_opposite_angle ? 0 : UPDATE_TRANSFORM_ANIMATION_TIME + animate(src, transform = ntransform, time = animate_time, dir = final_dir, easing = SINE_EASING) + for (var/hud_key in hud_list) + var/image/hud_image = hud_list[hud_key] + if (istype(hud_image)) + adjust_hud_position(hud_image, animate_time = animate_time) + + SEND_SIGNAL(src, COMSIG_LIVING_POST_UPDATE_TRANSFORM, resize, lying_angle, is_opposite_angle) + return TRUE + +/// Calculates how far vertically the mob's transform should translate according to its size (1 being "default") +/mob/living/proc/get_transform_translation_size(value) + return (value - 1) * 16 + +/** + * Adds an offset to the mob's pixel position. + * + * * source: The source of the offset, a string + * * w_add: pixel_w offset + * * x_add: pixel_x offset + * * y_add: pixel_y offset + * * z_add: pixel_z offset + * * animate: If TRUE, the mob will animate to the new position. If FALSE, it will instantly move. + */ +/mob/living/proc/add_offsets(source, w_add, x_add, y_add, z_add, animate = TRUE) + LAZYINITLIST(offsets) + if(isnum(w_add)) + LAZYSET(offsets[PIXEL_W_OFFSET], source, w_add) + if(isnum(x_add)) + LAZYSET(offsets[PIXEL_X_OFFSET], source, x_add) + if(isnum(y_add)) + LAZYSET(offsets[PIXEL_Y_OFFSET], source, y_add) + if(isnum(z_add)) + LAZYSET(offsets[PIXEL_Z_OFFSET], source, z_add) + update_offsets(animate) + +/** + * Goes through all pixel adjustments and removes any tied to the passed source. + * + * * source: The source of the offset to remove + * * animate: If TRUE, the mob will animate to the position with any offsets removed. If FALSE, it will instantly move. + */ +/mob/living/proc/remove_offsets(source, animate = TRUE) + for(var/offset in offsets) + LAZYREMOVE(offsets[offset], source) + ASSOC_UNSETEMPTY(offsets, offset) + UNSETEMPTY(offsets) + update_offsets(animate) + +/** + * Updates the mob's pixel position according to the offsets. + * + * * animate: If TRUE, the mob will animate to the new position. If FALSE, it will instantly move. + * + * Returns TRUE if the mob's position has changed, FALSE otherwise. + */ +/mob/living/proc/update_offsets(animate = FALSE) + var/new_w = base_pixel_w + var/new_x = base_pixel_x + var/new_y = base_pixel_y + var/new_z = base_pixel_z + + for(var/offset_key in LAZYACCESS(offsets, PIXEL_W_OFFSET)) + new_w += offsets[PIXEL_W_OFFSET][offset_key] + for(var/offset_key in LAZYACCESS(offsets, PIXEL_X_OFFSET)) + new_x += offsets[PIXEL_X_OFFSET][offset_key] + for(var/offset_key in LAZYACCESS(offsets, PIXEL_Y_OFFSET)) + new_y += offsets[PIXEL_Y_OFFSET][offset_key] + for(var/offset_key in LAZYACCESS(offsets, PIXEL_Z_OFFSET)) + new_z += offsets[PIXEL_Z_OFFSET][offset_key] + + if(new_w == pixel_w && new_x == pixel_x && new_y == pixel_y && new_z == pixel_z) + return FALSE + + SEND_SIGNAL(src, COMSIG_LIVING_UPDATE_OFFSETS, new_x, new_y, new_w, new_z, animate) + + if(!animate) + pixel_w = new_w + pixel_x = new_x + pixel_y = new_y + pixel_z = new_z + return TRUE + + // ensures the floating animation doesn't mess with our animation + if(HAS_TRAIT(src, TRAIT_MOVE_FLOATING)) + ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, UPDATE_OFFSET_TRAIT) + addtimer(TRAIT_CALLBACK_REMOVE(src, TRAIT_NO_FLOATING_ANIM, UPDATE_OFFSET_TRAIT), 0.3 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + + animate(src, + pixel_w = new_w, + pixel_x = new_x, + pixel_y = new_y, + pixel_z = new_z, + flags = ANIMATION_PARALLEL, + time = UPDATE_TRANSFORM_ANIMATION_TIME, + ) + return TRUE + +/** + * Checks if we are offset by the passed source for the passed pixel. + * + * * source: The source of the offset + * If not supplied, it will report the total offset of the passed pixel. + * * pixel: Optional, The pixel to check. + * If not supplied, just reports if it's offset by the source at all (returning the first offset found). + * + * Returns the offset if we are, 0 otherwise. + */ +/mob/living/proc/has_offset(source, pixel) + if(isnull(source) && isnull(pixel)) + stack_trace("has_offset() requires at least one argument.") + return 0 + + if(isnull(source)) + if(!length(offsets?[pixel])) + return 0 + + var/total_found_offset = 0 + for(var/found_offset in offsets[pixel]) + total_found_offset += has_offset(found_offset, pixel) + return total_found_offset + + if(isnull(pixel)) + for(var/found_pixel in offsets) + var/found_offset = has_offset(source, found_pixel) + if(found_offset) + return found_offset + + return 0 + + return offsets?[pixel]?[source] || 0 + +// Updates offsets if base pixel changes +// Future TODO: move base pixel onto /obj and make mobs just set a base pixel using a source +/mob/living/set_base_pixel_x(new_value) + . = ..() + update_offsets() - if(changed) - animate(src, transform = ntransform, time = 2, easing = EASE_IN|EASE_OUT) +/mob/living/set_base_pixel_y(new_value) + . = ..() + update_offsets() diff --git a/code/modules/mob/living/silicon/damage_procs.dm b/code/modules/mob/living/silicon/damage_procs.dm index 3c479adc78..df2bbb6344 100644 --- a/code/modules/mob/living/silicon/damage_procs.dm +++ b/code/modules/mob/living/silicon/damage_procs.dm @@ -1,5 +1,5 @@ -/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null) +/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE, attack_direction = null, no_animation=FALSE) var/hit_percent = (100-blocked)/100 if((!damage || (!forced && hit_percent <= 0))) return 0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 90e5dce6cb..b8eaa2c957 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -878,9 +878,8 @@ hud_used.update_robot_modules_display() if (hasExpanded) - resize = 0.5 hasExpanded = FALSE - update_transform() + update_transform(0.5) logevent("Chassis configuration has been reset.") module.transform_to(/obj/item/robot_module) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 770b686ebe..98fb0e0361 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -55,8 +55,7 @@ /mob/living/simple_animal/bot/secbot/beepsky/jr/Initialize() . = ..() - resize = 0.8 - update_transform() + update_transform(0.8) /mob/living/simple_animal/bot/secbot/beepsky/explode() diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm index b85da6c2c7..5c45e3f9a2 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -220,8 +220,7 @@ layer = BELOW_MOB_LAYER pixel_x = -16 base_pixel_x = -16 - pixel_y = -16 - base_pixel_y = -16 + pixel_z = -16 duration = 10 #undef MOOK_ATTACK_NEUTRAL diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm index bb9dd52583..303a39c7a5 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -19,8 +19,7 @@ melee_damage_upper = 30 pixel_x = -16 base_pixel_x = -16 - pixel_y = -14 - base_pixel_y = -14 + pixel_z = -14 minimum_distance = 3 move_to_delay = 20 vision_range = 9 @@ -70,7 +69,7 @@ duration = 30 status_type = STATUS_EFFECT_MULTIPLE alert_type = null - tick_interval = 1 + tick_interval = 2 var/atom/movable/screen/seedling/seedling_screen_object var/atom/target diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 0bfebe8468..d274d69b9f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -90,8 +90,7 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck/Initialize() . = ..() add_atom_colour(pick("#E39FBB", "#D97D64", "#CF8C4A"), FIXED_COLOUR_PRIORITY) - resize = 0.85 - update_transform() + update_transform(0.85) //Lady gutlunch. They make the babby. /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen @@ -107,8 +106,7 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/grublunch/Initialize() . = ..() add_atom_colour("#9E9E9E", FIXED_COLOUR_PRIORITY) //Somewhat hidden - resize = 0.45 - update_transform() + update_transform(0.45) /mob/living/simple_animal/hostile/asteroid/gutlunch/grublunch/Life() ..() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 5330f0bac8..4b2f655dc8 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -427,10 +427,6 @@ return 0 . = ..() -/mob/living/simple_animal/slime/get_mob_buckling_height(mob/seat) - if(..()) - return 3 - /mob/living/simple_animal/slime/can_be_implanted() return TRUE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 6b9d3181a3..fa24716b6a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1132,25 +1132,6 @@ return FALSE return ..() -///Call back post buckle to a mob to offset your visual height -/mob/post_buckle_mob(mob/living/M) - var/height = M.get_mob_buckling_height(src) - M.pixel_y = initial(M.pixel_y) + height - if(M.layer <= layer) //make sure they stay above our current layer - M.layer = layer + 0.1 -///Call back post unbuckle from a mob, (reset your visual height here) -/mob/post_unbuckle_mob(mob/living/M) - M.layer = initial(M.layer) - M.pixel_y = initial(M.pixel_y) - -///returns the height in pixel the mob should have when buckled to another mob. -/mob/proc/get_mob_buckling_height(mob/seat) - if(isliving(seat)) - var/mob/living/L = seat - if(L.mob_size <= MOB_SIZE_SMALL) //being on top of a small mob doesn't put you very high. - return 0 - return 9 - ///can the mob be buckled to something by default? /mob/proc/can_buckle() return 1 diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index 1fc167707f..2a91bd72a3 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -7,9 +7,6 @@ /mob/proc/update_icons() return -/mob/proc/update_transform() - return - /mob/proc/update_inv_handcuffed() return diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index d3ebf41088..23632b453b 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -14,7 +14,7 @@ multiplicative_slowdown = -1 /datum/movespeed_modifier/damage_slowdown - blacklisted_movetypes = FLOATING|FLYING + blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND variable = TRUE /datum/movespeed_modifier/damage_slowdown_flying @@ -123,3 +123,14 @@ /datum/movespeed_modifier/basicmob_varspeed variable = TRUE flags = IGNORE_NOSLOW + +///Slowdown for wading through water +/datum/movespeed_modifier/wading + blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND + multiplicative_slowdown = 1.5 + conflicts_with = /datum/movespeed_modifier/swimming_deep + +///Slowdown for swimming on deep water tiles +/datum/movespeed_modifier/swimming_deep + blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND + multiplicative_slowdown = 3 diff --git a/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm b/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm index 86a15104ee..a7c84273dd 100644 --- a/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm +++ b/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm @@ -59,7 +59,7 @@ var/static/list/connections = list( COMSIG_ATOM_ENTERED = PROC_REF(AddItemOnPlat), - COMSIG_ATOM_CREATED = PROC_REF(AddItemOnPlat), + COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON = PROC_REF(AddItemOnPlat), COMSIG_ATOM_EXITED = PROC_REF(RemoveItemFromPlat) ) AddElement(/datum/element/connect_loc, connections) @@ -80,6 +80,8 @@ if(master_datum) master_datum.remove_platform(src) + QDEL_LIST(lift_load) + // industrial lifts had some (only semi-functional) code here for splitting // lifts into separate platforms on platform deletion. that's difficult to do well // and not all THAT necessary, so i didn't do it. laziness wins! @@ -87,6 +89,8 @@ /obj/structure/elevator_platform/proc/AddItemOnPlat(datum/source, atom/movable/AM) SIGNAL_HANDLER + if(AM == src) + return if(AM in lift_load) return LAZYADD(lift_load, AM) diff --git a/code/modules/pixelshifting/pixelshift.dm b/code/modules/pixelshifting/pixelshift.dm index 871d24caa5..b0310916c1 100644 --- a/code/modules/pixelshifting/pixelshift.dm +++ b/code/modules/pixelshifting/pixelshift.dm @@ -15,13 +15,56 @@ pixel_x = body_pixel_x_offset + base_pixel_x pixel_y = body_pixel_y_offset + base_pixel_y -/mob/living/set_pull_offsets(mob/living/pull_target, grab_state) - pull_target.unpixel_shift() - return ..() +/** + * Updates the offsets of the passed mob according to the passed grab state and the direction between them and us + * + * * M - the mob to update the offsets of + * * grab_state - the state of the grab + * * animate - whether or not to animate the offsets + */ +/mob/living/proc/set_pull_offsets(mob/living/mob_to_set, grab_state = GRAB_PASSIVE, animate = TRUE) + if(mob_to_set.buckled) + return //don't make them change direction or offset them if they're buckled into something. + var/offset = 0 + switch(grab_state) + if(GRAB_PASSIVE) + offset = GRAB_PIXEL_SHIFT_PASSIVE + if(GRAB_AGGRESSIVE) + offset = GRAB_PIXEL_SHIFT_AGGRESSIVE + if(GRAB_NECK) + offset = GRAB_PIXEL_SHIFT_NECK + if(GRAB_KILL) + offset = GRAB_PIXEL_SHIFT_NECK + mob_to_set.setDir(get_dir(mob_to_set, src)) + var/dir_filter = mob_to_set.dir + if(ISDIAGONALDIR(dir_filter)) + dir_filter = EWCOMPONENT(dir_filter) + switch(dir_filter) + if(NORTH) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = 0, y_add = offset, animate = animate) + if(SOUTH) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = 0, y_add = -offset, animate = animate) + if(EAST) + if(mob_to_set.lying_angle == LYING_ANGLE_WEST) //update the dragged dude's direction if we've turned + mob_to_set.set_lying_angle(LYING_ANGLE_EAST) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = offset, y_add = 0, animate = animate) + if(WEST) + if(mob_to_set.lying_angle == LYING_ANGLE_EAST) + mob_to_set.set_lying_angle(LYING_ANGLE_WEST) + mob_to_set.add_offsets(GRABBING_TRAIT, x_add = -offset, y_add = 0, animate = animate) + +/** + * Removes any offsets from the passed mob that are related to being grabbed + * + * * pull_target - the mob to remove the offsets from + * * override - if TRUE, the offsets will be removed regardless of the mob's buckled state + * otherwise we won't remove the offsets if the mob is buckled + */ +/mob/living/proc/reset_pull_offsets(mob/living/pull_target, override) + if(!override && pull_target.buckled) + return + pull_target.remove_offsets(GRABBING_TRAIT) -/mob/living/reset_pull_offsets(mob/living/pull_target, override) - pull_target.unpixel_shift() - return ..() /mob/living/pixel_shift(direction) passthroughable = NONE diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index a2c6feb31d..afc0692513 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -66,6 +66,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/light_construct, 32) . = ..() if(building) setDir(ndir) + ADD_TRAIT(src, TRAIT_WALLMOUNTED, type) /obj/structure/light_construct/Destroy() QDEL_NULL(cell) @@ -253,6 +254,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/light_construct/small, 28) var/constant_flickering = FALSE // Are we always flickering? var/flicker_timer = null + ///wallmount trait + var/is_wallmounted = TRUE + +/obj/machinery/light/Initialize(mapload) + . = ..() + if(is_wallmounted) + ADD_TRAIT(src, TRAIT_WALLMOUNTED, type) + MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light, 32) /obj/machinery/light/broken @@ -973,6 +982,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) light_type = /obj/item/light/bulb fitting = "bulb" no_emergency = TRUE + is_wallmounted = FALSE #undef LIGHT_DRAIN_TIME //WS Edit -- Ethereal Charge Scaling #undef LIGHT_POWER_GAIN //WS Edit -- Ethereal Charge Scaling diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 579c4cc2e2..1b6b918b9d 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -931,17 +931,13 @@ return ..() var/newsize = pick(0.5, 0.75, 1, 1.50, 2) newsize *= RESIZE_DEFAULT_SIZE - H.resize = newsize/current_size - current_size = newsize - H.update_transform() + H.update_transform(newsize/current_size) if(prob(40)) H.emote("sneeze") ..() /datum/reagent/consumable/red_queen/on_mob_end_metabolize(mob/living/M) - M.resize = RESIZE_DEFAULT_SIZE/current_size - current_size = RESIZE_DEFAULT_SIZE - M.update_transform() + M.update_transform(RESIZE_DEFAULT_SIZE/current_size) ..() /datum/reagent/consumable/bungojuice diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index a6c455328d..41246e0caa 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1922,15 +1922,11 @@ /datum/reagent/growthserum/on_mob_life(mob/living/carbon/H) var/newsize = current_size newsize = (1 + (clamp(volume, 0, 25) / 100)) * RESIZE_DEFAULT_SIZE - H.resize = newsize/current_size - current_size = newsize - H.update_transform() + H.update_transform(newsize/current_size) ..() /datum/reagent/growthserum/on_mob_end_metabolize(mob/living/M) - M.resize = RESIZE_DEFAULT_SIZE/current_size - current_size = RESIZE_DEFAULT_SIZE - M.update_transform() + M.update_transform(RESIZE_DEFAULT_SIZE/current_size) ..() /datum/reagent/plastic_polymers diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 736877e375..1b2679cc39 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -52,11 +52,13 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) if(.) operating = TRUE update_appearance() - begin_processing() //WS Edit - Auto Conveyor Fix (Issue #331) + begin_processing() // create a conveyor /obj/machinery/conveyor/Initialize(mapload, newdir, newid) . = ..() + var/static/list/give_turf_traits = list(TRAIT_TURF_IGNORE_SLOWDOWN) + AddElement(/datum/element/give_turf_traits, give_turf_traits) if(newdir) setDir(newdir) if(newid) diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 4b49925614..bf112e699d 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -86,6 +86,7 @@ #include "autowiki.dm" #include "bespoke_id.dm" #include "binary_insert.dm" +//#include "burn.dm" #include "combat.dm" #include "component_tests.dm" #include "connect_loc.dm" @@ -119,6 +120,8 @@ #include "species_unique_id.dm" #include "species_whitelists.dm" #include "stack_singular_name.dm" +#include "status_effect_ticks.dm" +#include "stomach.dm" #include "subsystem_init.dm" #include "subsystem_metric_sanity.dm" #include "supply_pack.dm" diff --git a/code/modules/unit_tests/burn.dm b/code/modules/unit_tests/burn.dm new file mode 100644 index 0000000000..675bc4fbf7 --- /dev/null +++ b/code/modules/unit_tests/burn.dm @@ -0,0 +1,17 @@ +/// Tests that no runtimes are thrown when a mob is on fire +/datum/unit_test/burning + +/datum/unit_test/burning/Run() + var/mob/living/carbon/human/dummy = allocate(/mob/living/carbon/human) + var/initial_temp = dummy.bodytemperature + // Light this baby up + dummy.set_fire_stacks(20) + dummy.ignite_mob() + TEST_ASSERT(dummy.on_fire, "Dummy is not on fire despite having 20 fire stacks and being ignited.") + // Manually tick it a few times + var/datum/status_effect/fire_handler/fire_stacks/handler = locate() in dummy.status_effects + for(var/i in 1 to 5) + handler.tick_interval = world.time - 1 + handler.process() + TEST_ASSERT(dummy.fire_stacks < 20, "Dummy should have decayed firestacks, but did not. (Dummy stacks: [dummy.fire_stacks]).") + TEST_ASSERT(dummy.bodytemperature > initial_temp, "Dummy did not heat up despite being on fire. (Dummy temp: [dummy.bodytemperature], initial temp: [initial_temp])") diff --git a/code/modules/unit_tests/medical_wounds.dm b/code/modules/unit_tests/medical_wounds.dm index 9b00f4eb7b..987d04c8ac 100644 --- a/code/modules/unit_tests/medical_wounds.dm +++ b/code/modules/unit_tests/medical_wounds.dm @@ -1,7 +1,6 @@ -/* todo: fix the god damn unit test... //are you kidding me /// This test is used to make sure a flesh-and-bone base human can suffer all the types of wounds, and that suffering more severe wounds removes and replaces the lesser wound. Also tests that [/mob/living/carbon/proc/fully_heal] removes all wounds /datum/unit_test/test_human_base/Run() - var/mob/living/carbon/human/victim = allocate(/mob/living/carbon/human/consistent) + var/mob/living/carbon/human/victim = allocate(/mob/living/carbon/human/dummy/consistent) /// the limbs have no wound resistance like the chest and head do, so let's go with the r_arm var/obj/item/bodypart/tested_part = victim.get_bodypart(BODY_ZONE_R_ARM) @@ -86,4 +85,3 @@ threshold_penalty = actual_wound.threshold_penalty i++ victim.fully_heal(TRUE) // should clear all wounds between types - */ diff --git a/code/modules/unit_tests/status_effect_ticks.dm b/code/modules/unit_tests/status_effect_ticks.dm new file mode 100644 index 0000000000..6f3c43c7ad --- /dev/null +++ b/code/modules/unit_tests/status_effect_ticks.dm @@ -0,0 +1,23 @@ +/// Validates status effect tick interval setup +/datum/unit_test/status_effect_ticks + +/datum/unit_test/status_effect_ticks/Run() + for(var/datum/status_effect/checking as anything in subtypesof(/datum/status_effect)) + var/checking_tick = initial(checking.tick_interval) + if(checking_tick == -1) + continue + if(checking_tick == INFINITY) + TEST_FAIL("Status effect [checking] has tick_interval set to INFINITY, this is not how you prevent ticks - use tick_interval = -1 instead.") + continue + if(checking_tick == 0) + TEST_FAIL("Status effect [checking] has tick_interval set to 0, this is not how you prevent ticks - use tick_interval = -1 instead.") + continue + switch(initial(checking.processing_speed)) + if(STATUS_EFFECT_FAST_PROCESS) + if(checking_tick < SSfastprocess.wait) + TEST_FAIL("Status effect [checking] has tick_interval set to [checking_tick], which is faster than SSfastprocess can tick ([SSfastprocess.wait]).") + if(STATUS_EFFECT_NORMAL_PROCESS) + if(checking_tick < SSprocessing.wait) + TEST_FAIL("Status effect [checking] has tick_interval set to [checking_tick], which is faster than SSprocessing can tick ([SSprocessing.wait]).") + else + TEST_FAIL("Invalid processing speed for status effect [checking] : [initial(checking.processing_speed)]") diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index bb63eb2b7f0ed5f486bf924e7fc009cfb034276b..e88c38ab33e98fa53869f32b857753391f2db7d2 100644 GIT binary patch delta 16012 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 delta 15790 zcma*N2UHVX)HWK5G${(wQ4~<=y(2^vL69Q738DAi`ykSbD82Vy14u6kARy8~dPk|D zLnwj3jqm$@_x}G{_rL3A<*dw{Ig@>6pS_>`?0shYi^%q8kuNMjkdKCrn~b@usf)Ff zo3*0@2;`Mfsi)+)AWAH084xmNnE4UhtK{;-{Huwo(Y)lIZjSvNm2A=n`C&mc(${J3 zt7KlKJW+Ql?vrfR2qwnTOByut@_=VKueciGF;YUJ&F>RUdS&M6x>moJ*T*{IA@cCJ zp>Be)H>hWe4`l@4jmn)Ed#bzI=k;wtTdf68tuO}xp6dC5$ySq{)oHuoG0tkSUEFFlgx7R#qjSJ!y`6mE6yz+b-t)N z(Wp%1cgCavk3U5ch^1 zOEk?o9LKw{buxV1&4|keZ0KC$b+hjJwf0;((d4^kdYAC8k57p8T-iJ4hf$LY?H7Cm z=1p<8HzzU#5QoBpBc+$@^UkxO^sC8!I(%@EioN&e3*S`;2#vTM0>SzGJK{o?(7(16t)X9>N|1IO^4%Pe-hWx?KF`|-zl-_!Gf zj_weL10?)OUC*j764et%{Z((z_K7q*({4qQD8 z0oc$P!n1UEtBIF-OH40fQfQphp0jpcRp~QBclEk!FX_;-1dWy-jo1szKOg?QlWq3S zn8{&^wXxYUe^Mo3@N_4noj(KxT%npmj=)k7d>w zb(y;dCL^u5^PC?H)7g#_+1N$cyDOS{{^6=r}&#R6AT{kK3D_ zGXC`mevSk^i&l8;zK~(}$WmaEl-MONMPA*LEJ}2C+2H!^Z!_S?=lR@6X(2T^d*NSC zt#%&1n5FK>4T_8t(N--kahMxW9-?f*8ry;tnq!n4LXeAcs* z*GNZ*-PXQSeJ=*|nx!0ndJEEvG7Mr$$PtpW7hgKp*nAfJfyk~ou3il{G<_%m`c^E? zl-5x+i6^`)H>#n)!F}fbP#Z2lb62TbIj2#wd^K$#$#}x(jbgwfR2$buKp^n5*5yGE zd)eJsTQ7k)Te5U^q-R<^uDAY%&m9UQY!r;zd3e&IQg&w$-!#F5g-M$CyG&>mJ|CJ> zr&_?4F*aVK^8OBs8x66orxtd&iKrq>BQmFs8l{Z4U9+RpjcipssM$%;1hYP)tHqI1 z9$V(6w{dt$kt^hO7g)5du>hP4kIoR4nyezJ*wh=rTXs*z5TrzSc1yy=O)bd+;)xph zZXq1zGfWExNyCclcyaM;BLXDQc7DbDCx|pLE^`vQzDn~n!^ciBuT*a~$!p%YE~WA% zm*~bAHD1wAmXM64yY`BIud~cu`dC3>QV@hY8?1QCX~w3}Y@lXuq6CO#xU=Wj3SwxVkZlo9_VA;HEr^rYkkwy!UF!uCYRaFRz9U$7Z!|YfbA0C1u4n`lXSPl;=o` zc@qKVwq@D!N_qG&Xvr{NnXt#F!uw59a=_|5-BWk)np31R&G&&E8;kcw<~U^)@318+ z?<5O&+#4+Hk29h;Yo7!@b}!25y5syB402#&_cstgMT!MG-8-2AILOdd+6W5O{mC3@Z zH(0L1X1pJ+O_bK`ai&+ykoMI+K^@(FGF58HqVHI@J;2OSV?j-G1y)&R%pY0K`X^xA z;zWK*UU>VI%IZ@WURW0%7N%ii8V;u6V%i-{``eF?X#|)?h-pNab{Er#8@upGu0sHt zusizX_lUnUVAs`TAkF8XgqvL0c3RX8fh_5*DU`Ds!mUjDiC3TU)ZAyw+C}SIwdvbf zOF88aAL_=Z1dBVyF%2$=9o^$iq7E|((5YpB)^zqh)^8|C?Ew2MIjfA!FFJa{9AT0Z z%PN%XsoS1Qn|tSp!5d>I0n4nRu_b`?Q*muOVrLS`M#CB3cLQ^gG}5ZX%qr~qTswG;DYH(b4gtJ07 z{+Dnw%l%B8vC4GgAx<-l#8>HQPbjo11D#MxW{3^FUGAoO_Ymm$Z$e20>T=FD z77=MOZ63+lpGnw&`jgfXUe{5DqAY@l>@}Kvi=@#7--7DveStxSZ*ir`vTMHv$@#*F zZ0|0+HN^Yt6_k`xmuBhQ&9r07hxC+G=t zqk4UQg#=bvtqiWBkgjIzGo}QE7$Mlgmw#u2OWnxk!P6JWJV*0+c8aLJjXc#JoX| zF^l@|S1rnkzg*vuzubD>NH*TYI^>_LdFupoNt+#ykY>F(dm(Lz;b~T`LV|32z}9P; zxhUznf%QwdeU`;MpN-%_el=z`<$iZd_@LX3iSix^nL= z?_2kY8CSC*SkTgGK$zDQ?|GCxk!JZ=Y;6euLI$>l!Su977=_EcTQj$5ZrtvvG+sA1 zIofeX3+&sM#LFP-9;_L23)xRZ=`s&Yd|$K27yRH}J6BQSmv+ccy)b{e228y@7Oe4_ z#~OO&9fR;@uN_R-d-AuQKI=5VEjeNL{r>TxKt0h$v&oUFtH<5ADf8!?v{}dnsw+LIm{q~&8y^@gy zA=A{AajGbfgh&jw#UBTBal6msWD}}F+Xt=R-GYfj=67AvP43h=y|&NlAzHorEjjxu z2_x|C#q_WI1pPdxA+|g60$JYO0?4g|A7!4L_lvKOms@CkYW^;e-WGnT$>#IZ*x25bE;5G4y~r?1jeTxI$Jl-q?@W~7YlB(f zeas@1c3KySGOBm|ko}clqibWK5MTNlP^|~<3l-`m;0c7-un9e}QK)Bk7w9qH`DWY2 z%9&TBQ9f?ApL4e0@7cB&MhmxBsP`G?3@@_xuuX4V@>a#TGJ}FmFQp8}WYEzCpVnHNE>OlaCn)X&^B)28uZF2PA5Nv%fk4<`!@ud`>vd>lxy$_rM{ zOHe4x4Hde_D$ElfDifdQM!BjK->+^Z?A2uGnGRz1WUO@Sza&baa2Ju)gyhHPdJ-C{jAO3&)5kb(~jBk^J3iDobl#|7h zKGOeU`ZrcP-y+}iXOoHp1fhMxN(zWrQd$#oBCq4+L)$B)~Ayj^nRwVl1ZkZLI2b9 z>u>5oRT}IhcTywsWZ4eV27T=IOvYuNjF%>1H<*@cpxW%zYm6(%RsOjBor%s)oC$e& zoS^B6#>;%?shtyb_Qb4Y1Awf;NIbfJO^hPuUyOSCHS>Y#v(IG{Pv5-Hy!o1ZFFvu(UqzE;Y?Im zj!Qgtc~(AW|1KZnti!rrzS7|B>m{TQiM*fy_ZOAX1eEIdELjI*{cC`1ELI3ZiK(W@ zxI7{SNJ#4Q)D7)j8H3TOb`J%s$?$}KdbiYzE-6J+sT1B}@*+}ZwMh2I{*)G3W@!*- z3U_J!cjt38y_yNt+c~G2Dc*4{F?<$z+*XLJw`vugqim=~bG*+LEb4j$=_MSL@3N;Q z@oO7JlOhWpy=evZr|0`wqD)v?NV-Qibon$8jaW$}30OdN=J&PzkLc0uWS_U}d*90k zD2ug{BPVz@X*8^rW`t;r?mFdGIsc7>!Ghy%k@?}N$&ud^W!y%9GG*rnwC~b-Ij|N_ zvWwIi-Y6yrvQ(Mn`QA(jW;0nB(vfTP%THX(z0orEyf08~paT2Vjus>UcguwscVpxf zYH62eQ=X;Z?cmK=w-vfFT*RggiHuK|-#$%dOCjL_f7V=Xx}_#ZnBLOUUTyOEc6>k*@@{_qNBei_B4OiX6U7dIziT<| zOoNv;UqV2Nlskd~SGtMq0gCk`-z8^ZDL`}o< zc}$7)s}wT$CFB!HMRcDM9I8k{|*izK5$ zn;7S+z`CDLrH87)Me?YEY0X!=C$c`Hm9S>?a!@=#aML!N1#9jRWQP8 z_wXUdqIvpzRg&i-`vDnr`wcC~A@qihbE5sLH$oW;O;^q~1xjEdGq3wHzFkth0}4+< zl(5C-f6~0B@u%!>grZc1uB)P$I4-H&iEBGH)}lL=7Wibw;>E~R1vh=4JqN+FOoDM|W@yKF*)Ngm^EfwiJ|n*AbU zd?gAU5uc^akCh6ZeIQ@<4L}iF?r>Bb^%xxpc&1Yoc8;rQk9Pn?_XHBCKn}!&Q^VP02ON>Bv2~XHwOsDj*HxW z`!HR|WVgX4j@Q8K#t7=B;tE1~Gmz@h20TAE@RnPC&Ep8(DuzMp2E>I#%4HyT4D}m= z8eHB0&DuNhDCdelR5(v%<#NHo2NMrjM-fhp1~18M|Q zNZiGJq4(gcTom)e(Zs~`&rLC&kE2=MIel z9ep~y{Jeg`ksbS2p6dPj&40U#mUUBGjm(TLn$!VnOKs)EzZZAvkhcqzKz7r&{J3;; z)Ln^Im*NczOVD7ZqyWro;8(*$?Wty*#&L+JBw-AzHRq)1%Jx$+G6xD7kDLX2*Drt#sVztoXxu*O8bf@eyr z=yF{-@Q9diO142)OTe%S4@wL#2U*DBg)WC?9(&`%ok5yOwX_&rRk!ot=TN|()_WLW zjA!UjaKUdhV7Wpa3|>a=zbK>Lh~A0A=;TpRHrVmzl@5^d5My*38)eBJ9vg=Efz6l0 z`wSN4s;BPDFnw@#wVTf5=U86!toP}L>z2#T$iwneJ27K~zE+1LMxQI!cJ;;i9E}B& z`?owq7SrIwND{=z=`1SSa=n!U`uTVt;I`!aB6M4JbY;YFnk%-CWD&F?7Q}-g+Ro%Z zcb40mlDjSj4_xmw)!aQP*>i)9E#tbTLH5twDLA{vK(AlFrUE4ltpB37tQ6FOn+KLI zoUt+sO=|cpS*f?Oob`)Y+Z(zIL!Ul#hT8^9RE6y^)W|c$bAaRWPBy6f-SQ2a+SceiIO^}%CUOcQ-@L;Oi$bs|+ zByk|$M3WDG>gp<+JZa1Y8l7#2^Rv4)5y9zu?biKy4-FsqXP)2ol<$AIh~<&=_*n`` zl{hdXO>7B}dsNJM*VX_vh4Ey5&_MJH;J74DKznZ=+d_Zm2I~eT;NNgF897OULw&Uf zX!skjWcDh&`qcYniH{{$+LWNf;Vg~HL*zMZXG2?K;n|GC1pjn+F+4Ohw1T<55B=%& z)E}?f-tp1VFFk{to2JzbmHb+=D{NnkhYDB;*}kgN-EEto_9uoG#OamoB;OB?2Y4B` zG^y@m!qiAwK(417X9XeUx?})4JjH2WxV9HgU>n#!ZWbH$^p-_O@^alrWq~ie0H(o* zaVD|d2SY+ogo7r?j{%MwXoACWt~;Bm zLz-V&gSYi5U)cX~9xMef>vOp)ZaUyNjq^LrKo9fGSFpRgR<&AyK-i5tMtNe_5@n)W zp0}#V_*VsI52Wwy5ejr>;OVHx4Gg&sA>lI1ru&WRMof4#0twF^$^yz?YQB@}$PI&> zNm#QY{+M&Vp)FVJik^%ZW&4t6p{5nDZCwG8{YG7`k{}`(NfwI*U%a3^e{Fz95#G2H zq9B#q;Fa84%^uYG~fSq0MFxhQ=%E69Qlr=lgmy{eX>dEpVLc*D4Y*GLKHVsxRcrVrZ3APrdt(4J3XF^6V#ud&`^e64rL@A#~5K=un^&s>jCju)L_i*X-aQci$O-;V4L zP}HYnfNjdA{@aTo$yjl-N)JE=amXt5Vnety&R+gyq#=jWBfiyu1t(mfRoc> zhhD542act4$xV~E4q6%<8p<+5Y4!MI8`B)PyU|J}Mo!wCj~LwgJpv38iKGUnU^eUG zBs%W?rVX_vHZ*ds(Bayv*qm%u-HJ;Y(;U808m1x`Xhn7gAa#OK9X>h{n~1C>QF}mJ zS}oW$$U_;yzm7)(FI}9>ljp-!Pv%2s%g*Hr(p!(peTW9FgT#h-s@+mp(D*51>w=vb z8_C+@ig7ou2e(|(03+p-0gi{ypuW>!HcHn>So8$S*&o>0cq);cu~pP zE`o8Vfn{iW1%=}BP8v8996zAztwGXF6WD%cj11WpQnGE)5%g(Hn>sacky5k}x_o6i zDiHcNRIQob%hjovB;-h;0zG*5CSQk>PQ-uLqFh`*V%(g%< z{tUXjbBOTmuWF=}mDuLvbt|a!Lbk6>UAs^>Z?-=wikSeN>~xodb2>;!pz#7Ar#pdB zAUlu~Tc8}s57%SO^2sjK@8?)A@aL~D2m+VkRg1tWm0jHqr7BLBIxLdN;oA+k1wqoCJ zNmQ>?N1)R0_E7hhJ$lmx%8l<-t5FP){LUHNl{(ni)dhZORdy4e#lOY*@>y&x1>lM=LGusUt(wF3nw+evv*{i1!) zQ}ckyZ&@DcM)Ii;p~~ciXF6JgJc}2!9{@~;v^;O(q2St1i&A;c**;6M9fNFVsvcL_ zZz!P6fprlJy_13HISVNH@;1$Xp-v^s^~aEBNKUgLloLiiZlPGg4s8Z}E5#gHU_ zZnHyvx)fz2DzZv7?9dElzhB-k*PgmB0>k_jk;V@_w{hTWFI*NAZR$mmZGSZaWxX$m zZ6h>G+erT`S+8G(ji5HaA{ySO;vf1*LH2&E4_9Jnz# zZh5ei`%6ez$d-BMpVVm}!h2t001y|Fd|g7q3_x@^Iy7VJ-RUhfD54(!>72*z=ZLO; z53|0@Qq9}(3SGqYrLF6N2$|mS@|fs1$1lgZ|8;=WlWak|kH2)C3@536q(rbaP2%q|WbWk+R+}-+R7jFJymUFS zxou00vm4>fk!7>aBN+a!`XB+_nG{ZbwKA)niZgd6aBb0sufQs zl;1sVB}kww>Q=Q;dyN_-&>|MyS>;S?I#Owt$mFqgcku#j z|Em8#zh6ALccXIsL5G-!>b`*{+3lXZFf-e0BYU&H(|3zV9Id5u`o35$)g zn>^WeWrij}XDc6=ww(5kY@sUnA4qZp`FZW^QfH`=bIM5`0|TRB8&_oG)mko=(HZVt z7_K}p!faVTiPpCiKcyb$0D=;#6jb$Y6jnV2o?anp;g-Jr ztatn26USByE}EqNrupB2+LNeFx)0LR`jm#pQJzEvCuzy)6(n@PIu)WDj4nOekOSNJ zy9{&NYQ!DpN`&i47Ab=&xF?jLO5sF-rceZ*61-~CjpmF|xD})W+Q8)e=@I$2g&h*y zqVb57)ouNUGnRwDi#~*@Rt@Vr3ZOqL>|bB{xyy!P64%(g<g2sJN+09WeXK21dB z`In92U&lkr)QkiAc?|Wd&wHf{Hj+<-QlDu&c&*excwVmWP{UoVb(GjFmH=u?8d#mq zX6#Oz7s=VgSJ4;9z7AZqyIRe@`E{`f+=8dFmjE7*taFLqwLlC#JvlGF$L_tG!pfwa z($B=i`hPP~OmYt+T-k)$@^WF1-n~lbU=L*e+mDq(PfJsUF%w}4e%=L4zR~7|aUBZP zeSb5f8J(GCBP!Rr5B{c)4se_n$_7WUE?aJ>wE~W>F-3x<#N6tuoBXZD-{_I7MxzE_ zhosgUq8I2l2U&Y%r)!GI4pk()z~2(&`MFNh4a@Co-vqMLfP>jOE34ff(H~>#T7|z# zZCe_^c*Vs-gYOPcmwL~Urf659r@u>*B)S&X0l zvVe(U1{_u8K?73UwBPGDO2q~tUL%*YJRdbKN;Wfi42_7i^^P0I1^}myAQ0p1C78ad zIwkeK^5+<0;%u_{4>}-;qmxIwl@7^WQkhVE_$yEyRE033vK`3;dTvb3B=^hS3RCOY z+$>%eSKn?w4B|yi4p$X6H_uwrqDK90RZr)SZcZi!mP=1N2vyM`nFa@$Y3Z2}`PFn~ zn0?II9_yexh4A4*0M_EP-PQi|kDVHXWqR0XZ!{ig@2joIS zwI~_y_-Gd5e~YwNa(xQr-$_`DS09|UXPFYb4e+i{{y1yq!?a+>& z=d}q_$yZa@phqn~DyRX%6Ojdwp<-7>UJ_NKfW~ zlCS_I?fGY-pD)Mm7&*)el{`u%Dqi+B*;g#o{wyW93_L)4wB0Hkq+jY0DZRZNQW)Ne z$<4+sRI_fJz#XtT4(a`JP18pHRzBuqyCLg?sjaumVo1%U;%Rs8bL@?7>3VqC$HgYT z^K`2HJNNipdk3ovNLX_)6vl0$7B6MGL2)*D7)n9}fZ=^YSeWu*T?OMboV{|cjZK+R zb(v!zILg+DvN$T;j8@0EfxouF_>^pS#`r^nb3QU+Iv|44@CLuh!9=?o39h6ynO55E z!YnvQqQA#9gswF28~%}w+v z;i&*79s3QP5UYq~9mGlj^Sc{&oQXyU#B%yub=IN%O$Dh{L`yQD!>Cm=0@JUKO6{^Nv# zlXuSbrvMO6ni5+v+lF7o&j;nUs%ZXK{IxqYZ~oH>4@W!YB<@5d4|Dq+8Iex6EykIe zZnzv+PoxvHQtjA64{{O+Ebc(x0l`;CZkV}mhN%&R&;v|ekDxALhD=-nYo@-7CRw{& z=jJ4v{?5cVq9W^v6r=h-(ILHHvAV8J{+D~xhZr~Buz7|HYIUHXyPGQ)bZWXa@}yc5 za*lpCIxRiEO>baIz>goNyu9`H$?dFNvpS8KCvRa6L6um8i)XjRQRR`Lml@WxiLh%)OtE*2 z_k7wWyz1kFlc@Kfj62I5S6v-8-}&D6GtBkgv~{L1+I?gd#hgp0h073V`NTquGu&v0U4#6f~1b-co27v z&1oUH(k1zeaqsi`c^>vR=F~Kp9>?^4+2>1XZ@3>Cwzqjx-)R%U0|IK*Ai;WiK6eWk z`5PpEF3img%S*f>{kyF(he1}wL_#>q;u&Z=UTQl#-);Ku-b%h{nIh|y=VGuzYJjt* zbA0nMgSz>vnhwM>jmT47Rn(QoF7M$dZBCGqJA7e-+IR12lKr^x!^hW>l1_L^cU zYx$xlAI|gW4rqa|ab5a%?pOTEb?|NT$GJ1PG5asL(p${i;xghpd=cN2Y>4*^W0i2} zUiqKicn27aR$EnbCS6?fiF;tKb zIkp6McwVd0WxNp$qna;sgaZ@VM9QpYPI!ggQqXwCH8boHsl%UG4QGzl0f zNEGQac0%n|T%?Q^AwBgv`_=g9Hz$B z5q#_Z_d1U%>BC`N5Hw&h@uR)xz7H)2ca@r6^gnMAF@=~df$o}2duDer2J}Q+hi~g?36GGvq3-B^GECZ`)kC4!?hr{kI`DUsJB-r{Kae=v{2K3BB~#!9NqCs zhfs4F=m37Fd+Iu{eTCfxWbK{6=zm{X3Qv&6O92%d^03<{qkBlG0U4H~b-|8|YCejJ z&^HmhK$e$Zdg8!3`84{15$FO1W?yfG-N?;z9LlgAP<<#LmqS z4y5yMA1Ls&erMwRAEOjC3pCHL-M<#Ea()3u`qUU&Zu~;@G{Cal-9}*h2wl1JYedI? zCk{b_JUkhp$iQzn3u6ZFQ<&+o;t>$%YL-@kunp+J7io0CAoruDCB zvD<&7uwbMxz{o!0drC!gAeRp8!w|Y*Q{eeglx2EF_3h7kNE!G50sFawAQSGmu96_( z@sv;qx|~>Eh5#?5q#j*fUR;Rw_VqdUJ@j;PZ&OU^?CcDcqMdJabOdN188wBvkn?NI z{`fr^wJ%syFEf~aI^X4eo;z}T@50QY3SSzryfpnO2kCf#z-YAb+`TuqTkOfny9b_N zWmAlNcK*%}O%$)4v&cwE6-0Cw&~gvy54`D4C#3$F{*(AYdLw^?BNENQH|mvfU1Jc7 zd)9w*ywG@~#RwSO{4PMwdfekNfFb%kB!kQmQWTdy?{DR|a8@@UX7dSy$OHY^Vl(u# ze+${mHl%jDl)Rrm*0v!qiE^G&IiC(AM&IGM`WA4DRoRO1+2;|}JkM(fdB8ef{a#7N z$Hyy0up4#}9V$bVl$8}2wds(W_bhG*F&n~6@@kHO00{|+F39N*F|U|m(v9}SCyDIu z^!Pq6V&6fawPbgB_?(9_pBeh?1}sBLuvRdR*R(NQjROUw!IJJ@<{cc5CQ*urgKMnuW-9dZ{0eStfjEmL%C ztjN=nnUjA1-xouF`tke?=S%c~%bW7JJYUExd z6H3k~-GaXldPpvCicjQQ9+?4yBmQ?mb)WYyrz@9-p=;+a`Gw#Fj?bPycfR=E3JN@- z;wlA8`I)GoTk1kJMqM9g%rcEnag6;5xY<4N-Knne74tJ88_s%>rRTqRqH+%xkiI8> z-zu=CGVI`>LER|8-aH+mY(E8q_-eX${rhUz+RHbG>E5ew!VkW)#y;o!JaL^zolJIk(pX2Iqb<$<{qr)+S2I+UBGmQTqb<4|Ka9@s>cXBrZ4Qm_gyqZ7zx>ou_lWACnH61*-+cbn z!~gN+e^^QAPgF2}$euh9dR1SrvK`7dD03*D`3~s|{J$Dg_G68c`6K=S{S)shDW|-C znr0uTx23vWsGG{~i$2Et%p@rB&FsICBd(W~DypUL9-%I>wgjZ(oG!&*X(}z?TOF|_DEZi{(Ohl*TgjIgjj*U};p*sp z(RAEh8Ge4$`|;5TEa|)wM)|*ZE~oxE?efiMrN!94Kn=PQ%*5?Swjh^WGU1B<9|+I!a%S`8AW&Ixle~l1hgA~4Z3#M)5zsPi687%t~0T+}4$G*Tpts9~hJSwI_ zZ_0Qxhk-?Gru}PQe<;ZWekH60Q8u03aXaDPzBmou+Kk2cguel`glBs+C3X3>uN%-Q zUY~O7L;h@L>n6y3J|<&2+ja`(<3s?NzqY?Cs!bLx>3Iy4s@T^`T}H&H_4SV{gD=O( z3hDU37ptVpS4J(?W0(jOM%vC)uksh1?n(au(bLh@f+XD6t1b%%t`*{-a-(7P)#|qx z74~6Z^Fy^%2qpxJQB1$Vgo|Ya6DC|7xZk%z&!78@LrYGcwy^j`wrJ`Dj3vAV2x@MR zuQlFnoiyBH2$~t1=TE?Na%CIU0H7s&?(MVln5tqoY7rp+|Dp^p`R5;}UKX;W*M(sn zuIk$8IZJ>qDz~ssL5a8V68RjxStTi@>zipB#06==b?oqG`1I-1g|4;ZVv2LO;sdy_ zT3c3YHP%buwz(4nBa>zuoRAg(m%3VKc62xba@)2EYC7i=6%9W+a>iW2l~c)j8xlab z@von;Y?+m5!U{%2)bl8w7bm;i3QmiMVxy{IYU0IV4O zC-Gg@K4OipBApH_9s2(KFVp|2O6(RywB;+X%qNt}CAoTzgxhQV*? zA1wEJ0~zgaxu{xi!f)Bs|DuO=+pVdx~?wP5I4bJn{et-Jvs*PlG5gV4kA4ol-5hWmWARV}B^E;QsVA zxsIw8?`Q1&H;q!~{)GRjKf)0kh_?4M3st{0s(rH+FY0{!|KMF+{;%rhiSJRdi_2~m zJ_7&d7dc0t;^~Wv9MGH;9_ZxCt7u1{uV}v*>G)&@1+g^jZ0|5Khg2ZX`BN|;XRiYo zpa!%I5f~0LVFSL^yuR)iuebj)g>u&xPBjYXO%dR;-?00=bo@im?6Vj#rrZ-6e%WIq zi{*iBeRa0i^!u{}XeKoJq@`8zp!vi-hcDG_-#!1v3&U;$GV76L?N9ls;3dzYGwr;l z5tO-}4b!Cu`^?+_MW-XKAhHaBTrX=V%iH7c@{d|O=#zmSl7|2$gK%daXcrpy9zv&` z6v!o^m`>giTYPzO{ewc(XB^%g`(o^iiOch_wycwAW((Gu+l4oWnbTf`Pp68vXlDFH z4??D;NKpId&;AD_Fk7g#hF(&;_fL)Iiw(ettt?>if9En(PDOB<0DUIi+5w;%Z2gJC z=%g%;uLWk5IHn0EB!@P>6jy>C&l~7?bvf`D+%^Z@>68D0v9NLLAoPal;qT4i?OTsF zVk3gUkKJKKm;x=#{&hPVLjWWnc^%SUbU|W-w=N|;r2;S<0NH1ISH#$5S=3O}2^-_@ zCD!>>z@B;37|aKni#`A_tl`seAx^R>Iy4<88+^DTayW^9+ai7Y92`IwMy9m7CC{9Q zLj4C3A(1P0|DjD`7}^y5f1*v{P0-bTZFuGHNXDQj2>pdy~*KQNP z0rb9SL2Pp0pANuzdDGZyrPJ|ShE$H{zoeP)2WUXlkzwnoZK_e~0=2YOo;8i3<~$y^ zWym_^xxYEH_LMd9pIoZ|lP&`OM=P`tYk}4_r!*r6jWh@eN{C`GCi$`_?j`IYe$^ue z8wETANzq`&Yp1X@tkzTW`x{c@1=Xe)aR7#-TmO|O9rEQ!Gibr@)W?P3V*}<{!If&avWH1RWWwDBg Date: Sat, 24 Jan 2026 08:34:46 -0600 Subject: [PATCH 48/53] Automatic changelog generation for PR #5548 [ci skip] --- html/changelogs/AutoChangeLog-pr-5548.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5548.yml diff --git a/html/changelogs/AutoChangeLog-pr-5548.yml b/html/changelogs/AutoChangeLog-pr-5548.yml new file mode 100644 index 0000000000..0265186e6e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5548.yml @@ -0,0 +1,18 @@ +author: Smartkar, Ghommie, Melbert, Jacqurel, Rhials, Erika (Porting Fox) +changes: + - {code_imp: Updated some status effect tick code to be more clear of how long + is elapsing between ticks. Some effects that were inadvertently weakened + are now stronger as a result (fire and some heretic effects).} + - {bugfix: Fixed grab offsets not showing for anything but passive grab} + - {refactor: Refactored pixel offsets of mobs. Report any oddities} + - {refactor: 'Replaced hardcoded "safeties" for lava, chasms and ignoring turf slowdowns + on catwalks with traits.'} + - {balance: 'much like catwalks, tables and conveyors also disable turf slowdowns.'} + - {balance: slippery turfs won't slip you when walking on a table.} + - {bugfix: pixel offsets from grabbing other mobs now respect the body offset + variables.} + - {refactor: Changed some code so that resized mobs no longer look like + they're poking over the below tile with their legs or not even reaching + the bottom edge of the tile they're on.} + - {rscadd: deep water swimming w/ immersive drowning} +delete-after: true From 4ba868faf965395887a536275da1b77c295b3e4e Mon Sep 17 00:00:00 2001 From: Sarah C <93578146+SapphicOverload@users.noreply.github.com> Date: Sat, 24 Jan 2026 14:44:28 -0500 Subject: [PATCH 49/53] Fixes Phorids dying for no reason (#5817) So in #5502 I forgot phorids exist and made plasma an irritating gas ## Changelog :cl: fix: Fixed phorids dying for no reason /:cl: --- code/__DEFINES/traits/traits.dm | 2 ++ code/datums/status_effects/debuffs/lung_inflammation.dm | 3 +++ code/modules/mob/living/status_procs.dm | 2 +- code/modules/surgery/organs/lungs.dm | 8 ++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/traits/traits.dm b/code/__DEFINES/traits/traits.dm index 24df9782b3..1ac5ddf420 100644 --- a/code/__DEFINES/traits/traits.dm +++ b/code/__DEFINES/traits/traits.dm @@ -145,6 +145,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_STASIS "stasis" /// This mob is asthmatic, and has much more severe reactions to any irritants present in the air #define TRAIT_ASTHMATIC "asthmatic" +/// Prevents lung inflammation from increasing. +#define TRAIT_ANTI_INFLAMMATORY "anti-inflammatory" #define TRAIT_BLIND "blind" #define TRAIT_DEAF "deaf" #define TRAIT_MUTE "mute" diff --git a/code/datums/status_effects/debuffs/lung_inflammation.dm b/code/datums/status_effects/debuffs/lung_inflammation.dm index d468cfa7b8..133a29ba6b 100644 --- a/code/datums/status_effects/debuffs/lung_inflammation.dm +++ b/code/datums/status_effects/debuffs/lung_inflammation.dm @@ -61,6 +61,9 @@ /// Setter proc for [inflammation]. Adjusts the amount by lung health, adjusts pressure mult, gives feedback messages if silent is FALSE. /datum/status_effect/lung_inflammation/proc/adjust_inflammation(amount, silent = FALSE) + if(amount > 0 && HAS_TRAIT(owner, TRAIT_ANTI_INFLAMMATORY)) + return + var/old_inflammation = inflammation var/obj/item/organ/lungs/holder_lungs = owner.getorganslot(ORGAN_SLOT_LUNGS) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 837c83f960..379377f2b6 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -668,7 +668,7 @@ var/datum/status_effect/lung_inflammation/inflammation = has_status_effect(/datum/status_effect/lung_inflammation) if(inflammation) inflammation.adjust_inflammation(amount) - else if(amount > 0) + else if(amount > 0 && !HAS_TRAIT(src, TRAIT_ANTI_INFLAMMATORY)) apply_status_effect(/datum/status_effect/lung_inflammation, amount) /mob/living/proc/set_lung_inflammation(set_to) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 8b17dd0bdd..759e336de1 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -604,6 +604,14 @@ can_smell = FALSE +/obj/item/organ/lungs/plasmaman/Insert(mob/living/carbon/new_owner, special, drop_if_replaced) + . = ..() + ADD_TRAIT(new_owner, TRAIT_ANTI_INFLAMMATORY, REF(src)) // they're not even "lungs" and shouldn't be constricting in the first place + +/obj/item/organ/lungs/plasmaman/Remove(mob/living/carbon/old_owner, special) + REMOVE_TRAIT(old_owner, TRAIT_ANTI_INFLAMMATORY, REF(src)) + return ..() + /obj/item/organ/lungs/plasmaman/populate_gas_info() ..() gas_max -= GAS_PLASMA From 48b4b255088c107335e70f4c412d691e000a8bb2 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 24 Jan 2026 14:25:08 -0600 Subject: [PATCH 50/53] Automatic changelog generation for PR #5817 [ci skip] --- html/changelogs/AutoChangeLog-pr-5817.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5817.yml diff --git a/html/changelogs/AutoChangeLog-pr-5817.yml b/html/changelogs/AutoChangeLog-pr-5817.yml new file mode 100644 index 0000000000..1a7689c73c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5817.yml @@ -0,0 +1,4 @@ +author: SapphicOverload +changes: + - {bugfix: Fixed phorids dying for no reason} +delete-after: true From 5bab35745aec548359f832ce67baa4f7f737527e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 25 Jan 2026 01:27:34 +0000 Subject: [PATCH 51/53] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5548.yml | 18 ------------------ html/changelogs/AutoChangeLog-pr-5806.yml | 7 ------- html/changelogs/AutoChangeLog-pr-5817.yml | 4 ---- html/changelogs/archive/2026-01.yml | 22 ++++++++++++++++++++++ 4 files changed, 22 insertions(+), 29 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5548.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5806.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5817.yml diff --git a/html/changelogs/AutoChangeLog-pr-5548.yml b/html/changelogs/AutoChangeLog-pr-5548.yml deleted file mode 100644 index 0265186e6e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5548.yml +++ /dev/null @@ -1,18 +0,0 @@ -author: Smartkar, Ghommie, Melbert, Jacqurel, Rhials, Erika (Porting Fox) -changes: - - {code_imp: Updated some status effect tick code to be more clear of how long - is elapsing between ticks. Some effects that were inadvertently weakened - are now stronger as a result (fire and some heretic effects).} - - {bugfix: Fixed grab offsets not showing for anything but passive grab} - - {refactor: Refactored pixel offsets of mobs. Report any oddities} - - {refactor: 'Replaced hardcoded "safeties" for lava, chasms and ignoring turf slowdowns - on catwalks with traits.'} - - {balance: 'much like catwalks, tables and conveyors also disable turf slowdowns.'} - - {balance: slippery turfs won't slip you when walking on a table.} - - {bugfix: pixel offsets from grabbing other mobs now respect the body offset - variables.} - - {refactor: Changed some code so that resized mobs no longer look like - they're poking over the below tile with their legs or not even reaching - the bottom edge of the tile they're on.} - - {rscadd: deep water swimming w/ immersive drowning} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5806.yml b/html/changelogs/AutoChangeLog-pr-5806.yml deleted file mode 100644 index 6adb016f0a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5806.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Erikafox -changes: - - {bugfix: T4 drill missions will now progress properly} - - {bugfix: T4 drills now have a sound associated with their mining.} - - {bugfix: drills will now properly unanchor themselves from veins they - destroy.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-5817.yml b/html/changelogs/AutoChangeLog-pr-5817.yml deleted file mode 100644 index 1a7689c73c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-5817.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SapphicOverload -changes: - - {bugfix: Fixed phorids dying for no reason} -delete-after: true diff --git a/html/changelogs/archive/2026-01.yml b/html/changelogs/archive/2026-01.yml index d9e8d8efaa..27fd34c32c 100644 --- a/html/changelogs/archive/2026-01.yml +++ b/html/changelogs/archive/2026-01.yml @@ -109,3 +109,25 @@ 2026-01-23: hry-gh: - bugfix: the admin music player works again on 516 +2026-01-25: + Erikafox: + - bugfix: T4 drill missions will now progress properly + - bugfix: T4 drills now have a sound associated with their mining. + - bugfix: drills will now properly unanchor themselves from veins they destroy. + SapphicOverload: + - bugfix: Fixed phorids dying for no reason + Smartkar, Ghommie, Melbert, Jacqurel, Rhials, Erika (Porting Fox): + - code_imp: Updated some status effect tick code to be more clear of how long is + elapsing between ticks. Some effects that were inadvertently weakened are now + stronger as a result (fire and some heretic effects). + - bugfix: Fixed grab offsets not showing for anything but passive grab + - refactor: Refactored pixel offsets of mobs. Report any oddities + - refactor: Replaced hardcoded "safeties" for lava, chasms and ignoring turf slowdowns + on catwalks with traits. + - balance: much like catwalks, tables and conveyors also disable turf slowdowns. + - balance: slippery turfs won't slip you when walking on a table. + - bugfix: pixel offsets from grabbing other mobs now respect the body offset variables. + - refactor: Changed some code so that resized mobs no longer look like they're poking + over the below tile with their legs or not even reaching the bottom edge of + the tile they're on. + - rscadd: deep water swimming w/ immersive drowning From 5c02f757665afd58b277fb8f4909b67e2c39a037 Mon Sep 17 00:00:00 2001 From: DIB-DOG Date: Sat, 24 Jan 2026 19:26:54 -0600 Subject: [PATCH 52/53] Dwayne-remap (#5768) ## About The Pull Request Remaps the Dwayne-class Long Range Mining Transport. image image image The armory is shifting from a bajillion flaming arrows to a Volt carbine, Conflagration shotgun, Ohm pistol, and a Candor. ## Why It's Good For The Game Simultaneously brings the Dwayne in line with other NT vessels while making it enjoyable to play on. ## Changelog :cl: add: remaps the Dwayne /:cl: --- _maps/configs/independent_mkii_dwayne.json | 2 +- .../independent/independent_dwayne.dmm | 8874 +++++++++++------ 2 files changed, 5652 insertions(+), 3224 deletions(-) diff --git a/_maps/configs/independent_mkii_dwayne.json b/_maps/configs/independent_mkii_dwayne.json index 338aec2b32..a99c773c1c 100644 --- a/_maps/configs/independent_mkii_dwayne.json +++ b/_maps/configs/independent_mkii_dwayne.json @@ -43,7 +43,7 @@ }, "Deckhand": { "outfit": "/datum/outfit/job/independent/assistant", - "slots": 1 + "slots": 2 } }, "enabled": true diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index 63ff2c77ad..e9a7546bf3 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -1,2444 +1,2246 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ag" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/machinery/computer/cryopod/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/crew/cryo) "ak" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/atmospherics) +"am" = ( +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/griddle, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"aq" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 }, -/obj/structure/cable/cyan{ - icon_state = "5-8" +/obj/machinery/button/door{ + pixel_y = 0; + dir = 4; + pixel_x = -21; + id = "dwayne_engines_port"; + name = "Engine Shutter Control" }, -/obj/item/kirbyplants/fullysynthetic{ - pixel_x = 10 +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"aA" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"aI" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable/cyan{ - icon_state = "0-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"as" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/cyan{ - icon_state = "6-8" +"aK" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 2 }, +/obj/effect/turf_decal/trimline/opaque/black/filled/corner, /obj/structure/cable/cyan{ - icon_state = "1-6" + icon_state = "6-8" }, -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"aO" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"ax" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "0-2" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"aI" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/cryo) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/techfloor{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"aX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"aY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"aR" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/firealarm/directional/south{ - pixel_x = -10 +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/obj/machinery/modular_computer/console/preset/command{ +/turf/open/floor/wood, +/area/ship/crew/dorm) +"bj" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/structure/cable/yellow{ + icon_state = "9-10" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner{ dir = 8 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"aS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer2{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 }, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -26 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) -"aV" = ( +"bv" = ( +/obj/structure/chair/comfy/beige/old{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "2-5" }, -/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/west, /turf/open/floor/carpet, +/area/ship/crew/dorm/captain) +"bx" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/dorm) -"aY" = ( -/obj/structure/sink/kitchen{ - dir = 4; - pixel_y = -6 +"bE" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/obj/structure/sign/poster/official/bless_this_spess{ - pixel_x = -32 +/obj/effect/turf_decal/box/corners{ + dir = 1 }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"bR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"bb" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/item/stack/packageWrap{ - pixel_y = 2; - pixel_x = -7 +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"bW" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/structure/chair/handrail, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"bf" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"bj" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"bl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/office{ +/obj/structure/cable/yellow, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"cf" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/industrial/hatch/red, +/obj/machinery/atmospherics/components/unary/portables_connector/layer4{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"bo" = ( -/obj/structure/cable/cyan{ - icon_state = "2-9" +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/central) +"ck" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"bv" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"cn" = ( /obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"bx" = ( -/obj/structure/chair/sofa/brown/old/left/directional/south, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/airalarm/directional/east, -/obj/machinery/newscaster/directional/north{ - pixel_x = -13 + icon_state = "1-2" }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"bE" = ( -/obj/machinery/door/airlock/public{ - id_tag = "dwayne_bathroom" +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/toilet) -"bO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"bP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/power/terminal{ - dir = 8 +/area/ship/cargo/port) +"cw" = ( +/obj/machinery/holopad/emergency/command, +/obj/effect/turf_decal/box/white{ + color = "#283674" }, -/obj/structure/cable/cyan{ - icon_state = "0-4" +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"cV" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/effect/turf_decal/corner/opaque/yellow/mono, +/obj/structure/railing/thin{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/railing/thin{ dir = 8 }, -/obj/item/cigbutt, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"bW" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/item/radio/intercom/directional/north, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/suit/space/syndicate/generic/grey, +/obj/item/clothing/head/helmet/space/syndicate/generic{ + pixel_y = 0 }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"cc" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 4 +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"dh" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"cf" = ( -/obj/structure/sign/poster/rilena/random{ - pixel_x = -32 +/obj/structure/extinguisher_cabinet/directional/west{ + pixel_y = 6 + }, +/obj/machinery/firealarm/directional/west{ + pixel_y = -6 }, -/obj/structure/closet/secure_closet{ - icon_state = "cabinet"; - name = "Captain's wardobe"; - req_access_txt = "20"; - close_sound = 'sound/machines/wooden_closet_close.ogg'; - open_sound = 'sound/machines/wooden_closet_open.ogg'; - desc = "It's a card-locked cabinet." - }, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/messenger/com, -/obj/item/clothing/under/rank/command/captain, -/obj/item/clothing/under/rank/command/captain/skirt, -/obj/item/clothing/shoes/cowboy/fancy, -/obj/item/clothing/suit/jacket/leather/duster/command, -/obj/item/clothing/suit/armor/vest/capcarapace/duster, -/obj/item/clothing/gloves/color/white, -/obj/item/clothing/head/caphat, -/obj/item/clothing/head/caphat/cowboy, /obj/machinery/light_switch{ dir = 1; pixel_x = 11; pixel_y = -19 }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" +/obj/structure/closet/crate/bin{ + pixel_x = -7; + pixel_y = 0 }, -/area/ship/crew/dorm) -"cw" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows"; +/turf/open/floor/wood, +/area/ship/crew/canteen) +"dx" = ( +/obj/machinery/cryopod{ dir = 4 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/bridge) -"cL" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/machinery/firealarm/directional/north, -/obj/item/circuitboard/machine/pipedispenser, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"cV" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/crew/canteen) -"dh" = ( -/obj/structure/sign/number/random{ - color = "Black"; - pixel_y = -7 +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"dy" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/canteen) -"dq" = ( -/obj/machinery/conveyor{ - id = "smelter_dwayne" +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage/eva) -"dx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"dK" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"dL" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/ammo/c38, -/obj/item/storage/box/ammo/c38, -/obj/item/storage/box/ammo/c38, -/obj/structure/closet/crate/secure/plasma{ - name = "ammo crate"; - desc = "A secure ammo crate." +/obj/machinery/light/directional/north, +/obj/structure/chair/handrail{ + dir = 2 }, -/obj/effect/turf_decal/ntspaceworks_big/two{ +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"dy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"dK" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +"dO" = ( +/obj/structure/chair/handrail{ + dir = 8; + name = "overhead handrail" + }, +/obj/machinery/shower{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"dQ" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/cryo) -"ea" = ( -/obj/machinery/power/smes/shuttle/precharged, -/obj/machinery/door/window/northright{ - dir = 4; - name = "Engine Access" +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 }, -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 9 }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines"; +/obj/structure/railing/thin{ dir = 4 }, -/obj/structure/window/plasma/reinforced{ - dir = 8 +/turf/open/floor/noslip, +/area/ship/cargo/port) +"ea" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/ship/engineering) -"eu" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/effect/turf_decal/industrial/caution/red, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"eg" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/trash/can/food/beans, +/obj/item/trash/sosjerky, +/obj/item/trash/candy, +/obj/effect/mapping_helpers/crate_shelve, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ dir = 1 }, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"eH" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/industrial/loading, -/obj/structure/cable/cyan{ - icon_state = "0-4" +/area/ship/cargo/starboard) +"eo" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/half, +/obj/machinery/computer/cargo{ + dir = 1 }, -/obj/effect/turf_decal/arrows, +/obj/machinery/light/small/directional/east, /turf/open/floor/plasteel/mono/dark, -/area/ship/storage/eva) -"eL" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 +/area/ship/bridge) +"eq" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/chair/sofa/brown/old/right/directional/north, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet, +/area/ship/crew/canteen) +"eu" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/solarpanel, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"eD" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/structure/cable/cyan{ + icon_state = "5-6" }, /obj/machinery/button/door{ - id = "dwayne_windows"; - name = "Fore Window Control"; - pixel_x = -10; - pixel_y = 20 + pixel_y = 0; + dir = 4; + pixel_x = -21; + id = "dwayne_engines_starboard"; + name = "Engine Shutter Control" }, -/obj/machinery/computer/helm{ - dir = 8 +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering) +"eH" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering) +"eL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"eM" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"fi" = ( -/obj/machinery/power/shuttle/engine/electric, -/obj/structure/cable{ - icon_state = "0-4" +"eU" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plating/airless, -/area/ship/engineering) -"fl" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 1; - name = "fuel mixer"; - node1_concentration = 0.33; - node2_concentration = 0.67; - target_pressure = 500 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/paper/guides/jobs/engi/combustion_thruster, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) "fp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, /obj/structure/cable/cyan{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood, /area/ship/crew/canteen) -"fy" = ( -/obj/item/clothing/head/cone{ - pixel_x = 3; - pixel_y = -2 +"fq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = -12 }, -/turf/open/floor/engine/hull, -/area/ship/external/dark) -"fz" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/structure/cable/cyan{ + icon_state = "0-2" }, -/obj/structure/sign/poster/contraband/cardinal_port_starboard{ - pixel_y = 32 +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 }, -/obj/structure/chair/handrail, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"fV" = ( -/obj/structure/closet/cabinet{ - name = "wardrobe" +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"fr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable/cyan{ - icon_state = "0-6" - }, -/obj/item/storage/backpack/satchel/explorer, -/obj/item/storage/backpack/satchel/explorer, -/obj/item/storage/backpack/satchel/explorer, -/obj/item/clothing/under/utility, -/obj/item/clothing/under/utility, -/obj/item/clothing/under/utility/skirt, -/obj/item/clothing/under/utility/skirt, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/suit/jacket/leather/duster, -/obj/item/clothing/suit/jacket/leather/duster, -/obj/item/clothing/gloves/fingerless, -/obj/item/clothing/gloves/fingerless, -/obj/item/clothing/head/cowboy, -/obj/item/clothing/head/cowboy, -/obj/item/clothing/glasses/heat, -/obj/item/clothing/glasses/heat, + icon_state = "1-2" + }, /turf/open/floor/wood, /area/ship/crew/dorm) -"fY" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 8 +"fz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/insectguts, /obj/effect/turf_decal/industrial/warning{ - dir = 8 + dir = 1 }, -/obj/structure/chair/handrail{ - dir = 4 +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"fJ" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 1 }, -/turf/open/floor/plasteel/tech/grid, +/obj/structure/grille, +/obj/machinery/door/poddoor{ + id = "dwayne_exhaust" + }, +/turf/open/floor/plating, /area/ship/engineering) -"gf" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +"fN" = ( +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, -/area/ship/engineering) -"gm" = ( -/obj/machinery/atmospherics/components/unary/shuttle/fire_heater, -/obj/machinery/door/window/northright{ - dir = 4; - name = "Engine Access" - }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines"; +/area/ship/hallway/central) +"fU" = ( +/obj/machinery/light/directional/west, +/obj/structure/chair/handrail{ dir = 4 }, -/obj/structure/window/plasma/reinforced{ - dir = 8 +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"gs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/cyan{ - icon_state = "2-9" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"ga" = ( +/obj/structure/sign/poster/contraband/cardinal_port_starboard{ + pixel_y = 0 }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/cryo) -"gu" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/cargo) -"gF" = ( -/obj/machinery/power/shuttle/engine/fire, -/turf/open/floor/plating/airless, -/area/ship/engineering) -"he" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"ge" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/machinery/atmospherics/components/unary/tank/nitrogen{ + dir = 1 }, +/obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"hg" = ( -/obj/docking_port/stationary{ - dheight = 1; - dir = 2; - dwidth = 20; - height = 30; - name = "Dwayne Starboard Beam Dock"; - width = 40 +/area/ship/engineering/atmospherics) +"gf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/turf/template_noop, -/area/template_noop) -"hv" = ( -/obj/docking_port/stationary{ - dheight = 1; - dwidth = 20; - height = 30; - name = "Dwayne Port Beam Dock"; - width = 40 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/template_noop, -/area/template_noop) -"hy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"hB" = ( -/obj/structure/chair/comfy/shuttle{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/caution{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"gq" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 8 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"hK" = ( -/obj/structure/sign/poster/contraband/gec{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/components/unary/portables_connector{ - dir = 8; - name = "connector port (Fuel)" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"hO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/trimline/opaque/yellow/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/structure/cable/cyan{ - icon_state = "5-10" +/obj/structure/closet/firecloset/wall/directional/north, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering) +"gs" = ( +/obj/effect/turf_decal/corner/opaque/yellow/mono, +/obj/structure/closet/secure_closet/armorycage{ + req_access = null; + name = "ammo locker" }, -/obj/effect/turf_decal/ntspaceworks_big/three, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"hS" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" +/obj/item/storage/box/ammo/a12g_buckshot{ + pixel_y = 6; + pixel_x = 2 }, -/obj/structure/grille, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/item/storage/box/ammo/a12g_buckshot{ + pixel_y = -4; + pixel_x = 2 }, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/crew/dorm) -"hZ" = ( -/obj/structure/chair/office{ - dir = 1 +/obj/item/stock_parts/cell/gun/sharplite{ + pixel_x = -8; + pixel_y = 2 }, -/obj/structure/cable/cyan{ - icon_state = "4-8" +/obj/item/stock_parts/cell/gun/sharplite{ + pixel_x = -8; + pixel_y = -2 }, -/obj/structure/cable/cyan{ - icon_state = "2-4" +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"gu" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/manifold/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"ig" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 1; - piping_layer = 2 +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"gw" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/machinery/light/directional/east, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering) -"in" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "dwayne_mining_field"; - locked = 1 - }, -/obj/machinery/door/poddoor{ - id = "dwayne_mining" - }, -/obj/structure/cable/cyan{ - icon_state = "0-2" +"gx" = ( +/obj/structure/cable/yellow{ + icon_state = "6-9" }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"ht" = ( /obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plating, -/area/ship/storage/eva) -"iq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/layer4, -/obj/effect/turf_decal/industrial/warning{ - dir = 9 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/structure/closet/emcloset/wall/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"ir" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/machinery/door/poddoor/shutters{ + id = "dwayne_equipment"; + dir = 4 }, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo/port) +"hB" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"iZ" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"hC" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, +/obj/effect/turf_decal/siding/wood, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable/cyan{ - icon_state = "0-9" + dir = 5 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"ja" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/structure/closet/crate/engineering/electrical, -/obj/item/radio/intercom/directional/east, -/obj/item/stack/sheet/mineral/plasma/ten, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"jz" = ( -/obj/structure/cable/yellow, -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"jS" = ( -/obj/structure/chair/sofa/brown/old/left/directional/north, -/obj/structure/cable/yellow{ +/obj/structure/cable/cyan{ icon_state = "1-2" }, /turf/open/floor/wood, -/area/ship/crew/canteen) -"kb" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/structure/closet/emcloset/wall/directional/north, -/obj/effect/turf_decal/industrial/warning{ +/area/ship/crew/dorm) +"hL" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"kf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/cable/cyan{ + icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 24 - }, -/obj/machinery/door/airlock/external/glass{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 }, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel/patterned/grid/dark, /area/ship/engineering) -"kM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +"hQ" = ( +/obj/machinery/button/door{ + id = "dwayne_port"; + name = "Port Blast Door Control"; + pixel_x = -8; + pixel_y = 20 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/button/shieldwallgen{ + id = "dwayne_port_field"; + pixel_x = 1; + pixel_y = 19 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner{ dir = 8 }, -/obj/structure/cable/cyan{ - icon_state = "5-10" +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 }, -/obj/effect/turf_decal/ntspaceworks_big/three{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"kO" = ( -/obj/effect/decal/cleanable/food/tomato_smudge, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/area/ship/cargo/port) +"hZ" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"kQ" = ( -/obj/structure/table, -/obj/machinery/computer/helm/viewscreen/directional/north, -/obj/machinery/power/terminal{ +/obj/machinery/door/window/northright{ dir = 4; - layer = 2.30 - }, -/obj/structure/cable/yellow{ - icon_state = "0-6" + name = "Engine Access" }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = 10; - pixel_y = 3 +/obj/machinery/atmospherics/components/unary/shuttle/heater{ + dir = 4 }, -/obj/item/newspaper{ - pixel_x = -5; - pixel_y = 2 +/obj/machinery/door/poddoor{ + id = "dwayne_engines_port"; + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"ll" = ( -/obj/structure/bed, -/obj/effect/spawner/random/bedsheet, -/obj/machinery/airalarm/directional/east, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet, -/area/ship/crew/dorm) -"lv" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"ig" = ( +/obj/effect/turf_decal/solarpanel, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/captain) +"in" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "dwayne_windows" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating/airless, +/area/ship/bridge) +"iq" = ( +/obj/machinery/washing_machine{ + layer = 2.8; + pixel_y = 1 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"lC" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/button/door{ - id = "dwayne_engines"; - name = "Aft Window Control"; +/obj/effect/turf_decal/siding/white, +/obj/machinery/light_switch{ + dir = 4; pixel_x = -20; - dir = 4 + pixel_y = -12 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"lD" = ( -/obj/structure/cable/yellow{ - icon_state = "4-9" +/obj/item/radio/intercom/directional/west{ + pixel_y = 2 }, -/obj/effect/turf_decal/techfloor{ - dir = 1 +/obj/structure/platform/ship_two{ + dir = 1; + layer = 2.9 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/bedsheetbin{ + pixel_y = 17; + pixel_x = -1; + layer = 3 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"ma" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/turf/open/floor/plastic, +/area/ship/crew/toilet) +"ir" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/machinery/door/poddoor{ + id = "dwayne_kitchen" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/turf/open/floor/plating, +/area/ship/crew/canteen) +"iu" = ( +/obj/structure/closet/secure_closet/wall/directional/south{ + icon_state = "cargo_wall"; + name = "miner's locker"; + req_access_txt = "48"; + dir = 8; + pixel_y = 0; + pixel_x = -28 }, -/obj/structure/cable/cyan{ - icon_state = "1-4" +/obj/item/clothing/suit/hazardvest{ + pixel_x = -7; + pixel_y = -2 }, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/item/clothing/under/rank/cargo/miner/hazard{ + pixel_x = -7; + pixel_y = -3 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"mf" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/turf_decal/industrial/warning, -/obj/item/c_tube{ - pixel_y = 3 +/obj/item/storage/belt/mining/alt{ + pixel_x = -7; + pixel_y = -7 }, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/item/clothing/glasses/meson{ + pixel_x = -6; + pixel_y = 3 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"mr" = ( -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/item/clothing/head/hardhat/mining{ + pixel_x = -7; + pixel_y = 9 }, -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ +/obj/structure/railing/thin/corner{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/item/clothing/gloves/explorer{ + pixel_x = -8; + pixel_y = -5 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"ms" = ( -/obj/machinery/computer/helm/viewscreen/directional/north, -/obj/structure/cable/yellow{ - icon_state = "6-9" +/obj/machinery/button/door{ + pixel_y = -16; + dir = 4; + id = "dwayne_equipment"; + name = "Equipment Room Shutter Control"; + pixel_x = -21 }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/item/extinguisher/mini{ + pixel_x = 6; + pixel_y = -5 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/obj/item/gps/mining{ + pixel_x = -3; + pixel_y = -7 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"mv" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"my" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/item/melee/knife/survival, +/obj/item/stack/marker_beacon/ten{ + pixel_x = -9; + pixel_y = -11 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"mA" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"mC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030; + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +/obj/effect/turf_decal/trimline/opaque/yellow/corner, +/obj/effect/turf_decal/siding/white{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable/cyan{ - icon_state = "1-10" +/obj/item/flashlight/seclite{ + pixel_x = -3; + pixel_y = -2 }, -/turf/open/floor/plating, -/area/ship/engineering) -"mF" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/engineering) -"mJ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"iR" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/item/radio/weather_monitor{ - pixel_x = 8; - pixel_y = 7 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/obj/machinery/newscaster/directional/west, -/obj/item/paper_bin{ - pixel_x = -8; - pixel_y = 6 +/obj/machinery/door/airlock{ + name = "Dormitory"; + dir = 2 }, -/obj/item/pen/fountain, -/obj/item/stamp/captain{ - pixel_x = -7; - pixel_y = 9 +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/dorm) +"iY" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"mR" = ( -/obj/effect/turf_decal/solarpanel, -/turf/closed/wall/mineral/titanium, -/area/ship/crew/cryo) -"mX" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ - dir = 1 +/obj/structure/sink/kitchen{ + dir = 1; + pixel_x = 7; + pixel_y = 16 }, -/obj/effect/turf_decal/industrial/warning/corner, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"nf" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/mineral/processing_unit_console{ - pixel_y = -18; - machinedir = 8; - output_dir = 1; +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"iZ" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage/eva) -"nr" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"nJ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/layer2{ - name = "connector port (Air)" +/mob/living/simple_animal/turtle{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"nL" = ( -/obj/effect/turf_decal/ntspaceworks_big/seven{ - dir = 1 +/obj/structure/sign/poster/contraband/random{ + pixel_y = 0; + pixel_x = -31 }, -/obj/structure/ore_box, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"nY" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, +/turf/open/floor/wood, +/area/ship/crew/dorm) +"jh" = ( +/turf/closed/wall/mineral/titanium, /area/ship/crew/canteen) -"oa" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/power/terminal{ - dir = 8 +"ju" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "dwayne_port_field"; + locked = 1 }, -/obj/structure/cable/cyan, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable/cyan{ + icon_state = "0-2" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"of" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/turf_decal/box/corners{ - dir = 1 +/obj/machinery/door/poddoor{ + id = "dwayne_port" }, -/obj/effect/turf_decal/box/corners{ - dir = 4 +/turf/open/floor/plating, +/area/ship/cargo/port) +"jz" = ( +/obj/machinery/power/smes/shuttle/precharged, +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engine Access" }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/mining/independent, -/obj/item/clothing/mask/gas/explorer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"om" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/structure/closet/wall/orange/directional/west{ - name = "Mechanic's locker" +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/decal/cleanable/oil/streak, -/obj/item/storage/backpack/satchel/eng, -/obj/item/storage/backpack/messenger/engi, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/toggle/hazard, -/obj/item/clothing/head/hardhat/dblue, -/obj/item/clothing/glasses/welding, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/window/plasma/reinforced{ dir = 8 }, -/obj/item/clothing/under/overalls/olive, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/belt/utility/full/engi, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"or" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/door/poddoor{ + id = "dwayne_engines_port"; + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"jH" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 10 }, +/obj/effect/turf_decal/siding/thinplating/dark/end, /obj/structure/cable/cyan{ - icon_state = "1-2" + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/dept/mining, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"ow" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/turf/open/floor/plasteel/tech/grid, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, /area/ship/engineering) -"oy" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/quartermaster{ - populate = 0; - name = "\proper Foreman's locker" - }, -/obj/item/storage/backpack/satchel/eng, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/rank/security/detective, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/jacket/leather/duster, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/gloves/fingerless, -/obj/item/clothing/head/cowboy/sec, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/hardhat/white, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"oB" = ( -/obj/machinery/conveyor_switch/oneway{ - pixel_y = 15; - pixel_x = 11; - id = "smelter_dwayne" +"jR" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/yellow{ + icon_state = "5-9" }, -/obj/structure/railing{ - dir = 10 +/obj/item/flashlight/lamp{ + pixel_x = -7; + pixel_y = 14 }, -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ - dir = 1 +/obj/item/stock_parts/manipulator/nano{ + pixel_y = 2; + pixel_x = 7 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"oE" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/table, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_y = 32 +/obj/item/stock_parts/scanning_module/adv{ + pixel_x = 8; + pixel_y = -9 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable/cyan{ - icon_state = "0-6" +/obj/item/stock_parts/cell/high{ + pixel_y = -2; + pixel_x = -7 }, -/obj/item/radio{ - pixel_y = 5 +/obj/item/screwdriver{ + pixel_y = -9; + pixel_x = -1 }, -/obj/item/radio{ - pixel_y = 5 +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"jS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo/port) +"kb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/item/radio{ - pixel_y = 5 +/obj/machinery/light/directional/north, +/obj/structure/chair/handrail, +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 }, -/obj/item/radio{ - pixel_y = 5 +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 }, -/obj/item/radio{ - pixel_y = 5 +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 }, -/obj/item/radio{ - pixel_y = 5 +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"kf" = ( +/obj/machinery/door/airlock/external{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/crew/cryo) -"oJ" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ - dir = 8 +/obj/docking_port/mobile{ + can_move_docking_ports = 1; + dir = 4; + name = "mining_ship_all"; + port_direction = 2; + preferred_direction = 4 }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 6 +/turf/open/floor/plating, +/area/ship/hallway/central) +"ki" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/item/pen/fourcolor, -/obj/item/toy/crayon/spraycan{ - pixel_x = -9; - pixel_y = 17 +/obj/effect/turf_decal/siding/white/end{ + dir = 2 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"oQ" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/engineering) +"kp" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable/cyan{ - icon_state = "1-10" +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/cable/cyan{ - icon_state = "1-6" +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_one_access = list(20,41,10) }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"oR" = ( +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering/atmospherics) +"ku" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/obj/structure/cable/cyan{ - icon_state = "2-8" +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/effect/turf_decal/ntspaceworks_small/right{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"kv" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/caution/red, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"kJ" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, /obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, /turf/open/floor/plating, -/area/ship/hallway/central) -"pl" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 +/area/ship/engineering/atmospherics) +"kO" = ( +/obj/structure/dresser{ + dir = 8; + pixel_x = -5 }, -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"pq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 12 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/firealarm/directional/west{ + pixel_y = -9 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/yellow/half, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"pt" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/extinguisher_cabinet/directional/west{ + pixel_y = 3 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"kV" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"lb" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/trimline/opaque/yellow/line{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"pS" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"qg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/structure/cable/cyan{ - icon_state = "4-8" + icon_state = "2-9" }, /obj/structure/cable/cyan{ - icon_state = "1-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"ql" = ( -/obj/structure/cable/yellow, -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "2-8" }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"qt" = ( -/obj/structure/cable/yellow{ - icon_state = "6-9" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering) +"ld" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters{ + id = "dwayne_canteen" }, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/turf/open/floor/plating, +/area/ship/crew/canteen) +"ll" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock/glass{ - name = "Common Room" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only{ +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/plasteel/tech, +/turf/open/floor/wood, /area/ship/crew/canteen) -"qK" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/item/cigbutt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable/yellow{ - icon_state = "6-8" +"lm" = ( +/obj/machinery/power/smes/shuttle/precharged, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Engine Access" }, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/structure/cable{ + icon_state = "0-8" }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"qO" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/window/plasma/reinforced{ + dir = 8 }, -/obj/structure/cable/cyan{ - icon_state = "4-8" +/obj/machinery/door/poddoor{ + id = "dwayne_engines_starboard"; + dir = 4 }, -/obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, /area/ship/engineering) -"rE" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"sg" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"sp" = ( -/obj/effect/turf_decal/corner/opaque/yellow{ +"lv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -26 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/crew/cryo) -"sD" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable/cyan{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/dept/cargo{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"sM" = ( -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/door/airlock/command/glass{ - dir = 4; - name = "Bridge"; - req_one_access = list(20,41) - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs{ - dir = 4; - color = "#555555" +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"lC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer2{ + dir = 1 }, -/area/ship/bridge) -"sP" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/advanced_airlock_controller{ + pixel_x = -26; + dir = 8; + pixel_y = 0 }, -/turf/open/floor/carpet, -/area/ship/crew/dorm) -"sS" = ( -/obj/structure/bed, -/obj/effect/spawner/random/bedsheet, -/turf/open/floor/carpet, -/area/ship/crew/dorm) -"sZ" = ( -/obj/machinery/cryopod, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/crew/cryo) -"tj" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/machinery/firealarm/directional/south, -/obj/item/cigbutt, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/central) -"tJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +"lQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor{ + id = "dwayne_lounge"; + dir = 2 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/turf/open/floor/plating/airless, +/area/ship/crew/canteen) +"lU" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 9 }, -/obj/item/stack/sheet/cardboard, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"tX" = ( -/obj/effect/turf_decal/ntspaceworks_big/eight{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"uc" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/storage/eva) -"uk" = ( +/obj/effect/turf_decal/siding/white, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 1; + piping_layer = 4 }, -/obj/structure/cable/cyan{ - icon_state = "6-9" +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"lW" = ( +/obj/structure/table/reinforced, +/obj/structure/closet/wall/orange/directional/west{ + name = "Mechanic's locker"; + dir = 2; + pixel_y = -28; + pixel_x = 0; + req_one_access = list(11,41) }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ul" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"uN" = ( -/obj/machinery/door/airlock/external{ - dir = 4 +/obj/item/storage/backpack/duffelbag/engineering{ + pixel_x = -1; + pixel_y = -8 }, -/obj/docking_port/mobile{ - can_move_docking_ports = 1; - dir = 4; - name = "mining_ship_all"; - port_direction = 2; - preferred_direction = 4 +/obj/item/storage/backpack/satchel/eng{ + pixel_x = 0; + pixel_y = 2 }, -/turf/open/floor/plating, -/area/ship/engineering) -"vb" = ( -/obj/machinery/conveyor/inverted{ - dir = 9; - id = "smelter_dwayne" +/obj/item/clothing/under/overalls/olive{ + pixel_x = 0; + pixel_y = -1 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage/eva) -"ve" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 8 +/obj/item/clothing/suit/toggle/hazard, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = -1; + pixel_y = -13 }, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/item/stack/sheet/cardboard{ - amount = 2 +/obj/item/storage/belt/utility/full/engi{ + pixel_x = -1; + pixel_y = -15 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"vf" = ( -/obj/structure/closet/crate, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/item/clothing/glasses/welding{ + pixel_x = 1; + pixel_y = 4 }, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"vh" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" +/obj/item/clothing/head/hardhat/dblue{ + pixel_x = 0; + pixel_y = 9 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/bridge) -"vi" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" +/obj/machinery/cell_charger{ + pixel_y = -1; + pixel_x = -3 }, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/bridge) -"vj" = ( -/obj/structure/sign/poster/contraband/winchester{ - pixel_y = -32 +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"ma" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, /area/ship/hallway/central) -"vm" = ( -/obj/structure/sign/number/random{ - color = "Black"; - pixel_y = -7 +"mf" = ( +/obj/machinery/cryopod{ + dir = 4 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"vw" = ( -/obj/structure/table/reinforced, -/obj/item/cutting_board{ - anchored = 1 +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/obj/item/melee/knife/kitchen, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable/cyan{ - icon_state = "0-5" +/obj/machinery/newscaster/directional/south, +/obj/structure/sign/poster/contraband/space_cola{ + pixel_x = -30 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"vA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"vJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"ms" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines"; +/obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/ship/crew/dorm) +"mv" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/engineering) -"vL" = ( /obj/machinery/door/poddoor{ - id = "dwayne_cargo" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "dwayne_cargo_field"; - locked = 1 + id = "dwayne_captain"; + dir = 4 }, -/obj/structure/cable/cyan, -/obj/effect/turf_decal/industrial/warning/fulltile, /turf/open/floor/plating, -/area/ship/cargo) -"vQ" = ( -/obj/structure/cable/yellow{ - icon_state = "5-8" +/area/ship/crew/dorm/captain) +"my" = ( +/obj/machinery/power/ship_gravity{ + pixel_y = 0 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/handrail, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"wh" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/turf_decal/box/corners{ - dir = 1 +/obj/structure/cable/yellow{ + icon_state = "6-10" }, -/obj/effect/turf_decal/box/corners{ - dir = 4 +/obj/structure/cable/cyan{ + icon_state = "0-2" }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering) +"mA" = ( /obj/machinery/light_switch{ dir = 1; pixel_x = -12; - pixel_y = -20 + pixel_y = -19 }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/mining/independent, -/obj/item/clothing/mask/gas/explorer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"ww" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/structure/closet/crate/secure/exo, -/obj/item/clothing/under/rank/cargo/miner/hazard, -/obj/item/clothing/under/rank/cargo/miner/hazard, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/storage/belt/mining/alt, -/obj/item/storage/belt/mining/alt, -/obj/item/clothing/head/hardhat/mining, -/obj/item/clothing/head/hardhat/mining, -/obj/item/clothing/head/hardhat/mining, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"wW" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/closet/emcloset/wall/directional/south, +/obj/effect/turf_decal/borderfloor/corner{ dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"xh" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" +"mF" = ( +/obj/machinery/door/window/westleft, +/obj/effect/turf_decal/steeldecal/steel_decals6, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/shower{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "6-9" +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"mH" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 4 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"xl" = ( -/obj/machinery/door/poddoor{ - id = "dwayne_cargo" +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ + dir = 4 }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "dwayne_cargo_field"; - locked = 1 +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 6 }, -/obj/structure/cable/cyan, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plating, -/area/ship/cargo) -"xr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"xP" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/effect/turf_decal/trimline/opaque/black/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ dir = 8 }, -/obj/machinery/light/directional/west, -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"yu" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 }, /obj/structure/cable/cyan{ - icon_state = "5-8" + icon_state = "4-8" }, -/obj/machinery/light/directional/east, -/obj/structure/frame/machine{ - anchored = 1; - state = 2; - icon_state = "box_1" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"mR" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"yx" = ( -/obj/structure/closet/wall/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/item/towel{ - pixel_y = 4; - pixel_x = 4 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"na" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 }, -/obj/item/towel{ - pixel_y = 4; - pixel_x = -3 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/item/soap{ - pixel_x = -1; - pixel_y = -2 +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloor{ + layer = 2.030; + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned, -/area/ship/crew/toilet) -"yJ" = ( -/turf/open/floor/plasteel/tech, /area/ship/hallway/central) -"yN" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "0-8" +"nr" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/cryo) +"ns" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"za" = ( -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "0-4" +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 }, -/obj/machinery/power/solar, -/turf/open/floor/plating, -/area/ship/external/dark) -"zc" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/effect/turf_decal/trimline/opaque/red/filled/corner{ dir = 1 }, -/obj/effect/decal/cleanable/oil/streak, -/obj/structure/chair/handrail, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"zi" = ( -/obj/effect/turf_decal/solarpanel, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"nu" = ( /obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/solar, -/turf/open/floor/plating, -/area/ship/external/dark) -"zl" = ( -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Hangar" + icon_state = "5-6" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 }, -/turf/open/floor/plasteel, -/area/ship/storage/eva) -"zq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/machinery/autolathe, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"nB" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/sign/poster/official/safety_internals{ + pixel_y = 0; + pixel_x = -30 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/industrial/warning/corner{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"zt" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters, -/obj/effect/turf_decal/box/corners{ +/area/ship/cargo/port) +"nG" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ dir = 1 }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/mining/independent, -/obj/item/clothing/mask/gas/explorer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"zz" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/table/reinforced, -/obj/item/radio/intercom/wideband/table{ +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"nR" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 4; - pixel_x = 5 + id = "dwayne_starboard_field"; + locked = 1 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"zF" = ( -/obj/structure/ore_box, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable/cyan{ + icon_state = "0-1" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/machinery/door/poddoor{ + id = "dwayne_starboard" }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/plating, +/area/ship/cargo/starboard) +"nV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/cable/cyan{ - icon_state = "6-9" + icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"zI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/open/floor/wood, +/area/ship/crew/canteen) +"nY" = ( +/obj/machinery/jukebox{ + pixel_y = 6; + pixel_x = 13 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/machinery/light/directional/north, +/obj/structure/reagent_dispensers/water_cooler{ + density = 0; + pixel_y = 6; + pixel_x = -5 }, -/obj/item/cigbutt, -/obj/effect/turf_decal/ntspaceworks_big/two, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"zK" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/turf/open/floor/plasteel/tech, +/area/ship/crew/canteen) +"oa" = ( +/obj/effect/turf_decal/solarpanel, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/canteen) +"ol" = ( +/obj/structure/window{ + dir = 2 + }, +/obj/structure/toilet{ + dir = 8; + pixel_x = 7; + pixel_y = 5 }, -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"zQ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/structure/closet/firecloset/wall/directional/west, -/obj/structure/cable/cyan{ - icon_state = "2-5" +/obj/machinery/light/directional/east, +/turf/open/floor/plastic, +/area/ship/crew/toilet) +"or" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/structure/chair/handrail, +/obj/structure/extinguisher_cabinet/directional/north{ + pixel_x = -6 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"zY" = ( -/obj/structure/sign/warning/fire{ - pixel_y = -20; - pixel_x = -10 +/obj/machinery/firealarm/directional/north{ + pixel_x = 6 }, -/obj/machinery/atmospherics/components/unary/portables_connector{ - dir = 8; - name = "connector port (Fuel)" +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"Aw" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 }, -/obj/structure/cable/yellow, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"AD" = ( +/obj/effect/turf_decal/borderfloor/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"oB" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"oE" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) +"oF" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"oK" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, /obj/structure/cable/cyan{ - icon_state = "4-9" + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/effect/turf_decal/borderfloor/corner, +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 }, -/obj/item/kirbyplants/fullysynthetic{ - pixel_x = -10 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 }, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/techfloor{ +/obj/effect/turf_decal/trimline/opaque/red/filled/corner{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"oR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"AE" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/item/radio/intercom/directional/south, -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"AG" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/effect/turf_decal/borderfloor{ + dir = 4 }, -/obj/machinery/light/directional/east, -/obj/machinery/computer/solar_control{ - dir = 8; - icon_state = "computer-right" +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"pl" = ( +/obj/effect/turf_decal/industrial/outline, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 }, /turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"AQ" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" +/area/ship/engineering/atmospherics) +"pt" = ( +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor/corner{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"Bx" = ( -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"BX" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 +"px" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/effect/turf_decal/box/corners{ dir = 8 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Cj" = ( -/obj/effect/turf_decal/techfloor{ - dir = 5 +/obj/effect/turf_decal/box/corners, +/obj/structure/closet/crate/wooden, +/obj/item/storage/box/glowsticks{ + pixel_x = -6; + pixel_y = 0 }, -/obj/effect/decal/cleanable/oil, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/item/storage/box/glowsticks{ + pixel_x = 5; + pixel_y = 0 }, -/obj/machinery/light_switch{ - pixel_y = 20 +/obj/item/storage/box/glowsticks{ + pixel_x = -6; + pixel_y = 0 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/item/storage/box/glowsticks{ + pixel_x = 5; + pixel_y = 0 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Cp" = ( -/obj/machinery/light/directional/west, -/obj/machinery/mineral/unloading_machine{ - input_dir = 1; - output_dir = 2 +/obj/item/storage/box/glowsticks{ + pixel_x = -6; + pixel_y = 0 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage/eva) -"CB" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall/mineral/titanium, -/area/ship/engineering) -"CD" = ( -/obj/machinery/atmospherics/components/unary/shuttle/fire_heater, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Engine Access" +/obj/item/storage/box/glowsticks{ + pixel_x = 5; + pixel_y = 0 }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines"; - dir = 4 +/obj/item/pickaxe{ + pixel_x = 6; + pixel_y = 0 }, -/obj/structure/window/plasma/reinforced{ - dir = 8 +/obj/item/pickaxe{ + pixel_x = 6; + pixel_y = 0 }, -/turf/open/floor/plating, -/area/ship/engineering) -"CP" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/ship/engineering) -"CS" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 1 +/obj/item/shovel{ + pixel_x = -1; + pixel_y = 0 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/large, -/obj/effect/spawner/random/maintenance/three, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Ds" = ( +/obj/item/shovel{ + pixel_x = -2; + pixel_y = 0 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"pS" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows"; - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "0-8" }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"qd" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/crew/canteen) -"Dv" = ( -/obj/docking_port/stationary{ - dheight = 1; - dir = 8; - disable_on_owner_ship_dock = 1; - dwidth = 15; - height = 36; - name = "Dwayne Stern Dock"; - width = 40 +/obj/machinery/door/poddoor{ + id = "dwayne_captain" }, -/turf/template_noop, -/area/template_noop) -"DG" = ( -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plating/airless, +/area/ship/crew/dorm/captain) +"qg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable/cyan{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable/yellow{ - icon_state = "5-10" +/obj/item/radio/intercom/directional/south{ + pixel_y = -31; + pixel_x = 1 }, /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/door/airlock{ - name = "Dormitory" - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"DJ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/wood, +/area/ship/crew/canteen) +"ql" = ( +/obj/structure/chair/sofa/brown/old/left/directional/south, +/turf/open/floor/carpet, +/area/ship/crew/canteen) +"qm" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"DR" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/white{ + dir = 1 }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"qp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030 + }, +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030; + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"qq" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/item/paperplane{ - dir = 4; - pixel_x = 14; - pixel_y = -8 +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Ee" = ( -/obj/structure/sink{ - pixel_y = 19 +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/structure/mirror{ - pixel_y = 28; - layer = 2.89 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/engineering) +"qz" = ( +/obj/machinery/power/terminal{ dir = 8 }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/toilet) -"Ex" = ( -/obj/structure/window/reinforced/fulltile/shuttle, -/obj/structure/grille, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/storage/eva) -"Ez" = ( -/obj/machinery/power/smes/engineering, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/catwalk/over/plated_catwalk/dark, /obj/structure/cable/cyan{ - icon_state = "0-2" + icon_state = "0-4" }, -/turf/open/floor/plasteel/tech/grid, +/turf/open/floor/plating, /area/ship/engineering) -"EE" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 +"qE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/cyan{ + icon_state = "0-1" }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 12 }, -/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Fd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/handrail{ - dir = 1 +/area/ship/crew/cryo) +"qJ" = ( +/obj/structure/closet/secure_closet/wall/directional/north{ + name = "captain's locker"; + req_access_txt = "20"; + icon_state = "solgov_wall"; + pixel_y = 0; + dir = 8; + pixel_x = -28 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Fn" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 1 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/obj/structure/ore_box, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Fq" = ( -/obj/effect/turf_decal/solarpanel, -/turf/closed/wall/mineral/titanium, -/area/ship/crew/dorm) -"Fz" = ( -/obj/structure/table/wood, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/structure/cable/cyan{ + icon_state = "1-4" }, -/obj/item/food/chips{ - pixel_x = 5; - pixel_y = 4 +/obj/item/storage/backpack/duffelbag/captain{ + pixel_x = -7; + pixel_y = -7 }, -/obj/item/toy/cards/deck/kotahi{ - pixel_x = -11; +/obj/item/storage/backpack/satchel/cap{ + pixel_x = -8; pixel_y = 6 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"FH" = ( -/obj/structure/cable/cyan{ - icon_state = "4-8" +/obj/item/clothing/shoes/cowboy/fancy{ + pixel_x = -10; + pixel_y = -9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +/obj/item/clothing/suit/jacket/leather/duster/command{ + pixel_x = -8; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/item/clothing/under/rank/command/captain/skirt{ + pixel_x = -8; + pixel_y = 0 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/item/clothing/under/rank/command/captain{ + pixel_x = -8; + pixel_y = 0 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/item/clothing/head/caphat/cowboy{ + pixel_x = -8; + pixel_y = 12 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/item/clothing/head/caphat{ + pixel_x = -9; + pixel_y = 9 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/item/clothing/gloves/color/white{ + pixel_x = -9; + pixel_y = -8 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hallway/central) -"FN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +/obj/item/storage/guncase/pistol/candor{ + pixel_x = -8; + pixel_y = -9; + mag_count = 3 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"FP" = ( -/obj/structure/closet/crate/large, -/obj/machinery/portable_atmospherics/canister/hydrogen, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"FR" = ( -/obj/structure/closet/cardboard, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/item/storage/box/ammo/c45{ + pixel_x = -7; + pixel_y = 0 }, -/obj/item/caution, -/obj/item/caution, -/obj/item/caution, -/obj/item/reagent_containers/glass/bucket, -/obj/item/storage/bag/trash, -/obj/item/mop, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"FS" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, +/obj/item/clothing/accessory/holster{ + pixel_x = -9; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) +"qO" = ( /obj/structure/cable/yellow{ - icon_state = "0-4" + icon_state = "0-8" }, +/obj/machinery/power/tracker, +/obj/effect/turf_decal/solarpanel, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, /turf/open/floor/plating/airless, /area/ship/external/dark) -"Gr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +"qY" = ( +/obj/machinery/power/shuttle/engine/fueled/plasma{ + dir = 4 }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/stairs{ - dir = 4; - color = "#555555" +/turf/open/floor/engine/hull, +/area/ship/engineering/atmospherics) +"rk" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/half{ + dir = 1 }, +/obj/machinery/computer/crew{ + icon_state = "computer-right" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"Gx" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"GH" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/ntspaceworks_big/four, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"GN" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 4 +"ro" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/structure/sign/warning/enginesafety{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/suit/space/engineer, +/obj/item/clothing/head/helmet/space/light/engineer, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"rw" = ( +/obj/machinery/pipedispenser{ + pixel_y = 1 }, -/obj/machinery/light/directional/east, -/obj/structure/closet/crate/engineering, -/obj/item/radio/weather_monitor, -/obj/item/radio/weather_monitor, -/obj/item/t_scanner/adv_mining_scanner/lesser{ - pixel_y = -3 +/obj/effect/turf_decal/industrial, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"rE" = ( +/obj/structure/closet/crate/medical, +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/item/storage/firstaid/regular, +/obj/item/roller, +/obj/item/reagent_containers/hypospray/medipen/survival, +/obj/item/reagent_containers/hypospray/medipen/survival{ + pixel_y = -4 }, -/obj/item/pickaxe/drill{ +/obj/item/storage/pill_bottle/charcoal/less{ + pixel_x = -6; pixel_y = -2 }, -/obj/item/pickaxe/drill{ - pixel_y = -2 +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/obj/item/pinpointer/mineral{ - pixel_y = 4 +/obj/structure/crate_shelf, +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"GW" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/bridge) -"He" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/cyan{ - icon_state = "5-6" +/obj/effect/turf_decal/box/corners{ + dir = 1 }, -/obj/structure/cable/cyan{ - icon_state = "4-5" +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"rQ" = ( +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/effect/turf_decal/ntspaceworks_small/left{ + dir = 1 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"Hh" = ( -/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"sb" = ( /obj/structure/grille, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, -/area/ship/cargo) -"HE" = ( -/obj/effect/turf_decal/solarpanel, -/turf/closed/wall/mineral/titanium, -/area/ship/crew/canteen) -"HI" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "dwayne_mining_field"; - locked = 1 +/area/ship/cargo/port) +"sg" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/machinery/door/poddoor{ - id = "dwayne_mining" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable/cyan{ - icon_state = "0-2" +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plating, -/area/ship/storage/eva) -"HP" = ( -/obj/machinery/light/dim/directional/east, -/obj/structure/toilet{ - dir = 8; - pixel_y = 7; - pixel_x = 4 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/effect/decal/cleanable/vomit/old{ - pixel_y = 13; - pixel_x = -10 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"sk" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/toilet) -"Ia" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable/cyan{ - icon_state = "1-10" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"Ip" = ( -/obj/machinery/door/poddoor{ - id = "dwayne_cargo" + icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plating, -/area/ship/cargo) -"Is" = ( -/obj/structure/closet/crate/science, -/obj/item/paicard, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"IF" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/machinery/computer/cargo{ +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"IJ" = ( -/obj/machinery/vending/cigarette, -/obj/item/toy/figure/miner{ - pixel_y = 17; - toysay = "Careful out there! Frontier is deadly this time of the year!... Or any time of the year, actually..."; - pixel_x = -4 +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 1 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"IK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/cigbutt, -/obj/effect/turf_decal/ntspaceworks_big/five{ - dir = 1 +"sl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"IZ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 24 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Jk" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows"; +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/crew/canteen) -"Jn" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Jq" = ( -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/plastic/five, -/obj/item/stack/sheet/glass/twenty, -/obj/item/stack/sheet/metal/twenty, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Jy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"JE" = ( -/obj/effect/decal/cleanable/ash, -/obj/structure/cable/cyan{ - icon_state = "1-10" +/obj/machinery/door/airlock/external/glass{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/central) +"ss" = ( +/obj/machinery/firealarm/directional/east{ + pixel_y = 6 + }, +/obj/structure/extinguisher_cabinet/directional/east{ + pixel_y = -6 }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"JZ" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/area/ship/cargo/port) +"sA" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/railing/thin/corner{ dir = 1 }, -/obj/structure/table, -/obj/machinery/computer/helm/viewscreen/directional/north, -/obj/item/decal_painter{ - pixel_x = -2; - pixel_y = 3 +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030; + dir = 1 }, -/obj/item/hand_labeler{ - pixel_x = 13; - pixel_y = -1 +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Ka" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"sD" = ( +/obj/machinery/light/directional/south, +/obj/structure/chair/handrail{ dir = 1 }, -/obj/structure/cable/cyan{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 }, -/obj/structure/cable/cyan{ - icon_state = "2-8" +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 4 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"Kc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +"sM" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 6 +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"sY" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/item/clothing/head/welding{ - pixel_x = -2; - pixel_y = 1 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/public{ + name = "Cryogenics" }, /turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"Kp" = ( -/obj/machinery/power/smes/shuttle/precharged, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Engine Access" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines"; +/area/ship/crew/cryo) +"tg" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/window/plasma/reinforced{ +/obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/turf/open/floor/plating, -/area/ship/engineering) -"KJ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" +/obj/structure/cable/cyan{ + icon_state = "0-2" }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/crew/dorm) -"KO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"th" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"tj" = ( /obj/structure/cable/cyan{ - icon_state = "6-9" + icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"LH" = ( -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "5-10" +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"tD" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/coffeemaker{ + pixel_y = 9 }, -/obj/structure/cable/yellow{ - icon_state = "1-10" +/obj/item/coffee_cartridge/bootleg{ + pixel_x = 6; + pixel_y = -2 }, -/obj/structure/extinguisher_cabinet/directional/south{ - pixel_x = 7 +/obj/item/coffee_cartridge/bootleg{ + pixel_x = -5; + pixel_y = -2 }, -/turf/open/floor/carpet, -/area/ship/crew/dorm) -"LJ" = ( +/turf/open/floor/plasteel/tech, +/area/ship/crew/cryo) +"tG" = ( +/obj/effect/turf_decal/corner/opaque/yellow/mono, /obj/structure/table/reinforced, -/obj/machinery/microwave, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"LK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/components/binary/pump/on/layer2{ +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 0 + }, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/structure/noticeboard{ dir = 1; - name = "Air to Distro" + pixel_y = -25 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable/cyan{ - icon_state = "1-2" +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"tI" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 + }, +/obj/structure/sign/poster/retro/radio{ + desc = "A poster advertising one of Nanotrasen's earliest products, a radio. One of its main selling points was a integrated OS and two way automatic translation for Solarian Common and Gezenan, which made it a smash hit. This thing is ancient."; + pixel_x = -28 + }, +/obj/item/cutting_board{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/melee/knife/kitchen{ + pixel_y = 7; + pixel_x = 4 + }, +/obj/item/kitchen/rollingpin{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_y = 10; + pixel_x = -10 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -10; + pixel_y = 6 }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"tL" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, /turf/open/floor/plating, /area/ship/engineering) -"LN" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +"tM" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/machinery/door/poddoor{ + id = "dwayne_dorms" + }, +/turf/open/floor/plating, +/area/ship/crew/dorm) +"tQ" = ( +/obj/effect/turf_decal/corner/opaque/white/diagonal{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"tT" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_y = 16; + pixel_x = 7 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"LZ" = ( -/obj/structure/table/reinforced, -/obj/structure/closet/secure_closet/freezer/wall/directional/south{ - name = "kitchen cabinet" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/effect/spawner/random/food_or_drink/ration, -/obj/item/storage/cans/sixbeer, -/obj/item/reagent_containers/food/drinks/waterbottle/large, -/obj/item/reagent_containers/food/drinks/waterbottle/large, -/obj/item/reagent_containers/food/drinks/waterbottle/large, -/obj/item/food/canned/beans, -/obj/item/food/canned/beans, -/obj/item/food/candy, -/obj/item/food/candy, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"Mb" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Hangar" +/obj/item/book/fish_catalog{ + pixel_x = -6; + pixel_y = 3 }, +/turf/open/floor/carpet, +/area/ship/crew/dorm/captain) +"tX" = ( +/obj/structure/sign/number/random{ + color = "Black"; + pixel_y = 4; + pixel_x = 0 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/atmospherics) +"uc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 }, @@ -2450,969 +2252,1010 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Mg" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/siding/white, +/obj/machinery/door/airlock/mining/glass{ + name = "Starboard Hangar" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo/starboard) +"uh" = ( +/obj/machinery/light/directional/west, +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 }, -/obj/effect/turf_decal/techfloor{ - dir = 1 +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"uk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/corner{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning, +/obj/effect/turf_decal/siding/white, /turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Mk" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines"; +/area/ship/storage/equip) +"uq" = ( +/obj/effect/turf_decal/corner/opaque/yellow/mono, +/obj/structure/rack, +/obj/item/storage/bag/ore{ + pixel_y = 9; + pixel_x = -4 + }, +/obj/item/storage/bag/ore{ + pixel_y = 9; + pixel_x = 4 + }, +/obj/item/pinpointer/mineral{ + pixel_y = 3; + pixel_x = -7 + }, +/obj/item/t_scanner/adv_mining_scanner/lesser{ + pixel_y = 3; + pixel_x = 6 + }, +/obj/item/pickaxe/drill{ + pixel_y = -2 + }, +/obj/item/pickaxe/drill{ + pixel_y = -6 + }, +/obj/structure/railing/thin{ dir = 4 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/engineering) -"Mn" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Mo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/cyan{ - icon_state = "5-10" +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"uK" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 }, -/obj/effect/turf_decal/ntspaceworks_big/six{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 }, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Mz" = ( -/obj/machinery/holopad/emergency/command, -/obj/effect/turf_decal/box/white{ - color = "#283674" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"MB" = ( -/obj/machinery/door/airlock/hatch{ - name = "Cryogenics" - }, -/obj/machinery/door/firedoor/border_only{ +/area/ship/cargo/starboard) +"vi" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/captain) +"vj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/cryo) -"MG" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/dorm) -"MN" = ( -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 20 +/obj/effect/turf_decal/siding/white{ + dir = 1 }, -/obj/structure/chair, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"MT" = ( -/obj/effect/turf_decal/corner/opaque/yellow/full, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Nf" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Nw" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Port Hangar" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo/port) +"vm" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/caution/red{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"vs" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 8 + }, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, /obj/structure/cable/cyan{ - icon_state = "6-8" + icon_state = "0-4" }, /turf/open/floor/plating, -/area/ship/engineering) -"NC" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" +/area/ship/engineering/atmospherics) +"vw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/machinery/power/solar, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/structure/cable/yellow{ +/obj/structure/cable/cyan{ icon_state = "4-8" }, -/obj/effect/turf_decal/solarpanel, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"NN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/cyan{ - icon_state = "6-9" +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"vA" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer4{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"NT" = ( -/obj/structure/closet/cardboard, -/obj/item/storage/box/glowsticks, -/obj/item/storage/box/glowsticks, -/obj/item/storage/box/glowsticks, -/obj/item/storage/box/glowsticks, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"NW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/ntspaceworks_big/five, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Op" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "engine fuel pump" }, -/obj/machinery/power/tracker, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 4; + name = "Air to Supply" }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"vB" = ( /obj/structure/cable/yellow{ - icon_state = "1-8" + icon_state = "1-2" }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"Ou" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/structure/chair/sofa/brown/old/right/directional/south, +/turf/open/floor/carpet, +/area/ship/crew/canteen) +"vF" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 1 }, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Ov" = ( -/obj/structure/closet/cardboard, -/obj/item/chair/plastic, -/obj/item/chair/plastic{ - pixel_y = 4 +/obj/structure/grille, +/obj/machinery/door/poddoor{ + id = "dwayne_recycling" }, -/obj/item/chair/plastic{ - pixel_y = 8 +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"vL" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo/starboard) +"vP" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/item/chair/plastic{ - pixel_y = 11 +/obj/effect/turf_decal/siding/white{ + dir = 1 }, -/obj/effect/turf_decal/ntspaceworks_big/one, /turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Oz" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/machinery/fax/indie{ - pixel_y = 7 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"OJ" = ( -/turf/template_noop, -/area/template_noop) -"OL" = ( -/obj/machinery/light/directional/west, -/obj/structure/filingcabinet/filingcabinet{ - dir = 4; - pixel_x = -10; - density = 0 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/border{ - dir = 8 - }, -/obj/item/flashlight/flare, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/reagent_containers/food/drinks/bottle/whiskey, -/obj/item/ammo_box/c38, -/obj/item/ammo_box/c38, -/obj/item/gun/ballistic/revolver/detective, -/obj/item/megaphone/cargo, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"OP" = ( -/obj/structure/extinguisher_cabinet/directional/south, +/area/ship/cargo/starboard) +"vQ" = ( /obj/structure/cable/yellow{ - icon_state = "6-9" + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"OQ" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 +"wh" = ( +/obj/docking_port/stationary{ + dheight = 1; + dwidth = 20; + height = 30; + name = "Dwayne Port Beam Dock"; + width = 40 }, -/obj/machinery/button/shieldwallgen{ - id = "dwayne_cargo_field"; - pixel_x = 1; - pixel_y = -19; - dir = 1 +/turf/template_noop, +/area/space) +"wm" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor{ + id = "dwayne_starboard" }, -/obj/machinery/button/door{ - id = "dwayne_cargo"; - name = "Blast Doors"; - pixel_x = -8; - pixel_y = -20; - dir = 1 +/turf/open/floor/plating, +/area/ship/cargo/starboard) +"wW" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"OT" = ( -/obj/structure/sign/poster/rilena/random{ - pixel_x = 32 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/structure/cable/cyan{ - icon_state = "1-8" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable/cyan, -/obj/structure/cable/yellow{ - icon_state = "9-10" +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/machinery/computer/monitor{ - dir = 8; - icon_state = "computer-left" +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"OW" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/structure/closet/crate/large, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/spawner/random/entertainment/plushie, -/obj/effect/spawner/random/entertainment/plushie, -/obj/effect/spawner/random/entertainment/plushie, -/obj/effect/spawner/random/entertainment/plushie, -/obj/effect/spawner/random/entertainment/plushie, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"xb" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/black/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Pd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"xd" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/effect/turf_decal/ntspaceworks_big/four{ +/obj/effect/turf_decal/siding/white{ dir = 1 }, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Pe" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ +/area/ship/cargo/starboard) +"xh" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/corner/opaque/white/diagonal{ dir = 4 }, -/turf/open/floor/engine/hull, -/area/ship/external/dark) -"Pl" = ( -/obj/structure/cable/yellow{ - icon_state = "4-6" +/obj/structure/sink/kitchen{ + dir = 1; + pixel_x = -8; + pixel_y = 16 }, -/obj/structure/cable/yellow{ - icon_state = "1-6" +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"xl" = ( +/obj/effect/turf_decal/solarpanel, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"xo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/structure/cable/cyan{ - icon_state = "2-9" +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"xr" = ( +/obj/structure/table/reinforced, +/obj/structure/closet/wall/white/directional/west{ + name = "kitchen cabinet" }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"Po" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable/cyan{ - icon_state = "2-9" +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 }, -/mob/living/simple_animal/turtle{ +/obj/machinery/button/door{ + id = "dwayne_kitchen"; + name = "Kitchen Window Control"; + pixel_x = -21; + pixel_y = 17; dir = 4 }, -/turf/open/floor/wood{ - icon_state = "wood-broken2" +/obj/item/food/grown/cabbage{ + pixel_x = -4; + pixel_y = 5 }, -/area/ship/crew/dorm) -"Px" = ( -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/obj/item/food/grown/cabbage{ + pixel_x = -4; + pixel_y = 5 }, -/obj/machinery/computer/cryopod/directional/east, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -12; - pixel_y = -19 +/obj/item/food/grown/potato{ + pixel_x = -5; + pixel_y = 0 }, -/obj/item/radio/intercom/directional/south{ - pixel_x = 1 +/obj/item/food/grown/potato{ + pixel_x = -5; + pixel_y = 0 }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/cryo) -"PH" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 +/obj/item/food/grown/tomato{ + pixel_x = -3; + pixel_y = 0 }, -/obj/item/radio/intercom/directional/east, -/obj/structure/chair/comfy/shuttle{ - dir = 1 +/obj/item/food/grown/tomato{ + pixel_x = -3; + pixel_y = 0 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"PU" = ( -/obj/structure/filingcabinet/chestdrawer/wheeled{ - dir = 8 +/obj/item/food/grown/chili{ + pixel_x = 2; + pixel_y = 0 }, -/obj/item/folder/yellow, -/obj/item/folder/yellow, -/obj/item/folder/blue, -/obj/item/folder, -/obj/effect/decal/cleanable/dirt, -/obj/item/pen, -/obj/item/pen, -/obj/effect/turf_decal/ntspaceworks_big/eight, -/obj/item/stamp, -/obj/item/stamp/denied, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Qg" = ( -/obj/machinery/power/ship_gravity, -/obj/structure/cable/cyan{ - icon_state = "0-8" +/obj/item/food/grown/chili{ + pixel_x = 2; + pixel_y = 0 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"Qj" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/item/stack/sheet/cardboard{ - amount = 2 +/obj/item/storage/fancy/egg_box, +/obj/item/food/meat/slab{ + pixel_x = -4; + pixel_y = -1 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Qp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/item/food/meat/slab{ + pixel_x = -4; + pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/item/food/fishmeat{ + pixel_x = -4; + pixel_y = 4 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/ship/engineering) -"QG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/structure/closet/crate/miningcar{ - name = "mining cart" +/obj/item/food/fishmeat{ + pixel_x = -4; + pixel_y = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"QI" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/item/reagent_containers/glass/bowl{ + pixel_x = 0; + pixel_y = -5 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable/yellow{ - icon_state = "2-5" +/obj/item/reagent_containers/glass/bowl{ + pixel_x = 0; + pixel_y = -5 }, -/obj/structure/cable/cyan{ - icon_state = "1-10" +/obj/item/plate{ + pixel_x = 0; + pixel_y = -7 }, -/turf/open/floor/plating, -/area/ship/engineering) -"QO" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ - dir = 1 +/obj/item/plate{ + pixel_x = 0; + pixel_y = -7 }, -/obj/item/cigbutt, -/obj/structure/chair/handrail{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"xP" = ( +/obj/machinery/power/smes/shuttle/precharged, +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engine Access" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"RA" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/window/plasma/reinforced{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning, -/obj/item/cigbutt, -/turf/open/floor/plasteel/tech/techmaint, +/obj/machinery/door/poddoor{ + id = "dwayne_engines_starboard"; + dir = 4 + }, +/turf/open/floor/plating, /area/ship/engineering) -"RJ" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ +"xZ" = ( +/obj/structure/cable/cyan{ icon_state = "4-8" }, -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"RN" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/storage/eva) -"RS" = ( -/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ - dir = 8 +/obj/effect/turf_decal/ntspaceworks_small/left, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"yb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/sign/warning/fire{ + pixel_x = -6; + pixel_y = 24 }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/structure/sign/warning/nosmoking/circle{ + pixel_x = 6; + pixel_y = 24 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/machinery/button/shieldwallgen{ - id = "dwayne_mining_field"; - pixel_x = 1; - pixel_y = 19 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 }, -/obj/machinery/button/door{ - id = "dwayne_mining"; - name = "Blast Doors"; - pixel_x = -8; - pixel_y = 20 +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"yp" = ( +/obj/structure/railing/thin/corner{ + dir = 1 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"RT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/structure/railing/thin/corner{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030; + dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"RU" = ( -/obj/structure/closet/crate/internals, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/effect/turf_decal/ntspaceworks_big/one{ +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030 + }, +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Se" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/warning, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"yq" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/door/airlock/command/glass{ - dir = 4; - name = "Bridge"; - req_one_access = list(20,41) - }, -/obj/structure/cable/cyan{ - icon_state = "4-10" +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/black{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/stairs{ - dir = 4; - color = "#555555" +/obj/structure/cable/cyan{ + icon_state = "1-8" }, -/area/ship/bridge) -"Sf" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" +/turf/open/floor/wood, +/area/ship/crew/canteen) +"yD" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"yJ" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/structure/grille, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"yN" = ( /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "4-8" }, +/obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor{ + id = "dwayne_lounge"; + dir = 4 + }, /turf/open/floor/plating, /area/ship/crew/canteen) -"Sg" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 4 +"yZ" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/cargo/starboard) +"zb" = ( +/obj/item/radio/old{ + pixel_x = 6; + pixel_y = 21 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/item/toy/prize/ripley{ + pixel_x = -11; + pixel_y = 29 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/white, +/obj/machinery/button/door{ + pixel_y = -10; + dir = 8; + pixel_x = 21; + id = "dwayne_bathroom"; + name = "Bathroom Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 }, -/obj/structure/cable/cyan{ - icon_state = "6-10" +/obj/structure/table, +/obj/item/towel{ + pixel_x = 8; + pixel_y = -3 }, -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" +/obj/item/towel{ + pixel_y = -4; + pixel_x = -5 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/item/soap/nanotrasen{ + pixel_y = -1; + pixel_x = -3 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"Si" = ( -/obj/structure/window{ - dir = 4 +/obj/structure/platform/ship_two{ + dir = 1; + layer = 2.9 }, -/obj/structure/curtain, -/obj/machinery/shower{ - dir = 1 +/turf/open/floor/plastic, +/area/ship/crew/toilet) +"zi" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" }, -/obj/item/bikehorn/rubberducky/plasticducky{ - pixel_x = -2; - pixel_y = 3 +/obj/structure/cable/cyan{ + icon_state = "1-8" }, -/obj/machinery/door/window/northleft{ - name = "Shower Door" +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/obj/structure/catwalk/over/plated_catwalk/white, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/toilet) -"St" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows"; +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"zl" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/half{ dir = 4 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/crew/dorm) -"SA" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_engines" +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/engineering) -"SB" = ( -/obj/structure/cable/yellow{ - icon_state = "0-8" +/obj/machinery/modular_computer/console/preset/command{ + dir = 8 }, -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/structure/extinguisher_cabinet/directional/south{ + pixel_x = 7 }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"SI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"zz" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/corner/opaque/ntblue/border{ + dir = 8 + }, +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"zA" = ( /obj/structure/cable/cyan{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/structure/crate_shelf, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Tl" = ( -/obj/machinery/washing_machine, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/toilet) -"Tw" = ( -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 13 +/obj/structure/closet/crate/freezer{ + name = "provisions crate" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 +/obj/item/storage/cans/sixbeer{ + pixel_y = 2 }, -/obj/structure/cable/cyan, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door{ - pixel_x = -21; - pixel_y = -13; - dir = 4; - id = "dwayne_bathroom"; - normaldoorcontrol = 1; - specialfunctions = 4; - name = "Bathroom Lock" +/obj/item/storage/cans/sixsoda{ + pixel_y = -2 }, -/turf/open/floor/plasteel/patterned, -/area/ship/crew/toilet) -"Tz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 +/obj/effect/spawner/random/food_or_drink/ration, +/obj/effect/spawner/random/food_or_drink/ration, +/obj/effect/spawner/random/food_or_drink/ration, +/obj/effect/spawner/random/food_or_drink/ration, +/obj/effect/spawner/random/food_or_drink/ration, +/obj/effect/spawner/random/food_or_drink/ration, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"zB" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 2; + piping_layer = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"zC" = ( /obj/structure/cable/cyan{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"TO" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/handrail{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"TP" = ( -/obj/machinery/power/solar, -/obj/effect/turf_decal/solarpanel, -/obj/structure/cable/yellow{ - icon_state = "0-2" +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"zI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/door/airlock/mining{ + name = "Equipment Room" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/equip) +"zP" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 }, -/turf/open/floor/plating/airless, -/area/ship/external/dark) -"TR" = ( -/obj/structure/chair/sofa/brown/old/right/directional/north, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Ub" = ( /obj/effect/turf_decal/industrial/warning, -/obj/machinery/cryopod, +/obj/structure/closet/crate/internals{ + name = "surplus EVA crate" + }, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/tank/internals/oxygen/yellow{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/tank/internals/oxygen/yellow{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 0; + pixel_y = -5 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 0; + pixel_y = -5 + }, +/obj/effect/mapping_helpers/crate_shelve, /turf/open/floor/plasteel/patterned/grid, -/area/ship/crew/cryo) -"Uj" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/area/ship/cargo/starboard) +"Ak" = ( +/obj/item/stack/sheet/metal/twenty{ + pixel_y = 0 + }, +/obj/item/stack/sheet/glass/twenty{ + pixel_y = 3 + }, +/obj/effect/turf_decal/box/corners, +/obj/structure/crate_shelf, +/obj/structure/closet/crate/engineering{ + name = "material crate" + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"Am" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ dir = 4 }, -/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Un" = ( -/obj/effect/decal/cleanable/ash, -/obj/structure/railing{ +/area/ship/cargo/port) +"AB" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor{ + id = "dwayne_port" + }, +/turf/open/floor/plating, +/area/ship/cargo/port) +"AC" = ( +/obj/effect/turf_decal/borderfloor{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow/half{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/item/gun/ballistic/shotgun/flamingarrow, -/obj/item/gun/ballistic/shotgun/flamingarrow, -/obj/item/gun/ballistic/shotgun/flamingarrow, -/obj/structure/guncloset/shotgun{ - name = "rifle locker"; - desc = "A locker that holds rifles." +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"UD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/machinery/door/airlock/freezer{ + name = "Captain's-Bathroom"; + dir = 4; + req_access_txt = "20"; + id_tag = "dwayne_bathroom" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/crate/medical, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/storage/firstaid/regular, -/obj/item/roller, -/obj/item/reagent_containers/hypospray/medipen/survival, -/obj/item/reagent_containers/hypospray/medipen/survival{ - pixel_y = -4 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/item/storage/pill_bottle/charcoal/less, -/obj/structure/cable/cyan{ - icon_state = "5-10" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/turf_decal/ntspaceworks_big/six, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"UX" = ( +/turf/open/floor/wood, +/area/ship/crew/toilet) +"AD" = ( /obj/structure/cable/cyan{ - icon_state = "2-8" + icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable/cyan{ icon_state = "1-8" }, /obj/structure/cable/cyan{ - icon_state = "4-8" + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, /area/ship/hallway/central) -"UY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"Vb" = ( -/obj/structure/dresser{ +"AG" = ( +/obj/structure/sign/poster/radio/random{ + pixel_y = 32 + }, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/light/directional/west, -/obj/item/reagent_containers/food/drinks/soda_cans/cola{ - pixel_y = 14; - pixel_x = 3 +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, /turf/open/floor/wood, -/area/ship/crew/dorm) -"Vg" = ( -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating/airless, -/area/ship/crew/cryo) -"Vv" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/ship/engineering) -"VP" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"VZ" = ( +/area/ship/crew/canteen) +"AL" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, /obj/structure/cable/yellow{ - icon_state = "4-8" + icon_state = "0-2" }, -/obj/machinery/door/poddoor/preopen{ - id = "dwayne_windows"; - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"AQ" = ( /obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/machinery/door/firedoor/window, /turf/open/floor/plating, -/area/ship/crew/dorm) -"Wi" = ( -/obj/machinery/mineral/processing_unit{ - output_dir = 4; - input_dir = 8 +/area/ship/cargo/port) +"AS" = ( +/obj/effect/spawner/bunk_bed{ + dir = 2 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/mono/dark, -/area/ship/storage/eva) -"Wm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/curtain/bounty, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"AT" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/bridge) +"AZ" = ( +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/structure/cable/cyan{ - icon_state = "2-5" +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"Bg" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 10 }, -/obj/structure/cable/cyan{ - icon_state = "2-9" +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"WE" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, /obj/structure/cable/cyan{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"WK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/ntspaceworks_big/seven, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"WZ" = ( -/obj/item/kirbyplants/random{ - pixel_y = 18; - pixel_x = -8 +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/wood{ - icon_state = "wood-broken4" +/obj/effect/turf_decal/trimline/opaque/black/filled/warning{ + dir = 9 }, -/area/ship/crew/dorm) -"Xa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"Bx" = ( +/obj/structure/railing{ + dir = 2 }, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable/cyan{ - icon_state = "0-8" + icon_state = "1-8" }, -/obj/machinery/light_switch{ - pixel_x = -12; - pixel_y = 20 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /turf/open/floor/plasteel/stairs{ dir = 4; color = "#555555" }, /area/ship/bridge) -"Xh" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 1 +"BU" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/machinery/autolathe, -/obj/machinery/light_switch{ - pixel_x = -12; - pixel_y = 20 +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Xk" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Xl" = ( -/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/cryo) +"BX" = ( /obj/structure/cable/yellow{ - icon_state = "4-8" + icon_state = "6-9" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Xn" = ( -/obj/effect/turf_decal/techfloor{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/ntbluelight/filled/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Co" = ( /obj/structure/cable/cyan{ - icon_state = "1-2" + icon_state = "1-4" }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Xo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Xw" = ( -/obj/structure/table/wood, -/obj/item/food/soup/oatmeal{ - pixel_y = 14; - pixel_x = 10; - desc = "A nice bowl of oatmeal. You aren't quite sure how long it's been sitting here." +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"Dm" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "0-2" }, /obj/structure/cable/yellow{ - icon_state = "4-9" + icon_state = "2-4" }, /obj/structure/cable/yellow{ - icon_state = "2-9" + icon_state = "2-8" }, -/obj/item/reagent_containers/food/drinks/soda_cans/cola{ - pixel_y = 1; - pixel_x = -5 +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"Ds" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"XC" = ( -/obj/structure/chair/sofa/brown/old/right/directional/south, -/obj/item/radio/intercom/directional/north, -/obj/item/cigbutt/cigarbutt{ - pixel_x = 8; - pixel_y = -1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/freezer{ + name = "Dorms-Bathroom"; + dir = 4; + id_tag = "dwayne_bathroom" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, /turf/open/floor/wood, -/area/ship/crew/canteen) -"YA" = ( +/area/ship/crew/toilet) +"Dv" = ( +/turf/template_noop, +/area/space) +"DE" = ( /obj/machinery/power/solar, /obj/effect/turf_decal/solarpanel, /obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" + icon_state = "0-8" }, /obj/structure/cable/yellow{ - icon_state = "2-8" + icon_state = "1-8" }, /turf/open/floor/plating/airless, /area/ship/external/dark) -"YE" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 +"DJ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/closet/emcloset/wall/directional/north, +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloor/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"DL" = ( +/obj/structure/filingcabinet/filingcabinet{ + dir = 4; + pixel_x = -10; + density = 0 + }, +/obj/effect/turf_decal/corner/opaque/ntblue/border{ dir = 8 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"YY" = ( -/obj/structure/closet/crate/trashcart, -/obj/item/trash/candy, -/obj/item/trash/sosjerky, -/obj/item/trash/can/food/beans, -/obj/effect/spawner/random/maintenance, -/obj/structure/cable/cyan{ - icon_state = "2-5" +/obj/structure/railing{ + dir = 2 }, /obj/structure/cable/cyan{ - icon_state = "5-8" + icon_state = "0-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Zj" = ( -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light_switch{ + pixel_x = -12; + pixel_y = 22 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/obj/item/folder/yellow, +/obj/item/folder/red, +/obj/item/folder/blue, +/obj/item/megaphone/cargo, +/obj/item/gps, +/obj/item/bodycamera, +/obj/item/bodycamera, +/obj/item/pen, +/obj/machinery/button/door{ + id = "dwayne_bridge"; + name = "Privacy Shutter Control"; + pixel_x = -21; + pixel_y = -3; dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"DP" = ( +/obj/machinery/power/shuttle/engine/fueled/plasma{ + dir = 4 }, -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" +/turf/open/floor/engine/hull, +/area/ship/engineering) +"DR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 @@ -3420,758 +3263,3343 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"Zk" = ( -/obj/structure/bed, -/obj/effect/spawner/random/bedsheet, -/obj/structure/cable/yellow{ - icon_state = "4-10" +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"DS" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" }, -/turf/open/floor/carpet, -/area/ship/crew/dorm) -"Zv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/ntspaceworks_small, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"DT" = ( /obj/structure/cable/cyan{ - icon_state = "1-2" + icon_state = "2-4" }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"ZA" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 1 +/obj/structure/cable/cyan{ + icon_state = "2-8" }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned/grid, -/area/ship/storage/eva) -"ZK" = ( -/obj/machinery/door/poddoor{ - id = "dwayne_mining" +/area/ship/cargo/port) +"Ee" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plating, -/area/ship/storage/eva) -"ZL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"Ep" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/ship/crew/canteen) +"Eu" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/corner{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/caution{ +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, -/turf/open/floor/plasteel/tech/techmaint, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid/dark, /area/ship/engineering) -"ZR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 +"Ex" = ( +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/machinery/oven, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"EE" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/structure/sign/poster/official/safety_internals{ - pixel_y = -32 +/obj/structure/cable/cyan{ + icon_state = "1-2" }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"EG" = ( +/obj/structure/railing/thin/corner{ + dir = 4 + }, +/obj/structure/railing/thin/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030; + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/warning, +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"EV" = ( +/obj/effect/turf_decal/box/corners{ dir = 8 }, -/turf/open/floor/plasteel/tech, +/obj/structure/ore_box, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"EZ" = ( +/obj/machinery/computer/solar_control{ + dir = 8; + icon_state = "computer-right" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/airalarm/directional/south, +/obj/structure/sign/poster/rilena/random{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"Fd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, /area/ship/hallway/central) -"ZS" = ( -/obj/machinery/light_switch{ - pixel_x = 12; - pixel_y = 20 +"Fi" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/corner{ + dir = 4 }, -/obj/machinery/vending/coffee, -/obj/item/trash/candle{ - pixel_y = 18; - pixel_x = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) - -(1,1,1) = {" -OJ -OJ -OJ -OJ -OJ -OJ -OJ -OJ -OJ -Dv -OJ -OJ -OJ -OJ -OJ -OJ -OJ -OJ -OJ +/obj/structure/closet/secure_closet/wall/directional/south{ + icon_state = "cargo_wall"; + name = "miner's locker"; + req_access_txt = "48"; + dir = 8; + pixel_y = 0; + pixel_x = -28 + }, +/obj/item/clothing/suit/hazardvest{ + pixel_x = -7; + pixel_y = -2 + }, +/obj/item/clothing/under/rank/cargo/miner/hazard{ + pixel_x = -7; + pixel_y = -3 + }, +/obj/item/storage/belt/mining/alt{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/clothing/head/hardhat/mining{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/clothing/gloves/explorer{ + pixel_x = -8; + pixel_y = -5 + }, +/obj/item/extinguisher/mini{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/item/gps/mining{ + pixel_x = -3; + pixel_y = -7 + }, +/obj/item/melee/knife/survival, +/obj/item/stack/marker_beacon/ten{ + pixel_x = -9; + pixel_y = -11 + }, +/obj/effect/turf_decal/trimline/opaque/black/line{ + layer = 2.030 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/trimline/opaque/yellow/warning, +/obj/item/flashlight/seclite{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"Fj" = ( +/obj/effect/turf_decal/industrial/outline/blue, +/obj/machinery/atmospherics/components/unary/tank/oxygen{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering/atmospherics) +"Fn" = ( +/obj/structure/chair/handrail{ + dir = 4; + name = "overhead handrail" + }, +/obj/machinery/shower{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 5 + }, +/obj/structure/railing/thin{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/ship/cargo/port) +"Fq" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor{ + id = "dwayne_lounge"; + dir = 2 + }, +/turf/open/floor/plating/airless, +/area/ship/crew/canteen) +"Fw" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/storage/equip) +"Fz" = ( +/obj/item/caution, +/obj/item/caution, +/obj/item/caution, +/obj/item/reagent_containers/glass/bucket, +/obj/item/storage/bag/trash, +/obj/item/soap{ + pixel_x = 0; + pixel_y = -9 + }, +/obj/item/mop, +/obj/structure/closet/crate/trashcart/laundry{ + name = "cleaning cart" + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/crate_shelf, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"FH" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"FM" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/chair/handrail{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"FN" = ( +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"FQ" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -19 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/extinguisher/mini{ + pixel_x = -10; + pixel_y = 4 + }, +/obj/item/clothing/head/welding{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"FT" = ( +/obj/structure/grille, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor{ + id = "dwayne_captain" + }, +/turf/open/floor/plating, +/area/ship/crew/dorm/captain) +"Gr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 + }, +/obj/structure/extinguisher_cabinet/directional/south{ + pixel_x = 7 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Gx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"GG" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"GL" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"GQ" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/crate_shelf, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"Hh" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/structure/cable/yellow{ + icon_state = "2-5" + }, +/obj/structure/cable/cyan{ + icon_state = "4-10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/structure/chair/handrail{ + dir = 2 + }, +/obj/machinery/button/door{ + dir = 2; + pixel_y = 20; + id = "dwayne_engines_starboard"; + name = "Starboard Engine Window Control" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering) +"HB" = ( +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/structure/bed/double, +/obj/item/bedsheet/double/black, +/obj/machinery/light_switch{ + pixel_x = -12; + pixel_y = 22 + }, +/obj/machinery/button/door{ + pixel_y = -10; + dir = 8; + pixel_x = 21; + id = "dwayne_captain"; + name = "Captain's Window Control" + }, +/turf/open/floor/carpet, +/area/ship/crew/dorm/captain) +"HG" = ( +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/structure/chair/handrail{ + dir = 4; + name = "overhead handrail" + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 6 + }, +/obj/structure/railing/thin{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/ship/cargo/starboard) +"HI" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "dwayne_port_field"; + locked = 1 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor{ + id = "dwayne_port" + }, +/turf/open/floor/plating, +/area/ship/cargo/port) +"HV" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"Ia" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/chair/handrail{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"If" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"Im" = ( +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/borderfloor{ + layer = 2.030; + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Ip" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/ore_box, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"Is" = ( +/obj/structure/closet/crate/engineering/electrical{ + name = "fuel crate" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/item/stack/sheet/mineral/plasma/ten, +/obj/effect/mapping_helpers/crate_shelve, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"IF" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"IJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/corner/opaque/ntblue/half, +/obj/machinery/fax/indie{ + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"IW" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + name = "exhaust injector"; + dir = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"IZ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Jc" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"Jk" = ( +/obj/structure/sink{ + pixel_y = 2; + dir = 4; + pixel_x = -13 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/mirror{ + pixel_y = 4; + layer = 2.8; + pixel_x = -25 + }, +/turf/open/floor/plastic, +/area/ship/crew/toilet) +"Jq" = ( +/obj/docking_port/stationary{ + dheight = 1; + dir = 2; + dwidth = 20; + height = 30; + name = "Dwayne Starboard Beam Dock"; + width = 40 + }, +/turf/template_noop, +/area/space) +"Jx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"Jy" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"JB" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters{ + id = "dwayne_equipment"; + dir = 2 + }, +/turf/open/floor/plating, +/area/ship/storage/equip) +"JH" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"Ka" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"Ku" = ( +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"Kw" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"KF" = ( +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/clothing/under/overalls/black{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/item/clothing/under/overalls/brown{ + pixel_x = 10; + pixel_y = 1 + }, +/obj/item/clothing/suit/jacket{ + pixel_x = 10; + pixel_y = 7 + }, +/obj/item/clothing/suit/toggle/windbreaker{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/clothing/shoes/cowboy{ + pixel_x = -9; + pixel_y = -9 + }, +/obj/item/clothing/shoes/cowboy/black{ + pixel_x = 0; + pixel_y = -9 + }, +/obj/item/clothing/shoes/sneakers/black{ + pixel_x = 9; + pixel_y = -14 + }, +/obj/item/clothing/under/pants/blackjeans{ + pixel_x = 10; + pixel_y = -6 + }, +/obj/item/clothing/under/pants/khaki{ + pixel_y = -6 + }, +/obj/item/clothing/under/overalls{ + pixel_x = -8; + pixel_y = 1 + }, +/obj/item/clothing/suit/jacket/leather/coat{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/clothing/head/cowboy{ + pixel_x = 10; + pixel_y = 15 + }, +/obj/item/clothing/head/soft{ + pixel_x = -9; + pixel_y = 14 + }, +/obj/item/clothing/head/soft/utility_olive{ + pixel_y = 14 + }, +/obj/machinery/button/door{ + pixel_y = 13; + dir = 8; + pixel_x = 21; + id = "dwayne_dorms"; + name = "Dormitory Window Control" + }, +/obj/structure/closet/cabinet{ + name = "wardrobe" + }, +/obj/item/clothing/under/pants/cargo{ + pixel_x = -8; + pixel_y = -2 + }, +/obj/item/storage/backpack/satchel{ + pixel_x = -11; + pixel_y = -10 + }, +/obj/item/storage/backpack{ + pixel_x = 0; + pixel_y = -11 + }, +/obj/item/storage/backpack/duffelbag{ + pixel_x = 7; + pixel_y = -7 + }, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"KJ" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"Ln" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/effect/turf_decal/corner/opaque/yellow/mono, +/obj/structure/railing/thin{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/suit/space/hardsuit/mining/independent, +/obj/item/clothing/mask/gas/explorer, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"Lo" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/black/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/structure/chair/handrail{ + dir = 1 + }, +/obj/machinery/button/door{ + dir = 1; + pixel_y = -21; + id = "dwayne_engines_port"; + name = "Port Engine Window Control" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"Ls" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/black/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = -12 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"Lt" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + layer = 2.030; + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntbluelight/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"LB" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Engine Access" + }, +/obj/machinery/atmospherics/components/unary/shuttle/heater{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + id = "dwayne_engines_starboard"; + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"LL" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/dorm/captain) +"LM" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/ntspaceworks_small{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"LN" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"LZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"Me" = ( +/obj/machinery/power/terminal, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/engineering) +"Mg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/layer4, +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"Mj" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 12 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/engineering) +"Mt" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/west, +/obj/item/kirbyplants{ + icon_state = "plant-18"; + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/paper_bin{ + pixel_x = 11; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = 10; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"Mz" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"MA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"MB" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"MG" = ( +/obj/structure/guncloset, +/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/empty, +/obj/effect/turf_decal/corner/opaque/yellow/mono, +/obj/item/gun/energy/sharplite/x12, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"MW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/ship/crew/dorm) +"Nf" = ( +/obj/machinery/power/shuttle/engine/electric, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/ship/engineering) +"No" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/toilet) +"Ny" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/industrial/hatch/blue, +/obj/machinery/atmospherics/components/unary/portables_connector/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/central) +"NF" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"NO" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable/cyan{ + icon_state = "0-1" + }, +/obj/machinery/door/poddoor{ + id = "dwayne_starboard" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "dwayne_starboard_field"; + locked = 1 + }, +/turf/open/floor/plating, +/area/ship/cargo/starboard) +"NQ" = ( +/obj/structure/closet/crate/science{ + name = "mining crate" + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/structure/crate_shelf, +/obj/effect/turf_decal/box/corners, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/clothing/under/rank/cargo/miner/hazard{ + pixel_x = 11; + pixel_y = 4 + }, +/obj/item/clothing/under/rank/cargo/miner/hazard{ + pixel_x = 11; + pixel_y = 1 + }, +/obj/item/clothing/under/rank/cargo/miner/hazard{ + pixel_x = 11; + pixel_y = -2 + }, +/obj/item/radio/weather_monitor{ + pixel_x = -1; + pixel_y = 0 + }, +/obj/item/radio/weather_monitor{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/radio/weather_monitor{ + pixel_x = -1; + pixel_y = -4 + }, +/obj/item/mining_scanner{ + pixel_x = 9; + pixel_y = 0 + }, +/obj/item/mining_scanner{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/mining_scanner{ + pixel_x = 9; + pixel_y = -4 + }, +/obj/item/clothing/head/hardhat/mining{ + pixel_x = -11; + pixel_y = -5 + }, +/obj/item/clothing/head/hardhat/mining{ + pixel_x = -11; + pixel_y = -1 + }, +/obj/item/clothing/head/hardhat/mining{ + pixel_x = -11; + pixel_y = 3 + }, +/obj/item/clothing/shoes/workboots/mining{ + pixel_y = -8; + pixel_x = -3 + }, +/obj/item/clothing/shoes/workboots/mining{ + pixel_y = -8; + pixel_x = -3 + }, +/obj/item/clothing/shoes/workboots/mining{ + pixel_y = -8; + pixel_x = -3 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"NW" = ( +/obj/machinery/power/shuttle/engine/electric, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/ship/engineering/atmospherics) +"On" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/half{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/stamp/captain{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/pen/fountain{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Op" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/structure/dresser{ + dir = 4; + pixel_y = 0; + pixel_x = 4 + }, +/obj/item/radio/intercom/table{ + dir = 4; + pixel_y = 6; + pixel_x = 6 + }, +/turf/open/floor/carpet, +/area/ship/crew/dorm/captain) +"Ov" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Oy" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"Oz" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 8 + }, +/obj/structure/closet/firecloset/wall/directional/south, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"OE" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/line{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/black/filled/warning{ + dir = 2 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"OJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 8; + pixel_x = -1 + }, +/obj/effect/turf_decal/corner/opaque/white/diagonal{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"OP" = ( +/obj/machinery/light/directional/south, +/obj/structure/chair/handrail{ + dir = 1; + name = "overhead handrail" + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"OR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"OV" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/cryo) +"OW" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable/cyan{ + icon_state = "0-1" + }, +/turf/open/floor/carpet/black{ + name = "bathroom mat" + }, +/area/ship/crew/toilet) +"OX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"Pl" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/canteen) +"Pr" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ + dir = 4; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 10 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Pw" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 22 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"Qg" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/half{ + dir = 1 + }, +/obj/structure/table/emptycomputer{ + icon_state = "emptycomputer-left" + }, +/obj/item/radio/intercom/wideband/directional/north{ + pixel_x = 9; + pixel_y = 13 + }, +/obj/machinery/emergency_panel{ + pixel_y = 4; + pixel_x = -6 + }, +/obj/item/reagent_containers/glass/maunamug{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Qp" = ( +/obj/machinery/computer/monitor{ + dir = 8; + icon_state = "computer-left" + }, +/obj/machinery/light/directional/east, +/obj/machinery/button/door{ + pixel_y = -15; + dir = 8; + pixel_x = -8; + id = "dwayne_exhaust"; + name = "Exhaust Window Control" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"QG" = ( +/obj/machinery/atmospherics/components/binary/pump/layer2{ + dir = 2; + name = "Supply to Output"; + layer = 2.43 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"QI" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/effect/turf_decal/corner/opaque/yellow/mono, +/obj/machinery/light/directional/north, +/obj/structure/railing/thin{ + dir = 8 + }, +/obj/structure/railing/thin{ + dir = 4 + }, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/suit/space/hardsuit/mining/independent, +/obj/item/clothing/mask/gas/explorer, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/equip) +"QK" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"Ra" = ( +/obj/machinery/firealarm/directional/east{ + pixel_y = 6 + }, +/obj/structure/extinguisher_cabinet/directional/east{ + pixel_y = -6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"Rb" = ( +/obj/item/toy/eightball{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/structure/table/wood/poker{ + name = "billiards table" + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/canteen) +"Rm" = ( +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/structure/chair/handrail{ + dir = 8; + name = "overhead handrail" + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/obj/structure/railing/thin{ + dir = 4 + }, +/turf/open/floor/noslip, +/area/ship/cargo/starboard) +"RE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"RJ" = ( +/obj/machinery/vending/cigarette{ + pixel_y = 4; + pixel_x = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/canteen) +"RS" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 4; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"RV" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/cable/cyan{ + icon_state = "4-10" + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "dwayne_bridge" + }, +/obj/machinery/door/airlock/command/glass{ + dir = 4; + name = "Bridge"; + req_one_access = list(20,41) + }, +/turf/open/floor/plasteel/stairs{ + dir = 4; + color = "#555555" + }, +/area/ship/bridge) +"Sa" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma{ + dir = 4; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-9" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Se" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Sn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"SA" = ( +/obj/structure/closet/secure_closet/wall/directional/north{ + name = "foreman's locker"; + req_access_txt = "41"; + icon_state = "solgov_wall"; + pixel_y = 0; + dir = 4; + pixel_x = 28 + }, +/obj/item/storage/backpack/duffelbag/engineering{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/storage/backpack/satchel/eng{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/clothing/shoes/workboots{ + pixel_y = -7; + pixel_x = 8 + }, +/obj/item/clothing/suit/jacket/leather/duster{ + pixel_x = 11; + pixel_y = 0 + }, +/obj/item/clothing/under/rank/security/detective{ + pixel_x = 11; + pixel_y = 0 + }, +/obj/item/storage/belt/utility/full{ + pixel_x = 8; + pixel_y = -7 + }, +/obj/item/clothing/gloves/fingerless{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/item/clothing/head/cowboy/sec{ + pixel_x = 13; + pixel_y = 11 + }, +/obj/item/clothing/head/hardhat/white{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/storage/guncase/pistol/miniegun{ + pixel_x = 7; + pixel_y = -9; + mag_count = 3 + }, +/obj/item/clothing/accessory/holster{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm) +"SB" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor{ + id = "dwayne_captain"; + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/crew/dorm/captain) +"SP" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/half{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "dwayne_windows"; + name = "Bridge Window Control"; + pixel_x = -5; + pixel_y = 20 + }, +/obj/machinery/computer/helm{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Th" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/structure/sign/poster/official/get_your_legs{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/cryo) +"Tl" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + layer = 2.43 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Tm" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/components/binary/pump/on/layer4{ + dir = 1; + name = "Scrubbers to Recycling"; + layer = 2.43 + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/button/door{ + pixel_y = 0; + dir = 8; + pixel_x = 21; + id = "dwayne_recycling"; + name = "Recycling Window Control" + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Tw" = ( +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/ntspaceworks_small/right, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"TO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"TP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor{ + id = "dwayne_lounge"; + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"TR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/port) +"TT" = ( +/obj/effect/spawner/bunk_bed{ + dir = 4 + }, +/obj/structure/curtain/bounty, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"TZ" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering) +"Uj" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + layer = 2.43 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/ship/engineering) +"UH" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/ship/crew/canteen) +"UN" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/cargo/starboard) +"UV" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/starboard) +"UX" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"Vb" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/solar, +/obj/effect/turf_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/ship/external/dark) +"Vm" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) +"Vo" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Vv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/wood, +/area/ship/crew/dorm) +"VH" = ( +/obj/machinery/atmospherics/components/binary/pump/layer4{ + name = "Input to Waste"; + dir = 1; + layer = 2.43 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"VO" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/dorm) +"VX" = ( +/obj/machinery/drill, +/obj/effect/turf_decal/borderfloor/full{ + layer = 2.038 + }, +/obj/effect/turf_decal/box, +/obj/machinery/button/door{ + pixel_y = 10; + dir = 4; + id = "dwayne_equipment"; + name = "Equipment Room Shutter Control"; + pixel_x = -21 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo/port) +"VZ" = ( +/obj/structure/table/wood/poker{ + name = "billiards table" + }, +/obj/item/dice/d6{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/dice/d6{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/dice/d6{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/dice/d6{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/dice/d6{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/dice/d6/ebony{ + pixel_x = 5; + pixel_y = 3 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/canteen) +"Wa" = ( +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock{ + name = "Common Room" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/canteen) +"Wg" = ( +/obj/structure/table/wood, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/obj/item/toy/cards/deck{ + pixel_x = 5; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"Wh" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = -12 + }, +/obj/machinery/button/door{ + id = "dwayne_bridge"; + name = "Privacy Shutter Control"; + pixel_x = 21; + pixel_y = -3; + dir = 8; + req_one_access = list(20,41) + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/ntbluelight/filled/corner, +/obj/structure/closet/crate/bin{ + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Wy" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"WB" = ( +/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/engineering) +"WE" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/hallway/central) +"WM" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Xa" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/power/smes/engineering, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = 24; + pixel_y = 3 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering) +"Xl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/chair/handrail{ + dir = 2 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Xo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Xu" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/cargo/port) +"Xw" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/toilet) +"XC" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock{ + name = "Common Room" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/canteen) +"XT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + layer = 2.030; + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Yd" = ( +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/obj/structure/chair/sofa/brown/old/left/directional/north, +/obj/machinery/button/door{ + pixel_y = -20; + dir = 1; + id = "dwayne_lounge"; + name = "Canteen Window Control"; + pixel_x = 10 + }, +/obj/machinery/button/door{ + pixel_y = -20; + dir = 1; + id = "dwayne_canteen"; + name = "Canteen Shutter Control"; + pixel_x = -2 + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -12; + pixel_y = -19 + }, +/turf/open/floor/carpet, +/area/ship/crew/canteen) +"Yg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/ntbluelight/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/ntbluelight/filled/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Yq" = ( +/obj/structure/table, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -25 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/item/radio{ + pixel_y = 13; + pixel_x = 1 + }, +/obj/item/radio{ + pixel_y = 9; + pixel_x = 1 + }, +/obj/item/radio{ + pixel_y = 5; + pixel_x = 1 + }, +/obj/item/radio{ + pixel_y = 5; + pixel_x = 1 + }, +/obj/item/radio{ + pixel_y = 13; + pixel_x = -8 + }, +/obj/item/radio{ + pixel_y = 9; + pixel_x = -8 + }, +/obj/item/radio{ + pixel_y = 5; + pixel_x = -8 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/crew/cryo) +"YD" = ( +/obj/effect/turf_decal/corner/opaque/yellow{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/black/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/turf/open/floor/plasteel/patterned/grid/dark, +/area/ship/engineering/atmospherics) +"YH" = ( +/obj/machinery/door/poddoor/preopen{ + id = "dwayne_windows"; + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating/airless, +/area/ship/bridge) +"Zd" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering"; + req_one_access = list(20,41,10) + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering) +"Zf" = ( +/obj/effect/spawner/bunk_bed{ + dir = 1 + }, +/obj/structure/curtain/bounty, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/ship/crew/dorm) +"Zj" = ( +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 + }, +/obj/structure/extinguisher_cabinet/directional/south{ + pixel_x = 7 + }, +/obj/structure/chair/handrail{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/borderfloor{ + layer = 2.030; + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/hallway/central) +"Zk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"Zo" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/computer/helm/viewscreen/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/crew/cryo) +"Zq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 2 + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) +"Zv" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/equip) +"ZK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "dwayne_windows" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating/airless, +/area/ship/bridge) +"ZL" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ship/engineering) +"ZX" = ( +/obj/machinery/button/door{ + id = "dwayne_starboard"; + name = "Starboard Blast Door Control"; + pixel_x = -8; + pixel_y = -20; + dir = 1 + }, +/obj/machinery/button/shieldwallgen{ + id = "dwayne_starboard_field"; + pixel_x = 1; + pixel_y = -19; + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/yellow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/cargo/starboard) + +(1,1,1) = {" +Dv +Dv +Dv +Dv +ak +qY +ak +Dv +Dv +Dv +Dv +Dv +eH +DP +eH +Dv +Dv +Dv +Dv "} (2,1,1) = {" -OJ -OJ -OJ -OJ -OJ -OJ -OJ -CB -mF -uN -mF -CB -OJ -OJ -OJ -OJ -OJ -OJ -OJ +Dv +ak +NW +NW +ak +hZ +ak +Dv +Dv +Dv +Dv +Dv +eH +LB +eH +Nf +Nf +eH +Dv "} (3,1,1) = {" -OJ -OJ -OJ -OJ -OJ -OJ -OJ -CP -iq -ZL -aS -CP -OJ -OJ -OJ -OJ -OJ -OJ -OJ +Dv +ak +jz +jz +ak +Tl +ak +Dv +Dv +Dv +Dv +Dv +eH +Uj +eH +lm +xP +eH +Dv "} (4,1,1) = {" -OJ -OJ -mF -gF -fi -mF -fy -SA -Ou -Qp -PH -SA -Pe -mF -fi -gF -mF -OJ -OJ +Dv +tX +kJ +vs +aq +Oz +ak +Dv +Dv +Dv +Dv +Dv +eH +gq +eD +ZL +qz +eH +Dv "} (5,1,1) = {" -OJ -OJ -mF -CD -ea -mF -Mk -mF -mF +Dv +tX +aK +mH +YD +Lo +ak +oE +oE kf -mF -mF -vJ -mF -Kp -gm -mF -OJ -OJ +oE +oE +eH +Hh +Eu +lb +jH +eH +Dv "} (6,1,1) = {" -OJ -OJ -mF -YE -bP -om -He -he +Dv +tX +OE +Sa +lU +Vo +pl +oE Mg gf lC -nr -fY -zQ -oa -AE -mF -OJ -OJ +oE +my +hL +gw +Me +Xa +eH +Dv "} (7,1,1) = {" -OJ -OJ -mF -kQ -hZ -QI -qO -Pl -Xn +Dv +tX +rw +RS +vA +eU +Fj +oE +AZ ma -ir -LK -mC -Vv -fl -VP -mF -OJ -OJ +aA +oE +eH +Zd +tL +tL +eH +eH +Dv "} (8,1,1) = {" -OJ -OJ -mF -Ez -OT -AG -Qg -ow -lD -Nw -RA -nJ -Kc -ig -hK -zY -mF -OJ -OJ +Dv +ak +ak +Pr +gu +eU +ge +ak +oE +sl +oE +eH +nu +qq +jR +lW +eH +eH +Dv "} (9,1,1) = {" -OJ -RN -uc -uc -uc -uc -uc -uc -Cj -yu -iZ -eM -eM -eM -eM -eM -eM -gu -OJ +Dv +zB +vF +Tm +Bg +xb +Ls +kp +oK +MB +ns +TZ +Mj +bj +WB +ki +fJ +IW +Dv "} (10,1,1) = {" -OJ -uc -MT +Dv +ak +ak +ak +ak +ak +ak +ak +yb +OR +Im eH -Cp -dq -vb -uc -Sg -mF -Zj -eM -pS -ve -xP -SI -mX -eM -OJ +eH +ro +Qp +EZ +eH +eH +Dv "} (11,1,1) = {" -OJ -in -mr -as -Un -oB -Wi -uc +Dv +Fw +Zv +uq +iu +Fi +MG +JB +bR +fN +QG +Ny +OV +OV +OV +OV +OV +nr +Dv +"} +(12,1,1) = {" +Dv +Dv +Zv +cV +EG +qp +gs +JB +WM +JH +VH +cf +OV +dx +Yq +mf +OV +Dv +Dv +"} +(13,1,1) = {" +Dv +Dv +Zv +QI +yp +qp +tG +Zv +dL +Ka +Zj +OV +OV +Zo +aO +BU +OV +Dv +Dv +"} +(14,1,1) = {" +Dv +Dv +Zv +Ln +sA +uk +fq +zI aI AD -ZR -eM -CS -Ov -NW -YY -mf -xl -OJ +Gx +sY +qE +Th +ag +tD +OV +Dv +Dv "} -(12,1,1) = {" -OJ -ZK -Fn -vA -NN -pq -nf -uc +(15,1,1) = {" +Dv +Xu +jS +jS +ht +ht +jS +jS LN -lv +na mA -eM -cL -zI -UD -FR -Nf -Ip -OJ +vL +vL +vL +vL +vL +vL +UN +Dv "} -(13,1,1) = {" -OJ -ZK -ZA -QG -UY -zF -QO -Ex +(16,1,1) = {" +Dv +jS +nB +fU +Am +If +VX +jS wW lv sg -Hh -bb -hO -WK -ul -Qj -Ip -OJ +vL +GL +vP +uK +uh +Ee +vL +Dv "} -(14,1,1) = {" -hv -ZK -eu -NT -tX -Pd -Wm -zl +(17,1,1) = {" +Dv +HI +Co +th +EV +nG +FQ +jS or -UX +XT sD -Mb -oQ -GH -PU -Is -Xk -Ip -hg +vL +Pw +eg +Fz +NQ +Vm +nR +Dv "} -(15,1,1) = {" -OJ -ZK -eu -bO -nL -kM -TO -Ex +(18,1,1) = {" +Dv +AB +kv +kV +kV +TR +ku +sb IZ WE dK -Hh -zc -uk -Jq -FP -Nf -Ip -OJ +yZ +xZ +Sn +UV +UV +vm +wm +Dv "} -(16,1,1) = {" -OJ -ZK -eu -ww -Mo -dx +(19,1,1) = {" wh -uc +AB +DT +Ip +px +cn +LM +vj EE -lv +zi tj -eM -Xh -tJ -KO -vf -bf -Ip -OJ -"} -(17,1,1) = {" -OJ -HI -zK -JE -IK -RU -of uc +DS +Oy +rE +zA +zP +wm +Jq +"} +(20,1,1) = {" +Dv +AB +ea +kV +kV +TO +rQ +AQ fz -lv +JH Fd -eM -JZ -bl -Jn -bo -OW -vL -OJ +yZ +Tw +RE +UV +UV +vm +wm +Dv "} -(18,1,1) = {" -OJ -uc -RS -Uj -GN -zq -zt -uc +(21,1,1) = {" +Dv +ju +GG +bE +QK +NF +dO +jS kb FH pt -eM -oJ -ja -oy -cc -OQ -eM -OJ +vL +Rm +qm +GQ +Ak +Is +NO +Dv "} -(19,1,1) = {" -OJ -RN -uc -uc -uc -uc -uc -uc -my +(22,1,1) = {" +Dv +jS +hQ +Ia +ss +KJ +Fn +jS +wW DR -Gx -eM -eM -eM -eM -eM -eM -gu -OJ +sg +vL +HG +xd +Ra +FM +ZX +vL +Dv "} -(20,1,1) = {" -OJ -OJ -mR -dQ -oE -sp -dQ -MN +(23,1,1) = {" +Dv +jS +jS +jS +jS +jS +jS +jS DJ oR dy -bE -Tw -yx -Si -bj -vm -OJ -OJ -"} -(21,1,1) = {" -OJ -OJ -zi -Vg -Ub -gs -MB -Zv -qK -bv -yJ -bj -Ee -HP -Tl -bj -vm -OJ -OJ -"} -(22,1,1) = {" -OJ -OJ -za -Vg -sZ -Px -dQ -IJ -DJ -xh -vj -nY -nY -nY -nY -nY -dh -OJ -OJ -"} -(23,1,1) = {" -OJ -OJ -FS -MG -MG -MG -MG -MG -Xl -AQ -OP -nY -ZS -aY -vw -LJ -nY -OJ -OJ +vL +vL +vL +vL +vL +vL +vL +Dv "} (24,1,1) = {" +Dv +ir OJ -OJ -FS -MG -fV -Vb -cf -MG +xr +tI +ck +dh +Pl vQ Ka -Zv -qt -fp -Ia -xr -LZ -nY -OJ -OJ +yJ +bx +Zf +kO +TT +iZ +Mt +tM +Dv "} (25,1,1) = {" -OJ -OJ -FS -KJ -WZ -Po -Tz -DG -Zv -qg -Mn -nY +Dv +Pl +Ex +tQ +iY +ck +OX +Wa +sk +UX +Xo +iR ms -kO -hy -nY -HE -OJ -OJ +MW +fr +hC +Wg +bx +Dv "} (26,1,1) = {" -OJ -OJ -YA -hS -aV -sP -LH -MG -Xo -ak -RT -nY -XC -Xw -jS -Sf -Aw -OJ -OJ +Dv +ir +am +tQ +xh +ck +qg +Pl +Xl +Wy +OP +bx +AS +aY +SA +Vv +KF +tM +Dv "} (27,1,1) = {" -OJ -OJ -RJ -KJ -sS +Dv +jh +Pl +AG +Kw Zk ll -MG +ld Se -rE +Ka sM -nY bx -Fz -TR -cV -RJ -OJ -OJ +bx +Ds +bx +bx +bx +VO +Dv "} (28,1,1) = {" -OJ -OJ -bW -Fq -St +Dv +Dv +Pl +nY +LZ VZ -rE -rE -Xa -OL +fp +ld +Ov +zC Gr -rE -rE -Ds +oF +iq +No Jk -HE -bW -OJ -OJ +OW +oF +Dv +Dv "} (29,1,1) = {" -OJ -OJ -OJ -TP -ax -Op -vh -mJ +Dv +Dv +Pl +RJ +LZ +Rb +vw +Pl FN Mz -Jy -Oz +xo +gx +zb +Xw +ol +mF +oF +Dv +Dv +"} +(30,1,1) = {" +Dv +Dv +Pl +Pl +tg +nV +yq +XC +hB +Jx +BX +vi +vi +AC vi -NC +vi +xl +Dv +Dv +"} +(31,1,1) = {" +Dv +Dv +Dm +Fq +vB +UH +Yd +Pl +Wh +Lt +Yg +LL +qJ +Zq +bv +FT +bW +Dv +Dv +"} +(32,1,1) = {" +Dv +Dv +pS +lQ ql -jz -OJ -OJ -OJ +Ep +eq +Pl +aX +RV +ga +vi +HB +Op +tT +qd +pS +Dv +Dv "} -(30,1,1) = {" -OJ -OJ -OJ -OJ +(33,1,1) = {" +Dv +Dv +Jc +oa TP yN -vh -pl -hB +Pl +IF +DL Bx -BX +zz IF vi SB mv -OJ -OJ -OJ -OJ +ig +Jc +Dv +Dv "} -(31,1,1) = {" -OJ -OJ -OJ -OJ -OJ -OJ -GW -rE +(34,1,1) = {" +Dv +Dv +Dv +Ku +AL +qO +ZK +Qg eL -zz +MA aR -rE -GW -OJ -OJ -OJ -OJ -OJ -OJ +IJ +in +eu +Vb +HV +Dv +Dv +Dv "} -(32,1,1) = {" -OJ -OJ -OJ -OJ -OJ -OJ -OJ -GW -cw -cw +(35,1,1) = {" +Dv +Dv +Dv +Dv +Ku +DE +ZK +rk +mR cw -GW -OJ -OJ -OJ -OJ -OJ -OJ -OJ +oB +eo +in +Jy +yD +Dv +Dv +Dv +Dv +"} +(36,1,1) = {" +Dv +Dv +Dv +Dv +Dv +Dv +AT +IF +SP +On +zl +IF +AT +Dv +Dv +Dv +Dv +Dv +Dv +"} +(37,1,1) = {" +Dv +Dv +Dv +Dv +Dv +Dv +Dv +AT +YH +YH +YH +AT +Dv +Dv +Dv +Dv +Dv +Dv +Dv "} From 19037d2646e64b0eaec06e945243e7fda76ac144 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 24 Jan 2026 19:47:58 -0600 Subject: [PATCH 53/53] Automatic changelog generation for PR #5768 [ci skip] --- html/changelogs/AutoChangeLog-pr-5768.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5768.yml diff --git a/html/changelogs/AutoChangeLog-pr-5768.yml b/html/changelogs/AutoChangeLog-pr-5768.yml new file mode 100644 index 0000000000..7cf39e8ce3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5768.yml @@ -0,0 +1,4 @@ +author: DIB-DOG +changes: + - {rscadd: remaps the Dwayne} +delete-after: true