From 2fff760868f1758eeee04d80d4400cbf5c120e2a Mon Sep 17 00:00:00 2001 From: Bloop <13398309+vinylspiders@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:52:24 -0400 Subject: [PATCH 001/119] Fixes taur legs + augments not getting the correct footstep sounds from prefs (#4475) * Fixes taur legs not getting the correct footstep sounds from prefs * Fixes augments not getting the correct footstep from prefs * Update limbs.dm * Let us try this a different way * OK, we're doing it like this then. * Update human.dm * Update footstep_sound.dm --- .../code/modules/client/preferences/footstep_sound.dm | 7 +++++-- .../code/modules/mob/living/carbon/human/human.dm | 4 ++++ modular_nova/modules/bodyparts/code/_mutant_bodyparts.dm | 6 ++++++ .../modules/customization/modules/client/augment/limbs.dm | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/modular_nova/master_files/code/modules/client/preferences/footstep_sound.dm b/modular_nova/master_files/code/modules/client/preferences/footstep_sound.dm index 84eeefd66069..a94f9acd4406 100644 --- a/modular_nova/master_files/code/modules/client/preferences/footstep_sound.dm +++ b/modular_nova/master_files/code/modules/client/preferences/footstep_sound.dm @@ -13,12 +13,15 @@ if(value == "Default") return - var/list/value_to_define = list( + var/static/list/value_to_define = list( "Shoes" = FOOTSTEP_MOB_SHOE, "Claws" = FOOTSTEP_MOB_CLAW, ) + var/footstep_type = value_to_define[value] + var/obj/item/bodypart/leg/left_leg = target.get_bodypart(BODY_ZONE_L_LEG) var/obj/item/bodypart/leg/right_leg = target.get_bodypart(BODY_ZONE_R_LEG) - var/footstep_type = value_to_define[value] left_leg.footstep_type = footstep_type right_leg.footstep_type = footstep_type + + target.footstep_type = footstep_type // We are most likely going to have our legs get replaced during char creation immediately, so this is necessary to apply to any subsequent legs that get added. diff --git a/modular_nova/master_files/code/modules/mob/living/carbon/human/human.dm b/modular_nova/master_files/code/modules/mob/living/carbon/human/human.dm index 9bce5aff193e..696952377b98 100644 --- a/modular_nova/master_files/code/modules/mob/living/carbon/human/human.dm +++ b/modular_nova/master_files/code/modules/mob/living/carbon/human/human.dm @@ -1,3 +1,7 @@ +/mob/living/carbon/human + /// Used for footstep type pref, to apply to any new legs that get added to this mob. Uses a var instead of checking prefs because there are a lot of clientless mob situations. + var/footstep_type + /mob/living/carbon/human/Initialize(mapload) . = ..() mob_examine_panel = new(src) //create the datum diff --git a/modular_nova/modules/bodyparts/code/_mutant_bodyparts.dm b/modular_nova/modules/bodyparts/code/_mutant_bodyparts.dm index a26d0d77ba0a..a2b90f77b4be 100644 --- a/modular_nova/modules/bodyparts/code/_mutant_bodyparts.dm +++ b/modular_nova/modules/bodyparts/code/_mutant_bodyparts.dm @@ -19,6 +19,12 @@ /// This is used in digitigrade legs, when this leg is swapped out with the digitigrade version. var/digitigrade_type = /obj/item/bodypart/leg/left/digitigrade +// Just blanket apply the footstep pref on limb addition, it gets far too complicated otherwise as limbs are getting replaced more often than you'd think +/obj/item/bodypart/leg/on_adding(mob/living/carbon/new_owner) + . = ..() + var/mob/living/carbon/human/human_owner = new_owner + if(istype(human_owner) && human_owner.footstep_type) + footstep_type = human_owner.footstep_type /// General mutant bodyparts. Used in most mutant species. /obj/item/bodypart/head/mutant diff --git a/modular_nova/modules/customization/modules/client/augment/limbs.dm b/modular_nova/modules/customization/modules/client/augment/limbs.dm index 17f099e79a2e..23e5d0fc51f9 100644 --- a/modular_nova/modules/customization/modules/client/augment/limbs.dm +++ b/modular_nova/modules/customization/modules/client/augment/limbs.dm @@ -47,6 +47,7 @@ new_limb.limb_id = BODYPART_ID_DIGITIGRADE new_limb.base_limb_id = BODYPART_ID_DIGITIGRADE new_limb.bodyshape = old_limb.bodyshape + new_limb.replace_limb(augmented, special = TRUE) qdel(old_limb) From 4e51cff645044a7043dbbf9a166422350c3a31d1 Mon Sep 17 00:00:00 2001 From: Bloop <13398309+vinylspiders@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:52:34 -0400 Subject: [PATCH 002/119] Akula have been cured of the purple skin epidemic (#4480) --- .../mob/living/carbon/human/species/akula.dm | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/modular_nova/modules/customization/modules/mob/living/carbon/human/species/akula.dm b/modular_nova/modules/customization/modules/mob/living/carbon/human/species/akula.dm index 2f8fd362a362..26eb79fed585 100644 --- a/modular_nova/modules/customization/modules/mob/living/carbon/human/species/akula.dm +++ b/modular_nova/modules/customization/modules/mob/living/carbon/human/species/akula.dm @@ -163,6 +163,12 @@ equipping.equipOutfit(job.akula_outfit, visuals_only) ///Organ overwrites + +// set bonus +/datum/status_effect/organ_set_bonus/carp/akula + id = "organ_set_bonus_carp_akula" + limb_overlay = null // no carpskin + //Eyes /obj/item/organ/internal/eyes/akula // Eyes over hair as bandaid for the low amounts of head matching hair @@ -172,11 +178,21 @@ /obj/item/organ/internal/brain/carp/akula name = "azulean brain" +/obj/item/organ/internal/brain/carp/akula/Initialize(mapload) + . = ..() + RemoveElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp) + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp/akula) + //Heart /obj/item/organ/internal/heart/carp/akula name = "azulean heart" organ_traits = list() +/obj/item/organ/internal/heart/carp/akula/Initialize(mapload) + . = ..() + RemoveElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp) + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp/akula) + //Tongue /obj/item/organ/internal/tongue/carp/akula name = "azulean jaws" @@ -184,6 +200,11 @@ disliked_foodtypes = CLOTH | DAIRY toxic_foodtypes = TOXIC +/obj/item/organ/internal/tongue/carp/akula/Initialize(mapload) + . = ..() + RemoveElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp) + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp/akula) + /obj/item/organ/internal/tongue/carp/akula/on_mob_insert(mob/living/carbon/tongue_owner, special, movement_flags) . = ..() if(!ishuman(tongue_owner)) @@ -203,6 +224,8 @@ /obj/item/organ/internal/lungs/carp/akula/Initialize(mapload) . = ..() REMOVE_TRAIT(src, TRAIT_SPACEBREATHING, REF(src)) + RemoveElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp) + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/carp/akula) // Wet_stacks handling From 787dad9e42ec369d59de9143010cef0edacf187a Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:52:48 +0000 Subject: [PATCH 003/119] Automatic changelog for PR #4475 [ci skip] --- html/changelogs/AutoChangeLog-pr-4475.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4475.yml diff --git a/html/changelogs/AutoChangeLog-pr-4475.yml b/html/changelogs/AutoChangeLog-pr-4475.yml new file mode 100644 index 000000000000..09af3a83cab2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4475.yml @@ -0,0 +1,4 @@ +author: "vinylspiders" +delete-after: True +changes: + - bugfix: "fixes taur legs, digi legs, and augments not getting the correct footstep sounds from prefs applied to them" \ No newline at end of file From b4038d18f5ca0275a46dcc0956c1eec2c3552e9e Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:53:00 +0000 Subject: [PATCH 004/119] Automatic changelog for PR #4480 [ci skip] --- html/changelogs/AutoChangeLog-pr-4480.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4480.yml diff --git a/html/changelogs/AutoChangeLog-pr-4480.yml b/html/changelogs/AutoChangeLog-pr-4480.yml new file mode 100644 index 000000000000..e9b970b75d33 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4480.yml @@ -0,0 +1,4 @@ +author: "vinylspiders" +delete-after: True +changes: + - bugfix: "the purple skin disease plaguing the akula population seems to have subsided for now" \ No newline at end of file From c1aaf0dc50703c17e4cfaa67ada65604df97073e Mon Sep 17 00:00:00 2001 From: SomrNetwork <114457130+SomrNetwork@users.noreply.github.com> Date: Wed, 16 Oct 2024 04:23:01 +0800 Subject: [PATCH 005/119] Adds donator item for BonkaiTheRoris (#4471) * Adds donator item for BonkaiTheRoris * Update modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> --- .../icons/donator/mob/clothing/modsuit.dmi | Bin 2006 -> 3853 bytes .../donator/mob/inhands/donator_left.dmi | Bin 2959 -> 3368 bytes .../donator/mob/inhands/donator_right.dmi | Bin 2886 -> 3294 bytes .../icons/donator/obj/clothing/modsuit.dmi | Bin 1204 -> 2818 bytes .../master_files/icons/donator/obj/custom.dmi | Bin 6137 -> 6482 bytes .../clothing/~donator/donator_items.dm | 52 ++++++++++++++++++ .../donator/personal/donator_personal.dm | 5 ++ 7 files changed, 57 insertions(+) diff --git a/modular_nova/master_files/icons/donator/mob/clothing/modsuit.dmi b/modular_nova/master_files/icons/donator/mob/clothing/modsuit.dmi index 00770e4ed90dad10f4b51a9cc7b4b680128d6c72..edb31eb7bf006ca936d46f5e8b4dabe2800c88ad 100644 GIT binary patch literal 3853 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 diff --git a/modular_nova/master_files/icons/donator/mob/inhands/donator_left.dmi b/modular_nova/master_files/icons/donator/mob/inhands/donator_left.dmi index 9240db2aa19231044426f84b9c5a4c437bb12480..7985ecc9545b324b79ed88b2ab16718556cd0aa2 100644 GIT binary patch delta 3103 zcmZuxc{tSD8%ITC3t2<9Y*R$`Wyna3eczX+n(X_&d?yh_A=kdf#UL5UC}S8(sOVZU zBgtI9r-gKSyRsT~-dHdO=M< zNYV@f4S)xm!|vAHN$`KT0lbV{!mc|0q0g1A;%oph32Fmy^!bO|&XRl3 z_M%->u{$#VKmpv4zc-iuSJ;ojMdUDASbiX?Qf>W!5sf4x=D4Lku*oIV069ZX^XS8$ zQhr%8BW2Qc42#HCdiN$_#E5HFMYN7I%iN))#KaPD=JD^-U4fOE3=C`urVvB>m{Rie zDYvPs{LJ1ORP~E5r2m}EcP9j1naP;hF!SN9Z+zP)*R}XH6@p6Pac4SyjZPOQSqtKU;^GAgu|3xG;OZa+C}fN7%ROB+x=!7J>&gnj*w_K(#(9WJ1P3=LSm z)Lcl-{EF8fQcORex_dgG#3ClYrKX0BQ!6@3Qf* !4NXksnL)`zmDCZ&0}orEW8H z(&qg-<K77*)ldn|YpWCHRqr&VyT@^x9*N_=Iia3e|=`j0+$?v2iuV)6tP zuuXR-*V6#_C6yB+3Edou+^#N}&dWAVwFJM6rM&oz1YE}M8- zg;-d{@5P%fiS*2g^yTfV+@z)RT_+Z&_?z@qFxIdbOL{5!q_*DBOXbUZz=ceh zNr7V(wHy?3_MWG}G2(|xAC7Fj5nA)PM!p$3P@Hr(Y}P77zLu^=W?m}fEj@Oas@IU~ zFZX}ztGr)Cb0n)G=y zt)w!(eYo**G|ebRxrfU7z+4Ad^L%v{Z&Y}T{&e71Il#tso}h1-ypzd&87WWsx&!NDz|${N@r!d8_Iu884G;>S{Hnj^b@+z{Cn@;_S}7Og}fsE2K%J% zT)&XFS&oxJXqW~j>&Uae8UJJ1hA;ryc5e{8m0PuUf@H4%-e*a=N>utE(tm-wQF0<` zn?eLE>H(J@bf9$f*Z-kyTQ|jK{c>(HYr5!BvJI`8^RIJ_@2y#T*rGIU4rD)6dV?%E;})IfG{r{*A6g<2_lpz#3h=>gCB zG;mZ?$y0ZMr2-oxp|*Ro=%qlik8kAIWm2))lFZpU*T!db&;3N~I>vYl*5C(!=;Q2( z%g=GeiOf2n=S~%h+d1fjXWo0}TReMBo_Hm1@@XK@0T@53Zz$8_m_Y|(a~$`E+J@Q+ zKGoE;6_n&0)yTTJ))7>*Bi3(AaCU3xa{o-o6gn*9pLrg`(Z1meu4P3AzVvH3qGpZ+ zwC~s-I~Z?KbfyqQ<7fAC;E_~y4NBs_q(zX1&}t28R)bs;SNuLY1FjZI$$f!Cm-qMr zEKG4X$S$g%$>VudIqwIyLd{*c10^lq%Oi;cKVM2?z<2c-GaPH*fj`E4|c-W^9qm!MyMYX+%`_Wns zdQHB&ZyPS9A@X)!)J}^u-n%*Z(DA*-xSv{pjA$K%oDr(_H$|c9G-KmWDx#6BVvgwx zDz#X1gREm){0bfG7DQGfKpx5+Sj5-0yv^;@r`ImYOYvCf&cfqg;5RJRqabmxT#EbKvX1*m^u!LU6V) z8L?nxj~Tq>Co&ZEfp9rx9fjb~;SPC^=7?nMj=L$i;eUNVkYkVq6jJ4UQd1-nsWTE;=y3 zXs;aZ;8FDlLTuBiD8V6cH8Z8S>kPpR1l z{_c%u`xN>j6Z=wg$I8oFXmoeOwK_tcDVfQN7ZHfe#YiYU&0 zzMPXeQ5%qRg#QWNV$l^;vgz8!8{mBytv=62CE$@`ls)y;9np@zhEosn!C#sVmL8-0 z!T6|Y1YHBY(?QxW2T`k(a4dx(A&-ny^zT!MUb>0hU|q}0?_-fXzlwOfvx*h33pSs(@76&${@PARVaJ)(8IrB cYwahv^3IJ_(9_`uM~~6e*b?&Wig)sV03=iFo&W#< delta 2691 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 NQ$q`bLVdSK{{f29Mq2;? diff --git a/modular_nova/master_files/icons/donator/mob/inhands/donator_right.dmi b/modular_nova/master_files/icons/donator/mob/inhands/donator_right.dmi index 1a9631ba6dcb966cfbe75a233090701d3e44af9a..6345224e4a8bb2524299abdfe38e7969ccaf9493 100644 GIT binary patch delta 3029 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 delta 2618 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 diff --git a/modular_nova/master_files/icons/donator/obj/clothing/modsuit.dmi b/modular_nova/master_files/icons/donator/obj/clothing/modsuit.dmi index 9b69c330c54b503352dee09dd1957ebb64627bb3..a15673753d6ae1a49a314dbe8b95427fda721535 100644 GIT binary patch delta 2817 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 Ef+89_1ONa4 diff --git a/modular_nova/master_files/icons/donator/obj/custom.dmi b/modular_nova/master_files/icons/donator/obj/custom.dmi index 0d4642a41968e8079de00e7ff160434c54282b7b..65fc369a8a89d0e2551a250d0a84d06bf4dc4284 100644 GIT binary patch delta 5838 zcmai2XIK+$v)+U%ND-t7NKvGSz-vJS3B5>{BE1O+q8Jd6B4I-lL@6Roq)L4$h9)3F z0!XvalqLwFM`=MyNJv6X^sDFmIrC$$*|}!!`<{88eRi)UDSkPhD!{49$^ZbsftgJ< z06<&nq%xpaJ32a~W#liMyCfhasiS9n*Bfr6Yi#227^ddH%FHb*1xtv367G6TW^rn6NbeZ0M# zko=R)8B_JvO;Ssrx=Dw>bCH5ByiQQ9^) z?vdR^Rd!b%2Pd2`uXib$Jb1iQ-RxNra0jpCm6_JaoGf{%Q;zipAM_olu6!tb7HP{P zcp`OPX`*&7(m4Z}f6s(lJwC!qCvw3j6^0)Y^fj+P5}rvP|C64y~#YQ?Rf7l}S6QV;wa+9&o?e1dpWL=r- zQ?6(cPKC>h-qmX_M({@;(3Cw?CRg{LuoF_^u;KGDOC0>8=%!;?yT*f^}=}+9F1ch7slSw>+mhVSA@3E zK3e+V6Tdc;%}_?6?#;~6O#a#$2_Fl`5N#c(5qpz;>AiP~ej!0?!YzMo?qAQ_c^Zj)>HS`_ge04vCZv=lfUxG2;QCGa-j4oog)v;sAoV*Koz60cVzgZW*tpRI?68E;=$P1PHJUUn0#mDHc3uH*FW+K|J-Md zGraP70Ta&YVgdUzA&M=y{D=G5Kw&WRQ=1bE!!Nagn$g> zn=<-n4VM`X*a|=sXdlimFymJRU=VGAP%L6O5SIoCKf`(oxp!HEc;@u9#gm^>-r`JE2SlL>~nhn zTk0%}4$uOWo*`-t>kd2#dtDzu{r;+(bj(DYpp2Cq6a;ZZvE}E29ZN5V#DkUlR zOKDZWr~^HnFXU3qBiXcsDc^aj2QRsc$qo0M36f*|PeU zhGg7~^jctnRTGFj4YGbA484PQ;>}^GO}8U1Xh`F%1|F7F(0H+FmtCcECs|WHVRu*u z)EoLrPc&aFUkBb}Wjk2J^r5jT$QyL5@?Sb?cJ+;R#<`FP;xRpBZK}8*t&My!a#U2l z>a~mhjeN1uf@pg54iE)g+$!F1`zBy)gf`67SL#D$)1z9z#qDCKlZ#bD#9M;)?VPO|ZuTVRQ%H=ZlzMGf%sF=Cv@hT>u<;%=bOtyTVDlxt=-JH za*ot9&kc!NI@%h{dB2UZsVeb0D<21`;HK2i(2Ld>#cIgAxI3ayr@hHan@s>l>Cf`p zEO_WTVY_-`JPqIhUAP?gCJSIqzTa%CsxU_UoP~^(?V9X*a1)V-T}4$h&O;WMD72$Z z@jNA%Trd8GtW$>58u-ZM0>-`gc^0(<$kt?9scV1xIjtdpMj>!A5z(0}KJDNvRYXJ3 z(4R?0%fsOOm?CAGT>~J#i4Q_HQg=3Sq|S(NFF)sFppFw);_3v0##g7*CU6#U&EZrr zp~@*`^tC**jC;6+`NqW0!?69*OLsi2BaO&Cgy@#%F3Z9iwq)EV*9PW{0@I)=&P>LS zDXrjUgg5c`v00XEhg*v#i2BxeMCRh~(Vy_{lQkKu^B$rR51`zat(>|{4;5-DF3(n@ zzB_=+42Y(hQhHw7K~w2Oo=dzLa5ED8zC^!&U<3DU=47o$mvaxQvpX^--M5Z%Vqj&T zYlYr=1bIn4mIgWp=@g6-kcSg?+8MgzI$Lw{$ zFK|1-CHoH;-!l-G%1qN5Z-0HRf@GSwN91pV{9=d}Hu1~eJF*R_t%U|K3Xj9TwF$MG zW7)nFRd!=kkb7%vC>x5IO^}G{$=8C#+Qv@g?|I*xRCLbJX>rmH<2&U{@uN4D-hlOO_zK6QEAzk z7M|PZcN$ayh3ya*#04!8%t3vtpE;b?+XRPsgl2Aq->{NE|G@3|z-;cU6@>dvf5rML zGX(AW9(Bq6JzHe}wzbQ^br*ymHs!H(LzmP*oN?sPi8;c?H0I5WQ`FuU*U6>6tF8k2 zktxtxl5p_AKpBi%<54QGuvU;o$=j!#G<8M6X9*iCE8g3Ix3fnlSNdSC0*&yPxy#R< zeip$xD;{?xsnMuV^%zfL2%_CK`uj3If^d7=DN37e^099>vTZ?+7{bbZ^52T0ru|+0eR)H_^rrUN*crc}D49GJzvDgFhFa8_4czlS!Bv^T z8|h}bu*92qdzDmhkFZ-XWH)M-tDI;w`H(-^^KE-lf%!&E+d<~EK8CkBKjDjXPUA)m zAJt5x0K7n~h`W>~oin=eGY07;J=nfQx*U_DDoYeU7@ua*U{&Impk?j{=3VV9zbn=& z-eDa}ahx?+JayC1=Y8Wwd7Dp`_NvS`O%bVf7b88FSjtPV6MkKl#QzH3P8}71(Qa)y zrn5Dkh&$I@u>H!}_)D3P3req8aq41Ml?I3IOa0KjxZjW1e~gmR&k~-t=Vz-%(o}5r zDpqtrr{r*zEU}ljwylucR@hG|qDHt~?b5U4wCm~6V^V}XnPnV{C`Zu@__Zi` zp<3eVt!oXo#3K7YJK3TWl_T2_g}z2>$$$1$G&w)?MI8W-(D z!6(&X$!G>iyMWuckdTOw^3xx}^geJIU`ez4hMCnOCnBcaJj|+`dFN?+n2)pGI5Ng% z(9QO=4?{x`6Z#h4J)mhi79OxLYjaZ6H6mQbxb|al@luvdy^fCin{g@Q<0@OX?@Twt zT^)tF)AGpvk&0~zyU<*BJG55k3d8g-kWUak(@rbRBH+OzoVAyl@Lo3Ln>F=;G`Nj6h6xYbiM%wBVrVJOfp=qQ~tg(@>v049Vrn0FRvi zzQUW75g<4uL zm+JGReRUF?8U8?%7r`11gI2IDA99^XU-C&mxHOcJX7QIs5c0=9`S}DJWPsi%T(#4J zq8&?zTN}BY+{8P5{%ZTd@JMl-`B0jaJ(UAP@P&wbmEngk=g$SY6Va>O2|heIMBgCf z<;O3i`@vl!qs1d!I1{(Ca@zd*od!c)w%(D{rFQu`oxvUBIj!9qox-n)b<}9 zHKn^)+Zx#Dz3WlLGYUG=y!h4CMC0wjJT)&4i;&Asw|$Tzq^Tn(uRv|t=$zE9cD1In(pqh1+MJN2#|eV5u%yJ-LSUy`*chgJEz4IdBtTn zw6Ed*LXDlUb|dN>fnTK21Jk#4-^yGNje4~g)pCZDMaH-fBq@it1sYt1#9Fs!3`4GL zKfJFPN{C$`%lR_h%puBOysmOc2-tH4`U_ixL5zW|3L16)E6ZzrmI_*;lvP~M4Dk_L zCkdohxjG&sH}Bh2VO3UIxJEg*HWuN?9!Cm3-#Na2BDNJ_$CXIc7t(viFSyk#VpXuT_mKnexiu8cZS1>Slc(%UD}%^?XX3#?rFh(6F@P{p<8x>eyeOpxw#=VQ^`5HSLc!_1KN#_m*i%D(W~*{D$Cbs@l*8iqt+5Hp2;ccWx&SJ$9eAy>z?xQ`R$A~h z;a?LQe9MK2%mH&&rJuw6{uTVE0BXfDgFPNY1o15T@?!nrv>s3+^?gL4@<9F8h*}tJ zRd-;4m^O~SIjs)+&j|j^%J|PT{4lO`>ezoUfJ)FkJ^DF+-=vmrmgJ1y$CAEm3zMh{*LlD_dJ9?RXCnQf@UA3ot)&J8o7Qo}?3?b;$8?vH!#KYd2vE7BnSjXdQW>C*&Ut z^SQGa6Uj*~zHBqs)^t(9RI+8e7pPP$bRLlZj47JVzd>pN5RCrwU7V#{K@ER8H=|JJZu~6Ne-^A*x}SDSNFqnFGgK>rI+YkWUxixyqF4K?!`G*YuuIT*oVyX ziFBhc=)8abv#xHW%41?!?`Z(5>_^P9{x$92!fM@*KcExr?8So|%ORx1T^Q8-22wJUb1%eEq}^Ru2l@a<>T+KnF*PD zb4MtwyH-k>_Q2ta)_s_Q3TRth_Uh)m_8&>2D2=;59oc17vTAG>a9Y{gRM9=Tw0W_GH<9L{QUhx8G(;4V4`jT zho<;qLsE-4HMWS$WDWsNhz$x9PVG6rb^6ZaA~=wItFL!h?|X;RF0vM5Ql?nU@O!ci zYKVj5e~AfHpdd~ywO#ZDOs3amV3*IT_Ja#XZ9%f6I z8!aD@fhneMe2{$bz9~5PB6~yjca0r@^btEUER{p6fa9 zO_8FtN6;-=B4bSdQa8uAfdC}Q+|0~G=4{(2pP{4sAT__9dFUd;LQ#pDxfr!8KNmcVkk19cKiC6Jfj zoQYV=9FK*wA)Dd=UxAM1*RC|fhcduaCL1?LPxD3Ok2=7|aZwDchA_q&LF539Lp!=& zC#F|0Zc`6kCe^Q}bJWcF4a1W6p6Tf(WX*Wfztda3&={_3Jq?afd{IRI`3zjsGt+&o H?H2t%=y18w delta 5507 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 LH@Q}#hYbH8qh$H* diff --git a/modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm b/modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm index be53c3fa3476..3e55e39cd144 100644 --- a/modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm +++ b/modular_nova/modules/customization/modules/clothing/~donator/donator_items.dm @@ -392,3 +392,55 @@ )) return ..() +// donation reward for Bonkai, the funny jumper +/obj/item/mod/skin_applier/jumper + name = "\improper PA-4 MK-7 J.S supply crate" + desc = "A crate made mostly of titanium with handles on the side to carry. It seems to be pressure sealed and the lid seems to be hydraulically assisted. The inside of the crate opens up and folds out to display an entire toolkit with all the essentials to convert most armor into a Mark 7 PA-7 Variant Jump suit. This crate seems to have the emblem relating to a certain Commando... Perhaps you should return it to the owner where you found it, if you can even lift it." + icon = 'modular_nova/master_files/icons/donator/obj/custom.dmi' + lefthand_file = 'modular_nova/master_files/icons/donator/mob/inhands/donator_left.dmi' + righthand_file = 'modular_nova/master_files/icons/donator/mob/inhands/donator_right.dmi' + icon_state = "jumper-box" + skin = "jumper" + +/obj/item/mod/skin_applier/jumper/pre_attack(atom/attacked_atom, mob/living/user, params) + if(!istype(attacked_atom, /obj/item/mod/control/pre_equipped/security)) + return ..() + var/obj/item/mod/control/mod = attacked_atom + mod.theme.variants += list("jumper" = list( + MOD_ICON_OVERRIDE = 'modular_nova/master_files/icons/donator/obj/clothing/modsuit.dmi', + MOD_WORN_ICON_OVERRIDE = 'modular_nova/master_files/icons/donator/mob/clothing/modsuit.dmi', + /obj/item/clothing/head/mod = list( + UNSEALED_LAYER = HEAD_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + UNSEALED_COVER = HEADCOVERSEYES|PEPPERPROOF, + UNSEALED_INVISIBILITY = HIDEHAIR|HIDEEYES|HIDESNOUT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + UNSEALED_MESSAGE = HELMET_UNSEAL_MESSAGE, + SEALED_MESSAGE = HELMET_SEAL_MESSAGE, + ), + /obj/item/clothing/suit/mod = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT|HIDETAIL, + UNSEALED_MESSAGE = CHESTPLATE_UNSEAL_MESSAGE, + SEALED_MESSAGE = CHESTPLATE_SEAL_MESSAGE, + ), + /obj/item/clothing/gloves/mod = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + UNSEALED_MESSAGE = GAUNTLET_UNSEAL_MESSAGE, + SEALED_MESSAGE = GAUNTLET_SEAL_MESSAGE, + ), + /obj/item/clothing/shoes/mod = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + UNSEALED_MESSAGE = BOOT_UNSEAL_MESSAGE, + SEALED_MESSAGE = BOOT_SEAL_MESSAGE, + ), + )) + return ..() + diff --git a/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm b/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm index 8bd81d8dbe0a..775dca7a673e 100644 --- a/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm +++ b/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm @@ -870,3 +870,8 @@ name = "Shendyt" item_path = /obj/item/clothing/under/costume/shendyt ckeywhitelist = list("hyperhazel") + +/datum/loadout_item/pocket_items/jumperbox + name = "Jumper Conversation Kit Box" + item_path = /obj/item/mod/skin_applier/jumper + ckeywhitelist = list("bonkaitheroris") From b7dc1b0452f99981e24b3c3da5c5b81ce6c08f42 Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:23:30 +0000 Subject: [PATCH 006/119] Automatic changelog for PR #4471 [ci skip] --- html/changelogs/AutoChangeLog-pr-4471.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4471.yml diff --git a/html/changelogs/AutoChangeLog-pr-4471.yml b/html/changelogs/AutoChangeLog-pr-4471.yml new file mode 100644 index 000000000000..53473de74e8c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4471.yml @@ -0,0 +1,4 @@ +author: "somenetwork" +delete-after: True +changes: + - rscadd: "Adds Donator item to BonkaiTheRoris" \ No newline at end of file From 5e9ed1ce949f9bda1ba8f3172479129498d67b35 Mon Sep 17 00:00:00 2001 From: Thedragmeme <81540056+Draggeru@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:39:57 -0500 Subject: [PATCH 007/119] Adds a donor item for ActualVanguard (#4468) * Waow! * CODE * Update modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Hood_type * Update modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm * Update modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> --- .../icons/donator/mob/clothing/neck.dmi | Bin 16986 -> 19162 bytes .../donator/mob/inhands/donator_left.dmi | Bin 3368 -> 8478 bytes .../donator/mob/inhands/donator_right.dmi | Bin 3294 -> 8263 bytes .../icons/donator/obj/clothing/cloaks.dmi | Bin 6227 -> 6822 bytes .../clothing/~donator/donator_clothing.dm | 17 ++++++++++++++++- .../donator/personal/donator_personal.dm | 5 +++++ 6 files changed, 21 insertions(+), 1 deletion(-) diff --git a/modular_nova/master_files/icons/donator/mob/clothing/neck.dmi b/modular_nova/master_files/icons/donator/mob/clothing/neck.dmi index f1ad4fe974242debdeda0b6b3acafbd3ca8e5feb..6481ce9ca536275a3778f3b5afbf664f9d96ab0e 100644 GIT binary patch literal 19162 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

h2e6o) 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 v-iK{iw&r>3?R=VahH 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 literal 16986 zcmb8X1yEc;w=TM8a0os?g1b8bVz?9BgG+FNy9akokU;R@?(P;O1b26LXP7tnZ`FNu zs@^&8-l~~lchfz4^|JoHwHv~f6r?cGiO~T7z?6{|R{;Q!A^a_jiVW`w7|r*D|9J3J z({dI!buw|Zw0E|&vjqV6^zVsXwqPopkg+p}c*UZm&ZG`UbpCl(g`wojp*&QQlZZZZL$1`{-fgS^_=vYWq&(GjhNF zAK!P1g+4*2sgMvAb_FJz0DQu>r%2KFc&w=?<=t3aCd9K}6}WbpO?}LduZ?o-%t^!cZ>|6K)a~u8dbp#R&Kh AIn&iM%H>LiaR8S3QfQAt$~p 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 E177QS@c;k- diff --git a/modular_nova/master_files/icons/donator/mob/inhands/donator_left.dmi b/modular_nova/master_files/icons/donator/mob/inhands/donator_left.dmi index 7985ecc9545b324b79ed88b2ab16718556cd0aa2..f0ef0a9def78d668d0a6dd34c56fa2ad4dfaf265 100644 GIT binary patch literal 8478 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 diff --git a/modular_nova/master_files/icons/donator/mob/inhands/donator_right.dmi b/modular_nova/master_files/icons/donator/mob/inhands/donator_right.dmi index 6345224e4a8bb2524299abdfe38e7969ccaf9493..7e9be5bf33d43ab61d68d85a1f5b04798bacd27f 100644 GIT binary patch literal 8263 zcma)B2UJr{n@(t=h^UB47XeX_qBI357KBKX-UUQJfe;V@DFIZ9bfrsGLFr9MLJf#$ z1f+K&2}lpb01^U(Bztkcf4}|yb@yz}nS1Wc+?jc2-sgGV_ufR`Hqhogz;^%y0&zlg zZWx0=V28cJ&IYtZIOgjCm6L&{mXB^Y`#3#(;PvPM%o7B9oSmB7Yw$_#;Fn&ai76Iw z>PzI82#$$xKZi=W`e>{RE%|PvV3XRp>jz$&Ij+yuY*1GW%`Y0}qGTK49|9&nGau#0 zo-ynoY|11U+|*sloP!Ib-j6Zv;pAXfxjd-JbN%L}SW)P6Z6|>_7S4pgX$V;S=G7dd zUgsAT=Y4G*Vtage{h}2{R;OoG?1Eff%_1H$8FAZ~3VBu9muYDkp z5CL-Is_Eki;$%>;>2Nb;jU>Zv*lw$H`bh={3v257MfmF&cD7?L@_C%Z_lXlYM9iMV zNR%G~+q}_Udz!9YU%c;Sewgv?w^vrfj0IV$ZGTK3yR2aQ^ohcYjQ#t=jWun1g}uM9 zFooZ9>BYV3rILSWC3UPIHesag3dE?M%lSl%C@72;a&12-48#UvItgNO?8zeWLjry2 zcLz%iBbSCHK3!3A&Mb!8)FEXd$K6{&PnW9C4Sw5EEJeTxp3sR}Bd)Tq=6PV$V#K-R z^Qseh7ollZh;_rAhwe|rmUcEO_=1;P+&T-YMcnZyhV*4M(3s=k`*=y!+bdkB8^y$G zDJUz`T0<=@YRZc~+{h-Ly2=ePc5}OxLv!8Fq)k`{G2Hv?4 z``#Q+1+_)xySDP`rt_gr)V-mu&VGByOW0 zI|;P&DV%8QeluIzp)ZukbBM}uiUs^VJS*%Xp`S$x=RgWk_Yt|HuB z7RiC-GnmAzy^;uPnM})^U086Zy|xiJg07;(gq0@9aZcT4(Kp$x4f4lMxJ@=75Fvfi zoxQ!N^6sqBNF<%)OO%9s3vp+i8Df4{B6Q)*eXy0<-MIS3*P7SmNe3RVYh02Uy>dw= z{mJXx1{UeC>pTkah>@ARkw+`h#VG#4Eex;XM=sr)xp}ZAav|~ z2kKcT?0$CX|31DqGO$2pbR_XuL!VW#;IvJnOfOvVPKUj(o2mZe>wX~4Ls@YA%1bfr z$jZt@zX;Nj?*l!3b_Wpq5q0iEAmHXy7#PGN2Rhse+T%CS00JM}YiNA{-UU{95A1P| z>1)mIec8(R1`n&aOvb(u^XRVbBK(?oJWi0vy*Dz>mc9Yl+ zI+$Jj&W;makI+mq{hP;We%gr*U4b5*3N<0!ZqU32n=B>h5Fi@EuC3Bv5|oeesu5&< z&p6zvvF%<3Jj976+jplxoUV_c?WiRFu+d5@!6e$gwh*@6wiL+77UoNF(fvHJ2NOg4 z=?+ysuFBAfq7TfU>8Gl6uU(_6F!u!shup=2X5AUhTpDYm_@6WlI0zZUcv5x9!Jgee z&fVD;D9vkxt~9an3(T2-P6ar2ik0?;**uyXRP&u_(o<7d7iyMsPLgI0gB6RLGQX&# zy^_DPy6-iNLAU07*fYc!AwelE?u@aY6q8>Jo>Qds}FJ)Vk2we57t&k54e5>8_+K5|?ciDEQ>TKm* ze2{2<+aEE9Wtz&rBF6)}%%Z#1!#S|hwJ{txfBn!{4xEK!V}!X+Nvs|9m?s9m2F@O+ zuA%P?Tii;}F~_tg&<`K_oE4+o?mT0x_wdGt-#trXmy4ieLb7A9$nI8dsE>y})5GH9 zK^$;SN1Hblp+0K#1g(c#j}DeTV}j1 zAXq$`Fu&P$z$Cci(kt1Zh%&n8<$b}1$CWl7uSTwT)z*ISNX|AZ>+HN`W?>Pfz#=mX zt_#JUh8%FSCmy)j_!NCPn;G!Uw+MkC`eEh-^D)mizU5DDhx8 zbi5gs&Aj0E29wJxXDiR`7q}Jqw$cyrUpqP43OaoH{MCOk@UM`&2O)rx08jTC0G|Gh zsW8xcmfzL?r5~ik;sqe4L&wr_W$`|+#bom|=rtoTRmz|~;>VWH?x*Q3Ri&`Mpn`gr z|CyCkS~Yo1>X_CCAB{;KrqPGo2dYJxS+zn zBSAvD%@O1`SdF3zu%}~MoR}Z?WG^B8Mt*MYiula^Dk&>V@uk@dFf_|(ui5?Vv#88{ zPz+8(3b7=>9)$_5vJy%x?AZ4`!Bv9jw%`G^8D(g76-q1<>;nawk8f!RZ^*YS`n(cj zrCH4|wqNJf!*@dfK(QkJ(`@x)3!0a%&;EJOa7k!@3642XIr?yP) z{n5*Rl;^{(DWE?o%fErg>wVhCiB%uUrhJmZ)F&r`_r3f%Br$5DiID+A+o{^`xeen> zT~Jj|cZuu!Y9C+q9Z9?0^`A~{BV#ni5<^kKp)5irmd4Tv9u0hPB;tL<9deH&6|>vlDE*U9o^lEMn*<4ad9bw zOoeFr4ogXkXDLKZpzO;0miis_Rj#xg;vBl6$x4V~lqjp})PfAz$Sfu;uz0;_E7OWS z?&~QfE6a7ih_$iB36r4sWU&(KcJw?+c##+rg3F;c1vvcRpMMe!%aG=lU?XST6CUeZ zN$@c@M?#hcYH(QNh7D75bH7%%iA7KdaD?;qLDW|Pj0-K}YKw0B^i54u7>w|676cSK z!jPAsSQu+kmyww)GXv^DnAil;LRvrVn+b|;f}vX#J2A>kdtGz)6XLeIpOW(21>3Ay1mG zjXu-Tp2ap?A(9Zn(kl8Vt*}5VPx39ztC{@m*;RPl-o~Q0>@ReCZf3p0L8yM7Mv1DG zeZuoZW%MgpB3e~(re3_i95|_Sr%zuqGc)t` z4g^x`L2$vd@owYVcdG8n$6NlHb(MP8vcOt;`eam|4?F zs;Hmm>wYD#UE|t|Y>-T-^%$QB+G{L{WQ|m z@P>yzKJlZ=YBLMo-rj-RbLr(?D|?5apcEFmBil=G@AY_Ki9C~MT{&t&dMQT4)$3ol z;0?BkoPyNVc-g!j>$ksl+)?DT7ETqbD^z@)R58#%mXwuR!wY;>bZ}_}dF`Cvq6;&g zu0FG1TQtRHJ-fIK=*OuWkB|PJDfU0v$|5KJuM}K!b?xPiuxIgs!LMGX5p#rK(V%${r?K77zWr4gMPSSJx|0#M{udTz|ErV$=^!mTD`4`%x|H`Cbg z%|t=i53IQH^TBqM?$BcOOqMTu;iDz11?sm7X@N;RaNVsjcDw5XN(9y#-|2Us_eke> z(zHvZ5F&d<@)eEIxCU zYpSfw!)NEKX;Axt_PMu$&`bTLq6V<7=c{<^FjM1T3# z`CGU>6av$9>$d!&V_@k;o|DN>acjVJmk8DzW2=JATir4L5z1Kvt6j&9--*$A5GZ=& zoFcXaL7X67plbPC)Xj5GQ%^VjWnu66V;M$-vr{s&7N z=B89csBqIo&B6(s-XhapBo?uJ3i@a2`&T^tI~V?AfSk&qv5=AVZYeoDLtER^3x~iFMKk~s1hSfm9o#7 z$MFtBd)@K{z-egU>P?bTT0GNh4R)$_l?30N0hjNWcTgB>ee#Tx=3}9s`2&!EauX;F zIS_Tl;~iJPSi^4XvWo48j%r%7Xoyx{x(<_Fa@vAQwG3&%E~z$XL1`N;BP-=StKI7A z?3@K0u}#k3y!lQxR)sp}ydV{0yZWvca~FWS>ULW}VP zRr+C|v|PA(9$&fVgvdkn=D=vO@Z&~Ns_LV!2siJ=Ub;Grwy4Nmv=@cIm+_>$MZ85} z1ueJ2Ps5#pFIK#~eDKnlGX|BFI8l7r00m*fY?%b84uL!zbc~zZVqsY`vPn!IU0L~s z^!+_RV#a892mLKf3}V<)W3X0A*)qI{cUWnhd_zmE?PO`#%PusT7sk}Je1!

aNcG zS_L{uhbYZ${fgTi<9<`F8l>{sp#(bj`OAp>BokGYhE)XB@{ajipmArsH)vGgaC&%? z3G0sA+shk+(uxn_;Hs!9b%*QvJu1xf%5MIiE%b+h<*};h=;%S$yz`ZVErS%1+ae^6 zEx@{MHsC$LW2POk_GOi`0XPiC1z`;*EH6s6x@E?7_S~5>6+Nler*`&|jBBPp5Q;Tl z)u^`pcp&zOiw_YSKe-#jK#do4Ru*gQL`W%M>5^Z!5wBJ`a)R#~cN=$cP0tU}&CLT9 zX)pDf(SeC7O&9F7^QbK&S@P-I) zBqRlL^%cvNLQb_yt6IuW>D&@tubQc(2Vc#wScXtEd*hhxxS3A6DgtH%Zp05@Yi!Pv zq7XkT`pX5!M}aGCc@0?O5hLU5T%|7Oa;Czt;F^>eB)!qYt3!`e;Hj}ed(eB%S+(vA z3t;NzO7Bp4kn!YHePyNCgC*^(TBpjI+%*arGm6P{{p3CiBsPFsQq{KSt4bgy(g9Rn z#)=I5dE?HVAc#Z9Vb{_2^~YDl4uQf!hHc=#lInj(<-gw)raYQXuz<7!7pLv1_~DhL z*wcK$Erevuu6+xALa+23(ZZZ|9kQkft7H6#TUwYLfeG`%#ER>_mu4)+_F~mZtl(Df z$VvHu_8a!+A$%F$H3ujw=GF^cy+Imy68x9l+d~Xui`nh16Vf66xx*Qo;>FsiQZYzN z(B0r?sI^^_!FaJb7+wUj;E^ZJ4ob+{HV=>@?3Rg4+fXT+!RTxFG@jB<8za{=rtuc{_T%4to!1C_VqMDf(bQb zfe&QK%rS_%w- zKbwJV9}{jRkNkigFFZrO`dCL_cVN_>bZO?Ix}tP3&PxxdZ$1^)kW<`=dTpSu>$U;v z%RtOb9B)zW<-2lrFxwsEea~z{*@QeiLoZZw%IDaKZ^`{ENw%Emv|+AGrLJ;SgG+c!na z67IA4ErZ;Hu1m#hPImqm5tf%n8DuS489C1~L!uw?sPKuxhm{s{IN{OVV8@x+aarH} z*+$O}Js5i3K;;oUQMy=Xx#vkOy8!*1yc`l*pBKc(_v1vMy|(n#IHLEnO%H0a%UtN2 zNp1I$&;tqNq>vg2+L;Y|6~_== zTVQ&%HI#lM@RcpBUs8buZd;GBFiLwD&$ZZS-U~@`5qkb;4)Q1<>tO0F>)eNhX`xcm z{*LfqBJzF!La4Ud53Oi`>iPMzSr(Hm^mXXnbULxHS70Ak=Z3vwHo8Y@_==T(1@&<2 zLiO(WRr4OGVdinCmKPysXNIHbCb0$$62bDMJjZoh#jEHZfrh>U?MMB@RQp9dMc2nd z5Aoen*uJsF@HpSY&vKqk<26AjjkAuVi<%~+!4#_9qMrao%=TN2ycmShTWgY@Z?SB8 z*J3iz0WA~aA1;+9{G)lUvne#Pp0<`q6D75dw2(>ZHp@U@RCYNI5im-h?|d1$U)gEp zp#D;BemX8w91^pl*rCXp(|EUpha{aYHb-eOs=VVDR8!m=SG^hKJ%k`@((^$Q!$6RC-!kab44Vv+fB%ksA7-y2jU$ zp>MEkAd7vgRY5m10r@tAuV<9R#u8{boh6|~fGnr9z_s%yRwq$Av%r^h1HFyUe15$; z*V&obvp@;aXiG>(@xm_fu;8ub;DCJQF@O9ogeZ@<7&zPzbb{x2X;GDBzjrkmcW18r zg&5Dz@yW#=;94#Ti$GgaKL=pJVO9I5hHAyk%xN=m<6dj@)4<(zU`R|fx~@a8wp0-0 zr4PzeXO@;M+djDo=zv*(RF8_2Z=fp3;l!OtHjpRR-uQR##kX686&GJHmcKMzd$S35 zgDr3Pfm+M?npxI%+~vzZKD!uC3c{Hq)$ literal 3294 zcmZWq2T&7A6HY7?6{S~cAqoNMH7`H_=`BbJQUs(L0g)1f&>||*L?QGh()39Q0)liz zkw{Z&fC!364IwH$K=SAP|C=}e%-fl}*}L7_{dVu0yCfTH6OL2DrvLx|hncCNEdT)Y zU=BUDV`j92SU@#UI7N}He_AS7pp&tZwz_oq0g~2mwu1Iza5}Rx6K5@-Lnu#%xmMxJ1(^C%Cg#T+jp{QMZ5WWj;R;NS8Ii_iaX&*2N^$3wBJCF$k$Q- z$k5~3B^s`>b^y_UVpbgebz`%rTo*c zH>cL<#4V9bJdMYdZ8grSO&|J$z4O@k5&ln2nTI-W9k0)n}h+GXf<#!8Vge4NgH^GyzVZhd+Ht@U}y}gCZ|fUi4*Wj46ja{LG*DIN;W* z^wj9Rthy7rE^cn6m7~g|BMpjJ-6OCIX3zA_niLJFYkT6ntvlmbrHXs-^k3Nx$mF0a ztvvs$@PC+@vqxb)6ZYIDxxY0o9Pe=fz!CATN&=-wXqOsdOdoW+?4&b#Re zAGKBY;oo2dDK)5pH*q=Jd#dM7{{!G}MIxi`ah&I@_>$ideY#=uaIh7ArYvrEU3+}t zaX9mZ{ZV*}uK|CMoXJ1ZX{ZWBj-|-ye&WVUnsL{m~@j55`bHSgfp(3~5 z@ycnD$!}WUySPHh{{Por?5dw&Z51@Dm>{DPYZlgFh`&D7^h{Jq9cSmgzP1fMR!fu; zL!|_Sk@(Nw%nM1D5%j$+C-gI@RO4-ZspPUT$JJ_`vGKE7%lPlPMmMrWPiW7OUw%Cy za==|$YnL&P7pBOAOim0!3_=6q(#PE~g@EEhN zLAp{lZ2N-cCT>y;jr0kOG2Y&hNJg~y%9BG%={bu#NQhh6i~wlg&Zrp(Cu_!XtKA#?&i(K_8a0D zR`EUV=zhwc`Fyq1vDKu41T9wDQI?S>KmnDB8R!kf`ZsFa-(LpQUH zz3e|esh|=PP z!?xK~S6b5;YTzC>nl@AP77G)QN^(Esy@3IJ8)#~3zpK9X+T}QF<4ke;=bgNrC6Dd` z$|l!MiaUxF+s){x+pk;=bQcc7yd&3A%J2$F;rq4;9l>9 z@6IWc*C`_thgcW+Pb5s+;yy!l%X|k6wAi(U8~+OVxl>T|_O5kk7d*qLJBm7oW~@=x z>n7dqP-ml%qRQru{u|UNy4c~;P<9t<)WN|$sA&^h+#2C^`z99+WV=Z} zntSX1@L@Y~M?Z+FQoA3Ryh5{Opk?`klnmT2V=x^>=fuyR zgV+rj7{i`=M*wfx$*s9%<&So$t+h zT@zjTL>1e%wmyrIcy8-6x`Srr9z8$TuqiTZnlpt zataO$>6wzee>~Wb8|~Zsyi7s$+s4Rq@Y-N9LYxn7U?v)!$ud~0Di;AiK4$Wh3;?)Z aXRxwg@%f=-$D#HYnaqr=4QmZN;{OBX<{=sY diff --git a/modular_nova/master_files/icons/donator/obj/clothing/cloaks.dmi b/modular_nova/master_files/icons/donator/obj/clothing/cloaks.dmi index edfe756a66d7e28fbcd55f00c3afe23aa21cdea8..d735e7ebc97c0de021f05b6800caeba75ec40b10 100644 GIT binary patch delta 6736 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 z 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 PVN6v?>uHsOW!QfKFk$ha diff --git a/modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm b/modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm index 3a52ea585e85..a374d3b5f46e 100644 --- a/modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm +++ b/modular_nova/modules/customization/modules/clothing/~donator/donator_clothing.dm @@ -213,12 +213,14 @@ righthand_file = 'modular_nova/master_files/icons/donator/mob/inhands/donator_right.dmi' icon_state = "paddedscarf" inhand_icon_state = "paddedscarf" + /// The typepath of the hood that gets created + var/hood_type = /obj/item/clothing/head/hooded/padded /obj/item/clothing/neck/padded/Initialize(mapload) . = ..() AddComponent(\ /datum/component/toggle_attached_clothing,\ - deployable_type = /obj/item/clothing/head/hooded/padded,\ + deployable_type = hood_type,\ equipped_slot = ITEM_SLOT_HEAD,\ action_name = "Toggle Hood",\ on_deployed = CALLBACK(src, PROC_REF(on_deployed)),\ @@ -237,6 +239,18 @@ clothing_flags = SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT +//Donation reward for Thedragmeme, gift for ActualVanguard +/obj/item/clothing/neck/padded/security + name = "vanguard cloak" + desc = "A meticulously handcrafted cloak that is lined with subtle pockets filled with feathers and down. Oddly enough, you always feel comfortable regardless of the weather. Even odder, there is an ever so faint scent of wet rock on the interior of the cloak." + icon_state = "paddedsec" + inhand_icon_state = "paddedsec" + hood_type = /obj/item/clothing/head/hooded/padded/security + +/obj/item/clothing/head/hooded/padded/security + name = "vanguard cloak hood" + icon_state = "paddedsechood" + // Donation reward for Thedragmeme /obj/item/clothing/under/padded name = "feathered serenity suit" @@ -283,6 +297,7 @@ desc = "A meticulously handcrafted cloak that is lined with subtle pockets filled with feathers and down. Its design matches common styles from the followers of Univitarium." icon_state = "paddedscarfalt" inhand_icon_state = "paddedscarfalt" + hood_type = /obj/item/clothing/head/hooded/padded/alt /obj/item/clothing/head/hooded/padded/alt name = "feathered serenity hood" diff --git a/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm b/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm index 775dca7a673e..dec9f02bba52 100644 --- a/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm +++ b/modular_nova/modules/loadouts/loadout_items/donator/personal/donator_personal.dm @@ -38,6 +38,11 @@ item_path = /obj/item/clothing/neck/padded/alt ckeywhitelist = list("snailomi") +/datum/loadout_item/neck/padded/security + name = "Vanguard Cloak" + item_path = /obj/item/clothing/neck/padded/security + ckeywhitelist = list("actualvanguard") + /datum/loadout_item/gloves/padded name = "Serenity Gloves" item_path = /obj/item/clothing/gloves/padded From 262ba8be0c4ed7a88eed52d71ce5a690f03befaa Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:40:38 +0000 Subject: [PATCH 008/119] Automatic changelog for PR #4468 [ci skip] --- html/changelogs/AutoChangeLog-pr-4468.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4468.yml diff --git a/html/changelogs/AutoChangeLog-pr-4468.yml b/html/changelogs/AutoChangeLog-pr-4468.yml new file mode 100644 index 000000000000..03de2bac11c8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4468.yml @@ -0,0 +1,4 @@ +author: "Thedragmeme" +delete-after: True +changes: + - rscadd: "Adds a donor item for ActualVanguard" \ No newline at end of file From 7ca08088f51a8369098eeebf5b6c710a8c9ec743 Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 00:46:11 +0000 Subject: [PATCH 009/119] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-4468.yml | 4 ---- html/changelogs/AutoChangeLog-pr-4471.yml | 4 ---- html/changelogs/AutoChangeLog-pr-4475.yml | 4 ---- html/changelogs/AutoChangeLog-pr-4480.yml | 4 ---- html/changelogs/AutoChangeLog-pr-4483.yml | 4 ---- html/changelogs/AutoChangeLog-pr-4484.yml | 4 ---- html/changelogs/AutoChangeLog-pr-4488.yml | 4 ---- html/changelogs/archive/2024-10.yml | 17 +++++++++++++++++ 8 files changed, 17 insertions(+), 28 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-4468.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4471.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4475.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4480.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4483.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4484.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4488.yml diff --git a/html/changelogs/AutoChangeLog-pr-4468.yml b/html/changelogs/AutoChangeLog-pr-4468.yml deleted file mode 100644 index 03de2bac11c8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4468.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Thedragmeme" -delete-after: True -changes: - - rscadd: "Adds a donor item for ActualVanguard" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4471.yml b/html/changelogs/AutoChangeLog-pr-4471.yml deleted file mode 100644 index 53473de74e8c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4471.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "somenetwork" -delete-after: True -changes: - - rscadd: "Adds Donator item to BonkaiTheRoris" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4475.yml b/html/changelogs/AutoChangeLog-pr-4475.yml deleted file mode 100644 index 09af3a83cab2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4475.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "vinylspiders" -delete-after: True -changes: - - bugfix: "fixes taur legs, digi legs, and augments not getting the correct footstep sounds from prefs applied to them" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4480.yml b/html/changelogs/AutoChangeLog-pr-4480.yml deleted file mode 100644 index e9b970b75d33..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4480.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "vinylspiders" -delete-after: True -changes: - - bugfix: "the purple skin disease plaguing the akula population seems to have subsided for now" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4483.yml b/html/changelogs/AutoChangeLog-pr-4483.yml deleted file mode 100644 index d369876f8b06..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4483.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "sqnztb" -delete-after: True -changes: - - rscdel: "hilberts areas no longer play the service bell ambience." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4484.yml b/html/changelogs/AutoChangeLog-pr-4484.yml deleted file mode 100644 index 322b04a504dd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4484.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "OrbisAnima" -delete-after: True -changes: - - balance: "Removed the a375, m223 and 310 ammo phasic variants from the ammo workbench. (Unless the workbench is adminbused)." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4488.yml b/html/changelogs/AutoChangeLog-pr-4488.yml deleted file mode 100644 index ebafc24ab4c0..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4488.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "FlufflesTheDog" -delete-after: True -changes: - - bugfix: "Blueshield and NTC job slots are properly opened when clocking out" \ No newline at end of file diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index e6a7bfdd783c..76591305df82 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -428,3 +428,20 @@ - qol: making detective role more unique, by removing crew pinpointer and detective scanner from their closets, preventing abuse this by officer's. Remove evidence bag from outfit. +2024-10-16: + FlufflesTheDog: + - bugfix: Blueshield and NTC job slots are properly opened when clocking out + OrbisAnima: + - balance: Removed the a375, m223 and 310 ammo phasic variants from the ammo workbench. + (Unless the workbench is adminbused). + Thedragmeme: + - rscadd: Adds a donor item for ActualVanguard + somenetwork: + - rscadd: Adds Donator item to BonkaiTheRoris + sqnztb: + - rscdel: hilberts areas no longer play the service bell ambience. + vinylspiders: + - bugfix: the purple skin disease plaguing the akula population seems to have subsided + for now + - bugfix: fixes taur legs, digi legs, and augments not getting the correct footstep + sounds from prefs applied to them From fc0437a6c2d946e3053316cf3e4af6154e757839 Mon Sep 17 00:00:00 2001 From: OrbisAnima Date: Thu, 17 Oct 2024 13:19:55 -0300 Subject: [PATCH 010/119] allows the pumkin to be equipped onto the neck --- modular_nova/modules/modular_items/code/head.dm | 3 +++ tgstation.dme | 1 + 2 files changed, 4 insertions(+) create mode 100644 modular_nova/modules/modular_items/code/head.dm diff --git a/modular_nova/modules/modular_items/code/head.dm b/modular_nova/modules/modular_items/code/head.dm new file mode 100644 index 000000000000..b1a93f83799c --- /dev/null +++ b/modular_nova/modules/modular_items/code/head.dm @@ -0,0 +1,3 @@ +// Make it so pumpkin heads can be used in the neck, so that synths can cosplay as a dullahan for hallowen +/obj/item/clothing/head/utility/hardhat/pumpkinhead + slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK diff --git a/tgstation.dme b/tgstation.dme index 6e69c1d00be4..04f4ed1c8c47 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8057,6 +8057,7 @@ #include "modular_nova\modules\modular_items\code\ciggies.dm" #include "modular_nova\modules\modular_items\code\cross.dm" #include "modular_nova\modules\modular_items\code\designs.dm" +#include "modular_nova\modules\modular_items\code\head.dm" #include "modular_nova\modules\modular_items\code\makeshift.dm" #include "modular_nova\modules\modular_items\code\modular_glasses.dm" #include "modular_nova\modules\modular_items\code\necklace.dm" From b36b45330708edb7e2dbb67bff8f559c3a9d45ff Mon Sep 17 00:00:00 2001 From: sqn Date: Thu, 17 Oct 2024 14:15:49 -0400 Subject: [PATCH 011/119] Void Raptor - Airless Window Fixes (#4496) we put air in your windows --- _maps/map_files/VoidRaptor/VoidRaptor.dmm | 120 +++++++++------------- 1 file changed, 47 insertions(+), 73 deletions(-) diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm index fdd0d6ba4092..7f63fc05f30b 100644 --- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm +++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm @@ -613,7 +613,7 @@ /area/station/maintenance/department/crew_quarters/bar) "air" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/science/auxlab) "aiw" = ( /obj/structure/chair/office{ @@ -1388,7 +1388,7 @@ /area/station/hallway/primary/central) "atT" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/supermatter) "atW" = ( /obj/machinery/vending/wardrobe/viro_wardrobe, @@ -1905,7 +1905,7 @@ id = "chemistry_shutters"; name = "Pharmacy Shutters" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/medical/pharmacy) "aBb" = ( /obj/structure/cable, @@ -4719,7 +4719,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/supermatter/room) "bsn" = ( /obj/structure/table/wood, @@ -6106,7 +6106,7 @@ /area/station/commons/storage/primary) "bOD" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/main) "bOH" = ( /obj/machinery/door/poddoor/shutters{ @@ -6334,7 +6334,7 @@ /area/station/maintenance/disposal/incinerator) "bSM" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/maintenance/port/aft) "bSQ" = ( /obj/effect/decal/cleanable/dirt, @@ -6513,7 +6513,7 @@ /area/station/commons/fitness/recreation/entertainment) "bVL" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/atmos/hfr_room) "bVR" = ( /obj/machinery/computer/crew{ @@ -13640,7 +13640,7 @@ /area/station/maintenance/port/aft) "dXU" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/maintenance/department/engine) "dXW" = ( /obj/effect/decal/cleanable/dirt, @@ -13900,7 +13900,7 @@ id = "chemistry_shutters"; name = "Pharmacy Shutters" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/medical/pharmacy) "eaR" = ( /obj/item/reagent_containers/cup/glass/drinkingglass{ @@ -13999,7 +13999,7 @@ /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "atmoshfr" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/atmos/hfr_room) "ecx" = ( /obj/machinery/door/poddoor/preopen{ @@ -20691,11 +20691,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) -"gaE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/station/security/brig) "gaJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red/fourcorners, @@ -26851,7 +26846,7 @@ /area/station/security/execution/transfer) "hLh" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/supermatter/room) "hLk" = ( /obj/effect/turf_decal/bot, @@ -27929,7 +27924,7 @@ name = "Research Director's Shutters" }, /obj/structure/cable, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/command/heads_quarters/rd) "ibj" = ( /obj/machinery/computer/cargo{ @@ -29010,7 +29005,7 @@ id = "brigwindows"; name = "Brig Front Blast Door" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/security/brig) "iri" = ( /obj/structure/rack/shelf, @@ -29442,7 +29437,7 @@ "ivR" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/security/checkpoint/medical) "ivS" = ( /obj/effect/spawner/structure/window/reinforced, @@ -29653,7 +29648,7 @@ /area/station/maintenance/starboard/aft) "iyx" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/medical/pharmacy) "iyy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -31894,7 +31889,7 @@ name = "Pharmacy Shutters" }, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/medical/pharmacy) "jfZ" = ( /obj/structure/disposalpipe/segment{ @@ -32122,7 +32117,7 @@ /area/station/engineering/atmos/storage) "jjf" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/medical/chemistry) "jji" = ( /obj/structure/sign/poster/contraband/crocin_pool/directional/south, @@ -38544,7 +38539,7 @@ "kUU" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/supermatter/room) "kUZ" = ( /obj/structure/disposalpipe/segment{ @@ -39081,7 +39076,7 @@ /obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/security/checkpoint/medical) "lbM" = ( /obj/machinery/firealarm/directional/east, @@ -46559,7 +46554,7 @@ /area/station/commons/dorms) "ndF" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/power_room) "ndR" = ( /obj/effect/mapping_helpers/airlock/access/all/security/brig, @@ -48890,7 +48885,7 @@ /area/station/hallway/primary/fore) "nMR" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/command/gateway) "nMS" = ( /obj/effect/turf_decal/bot_white/right, @@ -59766,7 +59761,7 @@ "qHf" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/security/checkpoint/science/research) "qHg" = ( /obj/effect/turf_decal/box, @@ -69134,7 +69129,7 @@ name = "Robotics Shutters"; dir = 8 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/science/robotics/lab) "tjR" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -69728,10 +69723,6 @@ /obj/structure/chair/sofa/bench/right, /turf/open/floor/iron/white/smooth_edge, /area/station/medical/medbay/lobby) -"tsi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/station/science/lab) "tsl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70540,10 +70531,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"tBC" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/station/engineering/atmos) "tBD" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/firealarm/directional/west, @@ -71693,7 +71680,7 @@ "tTU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/atmos) "tTX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, @@ -73091,15 +73078,6 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"uoM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/station/command/heads_quarters/rd) "upn" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/corner{ @@ -73822,7 +73800,7 @@ /area/station/security/office) "uxG" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/storage) "uxH" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ @@ -74690,7 +74668,7 @@ /area/station/medical/virology) "uIw" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/storage_shared) "uIM" = ( /obj/structure/cable, @@ -74727,10 +74705,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/science/xenobiology) -"uJi" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating/airless, -/area/station/maintenance/disposal/incinerator) "uJl" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -77018,7 +76992,7 @@ id = "engielock"; name = "Engineering Lockdown Blast Door" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/main) "vtr" = ( /obj/structure/closet/cabinet, @@ -79256,7 +79230,7 @@ id = "engstorage"; name = "Secure Storage" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/main) "vYa" = ( /obj/effect/turf_decal/stripes/line{ @@ -82565,7 +82539,7 @@ "wQU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/engineering/atmos) "wQX" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -83561,7 +83535,7 @@ /area/station/maintenance/department/medical) "xkq" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/hallway/primary/central/aft) "xkA" = ( /obj/structure/disposalpipe/junction{ @@ -84042,7 +84016,7 @@ /area/station/engineering/gravity_generator) "xqf" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/science/robotics/mechbay) "xqh" = ( /obj/structure/window/reinforced/survival_pod/spawner/directional/north, @@ -85551,7 +85525,7 @@ dir = 4 }, /obj/structure/cable, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/station/command/heads_quarters/rd) "xNl" = ( /obj/machinery/door/firedoor, @@ -112372,7 +112346,7 @@ toq dKF yeO xVm -uJi +qdb bdJ fgP wfU @@ -113134,10 +113108,10 @@ dYh hUp luV luV -tBC +fIQ hKF cNd -tBC +fIQ luV toq jKu @@ -116597,7 +116571,7 @@ lnt cGJ uLU gEY -uoM +vzG dnX gIj cea @@ -117115,15 +117089,15 @@ bFO bFO bFO xNh -uoM +vzG ksL bFO -uoM +vzG bFO gmd -tsi +ycy iqn -tsi +ycy gmd nEm nEm @@ -123044,7 +123018,7 @@ jFN jnL pbH ygT -gaE +vVb uGz gWt irg @@ -123559,8 +123533,8 @@ uFs jsm ygT qLY -gaE -gaE +vVb +vVb wzH hRr fba @@ -123815,7 +123789,7 @@ aDR jfS lTy ygT -gaE +vVb iom vQB irg @@ -124330,8 +124304,8 @@ vuz qPn dlE qLY -gaE -gaE +vVb +vVb wzH enJ hUS @@ -124586,7 +124560,7 @@ bki iek wBT izx -gaE +vVb iom nXu irg From 1a1c4344c29ad2daf110e99d105af3cd6c6ff047 Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:16:22 +0000 Subject: [PATCH 012/119] Automatic changelog for PR #4496 [ci skip] --- html/changelogs/AutoChangeLog-pr-4496.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4496.yml diff --git a/html/changelogs/AutoChangeLog-pr-4496.yml b/html/changelogs/AutoChangeLog-pr-4496.yml new file mode 100644 index 000000000000..676b8e0357a7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4496.yml @@ -0,0 +1,4 @@ +author: "sqnztb" +delete-after: True +changes: + - bugfix: "void raptor's interior windows no longer create vacuums when deconstructed." \ No newline at end of file From 79d04389886819ffb4f68bce6183898570eb7a25 Mon Sep 17 00:00:00 2001 From: OrbisAnima Date: Thu, 17 Oct 2024 15:34:25 -0300 Subject: [PATCH 013/119] Adds Functional/ Non-Functional modes to suits (#4481) * Added functional toggle to suits, with some exceptions * Removes Neck slot from armor sets, equalize frontier gas mask to the captain gas mask armor. * add other reflective armors to the list. * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: FlufflesTheDog * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: FlufflesTheDog * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: FlufflesTheDog * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: FlufflesTheDog * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: FlufflesTheDog * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * made a cute list for armor stats * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm * Update modular_nova/modules/clothing_improvements/code/functional_toggle.dm --------- Co-authored-by: FlufflesTheDog Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- .../code/functional_toggle.dm | 104 ++++++++++++++++++ .../code/clothing/clothing.dm | 3 +- tgstation.dme | 1 + 3 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 modular_nova/modules/clothing_improvements/code/functional_toggle.dm diff --git a/modular_nova/modules/clothing_improvements/code/functional_toggle.dm b/modular_nova/modules/clothing_improvements/code/functional_toggle.dm new file mode 100644 index 000000000000..69715f88435e --- /dev/null +++ b/modular_nova/modules/clothing_improvements/code/functional_toggle.dm @@ -0,0 +1,104 @@ +/* +Functional Toggle lets you convert stuff to functional (exo suit), with armor, cold and heat protection values, to non functional (neck), with all those set to zero. +It allows people to use a jacket over a piece or armor and only sacrifice the minimal amount of functionality in the pursuit of design. +Use CTRL + SHIFT + LEFT CLICK to turn them on and off. +*/ +/obj/item/clothing/suit + /// When set to TRUE, this particular suit is not able to use the functional toggle + var/only_functional + /// A temp list to restore the intitial functional values (for armor, cold protection, etc) to the state they were in prior to using the functional toggle + var/list/functional_suit_values + +/obj/item/clothing/suit/Initialize(mapload) + . = ..() + + if(!(flags_1 & HAS_CONTEXTUAL_SCREENTIPS_1)) + register_context() + +/obj/item/clothing/suit/examine(mob/user) + . = ..() + + if(!only_functional) + . += span_info("Ctrl + Shift + Left Click to swap between functional (suit) and non-functional (neck) mode, to allow for things such as wearing a (nonfunctional) jacket over a piece of armor for the visual effect.") + +#define PREV_SLOT_FLAGS "fs_slots" +#define PREV_COLD_PROTECTION "fs_cold" +#define PREV_HEAT_PROTECTION "fs_heat" +#define PREV_SLOWDOWN "fs_slow" +#define PREV_ARMOR_DATUM "fs_armor" + +/obj/item/clothing/suit/click_ctrl_shift(mob/user) + if(!iscarbon(user)) + return NONE + if(only_functional) + return NONE + var/mob/living/carbon/char = user + if((char.get_item_by_slot(ITEM_SLOT_NECK) == src) || (char.get_item_by_slot(ITEM_SLOT_OCLOTHING) == src)) + to_chat(user, span_warning("You can't adjust [src] while wearing it!")) + return CLICK_ACTION_BLOCKING + if(!user.is_holding(src)) + to_chat(user, span_warning("You must be holding [src] in order to adjust it!")) + return CLICK_ACTION_BLOCKING + if(slot_flags & ITEM_SLOT_OCLOTHING) + functional_suit_values = list( + PREV_SLOT_FLAGS = slot_flags, + PREV_COLD_PROTECTION = cold_protection, + PREV_HEAT_PROTECTION = heat_protection, + PREV_SLOWDOWN = slowdown, + PREV_ARMOR_DATUM = armor_type, + ) + slot_flags = ITEM_SLOT_NECK + cold_protection = null + heat_protection = null + slowdown = 0 + set_armor(/datum/armor/none) + user.visible_message(span_notice("[user] adjusts [user.p_their()] [src] for non-functional use."), span_notice("You adjust your [src] for non-functional use.")) + else + slot_flags = functional_suit_values[PREV_SLOT_FLAGS] + cold_protection = functional_suit_values[PREV_COLD_PROTECTION] + heat_protection = functional_suit_values[PREV_HEAT_PROTECTION] + slowdown = functional_suit_values[PREV_SLOWDOWN] + set_armor(functional_suit_values[PREV_ARMOR_DATUM]) + user.visible_message(span_notice("[user] adjusts [user.p_their()] [src] for functional use."), span_notice("You adjust your [src] for functional use.")) + return CLICK_ACTION_SUCCESS + +#undef PREV_SLOT_FLAGS +#undef PREV_COLD_PROTECTION +#undef PREV_HEAT_PROTECTION +#undef PREV_SLOWDOWN +#undef PREV_ARMOR_DATUM +/obj/item/clothing/suit/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) + . = ..() + + if(only_functional) + return + if(slot_flags == ITEM_SLOT_NECK) + context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB] = "Toggle functional mode" + else + context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB] = "Toggle non-functional mode" + return CONTEXTUAL_SCREENTIP_SET + +// Add the things here that shouldn't have this functionality. + +/obj/item/clothing/suit/space + only_functional = TRUE + +// Stuff that gives other effects, like reactive armor, reflective armor, etc. + +/obj/item/clothing/suit/armor/reactive + only_functional = TRUE + +/obj/item/clothing/suit/hooded/ablative + only_functional = TRUE + +/obj/item/clothing/suit/armor/heavy/adamantine + only_functional = TRUE + +/obj/item/clothing/suit/armor/laserproof + only_functional = TRUE + +/obj/item/clothing/suit/hooded/berserker + only_functional = TRUE + +/obj/item/clothing/suit/armor/abductor/vest + only_functional = TRUE diff --git a/modular_nova/modules/kahraman_equipment/code/clothing/clothing.dm b/modular_nova/modules/kahraman_equipment/code/clothing/clothing.dm index 430a7fbba816..1dc8316b7090 100644 --- a/modular_nova/modules/kahraman_equipment/code/clothing/clothing.dm +++ b/modular_nova/modules/kahraman_equipment/code/clothing/clothing.dm @@ -49,7 +49,7 @@ supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON worn_icon_teshari = 'modular_nova/modules/kahraman_equipment/icons/clothes/clothing_worn_teshari.dmi' worn_icon_state = "jacket" - slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK + slot_flags = ITEM_SLOT_OCLOTHING armor_type = /datum/armor/colonist_clothing resistance_flags = NONE allowed = null @@ -207,7 +207,6 @@ worn_icon_teshari = 'modular_nova/modules/kahraman_equipment/icons/clothes/clothing_worn_teshari.dmi' worn_icon_state = "mask" flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT - armor_type = /datum/armor/colonist_hazard /obj/item/clothing/mask/gas/atmos/frontier_colonist/Initialize(mapload) . = ..() diff --git a/tgstation.dme b/tgstation.dme index 6e69c1d00be4..6a3c8469997a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7284,6 +7284,7 @@ #include "modular_nova\modules\clock_cult\code\structures\traps\senders\lever.dm" #include "modular_nova\modules\clock_cult\code\structures\traps\senders\pressure_sensor.dm" #include "modular_nova\modules\clothing_improvements\code\chaplain.dm" +#include "modular_nova\modules\clothing_improvements\code\functional_toggle.dm" #include "modular_nova\modules\clothing_improvements\code\holsters.dm" #include "modular_nova\modules\colony_fabricator\code\cargo_packs.dm" #include "modular_nova\modules\colony_fabricator\code\colony_fabricator.dm" From 5997588405687c270400063e55042c8e23fecb1c Mon Sep 17 00:00:00 2001 From: Jerry <55355646+Jewelry-x@users.noreply.github.com> Date: Sat, 12 Oct 2024 18:15:45 +0300 Subject: [PATCH 014/119] Better ghost tray scan (#87143) ## About The Pull Request Partially improves: * #46002 Previously, the ghost's "t-ray view" acted as a toggle, even though the scan only occurred once. This PR changes it to function as an action rather than a toggle, removing the need to press the button twice. While the ideal solution would be for the t-ray scan to work on the process tick, my attempt to give ghosts their own t-ray scanner and to toggle it on upon using the verb did not work as expected because the scanner didn't recognize the ghost as its holder (`mob/viewer` in the code). This update serves as an improvement to the current behaviour, but in the future, the t-ray scan verb should function like a normal t-ray scanner, instead of just a one-time scan. ## Why It's Good For The Game Improves the t-ray verb, before it acted as a toggle even though it only worked once upon toggling on. Improves user experience using this verb. ## Changelog :cl: fix: the ghost "t-ray view" no longer requires a double press to activate a second time. qol: renamed "t-ray view" to "t-ray scan" for clarity. /:cl: --- code/modules/mob/dead/observer/observer.dm | 27 ++++------------------ 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 52505b988667..995a9d0ea341 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -1075,31 +1075,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/proc/tray_view() set category = "Ghost" - set name = "T-ray view" - set desc = "Toggles a view of sub-floor objects" + set name = "T-ray scan" + set desc = "Perfom a scan to view sub-floor objects" - var/static/t_ray_view = FALSE - if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder && !t_ray_view) + if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder) to_chat(usr, span_notice("That verb is currently globally disabled.")) return - t_ray_view = !t_ray_view - - var/list/t_ray_images = list() - var/static/list/stored_t_ray_images = list() - for(var/obj/O in orange(client.view, src) ) - if(HAS_TRAIT(O, TRAIT_T_RAY_VISIBLE)) - var/image/I = new(loc = get_turf(O)) - var/mutable_appearance/MA = new(O) - MA.alpha = 128 - MA.dir = O.dir - I.appearance = MA - t_ray_images += I - stored_t_ray_images += t_ray_images - if(length(t_ray_images)) - if(t_ray_view) - client.images += t_ray_images - else - client.images -= stored_t_ray_images + + t_ray_scan(src) /mob/dead/observer/default_lighting_cutoff() var/datum/preferences/prefs = client?.prefs From 9b6675717baeffb71413c0a284197b44d1fd6ef5 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 15:16:05 +0000 Subject: [PATCH 015/119] Automatic changelog for PR #87143 [ci skip] --- html/changelogs/AutoChangeLog-pr-87143.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87143.yml diff --git a/html/changelogs/AutoChangeLog-pr-87143.yml b/html/changelogs/AutoChangeLog-pr-87143.yml new file mode 100644 index 000000000000..10696da59b6a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87143.yml @@ -0,0 +1,5 @@ +author: "Jewelry-x" +delete-after: True +changes: + - bugfix: "the ghost \"t-ray view\" no longer requires a double press to activate a second time." + - qol: "renamed \"t-ray view\" to \"t-ray scan\" for clarity." \ No newline at end of file From 733cb901845e50585f92b28c125d73dd60d7ab14 Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:42:10 +0000 Subject: [PATCH 016/119] Automatic changelog for PR #4481 [ci skip] --- html/changelogs/AutoChangeLog-pr-4481.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4481.yml diff --git a/html/changelogs/AutoChangeLog-pr-4481.yml b/html/changelogs/AutoChangeLog-pr-4481.yml new file mode 100644 index 000000000000..eb7b6599b7c7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4481.yml @@ -0,0 +1,6 @@ +author: "OrbisAnima" +delete-after: True +changes: + - qol: "Mostâ„¢ Jackets, Suits, Tops, some armors and other exosuit equipment can now be toggled (CTRL+SHIFT+LEFT CLICK) to change between functional and non functional uses. The former their usual configuration, the latter featureless but able to be used on the neck." + - balance: "frontier jackets no longer can be stacked to get a boost on armor." + - balance: "frontier mask uses the same kind of armor the atmos, captain and CC masks have. It no longer gives Laser armor." \ No newline at end of file From 690e081455c417c21f0b80b2a296333758bbee02 Mon Sep 17 00:00:00 2001 From: Striders13 <53361823+Striders13@users.noreply.github.com> Date: Sat, 12 Oct 2024 22:26:59 +0530 Subject: [PATCH 017/119] Removes gas mask fov, pepperspray now applies tint to masks until washed off (#87102) Gas masks and all their subtypes no longer have fov. Using pepperspray on gas mask wearer applies 1 tint per 5u of spray. At 3 tint the wearer becomes fully blind. If you wanna use the mask again you'll have to wash off the pepperspray from it using soap or shower. Gas mask assistants are peak soul and removing it was a terrible disaster. FoV is too annoying to ever deal with, so it ends up with gas masks never being worn. Gas filter doesn't make up for it whatsoever, it's only use is shoving cigarettes in it to look cool. This PR makes it so pepperspray/tear gas is still useful against mask wearers, albeit less efficient. --- code/datums/components/clothing_dirt.dm | 88 +++++++++++++++++++ .../antagonists/ninja/ninja_clothing.dm | 3 +- code/modules/clothing/masks/gasmask.dm | 28 ++---- code/modules/clothing/masks/hailer.dm | 2 +- .../modules/mining/equipment/explorer_gear.dm | 1 - .../modules/clothing/masks/gasmask.dm | 2 - .../disable_worn_fov/code/worn_items.dm | 3 - tgstation.dme | 1 + 8 files changed, 98 insertions(+), 30 deletions(-) create mode 100644 code/datums/components/clothing_dirt.dm diff --git a/code/datums/components/clothing_dirt.dm b/code/datums/components/clothing_dirt.dm new file mode 100644 index 000000000000..40f0ddb07e24 --- /dev/null +++ b/code/datums/components/clothing_dirt.dm @@ -0,0 +1,88 @@ +/// This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas. + +/datum/component/clothing_dirt + /// Amount of dirt stacks on the clothing + var/dirtiness = 0 + +/datum/component/clothing_dirt/Initialize() + if(!isclothing(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/clothing_dirt/RegisterWithParent() + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) + RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/UnregisterFromParent() + var/obj/item/clothing/clothing = parent + clothing.tint -= dirtiness + if(iscarbon(clothing.loc)) + var/mob/living/carbon/wearer = clothing.loc + wearer.update_tint() + UnregisterSignal(wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + else + UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) + UnregisterSignal(parent, list( + COMSIG_ATOM_EXAMINE, + COMSIG_ITEM_EQUIPPED, + COMSIG_MOB_UNEQUIPPED_ITEM, + COMSIG_COMPONENT_CLEAN_ACT, + )) + return ..() + +/datum/component/clothing_dirt/proc/on_equip(datum/source, mob/user, slot) + SIGNAL_HANDLER + var/obj/item/clothing/clothing = parent + if (!(slot & clothing.slot_flags)) + return + UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) + RegisterSignal(user, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/proc/on_drop(datum/source, mob/holder) + SIGNAL_HANDLER + UnregisterSignal(holder, COMSIG_ATOM_EXPOSE_REAGENTS) + RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/proc/on_examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + if (dirtiness > 0) + examine_list += span_warning("It appears to be covered in some oily substance. Won't see much while wearing it until you wash it off.") + +/datum/component/clothing_dirt/proc/on_expose(atom/target, list/reagents, datum/reagents/source, methods) + SIGNAL_HANDLER + + var/mob/living/carbon/wearer + if(iscarbon(target)) + wearer = target + if(is_protected(wearer)) + return + + var/datum/reagent/consumable/condensedcapsaicin/pepper = locate() in reagents + if(isnull(pepper)) + return + + var/obj/item/clothing/clothing = parent + if (methods & (TOUCH | VAPOR)) + clothing.tint -= dirtiness + dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3) + clothing.tint += dirtiness + if(!isnull(wearer)) + wearer.update_tint() + +/datum/component/clothing_dirt/proc/is_protected(mob/living/carbon/wearer) + return wearer.head && (wearer.head.flags_cover & PEPPERPROOF) + +/datum/component/clothing_dirt/proc/on_clean(datum/target, clean_types) + SIGNAL_HANDLER + var/obj/item/clothing/clothing = parent + var/mob/living/carbon/wearer + if(iscarbon(clothing.loc)) + wearer = clothing.loc + + if (clean_types & (CLEAN_WASH|CLEAN_SCRUB)) + clothing.tint -= dirtiness + dirtiness = 0 + if(!isnull(wearer)) + wearer.update_tint() diff --git a/code/modules/antagonists/ninja/ninja_clothing.dm b/code/modules/antagonists/ninja/ninja_clothing.dm index 54ed46c9c3ec..4eaf40f9c79c 100644 --- a/code/modules/antagonists/ninja/ninja_clothing.dm +++ b/code/modules/antagonists/ninja/ninja_clothing.dm @@ -15,7 +15,8 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR | HIDEFACE | HIDESNOUT flags_cover = MASKCOVERSMOUTH | PEPPERPROOF - has_fov = FALSE + pepper_tint = FALSE + /obj/item/clothing/under/syndicate/ninja name = "ninja suit" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 92e61f59d30e..82b6fb1b90dd 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -25,19 +25,21 @@ GLOBAL_LIST_INIT(clown_mask_options, list( var/list/gas_filters ///Type of filter that spawns on roundstart var/starting_filter_type = /obj/item/gas_filter - ///Does the mask have an FOV? - var/has_fov = TRUE ///Cigarette in the mask var/obj/item/cigarette/cig ///How much does this mask affect fishing difficulty var/fishing_modifier = 2 + ///Applies clothing_dirt component to the pepperproof mask if true + var/pepper_tint = TRUE /datum/armor/mask_gas bio = 100 /obj/item/clothing/mask/gas/Initialize(mapload) . = ..() - init_fov() + + if((flags_cover & PEPPERPROOF) && pepper_tint) + AddComponent(/datum/component/clothing_dirt) if(fishing_modifier) AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier) @@ -160,11 +162,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( has_filter = FALSE return filtered_breath -/// Initializes the FoV component for the gas mask -/obj/item/clothing/mask/gas/proc/init_fov() - if (has_fov) - AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES) - /** * Getter for overall filter durability, takes into consideration all filters filter_status */ @@ -267,7 +264,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( icon_state = "plaguedoctor" flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT|HIDEHAIR inhand_icon_state = "gas_mask" - has_fov = FALSE clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS /obj/item/clothing/mask/gas/syndicate @@ -278,8 +274,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FIRE_PROOF | ACID_PROOF strip_delay = 60 w_class = WEIGHT_CLASS_SMALL - has_fov = FALSE fishing_modifier = 0 + pepper_tint = FALSE /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" @@ -296,7 +292,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) dog_fashion = /datum/dog_fashion/head/clown - has_fov = FALSE var/list/clownmask_designs = list() voice_filter = null // performer masks expect to be talked through fishing_modifier = 0 @@ -341,7 +336,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/mime @@ -355,7 +349,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) species_exception = list(/datum/species/golem) - has_fov = FALSE fishing_modifier = 0 var/list/mimemask_designs = list() @@ -414,7 +407,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = "owl_mask" flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/sexymime @@ -426,7 +418,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE species_exception = list(/datum/species/golem) - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/cyborg @@ -434,7 +425,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( desc = "Beep boop." icon_state = "death" resistance_flags = FLAMMABLE - has_fov = FALSE flags_cover = MASKCOVERSEYES fishing_modifier = 0 @@ -446,7 +436,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = -1 /obj/item/clothing/mask/gas/carp @@ -454,7 +443,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( desc = "Gnash gnash." icon_state = "carp_mask" inhand_icon_state = null - has_fov = FALSE flags_cover = MASKCOVERSEYES fishing_modifier = -3 @@ -465,7 +453,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = null custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT * 1.25) resistance_flags = FLAMMABLE - has_fov = FALSE flags_cover = MASKCOVERSEYES max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) @@ -512,7 +499,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = "gas_atmos" resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT - has_fov = FALSE fishing_modifier = -2 /obj/item/clothing/mask/gas/prop @@ -523,7 +509,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = NONE flags_cover = MASKCOVERSMOUTH resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/atmosprop @@ -535,7 +520,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = NONE flags_cover = MASKCOVERSMOUTH resistance_flags = FLAMMABLE - has_fov = FALSE fishing_modifier = 0 /obj/item/clothing/mask/gas/driscoll diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index aee1ac17b1b3..182bc3ace766 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -56,7 +56,6 @@ GLOBAL_LIST_INIT(hailer_phrases, list( flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH tint = 0 - has_fov = FALSE fishing_modifier = 0 unique_death = 'sound/items/sec_hailer/sec_death.ogg' COOLDOWN_DECLARE(hailer_cooldown) @@ -88,6 +87,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF fishing_modifier = 2 + pepper_tint = FALSE /obj/item/clothing/mask/gas/sechailer/swat/spacepol name = "spacepol mask" diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index cc8cba654dd3..c2dffd37ee53 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -61,7 +61,6 @@ actions_types = list(/datum/action/item_action/adjust) armor_type = /datum/armor/gas_explorer resistance_flags = FIRE_PROOF - has_fov = FALSE /datum/armor/gas_explorer melee = 10 diff --git a/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm b/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm index 3ee77992e0d9..58024b8b8a18 100644 --- a/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm +++ b/modular_nova/modules/customization/modules/clothing/masks/gasmask.dm @@ -55,7 +55,6 @@ clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE greyscale_config = /datum/greyscale_config/clown_mask greyscale_config_worn = /datum/greyscale_config/clown_mask/worn greyscale_colors = "#FFFFFF#F20018#0000FF#00CC00" @@ -80,7 +79,6 @@ icon_state = "respirator" inhand_icon_state = "sechailer" w_class = WEIGHT_CLASS_SMALL - has_fov = FALSE clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEFACIALHAIR|HIDESNOUT flags_cover = MASKCOVERSMOUTH diff --git a/modular_nova/modules/disable_worn_fov/code/worn_items.dm b/modular_nova/modules/disable_worn_fov/code/worn_items.dm index 4739ecec29bd..eeacbe869cda 100644 --- a/modular_nova/modules/disable_worn_fov/code/worn_items.dm +++ b/modular_nova/modules/disable_worn_fov/code/worn_items.dm @@ -1,6 +1,3 @@ /obj/item/clothing/head/bio_hood/Initialize(mapload) . = ..() qdel(GetComponent(/datum/component/clothing_fov_visor)) - -/obj/item/clothing/mask/gas/ - has_fov = FALSE diff --git a/tgstation.dme b/tgstation.dme index 6a3c8469997a..8ca621eda051 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1174,6 +1174,7 @@ #include "code\datums\components\chuunibyou.dm" #include "code\datums\components\cleaner.dm" #include "code\datums\components\clickbox.dm" +#include "code\datums\components\clothing_dirt.dm" #include "code\datums\components\clothing_fov_visor.dm" #include "code\datums\components\codeword_hearing.dm" #include "code\datums\components\combo_attacks.dm" From fc42f923a283b2913410e3ff459d3001d2af0ca1 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 16:57:22 +0000 Subject: [PATCH 018/119] Automatic changelog for PR #87102 [ci skip] --- html/changelogs/AutoChangeLog-pr-87102.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87102.yml diff --git a/html/changelogs/AutoChangeLog-pr-87102.yml b/html/changelogs/AutoChangeLog-pr-87102.yml new file mode 100644 index 000000000000..e4e89d68206c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87102.yml @@ -0,0 +1,4 @@ +author: "Striders13" +delete-after: True +changes: + - balance: "replaced gas mask fov with pepperspray applying tint to gas masks, making the wearer blind until washed off." \ No newline at end of file From 8c0adec59b698bdac4e73372f6f3d3dbc3c6ca81 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 12 Oct 2024 19:58:23 +0200 Subject: [PATCH 019/119] DNA Infusers now check for a datum trait instead of whether non-living objects are edible and have the GORE food type. (#87154) --- code/__DEFINES/traits/declarations.dm | 2 ++ code/_globalvars/traits/_traits.dm | 1 + code/datums/components/food/edible.dm | 9 +++++++++ code/game/machinery/dna_infuser/dna_infuser.dm | 8 ++------ code/modules/fishing/fish/_fish.dm | 3 +++ code/modules/fishing/fish/types/freshwater.dm | 2 +- code/modules/unit_tests/_unit_tests.dm | 2 +- .../{organ_set_bonus.dm => dna_infusion.dm} | 13 +++++++++++++ 8 files changed, 32 insertions(+), 8 deletions(-) rename code/modules/unit_tests/{organ_set_bonus.dm => dna_infusion.dm} (87%) diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 8b128f295a56..a2257f2793fd 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -116,6 +116,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_RESISTHEAT "resist_heat" /// Trait for when you can no longer gain body heat #define TRAIT_HYPOTHERMIC "body_hypothermic" +/// This non-living object is valid to be used in dna infusers +#define TRAIT_VALID_DNA_INFUSION "valid_dna_infusion" ///For when you've gotten a power from a dna vault #define TRAIT_USED_DNA_VAULT "used_dna_vault" /// For when you want to be able to touch hot things, but still want fire to be an issue. diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 0c7d020b9c55..0d0c35a5c978 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER, "TRAIT_COMBAT_MODE_SKIP_INTERACTION" = TRAIT_COMBAT_MODE_SKIP_INTERACTION, "TRAIT_DEL_ON_SPACE_DUMP" = TRAIT_DEL_ON_SPACE_DUMP, + "TRAIT_VALID_DNA_INFUSION" = TRAIT_VALID_DNA_INFUSION, "TRAIT_FISH_CASE_COMPATIBILE" = TRAIT_FISH_CASE_COMPATIBILE, "TRAIT_FROZEN" = TRAIT_FROZEN, "TRAIT_HAS_LABEL" = TRAIT_HAS_LABEL, diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 08002615ad01..22592a039aa0 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -98,6 +98,9 @@ Behavior that's still missing from this component that original food items had t else if(isturf(parent) || isstructure(parent)) RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatIt)) + if(foodtypes & GORE) + ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + /datum/component/edible/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_ATOM_ATTACK_ANIMAL, @@ -114,6 +117,9 @@ Behavior that's still missing from this component that original food items had t qdel(GetComponent(/datum/component/connect_loc_behalf)) + if(foodtypes & GORE) + REMOVE_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + /datum/component/edible/InheritComponent( datum/component/edible/old_comp, i_am_original, @@ -138,6 +144,9 @@ Behavior that's still missing from this component that original food items had t tastes = old_comp.tastes eatverbs = old_comp.eatverbs + if(foodtypes & GORE) + ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + // only edit if we're OG if(!i_am_original) return diff --git a/code/game/machinery/dna_infuser/dna_infuser.dm b/code/game/machinery/dna_infuser/dna_infuser.dm index 961092c635b3..ccc24d44f6e7 100644 --- a/code/game/machinery/dna_infuser/dna_infuser.dm +++ b/code/game/machinery/dna_infuser/dna_infuser.dm @@ -210,7 +210,6 @@ /// Verify that the given infusion source/mob is a dead creature. /obj/machinery/dna_infuser/proc/is_valid_infusion(atom/movable/target, mob/user) - var/datum/component/edible/food_comp = IS_EDIBLE(target) if(infusing_from) balloon_alert(user, "empty the machine first!") return FALSE @@ -219,11 +218,8 @@ if(living_target.stat != DEAD) balloon_alert(user, "only dead creatures!") return FALSE - else if(food_comp) - if(!(food_comp.foodtypes & GORE)) - balloon_alert(user, "only creatures!") - return FALSE - else + else if(!HAS_TRAIT(target, TRAIT_VALID_DNA_INFUSION)) + balloon_alert(user, "only creatures!") return FALSE return TRUE diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 2a08f566347a..4a8efadcbcc9 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -173,6 +173,9 @@ ADD_TRAIT(src, TRAIT_UNCOMPOSTABLE, REF(src)) //Composting a food that is not real food wouldn't work anyway. START_PROCESSING(SSobj, src) + //Adding this because not all fish have the gore foodtype that makes them automatically eligible for dna infusion. + ADD_TRAIT(src, TRAIT_VALID_DNA_INFUSION, INNATE_TRAIT) + //stops new fish from being able to reproduce right away. breeding_wait = world.time + (breeding_timeout * NEW_FISH_BREEDING_TIMEOUT_MULT) last_feeding = world.time - (feeding_frequency * NEW_FISH_LAST_FEEDING_MULT) diff --git a/code/modules/fishing/fish/types/freshwater.dm b/code/modules/fishing/fish/types/freshwater.dm index fe0ff437c7d8..75d4891b4f0a 100644 --- a/code/modules/fishing/fish/types/freshwater.dm +++ b/code/modules/fishing/fish/types/freshwater.dm @@ -175,7 +175,7 @@ /obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE) . = ..() - AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2.5, 3 MINUTES)) + AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2 MINUTES, 3 MINUTES)) RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks)) RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth)) diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 172a3b641814..820956a21a1c 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -135,6 +135,7 @@ #include "dcs_get_id_from_elements.dm" #include "designs.dm" #include "dismemberment.dm" +#include "dna_infusion.dm" #include "door_access.dm" #include "dragon_expiration.dm" #include "drink_icons.dm" @@ -211,7 +212,6 @@ #include "operating_table.dm" #include "orderable_items.dm" #include "organ_bodypart_shuffle.dm" -#include "organ_set_bonus.dm" #include "organs.dm" #include "orphaned_genturf.dm" #include "outfit_sanity.dm" diff --git a/code/modules/unit_tests/organ_set_bonus.dm b/code/modules/unit_tests/dna_infusion.dm similarity index 87% rename from code/modules/unit_tests/organ_set_bonus.dm rename to code/modules/unit_tests/dna_infusion.dm index 67a88250665f..fe545b3e29c6 100644 --- a/code/modules/unit_tests/organ_set_bonus.dm +++ b/code/modules/unit_tests/dna_infusion.dm @@ -1,3 +1,16 @@ +///Check that input types that aren't living mobs have the TRAIT_VALID_DNA_INFUSION trait +/datum/unit_test/valid_dna_infusion + +/datum/unit_test/valid_dna_infusion/Run() + for(var/datum/infuser_entry/infuser_entry as anything in flatten_list(GLOB.infuser_entries)) + for(var/input_type as anything in infuser_entry.input_obj_or_mob) + if(ispath(input_type, /mob/living)) + continue + var/atom/movable/movable = allocate(input_type) + if(!HAS_TRAIT(movable, TRAIT_VALID_DNA_INFUSION)) + //TEST_FAIL() doesn't early return the unit test so we can keep checking. + TEST_FAIL("[input_type] is in the 'input_obj_or_mob' list for [infuser_entry.type] but doesn't have TRAIT_VALID_DNA_INFUSION.") + /// Checks that all "organ_set_bonus" status effects have unique "id" vars. /// Required to ensure that the status effects are treated as "unique". /datum/unit_test/organ_set_bonus_id From 13eec557f03a50ca6e434b6f4078ddae0ba7e7f3 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 17:58:51 +0000 Subject: [PATCH 020/119] Automatic changelog for PR #87154 [ci skip] --- html/changelogs/AutoChangeLog-pr-87154.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87154.yml diff --git a/html/changelogs/AutoChangeLog-pr-87154.yml b/html/changelogs/AutoChangeLog-pr-87154.yml new file mode 100644 index 000000000000..00abf6ba4981 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87154.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fish like slimefish, unmarine bonemass and deepfryer fish can now be used for DNA infusions." \ No newline at end of file From 11906fe15dd4f93c556abd13c358a5636e2cbd03 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:49:17 +0300 Subject: [PATCH 021/119] All chainsaws can behead (#87145) --- code/game/objects/items/chainsaw.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index 00ca25985bfe..dad44d69e7ea 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -26,6 +26,8 @@ var/on = FALSE ///The looping sound for our chainsaw when running var/datum/looping_sound/chainsaw/chainsaw_loop + ///how long it takes to behead someone with this chainsaw. + var/behead_time = 15 SECONDS /obj/item/chainsaw/apply_fantasy_bonuses(bonus) . = ..() @@ -98,8 +100,9 @@ desc = span_warning("VRRRRRRR!!!") armour_penetration = 100 force_on = 30 + behead_time = 2 SECONDS -/obj/item/chainsaw/doomslayer/attack(mob/living/target_mob, mob/living/user, params) +/obj/item/chainsaw/attack(mob/living/target_mob, mob/living/user, params) if (target_mob.stat != DEAD) return ..() @@ -113,7 +116,7 @@ playsound(user, 'sound/items/weapons/slice.ogg', vol = 80, vary = TRUE) target_mob.balloon_alert(user, "cutting off head...") - if (!do_after(user, 2 SECONDS, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) + if (!do_after(user, behead_time, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) return TRUE head.dismember(silent = FALSE) @@ -128,7 +131,7 @@ return TRUE return FALSE -/obj/item/chainsaw/doomslayer/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) +/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) return target_mob.get_bodypart(BODY_ZONE_HEAD) == head /obj/item/chainsaw/mounted_chainsaw From a221c50f6f383a4d428f84b6720e9a088d42f57c Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 18:49:37 +0000 Subject: [PATCH 022/119] Automatic changelog for PR #87145 [ci skip] --- html/changelogs/AutoChangeLog-pr-87145.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87145.yml diff --git a/html/changelogs/AutoChangeLog-pr-87145.yml b/html/changelogs/AutoChangeLog-pr-87145.yml new file mode 100644 index 000000000000..70afb26c7855 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87145.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - balance: "all chainsaws can now behead people" \ No newline at end of file From 672077395b6a787d0681dc9ecd56c0c3de09087a Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 12 Oct 2024 15:08:59 -0400 Subject: [PATCH 023/119] Option to Offload non-technical PR discussion to a Discord Thread (#86068) This was discussed in #maintainerbus on the Discord. @tgstation/commit-access Result of this PR: - Add the `Discord Discussion` label to the PR. - The bot will create the thread, link it in the PR, and lock the PR. Slowmode set to 1 minute. Auto-archive duration set to max of 1 week. - The thread will be archived if the PR is merged or closed, unarchived if it's reopened. - You can also set a join link for the Discord to appear in the GitHub comment. I'll be setting it to our official link at https://tgstation13.org/phpBB/viewforum.php?f=60 ![image](https://github.com/user-attachments/assets/2cdbe762-2339-4467-8b80-d1bf939b43e4) ![image](https://github.com/user-attachments/assets/b5cb25a4-18ee-40a0-a3eb-c36cf38ca8dc) Let the bikeshed commence --- .github/workflows/discord_discussions.yml | 52 +++ .gitignore | 4 + .../DiscordForwardingResponder.cs | 28 ++ .../IDiscordResponders.cs | 9 + tools/Tgstation.DiscordDiscussions/Program.cs | 307 ++++++++++++++++++ .../PullRequestState.cs | 9 + .../Tgstation.DiscordDiscussions.csproj | 14 + .../Tgstation.DiscordDiscussions.sln | 25 ++ 8 files changed, 448 insertions(+) create mode 100644 .github/workflows/discord_discussions.yml create mode 100644 tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs create mode 100644 tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs create mode 100644 tools/Tgstation.DiscordDiscussions/Program.cs create mode 100644 tools/Tgstation.DiscordDiscussions/PullRequestState.cs create mode 100644 tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj create mode 100644 tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln diff --git a/.github/workflows/discord_discussions.yml b/.github/workflows/discord_discussions.yml new file mode 100644 index 000000000000..439315cbb954 --- /dev/null +++ b/.github/workflows/discord_discussions.yml @@ -0,0 +1,52 @@ +name: Discord Discussions + +on: + pull_request_target: + types: + - opened + - reopened + - edited + - labeled + - closed + branches: + - master + +concurrency: + group: "discord-discussions-${{ github.head_ref }}" + cancel-in-progress: true + +jobs: + manage-discord-discussion: + name: Manage Discord Discussion + runs-on: ubuntu-latest + if: contains(github.event.pull_request.labels.*.name, 'Discord Discussion') + steps: + - name: Fail if vars.DISCORD_DISCUSSIONS_CHANNEL_ID is unset + if: ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID == '' }} + run: | + echo "vars.DISCORD_DISCUSSIONS_CHANNEL_ID (${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }}) must be set to use this label!" + exit 1 + + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + dotnet-quality: ga + + - name: Checkout + uses: actions/checkout@v4 + + - name: Build Tgstation.DiscordDiscussions + run: dotnet publish -c Release -o discord_discussions_bins tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj + + - name: Generate App Token + id: app-token-generation + uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Run Tgstation.DiscordDiscussions + run: dotnet discord_discussions_bins/Tgstation.DiscordDiscussions.dll ${{ steps.app-token-generation.outputs.token }} ${{ github.repository_owner }} ${{ github.event.repository.name }} ${{ github.event.pull_request.number }} ${{ github.event.pull_request.merged && 'merged' || github.event.pull_request.state }} ${{ secrets.DISCORD_DISCUSSIONS_TOKEN }} ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }} ${{ github.event.action == 'reopened' && 'true' || 'false' }} ${{ vars.DISCORD_JOIN_LINK }} + env: + GITHUB_PULL_REQUEST_TITLE: ${{ github.event.pull_request.title }} diff --git a/.gitignore b/.gitignore index 11db13999976..1abeb9c3d2d2 100644 --- a/.gitignore +++ b/.gitignore @@ -180,6 +180,10 @@ Temporary Items /tools/MapAtmosFixer/MapAtmosFixer/bin/* /tools/CreditsTool/bin/* /tools/CreditsTool/obj/* +/tools/Tgstation.DiscordDiscussions/.vs/* +/tools/Tgstation.DiscordDiscussions/bin/* +/tools/Tgstation.DiscordDiscussions/obj/* +/tools/Tgstation.DiscordDiscussions/Properties/launchSettings.json #GitHub Atom .atom-build.json diff --git a/tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs b/tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs new file mode 100644 index 000000000000..4dab10fea277 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/DiscordForwardingResponder.cs @@ -0,0 +1,28 @@ +using System; +using System.Threading; +using System.Threading.Tasks; + +using Remora.Discord.API.Abstractions.Gateway.Events; +using Remora.Discord.Gateway.Responders; +using Remora.Results; + +namespace Tgstation.DiscordDiscussions +{ + ///

+ /// An that forwards to another . + /// + /// + /// Initializes a new instance of the class. + /// + /// The value of . + sealed class DiscordForwardingResponder(IDiscordResponders targetResponder) : IDiscordResponders + { + /// + /// The to forward the event to. + /// + readonly IDiscordResponders targetResponder = targetResponder ?? throw new ArgumentNullException(nameof(targetResponder)); + + /// + public Task RespondAsync(IReady gatewayEvent, CancellationToken ct) => targetResponder.RespondAsync(gatewayEvent, ct); + } +} diff --git a/tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs b/tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs new file mode 100644 index 000000000000..41f22d5b6f3c --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/IDiscordResponders.cs @@ -0,0 +1,9 @@ +using Remora.Discord.API.Abstractions.Gateway.Events; +using Remora.Discord.Gateway.Responders; + +namespace Tgstation.DiscordDiscussions +{ + internal interface IDiscordResponders : IResponder + { + } +} diff --git a/tools/Tgstation.DiscordDiscussions/Program.cs b/tools/Tgstation.DiscordDiscussions/Program.cs new file mode 100644 index 000000000000..1989ef614507 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/Program.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; + +using Microsoft.Extensions.DependencyInjection; + +using Octokit; + +using Remora.Discord.API.Abstractions.Gateway.Events; +using Remora.Discord.API.Abstractions.Objects; +using Remora.Discord.API.Abstractions.Rest; +using Remora.Discord.API.Objects; +using Remora.Discord.Gateway; +using Remora.Discord.Gateway.Extensions; +using Remora.Rest.Core; +using Remora.Rest.Results; +using Remora.Results; + +namespace Tgstation.DiscordDiscussions +{ + public sealed partial class Program : IDiscordResponders + { + const bool LockPullRequest = true; + const int InitSlowModeSeconds = 60; + + [GeneratedRegex(@"https://discord.com/channels/[0-9]+/([0-9]+)")] + private static partial Regex ChannelLinkRegex(); + + readonly TaskCompletionSource gatewayReadyTcs; + + public static Task Main(string[] args) + => new Program().RunAsync(args); + + /// + /// Converts a given into a log entry . + /// + /// The to convert. + /// Used internally for nesting. + /// The formatted . + static string LogFormat(IResult result, uint level = 0) + { + ArgumentNullException.ThrowIfNull(result); + + if (result.IsSuccess) + return "SUCCESS?"; + + var stringBuilder = new StringBuilder(); + if (result.Error != null) + { + stringBuilder.Append(result.Error.Message); + if (result.Error is RestResultError restError) + { + stringBuilder.Append(" ("); + if (restError.Error != null) + { + stringBuilder.Append(restError.Error.Code); + stringBuilder.Append(": "); + stringBuilder.Append(restError.Error.Message); + stringBuilder.Append('|'); + } + + stringBuilder.Append(restError.Message); + if ((restError.Error?.Errors.HasValue ?? false) && restError.Error.Errors.Value.Count > 0) + { + stringBuilder.Append(" ("); + foreach (var error in restError.Error.Errors.Value) + { + stringBuilder.Append(error.Key); + stringBuilder.Append(':'); + if (error.Value.IsT0) + { + FormatErrorDetails(error.Value.AsT0, stringBuilder); + } + else + FormatErrorDetails(error.Value.AsT1, stringBuilder); + stringBuilder.Append(','); + } + + stringBuilder.Remove(stringBuilder.Length - 1, 1); + } + + stringBuilder.Append(')'); + } + } + + if (result.Inner != null) + { + stringBuilder.Append(Environment.NewLine); + ++level; + for (var i = 0; i < level; ++i) + stringBuilder.Append('\t'); + stringBuilder.Append(LogFormat(result.Inner, level)); + } + + return stringBuilder.ToString(); + } + + /// + /// Formats given into a given . + /// + /// The . + /// The to mutate. + static void FormatErrorDetails(IPropertyErrorDetails propertyErrorDetails, StringBuilder stringBuilder) + { + if (propertyErrorDetails == null) + return; + + FormatErrorDetails(propertyErrorDetails.Errors, stringBuilder); + + if (propertyErrorDetails.Errors != null && propertyErrorDetails.MemberErrors != null) + { + stringBuilder.Append(','); + } + + if (propertyErrorDetails.MemberErrors != null) + { + stringBuilder.Append('{'); + foreach (var error in propertyErrorDetails.MemberErrors) + { + stringBuilder.Append(error.Key); + stringBuilder.Append(':'); + FormatErrorDetails(error.Value, stringBuilder); + stringBuilder.Append(','); + } + + stringBuilder.Remove(stringBuilder.Length - 1, 1); + stringBuilder.Append('}'); + } + } + + /// + /// Formats given into a given . + /// + /// The of . + /// The to mutate. + static void FormatErrorDetails(IEnumerable? errorDetails, StringBuilder stringBuilder) + { + if (errorDetails == null) + return; + + stringBuilder.Append('['); + foreach (var error in errorDetails) + { + stringBuilder.Append(error.Code); + stringBuilder.Append(':'); + stringBuilder.Append(error.Message); + stringBuilder.Append(','); + } + + stringBuilder.Remove(stringBuilder.Length - 1, 1); + stringBuilder.Append(']'); + } + + Program() + { + gatewayReadyTcs = new TaskCompletionSource(); + } + + async Task RunAsync(string[] args) + { + try + { + var gitHubToken = args[0]; + var repoOwner = args[1]; + var repoName = args[2]; + var prNumber = Int32.Parse(args[3]); + var state = Enum.Parse(args[4]); + var discordToken = args[5]; + var discussionsChannelId = UInt64.Parse(args[6]); + var isReopen = Boolean.Parse(args[7]); + var joinLink = args.Length > 8 ? args[8] : null; + + var prTitle = Environment.GetEnvironmentVariable("GITHUB_PULL_REQUEST_TITLE"); + + var gitHubClient = new GitHubClient(new ProductHeaderValue("Tgstation.DiscordDiscussions")) + { + Credentials = new Credentials(gitHubToken), + }; + + const string GitHubCommentPrefix = "Maintainers have requested non-technical related discussion regarding this pull request be moved to the Discord."; + + async ValueTask FindThreadID() + { + var comments = await gitHubClient.Issue.Comment.GetAllForIssue(repoOwner, repoName, prNumber); + + var commentInQuestion = comments.FirstOrDefault(comment => comment.Body.StartsWith(GitHubCommentPrefix)); + if (commentInQuestion == null) + return null; + + // https://discord.com/channels// + var threadId = UInt64.Parse(ChannelLinkRegex().Match(commentInQuestion.Body).Groups[1].Value); + return threadId; + } + + var threadIdTask = FindThreadID(); + + await using var serviceProvider = new ServiceCollection() + .AddDiscordGateway(serviceProvider => discordToken) + .AddSingleton(serviceProvider => (IDiscordResponders)this) + .AddResponder() + .BuildServiceProvider(); + + var gatewayClient = serviceProvider.GetRequiredService(); + using var gatewayCts = new CancellationTokenSource(); + var localGatewayTask = gatewayClient.RunAsync(gatewayCts.Token); + try + { + await gatewayReadyTcs.Task.WaitAsync(TimeSpan.FromMinutes(5)); + + var prLink = $"https://github.com/{repoOwner}/{repoName}/pull/{prNumber}"; + var messageContent = $"#{prNumber} - {prTitle}"; + + var channelsClient = serviceProvider.GetRequiredService(); + + var channelId = new Snowflake(discussionsChannelId); + + var threadId = await threadIdTask; + Snowflake messageId; + if (!threadId.HasValue) + { + var channel = await channelsClient.GetChannelAsync(channelId); + if (!channel.IsSuccess) + throw new Exception(LogFormat(channel)); + + var threadMessage = await channelsClient.StartThreadInForumChannelAsync(channelId, messageContent, AutoArchiveDuration.Week, InitSlowModeSeconds, $"Maintainers have requested that discussion for [this pull request]({prLink}) be moved here."); + if (!threadMessage.IsSuccess) + throw new Exception(LogFormat(threadMessage)); + + messageId = threadMessage.Entity.ID; + + var gitHubComment = $"{GitHubCommentPrefix}\nClick [here](https://discord.com/channels/{channel.Entity.GuildID.Value}/{messageId.Value}) to view the discussion."; + if (joinLink != null) + gitHubComment += $"\nClick [here]({joinLink}) to join the Discord!"; + + await gitHubClient.Issue.Comment.Create(repoOwner, repoName, prNumber, gitHubComment); + } + else + { + messageId = new Snowflake(threadId.Value); + + // open/close thread + if (state != PullRequestState.open) + { + var archiveMessage = await channelsClient.CreateMessageAsync(messageId, $"The associated pull request for this thread has been {state.ToString().ToLowerInvariant()}. This thread will now be archived."); + if (!archiveMessage.IsSuccess) + throw new Exception(LogFormat(archiveMessage)); + + var archiveAction = await channelsClient.ModifyThreadChannelAsync(messageId, messageContent, autoArchiveDuration: AutoArchiveDuration.Hour, isArchived: true); + if (!archiveAction.IsSuccess) + throw new Exception(LogFormat(archiveAction)); + } + else if (isReopen) + { + var unarchiveMessage = await channelsClient.CreateMessageAsync(messageId, "The associated pull request for this thread has been reopened. This thread will now be reopened."); + if (!unarchiveMessage.IsSuccess) + throw new Exception(LogFormat(unarchiveMessage)); + + var unarchiveAction = await channelsClient.ModifyThreadChannelAsync(messageId, messageContent, autoArchiveDuration: AutoArchiveDuration.Week, isArchived: false); + if (!unarchiveMessage.IsSuccess) + throw new Exception(LogFormat(unarchiveMessage)); + } + else + { + var response = await channelsClient.ModifyThreadChannelAsync(messageId, messageContent); + if (!response.IsSuccess) + throw new Exception(LogFormat(response)); + } + } + + // ensure the PR is locked + if (LockPullRequest) + { + await gitHubClient.PullRequest.LockUnlock.Lock(repoOwner, repoName, prNumber); + } + + return 0; + } + finally + { + gatewayCts.Cancel(); + try + { + await localGatewayTask.WaitAsync(TimeSpan.FromSeconds(10)); + } + catch (OperationCanceledException) + { + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + return 1; + } + } + + public Task RespondAsync(IReady gatewayEvent, CancellationToken ct = default) + { + gatewayReadyTcs.TrySetResult(); + return Task.FromResult(Result.FromSuccess()); + } + } +} diff --git a/tools/Tgstation.DiscordDiscussions/PullRequestState.cs b/tools/Tgstation.DiscordDiscussions/PullRequestState.cs new file mode 100644 index 000000000000..1420d3a4e9fd --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/PullRequestState.cs @@ -0,0 +1,9 @@ +namespace Tgstation.DiscordDiscussions +{ + enum PullRequestState + { + closed, + open, + merged + } +} diff --git a/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj new file mode 100644 index 000000000000..8f8fa8d2f583 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj @@ -0,0 +1,14 @@ + + + + Exe + net8.0 + enable + + + + + + + + diff --git a/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln new file mode 100644 index 000000000000..978f2901c3c7 --- /dev/null +++ b/tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34728.123 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tgstation.DiscordDiscussions", "Tgstation.DiscordDiscussions.csproj", "{345EAB82-40E0-4F20-A4A6-8052CB8D1A01}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Debug|Any CPU.Build.0 = Debug|Any CPU + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {345EAB82-40E0-4F20-A4A6-8052CB8D1A01}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CBA935A0-8BBA-40CB-BC53-C339683858F4} + EndGlobalSection +EndGlobal From 090bdb3e319e0271e6cfe19cf213e74b37485c74 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:39:51 +0200 Subject: [PATCH 024/119] Fish feed to the Library vending machine, rescue hook to the mining order console (and paramed heirloom) (#87110) Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> --- .../computer/orders/order_items/mining/order_consumables.dm | 6 ++++++ code/modules/fishing/fishing_rod.dm | 5 +++++ code/modules/jobs/job_types/paramedic.dm | 2 +- code/modules/vending/games.dm | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm index c8cfa12f9abf..a91a34b46f2d 100644 --- a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm +++ b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm @@ -46,3 +46,9 @@ item_path = /obj/item/stack/spacecash/c1000 desc = "A stack of space cash worth 1000 credits." cost_per_order = 2000 + +/datum/orderable_item/consumables/rescue_hook + name = "Rescue Fishing Rod" + item_path = /obj/item/fishing_rod/rescue + desc = "For when your fellow miner has inevitably fallen into a chasm, and it's up to you to save them." + cost_per_order = 600 diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 62d0cdf80a2f..bfa701d36eb0 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -521,6 +521,11 @@ line = null show_in_wiki = FALSE +///From the mining order console, meant to help miners rescue their fallen brethren +/obj/item/fishing_rod/rescue + hook = /obj/item/fishing_hook/rescue + show_in_wiki = FALSE + /obj/item/fishing_rod/bone name = "bone fishing rod" desc = "A humble rod, made with whatever happened to be on hand." diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 2fd4f3a93a6d..80936dce2938 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -24,7 +24,7 @@ /datum/job_department/medical, ) - family_heirlooms = list(/obj/item/storage/medkit/ancient/heirloom) + family_heirlooms = list(/obj/item/storage/medkit/ancient/heirloom, /obj/item/fishing_hook/rescue) mail_goodies = list( /obj/item/reagent_containers/hypospray/medipen = 20, diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 98a77c7f40c3..4989b1749824 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -45,7 +45,7 @@ /obj/item/stack/pipe_cleaner_coil/random = 10, ), ), - list( + list( "name" = "Fishing", "icon" = "fish", "products" = list( @@ -54,6 +54,7 @@ /obj/item/storage/box/fishing_lines = 2, /obj/item/storage/box/fishing_lures = 2, /obj/item/book/manual/fish_catalog = 5, + /obj/item/fish_feed = 4, /obj/item/fish_analyzer = 2, /obj/item/fishing_rod/telescopic = 1, ), From df274fa56d92799e966119e9bc74dbf8629920b7 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 19:40:21 +0000 Subject: [PATCH 025/119] Automatic changelog for PR #87110 [ci skip] --- html/changelogs/AutoChangeLog-pr-87110.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87110.yml diff --git a/html/changelogs/AutoChangeLog-pr-87110.yml b/html/changelogs/AutoChangeLog-pr-87110.yml new file mode 100644 index 000000000000..6db52e7bde46 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87110.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "You can buy a fishing rod pre-equipped with a rescue hook from the mining order console." + - balance: "Paramedics can get a rescue fishing hook as a heirloom." \ No newline at end of file From e395086cf40ecc7dc3fe9d436484cc93de5c6f95 Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Sun, 13 Oct 2024 08:47:45 +1100 Subject: [PATCH 026/119] Pyro/Cryokinesis cast range is the same as the projectile's range. Pyro and ash mutations are no longer subtypes (#87144) --- code/datums/components/heart_eater.dm | 4 ++-- code/datums/mutations/_combined.dm | 4 ++-- code/datums/mutations/cold.dm | 1 + code/datums/mutations/hot.dm | 30 +++++++++++++++++++++------ 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/code/datums/components/heart_eater.dm b/code/datums/components/heart_eater.dm index 507090b9452b..722c4b1636d7 100644 --- a/code/datums/components/heart_eater.dm +++ b/code/datums/components/heart_eater.dm @@ -13,9 +13,9 @@ /datum/mutation/human/adaptation/thermal, /datum/mutation/human/chameleon, /datum/mutation/human/cryokinesis, - /datum/mutation/human/cryokinesis/pyrokinesis, + /datum/mutation/human/pyrokinesis, /datum/mutation/human/dwarfism, - /datum/mutation/human/geladikinesis/ash, + /datum/mutation/human/cindikinesis, /datum/mutation/human/insulated, /datum/mutation/human/telekinesis, /datum/mutation/human/telepathy, diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm index 5b7b5d429015..399cbec53ed0 100644 --- a/code/datums/mutations/_combined.dm +++ b/code/datums/mutations/_combined.dm @@ -27,11 +27,11 @@ /datum/generecipe/cindikinesis required = "/datum/mutation/human/geladikinesis; /datum/mutation/human/fire_breath" - result = /datum/mutation/human/geladikinesis/ash + result = /datum/mutation/human/cindikinesis /datum/generecipe/pyrokinesis required = "/datum/mutation/human/cryokinesis; /datum/mutation/human/fire_breath" - result = /datum/mutation/human/cryokinesis/pyrokinesis + result = /datum/mutation/human/pyrokinesis /datum/generecipe/thermal_adaptation required = "/datum/mutation/human/adaptation/cold; /datum/mutation/human/adaptation/heat" diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm index fd060bc8ca5e..7916b4137238 100644 --- a/code/datums/mutations/cold.dm +++ b/code/datums/mutations/cold.dm @@ -37,6 +37,7 @@ button_icon_state = "icebeam" base_icon_state = "icebeam" active_overlay_icon_state = "bg_spell_border_active_blue" + cast_range = 9 cooldown_time = 16 SECONDS spell_requirements = NONE antimagic_flags = NONE diff --git a/code/datums/mutations/hot.dm b/code/datums/mutations/hot.dm index 574bc95d1e40..74fa42e1edd0 100644 --- a/code/datums/mutations/hot.dm +++ b/code/datums/mutations/hot.dm @@ -1,30 +1,48 @@ -/datum/mutation/human/geladikinesis/ash +/datum/mutation/human/cindikinesis name = "Cindikinesis" desc = "Allows the user to concentrate nearby heat into a pile of ash. Wow. Very interesting." + quality = POSITIVE text_gain_indication = span_notice("Your hand feels warm.") + instability = POSITIVE_INSTABILITY_MINOR + difficulty = 10 + synchronizer_coeff = 1 locked = TRUE - power_path = /datum/action/cooldown/spell/conjure_item/snow/ash + power_path = /datum/action/cooldown/spell/conjure_item/ash -/datum/action/cooldown/spell/conjure_item/snow/ash +/datum/action/cooldown/spell/conjure_item/ash name = "Create Ash" desc = "Concentrates pyrokinetic forces to create ash, useful for basically nothing." button_icon_state = "ash" + cooldown_time = 5 SECONDS + spell_requirements = NONE + item_type = /obj/effect/decal/cleanable/ash + delete_old = FALSE + delete_on_failure = FALSE -/datum/mutation/human/cryokinesis/pyrokinesis +/datum/mutation/human/pyrokinesis name = "Pyrokinesis" desc = "Draws positive energy from the surroundings to heat surrounding temperatures at subject's will." + quality = POSITIVE text_gain_indication = span_notice("Your hand feels hot!") + instability = POSITIVE_INSTABILITY_MODERATE + difficulty = 12 + synchronizer_coeff = 1 + energy_coeff = 1 locked = TRUE - power_path = /datum/action/cooldown/spell/pointed/projectile/cryo/pyro + power_path = /datum/action/cooldown/spell/pointed/projectile/pyro -/datum/action/cooldown/spell/pointed/projectile/cryo/pyro +/datum/action/cooldown/spell/pointed/projectile/pyro name = "Pyrobeam" desc = "This power fires a heated bolt at a target." button_icon_state = "firebeam" base_icon_state = "firebeam" + active_overlay_icon_state = "bg_spell_border_active_blue" + cast_range = 9 cooldown_time = 30 SECONDS + spell_requirements = NONE + antimagic_flags = NONE active_msg = "You focus your pyrokinesis!" deactive_msg = "You cool down." From cf61e3782f66afc26addc6e97fc9a5d7aa2cfb4c Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:50:00 +0000 Subject: [PATCH 027/119] Automatic changelog for PR #87144 [ci skip] --- html/changelogs/AutoChangeLog-pr-87144.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87144.yml diff --git a/html/changelogs/AutoChangeLog-pr-87144.yml b/html/changelogs/AutoChangeLog-pr-87144.yml new file mode 100644 index 000000000000..b98c0d1c1899 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87144.yml @@ -0,0 +1,5 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Pyrokinesis/Cryokinesis cast range matches its projectile range." + - code_imp: "Pyrokinesis and Cindikinesis are now their own types and not subtypes of Cryokinesis and Geladikinesis. This allows you to not have to mutate yourself in a specific order to not lock yourself out of the other mutation." \ No newline at end of file From 5ee1dbf722bd4eee775f42d1d857a470f466fd2f Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:43:53 +0300 Subject: [PATCH 028/119] Helmet and visor sounds (#87165) --- code/__DEFINES/sound.dm | 2 + .../crates_lockers/closets/fitness.dm | 4 +- code/game/sound.dm | 11 +++ .../abductor/equipment/gear/abductor_items.dm | 4 + code/modules/cargo/packs/costumes_toys.dm | 4 +- code/modules/clothing/clothing.dm | 10 ++ code/modules/clothing/head/helmet.dm | 86 ++++++++++++++---- code/modules/clothing/outfits/standard.dm | 4 +- .../clothing/spacesuits/_spacesuits.dm | 4 + .../job_types/assistant/gimmick_assistants.dm | 4 +- sound/items/handling/helmet/attribution.txt | 8 ++ sound/items/handling/helmet/helmet_drop1.ogg | Bin 0 -> 13153 bytes sound/items/handling/helmet/helmet_equip1.ogg | Bin 0 -> 15646 bytes .../items/handling/helmet/helmet_pickup1.ogg | Bin 0 -> 10434 bytes sound/items/handling/helmet/visor_down1.ogg | Bin 0 -> 8628 bytes sound/items/handling/helmet/visor_down2.ogg | Bin 0 -> 7995 bytes sound/items/handling/helmet/visor_down3.ogg | Bin 0 -> 9896 bytes sound/items/handling/helmet/visor_up1.ogg | Bin 0 -> 8991 bytes sound/items/handling/helmet/visor_up2.ogg | Bin 0 -> 8847 bytes 19 files changed, 113 insertions(+), 28 deletions(-) create mode 100644 sound/items/handling/helmet/attribution.txt create mode 100644 sound/items/handling/helmet/helmet_drop1.ogg create mode 100644 sound/items/handling/helmet/helmet_equip1.ogg create mode 100644 sound/items/handling/helmet/helmet_pickup1.ogg create mode 100644 sound/items/handling/helmet/visor_down1.ogg create mode 100644 sound/items/handling/helmet/visor_down2.ogg create mode 100644 sound/items/handling/helmet/visor_down3.ogg create mode 100644 sound/items/handling/helmet/visor_up1.ogg create mode 100644 sound/items/handling/helmet/visor_up2.ogg diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 1bd3a191f76f..ee7a5952444c 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -252,3 +252,5 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_DEFAULT_LIQUID_SLOSH "default_liquid_slosh" #define SFX_PLATE_ARMOR_RUSTLE "plate_armor_rustle" #define SFX_PIG_OINK "pig_oink" +#define SFX_VISOR_UP "visor_up" +#define SFX_VISOR_DOWN "visor_down" diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm index 7b4f2d2ee2c3..4e43ea2ce10b 100644 --- a/code/game/objects/structures/crates_lockers/closets/fitness.dm +++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -50,7 +50,7 @@ new /obj/item/gun/energy/laser/redtag(src) for(var/i in 1 to 3) new /obj/item/clothing/suit/redtag(src) - new /obj/item/clothing/head/helmet/redtaghelm(src) + new /obj/item/clothing/head/helmet/taghelm/red(src) /obj/structure/closet/lasertag/blue @@ -65,4 +65,4 @@ new /obj/item/gun/energy/laser/bluetag(src) for(var/i in 1 to 3) new /obj/item/clothing/suit/bluetag(src) - new /obj/item/clothing/head/helmet/bluetaghelm(src) + new /obj/item/clothing/head/helmet/taghelm/blue(src) diff --git a/code/game/sound.dm b/code/game/sound.dm index f77a2aebf351..380aa6c9e238 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -585,4 +585,15 @@ 'sound/mobs/non-humanoids/pig/pig1.ogg', 'sound/mobs/non-humanoids/pig/pig2.ogg', ) + if(SFX_VISOR_DOWN) + soundin = pick( + 'sound/items/handling/helmet/visor_down1.ogg', + 'sound/items/handling/helmet/visor_down2.ogg', + 'sound/items/handling/helmet/visor_down3.ogg', + ) + if(SFX_VISOR_UP) + soundin = pick( + 'sound/items/handling/helmet/visor_up1.ogg', + 'sound/items/handling/helmet/visor_up2.ogg', + ) return soundin diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm index 91107529721b..9f6d10677d19 100644 --- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm +++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm @@ -594,6 +594,10 @@ Congratulations! You are now trained for invasive xenobiology research!"} icon_state = "alienhelmet" inhand_icon_state = null flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/abductor/equipped(mob/living/user, slot) . = ..() diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index a25c47c5d9f8..ac60417e7831 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -82,8 +82,8 @@ /obj/item/gun/energy/laser/bluetag = 3, /obj/item/clothing/suit/redtag = 3, /obj/item/clothing/suit/bluetag = 3, - /obj/item/clothing/head/helmet/redtaghelm = 3, - /obj/item/clothing/head/helmet/bluetaghelm = 3, + /obj/item/clothing/head/helmet/taghelm/blue = 3, + /obj/item/clothing/head/helmet/taghelm/red = 3, ) crate_name = "laser tag crate" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index e24f80e36421..e78ba4ceb244 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -14,6 +14,10 @@ var/visor_flags_cover = NONE //same as above, but for flags_cover ///What to toggle when toggled with adjust_visor() var/visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_VISIONFLAGS | VISOR_INVISVIEW + ///Sound this item makes when its visor is flipped down + var/visor_toggle_down_sound = null + ///Sound this item makes when its visor is flipped up + var/visor_toggle_up_sound = null var/clothing_flags = NONE ///List of items that can be equipped in the suit storage slot while we're worn. @@ -533,6 +537,12 @@ BLIND // can't see anything to_chat(user, span_notice("You push [src] [up ? "out of the way" : "back into place"].")) + //play sounds when toggling the visor up or down (if there is any) + if(visor_toggle_up_sound && up) + playsound(src, visor_toggle_up_sound, 20, TRUE, -1) + if(visor_toggle_down_sound && !up) + playsound(src, visor_toggle_down_sound, 20, TRUE, -1) + update_item_action_buttons() if(user.is_holding(src)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index b9b371d498c1..b8e6bfa7ada2 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -33,6 +33,12 @@ /obj/item/clothing/head/helmet/sec var/flipped_visor = FALSE + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + visor_toggle_up_sound = SFX_VISOR_UP + visor_toggle_down_sound = SFX_VISOR_DOWN /obj/item/clothing/head/helmet/sec/Initialize(mapload) . = ..() @@ -70,8 +76,10 @@ icon_state = base_icon_state if (flipped_visor) flags_cover &= ~HEADCOVERSEYES + playsound(src, SFX_VISOR_DOWN, 20, TRUE, -1) else flags_cover |= HEADCOVERSEYES + playsound(src, SFX_VISOR_UP, 20, TRUE, -1) update_appearance() return CLICK_ACTION_SUCCESS @@ -79,6 +87,10 @@ name = "press helmet" desc = "A blue helmet used to distinguish non-combatant \"PRESS\" members, like if anyone cares." icon_state = "helmet_press" + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() @@ -92,6 +104,10 @@ inhand_icon_state = "helmet" armor_type = /datum/armor/helmet_alt dog_fashion = null + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_alt melee = 15 @@ -118,6 +134,10 @@ clothing_flags = STOPSPRESSUREDAMAGE | STACKABLE_HELMET_EXEMPT resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = null + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_marine melee = 50 @@ -161,6 +181,10 @@ name = "degrading helmet" desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances." tint = 2 + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/blueshirt name = "blue helmet" @@ -168,6 +192,10 @@ icon_state = "blueshift" inhand_icon_state = "blueshift_helmet" custom_premium_price = PAYCHECK_COMMAND + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/toggleable @@ -200,6 +228,12 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + visor_toggle_up_sound = SFX_VISOR_UP + visor_toggle_down_sound = SFX_VISOR_DOWN /obj/item/clothing/head/helmet/toggleable/riot/Initialize(mapload) . = ..() @@ -241,6 +275,12 @@ COOLDOWN_DECLARE(visor_toggle_cooldown) ///Looping sound datum for the siren helmet var/datum/looping_sound/siren/weewooloop + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' + visor_toggle_up_sound = SFX_VISOR_UP + visor_toggle_down_sound = SFX_VISOR_DOWN /obj/item/clothing/head/helmet/toggleable/justice/adjust_visor(mob/living/user) if(!COOLDOWN_FINISHED(src, visor_toggle_cooldown)) @@ -283,6 +323,10 @@ resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = null clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /obj/item/clothing/head/helmet/swat/Initialize(mapload) . = ..() @@ -388,17 +432,17 @@ flags_cover = HEADCOVERSEYES dog_fashion = null -/obj/item/clothing/head/helmet/redtaghelm - name = "red laser tag helmet" - desc = "They have chosen their own end." - icon_state = "redtaghelm" +/obj/item/clothing/head/helmet/taghelm flags_cover = HEADCOVERSEYES - inhand_icon_state = "redtag_helmet" - armor_type = /datum/armor/helmet_redtaghelm // Offer about the same protection as a hardhat. + armor_type = /datum/armor/helmet_taghelm dog_fashion = null + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' -/datum/armor/helmet_redtaghelm +/datum/armor/helmet_taghelm melee = 15 bullet = 10 laser = 20 @@ -406,23 +450,17 @@ bomb = 20 acid = 50 -/obj/item/clothing/head/helmet/bluetaghelm +/obj/item/clothing/head/helmet/taghelm/red + name = "red laser tag helmet" + desc = "They have chosen their own end." + icon_state = "redtaghelm" + inhand_icon_state = "redtag_helmet" + +/obj/item/clothing/head/helmet/taghelm/blue name = "blue laser tag helmet" desc = "They'll need more men." icon_state = "bluetaghelm" - flags_cover = HEADCOVERSEYES inhand_icon_state = "bluetag_helmet" - armor_type = /datum/armor/helmet_bluetaghelm - // Offer about the same protection as a hardhat. - dog_fashion = null - -/datum/armor/helmet_bluetaghelm - melee = 15 - bullet = 10 - laser = 20 - energy = 10 - bomb = 20 - acid = 50 /obj/item/clothing/head/helmet/knight name = "medieval helmet" @@ -491,6 +529,10 @@ icon_state = "rus_helmet" inhand_icon_state = "rus_helmet" armor_type = /datum/armor/helmet_rus_helmet + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_rus_helmet melee = 25 @@ -559,6 +601,10 @@ strip_delay = 80 dog_fashion = null armor_type = /datum/armor/helmet_military + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' /datum/armor/helmet_military melee = 45 diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 422cb34fa090..46bdd0742bb5 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -98,7 +98,7 @@ box = /obj/item/storage/box ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/red - head = /obj/item/clothing/head/helmet/redtaghelm + head = /obj/item/clothing/head/helmet/taghelm/red shoes = /obj/item/clothing/shoes/sneakers/red /datum/outfit/traitor_cutout @@ -141,7 +141,7 @@ suit = /obj/item/clothing/suit/bluetag suit_store = /obj/item/gun/energy/laser/bluetag gloves = /obj/item/clothing/gloves/color/blue - head = /obj/item/clothing/head/helmet/bluetaghelm + head = /obj/item/clothing/head/helmet/taghelm/blue shoes = /obj/item/clothing/shoes/sneakers/blue /datum/outfit/tunnel_clown diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index a9def021b964..506a4d9d9e47 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -25,6 +25,10 @@ resistance_flags = NONE dog_fashion = null slowdown = 0.5 + sound_vary = TRUE + equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' + pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' + drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' ///How much this helmet affects fishing difficulty var/fishing_modifier = 3 diff --git a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm index 23fd9616ee3c..e86698c8720f 100644 --- a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm +++ b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm @@ -54,7 +54,7 @@ /datum/outfit/job/assistant/gimmick/skater name = "Gimmick Assistant - Skater" - head = /obj/item/clothing/head/helmet/redtaghelm + head = /obj/item/clothing/head/helmet/taghelm/red suit = /obj/item/clothing/suit/redtag l_hand = /obj/item/melee/skateboard @@ -65,7 +65,7 @@ /datum/outfit/job/assistant/gimmick/rollerskater name = "Gimmick Assistant - Rollerskater" - head = /obj/item/clothing/head/helmet/bluetaghelm + head = /obj/item/clothing/head/helmet/taghelm/blue suit = /obj/item/clothing/suit/bluetag shoes = /obj/item/clothing/shoes/wheelys/rollerskates diff --git a/sound/items/handling/helmet/attribution.txt b/sound/items/handling/helmet/attribution.txt new file mode 100644 index 000000000000..78383b32fa3b --- /dev/null +++ b/sound/items/handling/helmet/attribution.txt @@ -0,0 +1,8 @@ +visor_up and visor_down are: +Bike helmet visor.wav by Didi0508 -- https://freesound.org/s/541921/ -- License: Attribution NonCommercial 4.0 + +helmet drop and equip: +helmet motorbike put on a head by cupido-1 -- https://freesound.org/s/614199/ -- License: Creative Commons 0 + +helmet pickup: +helmet_grabbing_and_handling_sound by Artninja -- https://freesound.org/s/725314/ -- License: Attribution 4.0 diff --git a/sound/items/handling/helmet/helmet_drop1.ogg b/sound/items/handling/helmet/helmet_drop1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8892e120e039e68b52d83453d905efdd1cc953cf GIT binary patch literal 13153 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/helmet_pickup1.ogg b/sound/items/handling/helmet/helmet_pickup1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b28def3a51ecf458ad65504658c1069644647fdd GIT binary patch literal 10434 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_down1.ogg b/sound/items/handling/helmet/visor_down1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..df93db6b7cfb8e7ee9e4523706462812a8caa761 GIT binary patch literal 8628 zcmeG>cU03!x4%$B5h)>t2yEyC18X24VbKjpkkBL{!4N?q1f_{mT~rilhEP7bNE1U5 z0-*^gD2hsuCW3T#MFp&^eO=40`X->e`}Te3``$U_mYF-hY~8)v z6Ow?wl()_+fUcn`AEph9-5bdcjuN9J63%~NiCAGi2iqzh`9~3tgn^!-Z>o=~!{@)1 z9Lbfb2!Mkbyf4UXYvgWBSTNgbSpbHDF<)=Ke*K2^1dK5)kP{OS9KIVv4v!6v+#9|p zFgzM776X%BnFDLT*$W220S51i5haXfGayJAg8cNcN_o2|*y{XK#&JdYPGU&3KCLJ} zO@s=_!1sM^Fa(Y|1W7>&#&TJe4=5oc#N8;PtjG#tu)FnXj4Y3Omne7TjbT7|O7*cN;)c!DNkxI?m}X?Z&gs%fd6U|TM0xXmOp>el7#LKcM=V^x@^#Vtc_LpjIkiCo;)qp(k;~P^=2lW_ zc7-$smvjWxckCHz#SOJ8F0%mhN{LqkRRkB;{ExcJyD;$IS5i>F2}A$uKLl(_qTxi5ge_5oYf-kKZi#jn$alT|i|gvIMi84Ff=GBxQH16I&<4$P zJkoMo)W+#3w`rgXu}1!NIlAmGU?VzZy9z@R;1=2b%W6pg)1pqnH!H440u0JTO4m(%DaMxAvB?*Kyj)ivckHX z0H^V=RH;wHAMgd=ES9aCWrDHZqs0$uI}rd%%P%o%@1(EH_r)#hc9f1>Cf)-h(r%T6 zcFOqz=slyQF?(gnH0(SGCLG_g-V&b!8*a)2(ojmR6e<97&UHy1 zG!3Kb=)~onV<0G5dD)AA_DJd;7=GsEUXIC0Z(b;M?=`Kt0}MLh6goF(w$ z%=QQ6QH?~W(CYRn*1GC^nlrX~C8B^)F`R5W8I9#2NiB*T#GVFG@mIsW(7&OgHTIW! z&v> z2L4)UlDoa!ih;jIP6Xmwj^;p)zDujV+fCf{SA?yv31ezxD#6WD-FHkqW*iylY2`a^ z892@eoQw^e?Fig{Hr~7AOTesz&7J9(zeJ8WM0AN+3r@LGe@0G)an`(bmL4Tn-#gbZ zu5fo+aovgX$8~)9zeP?E?{pFGG?({~n`N9<7@Srt=;VhDHZFDj+xkc3Y>Ctd6+{j> zQvWZJ(}UOC45FzO=k|JKj~mB;LZiuR{%QaS>d97gSw2UoG}B3% z32x&Apx6Qk(tx1Fs+x%dN~-K^VwznLoYJc)^09ebTIrKIujSXrvQXq1wI zn3!jUXhqS}Gld){JJXInn$G=NS#a#Zp;H==(lwZ-o1~_TB#1n5p^QUr2-tNs@ht*M z&lrKEwvnVpUg`d4Ef7SYN`d-i8X#zl4jUtUkp-mmSdd8saFhJ!<)6r+TEe#eMHY$R zMxwj@=aT+^hX2>VztsS6ahMYLA?;7;tdmHvhC#;`NVyow3qnGG_Y2z}(5`BCnMm8! z#j@jHqXS&9uLwVA+peyW%O%Z!sTzH7K* zoB-S|5@IHX?{q<6LNFND)rga%ukso}n@TBjh_xeilBqhY0?1TAauW5QEX8>FCDAlnPbXAct}>f1ZxACyL^>QtjZdQ*o8 z5a&4gxpAY zUsks|)N@yCu5u%wZc1)VT)7d*TSIcIRxri3H@;{;uKbIRBYlB2#ELQ)65FUwAdm;W zaiFLaalR`MEM4gk>wh}N|3|U%m%4g@-eUqa&WW#YoB{-G-3LJ?&HgdTdHj|haM4MK z@5^L791C(T8J#L+dnas4_J4POSOOT6p#0^9VwK_l1&WaW>#OC@_sjn!G{XuNwtGRS zkrYXicXFmhgMOKMmdqM-t11MS16H@=;vebf=Q=y9+h-7s4GIcbJfS@o53jD8V1?n4 zH;A&Qs`6PpY{xt>5Ws=0uzVDBs`FXtrX8q~FdbmEP=E`taBc@Uu$54pb0@&Hh)|)K zWaE<&rDc*8(9mvJnUO2THMCFZ=F`mk5S{=kPF~;l78THdf5^&Hz4A`m z(-bg=0$C&bXVFHLNyQskSi#$Akh6X-?E^5n#oER9KVv{(@)RD zwAbCD(NSZv>z&>DYDn$qciYZi1+FC*HGZdPJ|#y6>~K>f^_t#B4kZ+%9eoS6%@6u zl1U^poywkyeXiCr?p2`ueW;kSo+H&b4;rqU;9@2sD|nU_d;M=EyufrOtz$zv{gqsk!@!$ zA1x|kW{8T?PMm=C=(1ao%~K{JEq(!eQ6VDTRQ~{%rNUHyf3`oD#q)oH5cyp;HbGO# zZAgZCrAqoQDbhDw8auT;Uq+_m;C;vpK8x^ew_mqjNyKkMlSkz76VlkMdrn0_+KWU+Gd&B|Nel4*7y)xx!YbTRRW{GRR7zw-duRs zWvrzZ>hQ6pGoq~g`JPQ3%z-6OO8+s`DS~G8{I835I8sRv2HJ>BB^W-lSO2DK$2--C z&8VA2=M)%+9v!&n(z|N!iAnP`W0ROC6X01M;v0XJBFlKg9xp~E*RPC)9KeoDF!kJH zYNj=t59+JxXzB=c^ul?Uq)V}OPY$1MZ|`dgi3wro@wjkZznk87VNTN5b4Ki0cQmhj zKvG`Jd+XR}rKw*^DO3FPdHmT06$glIzzW^i`~1`Wy*W2sL*qYhc(*Zhrgb3&`ROxm ze+M@~7?KJ3DQ7BWCUAfMbT;s?gnb{Qj!c%^pNg(IZ(SLhdkNlar5yJnl$CCWi0aA!TPMUWH<3>Sjv#o+OXoog5XAcCpiwn`2u|KBar}A<0s$ZaEH8bYdiH zPRcxe-c^>!3)J> zYdY(GDzMVdp1dU$iQ=Fn8xruE*zs(=G10Zv?~ING39X*enx4`iFobedPUX>(oFqOl`1l(2pkME4yJ+3g;o;)P`{7qoxcfT8SXJSWQ zuTxAtLfIR@d;Pn7lK-VUyY-CpHY4e-YU6yW1J$9Sy5y`HgZqipV? z2R47Pbn5MSG~{5GVys-Xu{py>o{Dig=oiOWN-@VPx}^4?)SHFvLU|ji@_py_Z3t(}$1D@4o^^prU`cW-HbuR7t5XcsL8M zR*Yd^e%~O6tnouf*Xmjc98V|SXVTq|7-u*#hHa+Ca5zJex10Pf@?yWJ%DSF%xq+)0 zR~b%~lEQ2Bk%TM;&PGMAfyVV))qmx{rc&Zu*C$K=-(?U;tdji`hB+;CC$q{LUbk() zN%#>K*sV@7GJ%m9qqUeN``QI6G{k z-{JIDFSeeM(H7k)G_`Fi!IC|OsTDBP5t+59?FuX^^(mj?V)FJHt82Scp4r9PPf7&z z8+E#*bXX;Ir=6uo&#&7*w&mpH>201Eac|~68iflid2AK36uI)22{W|5)+Xjw(MRFO z&&TP_m-ZW$ksGiR>ihB4avCby{g=At&1wibdRHXh?_U~FyeTC;FmTjQ+JQj`B2V(< zO$0~+PuKDEkH^5`49Z{~jw;Ib$605OC=EgcUGm7_6~)2187_jjPQk+X;DRjXBvOXh z2;qZmcv4|@^;FU9>SqtnuYN+$PxY5oG*mF$w2OS+ zf%PYJD8Ws+P_YhLlYLjkBU8O$l1U{ygf{RTrA1svMvOdJR8 ziKHT;(b4jJen<>gUS3d(W>g9!{3`kFY}{n^p@N^bdXYD*N|c8PCJJ5Db$N|#VV0JE zf@Lw4@GGh;W@NI8L#7~22RX%1KvPXw^h*91R)(Q7>BToeW{b<6MMIhZ|f_s1|iflUv#GIMShe8+=|)X&UxU7W!Uma`bc z?4=K|Nwm&QDgU5>qasv`A(fXywMIGS!Su<;=H2?e*jVxGL& zxe+7ZIZgRAN4Y6~XRYe@wl+h2AvPc|BYS4kpWvL}Kw{NwTjJsj3Sk$m%Zmx|XsEAa zI_=j&GBPZU*>qDDB0VJL@TVZ~JZB^Ck7QoAzDZcbVh*o?^S>Uh2KXfudKh zVNwI@`zj23?zQ0Vzce=XE7RWJoxoJ^etr1HhqZT3?=;sgKksAag7a+k(aby2iED8k zh>URk1S7X&IEk78iVb98yQ4u&I%Jcx&+|LV(@}!+t$yq8ZD$Ekn683q3-Mm=gS}q? zqb=V$!P)R+2OP3q(0==ytAYf}Yw2&D2GI0?i`nr<&VNEhZyNel5IcV09~RFK6+UG= zt$Cxp`!Hz=VbD`rsuG@>U$S5a+2X~`oV==q%c%+`;E;b$+Amfppoy@}{>m65_^d+b~OmmiZ;=WAo zOynomr=kj{!h)~Uge+!}0Ii2y%V_DFPxF+s``{zunxG(ZeUMJ1ndNpj72@%^xbkn; z%e)HAc`B*q0I7@Gn!_VXl5S=G{9}X$`S$*8<9$9$J0H>vSXn;vMtQO_oJ1@N8 zb8^$lTq5r#yTZd=4hC&~=A}5d(;0p!?nLH=4V`MgZmT|i+bo_kSe@B>zO&*V}fn zm|KLWxD_mw7Ir;LB=95mV34L-vkn*ATo+iOs(XykW%JJ;9$LHMb@%-pL+SUQ&CK0a zYl(6+#eNr=wrAJ=?(ph0cOu^eQ(>fLX25Sk3wc;sa+LN3le`7w?xW#4;hMSZUL%_6 z>-{B)9<#H(aU-jCc4v+_SXXvRrZ6Xe4w?>m-=1>1^ZmUWHLL5jAJ-=}H4&P=U%SUV z%e8jrRhd)kw2&Bi=y2-rQOhf9>tO`q<_A6Kdzq6^v8`f1zXPtSyvqc?MM;SbN-wT& z7!-ZTfxO3UZ9QvGuP&QB$y8~d^2@AX&_f;Q(Z)7yJn4EXL68W2nU#S-!Fq|rS6Mbq zE$fhn?~I=JHAq4QAWR*V*Kbyfq&$cBN2r`tnTn!I#S*H1Gn&3Jor5Me#qIsB^<0Z| zXcMgB2-=4iZuyKcT(WCerSw9GwsyN#9Fy~b=QYXauN;Zu3)|OU2s_Wo3uo|kU z-B8IN<_-_H5hMNP>0qB&ws?=j!yq5`4q?)TmdtgI^ooWG>!HX_dOpe3!M->J<|Wk< zUR>xk*+%GKI)tjX+3z`@9+xOoNylJnk4fb*co(NqI43#b+h-0xAMUe~eSe=P;F_>R zXsUX^q|mhc%+=gTPxnTK{^D(|k(sBX3CU-AhF|^~ABblLNL4~5XTp@uoa_I1=jHXs zORo=-$4~g^7UsQ-7xr?X0s`^SH+_??mGYB|xe$|JB*}xVjJ( zs&qqCaSp9P<)D0+Ww*k2`m=NAre{MAtci7M?T%=Qs*j;bC2}|@ok|m9wkd{pW^Rk(E*0tRggi*S+2aZ8L_;jP-)4gv_FR^y~32J-PWjdv4${1cHi3IpQ0q*{y!Pu7V zvmb`Ce$wi8Pc}1>b2Uxhc0Q41cEa~hNPo+>Yls?ssF@#cov?~!^N+7a`_3D@e0}JL zl+U?A=XM|t87LG_`OJ|A{_q>`4RF_5DXD=h{3QQXQqnPHk49 zQW2TDGpvAmffs{uY+r~&rLk`Ih&|yp;M`ln*+UzW5Ta zlD~Dh`DiVE)n=1d?~34qM!RN66Gazus1w4|9VE_J_};BeyKUfHm2|gxI$KHX&um3i zC{dtZ4?g2DpEh))irUV!v~QSTCyDqbOsYDg(lY=GjSdMDLE9*cJ{QmTH#izvUXohJ z%9QR+6!i-07iYUHH(1^|dCz2;Y&CH%M!mxZrko^=V`%#f-jjblL7jD<9bC-U#k|aL#*|l`w^NFb7$dmUsJ>R5|VdGmKty<=@ jKh$i2({FHaZT{Jzi!*}G3;WHW=I>xXo#kZWB%%KTy)dEU literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_down2.ogg b/sound/items/handling/helmet/visor_down2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1662f7cfbfecf262f0919772a9d039a8b43dd6c5 GIT binary patch literal 7995 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 tKX%E zpYES7)OKX|@TJ&*+(v6{ccWi$4E^cQ#Btf)LaFk{fe(kD;TaBrp)1!d6#rmbRA1?l zRr4oIT%v;;irNS$B&=QHQ>DH9OmL|LrfgXp|Df zOX9C@8b{%;p!#ID(lfs(-tuvd{pnn$Nact0%MJUqu_fo05zCEV&fZR?ZQrH1?5zsF z!tt`B%n&qZr1m#Xw)XOd&~xl?M7#M&1(__{@vYWx0u)#7^Is-qwTALI{<7ZoWQ#gH zh~bOL@Qyk>x|JWmOp&@H!>k-^!aQ>3y`H?<$#lOyA}tc*`N|1HhffS{8;d5b+gy8E z4SN<}#}$T>Sfl{MkP};0ck=h{xMdjEsB~#&%Ka2kcV=&h*ADgG8vBMsR7B+y?zJ`u@zjGBXc*`|1su=R%!6A=*ScnthHTK=s0yvWvo3`rgP!+vH<0c>fYe))NM+Zg%bD@y_R4UE5lEQ z&e9d@5hzzn8vZoZ?hA#{bsG#=cT-}v*Au#gVc2}?&O$+rTn7~j z%L;AMtmQnjW&2TL(B56PlRI;Uq+&mW zxoVVlr7?aC;W2%7L)}sPh4Nv?NiX!o>7o;6Q{UNZ$KP3b{^EhJ_1AuPDE7r_Xlv)f I_>|&*06_J4MF0Q* literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_down3.ogg b/sound/items/handling/helmet/visor_down3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7d2d2b2a6ae985dbd63b0656bd0dba86b2292564 GIT binary patch literal 9896 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_up1.ogg b/sound/items/handling/helmet/visor_up1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bb498d6d66368679edc862cef7b4e0ad4701649a GIT binary patch literal 8991 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/helmet/visor_up2.ogg b/sound/items/handling/helmet/visor_up2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ffa485833e32524c5b455ec7aa95e0cafa7b1d60 GIT binary patch literal 8847 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 literal 0 HcmV?d00001 From 1fc82fcbc2e3191a7a5455008b9a537f523ac9bd Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 14:44:13 +0000 Subject: [PATCH 029/119] Automatic changelog for PR #87165 [ci skip] --- html/changelogs/AutoChangeLog-pr-87165.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87165.yml diff --git a/html/changelogs/AutoChangeLog-pr-87165.yml b/html/changelogs/AutoChangeLog-pr-87165.yml new file mode 100644 index 000000000000..a6926fda74a2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87165.yml @@ -0,0 +1,5 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "helmets and their visors make sounds now" + - code_imp: "cleaned up laser tag helmet code a bit" \ No newline at end of file From 480a4e522062ecddd73b023526ce0d26034acffc Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:44:29 +0300 Subject: [PATCH 030/119] fix merge skew with cat folder [no gbp] (#87186) --- code/game/sound.dm | 16 ++++++++-------- .../non-humanoids}/cat/attribution.txt | 0 .../non-humanoids}/cat/cat_meow1.ogg | Bin .../non-humanoids}/cat/cat_meow2.ogg | Bin .../non-humanoids}/cat/cat_meow3.ogg | Bin .../non-humanoids}/cat/cat_purr1.ogg | Bin .../non-humanoids}/cat/cat_purr2.ogg | Bin .../non-humanoids}/cat/cat_purr3.ogg | Bin .../non-humanoids}/cat/cat_purr4.ogg | Bin .../non-humanoids}/cat/oranges_meow1.ogg | Bin 10 files changed, 8 insertions(+), 8 deletions(-) rename sound/{creatures => mobs/non-humanoids}/cat/attribution.txt (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_meow1.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_meow2.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_meow3.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr1.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr2.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr3.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/cat_purr4.ogg (100%) rename sound/{creatures => mobs/non-humanoids}/cat/oranges_meow1.ogg (100%) diff --git a/code/game/sound.dm b/code/game/sound.dm index 380aa6c9e238..23568b72bba8 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -547,17 +547,17 @@ )) if(SFX_CAT_MEOW) soundin = pick_weight(list( - 'sound/creatures/cat/cat_meow1.ogg' = 33, - 'sound/creatures/cat/cat_meow2.ogg' = 33, - 'sound/creatures/cat/cat_meow3.ogg' = 33, - 'sound/creatures/cat/oranges_meow1.ogg' = 1, + 'sound/mobs/non-humanoids/cat/cat_meow1.ogg' = 33, + 'sound/mobs/non-humanoids/cat/cat_meow2.ogg' = 33, + 'sound/mobs/non-humanoids/cat/cat_meow3.ogg' = 33, + 'sound/mobs/non-humanoids/cat/oranges_meow1.ogg' = 1, )) if(SFX_CAT_PURR) soundin = pick( - 'sound/creatures/cat/cat_purr1.ogg', - 'sound/creatures/cat/cat_purr2.ogg', - 'sound/creatures/cat/cat_purr3.ogg', - 'sound/creatures/cat/cat_purr4.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr1.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr2.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr3.ogg', + 'sound/mobs/non-humanoids/cat/cat_purr4.ogg', ) if(SFX_DEFAULT_LIQUID_SLOSH) soundin = pick( diff --git a/sound/creatures/cat/attribution.txt b/sound/mobs/non-humanoids/cat/attribution.txt similarity index 100% rename from sound/creatures/cat/attribution.txt rename to sound/mobs/non-humanoids/cat/attribution.txt diff --git a/sound/creatures/cat/cat_meow1.ogg b/sound/mobs/non-humanoids/cat/cat_meow1.ogg similarity index 100% rename from sound/creatures/cat/cat_meow1.ogg rename to sound/mobs/non-humanoids/cat/cat_meow1.ogg diff --git a/sound/creatures/cat/cat_meow2.ogg b/sound/mobs/non-humanoids/cat/cat_meow2.ogg similarity index 100% rename from sound/creatures/cat/cat_meow2.ogg rename to sound/mobs/non-humanoids/cat/cat_meow2.ogg diff --git a/sound/creatures/cat/cat_meow3.ogg b/sound/mobs/non-humanoids/cat/cat_meow3.ogg similarity index 100% rename from sound/creatures/cat/cat_meow3.ogg rename to sound/mobs/non-humanoids/cat/cat_meow3.ogg diff --git a/sound/creatures/cat/cat_purr1.ogg b/sound/mobs/non-humanoids/cat/cat_purr1.ogg similarity index 100% rename from sound/creatures/cat/cat_purr1.ogg rename to sound/mobs/non-humanoids/cat/cat_purr1.ogg diff --git a/sound/creatures/cat/cat_purr2.ogg b/sound/mobs/non-humanoids/cat/cat_purr2.ogg similarity index 100% rename from sound/creatures/cat/cat_purr2.ogg rename to sound/mobs/non-humanoids/cat/cat_purr2.ogg diff --git a/sound/creatures/cat/cat_purr3.ogg b/sound/mobs/non-humanoids/cat/cat_purr3.ogg similarity index 100% rename from sound/creatures/cat/cat_purr3.ogg rename to sound/mobs/non-humanoids/cat/cat_purr3.ogg diff --git a/sound/creatures/cat/cat_purr4.ogg b/sound/mobs/non-humanoids/cat/cat_purr4.ogg similarity index 100% rename from sound/creatures/cat/cat_purr4.ogg rename to sound/mobs/non-humanoids/cat/cat_purr4.ogg diff --git a/sound/creatures/cat/oranges_meow1.ogg b/sound/mobs/non-humanoids/cat/oranges_meow1.ogg similarity index 100% rename from sound/creatures/cat/oranges_meow1.ogg rename to sound/mobs/non-humanoids/cat/oranges_meow1.ogg From 7c3561b09c600ce759b6130a77d1e348dda37f08 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:03:35 +0200 Subject: [PATCH 031/119] Fixes incorrect use of pronoun macros in multiple lives component (#87185) ## About The Pull Request p_Theyve is not suited for this. ## Changelog :cl: spellcheck: Fixed a typo in multiple lives component /:cl: --- code/datums/components/multiple_lives.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/multiple_lives.dm b/code/datums/components/multiple_lives.dm index 13c3282605b6..ce2c4a5053f1 100644 --- a/code/datums/components/multiple_lives.dm +++ b/code/datums/components/multiple_lives.dm @@ -46,7 +46,7 @@ /datum/component/multiple_lives/proc/on_examine(mob/living/source, mob/user, list/examine_list) SIGNAL_HANDLER if(isobserver(user) || source == user) - examine_list += "[source.p_Theyve()] [lives_left] extra lives left." + examine_list += "[source.p_They()] [source.p_have()] [lives_left] extra lives left." /datum/component/multiple_lives/InheritComponent(datum/component/multiple_lives/new_comp , lives_left) src.lives_left += new_comp ? new_comp.lives_left : lives_left From f94561fd563d100e4309077af0ce022b57bacffb Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 15:04:25 +0000 Subject: [PATCH 032/119] Automatic changelog for PR #87185 [ci skip] --- html/changelogs/AutoChangeLog-pr-87185.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87185.yml diff --git a/html/changelogs/AutoChangeLog-pr-87185.yml b/html/changelogs/AutoChangeLog-pr-87185.yml new file mode 100644 index 000000000000..81c0acb5f0e6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87185.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - spellcheck: "Fixed a typo in multiple lives component" \ No newline at end of file From a73a49a56eb5e028f086a5d9ad0ab71db8c33280 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 18:18:47 +0300 Subject: [PATCH 033/119] Offering an item displays a balloon alert to viewers (#87174) Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> --- code/modules/mob/living/carbon/inventory.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 10af8d53c80f..b60c9dedb3ac 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -441,6 +441,7 @@ if(offered_item.on_offered(src)) // see if the item interrupts with its own behavior return + balloon_alert_to_viewers("offers something") visible_message(span_notice("[src] is offering [offered ? "[offered] " : ""][offered_item]."), \ span_notice("You offer [offered ? "[offered] " : ""][offered_item]."), null, 2) From 3f9924c4dcc9514a3da67e337e0efaafc3d1fe35 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 15:19:34 +0000 Subject: [PATCH 034/119] Automatic changelog for PR #87174 [ci skip] --- html/changelogs/AutoChangeLog-pr-87174.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87174.yml diff --git a/html/changelogs/AutoChangeLog-pr-87174.yml b/html/changelogs/AutoChangeLog-pr-87174.yml new file mode 100644 index 000000000000..859787ef775e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87174.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - qol: "offering an item displays a balloon alert" \ No newline at end of file From f0a53b2879c3e038d9410dc8a599d1b086f3eeda Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Sun, 13 Oct 2024 19:06:51 +0200 Subject: [PATCH 035/119] [NO GBP] Prevents ghosts from cutting tethers (#87194) ## About The Pull Request Closes #87192 ## Changelog :cl: fix: Ghosts can no longer cut people's tethers /:cl: --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> --- code/datums/components/tether.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index d5e00ddb3985..1e8313fa53b2 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -142,6 +142,8 @@ INVOKE_ASYNC(src, PROC_REF(process_beam_click), source, location, params, user) /datum/component/tether/proc/process_beam_click(atom/source, atom/location, params, mob/user) + if (!location.can_interact(user)) + return var/list/modifiers = params2list(params) if(LAZYACCESS(modifiers, CTRL_CLICK)) location.balloon_alert(user, "cutting the tether...") From 49d772916c4b1da4b5188fe335323224beab98a7 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:13:19 +0000 Subject: [PATCH 036/119] Automatic changelog for PR #87194 [ci skip] --- html/changelogs/AutoChangeLog-pr-87194.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87194.yml diff --git a/html/changelogs/AutoChangeLog-pr-87194.yml b/html/changelogs/AutoChangeLog-pr-87194.yml new file mode 100644 index 000000000000..66f4fc00b489 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87194.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Ghosts can no longer cut people's tethers" \ No newline at end of file From 66e6cd7d2075a345d6b14d5c9f1ba8c72c78be2d Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Sun, 13 Oct 2024 23:15:46 +0300 Subject: [PATCH 037/119] gas analyzer handling sounds (#87190) ## About The Pull Request https://github.com/user-attachments/assets/2452d573-ad7b-4cef-bc70-ef4aeefcb0fe https://github.com/user-attachments/assets/e5df7d93-c2c8-408a-8437-80e4abee88d9 ## Why It's Good For The Game more handling sounds ## Changelog :cl: grungussuss sound: gas analyzer now has handling sounds /:cl: --- .../items/devices/scanners/gas_analyzer.dm | 2 ++ .../items/handling/gas_analyzer/attribution.txt | 2 ++ .../handling/gas_analyzer/gas_analyzer_drop.ogg | Bin 0 -> 7653 bytes .../gas_analyzer/gas_analyzer_pickup.ogg | Bin 0 -> 8024 bytes 4 files changed, 4 insertions(+) create mode 100644 sound/items/handling/gas_analyzer/attribution.txt create mode 100644 sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg create mode 100644 sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index d5324b4df0d9..9f42643a4398 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -18,6 +18,8 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT * 0.3, /datum/material/glass=SMALL_MATERIAL_AMOUNT * 0.2) grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) interaction_flags_click = NEED_LITERACY|NEED_LIGHT|ALLOW_RESTING + pickup_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg' + drop_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg' /// Boolean whether this has a CD var/cooldown = FALSE /// The time in deciseconds diff --git a/sound/items/handling/gas_analyzer/attribution.txt b/sound/items/handling/gas_analyzer/attribution.txt new file mode 100644 index 000000000000..a2960bacfbb9 --- /dev/null +++ b/sound/items/handling/gas_analyzer/attribution.txt @@ -0,0 +1,2 @@ +gas_analyzer handling sounds made by sadboysuss +license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg b/sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..779a600dee956e81b2f0249cd761d4b6bfd5f0bc GIT binary patch literal 7653 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 literal 0 HcmV?d00001 diff --git a/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg b/sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg new file mode 100644 index 0000000000000000000000000000000000000000..dc3f5988ae8693709d22026c51c7ab1a6cb0b9d4 GIT binary patch literal 8024 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 Kfk6jG;Qs;I6XDzd literal 0 HcmV?d00001 From 784f3ff6aaa39f0989133249490a979f70133732 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 20:16:07 +0000 Subject: [PATCH 038/119] Automatic changelog for PR #87190 [ci skip] --- html/changelogs/AutoChangeLog-pr-87190.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87190.yml diff --git a/html/changelogs/AutoChangeLog-pr-87190.yml b/html/changelogs/AutoChangeLog-pr-87190.yml new file mode 100644 index 000000000000..820b128f4faa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87190.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "gas analyzer now has handling sounds" \ No newline at end of file From 3305fc5316668a7274699699e00713b6259ad0ef Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:17:46 -0300 Subject: [PATCH 039/119] you can use lizards to get lizard organs in the dna infuser (#87204) ## About The Pull Request title, adds a infusion entry for lizard basic mobs. ## Why It's Good For The Game it is a glaring oversight lizards dont give lizard stuff. i mean come on. moths do, cats do, the same reasons apply. ## Changelog :cl: add: you can use lizards to get lizard organs in the dna infuser /:cl: --- .../infuser_tier_zero_entries.dm | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm index 670abc2d87bb..e93cffd51437 100644 --- a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm +++ b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm @@ -69,6 +69,30 @@ infusion_desc = "fluffy" tier = DNA_MUTANT_TIER_ZERO +/datum/infuser_entry/lizard + name = "Lizard" + infuse_mob_name = "lacertilia" + desc = "Turns out infusing most humanoids with lizard DNA creates features remarkably similar to those of lizardpeople. What a strange coincidence." + threshold_desc = DNA_INFUSION_NO_THRESHOLD + qualities = list( + "long tails", + "decorative horns", + "aesthetic snouts", + "not much honestly", + ) + input_obj_or_mob = list( + /mob/living/basic/lizard, + ) + output_organs = list( + /obj/item/organ/external/horns, + /obj/item/organ/external/frills, + /obj/item/organ/external/snout, + /obj/item/organ/external/tail/lizard, + /obj/item/organ/internal/tongue/lizard, + ) + infusion_desc = "scaly" + tier = DNA_MUTANT_TIER_ZERO + /datum/infuser_entry/felinid name = "Cat" infuse_mob_name = "feline" From b93cf47d1f7eeac829f1d8b2fdbcfb3039c07541 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 20:18:23 +0000 Subject: [PATCH 040/119] Automatic changelog for PR #87204 [ci skip] --- html/changelogs/AutoChangeLog-pr-87204.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87204.yml diff --git a/html/changelogs/AutoChangeLog-pr-87204.yml b/html/changelogs/AutoChangeLog-pr-87204.yml new file mode 100644 index 000000000000..a94eb3b7373d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87204.yml @@ -0,0 +1,4 @@ +author: "carlarctg" +delete-after: True +changes: + - rscadd: "you can use lizards to get lizard organs in the dna infuser" \ No newline at end of file From a8813ecd192d87f7e7815fca791f55c8f2911bc4 Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Sun, 13 Oct 2024 19:15:20 -0500 Subject: [PATCH 041/119] Makes the 1643 error more explicit (#87172) I wrote this expecting that there would be more broken versions in the distant future, so we could simply re-use this block for those But I forgot this will most likely be seen by fresh contributors or people who don't even contribute and are just testing things So I'm just making the message as explicit as possible --- code/__byond_version_compat.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 6680e655551f..769f3984cf1a 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -11,7 +11,9 @@ // Unable to compile this version thanks to mutable appearance changes #if (DM_VERSION == 515 && DM_BUILD == 1643) -#error This version of BYOND cannot compile this project. Visit www.byond.com/download/build to download an older version or update (if possible). +#error This specific version of BYOND (515.1643) cannot compile this project. +#error If 515.1643 IS NOT the latest version of BYOND, then you should simply update as normal. +#error But if 515.1643 IS the latest version of BYOND, i.e. you can't update, then you MUST visit www.byond.com/download/build and downgrade to 515.1642. #endif // Keep savefile compatibilty at minimum supported level From bf362b19815663a3ede482ca559c93c5bf98502d Mon Sep 17 00:00:00 2001 From: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Date: Sun, 13 Oct 2024 21:31:45 -0300 Subject: [PATCH 042/119] [NO GBP] Fixes a small typo for adjusting kitsune masks (#87195) ## About The Pull Request I copied bandana's examine text and didn't really think much about it, whoops. ## Why It's Good For The Game Fixes a minor spelling oversight ## Changelog :cl: Hardly3D spellcheck: fixes a small error in text when adjusting kitsune masks /:cl: --- code/modules/clothing/masks/costume.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/masks/costume.dm b/code/modules/clothing/masks/costume.dm index ff980442565a..37a3fc7ccb5e 100644 --- a/code/modules/clothing/masks/costume.dm +++ b/code/modules/clothing/masks/costume.dm @@ -52,7 +52,7 @@ . += "Use in-hand to wear as a mask!" return else - . += "Use in-hand to tie it up to wear as a hat!" + . += "Use in-hand to wear as a hat!" /obj/item/clothing/mask/kitsune/attack_self(mob/user) adjust_visor(user) From 4e39a6a498832a33c61d389ec68af470eaa98324 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 00:32:20 +0000 Subject: [PATCH 043/119] Automatic changelog for PR #87195 [ci skip] --- html/changelogs/AutoChangeLog-pr-87195.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87195.yml diff --git a/html/changelogs/AutoChangeLog-pr-87195.yml b/html/changelogs/AutoChangeLog-pr-87195.yml new file mode 100644 index 000000000000..b4bbda75eda0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87195.yml @@ -0,0 +1,4 @@ +author: "Hardly3D" +delete-after: True +changes: + - spellcheck: "fixes a small error in text when adjusting kitsune masks" \ No newline at end of file From 7fbca5d5e172ea18fbba78fc9f745710f01d41b8 Mon Sep 17 00:00:00 2001 From: Jerry <55355646+Jewelry-x@users.noreply.github.com> Date: Mon, 14 Oct 2024 03:45:38 +0300 Subject: [PATCH 044/119] Improvements to mech sound logic (#87184) ## About The Pull Request This PR makes it so mechs don't play footsteps twice diagonally, and also play the turn sound only when the sprite turns. No more ear blasting when walking diagonally! ## Why It's Good For The Game It enhances the sound design by ensuring mechs no longer play footsteps twice when moving diagonally and that the turn sound only plays when the sprite actually turns. ## Changelog :cl: fix: fixed mech step sound playing twice diagonally fix: fixed turn sound playing every time you move diagonally, now only plays when the sprite turns /:cl: --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/vehicles/mecha/mecha_movement.dm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/code/modules/vehicles/mecha/mecha_movement.dm b/code/modules/vehicles/mecha/mecha_movement.dm index dcd6f47c4fc0..a4b21190a1ec 100644 --- a/code/modules/vehicles/mecha/mecha_movement.dm +++ b/code/modules/vehicles/mecha/mecha_movement.dm @@ -29,6 +29,11 @@ /obj/vehicle/sealed/mecha/proc/play_stepsound() if(mecha_flags & QUIET_STEPS) return + + // if we are on the second step of the diagonal movement, don't play step sound + if(src.moving_diagonally == SECOND_DIAG_STEP) + return + playsound(src, stepsound, 40, TRUE) // Do whatever you do to mobs to these fuckers too @@ -131,9 +136,8 @@ break //if we're not facing the way we're going rotate us + // if we're not strafing or if we are forced to rotate or if we are holding down the key if(dir != direction && (!strafe || forcerotate || keyheld)) - if(dir != direction && !(mecha_flags & QUIET_TURNS) && !step_silent) - playsound(src,turnsound,40,TRUE) setDir(direction) if(keyheld || !pivot_step) //If we pivot step, we don't return here so we don't just come to a stop return TRUE @@ -141,6 +145,11 @@ set_glide_size(DELAY_TO_GLIDE_SIZE(movedelay)) //Otherwise just walk normally . = try_step_multiz(direction) + + //dir and olddir are the current direction of the sprite and the old direction of the sprite respectively + if (dir != olddir && !(mecha_flags & QUIET_TURNS)) + playsound(src, turnsound, 40, TRUE) + if(phasing) use_energy(phasing_energy_drain) if(strafe) From 2df73d5b2a364a529aba5c8e2336ad161c1794b3 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 00:45:59 +0000 Subject: [PATCH 045/119] Automatic changelog for PR #87184 [ci skip] --- html/changelogs/AutoChangeLog-pr-87184.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87184.yml diff --git a/html/changelogs/AutoChangeLog-pr-87184.yml b/html/changelogs/AutoChangeLog-pr-87184.yml new file mode 100644 index 000000000000..a48f9591b217 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87184.yml @@ -0,0 +1,5 @@ +author: "Jewelry-x" +delete-after: True +changes: + - bugfix: "fixed mech step sound playing twice diagonally" + - bugfix: "fixed turn sound playing every time you move diagonally, now only plays when the sprite turns" \ No newline at end of file From a7c2a9fdab60d6575562e0dd452efeb112fdc504 Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Mon, 14 Oct 2024 05:47:43 -0300 Subject: [PATCH 046/119] Adds a flipping skillchip, the Chipped quirk, a chip connector implant, and a quirk to spawn with it. (#87082) Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity. At first, this is harmless, emitting sparks only, but at a certain point, your head starts smoking, your brain begins short-circuiting, and once the chip has lost all integrity your head will explode in a shower of gore, giving you a cranial fissure! Added the Chipped quirk. It allows you to spawn with one skillchip. Of note here is that the only chips you can spawn with are the 'default' skillchips found in the toy vendor, you can NOT spawn in with the fosbury chip or with the musical one. Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. Being EMPed will cause it to drop one random skillchip, and if you try using it while it's malfunctioning you'll take out a bit of your brain instead. It can also be made at the exosuit fabricator after basic research. Renamed the organ slots for brain implants and made the connector implant take the CNS slot. > Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity. At first, this is harmless, emitting sparks only, but at a certain point, your head starts smoking, your brain begins short-circuiting, and once the chip has lost all integrity your head will explode in a shower of gore, giving you a cranial fissure! During the time flipping was bugged to have no cooldown or delay, it was really funny seeing people flip at increasingly higher speeds. Many people miss it, and to be honest, so do I. But everything needs limits or it stops being funny and ends up being overdone. To this end this skillchip lets people relive those days of glory, until they go out in a beautiful explosion. The chip will last a very long while if well taken care of, and there are plenty of warning signs before it gets too risky to use, but we know what players are actually gonna do, and I am looking forward to it. > Added the Chipped quirk. It allows you to spawn with one skillchip. Of note here is that the only chips you can spawn with are the 'default' skillchips found in the toy vendor, you can NOT spawn in with the fosbury chip or with the musical one. Chips can be kind of neat sometimes, and I think always having one as part of your character can make for some fun things as the consistency of it makes it more likely to stick in your mind to do stuff with. > 'but can't you just go to the vendor at the start of every shift?' Sure. But we have loadouts. We have tagger, musician, and many other things that are 'roundstart bloat', and while that by itself is not an excuse, it's part of the design of character setup: Minimizing the time spent running around the station for things your character is supposed to have for their personality/roleplay/gimmick. They're paying the cost of quirk points for it, anyways. > Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. Being EMPed will cause it to drop one random skillchip, and if you try using it while it's malfunctioning you'll take out a bit of your brain instead. It can also be made at the exosuit fabricator after basic research. I like the idea of having a gross usb drive on the back of your brain that you shove chips into and out of, especially if it drops pieces of your brain when malfunctioning. It also adds a little bit of extra relevance to skillchips now that you don't need to spend 15 (!!!) seconds inside a skillstation to add one. The cost is, as stated, quite literally losing your brain on EMP's and the moderately expensive sum of 4 points. > Renamed the organ slots for brain implants and made the connector implant take the CNS slot. It annoys me that there were organ slots for 'anti drop implant'. Now they're just slots for anything meant to connect to the cerebellum/central nervous system, making it less brute forcey and also adding the start of some fun exclusivity between brain implants. :cl: add: Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity and cause malfunctions. add: Added the Chipped quirk. It allows you to spawn with one base skillchip. (not the one above) add: Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time. code: Renamed the organ slots for brain implants and made the connector implant take the CNS slot. --------- Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/DNA.dm | 8 +- code/__DEFINES/combat.dm | 2 +- .../signals/signals_mob/signals_mob_main.dm | 4 + code/_globalvars/lists/quirks.dm | 16 ++ code/datums/emotes.dm | 9 +- .../quirks/positive_quirks/chip_connector.dm | 28 +++ code/datums/quirks/positive_quirks/chipped.dm | 57 ++++++ code/datums/station_traits/positive_traits.dm | 2 +- .../debuffs/temperature_over_time.dm | 88 +++++++++ .../objects/effects/spawners/gibspawner.dm | 2 - code/modules/client/preferences/chipped.dm | 20 ++ .../generic_skillchips/acrobatics.dm | 171 ++++++++++++++++++ code/modules/religion/rites.dm | 3 +- .../research/designs/medical_designs.dm | 17 ++ .../research/techweb/nodes/cyborg_nodes.dm | 1 + .../internal/cyberimp/augments_internal.dm | 105 ++++++++++- code/modules/vending/games.dm | 1 + icons/obj/medical/organs/organs.dmi | Bin 40412 -> 42255 bytes .../modules/implants/code/augments_head.dm | 4 +- .../implants/code/augments_internal.dm | 2 +- tgstation.dme | 5 + .../character_preferences/chipped.tsx | 6 + 22 files changed, 534 insertions(+), 17 deletions(-) create mode 100644 code/datums/quirks/positive_quirks/chip_connector.dm create mode 100644 code/datums/quirks/positive_quirks/chipped.dm create mode 100644 code/datums/status_effects/debuffs/temperature_over_time.dm create mode 100644 code/modules/client/preferences/chipped.dm create mode 100644 code/modules/library/skill_learning/generic_skillchips/acrobatics.dm create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 99a47f7c4e57..56b7f8698ffd 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -92,8 +92,8 @@ #define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator" #define ORGAN_SLOT_APPENDIX "appendix" #define ORGAN_SLOT_BRAIN "brain" -#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop" -#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun" +#define ORGAN_SLOT_BRAIN_CEREBELLUM "brain_antidrop" +#define ORGAN_SLOT_BRAIN_CNS "brain_antistun" #define ORGAN_SLOT_BREATHING_TUBE "breathing_tube" #define ORGAN_SLOT_EARS "ears" #define ORGAN_SLOT_EYES "eye_sight" @@ -176,8 +176,8 @@ GLOBAL_LIST_INIT(organ_process_order, list( ORGAN_SLOT_VOICE, ORGAN_SLOT_ADAMANTINE_RESONATOR, ORGAN_SLOT_HEART_AID, - ORGAN_SLOT_BRAIN_ANTIDROP, - ORGAN_SLOT_BRAIN_ANTISTUN, + ORGAN_SLOT_BRAIN_CEREBELLUM, + ORGAN_SLOT_BRAIN_CNS, ORGAN_SLOT_PARASITE_EGG, ORGAN_SLOT_MONSTER_CORE, ORGAN_SLOT_XENO_PLASMAVESSEL, diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 439d803fb942..fbdb630174fe 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -239,8 +239,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( /// ex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor #define EXPLODE_GIB_THRESHOLD 50 -#define EMP_HEAVY 1 #define EMP_LIGHT 2 +#define EMP_HEAVY 1 #define GRENADE_CLUMSY_FUMBLE 1 #define GRENADE_NONCLUMSY_FUMBLE 2 diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm index 4a558c5fa7e0..51240110062e 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm @@ -150,6 +150,10 @@ ///from /mob/say_dead(): (mob/speaker, message) #define COMSIG_MOB_DEADSAY "mob_deadsay" #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) +///from /mob/living/check_cooldown(): () +#define COMSIG_MOB_EMOTE_COOLDOWN_CHECK "mob_emote_cd" + /// make a wild guess + #define COMPONENT_EMOTE_COOLDOWN_BYPASS (1<<0) ///from /mob/living/emote(): () #define COMSIG_MOB_EMOTE "mob_emote" ///from base of mob/swap_hand(): (obj/item/currently_held_item) diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm index 83c15f6ea9ce..3be9266a87cc 100644 --- a/code/_globalvars/lists/quirks.dm +++ b/code/_globalvars/lists/quirks.dm @@ -100,3 +100,19 @@ GLOBAL_LIST_INIT(paraplegic_choice, list( "Default" = FALSE, "Amputee" = TRUE, )) + +///chipped Quirk +GLOBAL_LIST_INIT(quirk_chipped_choice, list( + "Basketsoft 3000" = /obj/item/skillchip/basketweaving, + "WINE" = /obj/item/skillchip/wine_taster, + "Hedge 3" = /obj/item/skillchip/bonsai, + "Skillchip adapter" = /obj/item/skillchip/useless_adapter, + "N16H7M4R3" = /obj/item/skillchip/light_remover, + "3NTR41LS" = /obj/item/skillchip/entrails_reader, + "GENUINE ID Appraisal Now!" = /obj/item/skillchip/appraiser, + "Le S48R4G3" = /obj/item/skillchip/sabrage, + "Integrated Intuitive Thinking and Judging" = /obj/item/skillchip/intj, + "F0RC3 4DD1CT10N" = /obj/item/skillchip/drunken_brawler, + "\"Space Station 13: The Musical\"" = /obj/item/skillchip/musical, + "Mast-Angl-Er skillchip" = /obj/item/skillchip/master_angler, +)) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 011ca29d8ccb..2832cef8ffb2 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -251,11 +251,14 @@ * Returns FALSE if the cooldown is not over, TRUE if the cooldown is over. */ /datum/emote/proc/check_cooldown(mob/user, intentional) + + if(SEND_SIGNAL(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, src.key, intentional) & COMPONENT_EMOTE_COOLDOWN_BYPASS) + intentional = FALSE + if(!intentional) return TRUE - //NOVA EDIT CHANGE BEGIN - EMOTES - GLOBAL COOLDOWN - //if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) - NOVA EDIT - ORIGINAL - if(user.nextsoundemote > world.time) + + if(user.nextsoundemote > world.time) // NOVA EDIT CHANGE - ORIGINAL: if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) var/datum/emote/default_emote = /datum/emote if(cooldown > initial(default_emote.cooldown)) // only worry about longer-than-normal emotes to_chat(user, span_danger("You must wait another [DisplayTimeText(user.nextsoundemote - world.time)] before using that emote.")) diff --git a/code/datums/quirks/positive_quirks/chip_connector.dm b/code/datums/quirks/positive_quirks/chip_connector.dm new file mode 100644 index 000000000000..c12809bbfd2e --- /dev/null +++ b/code/datums/quirks/positive_quirks/chip_connector.dm @@ -0,0 +1,28 @@ +/datum/quirk/chip_connector + name = "Chip Connector" + desc = "You had a device installed that lets you manually add and remove skillchips! Just try not to get near any electromagnetic pulses." + icon = FA_ICON_PLUG + value = 4 + gain_text = span_notice("You feel CONNECTED.") + lose_text = span_danger("You don't feel so CONNECTED anymore.") + medical_record_text = "Patient has a cybernetic implant on their back of their head that lets them install and remove skillchips at will. Gross." + mail_goodies = list() + var/obj/item/organ/internal/cyberimp/brain/connector/connector + +/datum/quirk/chip_connector/New() + . = ..() + mail_goodies = assoc_to_keys(GLOB.quirk_chipped_choice) + /datum/quirk/chipped::mail_goodies + +/datum/quirk/chip_connector/add_unique(client/client_source) + . = ..() + var/mob/living/carbon/carbon_holder = quirk_holder + if(!iscarbon(quirk_holder)) + return + connector = new() + connector.Insert(carbon_holder, special = TRUE) + +/datum/quirk/chip_connector/post_add() + to_chat(quirk_holder, span_boldannounce(desc)) // efficiency is clever laziness + +/datum/quirk/chip_connector/remove() + qdel(connector) diff --git a/code/datums/quirks/positive_quirks/chipped.dm b/code/datums/quirks/positive_quirks/chipped.dm new file mode 100644 index 000000000000..30c226c13003 --- /dev/null +++ b/code/datums/quirks/positive_quirks/chipped.dm @@ -0,0 +1,57 @@ +/datum/quirk/chipped + name = "Chipped" + desc = "You got caught up in the skillchip craze a few years back, and had one of the commercially available chips implanted into yourself." + icon = FA_ICON_MICROCHIP + value = 2 + gain_text = span_notice("The chip in your head itches a bit.") + lose_text = span_danger("You don't feel so chipped anymore..") + medical_record_text = "Patient explained how they got caught up in 'the skillchip chase' recently, and now the chip in they head itches every so often. Dumbass." + mail_goodies = list( + /obj/item/skillchip/matrix_taunt, + /obj/item/skillchip/big_pointer, + /obj/item/skillchip/acrobatics, + /obj/item/storage/pill_bottle/mannitol/braintumor, + ) + /// Variable that holds the chip, used on removal. + var/obj/item/skillchip/installed_chip + var/datum/callback/itchy_timer + +/datum/quirk_constant_data/chipped + associated_typepath = /datum/quirk/chipped + customization_options = list(/datum/preference/choiced/chipped) + +/datum/quirk/chipped/add_to_holder(mob/living/new_holder, quirk_transfer, client/client_source) + var/obj/item/skillchip/chip_pref = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)] + + if(!chip_pref) + return ..() + + gain_text = span_notice("The [chip_pref] in your head itches a bit.") + lose_text = span_notice("Your head stops itching so much.") + return ..() + +/datum/quirk/chipped/add_unique(client/client_source) + + var/preferred_chip = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)] + if(isnull(preferred_chip)) //Client is gone or they chose a random chip + preferred_chip = GLOB.quirk_chipped_choice[pick(GLOB.quirk_chipped_choice)] + + var/mob/living/carbon/quirk_holder_carbon = quirk_holder + if(iscarbon(quirk_holder)) + installed_chip = new preferred_chip() + quirk_holder_carbon.implant_skillchip(installed_chip, force = TRUE) + installed_chip.try_activate_skillchip(silent = FALSE, force = TRUE) + + var/obj/item/organ/internal/brain/itchy_brain = quirk_holder.get_organ_by_type(ORGAN_SLOT_BRAIN) + itchy_timer = addtimer(CALLBACK(src, PROC_REF(cause_itchy), itchy_brain), rand(5 SECONDS, 10 MINUTES)) // they get The Itch from a poor quality install every so often + +/datum/quirk/chipped/remove() + qdel(installed_chip) + deltimer(itchy_timer) + . = ..() + +/datum/quirk/chipped/proc/cause_itchy(obj/item/organ/internal/brain/itchy_brain) + + itchy_brain.apply_organ_damage(rand(1, 5), maximum = itchy_brain.maxHealth * 0.3) + to_chat(itchy_brain.owner, span_warning("Your [itchy_brain] itches.")) + itchy_timer = addtimer(CALLBACK(itchy_brain, PROC_REF(cause_itchy)), rand(5 SECONDS, 10 MINUTES)) // it will never end diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index a963803dd766..8e3c7e55616d 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -272,7 +272,7 @@ /datum/job/clown = /obj/item/organ/internal/cyberimp/brain/anti_stun, //HONK! /datum/job/cook = /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /datum/job/coroner = /obj/item/organ/internal/tongue/bone, //hes got a bone to pick with you - /datum/job/curator = /obj/item/organ/internal/eyes/robotic/glow, + /datum/job/curator = /obj/item/organ/internal/cyberimp/brain/connector, /datum/job/detective = /obj/item/organ/internal/lungs/cybernetic/tier3, /datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/surgery, /datum/job/geneticist = /obj/item/organ/internal/fly, //we don't care about implants, we have cancer. diff --git a/code/datums/status_effects/debuffs/temperature_over_time.dm b/code/datums/status_effects/debuffs/temperature_over_time.dm new file mode 100644 index 000000000000..cb1a73cc2ae5 --- /dev/null +++ b/code/datums/status_effects/debuffs/temperature_over_time.dm @@ -0,0 +1,88 @@ +/** + * Affects temperature over time. + * I don't know how this wasn't a thing already. + + * Incidentally: Thermal insulation is actually really bad for this, since it traps the temperature inside. + * If you're going to use this in a situation where it'd make sense for insulation to hinder its effects, + * you should to check for it manually. + */ + +/datum/status_effect/temperature_over_time + id = "temp_ot" + alert_type = null // no alert. you do the sprite + remove_on_fullheal = TRUE + on_remove_on_mob_delete = TRUE + tick_interval = 1 SECONDS + + duration = 60 SECONDS + + /// How much to change temperature per second. + var/temperature_value = 10 + /// How much to remove from above variable per second. + var/temperature_decay = 1 + /// Cap of temperature, won't apply the effect above this. + var/capped_temperature_hot = BODYTEMP_HEAT_WARNING_2 + /// Cap of temperature, won't apply the effect below this. + var/capped_temperature_cold = BODYTEMP_COLD_WARNING_2 + /// Effect removed outright at this temperature or above. + var/removal_temperature_hot = BODYTEMP_HEAT_WARNING_3 + /// Effect removed outright at this temperature or below. + var/removal_temperature_cold = BODYTEMP_COLD_WARNING_3 + +/datum/status_effect/temperature_over_time/on_creation(mob/living/new_owner, duration = 10 SECONDS) + src.duration = duration + return ..() + +/datum/status_effect/temperature_over_time/on_apply() + . = ..() + if((HAS_TRAIT(owner, TRAIT_RESISTHEAT) && temperature_value > 1)) + qdel(src) // git out + else if((HAS_TRAIT(owner, TRAIT_RESISTCOLD) && temperature_value < 1)) + qdel(src) // git out + +/datum/status_effect/temperature_over_time/on_remove() + return ..() + +/datum/status_effect/temperature_over_time/get_examine_text() + + if(temperature_value > 0) + return "[owner.p_They()] [owner.p_are()] sweating bullets!" + + return "[owner.p_They()] [owner.p_are()] shivering!" + +/datum/status_effect/temperature_over_time/tick(seconds_between_ticks) + if((TRAIT_RESISTHEAT && temperature_value > 1) || (TRAIT_RESISTCOLD && temperature_value < 1)) + qdel(src) // git out + return + temperaturetion(seconds_between_ticks) + +/datum/status_effect/temperature_over_time/proc/temperaturetion(seconds_per_tick) + + // I feel like there should be an easier way to do this but I am a fool + if(capped_temperature_hot && owner.bodytemperature > capped_temperature_hot) + return + if(capped_temperature_cold && owner.bodytemperature < capped_temperature_cold) + return + + owner.adjust_bodytemperature(temperature_value * seconds_per_tick) // note that this has no softcap reduction, unlike fire + temperature_value += temperature_decay + if(temperature_value == 0) + qdel(src) + + if(removal_temperature_hot && owner.bodytemperature > removal_temperature_hot) + qdel(src) + return + if(removal_temperature_cold && owner.bodytemperature < removal_temperature_cold) + qdel(src) + return + +/datum/status_effect/temperature_over_time/chip_overheat + id = "temp_ot_chip" + temperature_value = 15 + temperature_decay = -0.5 + duration = 15 SECONDS + capped_temperature_hot = BODYTEMP_HEAT_WARNING_3 + removal_temperature_cold = BODYTEMP_COLD_WARNING_1 // internal cooling... + + removal_temperature_hot = null + capped_temperature_cold = null diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index d05d5f039256..92343d91d219 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -71,8 +71,6 @@ /obj/effect/gibspawner/generic/animal gib_mob_type = /mob/living/basic/pet - - /obj/effect/gibspawner/human gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core) gibamounts = list(1, 1, 1, 1, 1, 1, 1) diff --git a/code/modules/client/preferences/chipped.dm b/code/modules/client/preferences/chipped.dm new file mode 100644 index 000000000000..2ce73dbbb0d8 --- /dev/null +++ b/code/modules/client/preferences/chipped.dm @@ -0,0 +1,20 @@ +/datum/preference/choiced/chipped + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "chipped" + savefile_identifier = PREFERENCE_CHARACTER + +/datum/preference/choiced/chipped/create_default_value() + return "Random" + +/datum/preference/choiced/chipped/init_possible_values() + return list("Random") + assoc_to_keys(GLOB.quirk_chipped_choice) + +/datum/preference/choiced/chipped/is_accessible(datum/preferences/preferences) + . = ..() + if (!.) + return FALSE + + return /datum/quirk/chipped::name in preferences.all_quirks + +/datum/preference/choiced/chipped/apply_to_human(mob/living/carbon/human/target, value) + return diff --git a/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm b/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm new file mode 100644 index 000000000000..75705aca97a4 --- /dev/null +++ b/code/modules/library/skill_learning/generic_skillchips/acrobatics.dm @@ -0,0 +1,171 @@ +/obj/item/skillchip/acrobatics + name = "old F058UR7 skillchip" + desc = "A formerly cutting-edge skillchip that granted the user an advanced, Olympian-level degree of kinesthesics for flipping, spinning, and absolutely nothing else. \ + It was pulled off the markets shortly after release due to users damaging the chip's integrity from excessive acrobatics, causing deadly malfunctions. It really puts the 'flop' in 'Fosbury Flop'!" + skill_name = "Spinesthetics" + skill_description = "Allows you to flip and spin at an illegal and dangerous rate." + skill_icon = FA_ICON_WHEELCHAIR_ALT + activate_message = span_notice("You suddenly have an extremely advanced and complex sense of how to spin and flip with grace.") + deactivate_message = span_notice("Your divine grasp of Spinesthesics disappears entirely.") + custom_premium_price = PAYCHECK_CREW * 4 + /// set integrity to 1 when mapping for !!FUN!! + max_integrity = 100 + /// list of emotes whose cd is overridden by this skillchip. can be edited in mapping or ingame + var/list/affected_emotes = list("spin", "flip") + var/datum/effect_system/spark_spread/sparks + // you can use this without lowering integrity! let's be honest. nobody's doing that + var/allowed_usage = 3 + var/reload_charge = 10 SECONDS + // current particle effect used for smoking brain + var/obj/effect/abstract/particle_holder/particle_effect + +/obj/item/skillchip/acrobatics/on_activate(mob/living/carbon/user, silent = FALSE) + . = ..() + RegisterSignal(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, PROC_REF(whowee)) + +/obj/item/skillchip/acrobatics/on_deactivate(mob/living/carbon/user, silent) + . = ..() + UnregisterSignal(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK) + +/obj/item/skillchip/acrobatics/Destroy(force) + QDEL_NULL(sparks) + QDEL_NULL(particle_effect) + return ..() + +/obj/item/skillchip/acrobatics/proc/whowee(mob/living/carbon/bozo, emote_key, emote_intentional) + SIGNAL_HANDLER + + if(!(emote_key in affected_emotes)) + return + + if(allowed_usage) + allowed_usage-- + addtimer(CALLBACK(src, PROC_REF(charge)), reload_charge) + else + take_damage(1, sound_effect = FALSE) + + if(!sparks) + sparks = new(src) + + // minimum roll is by default capped at 50, with the min value lowering as integrity is reduced. + var/mintegrity = clamp(50 - (100 - get_integrity()), 1, 100) + switch(rand(mintegrity, get_integrity())) // 1 to 100 but gets worse every time + // CRIT FAIL + if(1) + bozo.visible_message(span_userdanger("[bozo]'s head suddenly explodes outwards!")) + + explosion(bozo, light_impact_range = 2, adminlog = TRUE, explosion_cause = src) + // WITNESS THE GORE + for(var/mob/living/splashed in view(2, bozo)) + if(bozo.has_status_effect(/datum/status_effect/grouped/blindness)) + to_chat(splashed, span_userdanger("You're splashed with something")) + else + to_chat(splashed, span_userdanger("You are blinded by a shower of blood!")) + splashed.Stun(1 SECONDS) + splashed.Knockdown(2 SECONDS) + splashed.set_eye_blur_if_lower(15 SECONDS) + splashed.adjust_confusion(4 SECONDS) + + // GORE + var/obj/item/bodypart/bozopart = bozo.get_bodypart(BODY_ZONE_HEAD) + if(bozopart) + var/datum/wound/cranial_fissure/crit_wound = new() + crit_wound.apply_wound(bozopart) + /* + var/list/droppage_candidates = bozo.get_organs_for_zone(BODY_ZONE_HEAD, include_children = TRUE) + if(droppage_candidates) + var/obj/thing_to_drop = pick(droppage_candidates) + thing_to_drop.forceMove(bozo.drop_location()) + */ //WHY DOESNTY IT OWRK + + // does not necessarily kill you directly. instead it causes cranial fissure + something to drop from your head. could be eyes, tongue, ears, brain, even implants + new /obj/effect/gibspawner/generic(get_turf(bozo), bozo) + + sparks.set_up(15, cardinals_only = FALSE, location = get_turf(src)) + sparks.start() + + qdel(src) + // last chance to stop + if(7 to 9) + bozo.visible_message( + span_danger("[bozo] seems to short circuit!"), + span_userdanger("Your brain short circuits!"), + ) + // if they're susceptible to electrocution, confuse them + if(bozo.electrocute_act(15, bozo, 1, SHOCK_NOGLOVES|SHOCK_NOSTUN)) + bozo.adjust_confusion(15 SECONDS) + bozo.set_eye_blur_if_lower(10 SECONDS) + // but the rest of the effects will happen either way + bozo.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20 - get_integrity()) + + sparks.set_up(5, cardinals_only = FALSE, location = get_turf(src)) + sparks.start() + + // brain Smoking. you should probably stop now + if(13 to 15) + // if already hot, light 'em up + var/particle_path = /particles/smoke/steam/mild + if(bozo.has_status_effect(/datum/status_effect/temperature_over_time/chip_overheat)) + bozo.adjust_fire_stacks(11 - get_integrity()) + bozo.ignite_mob() + bozo.visible_message( + span_danger("[bozo]'s head lights up!"), + span_userdanger("Your head hurts so much, it feels like it's on fire!"), + ) + ASYNC + bozo.emote("scream") + if(particle_effect?.type == particle_path) + return + particle_path = /particles/smoke/steam/bad + else + bozo.visible_message( + span_danger("[bozo]'s head starts smoking!"), + span_userdanger("Your brain feels like it's on fire!"), + ) + + // increase smokiness if already smoking + if(particle_effect?.type == /particles/smoke/steam/mild) + particle_path = /particles/smoke/steam + else + particle_path = /particles/smoke/steam/mild + + bozo.adjust_confusion(4 SECONDS) + bozo.set_eye_blur_if_lower(3 SECONDS) + + particle_effect = new(bozo, particle_path) + // roughly head position. + // dont know how to make this not hardcoded + particle_effect.set_particle_position(-2, 12, 0) + bozo.apply_status_effect(/datum/status_effect/temperature_over_time/chip_overheat, 15 SECONDS) + QDEL_IN(particle_effect, 15 SECONDS) + + sparks.set_up(10, cardinals_only = FALSE, location = get_turf(src)) + sparks.start() + + // hey, something isn't right... + if(16 to 50) + bozo.visible_message( + span_warning("[bozo]'s head sparks."), + ) + + sparks.set_up(rand(1,2), cardinals_only = TRUE, location = get_turf(src)) + sparks.start() + + return COMPONENT_EMOTE_COOLDOWN_BYPASS + +/obj/item/skillchip/acrobatics/proc/charge() + allowed_usage++ + +/obj/item/skillchip/acrobatics/kiss + name = "prototype N. 807 - K1SS skillchip" + desc = "An idle experiment when developing skillchips led to this catastrophe. Everyone involved swore to keep it a secret until death, but it looks like someone has let loose this mistake into the world." + skill_name = "ERROERERROROROEROEORROER" + skill_description = "NULL DESCRIPTION NOT FOUND" + skill_icon = FA_ICON_KISS_BEAM + activate_message = span_userdanger("This was a mistake.") + deactivate_message = span_userdanger("The mistake is over.") + custom_premium_price = PAYCHECK_CREW * 500 + max_integrity = 25 + affected_emotes = list("kiss") + allowed_usage = 1 + reload_charge = 30 SECONDS diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm index d7d0fa818441..b54c4e09b295 100644 --- a/code/modules/religion/rites.dm +++ b/code/modules/religion/rites.dm @@ -150,7 +150,8 @@ ) = 9, // Brain / Head list( - /obj/item/organ/internal/cyberimp/brain/anti_drop = 100, + /obj/item/organ/internal/cyberimp/brain/anti_drop = 50, + /obj/item/organ/internal/cyberimp/brain/connector = 50, /obj/item/organ/internal/cyberimp/brain/anti_stun = 10, ) = 10, // Misc diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 5daf93611907..c34411fff61c 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -592,6 +592,23 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL +/datum/design/cyberimp_connector + name = "CNS Skillchip Connector Implant" + desc = "This cybernetic adds a port to the back of your head, where you can remove or add skillchips at will." + id = "ci-connector" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + construction_time = 6 SECONDS + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT*6, + /datum/material/glass = SMALL_MATERIAL_AMOUNT*6, + /datum/material/titanium = SMALL_MATERIAL_AMOUNT*3, + ) + build_path = /obj/item/organ/internal/cyberimp/brain/connector + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + /datum/design/cyberimp_nutriment name = "Nutriment Pump Implant" desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are starving." diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm index eeeed268be55..580b5380bb1a 100644 --- a/code/modules/research/techweb/nodes/cyborg_nodes.dm +++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm @@ -162,6 +162,7 @@ "ci-nutriment", "ci-thrusters", "ci-herculean", + "ci-connector", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL) diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm index f71e29631b38..e9f3a88f481c 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm @@ -40,7 +40,7 @@ icon_state = "brain_implant_antidrop" var/active = FALSE var/list/stored_items = list() - slot = ORGAN_SLOT_BRAIN_ANTIDROP + slot = ORGAN_SLOT_BRAIN_CEREBELLUM actions_types = list(/datum/action/item_action/organ_action/toggle) /obj/item/organ/internal/cyberimp/brain/anti_drop/ui_action_click() @@ -100,7 +100,7 @@ name = "CNS rebooter implant" desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." icon_state = "brain_implant_rebooter" - slot = ORGAN_SLOT_BRAIN_ANTISTUN + slot = ORGAN_SLOT_BRAIN_CNS var/static/list/signalCache = list( COMSIG_LIVING_STATUS_STUN, @@ -179,6 +179,107 @@ organ_flags &= ~ORGAN_FAILING implant_ready() +/obj/item/organ/internal/cyberimp/brain/connector + name = "CNS skillchip connector implant" + desc = "This cybernetic adds a port to the back of your head, where you can remove or add skillchips at will." + icon_state = "brain_implant_connector" + slot = ORGAN_SLOT_BRAIN_CNS + actions_types = list(/datum/action/item_action/organ_action/use) + +/obj/item/organ/internal/cyberimp/brain/connector/ui_action_click() + + to_chat(owner, span_warning("You start fiddling around with [src]...")) + playsound(owner, 'sound/items/taperecorder/tape_flip.ogg', 20, vary = TRUE) // asmr + + if(!do_after(owner, 1.5 SECONDS, owner)) // othwerwise it doesnt appear + to_chat(owner, span_warning("You were interrupted!")) + return + + if(organ_flags & ORGAN_FAILING) + var/holy_shit_my_brain = remove_brain() + if(holy_shit_my_brain) + to_chat(owner, span_warning("You take [holy_shit_my_brain] out of [src]. You stare at it for a moment in confusion.")) + return + + var/obj/item/skillchip/skillchip = owner.get_active_held_item() + if(skillchip) + if(istype(skillchip, /obj/item/skillchip)) + insert_skillchip(skillchip) + else + to_chat(owner, span_warning("You try to insert [owner.get_active_held_item()] into [src], but it won't fit!")) // make it kill you if you shove a crayon inside or something + else // no inhand item, assume removal + var/obj/item/organ/internal/brain/chippy_brain = owner.get_organ_by_type(/obj/item/organ/internal/brain) + if(!chippy_brain) + CRASH("we using a brain implant wit no brain") + remove_skillchip(chippy_brain) + +/obj/item/organ/internal/cyberimp/brain/connector/proc/insert_skillchip(obj/item/skillchip/skillchip) + var/fail_string = owner.implant_skillchip(skillchip, force = FALSE) + if(fail_string) + to_chat(owner, span_warning(fail_string)) + playsound(owner, 'sound/machines/buzz/buzz-sigh.ogg', 10, vary = TRUE) + return + + var/refail_string = skillchip.try_activate_skillchip(silent = FALSE, force = FALSE) + if(refail_string) + to_chat(owner, span_warning(fail_string)) + playsound(owner, 'sound/machines/buzz/buzz-two.ogg', 10, vary = TRUE) + return + + // success! + playsound(owner, 'sound/machines/chime.ogg', 10, vary = TRUE) + +/obj/item/organ/internal/cyberimp/brain/connector/proc/remove_skillchip(obj/item/organ/internal/brain/chippy_brain) + var/obj/item/skillchip/skillchip = show_radial_menu(owner, owner, chippy_brain.skillchips) + if(skillchip) + owner.remove_skillchip(skillchip, silent = FALSE) + skillchip.forceMove(owner.drop_location()) + owner.put_in_hands(skillchip, del_on_fail = FALSE) + playsound(owner, 'sound/machines/click.ogg', 10, vary = TRUE) + to_chat(owner, span_warning("You take [skillchip] out of [src].")) + return + + to_chat(owner, span_warning("Your brain is empty!")) // heh + +/obj/item/organ/internal/cyberimp/brain/connector/emp_act(severity) + . = ..() + if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF) + return + organ_flags |= ORGAN_FAILING + var/loops = 1 + if(severity != EMP_LIGHT) + loops = 2 + for(var/i in 1 to loops) + // you either lose a chip or a bit of your brain + owner.visible_message(span_warning("Something falls to the ground from behind [owner]'s head."),\ + span_boldwarning("You feel something fall off from behind your head.")) + var/obj/item/organ/internal/brain/chippy_brain = owner.get_organ_by_type(ORGAN_SLOT_BRAIN) + var/obj/item/skillchip/skillchip = chippy_brain?.skillchips[1] + if(skillchip) + owner.remove_skillchip(skillchip, silent = TRUE) + skillchip.forceMove(owner.drop_location()) + playsound(owner, 'sound/machines/terminal/terminal_eject.ogg', 25, TRUE) + else + remove_brain() + addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity) + +/obj/item/organ/internal/cyberimp/brain/connector/proc/remove_brain(obj/item/organ/internal/brain/chippy_brain, severity = 1) + playsound(owner, 'sound/effects/meatslap.ogg', 25, TRUE) + if(!chippy_brain) + return + chippy_brain.apply_organ_damage(20 * severity) + chippy_brain.maxHealth -= 15 * severity // a bit of your brain fell off. again. + if(chippy_brain.damage >= chippy_brain.maxHealth) + chippy_brain.forceMove(owner.drop_location()) + owner.visible_message(span_userdanger("[owner]'s brain falls off the back of [owner.p_their()] head!!!"), span_boldwarning("You feel like you're missing something.")) + return chippy_brain + + new /obj/effect/decal/cleanable/blood/gibs/up(get_turf(owner)) + return FALSE + +/obj/item/organ/internal/cyberimp/brain/connector/proc/reboot() + organ_flags &= ~ORGAN_FAILING + //[[[[MOUTH]]]] /obj/item/organ/internal/cyberimp/mouth zone = BODY_ZONE_PRECISE_MOUTH diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 4989b1749824..ce51c196746d 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -97,6 +97,7 @@ /obj/item/clothing/shoes/wheelys/skishoes = 4, /obj/item/instrument/musicalmoth = 1, /obj/item/gun/ballistic/revolver/russian = 1, //the most dangerous game + /obj/item/skillchip/acrobatics = 1, ) premium = list( /obj/item/disk/holodisk = 5, diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index a9366894d7bf39fa204a699a80faa3b6034ed3d9..06ed0e7058d1dbd5fb5473ae5dbd1207394ca272 100644 GIT binary patch literal 42255 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

+UQil;RM;ryqn!NDG$be$gcM#X2~s zZG)&Nx=J|30UNOOJbMEnSD9ft`urt_Es#`20ZjGNv=>QA9g%;+U

;I$5r&p1_K zndr&dJxrM%$(J6r=K5z2!Y7hqGpxjW&Er<@!SSx-Qg%FSPKC*+?SLbwuJ6p=^(r!C z*^ggm^<9>Uy>^IoakHcYf4$o#?{l@WB_acHQeoKQt7jP+Oh%_)3YjbP6Mh<>+9VF{isP}?5*3*gbl(zm8&&4V=AgDEDXydF;GR}Im;u-&g3(PwQ z!E;!M_%r6GFow7|8hY@bg@u`RaLLuu|~+*cyIwKyhc1N|Jp=jN3$KPPRR1 zS(pM>^@R-gx)B6z;u0bzsRaZ*>_?66^XerFmqhbtZ=0|eB#jsZ*b)U0d_6I>>@gQc z%v}R#(yPkkUhOu}RY#81r~^uD8CON*0N%?$WpeBxxP%n*eHn7>v`7Ef4#oeq4EP{# zM3cZ4-0E9zBVnZS3j2RsNxYLGH;N%=-8n5&>_~Kf3dfgmg~+!wnh5A8w7x&td}`x0 zx%z^QT`KYZZ^d#jzp;XxCRfrsH`?--f_&d zuz~z*Qc=b*;vnaqKeuF8guUFsL`%DR$|-7Qe5Ui@_I9oSLU3|f?+d70Q2(_Y20;hB zlIh-);^FBj7(c9%ToC8R86wJ1xCaH^y=k=e(rF-ZduQ3UR9 za?bny&}+RMh#~O6&tj9v1b=)!FBlYOfE2styr`R-x_b0OxYT(2Uywnv!$Gogi~m}Q zi#sKxtEa~ttiT|c$Ev5SOau%?nVXy6=g_89cJfapi8Q;aGBG6$yw7EJ`TY(3_vBz4 zA}6-uYM3ZDnrU8K)7xoW!Dz35`u9zsgZlo>k<>^t<-tR&x%w@ejr{^~?%RnqgqjkBtEnG7K>jVi(dr%d$+8FJX|9uy(kkZ zxZzs^mfD`+KpN6Cx8E#ALynSvpUcLaW6(qVy*3i?^q5+ZJlw+dN-740)JS z<^Kg#wl*;IvY0oaJF(iXJ+`shY_#5LLVQc$U1L&Uc?}KHVH(%AnH6WU9{cU3Gh+Wm zx(;+T$Y3sP^C$t@gES6|<1gOOfoZ5aPq)==KBv@{41WxTH@Colhba8dDoklQ!fda{;$-t=0Y?T*!BL_TbFa14rZ(l5i(?Vmo&Q3gc2=%Yh_N)Mkij+Zs zKci9}o!sqVKc1K?Sv0U+;| ze9qm2V?Qp1EfoU?0pYRJcr(XB2Zy~^uZ?@eE zp9Tfq8nBCmy5Dk`7=Q>_qG?-K-V9Q+E~&;E zZJvb#3(CsAZ~u+VCpPpC&!nEe9{stBz>-`GzJx|{HYSApo124xr(3z+dx$(>Q|wM4 zlhYxb^D%mF=oSHy2J7%mX!zj#A0R2qirSXz@_-4e4Wi6@iT#~(g< zWlX9@urFfS^AK(4-Sp2zo{8npG6f&M@x>t{Set~=i0Yw0MM3()H%2+dU2DFlZ+}_K zwSqI3>A8Rx(wWoxk-W2tP>mFL2I>oCO5mo(kOR=tttI+(a4sen!5jhS8^`By@nyc= zce;JMBBq7)5!ST3Nh4oPQQ~<_=jh;fSf+NyJimpa5ri9W)t|CUY7HoaKi@U0OYZ;Z zT=h$KNXk({P^)s7Y)-D#TE1C=ByG$(#mIo=`s0z7(6ys*`MG6E-j_Qhz=!WW_eTn4 zX?dTWGP1+r&7HWOkN}&ffFsNCw;a4!*v}p%BnOgi^Qofd9I`c*XL~0=!gDY@saT(D zaeIm(p|IfKP>O`} z2LO+)8~9HUM|FMk)FPwAF^Ntd2H;rpKPQ- z{&9KDeE&=LxjynNt-h|+x?$H*c+nST;+cAOP wE7Hd%{3IZHLiRzCGc=p3?Ee+H{EdP5W2;$fF&qYg2f+hM@~U!0vL=522WBlTzW@LL literal 31227 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 Z^D Date: Tue, 15 Oct 2024 17:56:59 +0000 Subject: [PATCH 070/119] Automatic changelog for PR #87159 [ci skip] --- html/changelogs/AutoChangeLog-pr-87159.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87159.yml diff --git a/html/changelogs/AutoChangeLog-pr-87159.yml b/html/changelogs/AutoChangeLog-pr-87159.yml new file mode 100644 index 000000000000..b9b7e7955329 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87159.yml @@ -0,0 +1,5 @@ +author: "junkgle01" +delete-after: True +changes: + - rscadd: "the Honkmother has decided to bless Her children with a new form!" + - image: "resprited the optional clown mask styles" \ No newline at end of file From e527d7cea898e9126389d275ebed57a670679633 Mon Sep 17 00:00:00 2001 From: junkgle <133079191+junkgle01@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:58:05 -0500 Subject: [PATCH 071/119] metastation cargo fixes (#87122) ## About The Pull Request -fixes random test tube racks in the hallways next to cargo -fixes a bunch of decals -fixes some item offsets -moves a table so you can actually push a crate into the medical chute without using the alt-menu or dismantling a table -removes random destination tagger on the floor of the new security outpost ## Why It's Good For The Game fixes ## Changelog :cl: fix: fixed up Metastation's cargo delivery office. /:cl: --- _maps/map_files/MetaStation/MetaStation.dmm | 122 ++++++++------------ 1 file changed, 49 insertions(+), 73 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 64fe3288fba4..f6792840a511 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -8621,7 +8621,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/item/storage/test_tube_rack/full, /turf/open/floor/iron, /area/station/hallway/primary/central) "dfh" = ( @@ -11724,29 +11723,10 @@ /turf/open/floor/iron/dark, /area/station/medical/medbay/central) "ejD" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/stack/wrapping_paper, -/obj/item/paper_bin/carbon{ - pixel_y = 8; - pixel_x = 6 - }, -/obj/item/pen/fourcolor{ - pixel_y = 8; - pixel_x = 6 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/cleanable/wrapping, -/obj/item/sales_tagger{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/dest_tagger{ - pixel_x = -2; - pixel_y = 4 - }, /turf/open/floor/iron, /area/station/cargo/sorting) "ejF" = ( @@ -12272,9 +12252,10 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 8 }, -/obj/machinery/computer/cargo/request{ +/obj/structure/chair{ dir = 1 }, +/obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/cargo/lobby) "esd" = ( @@ -16791,20 +16772,9 @@ /area/station/science/ordnance/storage) "gav" = ( /obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/machinery/photocopier{ - pixel_y = 9 - }, -/obj/item/paper/fluff{ - pixel_y = 8; - pixel_x = 4; - default_raw_text = "Next CT to photocopy their ass is getting thrown under the shuttle. I'm serious here.
- QM"; - name = "note" - }, /obj/machinery/newscaster/directional/east, -/obj/item/pen/screwdriver{ - pixel_x = 1; - pixel_y = 11 +/obj/machinery/modular_computer/preset/cargochat/cargo{ + dir = 8 }, /turf/open/floor/iron, /area/station/cargo/sorting) @@ -30340,14 +30310,6 @@ dir = 8 }, /obj/machinery/camera/directional/west, -/obj/item/dest_tagger{ - pixel_x = -9; - pixel_y = 12 - }, -/obj/item/hand_labeler_refill{ - pixel_x = -11; - pixel_y = -3 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -31446,9 +31408,6 @@ /turf/open/floor/iron/dark, /area/station/command/gateway) "lcI" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -38067,9 +38026,6 @@ /turf/open/floor/wood, /area/station/service/bar/backroom) "nxI" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 4 - }, /obj/structure/railing{ dir = 4 }, @@ -39507,6 +39463,23 @@ }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) +"nZW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin/carbon{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/pen/fourcolor{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/stack/wrapping_paper, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "oac" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -41858,9 +41831,6 @@ /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "oRx" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, /obj/effect/turf_decal/siding/white{ dir = 9 }, @@ -42828,8 +42798,8 @@ }, /obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment, -/obj/structure/tank_holder/extinguisher, /obj/structure/sign/clock/directional/north, +/obj/machinery/photocopier, /turf/open/floor/iron, /area/station/cargo/sorting) "pke" = ( @@ -45828,7 +45798,6 @@ /area/station/construction/storage_wing) "qme" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/item/storage/test_tube_rack/full, /turf/open/floor/iron, /area/station/construction/storage_wing) "qmf" = ( @@ -49105,10 +49074,6 @@ /obj/effect/turf_decal/trimline/brown/line{ dir = 6 }, -/obj/effect/landmark/start/assistant, -/obj/structure/chair{ - dir = 1 - }, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/cargo/lobby) @@ -49884,8 +49849,12 @@ /obj/machinery/light/directional/north, /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/modular_computer/preset/cargochat/cargo, /obj/structure/cable, +/obj/structure/table, +/obj/machinery/fax{ + fax_name = "Cargo Office"; + name = "Cargo Office Fax Machine" + }, /turf/open/floor/iron, /area/station/cargo/sorting) "rGm" = ( @@ -50312,6 +50281,7 @@ /area/station/ai_monitored/turret_protected/aisat_interior) "rNA" = ( /obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/sorting) "rNI" = ( @@ -50649,6 +50619,8 @@ "rUd" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/warning, /turf/open/floor/iron, /area/station/cargo/sorting) "rUo" = ( @@ -51382,7 +51354,10 @@ "sgZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/spawner/structure/window, +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/cargo/sorting) "shl" = ( @@ -57887,13 +57862,13 @@ /area/station/security/mechbay) "uuW" = ( /obj/structure/table, -/obj/machinery/fax{ - fax_name = "Cargo Office"; - name = "Cargo Office Fax Machine" - }, /obj/item/papercutter{ - pixel_x = 8; - pixel_y = 8 + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/dest_tagger{ + pixel_x = 9; + pixel_y = 4 }, /turf/open/floor/iron, /area/station/cargo/sorting) @@ -58082,28 +58057,27 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/table, /obj/machinery/light/directional/east, /obj/item/radio/intercom/directional/east, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/item/stamp/granted{ +/obj/item/stamp/denied{ pixel_x = -7; - pixel_y = 4 + pixel_y = 10 }, -/obj/item/stamp/denied{ +/obj/item/stamp/granted{ pixel_x = -7; - pixel_y = 15 + pixel_y = -1 }, /obj/item/storage/box/lights/mixed{ pixel_x = 5; - pixel_y = 12 + pixel_y = 5 }, /obj/item/storage/box/lights/mixed{ pixel_x = 5; - pixel_y = 24 + pixel_y = 16 }, /turf/open/floor/iron, /area/station/cargo/sorting) @@ -62962,6 +62936,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/sorting) "wcf" = ( @@ -67906,6 +67881,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, +/obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/sorting) "xRR" = ( @@ -89489,7 +89465,7 @@ ryV mhM qCx cap -wbW +nZW wbW ygk hld From dd7c1bc12b7a4fadf51126706f92e56c8023f49a Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:58:31 +0000 Subject: [PATCH 072/119] Automatic changelog for PR #87122 [ci skip] --- html/changelogs/AutoChangeLog-pr-87122.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87122.yml diff --git a/html/changelogs/AutoChangeLog-pr-87122.yml b/html/changelogs/AutoChangeLog-pr-87122.yml new file mode 100644 index 000000000000..c09a7ca43089 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87122.yml @@ -0,0 +1,4 @@ +author: "junkgle01" +delete-after: True +changes: + - bugfix: "fixed up Metastation's cargo delivery office." \ No newline at end of file From a931c1e06f706d889e124a4bec9e922b8e4583b1 Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:00:20 +0200 Subject: [PATCH 073/119] you cant roll appendicitis if youre a bitrunner avatar or deathmatch player (#87212) ## About The Pull Request fixes #87206 ## Changelog :cl: fix: you may no longer roll appendicitis in deathmatch or as a bitrunner avatar /:cl: --- code/modules/deathmatch/deathmatch_lobby.dm | 2 +- code/modules/surgery/organs/internal/appendix/_appendix.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/deathmatch/deathmatch_lobby.dm b/code/modules/deathmatch/deathmatch_lobby.dm index 98465be9b038..a79bd3aa21d6 100644 --- a/code/modules/deathmatch/deathmatch_lobby.dm +++ b/code/modules/deathmatch/deathmatch_lobby.dm @@ -139,7 +139,7 @@ observer.client?.prefs.safe_transfer_prefs_to(new_player) new_player.dna.update_dna_identity() new_player.updateappearance(icon_update = TRUE, mutcolor_update = TRUE, mutations_overlay_update = TRUE) - new_player.add_traits(list(TRAIT_CANNOT_CRYSTALIZE, TRAIT_PERMANENTLY_MORTAL), INNATE_TRAIT) + new_player.add_traits(list(TRAIT_CANNOT_CRYSTALIZE, TRAIT_PERMANENTLY_MORTAL, TRAIT_TEMPORARY_BODY), INNATE_TRAIT) if(!isnull(observer.mind) && observer.mind?.current) new_player.AddComponent( \ /datum/component/temporary_body, \ diff --git a/code/modules/surgery/organs/internal/appendix/_appendix.dm b/code/modules/surgery/organs/internal/appendix/_appendix.dm index f4fb4e3e49e4..4a6d3ddaa8ba 100644 --- a/code/modules/surgery/organs/internal/appendix/_appendix.dm +++ b/code/modules/surgery/organs/internal/appendix/_appendix.dm @@ -37,7 +37,7 @@ owner.adjustToxLoss(2 * seconds_per_tick, forced = TRUE) else if(inflamation_stage) inflamation(seconds_per_tick) - else if(SPT_PROB(APPENDICITIS_PROB, seconds_per_tick)) + else if(SPT_PROB(APPENDICITIS_PROB, seconds_per_tick) && !HAS_TRAIT(owner, TRAIT_TEMPORARY_BODY)) become_inflamed() /obj/item/organ/internal/appendix/proc/become_inflamed() From 5116cfcf310c549d0008491b428e09e1c3270f45 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:00:42 +0000 Subject: [PATCH 074/119] Automatic changelog for PR #87212 [ci skip] --- html/changelogs/AutoChangeLog-pr-87212.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87212.yml diff --git a/html/changelogs/AutoChangeLog-pr-87212.yml b/html/changelogs/AutoChangeLog-pr-87212.yml new file mode 100644 index 000000000000..dd5a17bbc934 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87212.yml @@ -0,0 +1,4 @@ +author: "mc-oofert" +delete-after: True +changes: + - bugfix: "you may no longer roll appendicitis in deathmatch or as a bitrunner avatar" \ No newline at end of file From 5b6353abb0e0c7513ae059bd44b803b71dee08be Mon Sep 17 00:00:00 2001 From: Soupy <140170895+Soupfgc@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:02:06 +0200 Subject: [PATCH 075/119] Fixes oversight of the Springlock MOD module and its interaction with water vapor (#87169) ## About The Pull Request Adds the interaction between the Springlock MOD module and the Gas Water Vapor so that it snaps shut upon being exposed to the Gas. Fixes #85666. Specifically the oversight mentioned in the comments. ## Why It's Good For The Game Adds consistency to the Springlock MOD module so it properly interacts with water as intended. ## Changelog :cl: fix: Springlock MOD module properly interacts with Water Vapor /:cl: --- code/modules/mod/modules/modules_maint.dm | 33 ++++++++++++++++++----- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm index f59076fa4b5f..d2f1ceaef74d 100644 --- a/code/modules/mod/modules/modules_maint.dm +++ b/code/modules/mod/modules/modules_maint.dm @@ -11,6 +11,9 @@ complexity = 3 // it is inside every part of your suit, so incompatible_modules = list(/obj/item/mod/module/springlock) var/set_off = FALSE + var/static/list/gas_connections = list( + COMSIG_TURF_EXPOSE = PROC_REF(on_wearer_exposed_gas), + ) /obj/item/mod/module/springlock/on_install() mod.activation_step_time *= 0.5 @@ -20,22 +23,40 @@ /obj/item/mod/module/springlock/on_suit_activation() RegisterSignal(mod.wearer, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_wearer_exposed)) + AddComponent(/datum/component/connect_loc_behalf, mod.wearer, gas_connections) /obj/item/mod/module/springlock/on_suit_deactivation(deleting = FALSE) UnregisterSignal(mod.wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + qdel(GetComponent(/datum/component/connect_loc_behalf)) -///Signal fired when wearer is exposed to reagents -/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) - SIGNAL_HANDLER - - if(!(methods & (VAPOR|PATCH|TOUCH)) || set_off || mod.wearer.stat == DEAD) - return //remove non-touch reagent exposure +///Registers the signal COMSIG_MOD_ACTIVATE and calls the proc snap_shut() after a timer +/obj/item/mod/module/springlock/proc/snap_signal() + if(set_off || mod.wearer.stat == DEAD) + return to_chat(mod.wearer, span_danger("[src] makes an ominous click sound...")) playsound(src, 'sound/items/modsuit/springlock.ogg', 75, TRUE) addtimer(CALLBACK(src, PROC_REF(snap_shut)), rand(3 SECONDS, 5 SECONDS)) RegisterSignal(mod, COMSIG_MOD_ACTIVATE, PROC_REF(on_activate_spring_block)) set_off = TRUE +///Calls snap_signal() when exposed to a reagent via VAPOR, PATCH or TOUCH +/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) + SIGNAL_HANDLER + + if(!(methods & (VAPOR|PATCH|TOUCH))) + return //remove non-touch reagent exposure + snap_signal() + +///Calls snap_signal() when exposed to water vapor +/obj/item/mod/module/springlock/proc/on_wearer_exposed_gas() + SIGNAL_HANDLER + + var/turf/wearer_turf = get_turf(src) + var/datum/gas_mixture/air = wearer_turf.return_air() + if(!(air.gases[/datum/gas/water_vapor] && (air.gases[/datum/gas/water_vapor][MOLES]) >= 5)) + return //return if there aren't more than 5 Moles of Water Vapor in the air + snap_signal() + ///Signal fired when wearer attempts to activate/deactivate suits /obj/item/mod/module/springlock/proc/on_activate_spring_block(datum/source, user) SIGNAL_HANDLER From fe6e6e059cf05af7c87ffddb7e0c04b95b00d3f3 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:02:30 +0000 Subject: [PATCH 076/119] Automatic changelog for PR #87169 [ci skip] --- html/changelogs/AutoChangeLog-pr-87169.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87169.yml diff --git a/html/changelogs/AutoChangeLog-pr-87169.yml b/html/changelogs/AutoChangeLog-pr-87169.yml new file mode 100644 index 000000000000..c18f14e2f29d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87169.yml @@ -0,0 +1,4 @@ +author: "Soupfgc" +delete-after: True +changes: + - bugfix: "Springlock MOD module properly interacts with Water Vapor" \ No newline at end of file From 0dccc2b8564df9ecc03792e4a4dd8d84a365cca1 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:23:08 +0200 Subject: [PATCH 077/119] Fixes master not compiling because of gamers (#87245) --- code/modules/clothing/masks/gasmask.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index f76d5d6a3944..2e6ddeb68355 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -348,7 +348,6 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = null flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - has_fov = FALSE /obj/item/clothing/mask/gas/mime name = "mime mask" From 349e969bbfab69ae5f08f430ce711a98a3e29158 Mon Sep 17 00:00:00 2001 From: DATA <44149906+DATA-xPUNGED@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:46:25 -0300 Subject: [PATCH 078/119] [NO GBP] Fixes server hop fade out (#87170) ## About The Pull Request Turns out that if you don't test if you fix works, it probably won't! I've actually managed to test this one, and even though it gave me a handshake error when joining the other server, at least the fade in worked! The fadeout is set up in the same way, so it should be fine ## Why It's Good For The Game ACTUALLY fixes #29496 ## Changelog :cl: fix: ACTUALLY fixes server hop fade in /:cl: --- code/controllers/subsystem/ticker.dm | 4 ++-- code/modules/mob/dead/dead.dm | 12 ++++++------ code/modules/mob/dead/new_player/new_player.dm | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 72e9652cbbba..3c3cc5ce1ee0 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -499,8 +499,8 @@ SUBSYSTEM_DEF(ticker) qdel(player) ADD_TRAIT(living, TRAIT_NO_TRANSFORM, SS_TICKER_TRAIT) if(living.client) - var/atom/movable/screen/splash/S = new(null, living.client, TRUE) - S.Fade(TRUE) + var/atom/movable/screen/splash/fade_out = new(null, living.client, TRUE) + fade_out.Fade(TRUE) living.client.init_verbs() livings += living if(livings.len) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 17591d93d522..aec19662d3ae 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -74,21 +74,21 @@ INITIALIZE_IMMEDIATE(/mob/dead) if(tgui_alert(usr, "Jump to server [pick] ([addr])?", "Server Hop", list("Yes", "No")) != "Yes") return - var/client/C = client - to_chat(C, span_notice("Sending you to [pick].")) - var/atom/movable/screen/splash/S = new(null, null, C) - S.Fade(FALSE) + var/client/hopper = client + to_chat(hopper, span_notice("Sending you to [pick].")) + var/atom/movable/screen/splash/fade_in = new(null, src, hopper, FALSE) + fade_in.Fade(FALSE) ADD_TRAIT(src, TRAIT_NO_TRANSFORM, SERVER_HOPPER_TRAIT) sleep(2.9 SECONDS) //let the animation play REMOVE_TRAIT(src, TRAIT_NO_TRANSFORM, SERVER_HOPPER_TRAIT) - if(!C) + if(!hopper) return winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources - C << link("[addr]") + hopper << link("[addr]") #undef SERVER_HOPPER_TRAIT diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 39051b29fc08..834c4fa99157 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -22,8 +22,8 @@ /mob/dead/new_player/Initialize(mapload) if(client && SSticker.state == GAME_STATE_STARTUP) - var/atom/movable/screen/splash/S = new(null, client, TRUE, TRUE) - S.Fade(TRUE) + var/atom/movable/screen/splash/fade_out = new(null, null, client, TRUE) + fade_out.Fade(TRUE) if(length(GLOB.newplayer_start)) forceMove(pick(GLOB.newplayer_start)) From 1e11d880c0afd2dc5c6fa9faced7fb456cdb8f5b Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:49:40 +0000 Subject: [PATCH 079/119] Automatic changelog for PR #87170 [ci skip] --- html/changelogs/AutoChangeLog-pr-87170.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87170.yml diff --git a/html/changelogs/AutoChangeLog-pr-87170.yml b/html/changelogs/AutoChangeLog-pr-87170.yml new file mode 100644 index 000000000000..71d30e1eaea3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87170.yml @@ -0,0 +1,4 @@ +author: "DATA-xPUNGED" +delete-after: True +changes: + - bugfix: "ACTUALLY fixes server hop fade in" \ No newline at end of file From 22241c34ba4821864ca6a597fffde94d349bacef Mon Sep 17 00:00:00 2001 From: larentoun <31931237+larentoun@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:54:18 +0300 Subject: [PATCH 080/119] Removing self-vore message from aliens + minor attack verb fixes (#87226) ## About The Pull Request Fixes self-vore message when you get devoured by an alien. Fixes some simple attack verbs being continuous ## Why It's Good For The Game Bug fixes good ## Changelog :cl: spellcheck: Correct message is shown when YOU get devoured by an alien spellcheck: Fixed a few typos on some simple attack verbs being continuous /:cl: --- code/game/objects/items/plushes.dm | 2 +- code/game/objects/items/toys.dm | 2 +- code/modules/antagonists/wizard/equipment/artefact.dm | 2 +- code/modules/library/bibles.dm | 2 +- code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm | 2 +- code/modules/mob/living/basic/lavaland/raptor/_raptor.dm | 2 +- code/modules/mob/living/carbon/alien/adult/adult.dm | 2 +- .../simple_animal/hostile/megafauna/demonic_frost_miner.dm | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 7c7f998251c1..cec45a404ab3 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -544,7 +544,7 @@ greyscale_config = /datum/greyscale_config/plush_spacelizard // space lizards can't hit people with their tail, it's stuck in their suit attack_verb_continuous = list("claws", "hisses", "bops") - attack_verb_simple = list("claw", "hiss", "bops") + attack_verb_simple = list("claw", "hiss", "bop") /obj/item/toy/plush/lizard_plushie/space/green desc = "An adorable stuffed toy that resembles a very determined spacefaring green lizardperson. To infinity and beyond, little guy. This one fills you with nostalgia and soul." diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index c9270b1f67ef..b622a761c422 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1815,6 +1815,6 @@ GLOBAL_LIST_EMPTY(intento_players) icon = 'icons/obj/weapons/guns/magic.dmi' slot_flags = ITEM_SLOT_BACK attack_verb_continuous = list("smacks", "clubs", "wacks", "vendors") - attack_verb_simple = list("smack", "club", "wacks", "vendor") + attack_verb_simple = list("smack", "club", "wack", "vendor") w_class = WEIGHT_CLASS_SMALL resistance_flags = FLAMMABLE diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 1036abc24955..446825779e29 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -410,7 +410,7 @@ damtype = BRUTE resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF attack_verb_continuous = list("smacks", "clubs", "wacks") - attack_verb_simple = list("smack", "club", "wacks") + attack_verb_simple = list("smack", "club", "wack") /// Range cap on where you can summon vendors. var/max_summon_range = RUNIC_SCEPTER_MAX_RANGE diff --git a/code/modules/library/bibles.dm b/code/modules/library/bibles.dm index eda1f18f8e7e..52a1b9131637 100644 --- a/code/modules/library/bibles.dm +++ b/code/modules/library/bibles.dm @@ -340,7 +340,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( hitsound = 'sound/items/weapons/sear.ogg' damtype = BURN attack_verb_continuous = list("attacks", "burns", "blesses", "damns", "scorches", "curses", "smites") - attack_verb_simple = list("attack", "burn", "bless", "damn", "scorch", "curses", "smites") + attack_verb_simple = list("attack", "burn", "bless", "damn", "scorch", "curse", "smite") deity_name = "The Syndicate" var/uses = 1 var/owner_name diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm index 931b568e5ee3..f76479dc1312 100644 --- a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm @@ -15,7 +15,7 @@ melee_damage_lower = 0 melee_damage_upper = 0 attack_verb_continuous = "weakly tackles" - attack_verb_simple = "weakly tackles" + attack_verb_simple = "weakly tackle" speak_emote = list("telepathically cries") attack_sound = 'sound/items/weapons/pierce.ogg' throw_blocked_message = "passes between the bodies of the" diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index b7f7ffa9cf69..2cb9384b06bf 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_EMPTY(raptor_population) minimum_survivable_temperature = BODYTEMP_COLD_ICEBOX_SAFE maximum_survivable_temperature = INFINITY attack_verb_continuous = "pecks" - attack_verb_simple = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/items/weapons/punch1.ogg' faction = list(FACTION_RAPTOR, FACTION_NEUTRAL) speak_emote = list("screeches") diff --git a/code/modules/mob/living/carbon/alien/adult/adult.dm b/code/modules/mob/living/carbon/alien/adult/adult.dm index ce95c0e6ce5a..8c8acf793f51 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult.dm @@ -135,7 +135,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( lucky_winner.audible_message(span_danger("You hear a deep groan, and a harsh snap like a mantrap.")) lucky_winner.visible_message(span_danger("[src] devours [lucky_winner]!"), \ - span_userdanger("[lucky_winner] devours you!")) + span_userdanger("[src] devours you!")) log_combat(src, lucky_winner, "devoured") melting_pot.consume_thing(lucky_winner) return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 350a1a68fd8e..8c32b2a3c47d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -16,7 +16,7 @@ Difficulty: Extremely Hard icon_living = "demonic_miner" icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' attack_verb_continuous = "pummels" - attack_verb_simple = "pummels" + attack_verb_simple = "pummel" attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg' mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_SPECIAL light_color = COLOR_LIGHT_GRAYISH_RED From 000d5b9258809c1d35ecdde9307536ca1adb353b Mon Sep 17 00:00:00 2001 From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:58:20 +0300 Subject: [PATCH 081/119] removes alot of click-related self registering signals on basic mobs (#87220) ## About The Pull Request there was no real benefit of using signals over proc overrides for many of these cases. ## Why It's Good For The Game registering signals on self when we can just override the proc is un-necessary, im responsible for most of these so im just confronting the sins of my past ## Changelog :cl: /:cl: --- code/modules/mob/living/basic/alien/maid.dm | 10 +++--- code/modules/mob/living/basic/basic.dm | 13 +++++--- .../mob/living/basic/farm_animals/bee/_bee.dm | 11 ++++--- .../basic/icemoon/ice_whelp/ice_whelp.dm | 22 ++++++------- .../living/basic/jungle/seedling/seedling.dm | 15 +++++---- .../basic/lavaland/gutlunchers/gutlunchers.dm | 14 ++++---- .../mob/living/basic/lavaland/mook/mook.dm | 14 ++++---- .../living/basic/lavaland/raptor/_raptor.dm | 14 ++++---- .../mob/living/basic/minebots/minebot.dm | 13 ++++---- code/modules/mob/living/basic/pets/cat/cat.dm | 32 +++++++++---------- .../mob/living/basic/pets/orbie/orbie.dm | 23 ++++++------- .../mob/living/basic/pets/parrot/_parrot.dm | 24 +++++++------- .../basic/space_fauna/eyeball/_eyeball.dm | 20 +++++------- .../basic/space_fauna/hivebot/_hivebot.dm | 11 ++++--- .../mob/living/basic/space_fauna/morph.dm | 28 ++++++++-------- .../mob/living/basic/space_fauna/mushroom.dm | 22 ++++++------- .../basic/space_fauna/regal_rat/regal_rat.dm | 20 ++++++------ .../basic/space_fauna/supermatter_spider.dm | 12 +++---- 18 files changed, 156 insertions(+), 162 deletions(-) diff --git a/code/modules/mob/living/basic/alien/maid.dm b/code/modules/mob/living/basic/alien/maid.dm index decfe5736ce3..cf6499884e95 100644 --- a/code/modules/mob/living/basic/alien/maid.dm +++ b/code/modules/mob/living/basic/alien/maid.dm @@ -15,17 +15,19 @@ /mob/living/basic/alien/maid/Initialize(mapload) . = ..() AddElement(/datum/element/cleaning) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) ///Handles the maid attacking other players, cancelling the attack to clean up instead. -/mob/living/basic/alien/maid/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER +/mob/living/basic/alien/maid/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE + target.wash(CLEAN_SCRUB) if(istype(target, /obj/effect/decal/cleanable)) visible_message(span_notice("[src] cleans up \the [target].")) else visible_message(span_notice("[src] polishes \the [target].")) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /** * Barmaid special type diff --git a/code/modules/mob/living/basic/basic.dm b/code/modules/mob/living/basic/basic.dm index 9501c4e21d3e..22a200643707 100644 --- a/code/modules/mob/living/basic/basic.dm +++ b/code/modules/mob/living/basic/basic.dm @@ -216,14 +216,19 @@ . += span_deadsay("Upon closer examination, [p_they()] appear[p_s()] to be [HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "asleep" : "dead"].") /mob/living/basic/proc/melee_attack(atom/target, list/modifiers, ignore_cooldown = FALSE) + if(!early_melee_attack(target, modifiers, ignore_cooldown)) + return FALSE + var/result = target.attack_basic_mob(src, modifiers) + SEND_SIGNAL(src, COMSIG_HOSTILE_POST_ATTACKINGTARGET, target, result) + return result + +/mob/living/basic/proc/early_melee_attack(atom/target, list/modifiers, ignore_cooldown = FALSE) face_atom(target) - if (!ignore_cooldown) + if(!ignore_cooldown) changeNext_move(melee_attack_cooldown) if(SEND_SIGNAL(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, target, Adjacent(target), modifiers) & COMPONENT_HOSTILE_NO_ATTACK) return FALSE //but more importantly return before attack_animal called - var/result = target.attack_basic_mob(src, modifiers) - SEND_SIGNAL(src, COMSIG_HOSTILE_POST_ATTACKINGTARGET, target, result) - return result + return TRUE /mob/living/basic/resolve_unarmed_attack(atom/attack_target, list/modifiers) melee_attack(attack_target, modifiers) diff --git a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm index 53f9c618c637..2eae87310591 100644 --- a/code/modules/mob/living/basic/farm_animals/bee/_bee.dm +++ b/code/modules/mob/living/basic/farm_animals/bee/_bee.dm @@ -70,7 +70,6 @@ AddComponent(/datum/component/swarming) AddComponent(/datum/component/obeys_commands, pet_commands) AddElement(/datum/element/swabable, CELL_LINE_TABLE_QUEEN_BEE, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) /mob/living/basic/bee/mob_pickup(mob/living/picker) if(flags_1 & HOLOGRAM_1) @@ -108,18 +107,20 @@ /mob/living/basic/bee/proc/spawn_corpse() new /obj/item/trash/bee(loc, src) -/mob/living/basic/bee/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER +/mob/living/basic/bee/early_melee_attack(atom/target, list/modifiers) + . = ..() + if(!.) + return FALSE if(istype(target, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/hydro = target pollinate(hydro) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /obj/structure/beebox)) var/obj/structure/beebox/hive = target handle_habitation(hive) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/bee/proc/handle_habitation(obj/structure/beebox/hive) if(hive == beehome) //if its our home, we enter or exit it diff --git a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm index 43f8c61d0c88..cc6bd1c900e6 100644 --- a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm +++ b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm @@ -45,8 +45,6 @@ AddComponent(/datum/component/basic_mob_ability_telegraph) AddComponent(/datum/component/basic_mob_attack_telegraph, telegraph_duration = 0.6 SECONDS) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) - var/static/list/innate_actions = list( /datum/action/cooldown/mob_cooldown/fire_breath/ice = BB_WHELP_STRAIGHTLINE_FIRE, /datum/action/cooldown/mob_cooldown/fire_breath/ice/cross = BB_WHELP_WIDESPREAD_FIRE, @@ -55,22 +53,24 @@ grant_actions_by_list(innate_actions) -/mob/living/basic/mining/ice_whelp/proc/pre_attack(mob/living/sculptor, atom/target) - SIGNAL_HANDLER +/mob/living/basic/mining/ice_whelp/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(istype(target, /obj/structure/flora/rock/icy)) - INVOKE_ASYNC(src, PROC_REF(create_sculpture), target) - return COMPONENT_HOSTILE_NO_ATTACK + create_sculpture(target) + return FALSE - if(!istype(target, src.type)) - return + if(!istype(target, type)) + return TRUE var/mob/living/victim = target if(victim.stat != DEAD) - return + return TRUE - INVOKE_ASYNC(src, PROC_REF(cannibalize_victim), victim) - return COMPONENT_HOSTILE_NO_ATTACK + cannibalize_victim(victim) + return FALSE /// Carve a stone into a beautiful self-portrait /mob/living/basic/mining/ice_whelp/proc/create_sculpture(atom/target) diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling.dm b/code/modules/mob/living/basic/jungle/seedling/seedling.dm index 00db708bc329..3af0675a7f86 100644 --- a/code/modules/mob/living/basic/jungle/seedling/seedling.dm +++ b/code/modules/mob/living/basic/jungle/seedling/seedling.dm @@ -80,23 +80,24 @@ AddElement(/datum/element/wall_tearer, allow_reinforced = FALSE) AddComponent(/datum/component/obeys_commands, seedling_commands) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_KB_MOB_DROPITEM_DOWN, PROC_REF(drop_can)) update_appearance() -/mob/living/basic/seedling/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER +/mob/living/basic/seedling/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(istype(target, /obj/machinery/hydroponics)) treat_hydro_tray(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(isnull(held_can)) - return + return TRUE if(istype(target, /obj/structure/sink) || istype(target, /obj/structure/reagent_dispensers)) - INVOKE_ASYNC(held_can, TYPE_PROC_REF(/obj/item, melee_attack_chain), src, target) - return COMPONENT_HOSTILE_NO_ATTACK + held_can.melee_attack_chain(src, target) + return FALSE ///seedlings can water trays, remove weeds, or remove dead plants diff --git a/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm index 6b822d490de7..e447255c867a 100644 --- a/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm +++ b/code/modules/mob/living/basic/lavaland/gutlunchers/gutlunchers.dm @@ -34,7 +34,6 @@ /mob/living/basic/mining/gutlunch/Initialize(mapload) . = ..() GLOB.gutlunch_count++ - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) if(greyscale_config) set_greyscale(colors = list(pick(possible_colors))) AddElement(/datum/element/ai_retaliate) @@ -52,19 +51,18 @@ GLOB.gutlunch_count-- return ..() -/mob/living/basic/mining/gutlunch/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER - - if(!istype(target, /obj/structure/ore_container/food_trough/gutlunch_trough)) +/mob/living/basic/mining/gutlunch/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) return - + if(!istype(target, /obj/structure/ore_container/food_trough/gutlunch_trough)) + return TRUE var/obj/ore_food = locate(/obj/item/stack/ore) in target - if(isnull(ore_food)) balloon_alert(src, "no food!") else melee_attack(ore_food) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/mining/gutlunch/proc/after_birth(mob/living/basic/mining/gutlunch/grub/baby, mob/living/partner) var/our_color = LAZYACCESS(atom_colours, FIXED_COLOUR_PRIORITY) || COLOR_GRAY diff --git a/code/modules/mob/living/basic/lavaland/mook/mook.dm b/code/modules/mob/living/basic/lavaland/mook/mook.dm index 888023897397..f492c83e74ba 100644 --- a/code/modules/mob/living/basic/lavaland/mook/mook.dm +++ b/code/modules/mob/living/basic/lavaland/mook/mook.dm @@ -58,7 +58,6 @@ AddComponent(/datum/component/ai_listen_to_weather) AddElement(/datum/element/wall_tearer, allow_reinforced = FALSE) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_KB_MOB_DROPITEM_DOWN, PROC_REF(drop_ore)) if(is_healer) @@ -96,27 +95,28 @@ held_ore = null update_appearance(UPDATE_OVERLAYS) -/mob/living/basic/mining/mook/proc/pre_attack(mob/living/attacker, atom/target) - SIGNAL_HANDLER - +/mob/living/basic/mining/mook/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE return attack_sequence(target) /mob/living/basic/mining/mook/proc/attack_sequence(atom/target) if(istype(target, /obj/item/stack/ore) && isnull(held_ore)) var/obj/item/ore_target = target ore_target.forceMove(src) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /obj/structure/ore_container/material_stand)) if(held_ore) held_ore.forceMove(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /obj/structure/bonfire)) var/obj/structure/bonfire/fire_target = target if(!fire_target.burning) fire_target.start_burning() - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/mining/mook/proc/change_combatant_state(state) attack_state = state diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index 2cb9384b06bf..917c9c3c4387 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -97,7 +97,6 @@ GLOBAL_LIST_EMPTY(raptor_population) ai_controller.set_blackboard_key(BB_BASIC_MOB_SPEAK_LINES, display_emote) inherited_stats = new inherit_properties() - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) var/static/list/my_food = list(/obj/item/stack/ore) AddElement(/datum/element/basic_eating, food_types = my_food) AddElement(/datum/element/ai_retaliate) @@ -147,19 +146,20 @@ GLOBAL_LIST_EMPTY(raptor_population) pixel_y = (direction & NORTH) ? -5 : 0 -/mob/living/basic/raptor/proc/pre_attack(mob/living/puncher, atom/target) - SIGNAL_HANDLER - +/mob/living/basic/raptor/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(!istype(target, /obj/structure/ore_container/food_trough/raptor_trough)) - return + return TRUE var/obj/ore_food = locate(/obj/item/stack/ore) in target if(isnull(ore_food)) balloon_alert(src, "no food!") else - INVOKE_ASYNC(src, PROC_REF(melee_attack), ore_food) - return COMPONENT_HOSTILE_NO_ATTACK + melee_attack(ore_food) + return TRUE /mob/living/basic/raptor/melee_attack(mob/living/target, list/modifiers, ignore_cooldown) if(!combat_mode && istype(target, /mob/living/basic/raptor/baby_raptor)) diff --git a/code/modules/mob/living/basic/minebots/minebot.dm b/code/modules/mob/living/basic/minebots/minebot.dm index bcf8071d7c28..c9edfb0471f2 100644 --- a/code/modules/mob/living/basic/minebots/minebot.dm +++ b/code/modules/mob/living/basic/minebots/minebot.dm @@ -85,7 +85,6 @@ /datum/id_trim/job/shaft_miner, ) AddElement(/datum/element/mob_access, accesses) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) /mob/living/basic/mining_drone/set_combat_mode(new_mode, silent = TRUE) . = ..() @@ -250,13 +249,15 @@ QDEL_NULL(stored_gun) return ..() -/mob/living/basic/mining_drone/proc/pre_attack(datum/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/mining_drone/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(!istype(target, /mob/living/basic/node_drone)) - return NONE - INVOKE_ASYNC(src, PROC_REF(repair_node_drone), target) - return COMPONENT_HOSTILE_NO_ATTACK + return TRUE + repair_node_drone(target) + return FALSE /mob/living/basic/mining_drone/proc/repair_node_drone(mob/living/my_target) do_sparks(5, FALSE, source = my_target) diff --git a/code/modules/mob/living/basic/pets/cat/cat.dm b/code/modules/mob/living/basic/pets/cat/cat.dm index 68821731ee4d..3c2ab3f7c9f9 100644 --- a/code/modules/mob/living/basic/pets/cat/cat.dm +++ b/code/modules/mob/living/basic/pets/cat/cat.dm @@ -94,29 +94,27 @@ ai_controller.set_blackboard_key(BB_HUNTABLE_PREY, typecacheof(huntable_items)) if(can_breed) add_breeding_component() - if(can_hold_item) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) - if(can_interact_with_stove) - RegisterSignal(src, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(pre_unarmed_attack)) /mob/living/basic/pet/cat/proc/add_cell_sample() AddElement(/datum/element/swabable, CELL_LINE_TABLE_CAT, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) -/mob/living/basic/pet/cat/proc/pre_attack(mob/living/source, atom/movable/target) - SIGNAL_HANDLER - if(!is_type_in_list(target, huntable_items) || held_food) - return - target.forceMove(src) +/mob/living/basic/pet/cat/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE -/mob/living/basic/pet/cat/proc/pre_unarmed_attack(mob/living/hitter, atom/target, proximity, modifiers) - SIGNAL_HANDLER + if(istype(target, /obj/machinery/oven/range) && can_interact_with_stove) + target.attack_hand(src) + return FALSE - if(!proximity || !can_unarmed_attack()) - return NONE - if(!istype(target, /obj/machinery/oven/range)) - return NONE - target.attack_hand(src) - return COMPONENT_CANCEL_ATTACK_CHAIN + if(!can_hold_item) + return TRUE + + if(!is_type_in_list(target, huntable_items) || held_food) + return TRUE + var/atom/movable/movable_target = target + movable_target.forceMove(src) + return FALSE /mob/living/basic/pet/cat/Exited(atom/movable/gone, direction) . = ..() diff --git a/code/modules/mob/living/basic/pets/orbie/orbie.dm b/code/modules/mob/living/basic/pets/orbie/orbie.dm index a0fbba899e35..85d82e92515f 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie.dm @@ -36,7 +36,7 @@ ///overlay for our happy eyes var/static/mutable_appearance/happy_eyes_overlay = mutable_appearance('icons/mob/simple/pets.dmi', "orbie_happy_eye_overlay") ///commands we can give orbie - var/list/pet_commands = list( + var/static/list/pet_commands = list( /datum/pet_command/idle, /datum/pet_command/free, /datum/pet_command/untargeted_ability/pet_lights, @@ -52,24 +52,21 @@ AddElement(/datum/element/basic_eating, food_types = food_types) ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) - RegisterSignal(src, COMSIG_ATOM_CAN_BE_PULLED, PROC_REF(on_pulled)) RegisterSignal(src, COMSIG_VIRTUAL_PET_LEVEL_UP, PROC_REF(on_level_up)) - RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) RegisterSignal(src, COMSIG_ATOM_UPDATE_LIGHT_ON, PROC_REF(on_lights)) ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(food_types)) update_appearance() -/mob/living/basic/orbie/proc/on_click(mob/living/basic/source, atom/target, params) - SIGNAL_HANDLER - - if(!CanReach(target)) - return - +/mob/living/basic/orbie/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(src == target || happy_state || !istype(target)) - return + return TRUE toggle_happy_state() addtimer(CALLBACK(src, PROC_REF(toggle_happy_state)), 30 SECONDS) + return FALSE /mob/living/basic/orbie/proc/on_lights(datum/source) SIGNAL_HANDLER @@ -80,10 +77,8 @@ happy_state = !happy_state update_appearance() -/mob/living/basic/orbie/proc/on_pulled(datum/source) //i need move resist at 0, but i also dont want him to be pulled - SIGNAL_HANDLER - - return COMSIG_ATOM_CANT_PULL +/mob/living/basic/orbie/can_be_pulled(user, grab_state, force) + return FALSE /mob/living/basic/orbie/proc/on_level_up(datum/source, new_level) SIGNAL_HANDLER diff --git a/code/modules/mob/living/basic/pets/parrot/_parrot.dm b/code/modules/mob/living/basic/pets/parrot/_parrot.dm index e22948848eb1..e76b9a5e83e0 100644 --- a/code/modules/mob/living/basic/pets/parrot/_parrot.dm +++ b/code/modules/mob/living/basic/pets/parrot/_parrot.dm @@ -100,8 +100,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( AddComponent(/datum/component/listen_and_repeat, desired_phrases = get_static_list_of_phrases(), blackboard_key = BB_PARROT_REPEAT_STRING) AddComponent(/datum/component/tameable, food_types = edibles, tame_chance = 100, bonus_tame_chance = 0) AddComponent(/datum/component/obeys_commands, pet_commands) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attacking)) - RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) RegisterSignal(src, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(on_attacked)) // this means we could have a peaceful interaction, like getting a cracker RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(on_injured)) // this means we got hurt and it's go time RegisterSignal(src, COMSIG_ANIMAL_PET, PROC_REF(on_pet)) @@ -186,12 +184,12 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( icon_state = HAS_TRAIT(src, TRAIT_PARROT_PERCHED) ? icon_sit : icon_living /// Proc that we just use to see if we're rightclicking something for perch behavior or dropping the item we currently ahve -/mob/living/basic/parrot/proc/on_click(mob/living/basic/source, atom/target, params) - SIGNAL_HANDLER - if(!LAZYACCESS(params, RIGHT_CLICK) || !CanReach(target)) - return - if(start_perching(target) && !isnull(held_item)) +/mob/living/basic/parrot/resolve_right_click_attack(atom/target, list/modifiers) + if(!start_perching(target)) + return SECONDARY_ATTACK_CALL_NORMAL + if(!isnull(held_item)) drop_held_item(gently = TRUE) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /// Proc that handles sending the signal and returning a valid phrase to say. Will not do anything if we don't have a stat or if we're cliented. /// Will return either a string or null. @@ -275,16 +273,16 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( /// Master proc which will determine the intent of OUR attacks on an object and summon the relevant procs accordingly. /// This is pretty much meant for players, AI will use the task-specific procs instead. -/mob/living/basic/parrot/proc/pre_attacking(mob/living/basic/source, atom/target) - SIGNAL_HANDLER - if(stat != CONSCIOUS) - return +/mob/living/basic/parrot/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(isitem(target) && steal_from_ground(target)) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(iscarbon(target) && steal_from_mob(target)) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /// Picks up an item from the ground and puts it in our claws. Returns TRUE if we picked it up, FALSE otherwise. /mob/living/basic/parrot/proc/steal_from_ground(obj/item/target) diff --git a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm index c036fe461690..e735067b3ed8 100644 --- a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm +++ b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm @@ -60,7 +60,6 @@ AddElement(/datum/element/simple_flying) AddComponent(/datum/component/tameable, food_types = list(/obj/item/food/grown/carrot), tame_chance = 100) ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) on_hit_overlay = mutable_appearance(icon, "[icon_state]_crying") /mob/living/basic/eyeball/UnarmedAttack(atom/attack_target, proximity_flag, list/modifiers) @@ -94,21 +93,18 @@ cut_overlay(on_hit_overlay) -/mob/living/basic/eyeball/proc/pre_attack(mob/living/eyeball, atom/target) - SIGNAL_HANDLER - +/mob/living/basic/eyeball/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(!ishuman(target)) - return - + return TRUE var/mob/living/carbon/human_target = target var/obj/item/organ/internal/eyes/eyes = human_target.get_organ_slot(ORGAN_SLOT_EYES) - if(!eyes) - return - if(eyes.damage < 10) - return + if(isnull(eyes) || eyes.damage < 10) + return TRUE heal_eye_damage(human_target, eyes) - return COMPONENT_HOSTILE_NO_ATTACK - + return FALSE /mob/living/basic/eyeball/proc/heal_eye_damage(mob/living/target, obj/item/organ/internal/eyes/eyes) if(!COOLDOWN_FINISHED(src, eye_healing)) 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 6b72f1f09757..b29718f8810e 100644 --- a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm +++ b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm @@ -96,18 +96,19 @@ /mob/living/basic/hivebot/mechanic/Initialize(mapload) . = ..() GRANT_ACTION(/datum/action/cooldown/spell/conjure/foam_wall) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) -/mob/living/basic/hivebot/mechanic/proc/pre_attack(mob/living/fixer, atom/target) - SIGNAL_HANDLER +/mob/living/basic/hivebot/mechanic/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(ismachinery(target)) repair_machine(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(istype(target, /mob/living/basic/hivebot)) repair_hivebot(target) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /mob/living/basic/hivebot/mechanic/proc/repair_machine(obj/machinery/fixable) if(fixable.get_integrity() >= fixable.max_integrity) diff --git a/code/modules/mob/living/basic/space_fauna/morph.dm b/code/modules/mob/living/basic/space_fauna/morph.dm index f1f568a261b0..f205474af817 100644 --- a/code/modules/mob/living/basic/space_fauna/morph.dm +++ b/code/modules/mob/living/basic/space_fauna/morph.dm @@ -51,7 +51,6 @@ /mob/living/basic/morph/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_CLICK_SHIFT, PROC_REF(trigger_ability)) RegisterSignal(src, COMSIG_ACTION_DISGUISED_APPEARANCE, PROC_REF(on_disguise)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DISGUISED), PROC_REF(on_undisguise)) @@ -150,28 +149,31 @@ return COMSIG_MOB_CANCEL_CLICKON /// Handles the logic for attacking anything. -/mob/living/basic/morph/proc/pre_attack(mob/living/basic/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/morph/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(HAS_TRAIT(src, TRAIT_DISGUISED) && (melee_damage_disguised <= 0)) balloon_alert(src, "can't attack while disguised!") - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(isliving(target)) //Eat Corpses to regen health var/mob/living/living_target = target if(living_target.stat != DEAD) - return + return TRUE - INVOKE_ASYNC(source, PROC_REF(eat), eatable = living_target, delay = 3 SECONDS, update_health = -50) - return COMPONENT_HOSTILE_NO_ATTACK + eat(eatable = living_target, delay = 3 SECONDS, update_health = -50) + return FALSE - if(isitem(target)) //Eat items just to be annoying - var/obj/item/item_target = target - if(item_target.anchored) - return + if(!isitem(target)) //Eat items just to be annoying + return TRUE - INVOKE_ASYNC(source, PROC_REF(eat), eatable = item_target, delay = 2 SECONDS) - return COMPONENT_HOSTILE_NO_ATTACK + var/obj/item/item_target = target + if(item_target.anchored) + return TRUE + eat(eatable = item_target, delay = 2 SECONDS) + return FALSE /// Eat stuff. Delicious. Return TRUE if we ate something, FALSE otherwise. /// Required: `eatable` is the thing (item or mob) that we are going to eat. diff --git a/code/modules/mob/living/basic/space_fauna/mushroom.dm b/code/modules/mob/living/basic/space_fauna/mushroom.dm index de501eaea2ee..28f8fa460136 100644 --- a/code/modules/mob/living/basic/space_fauna/mushroom.dm +++ b/code/modules/mob/living/basic/space_fauna/mushroom.dm @@ -53,7 +53,6 @@ health = maxHealth AddElement(/datum/element/swabable, CELL_LINE_TABLE_WALKING_MUSHROOM, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(on_attacked_target)) /datum/ai_controller/basic_controller/mushroom blackboard = list( @@ -94,20 +93,17 @@ recover(attack_target) return TRUE -/mob/living/basic/mushroom/proc/on_attacked_target(mob/living/basic/attacker, atom/target) - SIGNAL_HANDLER - - if(!istype(target, /mob/living/basic/mushroom)) - return - var/mob/living/basic/mushroom/victim = target - if(victim.stat != DEAD) +/mob/living/basic/mushroom/melee_attack(mob/living/basic/mushroom/target, list/modifiers, ignore_cooldown = FALSE) + . = ..() + if(!.) + return FALSE + if(!istype(target) || target.stat != DEAD) return - if(victim.faint_ticker >= 3) - consume_mushroom(victim) + if(target.faint_ticker >= 3) + consume_mushroom(target) return - - victim.faint_ticker++ - visible_message(span_notice("[src] chews a bit on [victim].")) + target.faint_ticker++ + visible_message(span_notice("[src] chews a bit on [target].")) /mob/living/basic/mushroom/proc/consume_mushroom(mob/living/basic/mushroom/consumed) visible_message(span_warning("[src] devours [consumed]!")) diff --git a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm index 9f9598b11ae2..eae137787ed0 100644 --- a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm +++ b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm @@ -49,7 +49,6 @@ . = ..() ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) RegisterSignal(src, COMSIG_MOB_LOGIN, PROC_REF(on_login)) AddElementTrait(TRAIT_WADDLING, INNATE_TRAIT, /datum/element/waddling) @@ -169,21 +168,22 @@ special_moniker = "You better not screw with [p_their()] [selected_kingdom]... How do you become a [selected_title] of that anyways?" /// Checks if we are able to attack this object, as well as send out the signal to see if we get any special regal rat interactions. -/mob/living/basic/regal_rat/proc/pre_attack(mob/living/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/regal_rat/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(DOING_INTERACTION(src, REGALRAT_INTERACTION) || !allowed_to_attack(target)) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(SEND_SIGNAL(target, COMSIG_RAT_INTERACT, src) & COMPONENT_RAT_INTERACTED) - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE - if(isnull(mind)) - return + if(isnull(mind) || !combat_mode) + return TRUE - if(!combat_mode) - INVOKE_ASYNC(src, PROC_REF(poison_target), target) - return COMPONENT_HOSTILE_NO_ATTACK + poison_target(target) + return TRUE /// Checks if we are allowed to attack this mob. Will return TRUE if we are potentially allowed to attack, but if we end up in a case where we should NOT attack, return FALSE. /mob/living/basic/regal_rat/proc/allowed_to_attack(atom/the_target) diff --git a/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm b/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm index a094e20ec35c..8c879045a365 100644 --- a/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm +++ b/code/modules/mob/living/basic/space_fauna/supermatter_spider.dm @@ -44,11 +44,11 @@ AddElement(/datum/element/ai_retaliate) AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW) - RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(on_attack)) - /// Proc that we call on attacking something to dust 'em. -/mob/living/basic/supermatter_spider/proc/on_attack(mob/living/basic/source, atom/target) - SIGNAL_HANDLER +/mob/living/basic/supermatter_spider/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if(!.) + return FALSE if(isliving(target)) var/mob/living/victim = target @@ -57,14 +57,14 @@ victim.dust() if(single_use) death() - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE if(!isturf(target)) dust_feedback(target) qdel(target) if(single_use) death() - return COMPONENT_HOSTILE_NO_ATTACK + return FALSE /// Simple proc that plays the supermatter dusting sound and sends a visible message. /mob/living/basic/supermatter_spider/proc/dust_feedback(atom/target) From 2193e6f7e4f8b77e18644abdc1de4082a5e679c3 Mon Sep 17 00:00:00 2001 From: Koi <168238458+GremlinSeeker@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:00:43 -0500 Subject: [PATCH 082/119] New Icebox Ruin - Syndicate Biodome (#86957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About The Pull Request **A Dangerous Ruin Approaches!** A new high-risk, high reward ruin for icebox! Featuring some very dangerous enemies for some goodies. Small puzzle element included find the keycard to open the research directors office to lift the lockdown on the security post, from there you can lift the lockdown on the surgical rooms, all the while encountering feral gorillas. ## Why It's Good For The Game Icebox lacks some dangerous ruins with decent loot. The loot here is a WIP and I'm hoping can be discussed. I know icebox still is in need of some ruins and I had some ideas and threw this together. The map size is 45x45. I made it so you also can't just bee-line and cheese it by adding indestructable shutters, windows, and walls, along with a noteleport area flag to prevent cheesing of the area. In-game rendered screenshots: ![image](https://github.com/user-attachments/assets/deb4a3de-ab3b-4fad-9bc2-38edc58ddbfd) ![image](https://github.com/user-attachments/assets/16debd29-86e2-4a78-92eb-099234634c56) ![Uploading image.png…]() Editor Screenshots: ![image](https://github.com/user-attachments/assets/330efb1f-9cc2-457b-b0d8-75719c38b7a2) ![image](https://github.com/user-attachments/assets/281e9189-a447-4a25-8932-fca8797a1037) Notable loot Spawns: ![image](https://github.com/user-attachments/assets/b352b461-0a72-4b1f-83fe-57dbb39f2d39) ![image](https://github.com/user-attachments/assets/a3075def-dcb1-40a5-8d6f-c672e1528647) ![image](https://github.com/user-attachments/assets/50e352e5-15e6-45e8-a2fd-d96625b4f538) ![image](https://github.com/user-attachments/assets/a811231b-70d0-4730-a938-186320438782) ![image](https://github.com/user-attachments/assets/5c07b521-a36f-4e54-807f-6fee95672da7) ![image](https://github.com/user-attachments/assets/a7403e0c-ad09-4a64-8826-18181fc1a26c) ## Changelog :cl: map: New Icebox Ruin "Syndicate Biodome" added. /:cl: --- .../icemoon_underground_syndidome.dmm | 6550 +++++++++++++++++ code/datums/ruins/icemoon.dm | 6 + code/game/area/areas/ruins/icemoon.dm | 10 + code/game/objects/structures/window.dm | 26 + code/game/turfs/closed/indestructible.dm | 6 + 5 files changed, 6598 insertions(+) create mode 100644 _maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm new file mode 100644 index 000000000000..971b95825686 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm @@ -0,0 +1,6550 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/machinery/light/warm/directional/east, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/disk/data, +/obj/item/disk/data{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/disk/data{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ab" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/digital_clock/directional/west, +/obj/machinery/computer{ + dir = 4 + }, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ag" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/item/kirbyplants/organic/plant22, +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ah" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"al" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"aC" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/book/manual/wiki/cytology{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = 11; + pixel_x = -20 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ba" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark/side, +/area/ruin/syndibiodome) +"bb" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"bu" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/toy/figure/syndie{ + pixel_x = -9; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"bv" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"bw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/reed/style_2, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"bz" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"bB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "bsyndidomRD"; + name = "Lockdown Shutters" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"bC" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"bG" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"bJ" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = -6; + pixel_y = -8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"bK" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"bR" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"cb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ck" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"cm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"cu" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"cx" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"cB" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/smartfridge/organ, +/obj/item/organ/internal/alien/resinspinner, +/obj/item/organ/internal/eyes/night_vision, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"cE" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma/thirty, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"cG" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/structure/rack, +/obj/item/emergency_bed{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/emergency_bed{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/emergency_bed{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"cI" = ( +/obj/structure/door_assembly/door_assembly_highsecurity, +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"cJ" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"cN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"cO" = ( +/obj/structure/flora/tree/pine/style_2, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"di" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"dk" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"dl" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"dJ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"dS" = ( +/obj/machinery/door/airlock/hatch, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"ek" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/bloodred/sleepytime, +/obj/structure/sign/poster/contraband/energy_swords/directional/west, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"el" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"eH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"eK" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/ruin/syndibiodome) +"eL" = ( +/obj/structure/flora/tree/jungle/small/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"eM" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"eO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_scrubber, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"fc" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 0 + }, +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"fp" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"fI" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = 4; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"fO" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"fT" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"fU" = ( +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/highsecurity{ + name = "Syndicate Biodome Testing Facility" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"fV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"gf" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"gt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/reed/style_4{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"gu" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"gv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"gB" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"gH" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/generic, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"gX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"ha" = ( +/obj/machinery/exoscanner, +/obj/structure/lattice/catwalk, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"he" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"hf" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hj" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hm" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"hr" = ( +/obj/structure/flora/grass/jungle/b/style_3, +/obj/effect/gibspawner/human, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hA" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hF" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/closet/crate/bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"hQ" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"hR" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hS" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hU" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/item/kirbyplants/organic/plant22, +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hZ" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"ic" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"io" = ( +/obj/item/lead_pipe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"ip" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"iq" = ( +/obj/structure/flora/rock/pile/style_random, +/mob/living/carbon/human/species/monkey/angry, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ir" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"iG" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"iH" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/marker_beacon/lime, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/flora/bush/large{ + pixel_y = -4 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndibiodome) +"iI" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"iS" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/donk_co/directional/east, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"iV" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"iX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"iZ" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"ja" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/surgery_tray/full, +/obj/item/clothing/gloves/latex/coroner{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/clothing/mask/surgical{ + pixel_x = 6; + pixel_y = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"jd" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/paper_bin, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"je" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jp" = ( +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"jv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"jA" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jQ" = ( +/turf/closed/indestructible/syndicate/nodiagonal, +/area/icemoon/surface/outdoors/noteleport) +"jR" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jS" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = -7; + pixel_y = 9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"jT" = ( +/obj/structure/mirror/directional/east, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"jV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/machinery/light/small/red/directional/west, +/obj/item/food/popcorn/salty{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/food/popcorn/caramel{ + pixel_x = 9; + pixel_y = 7 + }, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"kb" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/chem_dispenser/drinks{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + name = "Kitchen Shutter Control"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"kd" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"km" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"kq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kw" = ( +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"kA" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kH" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kJ" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"kK" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kO" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kQ" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kX" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"la" = ( +/obj/structure/table/wood, +/obj/item/paper/carbon{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"lg" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/bodysposal/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"lh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/small/red/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"lm" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"lx" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/dna_scannernew, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"lH" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"me" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"my" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mA" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mF" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mK" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"mV" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mW" = ( +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"mZ" = ( +/turf/template_noop, +/area/template_noop) +"nk" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"nn" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"nx" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"nH" = ( +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"nO" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"nP" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"oc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"of" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"oj" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"oq" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ox" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"oA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"oG" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"oH" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"oK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"oQ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"oV" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/structure/microscope{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/petri_dish/random{ + pixel_x = 7; + pixel_y = 19 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"pg" = ( +/obj/structure/lattice, +/obj/structure/minecart_rail, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"pj" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"pA" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"pE" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"pN" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"pY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"qh" = ( +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qi" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"qx" = ( +/obj/machinery/vending/cigarette/syndicate, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qy" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qz" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"qC" = ( +/obj/structure/chair/office/tactical{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qN" = ( +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"qU" = ( +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qV" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"rs" = ( +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"rK" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/machinery/light/warm/directional/north, +/obj/machinery/digital_clock/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"rQ" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"rX" = ( +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"rZ" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"si" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"sj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"sD" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"sJ" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"sM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/generic, +/mob/living/basic/clown/mutant/glutton, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"sN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"sR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed/double, +/obj/item/bedsheet/syndie/double, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"tb" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"td" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"tk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"tq" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/toy/figure/syndie{ + pixel_x = 11; + pixel_y = -1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"ts" = ( +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"tx" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"tK" = ( +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"tL" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"ue" = ( +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 10 + }, +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ui" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"up" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"uq" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"us" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ux" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"uD" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"uE" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/machinery/reagentgrinder{ + pixel_x = -3; + pixel_y = 13 + }, +/obj/item/biopsy_tool{ + pixel_x = 24; + pixel_y = 5 + }, +/obj/item/swab{ + pixel_y = -8; + pixel_x = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/petri_dish/random{ + pixel_x = 5; + pixel_y = -1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"uG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"uH" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"uL" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"uS" = ( +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"uW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vc" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vg" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/obj/machinery/light/warm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vl" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/pickaxe/drill/diamonddrill{ + pixel_x = 0; + pixel_y = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vs" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vu" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"vw" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vx" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"vA" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vF" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vJ" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vK" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vN" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/dark_red/corner, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vO" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vP" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vZ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"wd" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/table/reinforced, +/obj/item/knife/butcher, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"wf" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wi" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/gloves/latex{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/mask/surgical{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ws" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/syndicatepilot, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"wx" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"wL" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"wQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"wR" = ( +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wT" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wY" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"xd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"xf" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xh" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xi" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"xk" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xn" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xq" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xr" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"xx" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"xz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"xB" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xH" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xL" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xN" = ( +/obj/structure/fluff/tram_rail/electric/anchor{ + dir = 1 + }, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"xP" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/clock/directional/west, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"xZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/button/door/directional/west{ + name = "Armory Lockdown"; + id = "biodomearmor" + }, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"yd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"yi" = ( +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/bodypart/leg/right/skeleton, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"yj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 8 + }, +/obj/structure/bodycontainer/crematorium/creamatorium{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"ys" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"yt" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes/cigars{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/lighter{ + pixel_x = 13; + pixel_y = -2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"yy" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"yH" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/effect/decal/cleanable/blood/trails, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"yL" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/machinery/digital_clock/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"yN" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"yU" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"zc" = ( +/obj/structure/flora/rock/pile/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"zd" = ( +/obj/structure/fluff/tram_rail/end, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"ze" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"zl" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/warm/directional/east, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"zu" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zy" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"zD" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"zF" = ( +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zG" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"zI" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zM" = ( +/turf/closed/indestructible/syndicate/nodiagonal, +/area/ruin/syndibiodome) +"zP" = ( +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"zT" = ( +/obj/machinery/door/airlock/external/ruin, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ab" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgery Room #1" + }, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Av" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Aw" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Ax" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ay" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/bananium/five, +/obj/item/stack/sheet/mineral/bananium/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"AA" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 4 + }, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"AI" = ( +/obj/structure/fluff/tram_rail/end, +/obj/structure/marker_beacon/yellow{ + pixel_x = 7; + pixel_y = -9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"AV" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/structure/closet/syndicate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/belt/security/webbing, +/obj/item/storage/toolbox/syndicate, +/obj/item/gun/ballistic/automatic/pistol, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ba" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/keycard/blue{ + name = "Syndicate Research Directors Room Key" + }, +/obj/item/paperwork/research{ + pixel_x = 7; + pixel_y = 19 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Bl" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Bo" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/blood/footprints, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Br" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Bs" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Bw" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"By" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"BY" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ct" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"CG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Security Post" + }, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"CK" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"CS" = ( +/obj/structure/flora/grass/jungle/a/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"CV" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"CW" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Db" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Dc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Dd" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"Dg" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Dl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Do" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Dr" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"DI" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"DL" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"DS" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Eq" = ( +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Es" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Ex" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/machinery/chem_master, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"EE" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"EO" = ( +/obj/machinery/griddle, +/obj/effect/mob_spawn/corpse/human/charredskeleton{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"EX" = ( +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"EY" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fd" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Fe" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fg" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/rock/pile/jungle, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Fl" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fn" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/grass/jungle/a/style_random, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Fp" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FE" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"FH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/tree/jungle/small/style_6{ + pixel_x = -33; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"FP" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"FT" = ( +/obj/structure/flora/grass/jungle/a/style_5, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FW" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ga" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Gh" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/free_key/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Gm" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Gp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/gibspawner/generic, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Gr" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/template_noop) +"Gx" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = 6; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Gz" = ( +/obj/machinery/door/airlock/freezer{ + name = "Kitchen" + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"GA" = ( +/obj/structure/fake_stairs/wood/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"GD" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"GM" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Hi" = ( +/obj/structure/fluff/tram_rail/electric/anchor, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = -3 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Hp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/sign/clock/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"Hs" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/bush/flowers_yw/style_3, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Hy" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/food/pizza/donkpocket{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"HB" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"Ia" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ib" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ie" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"If" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ii" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/salad{ + pixel_x = 0; + pixel_y = 5 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"Ij" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"IF" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"II" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"IR" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"IU" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_5, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Jg" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/railing/corner, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Jk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Jm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Jo" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/ruin/syndibiodome) +"Jz" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"JC" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/light/warm/directional/west, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = 7; + pixel_y = 2 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"JQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"JU" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"JZ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ki" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Kn" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ks" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"Kz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"KA" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"KE" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"KF" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"KS" = ( +/obj/structure/table/wood, +/obj/item/documents/syndicate{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/west{ + name = "Window Shutter Control"; + id = "bsyndidomRD" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"KX" = ( +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/ruin/syndibiodome) +"Lc" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/pdapainter/research, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/toy/figure/dsquad{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Le" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Lg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/machinery/light/small/dim/directional/west, +/obj/item/polymorph_belt/functioning, +/obj/item/pen/edagger, +/obj/item/clothing/under/costume/schoolgirl/red, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"Lm" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Lv" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/light/warm/dim/directional/north, +/turf/open/floor/stone, +/area/ruin/syndibiodome) +"Ly" = ( +/obj/structure/aquarium/prefilled, +/obj/structure/sign/poster/contraband/blood_geometer/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"LB" = ( +/obj/machinery/doppler_array, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"LJ" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"LN" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"LR" = ( +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/skeleton, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/bucket, +/obj/item/pushbroom, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"LU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Mb" = ( +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Biodome Entrance" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Mc" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ml" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Mo" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Mp" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Mr" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Mt" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/item/folder/syndicate/red{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/machinery/light/warm/directional/east, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/obj/item/reagent_containers/cup/tube{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/tube{ + pixel_x = 0; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Mu" = ( +/obj/structure/flora/tree/jungle/style_6, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"MB" = ( +/obj/effect/mob_spawn/corpse/human/doctor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MH" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"MK" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/siding/wideplating/dark/end, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"MO" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"MP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"MR" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MU" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"MX" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Nj" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/marker_beacon/lime, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/flora/bush/large{ + pixel_y = -4 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndibiodome) +"Nl" = ( +/obj/machinery/light/warm/dim/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"No" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"Ns" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Nt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"NB" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"NE" = ( +/obj/machinery/light/warm/directional/east, +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 1 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"NH" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/bush/flowers_yw, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/mob/living/basic/gorilla/genetics, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"NN" = ( +/obj/structure/flora/grass/jungle/b/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"NP" = ( +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Oi" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/gibspawner/generic, +/obj/machinery/digital_clock/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ol" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Os" = ( +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/tram/filled, +/turf/open/floor/pod/dark, +/area/ruin/syndibiodome) +"Oy" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Cytology Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"OD" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"OH" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"OI" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"OK" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"OL" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/east, +/obj/item/storage/belt/security/webbing, +/obj/item/gun/ballistic/automatic/pistol/contraband, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"OM" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/structure/sign/poster/contraband/free_drone/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ON" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"OO" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"OR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/bloodred/sleepytime, +/obj/item/pillow, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Pq" = ( +/obj/machinery/door/poddoor/shutters{ + name = "Biodome Transport Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Pw" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/surgery_tray/full, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/item/clothing/mask/surgical{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/gloves/latex{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/mmi/syndie{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/clothing/gloves/latex/coroner{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"PB" = ( +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"PC" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"PM" = ( +/obj/structure/flora/grass/jungle/a/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"PY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Qc" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Qn" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Qs" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgical Observation Room #1" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"QC" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 2 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"QE" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"QG" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"QM" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"QS" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ra" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/light/warm/directional/north, +/obj/item/bodypart/head/monkey, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ro" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Rv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Biodome Entrance" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"RG" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"RH" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/item/bodypart/leg/left/monkey, +/obj/item/bodypart/leg/right/monkey, +/obj/item/scalpel/advanced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"RK" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/ruin/syndibiodome) +"RL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"RX" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Se" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Sr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ss" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/light/warm/directional/west, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"St" = ( +/obj/structure/fans/tiny, +/obj/structure/door_assembly/door_assembly_grunge, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Sv" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"SA" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"SE" = ( +/obj/machinery/oven/range, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"SH" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"SJ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Genetic Testing" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"SM" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SO" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ST" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"SY" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tc" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Te" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/puzzle/keycard/blue_required{ + name = "Syndicate Research Director's Office" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Tf" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/ruin/syndibiodome) +"Tu" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/item/folder/syndicate{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/food/grown/banana/bunch{ + pixel_x = 7; + pixel_y = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tw" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ty" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"TC" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"TF" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/food/meat/rawcutlet/bear, +/obj/item/food/meat/rawcutlet/bear, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"TJ" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"TL" = ( +/obj/structure/chair/office/tactical, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"TM" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"TQ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"Uc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/fluff/fake_vent, +/obj/effect/gibspawner/generic, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"Ug" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Uh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ui" = ( +/obj/structure/rack, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/pickaxe/drill{ + pixel_x = 1; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ut" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Uu" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"Ux" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Uz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = 15; + pixel_y = 7 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/soup{ + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"UF" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"UG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"UI" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UK" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/computer_disk{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/computer_disk{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/button/door/directional/east{ + name = "Surgery Lockdown"; + id = "biosurglockdown" + }, +/obj/item/assembly/shock_kit{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"UL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"UN" = ( +/obj/structure/fluff/tram_rail/electric/anchor{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UW" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/closet/crate/bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Va" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgical Observation Room #2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Vj" = ( +/obj/structure/closet/secure_closet/cytology, +/obj/item/storage/box/swab, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Vt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Vv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Vw" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VG" = ( +/obj/machinery/light/warm/directional/east, +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"VJ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"VK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VN" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/structure/fans/tiny, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"Wq" = ( +/obj/structure/flora/tree/pine/style_random{ + pixel_x = -15; + pixel_y = -12 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Wz" = ( +/obj/structure/fluff/tram_rail/electric/anchor, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"WB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"WC" = ( +/obj/machinery/door/poddoor/shutters{ + name = "Lockdown Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"WH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"WJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"WR" = ( +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Xa" = ( +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Xt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/west, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"XC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"XE" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"XG" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"XM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/showcase/machinery/tv/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"Ya" = ( +/obj/effect/turf_decal/trimline/neutral/corner, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Yd" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Ye" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Yh" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Yi" = ( +/obj/structure/flora/grass/jungle/a/style_5, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Yj" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Yz" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"YD" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/jungle/c/style_2{ + pixel_x = -11; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"YG" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 0; + pixel_y = -2 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 11; + pixel_y = 5 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 0; + pixel_y = -3 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = -8; + pixel_y = -4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"YI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"YN" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"YS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"YV" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"YZ" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/mob/living/basic/gorilla/genetics, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Zd" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Ze" = ( +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Zf" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Zp" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ZD" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ZM" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ZR" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/stone, +/area/icemoon/surface/outdoors/noteleport) +"ZT" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"ZW" = ( +/obj/structure/curtain/bounty, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) + +(1,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +KA +Ns +Ns +JU +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(2,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +zM +zT +zM +ys +tL +JU +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(3,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +zM +zM +IF +zM +zM +LN +tL +UG +UG +JU +ys +mZ +mZ +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(4,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ck +ys +ys +zM +QM +VJ +MK +zM +ys +ys +ys +ck +zD +ys +ys +ys +ck +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(5,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +ys +ys +zM +zM +zM +OH +zM +zM +zM +ys +ys +LN +tL +JU +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(6,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +ys +zM +zM +zM +zM +Tc +bb +ui +oq +Mc +zM +zM +mK +ys +ys +tL +Ns +Ns +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(7,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +ys +ck +ys +ys +zM +Ut +vx +xi +kw +wL +xi +xH +ZD +oq +zM +zM +ys +ys +ys +ys +ck +tL +JU +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(8,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +Hi +zM +zM +mW +zM +Sr +zM +Ui +zl +YG +qN +Ux +Bw +zM +zM +zM +zM +qN +ys +LN +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(9,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +jS +ys +ys +zM +Ut +Ut +zM +Sr +zM +zM +zM +zM +qN +Gm +NP +OI +zM +AA +ab +zM +qN +ys +Aw +ys +LN +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(10,1,1) = {" +mZ +mZ +mZ +ys +Wz +RL +pg +pg +zM +zM +Ut +zM +zM +Ab +zM +Lm +kX +zM +qN +WH +JQ +vN +pj +UF +fT +Ly +Qc +ys +Aw +ys +ys +cO +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(11,1,1) = {" +mZ +mZ +mZ +ys +ys +bJ +zd +ys +zM +Db +Ut +zM +kK +MB +oQ +Jo +eK +bC +Tw +EE +oj +MR +CG +hZ +hm +LB +Qc +ys +tL +JU +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(12,1,1) = {" +mZ +mZ +mZ +Wz +ha +pg +pg +pg +zM +ic +Ut +zM +rK +YZ +yH +Tf +ba +Qs +ZM +WH +Fe +Ct +EX +YS +qB +fc +Qc +ys +ys +tL +UG +JU +LN +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(13,1,1) = {" +mZ +mZ +mZ +ys +ys +Gx +uD +ys +zM +wY +Ut +zM +cB +ja +oQ +KX +RK +ZW +sD +Vw +jR +qx +zM +yi +LR +UK +zM +ys +cO +ys +ys +Aw +ys +ys +cO +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(14,1,1) = {" +mZ +mZ +mZ +ys +Wz +RL +pg +pg +zM +zM +mW +zM +zM +Os +zM +xf +oH +zM +qN +Tx +vO +qN +zM +OL +AV +zM +zM +ys +ys +LN +ys +Aw +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(15,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +AI +ys +ys +zM +Ut +Ut +zM +zM +zM +zM +zM +zM +GM +Ax +Ij +ue +zM +zM +zM +zM +zM +zM +ys +ys +ys +tL +Ns +Ns +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(16,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +ys +ck +Hi +zM +zM +Ut +LA +Ro +zM +qN +qU +Ss +YI +XC +Zp +rs +eO +PY +qh +tk +xq +zM +zM +ys +ys +ys +ys +ys +tL +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(17,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ck +ys +ys +ys +ys +zM +zM +Ut +Ut +Ut +vx +je +kt +XC +Sr +tK +iV +VN +my +Sr +kw +FW +Sr +zM +zM +ys +cO +ys +LN +ys +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(18,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +zM +zM +zM +zM +zM +zM +zM +zM +YN +rQ +XC +nn +WB +qN +VT +Pq +qN +WB +ip +Sr +Sr +ux +zM +ys +ys +ys +ys +cO +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(19,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +Dd +Ex +kb +zM +km +SH +zM +wf +XC +nn +Ga +WB +hK +UL +bv +Fg +WB +WB +ip +Sr +vg +zM +ys +VG +ys +ys +ys +Aw +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(20,1,1) = {" +mZ +mZ +mZ +ys +ys +zM +zM +xP +dl +cJ +tx +JC +lH +hQ +WB +FE +zF +Ml +WB +SS +jp +Hs +Yz +Yz +Bl +WB +WB +my +QS +zM +zM +zM +zM +ys +ys +Dg +Ns +uG +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(21,1,1) = {" +mZ +mZ +ys +ys +ys +lm +SE +Yd +No +No +yy +Uz +Yh +MU +iZ +ah +hS +qN +RG +MH +FT +hf +Yi +eH +Zf +di +qN +us +Sr +iH +qN +vl +zM +zM +eM +up +ys +TQ +uG +ys +mZ +mZ +mZ +mZ +mZ +"} +(22,1,1) = {" +mZ +mZ +ys +ys +ck +lm +nO +SA +WJ +wd +Mp +Hy +Vt +OO +WB +Ty +vc +Mb +iX +PB +NN +Mu +NH +xd +zc +yN +WB +xn +jA +QC +WC +zG +qy +cI +Bo +wQ +zy +UI +II +Xa +ys +mZ +mZ +mZ +mZ +"} +(23,1,1) = {" +mZ +mZ +ys +ys +ys +lm +EO +sJ +No +No +iG +KE +Vt +Fd +Ki +kA +vc +qN +oK +PB +Ug +xr +bw +HB +yd +XG +Le +If +cm +ts +qN +xL +BY +zM +Lv +ys +Wq +ys +zD +ys +mZ +mZ +mZ +mZ +mZ +"} +(24,1,1) = {" +mZ +mZ +mZ +ys +ys +zM +zM +Dr +Mo +gH +td +Ii +LJ +el +WB +YV +TC +Rv +Bs +Yz +ST +nP +nx +gt +PM +yN +MO +SM +Sr +gf +Jk +bG +fp +fU +bR +ys +ys +ys +Jg +ys +mZ +mZ +mZ +mZ +mZ +"} +(25,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +NE +TF +iS +Gz +rX +bz +qN +PC +Fl +qN +IU +vu +iq +YD +Fp +xz +vu +cN +qN +us +Vv +iH +qN +cu +zM +zM +vZ +JU +ys +KA +ZR +ys +mZ +mZ +mZ +mZ +mZ +"} +(26,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +zM +zM +zM +zM +qN +vx +qN +FP +hj +Yj +WB +LH +hr +CS +eL +qV +cN +WB +WB +GD +ux +zM +zM +zM +zM +ys +ys +vZ +Dl +ZR +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(27,1,1) = {" +mZ +mZ +mZ +mZ +ys +ck +zM +zM +mW +Ut +ir +Ut +Ut +Ut +vx +kw +Eq +CV +Yj +WB +yj +fO +sj +dk +WB +WB +wf +xi +vg +zM +ys +Nl +ys +ys +ys +ys +zD +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(28,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +zM +MP +Ut +zM +zM +Ut +zM +zM +qN +QG +Sr +Eq +CV +WB +qN +ox +gu +qN +WB +wf +kO +Sr +QS +zM +xN +ys +ys +ys +ys +ys +tL +JU +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(29,1,1) = {" +mZ +mZ +ys +ys +ys +ys +zM +qa +Ut +zM +zM +dS +zM +pA +qN +VK +Sr +LT +mF +hj +pN +JZ +nk +Jz +CK +uL +xi +jd +zM +zM +ys +ys +ck +ys +ys +ys +ys +xx +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(30,1,1) = {" +mZ +ys +ys +ys +ys +zM +zM +Sv +Ut +zM +wx +RH +Do +UF +kd +WH +xi +Sr +Gh +xh +zI +qi +dJ +al +hR +QE +WR +zM +zM +ys +ys +ys +ys +ys +ys +ck +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(31,1,1) = {" +mZ +Gr +ck +ys +zM +zM +rZ +Ut +Ut +zM +Ra +RX +Do +sN +Va +bK +XC +By +zM +zM +Oy +Oy +zM +ag +vF +hU +zM +zM +zM +zM +ys +jS +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(32,1,1) = {" +mZ +mZ +ys +zM +zM +zM +zM +zM +Ut +zM +Pw +Oi +Do +Uu +kd +gv +Vv +zM +zM +zM +uE +oV +zM +zM +Ze +zM +zM +Xt +Se +zM +pg +pg +RL +UN +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(33,1,1) = {" +mZ +ys +ys +zM +Lg +xZ +yt +zM +ON +zM +zM +zM +zM +qN +qN +kq +Vv +zM +ym +zM +aC +ws +Oy +kH +vK +hA +WB +yU +Zd +zM +ys +zd +bJ +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(34,1,1) = {" +mZ +ys +zM +zM +Uc +qp +sR +zM +Ut +Ut +LA +mW +Ut +vx +Nt +uW +Vv +qN +Ks +zM +tb +sM +Oy +hF +cx +kQ +WB +FH +Fn +zM +pg +pg +pg +ha +xN +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(35,1,1) = {" +mZ +ys +bB +KS +he +OK +zM +zM +zM +zM +zM +zM +zM +qN +pY +XC +XC +qN +Ut +zM +Vj +Uh +Oy +Tu +XE +Mt +WB +iX +OD +zM +ys +uD +fI +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(36,1,1) = {" +mZ +ys +bB +la +TM +Es +Te +Vv +OM +yL +CW +oG +Qn +uq +Vv +Kn +Vv +qN +Ut +qN +qN +zP +qN +qN +SJ +qN +zM +kz +zM +zM +pg +pg +RL +UN +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(37,1,1) = {" +mZ +ys +bB +DL +jT +Lc +zM +uH +EY +WJ +Ya +vw +vw +iI +Vv +Vv +Vv +qN +SK +KF +IR +kJ +wT +kJ +uS +gB +pE +cb +zM +ys +ys +AI +ys +ys +ys +ck +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(38,1,1) = {" +mZ +ys +zM +zM +zM +zM +zM +zM +zu +WJ +NB +zM +zM +zM +zM +Vv +zM +zM +LU +qN +lg +vP +wR +vJ +Ye +ZT +zM +zM +zM +xN +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(39,1,1) = {" +mZ +ys +ys +Av +ze +hM +OR +zM +mV +WJ +Ol +zM +ek +Dc +zM +zM +zM +Mr +Ut +qN +Ia +vs +of +xj +TL +MX +zM +zM +ys +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(40,1,1) = {" +mZ +ys +ys +Av +FL +Gp +jv +St +qz +WJ +DS +mA +MM +bu +zM +Kz +gX +Ut +Ut +zM +lx +qC +SY +xk +Jm +Ib +zM +ys +ys +ys +ys +ys +ck +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(41,1,1) = {" +mZ +Gr +ck +zM +zM +zM +tq +zM +SO +xB +vA +zM +oA +fV +zM +Db +io +Ut +cE +zM +DI +Br +nH +oc +cG +zM +zM +ys +ck +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(42,1,1) = {" +mZ +mZ +ys +ys +ys +zM +zM +zM +zM +Nj +GA +zM +UW +zM +zM +qa +TJ +Ay +zM +zM +zM +wi +aa +Ba +zM +zM +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(43,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +zM +zM +jV +Ie +lh +zM +zM +zM +zM +zM +zM +zM +zM +ys +jQ +zM +zM +zM +zM +ys +ys +ys +ys +ck +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(44,1,1) = {" +mZ +mZ +mZ +mZ +ys +ck +ys +zM +XM +me +Hp +zM +zM +ys +ys +ys +ys +ys +ys +ck +ys +ys +ys +ys +ck +ys +mZ +mZ +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(45,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +zM +si +si +si +zM +ys +mZ +mZ +ys +ys +ys +mZ +ys +mZ +mZ +mZ +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 1209c7cba0ba..559907980e21 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -166,6 +166,12 @@ description = "This is where all of your paychecks went. Signed, the management." suffix = "icemoon_underground_mailroom.dmm" +/datum/map_template/ruin/icemoon/underground/biodome + name = "Ice-Ruin Syndicate Bio-Dome" + id = "biodome" + description = "Unchecked experimention gone awry." + suffix = "icemoon_underground_syndidome.dmm" + /datum/map_template/ruin/icemoon/underground/frozen_comms name = "Ice-Ruin Frozen Communicatons Outpost" id = "frozen_comms" diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index fa87fa832a1f..69d1e5abf4d5 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -54,6 +54,16 @@ /area/ruin/pizzeria/kitchen name = "\improper Moffuchi's Kitchen" + +/area/ruin/syndibiodome + name = "\improper Syndicate Biodome" + sound_environment = SOUND_AREA_SMALL_ENCLOSED + ambience_index = AMBIENCE_DANGER + area_flags = NOTELEPORT + mood_bonus = -10 + mood_message = "What the fuck." + + /area/ruin/planetengi name = "\improper Engineering Outpost" diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index d98c510d1af5..e27e88db3f43 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -887,6 +887,32 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw rad_insulation = RAD_EXTREME_INSULATION glass_material_datum = /datum/material/alloy/plastitaniumglass +/obj/structure/window/reinforced/plasma/plastitanium/indestructible + name = "plastitanium window" + desc = "A durable looking window made of an alloy of of plasma and titanium." + icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' + icon_state = "plastitanium_window-0" + base_icon_state = "plastitanium_window" + max_integrity = 1200 + wtype = "shuttle" + fulltile = TRUE + flags_1 = PREVENT_CLICK_UNDER_1 + obj_flags = CAN_BE_HIT + heat_resistance = 1600 + armor_type = /datum/armor/plasma_plastitanium + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM + canSmoothWith = SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM + explosion_block = 3 + damage_deflection = 21 //The same as reinforced plasma windows.3 + glass_type = /obj/item/stack/sheet/plastitaniumglass + glass_amount = 2 + rad_insulation = RAD_EXTREME_INSULATION + glass_material_datum = /datum/material/alloy/plastitaniumglass + name = "hardened shuttle window" + flags_1 = PREVENT_CLICK_UNDER_1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + /datum/armor/plasma_plastitanium melee = 95 bomb = 50 diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm index d3621345fadc..693661ca8728 100644 --- a/code/game/turfs/closed/indestructible.dm +++ b/code/game/turfs/closed/indestructible.dm @@ -142,6 +142,12 @@ NOVA EDIT REMOVAL END */ smoothing_groups = SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_SYNDICATE_WALLS canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_PLASTITANIUM_WALLS + SMOOTH_GROUP_SYNDICATE_WALLS +/turf/closed/indestructible/syndicate/nodiagonal + icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon_state = "map-shuttle_nd" + base_icon_state = "plastitanium_wall" + smoothing_flags = SMOOTH_BITMASK + /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' icon_state = "uranium_wall-0" From f33b529ab01ec135fca4bd25a9261f3be69dad96 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:00:57 +0000 Subject: [PATCH 083/119] Automatic changelog for PR #87226 [ci skip] --- html/changelogs/AutoChangeLog-pr-87226.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87226.yml diff --git a/html/changelogs/AutoChangeLog-pr-87226.yml b/html/changelogs/AutoChangeLog-pr-87226.yml new file mode 100644 index 000000000000..683f94d690bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87226.yml @@ -0,0 +1,5 @@ +author: "larentoun" +delete-after: True +changes: + - spellcheck: "Correct message is shown when YOU get devoured by an alien" + - spellcheck: "Fixed a few typos on some simple attack verbs being continuous" \ No newline at end of file From 012888d27f39eb33b2e1060c22484ae5276666b5 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:01:37 +0000 Subject: [PATCH 084/119] Automatic changelog for PR #86957 [ci skip] --- html/changelogs/AutoChangeLog-pr-86957.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-86957.yml diff --git a/html/changelogs/AutoChangeLog-pr-86957.yml b/html/changelogs/AutoChangeLog-pr-86957.yml new file mode 100644 index 000000000000..ff9344ab87c7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86957.yml @@ -0,0 +1,4 @@ +author: "GremlinSeeker" +delete-after: True +changes: + - map: "New Icebox Ruin \"Syndicate Biodome\" added." \ No newline at end of file From 62c106bd85a1647d3daf2b86b2aa8e0d70bcaae1 Mon Sep 17 00:00:00 2001 From: Emmett Gaines Date: Tue, 15 Oct 2024 16:02:34 -0400 Subject: [PATCH 085/119] Adds a warning and single retry to byond membership lookup (#86765) ## About The Pull Request A few people are having issues getting byond membership features disabled even though they're a byond member. This is *likely* due to byond server troubles, and according to lummox the lookup proc should return null when a connection issue happens. So I've put some handling in there for that case as well as a single retry. :cl: fix: Byond membership lookup should now warn you when it fails due to a connection failure. /:cl: # Conflicts: # code/modules/client/preferences.dm --- code/modules/client/preferences.dm | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 2e2afe94d0b1..011034fd39e4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -109,10 +109,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) load_path(parent.ckey) if(load_and_save && !fexists(path)) try_savefile_type_migration() - unlock_content = !!parent.IsByondMember() - donator_status = !!GLOB.donator_list[parent.ckey] //NOVA EDIT ADD - DONATOR CHECK - if(unlock_content || donator_status) //NOVA EDIT CHANGE - ADD DONATOR CHECK - max_save_slots = 50 //NOVA EDIT - ORIGINAL 8 + + refresh_membership() else CRASH("attempted to create a preferences datum without a client or mock!") load_savefile() @@ -633,3 +631,24 @@ GLOBAL_LIST_EMPTY(preferences_datums) default_randomization[preference_key] = RANDOM_ENABLED return default_randomization + +/datum/preferences/proc/refresh_membership() + var/byond_member = parent.IsByondMember() + if(isnull(byond_member)) // Connection failure, retry once + byond_member = parent.IsByondMember() + var/static/admins_warned = FALSE + if(!admins_warned) + admins_warned = TRUE + message_admins("BYOND membership lookup had a connection failure for a user. This is most likely an issue on the BYOND side but if this consistently happens you should bother your server operator to look into it.") + if(isnull(byond_member)) // Retrying didn't work, warn the user + log_game("BYOND membership lookup for [parent.ckey] failed due to a connection error.") + else + log_game("BYOND membership lookup for [parent.ckey] failed due to a connection error but succeeded after retry.") + + if(isnull(byond_member)) + to_chat(parent, span_warning("There's been a connection failure while trying to check the status of your BYOND membership. Reconnecting may fix the issue, or BYOND could be experiencing downtime.")) + + unlock_content = !!byond_member + donator_status = !!GLOB.donator_list[parent.ckey] // NOVA EDIT ADDITION - DONATOR CHECK + if(unlock_content || donator_status) // NOVA EDIT CHANGE - ORIGINAL: if(unlock_content) + max_save_slots = 50 //NOVA EDIT - ORIGINAL: max_save_slots = 8 From 722c2a5da62a8af3f0ba33046c70c050c987e687 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:05:33 +0000 Subject: [PATCH 086/119] Automatic changelog for PR #86765 [ci skip] --- html/changelogs/AutoChangeLog-pr-86765.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-86765.yml diff --git a/html/changelogs/AutoChangeLog-pr-86765.yml b/html/changelogs/AutoChangeLog-pr-86765.yml new file mode 100644 index 000000000000..226ba9eeaafd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86765.yml @@ -0,0 +1,4 @@ +author: "ninjanomnom" +delete-after: True +changes: + - bugfix: "Byond membership lookup should now warn you when it fails due to a connection failure." \ No newline at end of file From e464d1b655b4ef2f927282b6f945becf8798573b Mon Sep 17 00:00:00 2001 From: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:02:21 -0500 Subject: [PATCH 087/119] All melee weapon damage temporarily slows cyborgs rather than just thrown weapon damage (#87119) ## About The Pull Request Cyborgs will now be temporarily slowed down when hit with **any melee weapon**, based on the strength of the weapon. Thrown weapons maintain their behavior of slowing cyborgs, and they also now scale based on strength of the weapon. Thrown weapon slowdown is also stronger (3x stronger) than just hitting them. So you are still incentivized(?) to use the existing mechanic. To catch up to them, I guess. ## Why It's Good For The Game So, this mechanic was added as a new counterbalance to cyborgs due to no longer being stunned in a single flash. But 1 year later I polled the community, and the results speak for themself: ![image](https://github.com/user-attachments/assets/bafb043f-2201-4122-8c68-ccc746046c0a) ![image](https://github.com/user-attachments/assets/f71b7048-1b98-4c05-aebb-0b8393572f7e) It is my opinion that this mechanic is too obscure and a bit obtuse to work as a "mechanical counter" to the cyborg. "Yeah to catch up to a cyborg you have to throw a floor tile or a potted plant at them." "You mean I can't just *hit* them with the potted plant?" "No, you gotta chuck it." This PR aims to address that by tweaking the mechanic to trigger on any weapon attacks. Which in my mind, makes sense. "Hitting borgs with stuff will slow them down temporarily" is easier to parse and observe in practice than "THROWING stuff at borgs will slow them down". ## Changelog :cl: Melbert balance: Cyborgs are now slowed down when hit with any melee weapons, rather than ONLY when they are hit by THROWN melee weapons. The stronger the weapon, the stronger the slowdown. Thrown weapons are still more effective at slowing than just hitting them directly, however. /:cl: --- code/__DEFINES/robots.dm | 3 -- code/_onclick/item_attack.dm | 13 ------ code/datums/status_effects/debuffs/cyborg.dm | 43 +++++++++++-------- .../mob/living/silicon/ai/ai_defense.dm | 6 +++ .../mob/living/silicon/robot/robot_defense.dm | 10 ++--- .../mob/living/silicon/silicon_defense.dm | 17 ++++++++ 6 files changed, 54 insertions(+), 38 deletions(-) diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 6e45c20ce790..469669a74f80 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -29,9 +29,6 @@ // Cyborg defines -/// If an item does this or more throwing damage it will slow a borg down on hit -#define CYBORG_THROW_SLOWDOWN_THRESHOLD 10 - /// Special value to reset cyborg's lamp_cooldown #define BORG_LAMP_CD_RESET -1 /// How many watts per lamp power is consumed while the lamp is on. diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index d948e1d28daa..7653da7f7755 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -358,18 +358,6 @@ return FALSE -/mob/living/silicon/robot/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) - if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) - spark_system.start() - . = TRUE - return ..() || . - -/mob/living/silicon/ai/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) - if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) - spark_system.start() - . = TRUE - return ..() || . - /mob/living/carbon/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) var/obj/item/bodypart/hit_bodypart = get_bodypart(hit_zone) || bodyparts[1] if(!hit_bodypart.can_bleed()) @@ -484,4 +472,3 @@ return " in the [input_area]" return "" - diff --git a/code/datums/status_effects/debuffs/cyborg.dm b/code/datums/status_effects/debuffs/cyborg.dm index 0f95b494197a..30cea1af7455 100644 --- a/code/datums/status_effects/debuffs/cyborg.dm +++ b/code/datums/status_effects/debuffs/cyborg.dm @@ -1,22 +1,31 @@ -/// Reduce a cyborg's speed when you throw things at it -/datum/status_effect/borg_throw_slow - id = "borg_throw_slowdown" - alert_type = /atom/movable/screen/alert/status_effect/borg_throw_slow +/// Slows down a cyborg for a short time. +/datum/status_effect/borg_slow + id = "borg_slowdown" + alert_type = null duration = 3 SECONDS - status_type = STATUS_EFFECT_REPLACE + status_type = STATUS_EFFECT_REFRESH + remove_on_fullheal = TRUE + heal_flag_necessary = HEAL_CC_STATUS + /// Amount of slowdown being applied + var/slowdown = 1 -/datum/status_effect/borg_throw_slow/on_apply() - . = ..() - owner.add_movespeed_modifier(/datum/movespeed_modifier/borg_throw, update = TRUE) +/datum/status_effect/borg_slow/on_creation(mob/living/new_owner, slowdown = 1) + src.slowdown = slowdown + return ..() -/datum/status_effect/borg_throw_slow/on_remove() - . = ..() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/borg_throw, update = TRUE) +/datum/status_effect/borg_slow/on_apply() + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown, multiplicative_slowdown = slowdown) + return TRUE -/atom/movable/screen/alert/status_effect/borg_throw_slow - name = "Percussive Maintenance" - desc = "A sudden impact has triggered your collision avoidance routines, reducing movement speed." - icon_state = "weaken" +/datum/status_effect/borg_slow/on_remove() + owner.remove_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown) + +/datum/status_effect/borg_slow/refresh(mob/living/new_owner, slowdown = 1) + . = ..() + if(src.slowdown <= slowdown) + return + src.slowdown = slowdown + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown, multiplicative_slowdown = src.slowdown) -/datum/movespeed_modifier/borg_throw - multiplicative_slowdown = 0.9 +/datum/movespeed_modifier/borg_slowdown + variable = TRUE diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index 55a00a6ffc0b..3730ca05d0f7 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -152,3 +152,9 @@ var/atom/ai_structure = ai_mob_to_structure() ai_structure.balloon_alert(user, "disconnected neural network") return ITEM_INTERACT_SUCCESS + +/mob/living/silicon/ai/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) + if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) + spark_system.start() + . = TRUE + return ..() || . diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 6deab5f08e0a..d9caad422927 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -477,8 +477,8 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real return spark_system.start() -/mob/living/silicon/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - . = ..() - if (. || AM.throwforce < CYBORG_THROW_SLOWDOWN_THRESHOLD) - return - apply_status_effect(/datum/status_effect/borg_throw_slow) +/mob/living/silicon/robot/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) + if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) + spark_system.start() + . = TRUE + return ..() || . diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 54d673d466b2..baa2e9565a17 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -143,3 +143,20 @@ /mob/living/silicon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /atom/movable/screen/fullscreen/flash/static, length = 25) if(affect_silicon) return ..() + +/// If an item does this or more throwing damage it will slow a borg down on hit +#define CYBORG_SLOWDOWN_THRESHOLD 10 + +/mob/living/silicon/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + . = ..() + if(. || AM.throwforce < CYBORG_SLOWDOWN_THRESHOLD) // can cyborgs even catch things? + return + apply_status_effect(/datum/status_effect/borg_slow, AM.throwforce / 20) + +/mob/living/silicon/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) + . = ..() + if(damage_done < CYBORG_SLOWDOWN_THRESHOLD) + return + apply_status_effect(/datum/status_effect/borg_slow, damage_done / 60) + +#undef CYBORG_SLOWDOWN_THRESHOLD From 175774ac3fd8d69969e762567359e3d104b1b3ed Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 21:07:15 +0000 Subject: [PATCH 088/119] Automatic changelog for PR #87119 [ci skip] --- html/changelogs/AutoChangeLog-pr-87119.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87119.yml diff --git a/html/changelogs/AutoChangeLog-pr-87119.yml b/html/changelogs/AutoChangeLog-pr-87119.yml new file mode 100644 index 000000000000..658e39302148 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87119.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - balance: "Cyborgs are now slowed down when hit with any melee weapons, rather than ONLY when they are hit by THROWN melee weapons. The stronger the weapon, the stronger the slowdown. Thrown weapons are still more effective at slowing than just hitting them directly, however." \ No newline at end of file From f018d98b09fbd5de4ebd9db690a4cd035f0354f8 Mon Sep 17 00:00:00 2001 From: Y0SH1M4S73R Date: Wed, 16 Oct 2024 13:18:30 -0400 Subject: [PATCH 089/119] syndicate sleeper agents can forge custom objectives (#87180) ## About The Pull Request The removal of the ability for midround traitors to take progression objectives had the run-on effect of preventing them from using their uplink to view their primary objectives, which also means they cant forge custom objectives. This PR changes that, and provides additional logic in uplink ui code to account for uplinks belonging to traitors with one type of objective but not the other. ## Why It's Good For The Game Fixes #86763 --- code/datums/components/uplink.dm | 7 +- .../Uplink/calculateDangerLevel.tsx | 2 - .../packages/tgui/interfaces/Uplink/index.tsx | 193 +++++++++--------- 3 files changed, 97 insertions(+), 105 deletions(-) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index d64022d22b87..82b12d555ac0 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -191,7 +191,8 @@ data["current_progression_scaling"] = SStraitor.current_progression_scaling data["maximum_potential_objectives"] = uplink_handler.maximum_potential_objectives - if(uplink_handler.has_objectives) + + if(uplink_handler.primary_objectives) var/list/primary_objectives = list() for(var/datum/objective/task as anything in uplink_handler.primary_objectives) var/list/task_data = list() @@ -201,7 +202,9 @@ task_data["task_name"] = "DIRECTIVE [uppertext(GLOB.phonetic_alphabet[length(primary_objectives) + 1])]" task_data["task_text"] = task.explanation_text primary_objectives += list(task_data) + data["primary_objectives"] = primary_objectives + if(uplink_handler.has_objectives) var/list/potential_objectives = list() for(var/index in 1 to uplink_handler.potential_objectives.len) var/datum/traitor_objective/objective = uplink_handler.potential_objectives[index] @@ -216,7 +219,7 @@ objective_data["id"] = index active_objectives += list(objective_data) - data["primary_objectives"] = primary_objectives + data["potential_objectives"] = potential_objectives data["active_objectives"] = active_objectives data["completed_final_objective"] = uplink_handler.final_objective diff --git a/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx b/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx index d67dd37391e3..2b9dfb98f449 100644 --- a/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx +++ b/tgui/packages/tgui/interfaces/Uplink/calculateDangerLevel.tsx @@ -70,8 +70,6 @@ export const ranks: Rank[] = [ }, ]; -export const dangerDefault = 50 * 600; - let lastMinutesThan = -1; export const dangerLevelsTooltip = ( diff --git a/tgui/packages/tgui/interfaces/Uplink/index.tsx b/tgui/packages/tgui/interfaces/Uplink/index.tsx index 3ed7d34a214e..124d6f3d5050 100644 --- a/tgui/packages/tgui/interfaces/Uplink/index.tsx +++ b/tgui/packages/tgui/interfaces/Uplink/index.tsx @@ -18,7 +18,6 @@ import { Window } from '../../layouts'; import { calculateDangerLevel, calculateProgression, - dangerDefault, dangerLevelsTooltip, } from './calculateDangerLevel'; import { GenericUplink, Item } from './GenericUplink'; @@ -285,101 +284,93 @@ export class Uplink extends Component<{}, UplinkState> { - {!!has_progression && ( - -
- + +
+ + {!!has_progression && ( - - Your current level of threat. Threat - determines - {has_objectives - ? ' the severity of secondary objectives you get and ' - : ' '} - what items you can purchase.  + Your current level of threat. Threat + determines + {has_objectives + ? ' the severity of secondary objectives you get and ' + : ' '} + what items you can purchase.  + + {/* A minute in deciseconds */} + Threat passively increases by{' '} + + {calculateProgression( + current_progression_scaling, + )} + +  every minute + + {Math.abs(progressionPercentage) > 0 && ( - {/* A minute in deciseconds */} - Threat passively increases by{' '} - - {calculateProgression( - current_progression_scaling, - )} + Because your threat level is + {progressionPercentage < 0 + ? ' ahead ' + : ' behind '} + of where it should be, you are getting + + {progressionPercentage}% -  every minute + {progressionPercentage < 0 ? 'less' : 'more'}{' '} + threat every minute - {Math.abs(progressionPercentage) > 0 && ( - - Because your threat level is - {progressionPercentage < 0 - ? ' ahead ' - : ' behind '} - of where it should be, you are getting - - {progressionPercentage}% - - {progressionPercentage < 0 - ? 'less' - : 'more'}{' '} - threat every minute - - )} - {dangerLevelsTooltip} - + )} + {dangerLevelsTooltip} - )) || - "Your current threat level. You are a killing machine and don't need to improve your threat level." + } > - {/* If we have no progression, - just give them a generic title */} - {has_progression - ? calculateDangerLevel(progression_points, false) - : calculateDangerLevel(dangerDefault, false)} + {calculateDangerLevel(progression_points, false)} - + )} + {(primary_objectives || has_objectives) && ( + {primary_objectives && ( + this.setState({ currentTab: 0 })} + > + Primary Objectives + + )} {!!has_objectives && ( - <> - this.setState({ currentTab: 0 })} - > - Primary Objectives - - this.setState({ currentTab: 1 })} - > - Secondary Objectives - - + this.setState({ currentTab: 1 })} + > + Secondary Objectives + )} { textOverflow: 'ellipsis', }} icon="store" - selected={currentTab === 2 || !has_objectives} + selected={currentTab === 2} onClick={() => this.setState({ currentTab: 2 })} > Market + )} - {!!lockable && ( - - - - )} - -
-
- )} + {!!lockable && ( + + + + )} +
+
+
- {(currentTab === 0 && has_objectives && ( + {(currentTab === 0 && primary_objectives && ( Date: Wed, 16 Oct 2024 17:18:52 +0000 Subject: [PATCH 090/119] Automatic changelog for PR #87180 [ci skip] --- html/changelogs/AutoChangeLog-pr-87180.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87180.yml diff --git a/html/changelogs/AutoChangeLog-pr-87180.yml b/html/changelogs/AutoChangeLog-pr-87180.yml new file mode 100644 index 000000000000..16b585c3120a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87180.yml @@ -0,0 +1,4 @@ +author: "Y0SH1M4S73R" +delete-after: True +changes: + - bugfix: "Syndicate Sleeper Agents can once again forge custom objectives" \ No newline at end of file From 96e73e5d2a94d76928ec6b41bf7f2176a7cc691b Mon Sep 17 00:00:00 2001 From: Xackii <120736708+Xackii@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:47:05 +0300 Subject: [PATCH 091/119] Big manipulator update. MORE MANIPULATES!!! (#86827) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About The Pull Request Added new settings for the manipulator: 0. Added item in claw overlay. Now you see what object manipulator is using. 1. Type to take. Manipulator can take items and crates(also livings but with emag). https://github.com/user-attachments/assets/8d0a557f-339e-44c5-a48d-5c81c20ca611 2. Modes. Manipulator now have drop/use/throw mode that change manipulate process with object in claws: - Drop: Can drop item in floor/storage (selected by priority). - Use: Will try to use item in claws on living/structures/machinery (selected by priority). Need tasting. - Throw: Just throwing the item away!!! Throw range can be modified. https://github.com/user-attachments/assets/71a204c5-2816-4826-9540-9fcb9699046b https://github.com/user-attachments/assets/d38c80cc-3018-45bd-92d3-d1e693e4d586 https://github.com/user-attachments/assets/0b745fe6-df3b-4682-8f21-91d87feae84a 3. Priorities. Now you can configure what types of objects the manipulator will work. Manipulator will choose which object to work with using a priority list: selects the type with the lowest number. If manipulator cannot find an item from priority 1, he will look from priority 2 and so on. can be disabled by clicking on the only 1 priority button. In this case, the manipulator will not finish its work and will wait until the desired type of object appears. 4. Emag act. Now manipulator can be emaged. In this case he will have the opportunity to take living mobs and drop em or THROW AWAY!!!! https://github.com/user-attachments/assets/27d8b710-ec59-4931-9ca4-4770e929ea7b If you find secret functions that I didn’t write about, it means I forgot about them. ## Why It's Good For The Game ![Manipulator_Enjouer](https://github.com/user-attachments/assets/246cac47-410a-4e5b-955d-12c84b7fec63) As many have said, Manipulator has too few functions. Adds more options for building -death traps- logistics networks and other automated manipulation capabilities. ## Changelog :cl: add: Manipulator now shows what objects he is dragging. add: Manipulator now can take more then just items. add: Manipulator now have 3 modes to choice: drop/use/throw. add: Manipulator now have priorities. add: Manipulator now can be emaged. /:cl: --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> --- code/game/machinery/big_manipulator.dm | 415 +++++++++++++++++- .../tgui/interfaces/BigManipulator.tsx | 106 ++++- 2 files changed, 502 insertions(+), 19 deletions(-) diff --git a/code/game/machinery/big_manipulator.dm b/code/game/machinery/big_manipulator.dm index 8d2bde3e145a..27c927697fc8 100644 --- a/code/game/machinery/big_manipulator.dm +++ b/code/game/machinery/big_manipulator.dm @@ -1,3 +1,11 @@ +#define DROP_ITEM_MODE 1 +#define USE_ITEM_MODE 2 +#define THROW_ITEM_MODE 3 + +#define TAKE_ITEMS 1 +#define TAKE_CLOSETS 2 +#define TAKE_HUMANS 3 + /// Manipulator Core. Main part of the mechanism that carries out the entire process. /obj/machinery/big_manipulator name = "Big Manipulator" @@ -24,10 +32,36 @@ var/turf/take_turf /// Turf where we drop items. var/turf/drop_turf + /// How will manipulator manipulate the object? drop it out by default. + var/manipulate_mode = DROP_ITEM_MODE + /// Priority settings depending on the manipulator mode that are available to this manipulator. Filled during Initialize. + var/list/priority_settings_for_drop = list() + var/list/priority_settings_for_use = list() + /// What priority settings are available to use at the moment. + /// We also use this list to sort priorities from ascending to descending. + var/list/allowed_priority_settings = list() /// Obj inside manipulator. var/datum/weakref/containment_obj + /// Obj used as filter + var/datum/weakref/filter_obj /// Other manipulator component. - var/obj/effect/manipulator_hand + var/obj/effect/big_manipulator_hand/manipulator_hand + /// Here some ui setting we can on/off: + /// If activated: after item was used manipulator will also drop it. + var/drop_item_after_use = TRUE + /// If acrivated: will select only 1 priority and will not continue to look at the priorities below. + var/only_highest_priority = FALSE + /// Var for throw item mode: changes the range from which the manipulator throws an object. + var/manipulator_throw_range = 1 + /// Selected type that manipulator will take for take and drop loop. + var/atom/selected_type + /// Just a lazy number to change selected_type type in array. + var/selected_type_by_number = 1 + /// List where we can set selected type. Taking items by Initialize. + var/list/allowed_types_to_pick_up = list( + /obj/item, + /obj/structure/closet, + ) /obj/machinery/big_manipulator/Initialize(mapload) . = ..() @@ -35,9 +69,19 @@ create_manipulator_hand() RegisterSignal(manipulator_hand, COMSIG_QDELETING, PROC_REF(on_hand_qdel)) manipulator_lvl() + set_up_priority_settings() + selected_type = allowed_types_to_pick_up[selected_type_by_number] if(on) press_on(pressed_by = null) +/// Init priority settings list for all modes. +/obj/machinery/big_manipulator/proc/set_up_priority_settings() + for(var/datum/manipulator_priority/priority_for_drop as anything in subtypesof(/datum/manipulator_priority/for_drop)) + priority_settings_for_drop += new priority_for_drop + for(var/datum/manipulator_priority/priority_for_use as anything in subtypesof(/datum/manipulator_priority/for_use)) + priority_settings_for_use += new priority_for_use + update_priority_list() + /obj/machinery/big_manipulator/examine(mob/user) . = ..() . += "You can change direction with alternative wrench usage." @@ -45,10 +89,12 @@ /obj/machinery/big_manipulator/Destroy(force) . = ..() qdel(manipulator_hand) - if(isnull(containment_obj)) - return - var/obj/obj_resolve = containment_obj?.resolve() - obj_resolve?.forceMove(get_turf(obj_resolve)) + if(!isnull(containment_obj)) + var/obj/containment_resolve = containment_obj?.resolve() + containment_resolve?.forceMove(get_turf(containment_resolve)) + if(!isnull(filter_obj)) + var/obj/filter_resolve = filter_obj?.resolve() + filter_resolve?.forceMove(get_turf(filter_resolve)) /obj/machinery/big_manipulator/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) . = ..() @@ -59,6 +105,15 @@ if(!manipulator_hand) create_manipulator_hand() +/obj/machinery/big_manipulator/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + if(obj_flags & EMAGGED) + return FALSE + balloon_alert(user, "overloaded functions installed") + obj_flags |= EMAGGED + allowed_types_to_pick_up += /mob/living + return TRUE + /obj/machinery/big_manipulator/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool, time = 1 SECONDS) @@ -175,7 +230,9 @@ on = !on say("Output blocked") return FALSE - for(var/obj/item/take_item in take_turf.contents) + for(var/take_item in take_turf.contents) + if(!check_filter(take_item)) + continue try_take_thing(take_turf, take_item) break @@ -200,22 +257,121 @@ on = FALSE say("Not enough energy!") return - if(isitem(target)) - start_work(target) + if(!check_filter(target)) + return + start_work(target) /// Second take and drop proc from [take and drop procs loop]: /// Taking our item and start manipulator hand rotate animation. /obj/machinery/big_manipulator/proc/start_work(atom/movable/target) target.forceMove(src) containment_obj = WEAKREF(target) + manipulator_hand.update_claw(containment_obj) on_work = TRUE do_rotate_animation(1) - addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) - -/// Third take and drop proc from [take and drop procs loop]: -/// Drop our item and start manipulator hand backward animation. + check_next_move(target) + +/// 2.5 take and drop proc from [take and drop procs loop]: +/// Choose what we will do with our item by checking the manipulate_mode. +/obj/machinery/big_manipulator/proc/check_next_move(atom/movable/target) + switch(manipulate_mode) + if(DROP_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + if(USE_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(use_thing), target), working_speed) + if(THROW_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(throw_thing), target), working_speed) + +/// 3.1 take and drop proc from [take and drop procs loop]: +/// Drop our item. +/// Checks the priority to drop item not only ground but also in the storage. /obj/machinery/big_manipulator/proc/drop_thing(atom/movable/target) - target.forceMove(drop_turf) + var/where_we_drop = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(where_we_drop)) + addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + return + if((where_we_drop == drop_turf) || !isitem(target)) + target.forceMove(drop_turf) + target.dir = get_dir(get_turf(target), get_turf(src)) + else + target.forceMove(where_we_drop) + finish_manipulation() + +/// 3.2 take and drop proc from [take and drop procs loop]: +/// Use our item on random atom in drop turf contents then +/// Starts manipulator hand backward animation by defualt, but +/// You can also set the setting in ui so that it does not return to its privious position and continues to use object in its hand. +/// Checks the priority so that you can configure which object it will select: mob/obj/turf. +/// Also can use filter to interact only with obj in filter. +/obj/machinery/big_manipulator/proc/use_thing(atom/movable/target) + var/obj/obj_resolve = containment_obj?.resolve() + if(isnull(obj_resolve)) + finish_manipulation() + return + /// If we forceMoved from manipulator we are free now. + if(obj_resolve.loc != src) + finish_manipulation() + return + if(!isitem(target)) + target.forceMove(drop_turf) /// We use only items + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() + return + var/obj/item/im_item = target + var/atom/type_to_use = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(type_to_use)) + check_end_of_use(im_item, target, item_was_used = FALSE) + return + var/mob/living/carbon/human/dummy/living_manipulator_lmfao = create_abstract_living() + living_manipulator_lmfao.put_in_active_hand(im_item) + if(!type_to_use.attackby(im_item, living_manipulator_lmfao)) + im_item.melee_attack_chain(living_manipulator_lmfao, type_to_use) + do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + if(LAZYLEN(living_manipulator_lmfao.do_afters)) + RegisterSignal(living_manipulator_lmfao, COMSIG_DO_AFTER_ENDED, PROC_REF(manipulator_finish_do_after)) + else + im_item.forceMove(src) + qdel(living_manipulator_lmfao) + check_end_of_use(im_item, item_was_used = TRUE) + +/// Wait whan manipulator finish do_after and kill em. +/obj/machinery/big_manipulator/proc/manipulator_finish_do_after(mob/living/carbon/human/dummy/abstract_manipulator) + SIGNAL_HANDLER + + var/obj/item/my_item = abstract_manipulator.get_active_held_item() + my_item.forceMove(src) + qdel(abstract_manipulator) + +/// Check what we gonna do next with our item. Drop it or use again. +/obj/machinery/big_manipulator/proc/check_end_of_use(obj/item/my_item, item_was_used) + if(drop_item_after_use && item_was_used) + my_item.forceMove(drop_turf) + my_item.dir = get_dir(get_turf(my_item), get_turf(src)) + finish_manipulation() + return + addtimer(CALLBACK(src, PROC_REF(use_thing), my_item), working_speed) + +/// 3.3 take and drop proc from [take and drop procs loop]: +/// Throw item away!!! +/obj/machinery/big_manipulator/proc/throw_thing(atom/movable/target) + if(!(isitem(target) || isliving(target))) + target.forceMove(drop_turf) + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() /// We throw only items and living mobs + return + var/obj/item/im_item = target + im_item.forceMove(drop_turf) + im_item.throw_at(get_edge_target_turf(get_turf(src), drop_here), manipulator_throw_range - 1, 2) + src.do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + finish_manipulation() + +/// End of thirds take and drop proc from [take and drop procs loop]: +/// Starts manipulator hand backward animation. +/obj/machinery/big_manipulator/proc/finish_manipulation() + containment_obj = null + manipulator_hand.update_claw(null) do_rotate_animation(0) addtimer(CALLBACK(src, PROC_REF(end_work)), working_speed) @@ -234,6 +390,68 @@ /obj/machinery/big_manipulator/proc/finish_rotate_animation(backward) animate(manipulator_hand, transform = matrix(180 * backward, MATRIX_ROTATE), working_speed*0.5) +/obj/machinery/big_manipulator/proc/check_filter(obj/item/what_item) + var/filtered_obj = filter_obj?.resolve() + if(!istype(what_item, selected_type)) + return + /// We use filter only on items. closets, humans and etc don't need filter check. + if(istype(what_item, /obj/item)) + if((filtered_obj && !istype(what_item, filtered_obj))) + return FALSE + return TRUE + +/// Create dummy to force him use our item and then delete him. +/obj/machinery/big_manipulator/proc/create_abstract_living() + var/mob/living/carbon/human/dummy/abstract_living = new /mob/living/carbon/human/dummy(get_turf(src)) + abstract_living.alpha = 0 + abstract_living.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + ADD_TRAIT(abstract_living, TRAIT_UNDENSE, INNATE_TRAIT) + abstract_living.move_resist = INFINITY + abstract_living.invisibility = INVISIBILITY_ABSTRACT + abstract_living.real_name = abstract_living.name = name + abstract_living.mind_initialize() + return abstract_living + +/// Proc called when we changing item interaction mode. +/obj/machinery/big_manipulator/proc/change_mode() + manipulate_mode++ + if(manipulate_mode > THROW_ITEM_MODE) + manipulate_mode = DROP_ITEM_MODE + update_priority_list() + is_work_check() + +/// Update priority list in ui. Creating new list and sort it by priority number. +/obj/machinery/big_manipulator/proc/update_priority_list() + allowed_priority_settings = list() + var/list/priority_mode_list + if(manipulate_mode == DROP_ITEM_MODE) + priority_mode_list = priority_settings_for_drop.Copy() + if(manipulate_mode == USE_ITEM_MODE) + priority_mode_list = priority_settings_for_use.Copy() + if(isnull(priority_mode_list)) + return + for(var/we_need_increasing in 1 to length(priority_mode_list)) + for(var/datum/manipulator_priority/what_priority in priority_mode_list) + if(what_priority.number != we_need_increasing) + continue + allowed_priority_settings += what_priority + +/// Proc thet return item by type in priority list. Selects item and increasing priority number if don't found req type. +/obj/machinery/big_manipulator/proc/search_type_by_priority_in_drop_turf(list/priority_list) + var/lazy_counter = 1 + for(var/datum/manipulator_priority/take_type in priority_list) + /// If we set only_highest_priority on TRUE we don't go to priority below. + if(lazy_counter > 1 && only_highest_priority) + return null + /// If we need turf we don't check turf.contents and just return drop_turf. + if(take_type.what_type == /turf) + return drop_turf + lazy_counter++ + for(var/type_in_priority in drop_turf.contents) + if(!istype(type_in_priority, take_type.what_type)) + continue + return type_in_priority + /// Proc call when we press on/off button /obj/machinery/big_manipulator/proc/press_on(pressed_by) if(pressed_by) @@ -257,7 +475,29 @@ /obj/machinery/big_manipulator/ui_data(mob/user) var/list/data = list() + var/mode + switch(manipulate_mode) + if(DROP_ITEM_MODE) + mode = "Drop" + if(USE_ITEM_MODE) + mode = "Use" + if(THROW_ITEM_MODE) + mode = "Throw" data["active"] = on + data["item_as_filter"] = filter_obj?.resolve() + data["selected_type"] = selected_type.name + data["manipulate_mode"] = mode + data["drop_after_use"] = drop_item_after_use + data["highest_priority"] = only_highest_priority + data["throw_range"] = manipulator_throw_range + var/list/priority_list = list() + data["settings_list"] = list() + for(var/datum/manipulator_priority/allowed_setting as anything in allowed_priority_settings) + var/list/priority_data = list() + priority_data["name"] = allowed_setting.name + priority_data["priority_width"] = allowed_setting.number + priority_list += list(priority_data) + data["settings_list"] = priority_list return data /obj/machinery/big_manipulator/ui_act(action, params, datum/tgui/ui) @@ -268,6 +508,71 @@ if("on") press_on(pressed_by = TRUE) return TRUE + if("drop") + if(isnull(containment_obj)) + return + var/obj/obj_resolve = containment_obj?.resolve() + obj_resolve?.forceMove(get_turf(obj_resolve)) + finish_manipulation() + return TRUE + if("change_take_item_type") + selected_type_by_number++ + if(selected_type_by_number > allowed_types_to_pick_up.len) + selected_type_by_number = 1 + selected_type = allowed_types_to_pick_up[selected_type_by_number] + is_work_check() + return TRUE + if("change_mode") + change_mode() + return TRUE + if("add_filter") + var/mob/living/living_user = ui.user + if(!isliving(living_user)) + return FALSE + var/obj/give_obj_back = filter_obj?.resolve() + if(give_obj_back) + give_obj_back.forceMove(get_turf(src)) + filter_obj = null + is_work_check() + to_chat(living_user, span_warning("Filter removed")) + return TRUE + var/obj/item/get_active_held_item = living_user.get_active_held_item() + if(isnull(get_active_held_item)) + to_chat(living_user, span_warning("You need item in hand to put it as filter")) + return FALSE + filter_obj = WEAKREF(get_active_held_item) + get_active_held_item.forceMove(src) + is_work_check() + return TRUE + if("drop_use_change") + drop_item_after_use = !drop_item_after_use + return TRUE + if("highest_priority_change") + only_highest_priority = !only_highest_priority + return TRUE + if("change_priority") + var/new_priority_number = params["priority"] + for(var/datum/manipulator_priority/new_order as anything in allowed_priority_settings) + if(new_order.number != new_priority_number) + continue + new_order.number-- + check_similarities(new_order.number) + break + update_priority_list() + return TRUE + if("change_throw_range") + manipulator_throw_range++ + if(manipulator_throw_range > 7) + manipulator_throw_range = 1 + return TRUE + +/// Using on change_priority: looks for a setting with the same number that we set earlier and reduce it. +/obj/machinery/big_manipulator/proc/check_similarities(number_we_minus) + for(var/datum/manipulator_priority/similarities as anything in allowed_priority_settings) + if(similarities.number != number_we_minus) + continue + similarities.number++ + break /// Manipulator hand. Effect we animate to show that the manipulator is working and moving something. /obj/effect/big_manipulator_hand @@ -276,7 +581,91 @@ icon = 'icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi' icon_state = "hand" layer = LOW_ITEM_LAYER + appearance_flags = KEEP_TOGETHER | LONG_GLIDE | TILE_BOUND | PIXEL_SCALE anchored = TRUE greyscale_config = /datum/greyscale_config/manipulator_hand pixel_x = -32 pixel_y = -32 + /// We get item from big manipulator and takes its icon to create overlay. + var/datum/weakref/item_in_my_claw + /// Var to icon that used as overlay on manipulator claw to show what item it grabs. + var/mutable_appearance/icon_overlay + +/obj/effect/big_manipulator_hand/update_overlays() + . = ..() + if(isnull(item_in_my_claw)) + icon_overlay = null + return + var/atom/movable/item_data = item_in_my_claw.resolve() + icon_overlay = mutable_appearance(item_data.icon, item_data.icon_state, item_data.layer, src, item_data.appearance_flags) + icon_overlay.color = item_data.color + icon_overlay.appearance = item_data.appearance + icon_overlay.pixel_x = 32 + calculate_item_offset(is_x = TRUE) + icon_overlay.pixel_y = 32 + calculate_item_offset(is_x = FALSE) + . += icon_overlay + +/// Updates item that is in the claw. +/obj/effect/big_manipulator_hand/proc/update_claw(clawed_item) + item_in_my_claw = clawed_item + update_appearance() + +/// Calculate x and y coordinates so that the item icon appears in the claw and not somewhere in the corner. +/obj/effect/big_manipulator_hand/proc/calculate_item_offset(is_x = TRUE) + var/offset + switch(dir) + if(NORTH) + offset = is_x ? 0 : 32 + if(SOUTH) + offset = is_x ? 0 : -32 + if(EAST) + offset = is_x ? 32 : 0 + if(WEST) + offset = is_x ? -32 : 0 + return offset + +/// Priorities that manipulator use to choose to work on item with type same with what_type. +/datum/manipulator_priority + /// Name that user will see in ui. + var/name + /// What type carries this priority. + var/what_type + /** + * Place in the priority queue. The lower the number, the more important the priority. + * Doesn’t really matter what number you enter, user can set priority for themselves, + * BUT!!! + * Don't write the same numbers in the same parent otherwise something may go wrong. + */ + var/number + +/datum/manipulator_priority/for_drop/on_floor + name = "Drop on Floor" + what_type = /turf + number = 1 + +/datum/manipulator_priority/for_drop/in_storage + name = "Drop in Storage" + what_type = /obj/item/storage + number = 2 + +/datum/manipulator_priority/for_use/on_living + name = "Use on Living" + what_type = /mob/living + number = 1 + +/datum/manipulator_priority/for_use/on_structure + name = "Use on Structure" + what_type = /obj/structure + number = 2 + +/datum/manipulator_priority/for_use/on_machinery + name = "Use on Machinery" + what_type = /obj/machinery + number = 3 + +#undef DROP_ITEM_MODE +#undef USE_ITEM_MODE +#undef THROW_ITEM_MODE + +#undef TAKE_ITEMS +#undef TAKE_CLOSETS +#undef TAKE_HUMANS diff --git a/tgui/packages/tgui/interfaces/BigManipulator.tsx b/tgui/packages/tgui/interfaces/BigManipulator.tsx index 6a5501b56647..c1419daa3bde 100644 --- a/tgui/packages/tgui/interfaces/BigManipulator.tsx +++ b/tgui/packages/tgui/interfaces/BigManipulator.tsx @@ -1,29 +1,123 @@ import { BooleanLike } from 'common/react'; import { useBackend } from '../backend'; -import { Button, Section, Stack } from '../components'; +import { Button, Section, Stack, Table } from '../components'; import { Window } from '../layouts'; type ManipulatorData = { active: BooleanLike; + drop_after_use: BooleanLike; + highest_priority: BooleanLike; + manipulate_mode: string; + settings_list: PrioritySettings[]; + throw_range: number; + item_as_filter: string; + selected_type: string; +}; + +type PrioritySettings = { + name: string; + priority_width: number; }; export const BigManipulator = (props) => { const { data, act } = useBackend(); - const { active } = data; + const { + active, + manipulate_mode, + settings_list, + drop_after_use, + highest_priority, + throw_range, + item_as_filter, + selected_type, + } = data; return ( - + -
- +
act('on')} /> - + } + > + +
+ {settings_list.length >= 2 && ( +
+ {settings_list.length >= 2 && ( +
+ )} ); From d604298507d2991ab6073cc15f5f10482def1da5 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 19:47:31 +0000 Subject: [PATCH 092/119] Automatic changelog for PR #86827 [ci skip] --- html/changelogs/AutoChangeLog-pr-86827.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-86827.yml diff --git a/html/changelogs/AutoChangeLog-pr-86827.yml b/html/changelogs/AutoChangeLog-pr-86827.yml new file mode 100644 index 000000000000..238195d82bc6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86827.yml @@ -0,0 +1,8 @@ +author: "Xackii" +delete-after: True +changes: + - rscadd: "Manipulator now shows what objects he is dragging." + - rscadd: "Manipulator now can take more then just items." + - rscadd: "Manipulator now have 3 modes to choice: drop/use/throw." + - rscadd: "Manipulator now have priorities." + - rscadd: "Manipulator now can be emaged." \ No newline at end of file From 91fa41874f9ab7902845b888a7b7e42d66bcef98 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:00:36 +0200 Subject: [PATCH 093/119] Minor chainsaw code refactor (#87198) ## About The Pull Request Closes #87140 by making chainsaws use transforming component like all other sane items. Also cleanup. ## Changelog :cl: fix: Chainsaws can now be sharpened code: Chainsaws have received a minor code refactor /:cl: --- code/game/objects/items/chainsaw.dm | 123 +++++++++++++--------------- icons/obj/weapons/chainsaw.dmi | Bin 1149 -> 1106 bytes 2 files changed, 58 insertions(+), 65 deletions(-) diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index dad44d69e7ea..11b04240dd4b 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -4,12 +4,11 @@ name = "chainsaw" desc = "A versatile power tool. Useful for limbing trees and delimbing humans." icon = 'icons/obj/weapons/chainsaw.dmi' - icon_state = "chainsaw_off" + icon_state = "chainsaw" lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' obj_flags = CONDUCTS_ELECTRICITY force = 13 - var/force_on = 24 w_class = WEIGHT_CLASS_HUGE throwforce = 13 throw_speed = 2 @@ -23,68 +22,28 @@ actions_types = list(/datum/action/item_action/startchainsaw) tool_behaviour = TOOL_SAW toolspeed = 1.5 //Turn it on first you dork - var/on = FALSE - ///The looping sound for our chainsaw when running + var/force_on = 24 + /// The looping sound for our chainsaw when running var/datum/looping_sound/chainsaw/chainsaw_loop - ///how long it takes to behead someone with this chainsaw. + /// How long it takes to behead someone with this chainsaw. var/behead_time = 15 SECONDS -/obj/item/chainsaw/apply_fantasy_bonuses(bonus) - . = ..() - force_on = modify_fantasy_variable("force_on", force_on, bonus) - if(on) - force = force_on - -/obj/item/chainsaw/remove_fantasy_bonuses(bonus) - force_on = reset_fantasy_variable("force_on", force_on) - if(on) - force = force_on - return ..() - /obj/item/chainsaw/Initialize(mapload) . = ..() chainsaw_loop = new(src) apply_components() + AddComponent( \ + /datum/component/transforming, \ + force_on = force_on, \ + throwforce_on = force_on, \ + throw_speed_on = throw_speed, \ + sharpness_on = SHARP_EDGED, \ + hitsound_on = 'sound/items/weapons/chainsawhit.ogg', \ + w_class_on = w_class, \ + ) -/obj/item/chainsaw/suicide_act(mob/living/carbon/user) - if(on) - user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE) - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) - if(myhead) - myhead.dismember() - else - user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE) - return BRUTELOSS - -/obj/item/chainsaw/attack_self(mob/user) - on = !on - to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") - force = on ? force_on : initial(force) - throwforce = on ? force_on : initial(force) - icon_state = "chainsaw_[on ? "on" : "off"]" - var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) - butchering.butchering_enabled = on - - if(on) - hitsound = 'sound/items/weapons/chainsawhit.ogg' - chainsaw_loop.start() - else - hitsound = SFX_SWING_HIT - chainsaw_loop.stop() + RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) - toolspeed = on ? 0.5 : initial(toolspeed) //Turning it on halves the speed - if(src == user.get_active_held_item()) //update inhands - user.update_held_items() - update_item_action_buttons() - -/** - * Handles adding components to the chainsaw. Added in Initialize() - * - * Applies components to the chainsaw. Added as a separate proc to allow for - * variance between subtypes - */ /obj/item/chainsaw/proc/apply_components() AddComponent(/datum/component/butchering, \ speed = 3 SECONDS, \ @@ -93,14 +52,34 @@ butcher_sound = 'sound/items/weapons/chainsawhit.ogg', \ disabled = TRUE, \ ) - AddComponent(/datum/component/two_handed, require_twohands=TRUE) + AddComponent(/datum/component/two_handed, require_twohands = TRUE) -/obj/item/chainsaw/doomslayer - name = "THE GREAT COMMUNICATOR" - desc = span_warning("VRRRRRRR!!!") - armour_penetration = 100 - force_on = 30 - behead_time = 2 SECONDS +/obj/item/chainsaw/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + to_chat(user, span_notice("As you pull the starting cord dangling from [src], [active ? "it begins to whirr" : "the chain stops moving"].")) + var/datum/component/butchering/butchering = GetComponent(/datum/component/butchering) + butchering.butchering_enabled = active + if (active) + chainsaw_loop.start() + else + chainsaw_loop.stop() + + toolspeed = active ? 0.5 : initial(toolspeed) + update_item_action_buttons() + +/obj/item/chainsaw/suicide_act(mob/living/carbon/user) + if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) + user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) + playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE) + return BRUTELOSS + + user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE) + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) + if(myhead) + myhead.dismember() + return BRUTELOSS /obj/item/chainsaw/attack(mob/living/target_mob, mob/living/user, params) if (target_mob.stat != DEAD) @@ -124,6 +103,23 @@ return TRUE +/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) + return target_mob.get_bodypart(BODY_ZONE_HEAD) == head + +/** + * Handles adding components to the chainsaw. Added in Initialize() + * + * Applies components to the chainsaw. Added as a separate proc to allow for + * variance between subtypes + */ + +/obj/item/chainsaw/doomslayer + name = "THE GREAT COMMUNICATOR" + desc = span_warning("VRRRRRRR!!!") + armour_penetration = 100 + force_on = 30 + behead_time = 2 SECONDS + /obj/item/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(attack_type == PROJECTILE_ATTACK) owner.visible_message(span_danger("Ranged attacks just make [owner] angrier!")) @@ -131,9 +127,6 @@ return TRUE return FALSE -/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) - return target_mob.get_bodypart(BODY_ZONE_HEAD) == head - /obj/item/chainsaw/mounted_chainsaw name = "mounted chainsaw" desc = "A chainsaw that has replaced your arm." diff --git a/icons/obj/weapons/chainsaw.dmi b/icons/obj/weapons/chainsaw.dmi index 1d48b63e45949d54ca165497c7a3d089a3c44c89..b2a0385e70b6f58830c9c1284afc33abb51445f7 100644 GIT binary patch delta 1085 zcmV-D1j76M2+|0UB!7c?R9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5; z&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3K9+IU_MMuQ;(hK0i;1i!&v& zs2C_}$iy&*iuN@Ob1pEz9mYembvi3r&M|jv6+8B1qm`)O)aS) zg&qt8qlQIF1kQ&D!iM3dm_13_qhhGDjHb)lMyH*#dAV0~-niF&TRT5E`|jE9J-^@i z-S6Jr?R3@V|Mhdn7Y;Xgx1z>|4fGq$U+yHC=*hqQ<($pMmu~>)@inqJE1da5> zoL^A$B-qk&olH%A5c{FAVrqmI{Hij*@Au1yO(qjDn=gUe?Pl-y^*!2GL$u&mWk4_x zWYPH0M1TO0X4-oS4W$>^`_0Xl361^zkN3q0E%;N-W`DETnV4{qp`oEvL4Z*u@k#D@ z)q`08>lq!S=j6d=dNymf#yl`u;Dqs<)*Ro_X|+V zpCTo1ZMD!%D~-Y)k?!Z+3?EBEnfPbz8=M+WVJ#R8!q-$C45qzgt+@EaUUO&sAQ@Xp z)PkSg1b-=cFc7eI_w+BP!7D2(kkM&^lWze$4Vf^%yb*PRbidthQZ)1Egy!aE zW6sYE*b*=~IT3XbDSSR3WOP(RnKLwjDuBY{dQmv>c|kw;6O2Y9*zI;k+Su4g78VxR z=i7yBo&C19wwUvaUxQS{y7!0mopTJ%na+Ze_oma8W4S;!*29Bl9t6GJ z1Nr$!Sbt#PnQX%JZoQKU4#$X9DL0L;4veYhmpuni5fv5XR+r1&sU$|OM_8){n4uX+ zB3T=HshpIbF@r%bZZ9n@@0gA>6P0q)NDWiVuj)Z)r!yICUuj>9hbArfRT=O|4fGq$U+yHC=*x&|W3%~|909ybyxB=J#u)z($7JvZa09RfU?b@b zNa*?iEubm`0s%jayIkxq=k0$xCkhg}K0pg3bbWvpkX-_FY3g6%aM34roGwcThYAW| zEi2rnKTg9y+H)u^DPgV2Y>wN@L$)$RQ-8R&_B=QoBTyHL!%-sL&lVVglGgyMO*(db z`THDkEO+H99RB5H+ZQ(L;L6o&ahV080r&3SA^Tk)AYHDG7ogM!#FG)SOQ79$gJ9JM zU_tgRaMRWy)P%C3tgJ#&%#PFt6r}^qeD+Az=flN2i;G`aq!X5|&&LxIx;{V)@HYAY zYysHd24D-o1~&j(05-S**aEP@4Zs$F4Q>Fo0BrmP52nB9!TFjx00000NkvXXu0mjf D^I7*s delta 1128 zcmV-u1eg2L2>l3fFDZ*Bkpc${s^u?oW=6a~=P_Z639En-sF zx0Hn7ko-cCs#RzWs5JENJ9N!>hSTFVFJ{BE8v6KB)1JZ5Qjs{4YY~j=NFw_5jO~xw zZ1Z4rk7!e__PFo4BjHl1U<@Qev2S0&7)dz)vR^Qi)E6c7S$_`Ud=J!P-X=_|p&vwZ zE(>{C+rt0=1FlI#K~#90?V8VP9AzBFKa=bs6^YFuA!*Zvf`{G=38l@d^({U0w9}BI zl(?FIVi;Mv?s{m2Ou<8>LPdj!3B4o*^-#i~batfHQ?b>9V65Z^HYFt*+}-$k*xfjb zO|oGo`8H-gFn_%JgZF)&dG_6Rcjo;XuIqA;X^}P{O&ox<0cqj@qzyl+u~Z8x)I00Ips8 za90C~LO)ahm2w4u;9O9NcL{(sS~1QCUPYbKM~c;fq>o|>9! zH4J8(X+Q3|{o4EYA^S=@ZJkG0YwKXGt%G;JUSjr`%k9o{9O>y{e0)4NG&JUG zWBF#a4TIUjU!N0Jza=PcSvEk{vTTfPS|Iymt=dEB+nG$< zU@~!ozJI=#wmWwmXDm-(>}J|1^bOZ_ah$PyrCiQBSFhGatiQXt;l;&8o+~I$-h!oz z&-2T|>Xs*X^48{yl<#}mvTPnaxWDK634l~;Fl$*hmvXr+2MMyizRr5}E6C5ku5$dv z?hWJmk0*3b{z)>KWMX2%07(8cqBmQuJ+D|W&3|-uWo2dW^57eIs~B z$Z^KP#<#TXv70|U=Yrw1DHhy9~J>46R=jRumIvsuA)6HsoUa>GU zbAK}%R=**DouZV|&HnkQPro`*{Ar3pKU4t!2jYt%X#>*40Z1E=CJsQ_fHZLc(gvi7 z1CTZ#&4CXf)IGr{P)dpFANUy%2Ow=gnm7Py1Jc9+NE?tQ4j@ct>H2^u*w^&|QLwM; z1EOGG*9SyF!y4fGp5942ec}fI+7Gw$!hf;jEFZ2OcfY^Or-{!P=N?Vw!wINP=`X(gYS-%n=H}*5O6jKsAx3cDT%tZenuaytQZ8?t_hCJK z`gE$Pwxd=baH0+F{kRm^pRX40Jbd^YQ2luf?$195uL0uq0n!1)7emqpq=^HN uHXuzLfV2T=;sB%#ND~JjZ9tj>AHYA}RRjOTiBi%40000 Date: Wed, 16 Oct 2024 20:00:57 +0000 Subject: [PATCH 094/119] Automatic changelog for PR #87198 [ci skip] --- html/changelogs/AutoChangeLog-pr-87198.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87198.yml diff --git a/html/changelogs/AutoChangeLog-pr-87198.yml b/html/changelogs/AutoChangeLog-pr-87198.yml new file mode 100644 index 000000000000..90e21393f989 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87198.yml @@ -0,0 +1,5 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Chainsaws can now be sharpened" + - code_imp: "Chainsaws have received a minor code refactor" \ No newline at end of file From 70d3b54135e633820a9a198ed967491415752093 Mon Sep 17 00:00:00 2001 From: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:02:08 +0200 Subject: [PATCH 095/119] Blade Heretic/Side knowledges improvements/fixes. (#87167) ## About The Pull Request Blade Heretic has received a few changes. The cost of crafting a Dark blade has been reduced in exchange for a lower blade capacity, The Dark blade itself has received a new sprite. ![Updated Dark Blade](https://github.com/user-attachments/assets/f5dde8a3-6827-4d4f-a530-0a1a01965a63) Realignment pulls you out stuns a bit faster and grants baton resistance while active. You may now infuse your blades with a (weaker) mansus grasp upon unlocking the ability to dual wield, they also gain increased demolition modifier. Mawed Crucible now slowly refills and requires fewer organs to brew a potion; you may now use a charge to refill your eldritch flask. The potion themselves have also received changes more on that below. The cooldown on the cursed curio shield has been reduced. Lionhunter's rifle no longer does increased damage on scoped targets, instead it marks them with Mansus grasp and teleports the heretic to them. Lastly Blade ascension has been fixed, you once again get the Ring of Blades. ## Why It's Good For The Game Oh boy, here we go. # **Blade Heretic changes** Blade Heretic sits in a pretty decent spot, I wouldn't call the path weak by any stretch of imagination, but there are few aspects that could be reasonably improved without changing the overall strength of the path significantly. **Sundered Blade** I think these are too expensive to craft, especially compared to the other blades which require very basic materials. It's not uncommon to run into situations where you just cannot afford to make more than a set of blades, and i'd argue it's not fun for the crew to have their titanium or silver deposit drained every time a blade heretic rolls around. As a solution, i'm halving the cost in exchange of lowering the cap from 5 to 4 blades. **Realingment** This spell is lowkey awful; 25 stamina regen per second really doesn't make much of a difference when you are getting chain batoned, I have footage of blade heretics dying to a single shove stun while this abilty was active. The stamina regen and reduce immobility timer has been buffed on top of granting baton resist so long as it stays active, so you can properly get in fighting position without getting constantly knocked down. Mind you, It's still no CNS rebooter, so stuns will still yield a few seconds of vulnerability. **Swift Blades reworked into Empowered Blades** You may now use your Mansus grasp to infuse your Dark blades. It comes with the tradeoff of losing the knockdown and the stamina damage, you still retain the backstab. Video Demonstration: https://www.youtube.com/watch?v=9cO9BOD8Zz4 Dark Blades also gain increased demolition modifier. Dual wielding puts the heretic in the annoying position of having to switch between the second Blade and an empty hand to use Mansus grasp. Blade is supposed to be a master of melee combat, but they are still a dark mage, so why shouldn't they be able to infuse their blades? It still comes with a tradeoff, I'd reckon super sweaty players will still want to hotswap, but hey, the option is there. The added demolition modifier is to provide Blade with some way of breaking in and out of places, given the path has no jaunts or utility whatsoever, this seems reasonable to me. Lastly Malestrom of Silver finally works now; you once again get the blade aura upon ascending. # **Side Knowledge changes** **Mawed Crucible** The crucible now passively refills, and has a special interaction to refill the Eldritch Flask, the potion themselves have received changes. - Xray Potion: duration bumped from 60 to 90 seconds. - Wall phasing potion: Duration bumped from 15 to 40 seconds, you may now recall to your original location at will. - Potion of the Wounded soldier: Upon expiring, it heals your wounds and regrows missing limbs. **Reasoning**: Let's be honest here, noone ever makes this thing, the cost of making 1 potion is exorbitant and the potion themselves are not even that good to begin with. I'm not gonna explain every change in detail, but considering the crucible is one of the OG side knoweldges and you hardly hear anyone talk about it, we can safely give it a few buffs. **Unfathomable Curio** Cooldown on the shield has been halved. **Reasoning**: discussed it with Rex (the guy who created it), 60 seconds for 1 block is a bit excessive , 30 seconds seems reasonable enough. **Lionhunter's Rifle** Made a bit easier to craft and maintain, it can now be stored in the vest slot of the Eldritch Robes. The homing projectile now fully penetrates armor instead of having bonus damage; it also marks the victim with Mansus grasp and teleports the Heretic directly to them, the homing on the projectile itself has been improved. **Reasoning**: another side knowledge that sadly barely sees any play. Frankly this gun just doesn't have a purpose to exist, long range weaponry don't really mix with Heretic toolkit all that well, as you want to get close to your target to drag em to the spook dimension, not snipe 'em from a distance Lionhunter now works as an initiation tool, upon marking the target, the Heretic transforms into the fired bullet until it connects, applying mansus grasp on the victim. Keep in mind you still need xray or thermals to use the rifle to its full potential, either from the Crucible or the ashen medallion. Video Demonstration: https://www.youtube.com/watch?v=AXmidKrx-Fg As a trade off, the damage has been halved from 60 to 30. ## Changelog :cl: balance: Sundered Blades now require 1 Titanium or Silver bar to craft and their capacity has been reduced to 4. balance: Realignment pulls you out of stuns a bit faster and grants baton resist while active. balance: Blade Heretic dual wielding now let's you infuse Your Dark Blades with a weaker mansus grasp and grants an increase in demolition modifier. fix: Malestrom of Silver grants the ring of protective blades once again. balance: Mawed Crucible requires 3 organs to brew one potion, passively refills overtime and can be used to refill the Eldritch Flask balance: Brew of Crucible soul effect bumped to 40 seconds and can be ended early. balance: Brew Of Dusk and Dawn effect bumped to 3 minutes. balance: Brew of the wounded soldier now offers a very minor passive heal and fully heals your wounds and limbs upon expiring. balance: Cursed Curio shield now recharges faster. balance: Lionhunter's rifle has been reworked, it now fits on the eldritch robes vest slots, it's cheaper to craft it and its ammunition and works as an initiation tool. /:cl: --------- Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/dcs/signals/signals_object.dm | 2 + code/__DEFINES/dcs/signals/signals_spell.dm | 4 + code/__HELPERS/game.dm | 29 ++++++ code/datums/components/scope.dm | 10 ++ .../antagonists/heretic/heretic_knowledge.dm | 4 +- .../heretic/items/heretic_armor.dm | 2 +- .../heretic/items/heretic_blades.dm | 55 ++++++++++- .../antagonists/heretic/items/hunter_rifle.dm | 46 ++++++++- .../heretic/items/unfathomable_curio.dm | 4 +- .../antagonists/heretic/knowledge/ash_lore.dm | 2 +- .../heretic/knowledge/blade_lore.dm | 90 +++++++++++------- .../heretic/knowledge/cosmic_lore.dm | 2 +- .../heretic/knowledge/moon_lore.dm | 2 +- .../heretic/knowledge/rust_lore.dm | 2 + .../heretic/knowledge/side_blade_rust.dm | 12 +-- .../heretic/knowledge/void_lore.dm | 2 +- .../antagonists/heretic/magic/realignment.dm | 10 +- .../heretic/status_effects/buffs.dm | 36 ++++++- .../heretic/structures/carving_knife.dm | 1 + .../heretic/structures/mawed_crucible.dm | 33 ++++++- .../spells/spell_types/touch/_touch.dm | 4 + icons/mob/inhands/64x64_lefthand.dmi | Bin 130428 -> 135033 bytes icons/mob/inhands/64x64_righthand.dmi | Bin 132866 -> 138304 bytes icons/obj/weapons/khopesh.dmi | Bin 38734 -> 44193 bytes 24 files changed, 282 insertions(+), 70 deletions(-) diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index a9cc41b7d8d8..53ac323b61cd 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -15,6 +15,8 @@ /// from /obj/obj_reskin: (mob/user, skin) #define COMSIG_OBJ_RESKIN "obj_reskin" +#define COMSIG_LIONHUNTER_ON_HIT "lionhunter_on_hit" + // /obj/machinery signals ///from /obj/machinery/atom_break(damage_flag): (damage_flag) diff --git a/code/__DEFINES/dcs/signals/signals_spell.dm b/code/__DEFINES/dcs/signals/signals_spell.dm index 08074116be2c..ebbdcc4e2bee 100644 --- a/code/__DEFINES/dcs/signals/signals_spell.dm +++ b/code/__DEFINES/dcs/signals/signals_spell.dm @@ -66,6 +66,10 @@ // Touch spells /// Sent from /datum/action/cooldown/spell/touch/do_hand_hit: (atom/hit, mob/living/carbon/caster, obj/item/melee/touch_attack/hand) #define COMSIG_SPELL_TOUCH_HAND_HIT "spell_touch_hand_cast" +/// Sent from /datum/action/cooldown/spell/touch/cast: (mob/living/carbon/cast_on) +#define COMSIG_TOUCH_HANDLESS_CAST "spell_touch_handless_cast" + /// Return this to prevent the hand spawning/unspawning + #define COMPONENT_CAST_HANDLESS (1<<0) // Jaunt Spells /// Sent from datum/action/cooldown/spell/jaunt/before_cast, before the mob enters jaunting as a pre-check: (datum/action/cooldown/spell/spell) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 92c725bd81bb..1740402e6279 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -285,6 +285,35 @@ return pick(possible_loc) +///Checks to see if `atom/source` is behind `atom/target` +/proc/check_behind(atom/source, atom/target) + // Let's see if source is behind target + // "Behind" is defined as 3 tiles directly to the back of the target + // x . . + // x > . + // x . . + + // No tactical spinning allowed + if(HAS_TRAIT(target, TRAIT_SPINNING)) + return TRUE + + // We'll take "same tile" as "behind" for ease + if(target.loc == source.loc) + return TRUE + + // We'll also assume lying down is behind, as mob directions when lying are unclear + if(isliving(target)) + var/mob/living/living_target = target + if(living_target.body_position == LYING_DOWN) + return TRUE + + // Exceptions aside, let's actually check if they're, yknow, behind + var/dir_target_to_source = get_dir(target, source) + if(target.dir & REVERSE_DIR(dir_target_to_source)) + return TRUE + + return FALSE + ///Disable power in the station APCs /proc/power_fail(duration_min, duration_max) for(var/obj/machinery/power/apc/current_apc as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc)) diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm index 46388a15e26e..626668a48e07 100644 --- a/code/datums/components/scope.dm +++ b/code/datums/components/scope.dm @@ -170,8 +170,10 @@ tracker_owner_ckey = user.ckey if(user.is_holding(parent)) RegisterSignals(user, list(COMSIG_MOB_SWAP_HANDS, COMSIG_QDELETING), PROC_REF(stop_zooming)) + RegisterSignal(user, COMSIG_ATOM_ENTERING, PROC_REF(on_enter_new_loc)) else // The item is likely worn (eg. mothic cap) RegisterSignal(user, COMSIG_QDELETING, PROC_REF(stop_zooming)) + RegisterSignal(user, COMSIG_ATOM_ENTERING, PROC_REF(on_enter_new_loc)) var/static/list/capacity_signals = list( COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_LIVING_STATUS_PARALYZE, @@ -182,6 +184,13 @@ ADD_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) return TRUE +///Stop scoping if the `newloc` we move to is not a turf +/datum/component/scope/proc/on_enter_new_loc(datum/source, atom/newloc, atom/old_loc, list/atom/old_locs) + SIGNAL_HANDLER + + if(!isturf(newloc)) + stop_zooming(tracker.owner) + /datum/component/scope/proc/on_incapacitated(mob/living/source, amount = 0, ignore_canstun = FALSE) SIGNAL_HANDLER @@ -207,6 +216,7 @@ COMSIG_LIVING_STATUS_STUN, COMSIG_MOB_SWAP_HANDS, COMSIG_QDELETING, + COMSIG_ATOM_ENTERING, )) REMOVE_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index 94ecc0f9d77f..fcdb1f194582 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -303,7 +303,7 @@ var/datum/status_effect/eldritch/mark_type /datum/heretic_knowledge/mark/on_gain(mob/user, datum/antagonist/heretic/our_heretic) - RegisterSignal(user, COMSIG_HERETIC_MANSUS_GRASP_ATTACK, PROC_REF(on_mansus_grasp)) + RegisterSignals(user, list(COMSIG_HERETIC_MANSUS_GRASP_ATTACK, COMSIG_LIONHUNTER_ON_HIT), PROC_REF(on_mansus_grasp)) RegisterSignal(user, COMSIG_HERETIC_BLADE_ATTACK, PROC_REF(on_eldritch_blade)) /datum/heretic_knowledge/mark/on_lose(mob/user, datum/antagonist/heretic/our_heretic) @@ -327,6 +327,8 @@ /datum/heretic_knowledge/mark/proc/on_eldritch_blade(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) SIGNAL_HANDLER + if(!isliving(target)) + return trigger_mark(source, target) /** diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index 8375c3ae4433..a07150919aa3 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -20,7 +20,7 @@ inhand_icon_state = null flags_inv = HIDESHOES|HIDEJUMPSUIT body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS - allowed = list(/obj/item/melee/sickly_blade) + allowed = list(/obj/item/melee/sickly_blade, /obj/item/gun/ballistic/rifle/lionhunter) hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/eldritch // Slightly better than normal cult robes armor_type = /datum/armor/cultrobes_eldritch diff --git a/code/modules/antagonists/heretic/items/heretic_blades.dm b/code/modules/antagonists/heretic/items/heretic_blades.dm index ab98e1b9e4c7..6e0d3d7d1865 100644 --- a/code/modules/antagonists/heretic/items/heretic_blades.dm +++ b/code/modules/antagonists/heretic/items/heretic_blades.dm @@ -66,13 +66,11 @@ qdel(src) /obj/item/melee/sickly_blade/afterattack(atom/target, mob/user, click_parameters) - if(isliving(target)) - SEND_SIGNAL(user, COMSIG_HERETIC_BLADE_ATTACK, target, src) + SEND_SIGNAL(user, COMSIG_HERETIC_BLADE_ATTACK, target, src) /obj/item/melee/sickly_blade/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - if(isliving(interacting_with)) - SEND_SIGNAL(user, COMSIG_HERETIC_RANGED_BLADE_ATTACK, interacting_with, src) - return ITEM_INTERACT_BLOCKING + SEND_SIGNAL(user, COMSIG_HERETIC_RANGED_BLADE_ATTACK, interacting_with, src) + return ITEM_INTERACT_BLOCKING // Path of Rust's blade /obj/item/melee/sickly_blade/rust @@ -135,8 +133,55 @@ desc = "A galliant blade, sundered and torn. \ Furiously, the blade cuts. Silver scars bind it forever to its dark purpose." icon_state = "dark_blade" + base_icon_state = "dark_blade" inhand_icon_state = "dark_blade" after_use_message = "The Torn Champion hears your call..." + ///If our blade is currently infused with the mansus grasp + var/infused = FALSE + +/obj/item/melee/sickly_blade/dark/afterattack(atom/target, mob/user, click_parameters) + . = ..() + if(!infused || target == user || !isliving(target)) + return + var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user) + var/mob/living/living_target = target + if(!heretic_datum) + return + + //Apply our heretic mark + var/datum/heretic_knowledge/mark/blade_mark/mark_to_apply = heretic_datum.get_knowledge(/datum/heretic_knowledge/mark/blade_mark) + if(!mark_to_apply) + return + mark_to_apply.create_mark(user, living_target) + + //Remove the infusion from any blades we own (and update their sprite) + for(var/obj/item/melee/sickly_blade/dark/to_infuse in user.get_all_contents_type(/obj/item/melee/sickly_blade/dark)) + to_infuse.infused = FALSE + to_infuse.update_appearance(UPDATE_ICON) + user.update_held_items() + + if(!check_behind(user, living_target)) + return + // We're officially behind them, apply effects + living_target.AdjustParalyzed(1.5 SECONDS) + living_target.apply_damage(10, BRUTE, wound_bonus = CANT_WOUND) + living_target.balloon_alert(user, "backstab!") + playsound(living_target, 'sound/items/weapons/guillotine.ogg', 100, TRUE) + +/obj/item/melee/sickly_blade/dark/dropped(mob/user, silent) + . = ..() + if(infused) + infused = FALSE + update_appearance(UPDATE_ICON) + +/obj/item/melee/sickly_blade/dark/update_icon_state() + . = ..() + if(infused) + icon_state = base_icon_state + "_infused" + inhand_icon_state = base_icon_state + "_infused" + else + icon_state = base_icon_state + inhand_icon_state = base_icon_state // Path of Cosmos's blade /obj/item/melee/sickly_blade/cosmic diff --git a/code/modules/antagonists/heretic/items/hunter_rifle.dm b/code/modules/antagonists/heretic/items/hunter_rifle.dm index cb8636aed2b1..92ed0d768b30 100644 --- a/code/modules/antagonists/heretic/items/hunter_rifle.dm +++ b/code/modules/antagonists/heretic/items/hunter_rifle.dm @@ -24,6 +24,7 @@ name = "lionhunter rifle internal magazine" ammo_type = /obj/item/ammo_casing/strilka310/lionhunter caliber = CALIBER_STRILKA310 + armour_penetration = 100 max_ammo = 3 multiload = TRUE @@ -32,7 +33,7 @@ /// Whether we're currently aiming this casing at something var/currently_aiming = FALSE /// How many seconds it takes to aim per tile of distance between the target - var/seconds_per_distance = 0.5 SECONDS + var/seconds_per_distance = 0.2 SECONDS /// The minimum distance required to gain a damage bonus from aiming var/min_distance = 4 @@ -115,14 +116,13 @@ // BUT, if we're at a decent range and the target's a living mob, // the projectile's been channel fired. It has full effects and homes in. if(distance > min_distance && isliving(target) && iscarbon(user)) - loaded_projectile.damage *= 2 loaded_projectile.stamina *= 2 loaded_projectile.knockdown = 0.5 SECONDS loaded_projectile.stutter = 6 SECONDS loaded_projectile.projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS loaded_projectile.homing = TRUE - loaded_projectile.homing_turn_speed = 80 + loaded_projectile.homing_turn_speed = 150 loaded_projectile.set_homing_target(target) return ..() @@ -134,6 +134,46 @@ damage = 30 stamina = 30 projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS + ///The mob that is currently inside the bullet + var/mob/stored_mob + +/obj/projectile/bullet/strilka310/lionhunter/fire(angle, atom/direct_target) + . = ..() + if(!isliving(firer) || !isliving(original)) + return + var/mob/living/living_firer = firer + if(IS_HERETIC(living_firer)) + living_firer.forceMove(src) + stored_mob = living_firer + + +/obj/projectile/bullet/strilka310/lionhunter/Exited(atom/movable/gone) + if(gone == stored_mob) + stored_mob = null + return ..() + +/obj/projectile/bullet/strilka310/lionhunter/on_range() + stored_mob?.forceMove(loc) + return ..() + +/obj/projectile/bullet/strilka310/lionhunter/on_hit(atom/target, blocked, pierce_hit) + stored_mob?.forceMove(loc) //Pretty important to get our mob out of the bullet + . = ..() + if(!isliving(target)) + return BULLET_ACT_HIT + var/mob/living/victim = target + var/mob/firing_mob = firer + if(IS_HERETIC_OR_MONSTER(victim) || !IS_HERETIC(firing_mob)) + return BULLET_ACT_HIT + + SEND_SIGNAL(firer, COMSIG_LIONHUNTER_ON_HIT, victim) + return BULLET_ACT_HIT + +/obj/projectile/bullet/strilka310/lionhunter/Destroy() + if(stored_mob) + stack_trace("Lionhunter bullet qdel'd with its firer still inside!") + stored_mob.forceMove(loc) + return ..() // Extra ammunition can be made with a heretic ritual. /obj/item/ammo_box/strilka310/lionhunter diff --git a/code/modules/antagonists/heretic/items/unfathomable_curio.dm b/code/modules/antagonists/heretic/items/unfathomable_curio.dm index eff1fa7ea2fe..d5f09a1dc27e 100644 --- a/code/modules/antagonists/heretic/items/unfathomable_curio.dm +++ b/code/modules/antagonists/heretic/items/unfathomable_curio.dm @@ -11,8 +11,8 @@ //Vars used for the shield component var/heretic_shield_icon = "unfathomable_shield" var/max_charges = 1 - var/recharge_start_delay = 60 SECONDS - var/charge_increment_delay = 60 SECONDS + var/recharge_start_delay = 30 SECONDS + var/charge_increment_delay = 30 SECONDS var/charge_recovery = 1 /obj/item/storage/belt/unfathomable_curio/Initialize(mapload) diff --git a/code/modules/antagonists/heretic/knowledge/ash_lore.dm b/code/modules/antagonists/heretic/knowledge/ash_lore.dm index 111c1b8cbf72..f897aebc3fb0 100644 --- a/code/modules/antagonists/heretic/knowledge/ash_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/ash_lore.dm @@ -165,7 +165,7 @@ research_tree_icon_state = "blade_upgrade_ash" /datum/heretic_knowledge/blade_upgrade/ash/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) - if(source == target) + if(source == target || !isliving(target)) return target.adjust_fire_stacks(1) diff --git a/code/modules/antagonists/heretic/knowledge/blade_lore.dm b/code/modules/antagonists/heretic/knowledge/blade_lore.dm index dc76f242c018..c24ed2c273f3 100644 --- a/code/modules/antagonists/heretic/knowledge/blade_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/blade_lore.dm @@ -32,16 +32,16 @@ /datum/heretic_knowledge/limited_amount/starting/base_blade name = "The Cutting Edge" desc = "Opens up the Path of Blades to you. \ - Allows you to transmute a knife with two bars of silver or titanium to create a Sundered Blade. \ - You can create up to five at a time." + Allows you to transmute a knife with one bar of silver or titanium to create a Sundered Blade. \ + You can create up to four at a time." gain_text = "Our great ancestors forged swords and practiced sparring on the eve of great battles." next_knowledge = list(/datum/heretic_knowledge/blade_grasp) required_atoms = list( /obj/item/knife = 1, - list(/obj/item/stack/sheet/mineral/silver, /obj/item/stack/sheet/mineral/titanium) = 2, + list(/obj/item/stack/sheet/mineral/silver, /obj/item/stack/sheet/mineral/titanium) = 1, ) result_atoms = list(/obj/item/melee/sickly_blade/dark) - limit = 5 // It's the blade path, it's a given + limit = 4 // It's the blade path, it's a given route = PATH_BLADE research_tree_icon_path = 'icons/obj/weapons/khopesh.dmi' research_tree_icon_state = "dark_blade" @@ -67,40 +67,16 @@ /datum/heretic_knowledge/blade_grasp/proc/on_mansus_grasp(mob/living/source, mob/living/target) SIGNAL_HANDLER - // Let's see if source is behind target - // "Behind" is defined as 3 tiles directly to the back of the target - // x . . - // x > . - // x . . - - var/are_we_behind = FALSE - // No tactical spinning allowed - if(HAS_TRAIT(target, TRAIT_SPINNING)) - are_we_behind = TRUE - - // We'll take "same tile" as "behind" for ease - if(target.loc == source.loc) - are_we_behind = TRUE - - // We'll also assume lying down is behind, as mob directions when lying are unclear - if(target.body_position == LYING_DOWN) - are_we_behind = TRUE - - // Exceptions aside, let's actually check if they're, yknow, behind - var/dir_target_to_source = get_dir(target, source) - if(target.dir & REVERSE_DIR(dir_target_to_source)) - are_we_behind = TRUE - - if(!are_we_behind) + if(!check_behind(source, target)) return // We're officially behind them, apply effects target.AdjustParalyzed(1.5 SECONDS) target.apply_damage(10, BRUTE, wound_bonus = CANT_WOUND) target.balloon_alert(source, "backstab!") - playsound(get_turf(target), 'sound/items/weapons/guillotine.ogg', 100, TRUE) + playsound(target, 'sound/items/weapons/guillotine.ogg', 100, TRUE) -/// The cooldown duration between trigers of blade dance +/// The cooldown duration between triggers of blade dance #define BLADE_DANCE_COOLDOWN (20 SECONDS) /datum/heretic_knowledge/blade_dance @@ -315,10 +291,11 @@ #undef BLOOD_FLOW_PER_SEVEIRTY /datum/heretic_knowledge/blade_upgrade/blade - name = "Swift Blades" + name = "Empowered Blades" desc = "Attacking someone with a Sundered Blade in both hands \ will now deliver a blow with both at once, dealing two attacks in rapid succession. \ - The second blow will be slightly weaker." + The second blow will be slightly weaker. \ + You are able to infuse your mansus grasp directly into your blades, and your blades are more effective against structures." gain_text = "I found him cleaved in twain, halves locked in a duel without end; \ a flurry of blades, neither hitting their mark, for the Champion was indomitable." next_knowledge = list(/datum/heretic_knowledge/spell/furious_steel) @@ -330,7 +307,39 @@ /// How much force was the last weapon we offhanded with? If it's different, we need to re-calculate the decrement var/last_weapon_force = -1 -/datum/heretic_knowledge/blade_upgrade/blade/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) +/datum/heretic_knowledge/blade_upgrade/blade/on_gain(mob/user, datum/antagonist/heretic/our_heretic) + . = ..() + RegisterSignal(user, COMSIG_TOUCH_HANDLESS_CAST, PROC_REF(on_grasp_cast)) + RegisterSignal(user, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_blade_equipped)) + RegisterSignal(user, COMSIG_HERETIC_BLADE_ATTACK, PROC_REF(do_melee_effects)) + +/datum/heretic_knowledge/blade_upgrade/blade/on_lose(mob/user, datum/antagonist/heretic/our_heretic) + . = ..() + UnregisterSignal(user, list(COMSIG_TOUCH_HANDLESS_CAST, COMSIG_MOB_EQUIPPED_ITEM, COMSIG_HERETIC_BLADE_ATTACK)) + +///Tries to infuse our held blade with our mansus grasp +/datum/heretic_knowledge/blade_upgrade/blade/proc/on_grasp_cast(mob/living/carbon/cast_on) + SIGNAL_HANDLER + + var/held_item = cast_on.get_active_held_item() + if(!istype(held_item, /obj/item/melee/sickly_blade/dark)) + return NONE + var/obj/item/melee/sickly_blade/dark/held_blade = held_item + if(held_blade.infused) + return NONE + held_blade.infused = TRUE + held_blade.update_appearance(UPDATE_ICON) + + //Infuse our off-hand blade just so it's nicer visually + var/obj/item/melee/sickly_blade/dark/off_hand_blade = cast_on.get_inactive_held_item() + if(istype(off_hand_blade, /obj/item/melee/sickly_blade/dark)) + off_hand_blade.infused = TRUE + off_hand_blade.update_appearance(UPDATE_ICON) + cast_on.update_held_items() + + return COMPONENT_CAST_HANDLESS + +/datum/heretic_knowledge/blade_upgrade/blade/do_melee_effects(mob/living/source, atom/target, obj/item/melee/sickly_blade/blade) if(target == source) return @@ -345,7 +354,7 @@ // Give it a short delay (for style, also lets people dodge it I guess) addtimer(CALLBACK(src, PROC_REF(follow_up_attack), source, target, off_hand), 0.25 SECONDS) -/datum/heretic_knowledge/blade_upgrade/blade/proc/follow_up_attack(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) +/datum/heretic_knowledge/blade_upgrade/blade/proc/follow_up_attack(mob/living/source, atom/target, obj/item/melee/sickly_blade/blade) if(QDELETED(source) || QDELETED(target) || QDELETED(blade)) return // Sanity to ensure that the blade we're delivering an offhand attack with is ACTUALLY our offhand @@ -372,13 +381,20 @@ // Save the force as our last weapon force last_weapon_force = blade.force - // Subtract the decrement - blade.force -= offand_force_decrement + // Subtract the decrement, but only if the target is living + if(isliving(target)) + blade.force -= offand_force_decrement // Perform the offhand attack blade.melee_attack_chain(source, target) // Restore the force. blade.force = last_weapon_force +///Modifies our blade demolition modifier so we can take down doors with it +/datum/heretic_knowledge/blade_upgrade/blade/proc/on_blade_equipped(mob/user, obj/item/equipped, slot) + SIGNAL_HANDLER + if(istype(equipped, /obj/item/melee/sickly_blade/dark)) + equipped.demolition_mod = 1.5 + /datum/heretic_knowledge/spell/furious_steel name = "Furious Steel" desc = "Grants you Furious Steel, a targeted spell. Using it will summon three \ diff --git a/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm b/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm index f6e364766f6e..af92a55f499a 100644 --- a/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm @@ -172,7 +172,7 @@ ORGAN_SLOT_LIVER, ORGAN_SLOT_BRAIN ) - if(source == target) + if(source == target || !isliving(target)) return if(combo_timer) deltimer(combo_timer) diff --git a/code/modules/antagonists/heretic/knowledge/moon_lore.dm b/code/modules/antagonists/heretic/knowledge/moon_lore.dm index 99ee675c8eca..b23ed148611b 100644 --- a/code/modules/antagonists/heretic/knowledge/moon_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/moon_lore.dm @@ -152,7 +152,7 @@ research_tree_icon_state = "blade_upgrade_moon" /datum/heretic_knowledge/blade_upgrade/moon/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) - if(source == target) + if(source == target || !isliving(target)) return target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 100) diff --git a/code/modules/antagonists/heretic/knowledge/rust_lore.dm b/code/modules/antagonists/heretic/knowledge/rust_lore.dm index c1c1e2a4a04c..9d45e8bb55b4 100644 --- a/code/modules/antagonists/heretic/knowledge/rust_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/rust_lore.dm @@ -176,6 +176,8 @@ our_heretic.increase_rust_strength() /datum/heretic_knowledge/blade_upgrade/rust/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) + if(source == target || !isliving(target)) + return target.adjust_disgust(50) /datum/heretic_knowledge/spell/area_conversion/on_gain(mob/user, datum/antagonist/heretic/our_heretic) diff --git a/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm b/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm index 2bae6ed54029..8a1fe6b5a87e 100644 --- a/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm +++ b/code/modules/antagonists/heretic/knowledge/side_blade_rust.dm @@ -44,12 +44,12 @@ /datum/heretic_knowledge/rifle name = "Lionhunter's Rifle" - desc = "Allows you to transmute any ballistic weapon, such as a pipegun, with hide \ - from any animal, a plank of wood, and a camera to create the Lionhunter's rifle. \ + desc = "Allows you to transmute a piece of wood, with hide \ + from any animal,and a camera to create the Lionhunter's rifle. \ The Lionhunter's Rifle is a long ranged ballistic weapon with three shots. \ These shots function as normal, albeit weak high-caliber munitions when fired from \ close range or at inanimate objects. You can aim the rifle at distant foes, \ - causing the shot to deal massively increased damage and hone in on them." + causing the shot to mark your victim with your grasp and teleport you directly to them." gain_text = "I met an old man in an antique shop who wielded a very unusual weapon. \ I could not purchase it at the time, but they showed me how they made it ages ago." next_knowledge = list( @@ -58,9 +58,8 @@ /datum/heretic_knowledge/rifle_ammo, ) required_atoms = list( - /obj/item/gun/ballistic = 1, - /obj/item/stack/sheet/animalhide = 1, /obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/sheet/animalhide = 1, /obj/item/camera = 1, ) result_atoms = list(/obj/item/gun/ballistic/rifle/lionhunter) @@ -73,12 +72,11 @@ /datum/heretic_knowledge/rifle_ammo name = "Lionhunter Rifle Ammunition" desc = "Allows you to transmute 3 ballistic ammo casings (used or unused) of any caliber, \ - including shotgun shot, with any animal hide to create an extra clip of ammunition for the Lionhunter Rifle." + including shotgun shells to create an extra clip of ammunition for the Lionhunter Rifle." gain_text = "The weapon came with three rough iron balls, intended to be used as ammunition. \ They were very effective, for simple iron, but used up quickly. I soon ran out. \ No replacement munitions worked in their stead. It was peculiar in what it wanted." required_atoms = list( - /obj/item/stack/sheet/animalhide = 1, /obj/item/ammo_casing = 3, ) result_atoms = list(/obj/item/ammo_box/strilka310/lionhunter) diff --git a/code/modules/antagonists/heretic/knowledge/void_lore.dm b/code/modules/antagonists/heretic/knowledge/void_lore.dm index 6daa1d6fd420..4eb84326eb61 100644 --- a/code/modules/antagonists/heretic/knowledge/void_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/void_lore.dm @@ -176,7 +176,7 @@ research_tree_icon_state = "blade_upgrade_void" /datum/heretic_knowledge/blade_upgrade/void/do_melee_effects(mob/living/source, mob/living/target, obj/item/melee/sickly_blade/blade) - if(source == target) + if(source == target || !isliving(target)) return target.apply_status_effect(/datum/status_effect/void_chill, 2) diff --git a/code/modules/antagonists/heretic/magic/realignment.dm b/code/modules/antagonists/heretic/magic/realignment.dm index 8ad6ce782997..86d2ff78c54b 100644 --- a/code/modules/antagonists/heretic/magic/realignment.dm +++ b/code/modules/antagonists/heretic/magic/realignment.dm @@ -54,12 +54,14 @@ alert_type = /atom/movable/screen/alert/status_effect/realignment tick_interval = 0.2 SECONDS show_duration = TRUE + ///Traits to add/remove + var/list/realignment_traits = list(TRAIT_BATON_RESISTANCE, TRAIT_PACIFISM) /datum/status_effect/realignment/get_examine_text() return span_notice("[owner.p_Theyre()] glowing a soft white.") /datum/status_effect/realignment/on_apply() - ADD_TRAIT(owner, TRAIT_PACIFISM, id) + owner.add_traits(realignment_traits, id) owner.add_filter(id, 2, list("type" = "outline", "color" = "#d6e3e7", "size" = 2)) var/filter = owner.get_filter(id) animate(filter, alpha = 127, time = 1 SECONDS, loop = -1) @@ -67,12 +69,12 @@ return TRUE /datum/status_effect/realignment/on_remove() - REMOVE_TRAIT(owner, TRAIT_PACIFISM, id) + owner.remove_traits(realignment_traits, id) owner.remove_filter(id) /datum/status_effect/realignment/tick(seconds_between_ticks) - owner.adjustStaminaLoss(-5) - owner.AdjustAllImmobility(-0.5 SECONDS) + owner.adjustStaminaLoss(-10) + owner.AdjustAllImmobility(-1 SECONDS) /atom/movable/screen/alert/status_effect/realignment name = "Realignment" diff --git a/code/modules/antagonists/heretic/status_effects/buffs.dm b/code/modules/antagonists/heretic/status_effects/buffs.dm index 387301f2c489..d82d145b3ef6 100644 --- a/code/modules/antagonists/heretic/status_effects/buffs.dm +++ b/code/modules/antagonists/heretic/status_effects/buffs.dm @@ -4,9 +4,10 @@ /datum/status_effect/crucible_soul id = "Blessing of Crucible Soul" status_type = STATUS_EFFECT_REFRESH - duration = 15 SECONDS + duration = 40 SECONDS alert_type = /atom/movable/screen/alert/status_effect/crucible_soul show_duration = TRUE + ///Stores the location where the mob drank the potion, used to teleport the drinker back to the spot after expiration var/turf/location /datum/status_effect/crucible_soul/on_apply() @@ -14,6 +15,8 @@ owner.alpha = 180 owner.pass_flags |= PASSCLOSEDTURF | PASSGLASS | PASSGRILLE | PASSMACHINE | PASSSTRUCTURE | PASSTABLE | PASSMOB | PASSDOORS | PASSVEHICLE location = get_turf(owner) + var/datum/action/cancel_crucible_soul/cancel_button = new(src) + cancel_button.Grant(owner) return TRUE /datum/status_effect/crucible_soul/on_remove() @@ -26,11 +29,25 @@ /datum/status_effect/crucible_soul/get_examine_text() return span_notice("[owner.p_They()] [owner.p_do()]n't seem to be all here.") +/datum/action/cancel_crucible_soul + name = "Recall" + desc = "Use to end the blessing early" + button_icon = 'icons/obj/antags/eldritch.dmi' + button_icon_state = "crucible_soul" + +/datum/action/cancel_crucible_soul/Trigger(trigger_flags) + . = ..() + if(!.) + return + var/datum/status_effect/active_effect = owner.has_status_effect(/datum/status_effect/crucible_soul) + target = active_effect + qdel(target) + // DUSK AND DAWN /datum/status_effect/duskndawn id = "Blessing of Dusk and Dawn" status_type = STATUS_EFFECT_REFRESH - duration = 60 SECONDS + duration = 90 SECONDS show_duration = TRUE alert_type =/atom/movable/screen/alert/status_effect/duskndawn @@ -58,12 +75,24 @@ /datum/status_effect/marshal/on_remove() owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) + if(!iscarbon(owner)) + return + var/mob/living/carbon/drinker = owner + for(var/obj/item/bodypart/potentially_wounded as anything in drinker.bodyparts) + for(var/datum/wound/found_wound as anything in potentially_wounded.wounds) + found_wound.remove_wound() + if(length(drinker.get_missing_limbs())) + drinker.regenerate_limbs() + to_chat(drinker, span_hypnophrase("The mansus has given you new limbs.")) + playsound(drinker, 'sound/effects/chemistry/ahaha.ogg', 50, TRUE, -1, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.5) /datum/status_effect/marshal/tick(seconds_between_ticks) if(!iscarbon(owner)) return var/mob/living/carbon/carbie = owner + carbie.adjustBruteLoss(-0.5 * seconds_between_ticks, updating_health = FALSE) + carbie.adjustFireLoss(-0.5 * seconds_between_ticks, updating_health = FALSE) for(var/BP in carbie.bodyparts) var/obj/item/bodypart/part = BP for(var/W in part.wounds) @@ -161,7 +190,8 @@ if(QDELETED(src) || QDELETED(owner)) return - var/obj/effect/floating_blade/blade = new blade_type(get_turf(owner)) + var/obj/effect/floating_blade/blade + blade = new blade_type(get_turf(owner)) blades += blade blade.orbit(owner, blade_orbit_radius) RegisterSignal(blade, COMSIG_QDELETING, PROC_REF(remove_blade)) diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index b93b52eb8e8e..f3d37b876825 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -163,6 +163,7 @@ name = "elder carving" desc = "Collection of unknown symbols, they remind you of days long gone..." icon = 'icons/obj/service/hand_of_god_structures.dmi' + max_integrity = 60 /// A tip displayed to heretics who examine the rune carver. Explains what the rune does. var/carver_tip /// Reference to trap owner mob diff --git a/code/modules/antagonists/heretic/structures/mawed_crucible.dm b/code/modules/antagonists/heretic/structures/mawed_crucible.dm index ea962cbc5a4e..5f329cfd7c70 100644 --- a/code/modules/antagonists/heretic/structures/mawed_crucible.dm +++ b/code/modules/antagonists/heretic/structures/mawed_crucible.dm @@ -11,15 +11,26 @@ anchored = TRUE density = TRUE ///How much mass this currently holds - var/current_mass = 5 + var/current_mass = 3 ///Maximum amount of mass - var/max_mass = 5 + var/max_mass = 3 ///Check to see if it is currently being used. var/in_use = FALSE + ///Cooldown for the crucible to create mass from the eldritch + COOLDOWN_DECLARE(refill_cooldown) /obj/structure/destructible/eldritch_crucible/Initialize(mapload) . = ..() break_message = span_warning("[src] falls apart with a thud!") + START_PROCESSING(SSobj, src) + +/obj/structure/destructible/eldritch_crucible/process(seconds_per_tick) + if(COOLDOWN_TIMELEFT(src, refill_cooldown)) + return + COOLDOWN_START(src, refill_cooldown, 30 SECONDS) + current_mass++ + playsound(src, 'sound/items/eatfood.ogg', 100, TRUE) + update_appearance(UPDATE_ICON_STATE) /obj/structure/destructible/eldritch_crucible/atom_deconstruct(disassembled = TRUE) // Create a spillage if we were destroyed with leftover mass @@ -40,6 +51,9 @@ if(!IS_HERETIC_OR_MONSTER(user) && !isobserver(user)) return + if(current_mass > 0) + . += span_notice("You can refill an eldritch flask with this") + if(current_mass < max_mass) var/to_fill = max_mass - current_mass . += span_notice("[src] requires [to_fill] more organ[to_fill == 1 ? "":"s"] or bodypart[to_fill == 1 ? "":"s"].") @@ -99,6 +113,19 @@ set_anchored(!anchored) balloon_alert(user, "[anchored ? "":"un"]anchored") return ITEM_INTERACT_SUCCESS + if(istype(tool, /obj/item/reagent_containers/cup/beaker/eldritch)) + if(current_mass < max_mass) + balloon_alert(user, "not full enough!") + return ITEM_INTERACT_SUCCESS + var/obj/item/reagent_containers/cup/beaker/eldritch/to_fill = tool + if(to_fill.reagents.total_volume >= to_fill.reagents.maximum_volume) + balloon_alert(user, "flask is full!") + return ITEM_INTERACT_SUCCESS + to_fill.reagents.add_reagent(/datum/reagent/eldritch, 50) + do_item_attack_animation(src, used_item = tool) + current_mass-- + balloon_alert(user, "refilled flask") + return ITEM_INTERACT_SUCCESS /obj/structure/destructible/eldritch_crucible/attack_hand(mob/user, list/modifiers) . = ..() @@ -273,7 +300,7 @@ desc = "A glass bottle contianing a dull yellow liquid. It seems to fade in and out with regularity." icon_state = "clarity" status_effect = /datum/status_effect/duskndawn - crucible_tip = "Allows you to see through walls and objects. Lasts 60 seconds." + crucible_tip = "Allows you to see through walls and objects. Lasts 90 seconds." /obj/item/eldritch_potion/wounded name = "brew of the wounded soldier" diff --git a/code/modules/spells/spell_types/touch/_touch.dm b/code/modules/spells/spell_types/touch/_touch.dm index 24eefe04d102..49d1f24e39c6 100644 --- a/code/modules/spells/spell_types/touch/_touch.dm +++ b/code/modules/spells/spell_types/touch/_touch.dm @@ -153,6 +153,10 @@ return ..() | SPELL_NO_FEEDBACK | SPELL_NO_IMMEDIATE_COOLDOWN /datum/action/cooldown/spell/touch/cast(mob/living/carbon/cast_on) + if(SEND_SIGNAL(cast_on, COMSIG_TOUCH_HANDLESS_CAST) & COMPONENT_CAST_HANDLESS) + StartCooldown() + return ..() + if(!QDELETED(attached_hand) && (attached_hand in cast_on.held_items)) remove_hand(cast_on, reset_cooldown_after = TRUE) return diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index 4ef1c071abfa24d294bb6ea6be77e113f33d9796..e5dc62260453a506f834aa461dfeb3266c929a94 100644 GIT binary patch literal 135033 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≪$`7Z4)0e4JY*;SuTP2 z^f3$&%3Y^;#iD*4Ia5W;g|!vKCmo3>|0fY?7LuuATVNXrd>*E+_fUGYYSuz7N-k=QM7(}7+IzxgMuyK$a zs(6Z|j5rqTow0-B$IV1I+ZR3S-nFb)&MXH(R(RNh6RzW1e^I2RySRp=_4S#ctS{)% zC04S3h(5idVHGqSC=-Gl&w~6VHT{12l*k34wSj?hsZ`~r@SN%%0Dp^_tziD$#1OYC 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 CmgMsQ literal 130428 zcmdqJ2UJtp_dg1w13C&A8%R}95fK=qNmoG-5F!>j#GyzB={1RpN{}WZqIBs>iS(X~ zO0QBwO{A9qfj|f(BzgBT&iBpy-v7O~-dpd#*6;taR#xu0=iGDl+57B$K6~$T6LH%} zm+LqF-`LpLxb$vn-(h1ra25O>-~jH3-N5g%v9X5)-!t>ocJQ(Dc7EjR?CHVA7MQZ~ zrorRe>Eq8G=@Pd~E#9tNF_8=Wc=Z0M*QTF~C(ma*_{=80J{FKaP`gvoHuT~8;hO~Y zlzmonGw_X)iFk^KKw7WahZ7Qd!s35Cf^>S_c`eGbFJ`KB0{2zr(M|o!)4xP}C|@u& z9vLkA{lQnWJFnFab93;QXP;fXi}?h}H<3v^wSP#nxc%GX56{xxoQ>|g5S?qUqaO9q zIO5UCB{TEtTj%+{Cg|FZ>X{lm*nVfl9eU3AC@;asD~o;T$sh5HZ;g-2Am_E(q8`05 z71Q7dEIL8U%((hQ+)ahp{Jm-IW$7P}!?cOSv?t0znfJzYZbPeE(Fxyj6Mp3WVdyMw zU2yK}iFn+a@6oE-__tdzPyuDv{--jb$1|+_Wb-c|4{j}n>A21Y4TvwR>v5-gx9a@Z z&BdA+A4O-n4O=#g3XGxoZrU3kC3K0%@*#80Ypdxmm@P1oZyrapWM)?uS6=v(j-cCu ztGG1TZ`mAbGd%Y=nvLx=o1XTydx0s-6Cw3){8F#1^<+o{1+XjpE~hUy-qhDA?fT;! z!(H3_VuWjleooxf+oQE-1M8n94oJVqueczY^Wp9D>Vkypy!{G38`pyl%3R24efbM# z#pVu!y~nG2Qt*YcUxr(p_kHLyqn8n_Qr zEY1H10~`1}0H_mtT@moKG@nH#Mta%(r2Aik75ZF_DvS49mW&giB>Hiqy!=aJ;OD%v zn5Et9vfW1igN_UQxQ~0VW!AHwgv2Q(jgE~8cr&)Pwmi^S-^IQcR@elGzu5DyVaTeQ z5D2w#RP|bPA*%-06&=#Y^Jbzq2lI0@mD#HjDqGdP6as~2YlZyDuUX|s&}IrUmQU&4 zPePLRS(EG>$aGB`EYHPefa1Rhr`TPMT`&E68viPp5?dZW7kGTZ^Y@%Sox73%eY0@V z1_tx+6-C$)&MyGKbf6m1ZzIF`qegGLf z5z<)w$4{Euse$RzPMx{)3i2&JxTUkb8Bla9~&89X)JO!Rhd%Lt_Mpr)ETaOHO1`Oqic&Fe;yP) zW?^wHZExnWYO{~|luZ7o6oTjf%x$nS4_m1m^H^^ci*0;$Mr#TnqWkQV;L&l3ySZl< zYyHREt8`=v7H7}wv7lWGFeQrQBcSx)vu6MsC=i4K?Fxqc3NUriYI}0P85mvnN_pVQ;`L#f9$)PLc;SsI6Li61a~RywGU*pwO&D6tF!$mTUkYWYig( z{j&D0ubezRd%EH-b)6=Gy=+?J0qaH-|DRG&_c@L8d;%_}v#Gl`XKUEn2?U3#3I9mD zSaroJ*RHzECd}*N8jxSdXz6nAZ=n@QT};>UUTTrklg2ealtolP@v4OIYelVY+@2V{7nwFZCvaYSU{6(<>uj zEH2Q5KeF(W!ON1)TVtk&ZV<#MgpeDt@N-=Vy32=!kZfiMdZ7fJJ>m(IIu4H=K$1?V zZzagnR|=l%tQboZe#ts@G&}$2;EVlviNZlM5YoYceH6kdIOG89#YfhV2|!CGQ|T6? zsuCdbCDD4)f3msL~*jG)c%d`I(i2Zvrlej7l#f;1Vk1cq8^J+o}uNvFH+ zu$kHfIov_)|4m@%RtZTjX}S;!bolTk96EsP0iJNp9j0nCsNg97k8kpuvuXq$SCiW% z<56=-8Txtf-6P|lH+gT!H6gTeq3JfSkEH?=$zd9^iVPT8Ov^-?E~84C5=-;6UJ{`Y zY6mozuznwr{MKMUPR$?r`ZWadPMpWq>LU-(u2q}J4e431v|b#JI3@S+tlY!SBSepK zZ$@5F?@~=~C#B~_g*SuFzyi%8XoM?E=?@E!QLtVEnq6k%OUUVbWKxNd8mr37qK2u? zs(K3!3iFV!Wf~khdC6(vS4(S2!z;!@HNE2xJKx2HuC@?fl0tX0uS`BW)>zXCA}tgA zv6^1~-Kacq@2s5&S@k%9E@;$Z#JCf}_7-$T$0u3VPUkYUwnlcYRW@z<1JHQ4@m*SL zv>V@JHmAqrMGfqXiX7V+B@j%$?DkRH)b^0ql+6|Q78CdftRyB<{syFMwD$jo(DQ#y z!2I8wYJBcs==wk4d@xop`1MbSH58IU`5VscV`Ixu+0aS#vY=6WH+s}$Ix5(r6+8z{ zIp!cm)LEU*=Ec7{6$WK>SIaZ#3pj z_m5RLCaSVTIHDak3qNoUz-i~r51);iu3cwn^^3|dd??NWV z&1!v}0m?FkiCMRTHsmJgHzH5YJ|xZRF#Z9W+1T>2MMm#aviBW~CQlEpc(KT)S-m)i zqD!_mMWTfz3vMb#V@amqovEaC)^2_}$X?%NVb}BE7r<9b-*UJpI7D zqx3nC^5+yXbrX0V95)`^cVuN{MTo07L?1v(H{c0MnjKV3LxVao=f<;fr)Tn ze+XWP_0n!sKhqrjdJmDZu~8}pCF0}hiCBJ3n~7mMlGA!?rEiKUBLFZO81wC!_cVQh z$>{Fq;CevA+a4pKL|A;CSLw?jPrlb5(dCe|YYeC>?DCK0QW|c?<5i(8Uf_lOlBD}H z$J;EJ6YTPXhvp1dZ>5_ivLr68%ajCeO#sx2xC0dka|Unlfy^a#R1Alygl+ofhm~3# zLCSr+)wrYeVRAVY@Ob*vji}T#j`^#3?1^So+_E01J%6k9v+9nm!6@H7g?X~YYH1rtIO#=|5fFu+Ig14i~pc*#PpRajm2SrFFw8r6PD?q|DgQ7vg z2>&X%&-}CQzn0v$&)nZUgZjjI8bF_Ri+wqebz1M-tVkVwwN9bd<*Yjb52sE*ASHk^ z44~0i6po77wKIq6l#!Q?PyzAzXkiq0-AbjU z8o5<0ZgqWgvEPSkj~dVaC-T0nM{~iS>o94KpXe4j7+S3uX*5-0&YYEDJZ@XvG&0v zB#>?x^G{~Yrw8Eylhin+B%`VH)>GJyYUZ>02{m3+cHrgF4Hw@;5nPmtSl?I<6NbxS z9_l@?w-XSjRQ;?&^NL@#PN+m?T#!ZU1niU)GxKibv%IaBut%cT0E4mnwRYRcjF)h* zK-9acTl9i{XF;zuqOgD^qrKNm6ZehhBiL>MAYi>m6V?Enzh z1=AMu>{?%)>BZyIlEp@nzq~vlnF&}nTvrcQoB%wL3P_OF76M9eux5Guqv6g{bw_t< zk|1J@Zu=D*6G3G#lBc`rZyQs2E=5QdGZ7!i?`f{Hg2t?J6=ia5roz__*dmm4TxxFc z(b2|cNei)hq9o&^O)sFY;@9rwIYqA(qc`({ZvYCDvfnrrc%Tl`m%emj?*VPUmzQ^6 zEd?Ldh78!ViB3^;aQ#qCp;$FC%9Os<`$ppK>&*nhBIab#&if^4CBZP5c^v3U4dfR}v0S`d25ryksLa0y#h&Ws&JZhSqgnca5=b!}g%Oq|R;s68f6U^Qi6I~swASa!x?f8=)D9pg`6mJIY-kWUX}i~JwQq}1 z;;q}P2}{3riMITZ)rcMX^06wGSHbnenr|fa8Mx*BsABobVDw0G80ZHppUZIU`hHq^ zsdgh{&yO>PLZP0~1F_i#F9O^^H-5D1;)VbUzbk{Pz#* zi4d{Oo6(ObgaBZrdq$-p=gP5Be2|S7+=IKzI*BxyTVhrWs&y~0!2?EP=T{1$tVp^x z-*>QEwZ;8gxNh7Fk(VYcKOn3ZFq>d{K1PiY*fqX;E64EmP~xg#+00`a+DNVm1Gr1y z-d?giMZ(h=vi9L;hziFxRslZ5A0GMRW>tC}pu%k<$AHLWZy(oc+Hr-sL4BW@i4d$N z@X*Mjk9RhGj}`Gk{(^jq1Uc&;DvK)q!(Ic3i?Ld_;N=1*+X>Ip1l_@-wNb`tt(rFxtuUnIyXYvU7zx+2mlVbDUQ#~j!=RHmz5LC2d zfYc;F!tv2H(Kn)lDrRmvSW_1&l@rhRxGVnd!CI8D4Hx2Uem`HHps0v;k!n~yl~;AH zM`OcEaBY&O=}*(N$bGRp*FWC(t`;T>Zn(6?Em^OP#I?>$#0jHg))c*J5)i9OW>`kFZ7d5Mo4P&JAg@b(NY59u>d+1Toi&LzPF!823%Ww z+7r_`+f%M{n^k_9f@V4c4mhK~b^uHBEPrwMs7*qb*`9m)c2?_HU|Px zlCDEwILjuWF+Wa-D;wM%7R6b9u9t!yI;b%^Ult}-8mA#1-T=$HGgyyku!V%JyVf$w zSZsPEFD**QAAjzA%!sB2)YOqYnwYAp@czm}R!r^|Q2jE(ZYx$~ zd|msJC38Hu#9?|?Vs7xY7<{^o$HH0?cU6+$k8)b!cbXmJh7?)vD+(PulUd=Kk>D9( zqUgT)Ym1b@$VZ<<*M3FS`?O8B<+hmED030;F!vw~eeK zgp>z!#<=YZef6a3@|DligS$N%6nnMLE**T^?Mc<}N%i#~@O_q3gN#|-FR`b}5NW*X zAUOh#yC3HhW9XZ`dfJU)kxV{Z4^lx?F#?6!N98*L_OUxL#ysPXoUJj++c#iAb76|< z9*&$>6yO6Z1*==6fsS1@k&NA6*MDSI)Pw*FNxqVPS_YIem}fif$*;oZ1*D?_zeakr zMbC*h12GO?e?V~S^MlEIW9kaaU((n`=keMi!Tn_sG%Hrjcuw1%KSCNISzECNbIi-4 zq8{{V@|8!i)>EuG85F0fXKAnJq25br@VOc;MRFwnp7!{5J>Qg%+boaTCpI;bXVSth z!n_R-`50V(@fO@s*|@ru*bckAB9oT2R8H;2QJq~-oC5}kV5e;Sj0{=| zP6FOX#mruQFz6nbSsZd@d;B&LbK@&0T`2sAlvi8qs>DnIK|FM|(SAyND*_bvvT~@I zw)Qx)AJ)jN${i)w<1Fbg@wp?p#%KQgjabk`kgS0v6H|3~2Utwn+P?Bh#1cp6Fjb*@ zI|H2fqpHjG23DHLYoSa+&&ezfC*RJ3bGl%7s8s++MZVg%ICl15w&M>0-Kwq{`5=$7 zCrP6Me|()cx|MVW6m3I5qj;=72Nxe7up)jxA7dW!vN`Qrc+-j|3*X$att@F`jr*`XwjH^0*v! zW2LXGM~xQ}7ioHN-ngu>-oiVZTFjcP$Z2@tLFj!HgL)UT!sCiT?lm2EMe;!)iJc4w z(2y=G_=ZHU9G1TbQVPy)Chpj2w$r*vv-j7!yjA%>+^2rJ?-@{ZYkNGR4df#yFQcTG zYhFwv=w9jkXLXeqDS+N{5bskv|?Zjt*~8fH5m#f;@|5bW0Nz zGdq0Fq=ovExL7cOt*P_qWozLvYa6pNYQuCcA@fTr4+RCPyGC~Of_N2ty4RuRdmgDq zx>8ryw^4CbNQrTrYc(`q_ou#{X4U`7VK}`clbT*%xiM5id!C@cz!bpDPN7%o{j3-{ z8}Ug9J6fR)Xjt1!Mh~DJ8JaaK0-SHLqv>vga-brONO(TO)iGfpvq-=IZ^aIRw)%Rn4UnAY0sk z@C(tJ#Xr7ty9a#6KF?LG9zsEXNi7O)0d)SXs!sETHQ-z_<-77~$oE#=^>Lb@iX; zYKlt+e{`Fu+u2AdzfL9V1P0W6?kY%T6w45h$)-wlYbaQ+)9{~qrJ6Mc{~(K67g59! zptA&u6vD>#c#gVuEu9g4V{~{zf6#>QYrL$svE<0CO z)#@~Xrmy5=jHl&Rcprhozw5b$($@}w)!7obW2y5ufz_g7V_8yH?aa+-fYE8*e}EI1 zsB?rWmz&@gB`Pawxf2vF&NWyk3Oc8hLzqA(F{|f!F<6ftnNNd$eJ?^1hliF`?hWO? zqxxHWXHyP~U_u+j)kt-ok6S_&9(b~|S@bLPpFiKSiZKK>AL=g5uKU9GZhJT^3WX|hw4Oq^umdL$Z1MSW9{hDJNyZQeZg)L;W8=z$ z+s_mf!^$CeQX8)r{CZ(p^jgea&LL}PSlv4Rp1L$&@O+jyf4zZ!GSx`vLL|WSX?c~o z2J>{mkJw_s`L4N5e6bOn$L$NsgP{OaS^un(uDQMOS5*v9wGVs>tZGnG{MxSocf~gm z;j7ub;*J^}d~^1`srQSwaDJTJ=ki8iD ztJ2|z!02zT6uv%m;CrHCERyeY#2J*z!sr3dds)f_#5*YsGVLmnpXzi1#rV6-trMq~ z;l@Me_tX`>5+|IxmuinYk|ImHMTs9FHY6P%6I{-f5ZD{PlX}7ele4b0FH%Sw(nh+< zrs0dzw9^xWv@ON2uk;F9eZsEXI?rHp{C$41(E#=`9Q@E@ozcbpF9<8O}eRX&G35m2dio2Ek zj_>h8U2r zLJoT}rR|wOPgp480nWM&Nacu4Se?-x9=Zw7=9)|M{($G2Tjd|01$3~u z0SMqqDc{j_4%?}c(Lnkt)!e3X_ylmRmJYi-!d(L*vu_1~vkQt}J8%jc)#k$e3g4ee zHj8uIvd~Hsm=x2Ax>-DdOa~0~4tbCWXJ)WlHYa!2m?2CgCU9w6@}g7uFudJ?%p1px z4%(Dc=0={o=beKyGY{2Lddw&$i*6-n%%633_ zHQyI>0!M$W@>_DPj&>M;hT5e7Fn+Gm@}Ekq@IO|iEBVJO;uAruIADX*2~4zdGP47i zJ7MUiQ0;nQ4+DS17V=NN5Gi#$khwG40I|Vf>>k=ka|%4@el{H+#^L77mihen$AdQ6 z6(`%kna!ux=&6-%&ki$-ct^)h4op1y^5O+#$r;PoGFYu87T>}7oqC*~s*}p>MUxDQ z(3#wt+S;JouRE4__#GCEtpnK&J0KOI(^uIe;B>i!)j5^A^X)= z5-YuWA*@Qg7ktw&%@&lO>V(2xtMk!okg`#Z2Dy<o`B71nOfQ`{y4A<95J`U~( zql+IQX>-@b1lmby>a*Y7Z6=lj)SI@N3~ff}c&~m>=SGVp^S?T^1hfPv z41`jNda$({^dF6oa(<4DJvl#eoAoOM{!vVRdh4EMOu)XH{Gq&WveyEr!Imn#90lT$D`!i$MHqU)ZObpf;tZe8y+-hKe#oDd( zJM?JM^_vUM9Gd<1>#P=Mz=WUa-fA(~5*YoQevrOW1#78jC%k?#Dj|Zn$!T+k75Ia0 z0K;t8d97i>GSOZ=D{R_wdzRwfd`dqQ+O5pkjA_&$zFKcS-`qGH2bx8V&-}-utV~X6KxB=Oc(?K zE|{XC?tmuSpEUCDekg98uKKp=b6ny{a?N7q4$_Wrw8~1k8$Nr|M8o&CM%4EUnssza z-c~B@yIF+>Lo9LMkuLe&SD)nfmuz>d?%syYKj(!-@!D9a8V3QBiO0S0;ANadqc#tg z)GK`L-=ka`+ax(v@nP)L(}gfmz!(U$$B{$lDU6!}lh!_GpwVk&j({LHUJc63pM^LR z?Hd5dQ+y)^V%NK@)Es)8;@7&4=W6m_>lCZ&niYwZ6UKNun<9N>G6)fin5w|(B;A1c zLp4s%0^A=3M6C3hqtPg`Fvw8|g^*HtU*W;J8Zb(|~D z-ojR=k1w@{bGL^>mfVTBlZkyq1#)AAiD^&2rneGXZ`3y)3Gr)gDQGy+G6#jK)Qf*@ zNF6DeKA44wG@Yr0AlfN}O9^P7ez-r7k9dAB`<-b)ouG4a`Ih=hU&=hCp_)N5;aW~Q z6y)|SK)!kqnSSEj+~AUgt_Q2`{ywn*WQ{&0Jx?bvkE4o4D*KB+5DFGkO4F=OwragE zR)06ll0h~9E1=i9f~;CvI6xuXw-K16PAFyg_ASIu-wnq|oVV&_L<)jhI37q`kG8S6 z8;HYRiWTrw$F#7&K4=;R)$m(Lo&sP%3!KVzTTXub>+?efx(sq!VPbD-3~g4uYAi06 zu*2^X`!y9;h)VetSzCnA0S3})(D(n4)o3Dj;qZ7MYA+nP5XT3kY3v*7$A`Vkx@;32 zT=R;Ur9D5k$JBco%Pk#eX+|XAC!t%#KD2aEL$%q+An{>C%JqvDodtu|F>1>B-y0@s z7mAs>fP3!&?0OF?xL&Ticbt?)cxM11Z6LC1p+1YE!C+8IdW+6Bhz&PETY9QwLpr2@ zg^>WVFclww><5wff$1}H00}rjyc4P(Gzl>vk_B`_b^=crMeHp`K-)mTOQI#t_WF0e zxw8CfQ7@pSbM6BKKXIfnBb*?tgbxm_rw+?B1z+6q0WF5b*w`F;b*G_M^^TLMj^;j$DkF~|C zAaXJAuJ#KA!kLo${)fbP0r|ihHlKs0tJFs4ZV0oaLh}%4%*?jx&UsBE(NS8lsVnm? z$3nJWw*f&YoDx!6RP>=RHJE1s+}w9s_7Pw&Q88zpDKW+pEPi|XNaa*=f! zZ!f*$9^Zo4yS8 z-Zy}#H_rkI5K;UFp{ki1H*o}rGI#S(F4tYMJXw|=C@LyyvqOX(>OYX~Pb}<{L^525 zIxZBhm*Ma=5_dWa?x%?Xtum+eU^ci4X5{w+BC-YU-%+UnK}NtKupkC65P?}r0<2!h z#2^v?Ig16mgGhpJ5eqbj6M&paHcFIqqD~;~A`7BQBEtdMSubhgfT(r=U=HgN0VLed z)@OP@2U+U&EHCeBw)nL-tO%4-vYh%!8x@T*%83!N*r-cV^}eCyUGIexX)80@=F>5i7pLcLUC|hE@3^)OWzbrR>l)N6$1eq-r7lHD zDUHedPpqu$Rd`r(FAamj3l09_ZiIA_?a@?}2x6A#>7^z82p3kZ^95z*fVDgt0)KG3 zg}=<|Zdo;eRnJcJOuX}7z8LH&9OMg}UX@#jhCsYXT%OSzp6_t2 z=PFVxQkiibAa*dZ*|J84@F9QhZje#mpLXjM++pX zDLdURM9d~^ll8>UsdDolkIyygTCuSX+!|?5^DIvT<2dxjQ1mGV{b$Gj(!^2+h; zM;7MdUwsWAskI+jSpkCb3kw0dGnJ>98&%lg4>VHU-#ws7g@^LqG$TTTOV?VQ#X|oK zM(=7mZ?-`o?}43&m?lq~F*1ye*U=U9Z=IFh(j=kEqy^tM_5J3#+(JU3*n20&P<)|I zT!3Q-t;DBjL{_EXfE3#X#drXJ@7sJ&ED9wcQ+FlJ znr8OaK(bt&@T!sf8y*r4Cz4U9n^bE5A&aAhhL|@4R32z5IgO(h zNAJYJYP-`EYXH&SehDD|dBX29s|}My5Un&4pY+XeE)}@Dj_dBAJ66vhHWmu?PY=Ad znB;sc{=H+@MZ;>_P;$Sjn1-@iWWou{EGVlLIJX$g{}s%cC9T^(OYcle)z((q{1LWZ zqU@8jx;3c3b4&}Sv6%h!mT9mi4&z++Xr=cFn0f=!Gk>Lv29O1JSU@)0B!{UNei}Fn zK=KfBw7zmKGDkjo^W7MIwIlc(MFH4^&t`6vU<&<)p5N71f~qUDg@~yMJ-x{ihODPS zIJKj$oF03AVpz9Z1A82@4zL?I2whA!*pR$_Y`0a$+O&3+sCyoZp-yi9sH;L%HP{h{ z-4`m?8_c0i*@{|4aIb}uG6O=gf^-Bb=1F3GV=8S=DOQikT?{awb*qDaDm%EJU*t7 zMj1is#f-YcCsa*oCO{S}guE?UBdmvz>wlh>8X*Xk8i?j^|+~T(ADq#_KpWGG}bN=yL z&0nuG`fq{sr%-u9n$m6H$}#VQf~tZhfc?ZCH-Q&MYAy?bi@w}Ao5MGNrWK&*J9^#beu#j1K^pZ?>Q8c<5Pg^W zCc{O>$@9Y4InW4ltIm+O2`s@QAS&5sng|6BO>A~+s-FmlGiM4D~=eTg}d#Sj4#F*i3Ulg3i{Nt~;wla*~t}vYhuXy>*%Ir_-9>W0# zZw_7+GIUWz`vOF_W&R3VDDk4_g_|@-N{$NDT)ObA_?xsfrzp*~KM5`lL@$AlsOZ$Y z_lb$%mRS=#^Tg}V&d5?5?%SN8cMkZHmQ&P#TT6gf0l1Vm=rEfo7{PU$T~S90%KCk8 znm`w~b97H)1w&TK{eOHIFC|DtXsVZQ9e)Q%KebBtF$ei1-`+@U_syyw{jpe1M~ZNA z4PORE#Eeao=7E7v0eCBqcYJ7JmYu7VVJUNIg0i96f`n~oYipOYW}E&4pkRbCk8SqL zw|^$7z-}+3OnyrgCnN=U?f!VH+0r@vun70#-J_=M84!FM@x#5x0|;zfN1QJIEB-GUzNYQEdd<_#uYKmM=+txE>){z9Owx}r-aeSDy;$nw zTAJ84&r%-=?l83*yus^BL!c3h9c`72Aw)iLKEFX{FNRWCW2oGbyz#G#)3}o~gF(tvtl17gK;xa5Zn4d46!mNzjZ&&)n z2O-T8>Q_p#URSC6-@8oWDX1rZFsfbk**Tn*MD+FC}eBA z)bTY;#vD@B)ShHbsx&)=wJ8-%v)sDX;)keP+nQOLAe=-xCm*HCAS<$zp>QA^4y1BY zbD|&Rv2WrRK21~v;y9Ay=I|)?by7Ksr1Vg%_}N8JlofH*JZ?3f(|XH*spDUk@4Gw zZ)j=Ur3wb_46$y`v6elBSi*j5xp7STdV);L2Rau@okdBXwdGO|9HhRsT(uCc^Joat z_Qh{(5~5M+6(t}32sgQM&{oTE)#M6$#+`VAaCx)vX0r)!>=994tG-1aRbKBikZB?1 zr3rNk9^SG09F7qQx(#Y}FohH0p4 zU}jHBQ7*D{+V+ynsSH3IZTljHU+S_pol<-zpG$cqyUxyi%sU^cIChb_Icz8EGgSC> zW#ZZTbbM6zH%8`XqD+`WklsI&d_p5oFRrnH6S;W!>rKppEIz1g7Ftr`*z(%OXL# zUOhstJ4%4Ck#@yxGoSC#tf7$WFwHgI4!0rg@_x==%;6Lm?d+ESS`e@?a5vsm7{>29 zI%c=brF7iCr&xJ+Z6?~%4U)W~Vzx}oK3P-hT*P~0#ahnY)_Zw%3^;fU?_nwQq{bX}V8`lKj)~4=^ zR79__fB?RT_f5foh4F0R=rvvZXFIZ{=7fT%O(ctsWkqfPhq~?vQlLcSq%rF_D|EoP zjcV&=dmz&jKp+Lh4gM<{{$+$b`1)JGB-H^ARR{1C85S!jD^Q!!l z2H3=bEJzvvKpIw;t_02LP1sD&Xo(`O?2uwg!QO> z#{P@{STpjl5I@&W6M?Zl!3@GOmyW z2(NsUy+?Vm?^5JQ^Xql4OfftiPkm_^uO~1mz<&XV&_aw8``Lu+mqOacII-nlCOJ#J z)}MKv6A!iR2=sME=3PDhxa!ZflY9cSdUdC0^@SpEq3glcvEcg@d9YD=Vc3?HRaJ+g z*YJYz`k$HMQ~f+Fi8+m$>K?;JkcFqpI=)v2Q>&T?JR!Q{S3D7dJ2R0b#Ed7h*(`#J zO&1Jv-US`Em-1Rp`o;rIL*VLcn-0kYszwPPXSmA*PaS_XTHsK;SumKH-$2%}9kq%= zU73@TRAJVY629L$?=r7eVl7CH+hD^bSt;nVU@H5) zqH{1A$ZZ=MSF!EAFXz0keiuqxU*!*NO- zyEn*`&?V>A4<}xThz5IjRO$EE-S=?x97*RQjvjz*0_T=+o3tj-tREAx7KCcB zEb6@?rD&l=N**OQ)OL1Vy{57vr=Q&5X;ONP*lQn|79^d9aP9~8>xv$&3KzRNWBxr; z*4~VNq_qf*RX;iAUgtipM!84rt-S*8%brPSNmQIz(`p>OdllR#*4w8IrZ@HC8!@pi zsgfM0y^HJLzfmaYKOqOU7QUk--uxZWvt3B3tN+Kx%my|#N=ssKTdDEA#0l#*M>^fIp3xQv1VnbcLYaM1{8zr`+)D|QuRz?`lgRLTGpVb zZ`U(n%v=U|mxl^N-T+JzfaKm7h5CBcuUQ<8q+J#@)a}m&XlbccmN$4?T%)!c zIIu{l)-$^X1S%jFMF79-Z0g|`?sr(iN@0I5 zC#Choz9Y&ec_IBXEd%lsw9YoL@TEW=a@2ncNUiHcXPE>uNVvJEIAw)I+^k!*khL2D2hr!PB{2 z7u|jOdUL+MSs*||!JQuAok8EkGwSocQl-W+S5U`FrOW-d9i z+1rNiA@@Vz z4iI27hJ5k^cjA@G2}N+3av_Otbqt{F>nATX+(lc-vKb$l;Nq39Jyio38vCF5Wa%5@ zY(XIu&7DkUax(D#Ymob6>?Fgou>}La8S3B3J5?UpZARL#wD$X$&ZRIgfk^Z3J+(d} z3q!@i>8}F6(FKsp=ZYNH=-gew2RE;}CBfcCukC2k$AU%b0>4(hCi}T{TKe5?AU7Ct z8uc~E;H;xs!(GDpliUwvj(&LY5O_BsXdGq#<>lFS)*IJ^IV5gu#1EPz#rg}Hq17<* z9?TA{3B|8sq9=iklDl?!Oo6T*3cNoCEFkO_)d)Cfkjx_At|xEb;aXK`69v)py@L0I ztxWMEZ&lZ#Gyu6}{s2?weF*wWqC9!<&%aWlw4R-pFc-g9E&ZCU>4n5}TI=+ph`bG+ z{|8o`I`2inG5N5twd6)KUHvD>N}vhQ0kd@ve5h( zgs4>A0vIc2!;m_T03mzOd_fdVB};zp!u30e!z> zNh_PTkBB1$1_{37idUwnKH>tCK{D7&dbQ4vW=iz>1d5uS2IUe_N3?gxgXk*{f$N26 z6T6EH!4RWm<)@m;69;+(zh_(h5Z&F`@E3e_kG~ytyz{Et^`0!ahx>tZh!#|ZqCNs&J@+kBIpBVp#e|7^@Fr@zb}9EuSXU6EU*Q4y)-3l} z##07vgVy1g;_+-u)u?{6J-{Ws@9Jco+OXX_S!8`e)%4@s2}1sLvtLR|=DkN5(Qkk| z4?9IX^-gGs8Cal6{?o(+s=qiz z|A$aNG7I?L-C`!AF?Uy!&71Fv-DSGR&G%-D3R{*mk9fQ}Fs_j?=1R_22Y z@t^3Ks>}1?hJTq#bWcb}FdVi%AQ@#P`Q z^T?|=FD!}lW-uAVh1!Z-uQHB{BglJP-7C&|Ib3U-dQeLq#|gCIIiftW{XCa@kb58O z)=a(Hb&w@A+gmq?(m55b4!Ia+rSA7|wJ#jHN<((@+{q}LQ~Dn>-OJc~{BOIDDwdr^`uz8iGz zBfOu3UlSR7R-%X!5yAI@G&1>mTmhzkQ9bWNowGf+)18yP?`xLxvu6n0zp}l$venQt zrtS2sZsgTDgTfnO9Pgn^O7~%ToYU6?mXs*tDJ?EOEuOwZCl}*shLo*puemR}B9xVq zW|zUngSn&`-OvCHj1;YpO5|UU>#VrW_BBV?b*;kY{bj4zOXeS=@^s$85P0qRD!1$& ze-V@Q6G}tFJF`c#SfYWV7IxP?e z-DMu5n9JQaeDi+y%g)u_*GS^k`RVy}5#;EH%@FDMv+iSouP@uIihcAIUV_0J;)}_gaXE;__P}195w!=oaQ`i%0L+*{9s;F82KO`H#Q8@AZ94(9auvr6T;UE0ZrG8Kt=v&xJJ%+z1p;Cl_Q23#O84 zf1oez_Yfy6d%7am@u!e%mg%Au?<;V7Q*&!K@7r?aZAFwa%3;FN;TUD3p5|Gx+)Jw0 zSyxBCG$AKQV-Hk*Yn|plCv{|MTemi=v)U~w9&wRXui)&<=Rgcxpl^2=$RH{JL3Nk!& zduBEa4>*js&hTRKVXT2mVa zQ$cM#uu%7S$14Rt$*R)nFY3_!YsutR4k(1DM?#`O3QBn90|5rsAv6T|s^B)7ovoF# zf==xS79t$>Iz(J0+bt)^+#!5m5~k{O zVDy_RX(yP?&CN;d z%$`?^xE@87dfRA^-D8v!-Bb{V590dLCGfr;TwLcQ#!jvev~6bOvzkeZHXh_C(UX0Y zY5m6MjjLxCQTL(%((a5GR2Ho+I}|2ASZub z&w+gXPSA(o1V~6wV4*P$^AbC1xWqZCI zVYLQH7c^XTUl>u%xL1MPplRS@wXw8zFSsI5AiXi;wj(68m854&cpjs@hCmIjca+FM zDyc28R@4jH=&Y)t?vU%yrgL`rBU^W8c3YJ>INl zEAj3^CmCdDSV$)Bx^PN3Yp(FC4!EhXNr~+iy|%~?DhvmTrIJU$*TTOjEj2!FEx)1e zROK|o7)Ip`T17_jD3MBi!ORd1)9B{gno9@6E#`23frVhe=w1+!Af3zj%reru59LTc zc(1MZ_V&*NK>Lyl>qQ@cw7Ku0K{rnLzO)fIi!r1d>#$vr5+$(T1Zw-4Wg^gp<`YU~ zhy^VnL_De8ZF1Bh@mx}_=Gjw2Jtjqjk*fUdSze`tbK07#?SqGcJAL1|qnT z^Akz;ZjE;1McaHnA(*dWrz3DMRDfl6&!1e{wR>UkFQl!^mwEuFoZ{6p)nm=)i8F8O9=_?yb; z;>&yZwZ?|O06o-ukMPj2mxR+JV1$YLS12bbKT~tw1|+jjZ6tfQhiLA5m$?vOemfK~ zazj|fQfI93qlVnQ3EbeN>n~dv#T9MKD zKBBb-#+dYalkv>#2oS?yo5{;eE-!yRnlaxQ_j@ujigjLEJMZ0MRTay`R#=#%^K8~g zc~;s)N%B=&E0j}uf!Hds+F*~z)z{ykck`5Y(yOaao`C|QW%ai-DpqIeERoh_cIrw> zksMm>{FfxfyU$g5dh*ICfsrUnhick>YVyxQHaog5&P`)dy|Jo?78EChdM zZ(y)ru_@)yF#bHD=3yWkGUdIL)MC+#(S8ZP07-lHj$Qw6Gbf;}=VfkVn`3a-X0?}f zEA1nR-|csfl@D`r5$W!1@TLYNhuqus+AVpahO{etQlScznlqKA6-Nn`X+PPVP`thn zlOhJ8n@2d!Z%dkhw>3W(FGcuMvYi>$SQ)iy8{ubyaf?oycr~q$q%|K@H!&=laPacy z2oy+aZ(6gxc;!$iP(TH0UYFgV0-;=7IuqP8;HA60o-~$&G~j-}Y!#eQyaz!o8M>Ap5)Z~N zsr8AA8$ULeAEj6E79WNJvz^x)s`lC3;-%H84fv(SeiF#q6@@Xtj82m@q=kNu2$RLB z`?BO7x*&PTjGl?L(n*P~P<(m3Ey9J&M{C<*y)FOi_XJR3q>cU*^bZcDDEA- zji`7n_Pl#52C-B>e??$~vns{Tn1EhnLFs-JrOemubUzA?tA%l6*4w2@4a?hf-g z#1I{W>`8z}xs9oElgFNhFz!bdx5=(gQ3FK|ZX0&LW9uCp3*&Bm_XT2SBu}4pQ39>? zcHrJEFyu!)mQpFuK_+#~Lv}vThIQo&=dmLjS>71`C{cJY80w|vV$uTHzA&olv5zh1 zw`ni8TZS;G9KYCWk&z{r#;UcW>S+|rRo zn=+!@*hGz{|N4IK4!q6n`F*pKt@uU{;{cSGT}z1LKbRu1p2?-4GM2u*31&h0e{{{*i>!MbwK{buG_3{Q;p9yR<8URMaci$L-ix)2;5&0BmLi8*%^S@tDzO(N z-L+g?yK#_bsi&ve&=j_Vubr>Ij20Zh;Nw4YdUQv!zGHY&{9^=AXV;?VE5@@pe1F_6 z-C9h-@6D4yKaALr7uxfR&}{CE*Z?}=e0WC~(Xq+Gup953yFco%)Wi_)w!*J(j%^D7 zGI`j=0e9FL922Hqb=pvN^r=)j5W+6D0`8l0r*#sfj>$Dx(PZy@o6(>Gy^LJ}RXGFd zgxTwr1bex{gNOSjxiMQ!+OIF2SgmK~@c(GL45tGI6kXCWR?!|3J9ZHG`#y&4%2=;9 zNWqC6WABCUL~YOi>emArc@yu^N9-QEx?j2=iGd{(nB%weNQu-~qy1~srtXV8zPlmd zw<_Q__Zk-yPTOXEci;)tjUSh_i=>^a40KKi?V<{$u65@RM*Fzm_12E?s}q*gpOQ80 zPsVmGFdkGY=FAKzdTyqi-X1qxiMm6ZqXz|idgTudk3y#Fdnp}d$(1^ea8w}$mL_gODx?$U9R8=53< z;TUf3nMo`)U4? z&Ov?#p)?Ko@2s}L7$~#o%ePoDS=#1h5Lpcoii7vi8JAGBANwvIx#;rlNeN^{VDy5h z0HEr-Y0VM+s2yKWQ*r2fz+BU-PaYMqiy45sPob+4M+aZW#Ktac|H;IQ0eGP zy6v;QF@x68>ouRERrbiV?<=B&XQ93|MN-I^`7b*4y};4f-(emiaD+?l&j&9kpJ@V9 zm|>Ugg5cM#Ot}l(NnoZXGQpU25}Eug#Ka^zC9j*NEK!VOm(*ss2IopL^rBp!Hp}rU z^G~?bAeIlISNa4n2j*V#$~{{@!`%kT0^MA2Tyr+0e>st!!OiQk}cXHU_YA6&viC!mrt4I5~i;>>{A&@}8sQW94W)ea58m#)+e&JgRf%{)3c_vD_z2Dtx2k(-lI)iPc#J_-dTmkP;j1qIW zby>NZ_`15-gG^FgiG zdL>BxLtrrO6UT=S$vqPfh;w#%ETz}sH(lkGn9c;Z*ZY!wPrz;>L=3Mk;ZqTk`17ZE zN{IHAD|3x}_RU=&-}djVP*3k|Su1{vU$_pHcnaST^rixEn3A(c}z&#%2{Mg z9e_H<-w=A@4w^jDb*5Mo|A}DR((KWy=Mh}PkBPhD{Pt!M&EH#T?_=zmq9akO;ka8B zjstd086S64*sXvPp&K3$C>Kaa^Eh)ywHZIBV%?t$Jn=Tkn@hQ^o~rL-S0&Ifqb&=p zQuWD|^NEd7#k+|05#4;Xj~u=Gs-7^pR2D9V3h^@A*Hvf)qVP0Z`McpM+Cti6jZN2f zNaGrh-I|0dJa;O`nkO!%W4^>X8y$iLAiPpo)`Nw;l~?8?I&`EwwDvqJ=xZKCQ3!`3 zx<5Ob@{Tdeyjek(H<~iZ+>T&Y5K8p@TvBDJ@Y98~xMdxckc_Hq0_K0l;-q@#N2HAP zipk#Rq71K@feS~bPVxggGsx_egSG5HTBEf#H5hDCDMqvrQ}eavU4lbUvWKcQuPfPS{|uMy z__C%v-39lZ1l(|qe$;mVguLXJyQh^~FgF*(&gEDIvA2Fw^o*}g>}02xiRH^bu+aLc zc8=%v-nNK5U8)6uzpH(r{-f%%*VspfLD)>JhNZsHOi3fzVJwO#Vu;35A@`@*L|=s%TH-d^i=Ki zQW+v(h@lM|8}fDoavJUdcjjs*`XbLt$@Zx}8c=?_Cv@=Wy!+KqILZC8QMJ$sz~4)A zY=V;eQh|JUubnAb-YaKyE3H^qQbMNCX1w;@aOtMJ-Ee(LqbcWT`E>0u1rYL-sHnZ5 zT>X4eEt>1)R~lwsm%{GcLZK3GLz!xq9^2&pKfgKfIG7J%Q)WZcfL?n z5Ayri^@XCRnQwoD{^h@jD%46Fhx28tUN{!EcqBW!&T8qz%AHo0MkZ0_bhlG~x$ntF z6*e(xENzzESAOSLn^gtIu6d2^!(SbFU)OE`(KNUQ(57FG>-(@KrDb4Xuv5-?%aI20 z=Jx~lRjKFTTOTjDHT0bz^JcHs`j@%r46n0q6vklldZ^#X7en$fTR#)|hF|)CS>_ta z0las&GmJeyr)%xknBaEvOH8}H{L81GJ_t9JV)ptr758c{_U6s)vQxJuy@3A{kG>&BX@8`L6WbYC^sm+1H`yH@A9) z_}nUDzhecHlbrad&6QLU)T#L#ppT%0D)6KF%8=?A%% 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 diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index 5d087c0b36f9c1ddd45cc220815d0107a49e5118..5f153cece749c456e0b07ce6042d750354e3db5c 100644 GIT binary patch literal 138304 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 J=kGfm@*g$>0R#X5 literal 132866 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%0AXy$NpjFcyMcEq#@t2|zCNM%dE0V6SP z`_zxESK1M<$IftX)lc z^>0}_vXOJNh;&Nky5EMC2nJdPI#rs6;t$yvw+^!K0&E;wek~!Lz5~whx3iHZPY~`i zh{+qtaIW733s+==L3$pnn+18?Hp8MS4#vvxU(Fhh(!5W4YvQ+=7{B%^pVs{NgT za1;(WY#O6Dgh;(>ZGKSAS50|g=?-DdK0Jj>J8hsF5zg+Y`pTwo;~L( z@%GKdy=m^*Ki>?hCdvkkY#uME49}3lTaeW0I@S=qT5zP&k(f*)q(@dtyIKO>?~j3# z(KN=9!};i{z>AVfxKSt8F#2l2h|WDNjRjN2EFB%=Y-E*}O%2H!>1gy=+cI%F(H>X7 zLTg?%$JA6~>thjdUmK0DVvyW*q|X|%n)q17(L9<(ud4Hi6+r2nwr$zY$Z)`(^WUOK;^fy zAVtFP%)vwE!_6=4JU!#n0>g1MdON>Dp_3S8N?c9VFN5VXL-5%^k^e6ANTr8HY8nF_ z?S+?tN;CuW{Y&xC(Ux$jKNfiW^jnTp!Ck6h=qYl{cl_x^HQio8#9rKkI^pg!PQ<)t z*2YVR#r+gtB&u*{p=|(ZozhbGH-FSoG(4r{K23RCXG&Zb2L`nzQ#j+jTsyt?W`=8| z8PdBJ={PoK-L$pZ74{p=?`9h(Z^p_1?ymm1VsXq0a?N~_un-yUnR(hgyb!ULJCthP z|Dk#9NJV!S^v=JiORRzxD2sEDKyZBPi9N|5rBdm7bk;apQlzWqsujKPFl=F8n-`sK z*|RZv$}N|OG{>}}#4K}Ju7W71@|XgJBoA#AK40*+AJx|_>&vs7DaA|d3-)iJ*9)_R z#_=-J^aLK_|bxuMgPjah@e5gF!S|Fq9uSk|o1*9+x|=aT%~q4I|$vC9N>e2-B?{ z;A}nKB_K~rhiuePxV-kEV<-n+>`E(6vSXgK>+Sg#P4#gtjB&g&l^(>y=M%&+TUxP#pkmFAQICnTqv zOY%rzxTEc5h4Q$kg12qicAJlkifTX6Cv-#eGp~$kBDU$-m(z?hiN@#F^q9wFSeZD! z!|sJJsO}CbWcQg*Tz*Op5z=TCR`NI} z`f;W+ha1Y0O$V}tN&0wSUERjua`z0MdsEuEhPote&F5y^g$TyC2e4L-0<^+3xPuF%{ za`3C+cM%BbD<7n<9XY3(GhRgdQHFwx8CSQ)?76%G!2XCG%sy2$fz6yI(F&l7mRT#giHhiHm`2;;F$@0GqYaYUn@C7kfkg_*-cON)mfYSn=ggT= z3w-J0VQ#-XKBLvvsVjHg_Q<|6CEj9yi*azUBDCV*qlMHP_C8|6XpNVL!v)sv@OJFo z+jsqkTq`f#-$>3}i?e-a_D)~U$18VFUzR>OyJ@mZ%iE8y%d^@PCThV>C~%lBEvXZR zVVB_~*hrpT-BcX&>|lmUV&5~L?%caqh`g@+FnD%8U#S9b%iW&W%zBIQ+q<(x6|l8Q z4s4YLURt!?L%ODrZ2qI%4Q4i1ASuP3D$APUxlzuE@t=??M55f7C#;ElvqjQXJ3i7WGXp5qu6vv0{+I zuA)RV3NQwotCyoVwWj2BHTj6ol*5kQBJESZJN&c%+P?iChHz~bt`zM#-c7~7yb?Wh znii{n?q+_!hk@Fi;jJg;{klca=Tx0>fB(;W1U-!XOReMcT>IQVjd^GJZ0G&Hp|m~? zd)5>v^~`#nSo}{>063a=KdZ~xA3kg^@PTKzWvJnqo+tVZlm0*DIsZq32$d+ClI#Z! zcJf#F_UsRXCtNizaTqsC=PY&Vee<2O#-Gkz%&8vpTi9la{1;vpdjKotC8aH%xN^Cj zF_E924~$TvW9!9$oT(SV@V4d|AI{O{rEg#2P4q2>^Zuev*o;=umK??qG_jTGH_W%+ zG?#FjGj4|LerC^BPc3feChK9V^tQBYcd`m<A_}LJL;OOj%vm<1o4{ms-AgaeAp7jOnjJ!=AD6Od315q4}$^21-Mv-m^U6cSf=*G z=tHq8-i+&Z`b=)tSig;@2jDJMU!$lvCwkVMb?jrKqK-Y~n4-dBN6pEd@V(8kuT|HM zENCcI4HY8I$rAh}XTDKv{)+$KHXZQn?z!)AXuY!!I(4s>m|;=h5NaNsigvf)$qsgHV-n`CJG;?>qp zCEA<3q*3?U4xyt_vF(}c#8GeyHt{=SUroQ+-mafk1bgP(@=iyehZ_S&WE6&%X_Yty z#+L^Vo^Qc@cIi;*&i0sfSEKaqQpJHnQ~|=?LDEk;Wyl>>s1soPR1@;-8S$ z@MO$RJbNh4)HPcA@GjbH{93`p8F7k-?rm6bOSW&O^lk zIQPs)3{&s^Vnc+lrO(?_7<1~B(nE7oNq`G&@nqxth1Sdq9XCJU)7j>M=Q)MVJC=Kz zWPGrhnLrZo`urRM=bnrBjV2oxXm!Ow{ne&B1I>rfGwe1LOlzKn-~@j1R6X&Bz1$eT zjb2Huw|u6Zn;4ZCp>yY@!4<_r26JmI%$^p)knW@RjqvEKG4w5Z*?rIDT0BhVubj}l zgRszk0zOj9G5cxveO@T3#zy7Yr?B_+v#hj@yf!mBdboEdJ7ekVG}Sve#qA_ zotAKT-=SZV=T2F_rZyv?<8&tdpTYq>*O>l@EW9;jKQ;*c z?dGC@XS>O=ouTVuH@q)x$BRPP4ML+Z^w~DW?am}2esv*ozoiY{1cw&C(@#f-!wQj+ z!nrEWiR{hwH%F$T0N{+(jvYI;S4_Z~R1;?(PJC|A@2aSKricG;nVDP|*y-hB;+j6K~pUEKBMVsih2RHJf9fxVLg=qhmQ-3%c{i(T{J=(AZF0YxjC_8w}Px zPt23n9|+9JuW}shm_)?LQX`~nL$=gWa_V|X^hFV^N|tHRwesBV=61&#ltW4aQoJvQ zZzLj;vuqz4$0rdjWw%}TXemcDqZR6L=03O4>L?vU{p+kUF}j%wgY4U`ZLDnv?sn|b zYA37-8TFtn(LP=3Ewv6x0KR4bptd=#+ zvglHUbFeBquFn1_|4lRF-h5Yh&-if|OUPzz8n+T3WPE=(L`bE6?uwBoE7|)4)4j&n z|8gRJ$WH(W-=f3948m_|UZ%e0!Jo+$Bd(z_VcYu`+(UXCNm^uep-(`G=DnLTI0Uzf zo006~o_a}0H77&{al{GQh<;mV6rLKFckzq%i6y|ko*bA?Tvt~|irfw&v5iriv*eL| zEnP&LD&t5&nz(3XBbC^x62Hn-$Ei((0X!tSl zdZo2)w;hJbrOuuAie0m__lohk&X7uPLF6UL-W>isD`ej*{o9{10}V`^udQ_^OE?VG zvX~H_wDyswt^VKl+S|Jqw4d59vfO!6_y65{oph)RJ?!XW%29t zz5erkdx6{^ch;J(pYcC0_rA#AFaO`pnl$^)C;7tM`+EOh1ADUCxAv62p8Ee>@$8TF zwI~07csdV~d>Go&fit0XD)oiGs~y(1#O@ZKKR-SyaKokF`)9uZg=GDI{`&1-D*jJC z|G%{6SpO0C~u;}IbKMZ2Pq;{u^U7-}%GL|y=4{Tzn18ZB+pY1F!{=aqvtu~#|y>Jf` zGuzd-ZpXc}W77C^?W8^fGqu~EPzOo2llBv)ZGG||*wpCBYi_s%?B#*d`4(xGDaSy? zU4v0<_*b?G>u;+6`@HG@yxFr~|EkWbbE^7v)_%e~$4~X|?^Zv0mHfedFK}@tcy=6k zEBykUc?^!aUp{A?zBXB*VGD4Cr2756?iee+`7XJ=q5fA#I&b73EyPXoswwtMjiUD5qN_bC4-{>)cX|8uN9q8K_ia{jz| zdQU)JN|c;EfByO^=@SvpRnpCYt)N{$89QHY-Srw62s*aE{sD(Dr__7+?ANvd&I5zH z$@N>8Edw5D4h+kNpb93Iso>#&)wZ{)fbO0xKVbo=F>!U%-%r`=kDOT;3G53Q{L(lN@k~!j?-~1;AS7#sAe0If1K%9rQ#T z0<=LbJSCe?a=`FOhyeFgc7EXE$yyo8!T2N{SO>Ni17$#(;tgTe~DWM4f8l}r1 diff --git a/icons/obj/weapons/khopesh.dmi b/icons/obj/weapons/khopesh.dmi index 7c0d54a7140b90ca31c8be9c2638eaa64f72f8ea..20b084396aa6d34cfc611cd0ac7ffbcfab5b4db2 100644 GIT binary patch literal 44193 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 From a5c91ad30b5e2e9b31cd4fbaccc71c81a0f898c6 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:13:03 +0000 Subject: [PATCH 108/119] Automatic changelog for PR #87250 [ci skip] --- html/changelogs/AutoChangeLog-pr-87250.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87250.yml diff --git a/html/changelogs/AutoChangeLog-pr-87250.yml b/html/changelogs/AutoChangeLog-pr-87250.yml new file mode 100644 index 000000000000..9a5d347bf757 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87250.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "Portable SMESes should no longer turn invisible when unscrewed." \ No newline at end of file From b083742884257e5ef0dda76f4ba027549b43a77c Mon Sep 17 00:00:00 2001 From: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:59:25 +0100 Subject: [PATCH 109/119] Fix canisters and portable pumps from rounding the user's input when setting pressure value. (#87243) ## About The Pull Request Fix canister and portable pump pressure inputs from transferring rounded values instead of the full value inputs to their target release pressure. Does this by adding a round_value = FALSE argument to tgui_input_number() in canister.dm, and removing the rounding operation in canister.dm and pump.dm. The UI should still round the values to display, just not rounding the value to transfer to the canister. ### Known issues: If the input is set to an integer with the same value as the rounded current value, then it will consider it the same for some reason, thus not calling ui_act(). Not sure why this happens. ## Why It's Good For The Game Closes #87175. ## Changelog :cl: fix: Fixes canisters and portable pumps from not considering decimals when transferring input to setting release pressure. /:cl: --- code/modules/atmospherics/machinery/portable/canister.dm | 4 ++-- code/modules/atmospherics/machinery/portable/pump.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 467ad0e381d1..4fcfe1582599 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -599,14 +599,14 @@ pressure = CAN_MAX_RELEASE_PRESSURE . = TRUE else if(pressure == "input") - pressure = tgui_input_number(usr, "New release pressure", "Canister Pressure", release_pressure, CAN_MAX_RELEASE_PRESSURE, CAN_MIN_RELEASE_PRESSURE) + pressure = tgui_input_number(usr, message = "New release pressure", title = "Canister Pressure", default = release_pressure, max_value = CAN_MAX_RELEASE_PRESSURE, min_value = CAN_MIN_RELEASE_PRESSURE, round_value = FALSE) if(!isnull(pressure)) . = TRUE else if(text2num(pressure) != null) pressure = text2num(pressure) . = TRUE if(.) - release_pressure = clamp(round(pressure), CAN_MIN_RELEASE_PRESSURE, CAN_MAX_RELEASE_PRESSURE) + release_pressure = clamp(pressure, CAN_MIN_RELEASE_PRESSURE, CAN_MAX_RELEASE_PRESSURE) investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS) if("valve") diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 3efc87e00ac3..36d5bf4eb7c5 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -150,7 +150,7 @@ pressure = text2num(pressure) . = TRUE if(.) - target_pressure = clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) + target_pressure = clamp(pressure, PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) investigate_log("was set to [target_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS) if("eject") if(holding) From 8d950ab946ba8bbf1cc89fd9ec0b976def0f2d75 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:59:46 +0000 Subject: [PATCH 110/119] Automatic changelog for PR #87243 [ci skip] --- html/changelogs/AutoChangeLog-pr-87243.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87243.yml diff --git a/html/changelogs/AutoChangeLog-pr-87243.yml b/html/changelogs/AutoChangeLog-pr-87243.yml new file mode 100644 index 000000000000..366eaca36676 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87243.yml @@ -0,0 +1,4 @@ +author: "Pickle-Coding" +delete-after: True +changes: + - bugfix: "Fixes canisters and portable pumps from not considering decimals when transferring input to setting release pressure." \ No newline at end of file From 850acb7034d546c970707ff2b1af605f08fea525 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Thu, 17 Oct 2024 21:09:52 +0300 Subject: [PATCH 111/119] Gives audible emotes an emote specific audio cooldown alongside the general audio cooldown (#87210) defaults: ```php /// How long is the shared emote cooldown triggered by this emote? var/general_emote_audio_cooldown = 2 SECONDS /// How long is the specific emote cooldown triggered by this emote? var/specific_emote_audio_cooldown = 5 SECONDS ``` specific cooldown only checks for the emote, while the general is a shared cooldown, gave laugh and scream longer specific cooldowns. The general emote cooldown fixed the problem of multiple emotes getting used at once, now we have a problem with people using the same emote too many times, I want to give the players ability to use sounds in their emotes, but spamming the same emote over and over again makes me regret it and hesitant about it, this way we can have the best of both worlds. :cl: grungussuss sound: along with the shared emote cooldown, specific emote audio cooldown has returned. /:cl: --- code/datums/emotes.dm | 14 ++++++++------ code/modules/mob/living/carbon/emote.dm | 2 -- code/modules/mob/living/carbon/human/emote.dm | 2 +- code/modules/mob/living/emote.dm | 5 +---- modular_nova/modules/emotes/code/emotes.dm | 1 - 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 2832cef8ffb2..6aa32258d3d2 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -50,7 +50,7 @@ var/stat_allowed = CONSCIOUS /// Sound to play when emote is called. var/sound - /// Used for the honk borg emote. + /// Does this emote vary in pitch? var/vary = FALSE /// Can only code call this event instead of the player. var/only_forced_audio = FALSE @@ -58,8 +58,10 @@ var/cooldown = 0.8 SECONDS /// Does this message have a message that can be modified by the user? var/can_message_change = FALSE - /// How long is the cooldown on the audio of the emote, if it has one? - var/audio_cooldown = 2 SECONDS + /// How long is the shared emote cooldown triggered by this emote? + var/general_emote_audio_cooldown = 2 SECONDS + /// How long is the specific emote cooldown triggered by this emote? + var/specific_emote_audio_cooldown = 5 SECONDS /// Does this emote's sound ignore walls? var/sound_wall_ignore = FALSE @@ -100,10 +102,10 @@ user.log_message(msg, LOG_EMOTE) var/tmp_sound = get_sound(user) - if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, "audible_emote_cooldown")) - TIMER_COOLDOWN_START(user, "audible_emote_cooldown", audio_cooldown) + if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, "general_emote_audio_cooldown") && TIMER_COOLDOWN_FINISHED(user, type)) + TIMER_COOLDOWN_START(user, type, specific_emote_audio_cooldown) + TIMER_COOLDOWN_START(user, "general_emote_audio_cooldown", general_emote_audio_cooldown) //playsound(source = user,soundin = tmp_sound,vol = 50, vary = vary, ignore_walls = sound_wall_ignore) // NOVA EDIT REMOVAL - // NOVA EDIT ADDITION BEGIN if(istype(src, /datum/emote/living/lewd)) playsound_if_pref(source = user, soundin = tmp_sound, vol = sound_volume, vary = vary, pref_to_check = /datum/preference/toggle/erp/sounds) else diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 3f2be475ab52..f075b3b2e68a 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -24,7 +24,6 @@ message = "claps." hands_use_check = TRUE emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE - audio_cooldown = 5 SECONDS vary = TRUE /datum/emote/living/carbon/clap/get_sound(mob/living/user) @@ -57,7 +56,6 @@ key_third_person = "cries" message = "cries." message_mime = "sobs silently." - audio_cooldown = 5 SECONDS emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE vary = TRUE stat_allowed = SOFT_CRIT diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index d1d4e1875e72..b2c316ec2928 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -63,7 +63,7 @@ message = "screams!" message_mime = "acts out a scream!" emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE - audio_cooldown = 5 SECONDS + specific_emote_audio_cooldown = 10 SECONDS vary = TRUE sound_wall_ignore = TRUE //NOVA EDIT ADDITION diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index eb841c62f389..3da588bdf842 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -263,7 +263,7 @@ message = "laughs." message_mime = "laughs silently!" emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE - audio_cooldown = 5 SECONDS + specific_emote_audio_cooldown = 8 SECONDS vary = TRUE /datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE , intentional, params) @@ -312,7 +312,6 @@ message = "sneezes." message_mime = "acts out an exaggerated silent sneeze." emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE - audio_cooldown = 5 SECONDS vary = TRUE /datum/emote/living/sneeze/get_sound(mob/living/carbon/human/user) @@ -326,7 +325,6 @@ message = "coughs!" message_mime = "acts out an exaggerated cough!" vary = TRUE - audio_cooldown = 5 SECONDS emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE | EMOTE_RUNECHAT /datum/emote/living/cough/can_run_emote(mob/user, status_check = TRUE , intentional, params) @@ -744,7 +742,6 @@ key_third_person = "whistles" message = "whistles." message_mime = "whistles silently!" - audio_cooldown = 5 SECONDS vary = TRUE emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE diff --git a/modular_nova/modules/emotes/code/emotes.dm b/modular_nova/modules/emotes/code/emotes.dm index fa233c986ac0..6a695dfa7408 100644 --- a/modular_nova/modules/emotes/code/emotes.dm +++ b/modular_nova/modules/emotes/code/emotes.dm @@ -277,7 +277,6 @@ message = "claps." hands_use_check = TRUE emote_type = EMOTE_AUDIBLE - audio_cooldown = 5 SECONDS vary = TRUE mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) From 9e207f38134e45ac2b4ad474fc9655ac7a9966f5 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:10:12 +0000 Subject: [PATCH 112/119] Automatic changelog for PR #87210 [ci skip] --- html/changelogs/AutoChangeLog-pr-87210.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87210.yml diff --git a/html/changelogs/AutoChangeLog-pr-87210.yml b/html/changelogs/AutoChangeLog-pr-87210.yml new file mode 100644 index 000000000000..0e333cddb5d1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87210.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "along with the shared emote cooldown, specific emote audio cooldown has returned." \ No newline at end of file From 2ec77330b52dbab76ca1f731926982406c51d173 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:29:49 +0000 Subject: [PATCH 113/119] Automatic changelog for PR #87254 [ci skip] --- html/changelogs/AutoChangeLog-pr-87254.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87254.yml diff --git a/html/changelogs/AutoChangeLog-pr-87254.yml b/html/changelogs/AutoChangeLog-pr-87254.yml new file mode 100644 index 000000000000..4464e914dc7c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87254.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - bugfix: "Fixed digitigrade pants sprite not updating in accordance to some leg updates" \ No newline at end of file From 171862aafbc48ef3e549706f18120e687f37653d Mon Sep 17 00:00:00 2001 From: Mal <13398309+vinylspiders@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:55:25 -0400 Subject: [PATCH 114/119] Fixes 'maximumm' --- modular_nova/modules/synths/code/bodyparts/brain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_nova/modules/synths/code/bodyparts/brain.dm b/modular_nova/modules/synths/code/bodyparts/brain.dm index 2cd7d6be1596..953b2bad433d 100644 --- a/modular_nova/modules/synths/code/bodyparts/brain.dm +++ b/modular_nova/modules/synths/code/bodyparts/brain.dm @@ -38,7 +38,7 @@ to_chat(owner, span_warning("Alert: Electromagnetic damage taken in central processing unit. Error Code: 401-YT")) apply_organ_damage(SYNTH_ORGAN_LIGHT_EMP_DAMAGE, SYNTH_EMP_BRAIN_DAMAGE_MAXIMUM, required_organ_flag = ORGAN_ROBOTIC) -/obj/item/organ/internal/brain/synth/apply_organ_damage(damage_amount, maximumm, required_organ_flag) +/obj/item/organ/internal/brain/synth/apply_organ_damage(damage_amount, maximum, required_organ_flag) . = ..() if(owner && damage > 0 && (world.time - last_message_time) > SYNTH_BRAIN_DAMAGE_MESSAGE_INTERVAL) From 706b6b34b4e0ac5d8e9d4a365a95152bc745c26a Mon Sep 17 00:00:00 2001 From: OrbisAnima Date: Thu, 17 Oct 2024 18:22:39 -0300 Subject: [PATCH 115/119] moves the pumpkin to where it belongs --- .../master_files/code/modules/clothing/head/hardhat.dm | 4 ++++ modular_nova/modules/modular_items/code/head.dm | 3 --- tgstation.dme | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 modular_nova/modules/modular_items/code/head.dm diff --git a/modular_nova/master_files/code/modules/clothing/head/hardhat.dm b/modular_nova/master_files/code/modules/clothing/head/hardhat.dm index 9872a107260c..7a9fec0cb510 100644 --- a/modular_nova/master_files/code/modules/clothing/head/hardhat.dm +++ b/modular_nova/master_files/code/modules/clothing/head/hardhat.dm @@ -10,3 +10,7 @@ visor_sprite_path = 'modular_nova/master_files/icons/mob/clothing/head_muzzled.dmi' else visor_sprite_path = 'icons/mob/clothing/head/utility.dmi' + +// Make it so pumpkin heads can be used in the neck, so that synths can cosplay as a dullahan for hallowen +/obj/item/clothing/head/utility/hardhat/pumpkinhead + slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK diff --git a/modular_nova/modules/modular_items/code/head.dm b/modular_nova/modules/modular_items/code/head.dm deleted file mode 100644 index b1a93f83799c..000000000000 --- a/modular_nova/modules/modular_items/code/head.dm +++ /dev/null @@ -1,3 +0,0 @@ -// Make it so pumpkin heads can be used in the neck, so that synths can cosplay as a dullahan for hallowen -/obj/item/clothing/head/utility/hardhat/pumpkinhead - slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK diff --git a/tgstation.dme b/tgstation.dme index 04f4ed1c8c47..6e69c1d00be4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8057,7 +8057,6 @@ #include "modular_nova\modules\modular_items\code\ciggies.dm" #include "modular_nova\modules\modular_items\code\cross.dm" #include "modular_nova\modules\modular_items\code\designs.dm" -#include "modular_nova\modules\modular_items\code\head.dm" #include "modular_nova\modules\modular_items\code\makeshift.dm" #include "modular_nova\modules\modular_items\code\modular_glasses.dm" #include "modular_nova\modules\modular_items\code\necklace.dm" From 266154b4253d16b0c30fc3388f0514016e239695 Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 00:46:03 +0000 Subject: [PATCH 116/119] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-4481.yml | 6 ------ html/changelogs/AutoChangeLog-pr-4496.yml | 4 ---- html/changelogs/archive/2024-10.yml | 11 +++++++++++ 3 files changed, 11 insertions(+), 10 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-4481.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4496.yml diff --git a/html/changelogs/AutoChangeLog-pr-4481.yml b/html/changelogs/AutoChangeLog-pr-4481.yml deleted file mode 100644 index eb7b6599b7c7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4481.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "OrbisAnima" -delete-after: True -changes: - - qol: "Mostâ„¢ Jackets, Suits, Tops, some armors and other exosuit equipment can now be toggled (CTRL+SHIFT+LEFT CLICK) to change between functional and non functional uses. The former their usual configuration, the latter featureless but able to be used on the neck." - - balance: "frontier jackets no longer can be stacked to get a boost on armor." - - balance: "frontier mask uses the same kind of armor the atmos, captain and CC masks have. It no longer gives Laser armor." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4496.yml b/html/changelogs/AutoChangeLog-pr-4496.yml deleted file mode 100644 index 676b8e0357a7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4496.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "sqnztb" -delete-after: True -changes: - - bugfix: "void raptor's interior windows no longer create vacuums when deconstructed." \ No newline at end of file diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 76591305df82..bb5cb3bf0861 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -445,3 +445,14 @@ for now - bugfix: fixes taur legs, digi legs, and augments not getting the correct footstep sounds from prefs applied to them +2024-10-18: + OrbisAnima: + - qol: "Most\u2122 Jackets, Suits, Tops, some armors and other exosuit equipment\ + \ can now be toggled (CTRL+SHIFT+LEFT CLICK) to change between functional and\ + \ non functional uses. The former their usual configuration, the latter featureless\ + \ but able to be used on the neck." + - balance: frontier jackets no longer can be stacked to get a boost on armor. + - balance: frontier mask uses the same kind of armor the atmos, captain and CC masks + have. It no longer gives Laser armor. + sqnztb: + - bugfix: void raptor's interior windows no longer create vacuums when deconstructed. From 3e03141cd80119f54f461b131ba904d312e9da8a Mon Sep 17 00:00:00 2001 From: Fluffles Date: Thu, 17 Oct 2024 20:19:14 -0700 Subject: [PATCH 117/119] fix runtime with inserting external organs --- .../datums/bodypart_overlays/mutant_bodypart_overlay.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index 130d1277e45b..08492344885f 100644 --- a/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/modular_nova/master_files/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -34,12 +34,13 @@ /datum/bodypart_overlay/mutant/proc/set_appearance_from_dna(datum/dna/dna, accessory_name, feature_key) if(isnull(feature_key)) // if not explicitly set, just use the feature_key of the bodypart_overlay feature_key = src.feature_key - if(!dna.mutant_bodyparts[feature_key]) + var/list/mutantparts_list = dna.mutant_bodyparts[feature_key] ? dna.mutant_bodyparts : dna.species.mutant_bodyparts + if(!mutantparts_list[feature_key]) return FALSE - sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : dna.mutant_bodyparts[feature_key][MUTANT_INDEX_NAME]) + sprite_datum = fetch_sprite_datum_from_name(accessory_name ? accessory_name : mutantparts_list[feature_key][MUTANT_INDEX_NAME]) modsuit_affected = sprite_datum.use_custom_mod_icon - draw_color = dna.mutant_bodyparts[feature_key][MUTANT_INDEX_COLOR_LIST] - build_emissive_eligibility(dna.mutant_bodyparts[feature_key][MUTANT_INDEX_EMISSIVE_LIST]) + draw_color = mutantparts_list[feature_key][MUTANT_INDEX_COLOR_LIST] + build_emissive_eligibility(mutantparts_list[feature_key][MUTANT_INDEX_EMISSIVE_LIST]) cache_key = jointext(generate_icon_cache(), "_") return TRUE From afc928852c218d10b58f51b2572f791db7fc0f12 Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:29:34 +0000 Subject: [PATCH 118/119] Automatic changelog for PR #4497 [ci skip] --- html/changelogs/AutoChangeLog-pr-4497.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4497.yml diff --git a/html/changelogs/AutoChangeLog-pr-4497.yml b/html/changelogs/AutoChangeLog-pr-4497.yml new file mode 100644 index 000000000000..04b39deaf62b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4497.yml @@ -0,0 +1,4 @@ +author: "OrbisAnima" +delete-after: True +changes: + - qol: "Allows the pumpkin/blumpkin head to be used on the neck slot, Synths and Dullahans rejoice!" \ No newline at end of file From 51b7ad7be674a43c84b41768a8de80c42fb6329b Mon Sep 17 00:00:00 2001 From: "novasector-ci[bot]" <181600888+novasector-ci[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:32:48 +0000 Subject: [PATCH 119/119] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-4497.yml | 4 - html/changelogs/AutoChangeLog-pr-86765.yml | 4 - html/changelogs/AutoChangeLog-pr-86827.yml | 8 -- html/changelogs/AutoChangeLog-pr-86957.yml | 4 - html/changelogs/AutoChangeLog-pr-87082.yml | 7 - html/changelogs/AutoChangeLog-pr-87102.yml | 4 - html/changelogs/AutoChangeLog-pr-87110.yml | 5 - html/changelogs/AutoChangeLog-pr-87119.yml | 4 - html/changelogs/AutoChangeLog-pr-87122.yml | 4 - html/changelogs/AutoChangeLog-pr-87143.yml | 5 - html/changelogs/AutoChangeLog-pr-87144.yml | 5 - html/changelogs/AutoChangeLog-pr-87145.yml | 4 - html/changelogs/AutoChangeLog-pr-87154.yml | 4 - html/changelogs/AutoChangeLog-pr-87157.yml | 4 - html/changelogs/AutoChangeLog-pr-87159.yml | 5 - html/changelogs/AutoChangeLog-pr-87165.yml | 5 - html/changelogs/AutoChangeLog-pr-87166.yml | 4 - html/changelogs/AutoChangeLog-pr-87167.yml | 13 -- html/changelogs/AutoChangeLog-pr-87169.yml | 4 - html/changelogs/AutoChangeLog-pr-87170.yml | 4 - html/changelogs/AutoChangeLog-pr-87174.yml | 4 - html/changelogs/AutoChangeLog-pr-87180.yml | 4 - html/changelogs/AutoChangeLog-pr-87184.yml | 5 - html/changelogs/AutoChangeLog-pr-87185.yml | 4 - html/changelogs/AutoChangeLog-pr-87190.yml | 4 - html/changelogs/AutoChangeLog-pr-87193.yml | 4 - html/changelogs/AutoChangeLog-pr-87194.yml | 4 - html/changelogs/AutoChangeLog-pr-87195.yml | 4 - html/changelogs/AutoChangeLog-pr-87198.yml | 5 - html/changelogs/AutoChangeLog-pr-87199.yml | 5 - html/changelogs/AutoChangeLog-pr-87201.yml | 10 -- html/changelogs/AutoChangeLog-pr-87204.yml | 4 - html/changelogs/AutoChangeLog-pr-87207.yml | 4 - html/changelogs/AutoChangeLog-pr-87208.yml | 4 - html/changelogs/AutoChangeLog-pr-87210.yml | 4 - html/changelogs/AutoChangeLog-pr-87212.yml | 4 - html/changelogs/AutoChangeLog-pr-87216.yml | 4 - html/changelogs/AutoChangeLog-pr-87218.yml | 4 - html/changelogs/AutoChangeLog-pr-87219.yml | 4 - html/changelogs/AutoChangeLog-pr-87226.yml | 5 - html/changelogs/AutoChangeLog-pr-87230.yml | 5 - html/changelogs/AutoChangeLog-pr-87243.yml | 4 - html/changelogs/AutoChangeLog-pr-87244.yml | 7 - html/changelogs/AutoChangeLog-pr-87247.yml | 4 - html/changelogs/AutoChangeLog-pr-87249.yml | 4 - html/changelogs/AutoChangeLog-pr-87250.yml | 4 - html/changelogs/AutoChangeLog-pr-87251.yml | 4 - html/changelogs/AutoChangeLog-pr-87254.yml | 4 - html/changelogs/archive/2024-10.yml | 150 +++++++++++++++++++++ 49 files changed, 150 insertions(+), 227 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-4497.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-86765.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-86827.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-86957.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87082.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87102.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87110.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87119.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87122.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87143.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87144.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87145.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87154.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87157.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87159.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87165.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87166.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87167.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87169.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87170.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87174.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87180.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87184.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87185.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87190.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87193.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87194.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87195.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87198.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87199.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87201.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87204.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87207.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87208.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87210.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87212.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87216.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87218.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87219.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87226.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87230.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87243.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87244.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87247.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87249.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87250.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87251.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-87254.yml diff --git a/html/changelogs/AutoChangeLog-pr-4497.yml b/html/changelogs/AutoChangeLog-pr-4497.yml deleted file mode 100644 index 04b39deaf62b..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4497.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "OrbisAnima" -delete-after: True -changes: - - qol: "Allows the pumpkin/blumpkin head to be used on the neck slot, Synths and Dullahans rejoice!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86765.yml b/html/changelogs/AutoChangeLog-pr-86765.yml deleted file mode 100644 index 226ba9eeaafd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-86765.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ninjanomnom" -delete-after: True -changes: - - bugfix: "Byond membership lookup should now warn you when it fails due to a connection failure." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86827.yml b/html/changelogs/AutoChangeLog-pr-86827.yml deleted file mode 100644 index 238195d82bc6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-86827.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Xackii" -delete-after: True -changes: - - rscadd: "Manipulator now shows what objects he is dragging." - - rscadd: "Manipulator now can take more then just items." - - rscadd: "Manipulator now have 3 modes to choice: drop/use/throw." - - rscadd: "Manipulator now have priorities." - - rscadd: "Manipulator now can be emaged." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86957.yml b/html/changelogs/AutoChangeLog-pr-86957.yml deleted file mode 100644 index ff9344ab87c7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-86957.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "GremlinSeeker" -delete-after: True -changes: - - map: "New Icebox Ruin \"Syndicate Biodome\" added." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87082.yml b/html/changelogs/AutoChangeLog-pr-87082.yml deleted file mode 100644 index 355d06d08803..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87082.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "carlarctg" -delete-after: True -changes: - - rscadd: "Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity and cause malfunctions." - - rscadd: "Added the Chipped quirk. It allows you to spawn with one base skillchip. (not the one above)" - - rscadd: "Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time." - - code_imp: "Renamed the organ slots for brain implants and made the connector implant take the CNS slot." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87102.yml b/html/changelogs/AutoChangeLog-pr-87102.yml deleted file mode 100644 index e4e89d68206c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87102.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Striders13" -delete-after: True -changes: - - balance: "replaced gas mask fov with pepperspray applying tint to gas masks, making the wearer blind until washed off." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87110.yml b/html/changelogs/AutoChangeLog-pr-87110.yml deleted file mode 100644 index 6db52e7bde46..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87110.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - rscadd: "You can buy a fishing rod pre-equipped with a rescue hook from the mining order console." - - balance: "Paramedics can get a rescue fishing hook as a heirloom." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87119.yml b/html/changelogs/AutoChangeLog-pr-87119.yml deleted file mode 100644 index 658e39302148..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87119.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - balance: "Cyborgs are now slowed down when hit with any melee weapons, rather than ONLY when they are hit by THROWN melee weapons. The stronger the weapon, the stronger the slowdown. Thrown weapons are still more effective at slowing than just hitting them directly, however." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87122.yml b/html/changelogs/AutoChangeLog-pr-87122.yml deleted file mode 100644 index c09a7ca43089..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87122.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "junkgle01" -delete-after: True -changes: - - bugfix: "fixed up Metastation's cargo delivery office." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87143.yml b/html/changelogs/AutoChangeLog-pr-87143.yml deleted file mode 100644 index 10696da59b6a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87143.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Jewelry-x" -delete-after: True -changes: - - bugfix: "the ghost \"t-ray view\" no longer requires a double press to activate a second time." - - qol: "renamed \"t-ray view\" to \"t-ray scan\" for clarity." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87144.yml b/html/changelogs/AutoChangeLog-pr-87144.yml deleted file mode 100644 index b98c0d1c1899..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87144.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - bugfix: "Pyrokinesis/Cryokinesis cast range matches its projectile range." - - code_imp: "Pyrokinesis and Cindikinesis are now their own types and not subtypes of Cryokinesis and Geladikinesis. This allows you to not have to mutate yourself in a specific order to not lock yourself out of the other mutation." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87145.yml b/html/changelogs/AutoChangeLog-pr-87145.yml deleted file mode 100644 index 70afb26c7855..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87145.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - balance: "all chainsaws can now behead people" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87154.yml b/html/changelogs/AutoChangeLog-pr-87154.yml deleted file mode 100644 index 00abf6ba4981..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87154.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fish like slimefish, unmarine bonemass and deepfryer fish can now be used for DNA infusions." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87157.yml b/html/changelogs/AutoChangeLog-pr-87157.yml deleted file mode 100644 index bad3d118fd4e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87157.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "hyperjll" -delete-after: True -changes: - - qol: "The GLA Brand Mail Counterfeit Device's description has been updated by a native english speaker and has been made more descriptive." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87159.yml b/html/changelogs/AutoChangeLog-pr-87159.yml deleted file mode 100644 index b9b7e7955329..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87159.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "junkgle01" -delete-after: True -changes: - - rscadd: "the Honkmother has decided to bless Her children with a new form!" - - image: "resprited the optional clown mask styles" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87165.yml b/html/changelogs/AutoChangeLog-pr-87165.yml deleted file mode 100644 index a6926fda74a2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87165.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - sound: "helmets and their visors make sounds now" - - code_imp: "cleaned up laser tag helmet code a bit" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87166.yml b/html/changelogs/AutoChangeLog-pr-87166.yml deleted file mode 100644 index e3faa3745a51..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87166.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ben10Omintrix" -delete-after: True -changes: - - code_imp: "animals' food hunting behavior has been refactored, please report any bugs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87167.yml b/html/changelogs/AutoChangeLog-pr-87167.yml deleted file mode 100644 index 24a662bb58d8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87167.yml +++ /dev/null @@ -1,13 +0,0 @@ -author: "EnterTheJake" -delete-after: True -changes: - - balance: "Sundered Blades now require 1 Titanium or Silver bar to craft and their capacity has been reduced to 4." - - balance: "Realignment pulls you out of stuns a bit faster and grants baton resist while active." - - balance: "Blade Heretic dual wielding now let's you infuse Your Dark Blades with a weaker mansus grasp and grants an increase in demolition modifier." - - bugfix: "Malestrom of Silver grants the ring of protective blades once again." - - balance: "Mawed Crucible requires 3 organs to brew one potion, passively refills overtime and can be used to refill the Eldritch Flask" - - balance: "Brew of Crucible soul effect bumped to 40 seconds and can be ended early." - - balance: "Brew Of Dusk and Dawn effect bumped to 3 minutes." - - balance: "Brew of the wounded soldier now offers a very minor passive heal and fully heals your wounds and limbs upon expiring." - - balance: "Cursed Curio shield now recharges faster." - - balance: "Lionhunter's rifle has been reworked, it now fits on the eldritch robes vest slots, it's cheaper to craft it and its ammunition and works as an initiation tool." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87169.yml b/html/changelogs/AutoChangeLog-pr-87169.yml deleted file mode 100644 index c18f14e2f29d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87169.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Soupfgc" -delete-after: True -changes: - - bugfix: "Springlock MOD module properly interacts with Water Vapor" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87170.yml b/html/changelogs/AutoChangeLog-pr-87170.yml deleted file mode 100644 index 71d30e1eaea3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87170.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DATA-xPUNGED" -delete-after: True -changes: - - bugfix: "ACTUALLY fixes server hop fade in" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87174.yml b/html/changelogs/AutoChangeLog-pr-87174.yml deleted file mode 100644 index 859787ef775e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87174.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - qol: "offering an item displays a balloon alert" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87180.yml b/html/changelogs/AutoChangeLog-pr-87180.yml deleted file mode 100644 index 16b585c3120a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87180.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Y0SH1M4S73R" -delete-after: True -changes: - - bugfix: "Syndicate Sleeper Agents can once again forge custom objectives" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87184.yml b/html/changelogs/AutoChangeLog-pr-87184.yml deleted file mode 100644 index a48f9591b217..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87184.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Jewelry-x" -delete-after: True -changes: - - bugfix: "fixed mech step sound playing twice diagonally" - - bugfix: "fixed turn sound playing every time you move diagonally, now only plays when the sprite turns" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87185.yml b/html/changelogs/AutoChangeLog-pr-87185.yml deleted file mode 100644 index 81c0acb5f0e6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87185.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SmArtKar" -delete-after: True -changes: - - spellcheck: "Fixed a typo in multiple lives component" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87190.yml b/html/changelogs/AutoChangeLog-pr-87190.yml deleted file mode 100644 index 820b128f4faa..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87190.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - sound: "gas analyzer now has handling sounds" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87193.yml b/html/changelogs/AutoChangeLog-pr-87193.yml deleted file mode 100644 index 36688beb1467..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87193.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - sound: "cards have new handling sounds" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87194.yml b/html/changelogs/AutoChangeLog-pr-87194.yml deleted file mode 100644 index 66f4fc00b489..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87194.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SmArtKar" -delete-after: True -changes: - - bugfix: "Ghosts can no longer cut people's tethers" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87195.yml b/html/changelogs/AutoChangeLog-pr-87195.yml deleted file mode 100644 index b4bbda75eda0..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87195.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hardly3D" -delete-after: True -changes: - - spellcheck: "fixes a small error in text when adjusting kitsune masks" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87198.yml b/html/changelogs/AutoChangeLog-pr-87198.yml deleted file mode 100644 index 90e21393f989..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87198.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "SmArtKar" -delete-after: True -changes: - - bugfix: "Chainsaws can now be sharpened" - - code_imp: "Chainsaws have received a minor code refactor" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87199.yml b/html/changelogs/AutoChangeLog-pr-87199.yml deleted file mode 100644 index 0c40ab3efdaf..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87199.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - bugfix: "Fixed gills not managing to breathe water vapor through internals." - - bugfix: "Fixed some inconsistencies with examining fishing spots with the appropriate level and fishing rod." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87201.yml b/html/changelogs/AutoChangeLog-pr-87201.yml deleted file mode 100644 index 03a14d7407a3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87201.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - map: "Added a premapped fishing portal generator to every map." - - balance: "Lowered the requirements for fish scanning experiment. Swapped the rewards of the second and third experiments." - - balance: "Buffed fishing difficulty modifiers for several items and chairs." - - balance: "Fishing skill now affects completion speed of the minigame more actively." - - balance: "Mild fish infusion tweaks. Crawling is a smidge slower, but healing from showers and drank water is a bit better." - - qol: "Fishing rods and fish cases can now be printed by cargo and science lathes." - - rscadd: "Gills now give the fish puns speech modifier." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87204.yml b/html/changelogs/AutoChangeLog-pr-87204.yml deleted file mode 100644 index a94eb3b7373d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87204.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "carlarctg" -delete-after: True -changes: - - rscadd: "you can use lizards to get lizard organs in the dna infuser" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87207.yml b/html/changelogs/AutoChangeLog-pr-87207.yml deleted file mode 100644 index 4ee7a40193df..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87207.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "vinylspiders" -delete-after: True -changes: - - bugfix: "fixes a bunch of improper static list declarations" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87208.yml b/html/changelogs/AutoChangeLog-pr-87208.yml deleted file mode 100644 index 3224087239db..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87208.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - sound: "medical, jani, soulstone, grenade belts got sounds" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87210.yml b/html/changelogs/AutoChangeLog-pr-87210.yml deleted file mode 100644 index 0e333cddb5d1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87210.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "grungussuss" -delete-after: True -changes: - - sound: "along with the shared emote cooldown, specific emote audio cooldown has returned." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87212.yml b/html/changelogs/AutoChangeLog-pr-87212.yml deleted file mode 100644 index dd5a17bbc934..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87212.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "mc-oofert" -delete-after: True -changes: - - bugfix: "you may no longer roll appendicitis in deathmatch or as a bitrunner avatar" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87216.yml b/html/changelogs/AutoChangeLog-pr-87216.yml deleted file mode 100644 index 063a32710568..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87216.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SmArtKar" -delete-after: True -changes: - - bugfix: "Losing hulk after becoming a carp no longer turns you black" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87218.yml b/html/changelogs/AutoChangeLog-pr-87218.yml deleted file mode 100644 index d6b17a11a454..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87218.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ZephyrTFA" -delete-after: True -changes: - - qol: "map votes are now winner take all instead of weighted." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87219.yml b/html/changelogs/AutoChangeLog-pr-87219.yml deleted file mode 100644 index 5ed4f2e947cc..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87219.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kittysmooch" -delete-after: True -changes: - - bugfix: "fixed east facing female human heads having an extra neck pixel\n:cl:" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87226.yml b/html/changelogs/AutoChangeLog-pr-87226.yml deleted file mode 100644 index 683f94d690bc..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87226.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "larentoun" -delete-after: True -changes: - - spellcheck: "Correct message is shown when YOU get devoured by an alien" - - spellcheck: "Fixed a few typos on some simple attack verbs being continuous" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87230.yml b/html/changelogs/AutoChangeLog-pr-87230.yml deleted file mode 100644 index 1feb2c158ed3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87230.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Mamaii" -delete-after: True -changes: - - rscadd: "shower will give felinids negative mood effect" - - bugfix: "fixed shower hater status effect alert not showing" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87243.yml b/html/changelogs/AutoChangeLog-pr-87243.yml deleted file mode 100644 index 366eaca36676..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87243.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Pickle-Coding" -delete-after: True -changes: - - bugfix: "Fixes canisters and portable pumps from not considering decimals when transferring input to setting release pressure." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87244.yml b/html/changelogs/AutoChangeLog-pr-87244.yml deleted file mode 100644 index 48ae3f6f59b7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87244.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "mc-oofert" -delete-after: True -changes: - - bugfix: "input output overlays for manufacturing machines actually update properly when rotated" - - qol: "you may dump materials of a manulathe via CTRL SHIFT LMB" - - balance: "manulathes may not receive ore (not intentional)" - - balance: "manulathes now use a matter bin in their construction, which now affects their material holding capacity: 50 sheets per tier" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87247.yml b/html/changelogs/AutoChangeLog-pr-87247.yml deleted file mode 100644 index 48873ff33dc1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87247.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "mc-oofert" -delete-after: True -changes: - - code_imp: "Movement Subsystem no longer is a background subsystem. This means that you should no longer get stuck after slipping on oil during instances of high usage." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87249.yml b/html/changelogs/AutoChangeLog-pr-87249.yml deleted file mode 100644 index 799b711b9a25..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87249.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "san7890" -delete-after: True -changes: - - admin: "Logging of Bombanana Peel explosions should be far better now." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87250.yml b/html/changelogs/AutoChangeLog-pr-87250.yml deleted file mode 100644 index 9a5d347bf757..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87250.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - bugfix: "Portable SMESes should no longer turn invisible when unscrewed." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87251.yml b/html/changelogs/AutoChangeLog-pr-87251.yml deleted file mode 100644 index 9e17d2c2330e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87251.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SmArtKar" -delete-after: True -changes: - - bugfix: "Hotswapping tanks in pumps and scrubbers now properly plays both sounds instead of runtiming" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-87254.yml b/html/changelogs/AutoChangeLog-pr-87254.yml deleted file mode 100644 index 4464e914dc7c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-87254.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - bugfix: "Fixed digitigrade pants sprite not updating in accordance to some leg updates" \ No newline at end of file diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index bb5cb3bf0861..21666552b19a 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -446,6 +446,70 @@ - bugfix: fixes taur legs, digi legs, and augments not getting the correct footstep sounds from prefs applied to them 2024-10-18: + Ben10Omintrix: + - code_imp: animals' food hunting behavior has been refactored, please report any + bugs + DATA-xPUNGED: + - bugfix: ACTUALLY fixes server hop fade in + EnterTheJake: + - balance: Sundered Blades now require 1 Titanium or Silver bar to craft and their + capacity has been reduced to 4. + - balance: Realignment pulls you out of stuns a bit faster and grants baton resist + while active. + - balance: Blade Heretic dual wielding now let's you infuse Your Dark Blades with + a weaker mansus grasp and grants an increase in demolition modifier. + - bugfix: Malestrom of Silver grants the ring of protective blades once again. + - balance: Mawed Crucible requires 3 organs to brew one potion, passively refills + overtime and can be used to refill the Eldritch Flask + - balance: Brew of Crucible soul effect bumped to 40 seconds and can be ended early. + - balance: Brew Of Dusk and Dawn effect bumped to 3 minutes. + - balance: Brew of the wounded soldier now offers a very minor passive heal and + fully heals your wounds and limbs upon expiring. + - balance: Cursed Curio shield now recharges faster. + - balance: Lionhunter's rifle has been reworked, it now fits on the eldritch robes + vest slots, it's cheaper to craft it and its ammunition and works as an initiation + tool. + Ghommie: + - bugfix: Fish like slimefish, unmarine bonemass and deepfryer fish can now be used + for DNA infusions. + - rscadd: You can buy a fishing rod pre-equipped with a rescue hook from the mining + order console. + - balance: Paramedics can get a rescue fishing hook as a heirloom. + - bugfix: Fixed gills not managing to breathe water vapor through internals. + - bugfix: Fixed some inconsistencies with examining fishing spots with the appropriate + level and fishing rod. + - map: Added a premapped fishing portal generator to every map. + - balance: Lowered the requirements for fish scanning experiment. Swapped the rewards + of the second and third experiments. + - balance: Buffed fishing difficulty modifiers for several items and chairs. + - balance: Fishing skill now affects completion speed of the minigame more actively. + - balance: Mild fish infusion tweaks. Crawling is a smidge slower, but healing from + showers and drank water is a bit better. + - qol: Fishing rods and fish cases can now be printed by cargo and science lathes. + - rscadd: Gills now give the fish puns speech modifier. + GremlinSeeker: + - map: New Icebox Ruin "Syndicate Biodome" added. + Hardly3D: + - spellcheck: fixes a small error in text when adjusting kitsune masks + Hatterhat: + - bugfix: Portable SMESes should no longer turn invisible when unscrewed. + Jewelry-x: + - bugfix: the ghost "t-ray view" no longer requires a double press to activate a + second time. + - qol: renamed "t-ray view" to "t-ray scan" for clarity. + - bugfix: fixed mech step sound playing twice diagonally + - bugfix: fixed turn sound playing every time you move diagonally, now only plays + when the sprite turns + Mamaii: + - rscadd: shower will give felinids negative mood effect + - bugfix: fixed shower hater status effect alert not showing + Melbert: + - bugfix: Fixed digitigrade pants sprite not updating in accordance to some leg + updates + - balance: Cyborgs are now slowed down when hit with any melee weapons, rather than + ONLY when they are hit by THROWN melee weapons. The stronger the weapon, the + stronger the slowdown. Thrown weapons are still more effective at slowing than + just hitting them directly, however. OrbisAnima: - qol: "Most\u2122 Jackets, Suits, Tops, some armors and other exosuit equipment\ \ can now be toggled (CTRL+SHIFT+LEFT CLICK) to change between functional and\ @@ -454,5 +518,91 @@ - balance: frontier jackets no longer can be stacked to get a boost on armor. - balance: frontier mask uses the same kind of armor the atmos, captain and CC masks have. It no longer gives Laser armor. + - qol: Allows the pumpkin/blumpkin head to be used on the neck slot, Synths and + Dullahans rejoice! + Pickle-Coding: + - bugfix: Fixes canisters and portable pumps from not considering decimals when + transferring input to setting release pressure. + SmArtKar: + - bugfix: Losing hulk after becoming a carp no longer turns you black + - spellcheck: Fixed a typo in multiple lives component + - bugfix: Hotswapping tanks in pumps and scrubbers now properly plays both sounds + instead of runtiming + - bugfix: Chainsaws can now be sharpened + - code_imp: Chainsaws have received a minor code refactor + - bugfix: Ghosts can no longer cut people's tethers + Soupfgc: + - bugfix: Springlock MOD module properly interacts with Water Vapor + Striders13: + - balance: replaced gas mask fov with pepperspray applying tint to gas masks, making + the wearer blind until washed off. + Xackii: + - rscadd: Manipulator now shows what objects he is dragging. + - rscadd: Manipulator now can take more then just items. + - rscadd: 'Manipulator now have 3 modes to choice: drop/use/throw.' + - rscadd: Manipulator now have priorities. + - rscadd: Manipulator now can be emaged. + Y0SH1M4S73R: + - bugfix: Syndicate Sleeper Agents can once again forge custom objectives + ZephyrTFA: + - qol: map votes are now winner take all instead of weighted. + carlarctg: + - rscadd: Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip + allows you to bypass the emote cooldown when flipping or spinning. However, + if used too often, it will lower the chip's integrity and cause malfunctions. + - rscadd: Added the Chipped quirk. It allows you to spawn with one base skillchip. + (not the one above) + - rscadd: Added the Chip Connector quirk. It contains a new implant, the chip connector, + which allows you to install and take out skillchips at any time. + - code_imp: Renamed the organ slots for brain implants and made the connector implant + take the CNS slot. + - rscadd: you can use lizards to get lizard organs in the dna infuser + grungussuss: + - sound: helmets and their visors make sounds now + - code_imp: cleaned up laser tag helmet code a bit + - sound: gas analyzer now has handling sounds + - balance: all chainsaws can now behead people + - sound: along with the shared emote cooldown, specific emote audio cooldown has + returned. + - sound: medical, jani, soulstone, grenade belts got sounds + - qol: offering an item displays a balloon alert + - sound: cards have new handling sounds + hyperjll: + - qol: The GLA Brand Mail Counterfeit Device's description has been updated by a + native english speaker and has been made more descriptive. + junkgle01: + - rscadd: the Honkmother has decided to bless Her children with a new form! + - image: resprited the optional clown mask styles + - bugfix: fixed up Metastation's cargo delivery office. + kittysmooch: + - bugfix: 'fixed east facing female human heads having an extra neck pixel + + :cl:' + larentoun: + - spellcheck: Correct message is shown when YOU get devoured by an alien + - spellcheck: Fixed a few typos on some simple attack verbs being continuous + mc-oofert: + - bugfix: you may no longer roll appendicitis in deathmatch or as a bitrunner avatar + - code_imp: Movement Subsystem no longer is a background subsystem. This means that + you should no longer get stuck after slipping on oil during instances of high + usage. + - bugfix: input output overlays for manufacturing machines actually update properly + when rotated + - qol: you may dump materials of a manulathe via CTRL SHIFT LMB + - balance: manulathes may not receive ore (not intentional) + - balance: 'manulathes now use a matter bin in their construction, which now affects + their material holding capacity: 50 sheets per tier' + necromanceranne: + - bugfix: Pyrokinesis/Cryokinesis cast range matches its projectile range. + - code_imp: Pyrokinesis and Cindikinesis are now their own types and not subtypes + of Cryokinesis and Geladikinesis. This allows you to not have to mutate yourself + in a specific order to not lock yourself out of the other mutation. + ninjanomnom: + - bugfix: Byond membership lookup should now warn you when it fails due to a connection + failure. + san7890: + - admin: Logging of Bombanana Peel explosions should be far better now. sqnztb: - bugfix: void raptor's interior windows no longer create vacuums when deconstructed. + vinylspiders: + - bugfix: fixes a bunch of improper static list declarations

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 iZM-=h@^kO-G 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 Date: Wed, 16 Oct 2024 20:02:32 +0000 Subject: [PATCH 096/119] Automatic changelog for PR #87167 [ci skip] --- html/changelogs/AutoChangeLog-pr-87167.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87167.yml diff --git a/html/changelogs/AutoChangeLog-pr-87167.yml b/html/changelogs/AutoChangeLog-pr-87167.yml new file mode 100644 index 000000000000..24a662bb58d8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87167.yml @@ -0,0 +1,13 @@ +author: "EnterTheJake" +delete-after: True +changes: + - balance: "Sundered Blades now require 1 Titanium or Silver bar to craft and their capacity has been reduced to 4." + - balance: "Realignment pulls you out of stuns a bit faster and grants baton resist while active." + - balance: "Blade Heretic dual wielding now let's you infuse Your Dark Blades with a weaker mansus grasp and grants an increase in demolition modifier." + - bugfix: "Malestrom of Silver grants the ring of protective blades once again." + - balance: "Mawed Crucible requires 3 organs to brew one potion, passively refills overtime and can be used to refill the Eldritch Flask" + - balance: "Brew of Crucible soul effect bumped to 40 seconds and can be ended early." + - balance: "Brew Of Dusk and Dawn effect bumped to 3 minutes." + - balance: "Brew of the wounded soldier now offers a very minor passive heal and fully heals your wounds and limbs upon expiring." + - balance: "Cursed Curio shield now recharges faster." + - balance: "Lionhunter's rifle has been reworked, it now fits on the eldritch robes vest slots, it's cheaper to craft it and its ammunition and works as an initiation tool." \ No newline at end of file From dade85b4d35a837e7f8051fcd1101432cfd6b3db Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 17 Oct 2024 02:45:57 +0200 Subject: [PATCH 097/119] Mixed bag of fishing adjustments. (#87201) ## About The Pull Request This more or less ties with my previous PR where I fix some of the issues I've seen with fishing, because both are the result of some live playtesting in which I assessed some flaws and nits. So, let's get started: Lowered the number of fish to scan for each fish scanning experiment: This is the most time-gating feature of fishing. As a scientist you're usually better off doing anything else than this anyway, which is understandable, but for whoever else that plans to get some nice ocean fish, this is going to be a huge bummer. From 4, 8, 14, 21 to 3, 7, 11, 17. Switched the ocean and chasm portal setting: Right now, the ocean portal has the largest amount of catchable creatures, which can also help progress the experiments, while the chasm setting only has two and is only mildly useful for chasm chrabs --> lobstrosities (which suffer a bit from not having a good enough AI right now). I hope I'll have the time to add some late fishes to the chasm setting at some point. Added a premapped fishing portal generator to the common service room of every map: It takes quite some time to setup fishing. Making a fishing portal is by far what I consider to be the most tedious part. Also Wawa and Birdshot were also missing the aquarium kit. On a side-note I realized some days ago that service jobs receive very good discounts on the fishing items sold by the good clean vendor. Added the fish puns speech modifier to fish-infused gills: I forgot to do it when I made the PR. Shrimple as that. Mild fish infusion tweaks: Lowered the crawling speed very sightly, but buffed showers and water healing slightly. Drinking water now wets you by about 1/4 of what splashing it would do. Buffed fishing difficulty modifiers for items and chairs a little: For the time and credits invested, buying a carp costume or whatever to be slightly better at fishing doesn't seem that profitable, and I reckon I was being a bit conservative with the values. Fishing is a considerable time investment already, especially in the initial stage with the setup. Also idk why sunglasses and thermals buff fishing while fish are technically cold-blooded creatures so I removed the comp from them. Added fishing rods and fish cases designs to cargo and science lathes: Other base fishing designs are shared between the three departments, while these two are only available for service (and autolathes obviously). Fishing skill now affects completion gain and not only completion loss: Fishing as a feature has a slower pace than most things in the game. It feels right that by the time you reach about legendary level, you get to complete the minigame a bit faster. ## Why It's Good For The Game To put it briefly, the feature feels right as a casual experience, however time is very much against you and getting something done takes some effort (especially on tram, where moving to and fro' departments is almost like playing froggers at times) ## Changelog :cl: map: Added a premapped fishing portal generator to every map. balance: Lowered the requirements for fish scanning experiment. Swapped the rewards of the second and third experiments. balance: Buffed fishing difficulty modifiers for several items and chairs. balance: Fishing skill now affects completion speed of the minigame more actively. balance: Mild fish infusion tweaks. Crawling is a smidge slower, but healing from showers and drank water is a bit better. qol: Fishing rods and fish cases can now be printed by cargo and science lathes. add: Gills now give the fish puns speech modifier. /:cl: --- _maps/map_files/Birdshot/birdshot.dmm | 9490 ++++++++--------- .../map_files/Deltastation/DeltaStation2.dmm | 1 + .../map_files/IceBoxStation/IceBoxStation.dmm | 9 +- _maps/map_files/MetaStation/MetaStation.dmm | 4 +- _maps/map_files/NorthStar/north_star.dmm | 1 + _maps/map_files/tramstation/tramstation.dmm | 1 + _maps/map_files/wawastation/wawastation.dmm | 89 +- code/datums/status_effects/neutral.dm | 13 +- .../dna_infuser/organ_sets/fish_organs.dm | 1 + .../objects/structures/beds_chairs/chair.dm | 23 +- .../objects/structures/beds_chairs/sofa.dm | 2 +- code/modules/clothing/ears/_ears.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 5 - code/modules/clothing/gloves/botany.dm | 2 +- code/modules/clothing/gloves/color.dm | 2 +- code/modules/clothing/gloves/combat.dm | 4 +- code/modules/clothing/gloves/insulated.dm | 4 +- code/modules/clothing/gloves/punch_mitts.dm | 2 +- code/modules/clothing/gloves/special.dm | 10 +- code/modules/clothing/gloves/tacklers.dm | 8 +- code/modules/clothing/head/collectable.dm | 4 +- code/modules/clothing/head/fedora.dm | 2 +- code/modules/clothing/head/jobs.dm | 4 +- code/modules/clothing/head/moth.dm | 2 +- code/modules/clothing/head/pirate.dm | 2 +- code/modules/clothing/head/soft_caps.dm | 2 +- code/modules/clothing/masks/animal_masks.dm | 18 +- code/modules/clothing/masks/boxing.dm | 2 +- code/modules/clothing/masks/gasmask.dm | 8 +- code/modules/clothing/neck/_neck.dm | 2 +- code/modules/clothing/shoes/boots.dm | 4 +- code/modules/clothing/shoes/costume.dm | 2 +- code/modules/clothing/suits/costume.dm | 14 +- code/modules/clothing/suits/ethereal.dm | 6 +- code/modules/clothing/suits/jobs.dm | 4 +- code/modules/clothing/suits/labcoat.dm | 4 +- code/modules/clothing/suits/moth.dm | 2 +- code/modules/clothing/suits/wiz_robe.dm | 18 +- .../clothing/under/jobs/civilian/curator.dm | 2 +- code/modules/clothing/under/jobs/medical.dm | 4 +- code/modules/clothing/under/miscellaneous.dm | 2 +- code/modules/clothing/under/suits.dm | 2 +- code/modules/clothing/under/syndicate.dm | 6 +- .../experiment/types/scanning_fish.dm | 18 +- code/modules/fishing/fish_catalog.dm | 2 +- code/modules/fishing/fishing_equipment.dm | 9 +- code/modules/fishing/fishing_minigame.dm | 2 + code/modules/movespeed/modifiers/mobs.dm | 9 - .../movespeed/modifiers/status_effects.dm | 9 + .../chemistry/reagents/other_reagents.dm | 8 +- .../designs/autolathe/service_designs.dm | 4 +- 51 files changed, 4931 insertions(+), 4919 deletions(-) diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 9d73d1b8f836..d763303da472 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -65,12 +65,19 @@ /obj/machinery/power/tracker, /turf/open/space/basic, /area/station/solars/aft) -"abw" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 +"abv" = ( +/obj/structure/table, +/obj/item/paper/crumpled{ + pixel_x = -27; + pixel_y = 2 }, +/obj/item/storage/medkit/regular{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/landmark/event_spawn, /turf/open/floor/iron, -/area/station/cargo/lobby) +/area/station/cargo/sorting) "abB" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -152,20 +159,6 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) -"ael" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/airlock_controller/incinerator_atmos{ - pixel_x = -40; - pixel_y = -8 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "aem" = ( /obj/machinery/power/terminal, /obj/structure/cable, @@ -205,21 +198,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"aeH" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = 8; - pixel_y = 24 - }, -/obj/machinery/button/door/incinerator_vent_atmos_main{ - pixel_x = 8; - pixel_y = 36 - }, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "aeX" = ( /obj/structure/window/spawner/directional/east, /obj/item/kirbyplants/random, @@ -396,6 +374,17 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"ahI" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/folder/yellow{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ahW" = ( /obj/structure/railing{ dir = 1 @@ -432,18 +421,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) -"akk" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"akl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red/corner, -/turf/open/floor/iron, -/area/station/cargo/storage) "ako" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -510,15 +487,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/aft) -"alN" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "amb" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -540,6 +508,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"amq" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "amE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -564,6 +539,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) +"amX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "anb" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta, /obj/effect/turf_decal/siding/red/corner{ @@ -574,6 +558,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) +"and" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/turf/open/floor/plating, +/area/station/cargo/miningfoundry) "ani" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -623,6 +615,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"api" = ( +/obj/machinery/skill_station, +/turf/open/floor/wood/parquet, +/area/station/service/library) "apk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red{ @@ -666,6 +662,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/science/lab) +"apP" = ( +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "apZ" = ( /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) @@ -737,16 +738,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"arI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "arK" = ( /obj/structure/sign/warning/secure_area{ desc = "A warning sign which reads 'BOMB RANGE"; @@ -966,16 +957,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"avc" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/chair/stool/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/newscaster/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "avd" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ dir = 8 @@ -1173,6 +1154,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"axP" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/brown/anticorner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "axX" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/tile/yellow/diagonal_centre, @@ -1249,14 +1239,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"azk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "azm" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -1288,6 +1270,21 @@ }, /turf/open/floor/plating, /area/station/command/teleporter) +"azx" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "azz" = ( /turf/open/floor/iron, /area/station/security/prison/workout) @@ -1402,15 +1399,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"aBk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "aBo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -1421,6 +1409,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"aBt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aBu" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -1462,6 +1458,18 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) +"aBQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "aBV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -1607,11 +1615,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"aFp" = ( -/obj/effect/spawner/random/trash, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "aFt" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1704,23 +1707,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"aGI" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/cell_charger{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/assembly/timer{ - pixel_x = 14; - pixel_y = 6 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "aGU" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron, @@ -1825,15 +1811,10 @@ "aJq" = ( /turf/closed/mineral/random/stationside, /area/space/nearstation) -"aJx" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"aJD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aJE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wood{ @@ -1841,16 +1822,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"aJI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/storage/fancy/candle_box, -/obj/structure/rack/skeletal, -/obj/machinery/camera/autoname/directional/west, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "aJP" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -2012,6 +1983,18 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"aMI" = ( +/obj/machinery/mineral/ore_redemption{ + dir = 4; + input_dir = 8; + output_dir = 4 + }, +/obj/machinery/door/window/right/directional/east{ + name = "Ore Redemtion Window" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/textured_large, +/area/station/cargo/office) "aNd" = ( /turf/open/floor/engine, /area/station/engineering/supermatter/room) @@ -2037,6 +2020,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/storage) +"aNE" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "aNJ" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ @@ -2350,16 +2341,6 @@ "aTg" = ( /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"aTm" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "QMLoad2"; - name = "Unloading Conveyor"; - pixel_x = -13; - pixel_y = 3 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/cargo/storage) "aTn" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -2564,11 +2545,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"aXy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/official/no_erp/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "aXC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2593,12 +2569,6 @@ }, /turf/open/floor/stone, /area/station/service/bar/backroom) -"aYl" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "aYp" = ( /obj/structure/chair, /obj/effect/turf_decal/stripes/line{ @@ -2753,27 +2723,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter) -"bbI" = ( -/obj/structure/table/wood, -/obj/item/folder{ - pixel_x = 1; - pixel_y = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/sign/poster/official/tactical_game_cards/directional/north, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) -"bbR" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "bbT" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -2787,6 +2736,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"bbV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "bcr" = ( /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating/airless, @@ -2823,17 +2781,12 @@ dir = 4 }, /area/station/science/xenobiology) -"bdx" = ( -/obj/machinery/door/airlock/wood{ - desc = "Sessions held every Friday."; - name = "The Sunfinder Society" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +"bdi" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "bdN" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -2888,19 +2841,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"beR" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "bfe" = ( /obj/structure/disposalpipe/segment, /obj/machinery/camera/autoname/directional/west, @@ -2914,6 +2854,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"bfS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "bfU" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Air to Distro staging" @@ -2931,6 +2879,23 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/white/small, /area/station/science/server) +"bgl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/glass, +/obj/item/flashlight/lamp/green{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/taperecorder{ + pixel_x = -15; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "bgn" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" @@ -3000,10 +2965,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"bgW" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "bho" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -3044,6 +3005,11 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"biV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "bja" = ( /obj/structure/railing/corner/end/flip{ dir = 8 @@ -3069,6 +3035,19 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) +"bjf" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/table, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "bjh" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -3087,6 +3066,9 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bjt" = ( +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "bjL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, @@ -3257,6 +3239,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/maintenance/department/engine/atmos) +"bmO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/closed/wall, +/area/station/maintenance/port/fore) "bmT" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -3387,6 +3379,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) +"boG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron, +/area/station/cargo/storage) "boI" = ( /obj/machinery/mecha_part_fabricator/maint{ name = "forgotten exosuit fabricator" @@ -3422,14 +3425,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"bpd" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/cargo/storage) "bpe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -3540,6 +3535,18 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) +"bqA" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -20; + pixel_y = 3 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "bqD" = ( /mob/living/basic/slime, /turf/open/floor/engine, @@ -3617,6 +3624,14 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"brO" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "brZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -3626,6 +3641,16 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/aft) +"bst" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "bsu" = ( /obj/structure/barricade/wooden/crude, /obj/effect/mapping_helpers/broken_floor, @@ -3769,16 +3794,6 @@ /obj/machinery/bluespace_vendor/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"buP" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "buU" = ( /obj/structure/table, /obj/item/stack/sheet/iron/five, @@ -3834,6 +3849,18 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"bwW" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "bxa" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -3962,16 +3989,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) -"bzx" = ( -/obj/structure/reagent_dispensers/wall/peppertank/directional/west, -/obj/machinery/computer/records/security{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "bzF" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3981,6 +3998,13 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) +"bzW" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "bzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -4004,10 +4028,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"bAw" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/stone, -/area/station/service/chapel) "bAI" = ( /obj/structure/chair/office, /obj/structure/sign/poster/official/work_for_a_future/directional/east, @@ -4021,13 +4041,6 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"bBb" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/storage) "bBh" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -4119,14 +4132,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/office) -"bCM" = ( -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "bCP" = ( /obj/effect/turf_decal/siding/wideplating/dark, /obj/machinery/firealarm/directional/north, @@ -4158,6 +4163,16 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"bDi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "O2 to Airmix" + }, +/obj/machinery/light/no_nightlight/directional/north, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bDj" = ( /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -4213,6 +4228,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"bEv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bEw" = ( /obj/structure/sign/directions/supply{ dir = 1; @@ -4278,10 +4297,6 @@ /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit, /area/station/tcommsat/server) -"bFI" = ( -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "bFO" = ( /obj/effect/spawner/random/trash, /obj/structure/cable, @@ -4299,14 +4314,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"bFU" = ( -/obj/structure/hedge, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "bFW" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/rnd_all, @@ -4359,20 +4366,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"bGv" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/cargo/office) "bGD" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -4430,6 +4423,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"bHw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "bHy" = ( /obj/structure/chair/office/light, /obj/effect/landmark/start/scientist, @@ -4457,6 +4456,11 @@ /obj/structure/window/spawner/directional/south, /turf/open/misc/sandy_dirt, /area/station/science/research) +"bIu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "bIJ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 4 @@ -4491,27 +4495,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) -"bJH" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) "bJK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -4595,10 +4578,14 @@ /obj/machinery/light/no_nightlight/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) -"bLr" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +"bLG" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/cargo/office) "bLS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4799,14 +4786,6 @@ /obj/machinery/computer/records/security, /turf/open/floor/wood/tile, /area/station/command/bridge) -"bQo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/status_display/evac/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "bQy" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4862,6 +4841,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"bRA" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "bRK" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 4 @@ -4931,6 +4913,12 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) +"bUq" = ( +/obj/structure/cable, +/obj/item/reagent_containers/pill/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bUr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue{ @@ -5063,12 +5051,6 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron, /area/station/science/xenobiology) -"bXb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "bXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5159,13 +5141,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/engineering/atmos/storage) -"bYW" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/cargo/lobby) "bZa" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/white{ @@ -5233,25 +5208,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"cag" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos/office) "cam" = ( /obj/machinery/flasher/directional/east{ id = "AI"; @@ -5347,6 +5303,15 @@ "cbm" = ( /turf/closed/wall/rust, /area/station/ai_monitored/aisat/exterior) +"cbq" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "cbt" = ( /obj/structure/cable, /obj/structure/table/bronze, @@ -5444,28 +5409,31 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"ccO" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cdg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/grass, /area/station/science/xenobiology) -"cdh" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -24; - req_access = list("cargo") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "cdn" = ( /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/circuit, /area/station/tcommsat/server) +"cdp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cdz" = ( /obj/effect/turf_decal/tile/yellow, /obj/machinery/light/cold/dim/directional/west, @@ -5495,6 +5463,20 @@ /obj/structure/window/spawner/directional/south, /turf/open/space/basic, /area/space/nearstation) +"ceD" = ( +/obj/machinery/door/airlock/grunge{ + name = "Janitorial Closet" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/janitor) "ceN" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -5565,12 +5547,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cgc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "cgs" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -5605,14 +5581,6 @@ "cgM" = ( /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"cgT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "cgV" = ( /obj/effect/turf_decal/weather/dirt{ dir = 9 @@ -5647,13 +5615,6 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) -"chv" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/cargo/office) "chC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -5740,13 +5701,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ciD" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/hallway/primary/port) "ciR" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/command_all, @@ -5768,26 +5722,27 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"cjc" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) +"cjf" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "cjm" = ( /obj/structure/closet/firecloset, /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"cjw" = ( -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt, -/obj/item/bedsheet/qm, -/obj/item/reagent_containers/cup/glass/bottle/tequila{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/camera/autoname/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "cjz" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -5860,6 +5815,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, /area/station/maintenance/department/medical/central) +"cky" = ( +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/organic/applebush{ + pixel_y = 5 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "ckL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5880,16 +5843,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"ckR" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Plasma to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ckV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5980,17 +5933,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"cms" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "cmw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6071,14 +6013,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"coo" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/effect/spawner/random/vending/colavend, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) "cop" = ( /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -6097,29 +6031,6 @@ "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) -"coA" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/item/stamp/denied{ - pixel_x = -1; - pixel_y = 8 - }, -/obj/item/stamp{ - pixel_x = -7; - pixel_y = 0 - }, -/obj/item/radio{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "coC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -6301,29 +6212,18 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"crP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Plasma to Pure" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"csi" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 +"csj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ +/obj/effect/turf_decal/loading_area{ dir = 1 }, -/area/station/cargo/sorting) +/turf/open/floor/iron, +/area/station/cargo/storage) "csl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6424,6 +6324,13 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) +"cuZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "cvc" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -6439,12 +6346,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"cvx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "cvy" = ( /obj/structure/bed/medical/emergency, /turf/open/floor/iron/dark, @@ -6609,6 +6510,25 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/ce) +"cyQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/pickaxe, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "cyU" = ( /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, @@ -6640,6 +6560,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"czh" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "czq" = ( /obj/structure/curtain/cloth, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6787,6 +6713,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"cCC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "cCD" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -6854,19 +6789,6 @@ /obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) -"cDd" = ( -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "QMLoad"; - name = "Loading Conveyor"; - pixel_x = -13; - pixel_y = 19 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "cDf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -6919,6 +6841,15 @@ dir = 1 }, /area/station/maintenance/starboard/greater) +"cDQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/service/chapel/office) "cDV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -6939,6 +6870,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"cEp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "cED" = ( /obj/structure/railing/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -7053,27 +6989,9 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"cGf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) -"cGA" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "cGG" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -7141,6 +7059,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/service/lawoffice) +"cHD" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cHG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7259,13 +7184,6 @@ "cKk" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/turret_protected/aisat/maint) -"cKl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron, -/area/station/cargo/lobby) "cKm" = ( /obj/machinery/camera/directional/west, /turf/open/floor/engine, @@ -7398,6 +7316,12 @@ /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"cMH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "cMS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/north, @@ -7423,10 +7347,21 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"cNL" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) +"cNl" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"cNw" = ( +/obj/effect/turf_decal/siding/red, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/cargo/storage) "cNR" = ( /obj/structure/chair/office{ dir = 4 @@ -7447,6 +7382,16 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"cOa" = ( +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = -6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "cOd" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/rock/pile/style_2{ @@ -7457,6 +7402,13 @@ /obj/structure/window/spawner/directional/west, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/recreation/entertainment) +"cOs" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/table, +/turf/open/floor/iron, +/area/station/cargo/sorting) "cOC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7590,15 +7542,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"cQV" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, -/turf/open/floor/iron/smooth_half{ - dir = 8 - }, -/area/station/engineering/main) "cRc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7843,6 +7786,13 @@ dir = 1 }, /area/station/hallway/primary/aft) +"cUV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "cUY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7909,6 +7859,11 @@ dir = 4 }, /area/station/maintenance/fore/lesser) +"cWC" = ( +/obj/item/reagent_containers/cup/watering_can/wood, +/obj/structure/table, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "cWM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7997,17 +7952,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cYj" = ( -/obj/structure/hedge, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/storage) "cYk" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -8201,6 +8145,13 @@ dir = 1 }, /area/station/science/lower) +"day" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "daC" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/thinplating_new{ @@ -8268,6 +8219,11 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"dcu" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "dcx" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -8471,6 +8427,13 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"dfM" = ( +/obj/structure/rack, +/obj/item/storage/medkit/regular, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "dfT" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -8508,6 +8471,25 @@ /obj/structure/cable, /turf/open/floor/iron/white/corner, /area/station/science/lower) +"dgt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/storage/fancy/candle_box, +/obj/structure/rack/skeletal, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) +"dgy" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "dgV" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -8664,6 +8646,13 @@ /obj/effect/landmark/start/mime, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"diN" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/cargo/office) "diP" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/aft) @@ -8764,6 +8753,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/tram) +"dkD" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "dkI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8833,21 +8828,14 @@ }, /turf/open/floor/iron/dark, /area/station/medical/cryo) -"dmo" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "dmG" = ( /obj/structure/transport/linear/tram, /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"dmO" = ( +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "dmT" = ( /obj/machinery/camera/directional/north{ c_tag = "Xenobiology - Cell 2"; @@ -9005,23 +8993,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"dpz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light_switch/directional/west, -/obj/effect/landmark/event_spawn, -/obj/machinery/portable_atmospherics/pump/lil_pump, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"dpF" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/landmark/navigate_destination/bar, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "dpH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ dir = 8 @@ -9044,6 +9015,23 @@ /obj/item/clothing/head/utility/chefhat, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) +"dqF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/invisible{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/north, +/obj/item/storage/photo_album/library, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "dqO" = ( /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) @@ -9165,14 +9153,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"dth" = ( -/obj/effect/landmark/navigate_destination/cargo, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "dtk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/closed/wall, @@ -9305,6 +9285,15 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"dvP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/cargo/storage) "dvY" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9330,6 +9319,9 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"dwy" = ( +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "dwC" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9403,16 +9395,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) -"dxW" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access = list("library") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) "dxZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -9518,11 +9500,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"dzH" = ( -/obj/machinery/portable_atmospherics/canister/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos) "dAn" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -9531,14 +9508,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"dAt" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/cargo/lobby) "dAu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9599,6 +9568,10 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"dAZ" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "dBh" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -9611,6 +9584,14 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"dBn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dBr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9771,6 +9752,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) +"dEp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dEq" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9810,6 +9797,12 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"dFn" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "dFA" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -9867,16 +9860,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"dHr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/turf/closed/wall, -/area/station/maintenance/port/fore) "dHx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -9910,32 +9893,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"dIq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/west{ - name = "Cargo Desk"; - req_access = list("shipping") - }, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/obj/item/paper_bin{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/item/pen{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/office) "dIt" = ( /obj/structure/cable, /obj/machinery/button/door/directional/east{ @@ -9948,6 +9905,12 @@ }, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"dIw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "dIQ" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_3, @@ -10063,6 +10026,11 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"dLl" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "dLn" = ( /obj/structure/chair/office, /turf/open/floor/iron/dark/herringbone, @@ -10127,6 +10095,13 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"dMC" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "dMM" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -10147,17 +10122,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"dNl" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/stripes, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "dNo" = ( /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, @@ -10217,6 +10181,19 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"dOH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dOP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ dir = 1 @@ -10338,6 +10315,10 @@ /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/stone, /area/station/service/chapel) +"dRz" = ( +/obj/docking_port/stationary/syndicate/northeast, +/turf/open/space/basic, +/area/space) "dRT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10426,6 +10407,22 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"dTi" = ( +/obj/machinery/light/cold/directional/west, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"dTj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock{ + name = "Cargo Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "dTo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/stripes/line{ @@ -10505,10 +10502,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"dUU" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/cargo/lobby) "dVQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -10527,10 +10520,6 @@ /obj/effect/landmark/start/depsec/supply, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) -"dWa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "dWh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -10626,6 +10615,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) +"dXu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "dXO" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /obj/structure/disposalpipe/segment{ @@ -10846,6 +10843,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/tile, /area/station/service/bar) +"ebn" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "ebE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10863,6 +10865,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"ebM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ebU" = ( /obj/structure/table/reinforced, /obj/structure/reagent_dispensers/servingdish, @@ -10942,6 +10957,19 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"edA" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMLoad"; + name = "Loading Conveyor"; + pixel_x = -13; + pixel_y = 19 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "edD" = ( /obj/machinery/light/small/directional/west, /obj/item/kirbyplants/random, @@ -11035,10 +11063,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"efn" = ( -/obj/effect/spawner/random/structure/crate_loot, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "efy" = ( /obj/item/kirbyplants/organic/plant21, /obj/machinery/status_display/ai/directional/west, @@ -11094,11 +11118,22 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"egg" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid, +/area/station/maintenance/starboard/greater) "egr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) +"egA" = ( +/obj/machinery/vending/autodrobe, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/commons/fitness/locker_room) "egC" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -11138,6 +11173,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) +"egW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ehd" = ( /obj/item/stack/cable_coil, /obj/item/electronics/airlock, @@ -11175,6 +11222,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"ehu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse_aft"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -23; + req_access = list("cargo") + }, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ehT" = ( /obj/machinery/door/airlock{ id_tag = "commiss2"; @@ -11205,6 +11265,16 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"eib" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2"; + name = "Unloading Conveyor"; + pixel_x = -13; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/cargo/storage) "eip" = ( /obj/machinery/power/port_gen/pacman, /obj/machinery/power/terminal{ @@ -11319,15 +11389,6 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"eka" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 4 - }, -/area/station/cargo/storage) "ekr" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 1 @@ -11512,6 +11573,9 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"emz" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/department/electrical) "emB" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -11575,6 +11639,16 @@ "enG" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) +"enI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "enV" = ( /obj/structure/closet/secure_closet/research_director, /obj/item/radio/intercom/directional/north, @@ -11708,21 +11782,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"eqW" = ( -/obj/structure/table/wood, -/obj/item/folder/yellow{ - pixel_x = 3; - pixel_y = 6 - }, -/obj/item/dest_tagger{ - pixel_x = -11; - pixel_y = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "erf" = ( /obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, /obj/machinery/door/airlock/hydroponics/glass{ @@ -11775,16 +11834,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ess" = ( -/obj/structure/cable, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "esv" = ( /obj/docking_port/stationary{ dwidth = 4; @@ -11804,13 +11853,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"esB" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/spawner/random/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "esF" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -11847,6 +11889,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"eti" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/cargo/storage) "etl" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 5 @@ -11868,6 +11919,10 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/circuit, /area/station/maintenance/port/aft) +"etJ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/stone, +/area/station/service/chapel) "etZ" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/effect/turf_decal/siding/wideplating/dark/corner{ @@ -12059,6 +12114,26 @@ /obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/station/medical/virology) +"eyx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/sign/directions/supply/directional/west{ + pixel_x = 0; + pixel_y = 39 + }, +/obj/structure/sign/directions/vault/directional/west{ + dir = 2; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "eyB" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -12101,18 +12176,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"ezm" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "ezw" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -12318,6 +12381,23 @@ }, /turf/open/floor/iron/small, /area/station/engineering/main) +"eCO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) +"eCV" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "eDh" = ( /obj/effect/spawner/structure/window/survival_pod, /turf/open/floor/engine, @@ -12454,6 +12534,13 @@ /obj/machinery/camera/directional/west, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"eEG" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "eEL" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -12676,35 +12763,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eIB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/folder/red{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = -30 - }, -/obj/effect/spawner/random/entertainment/toy_figure{ - pixel_x = 4; - pixel_y = 11 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) +"eII" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "eIM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -12751,6 +12817,20 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"eJi" = ( +/obj/structure/table/wood, +/obj/item/hand_labeler_refill{ + pixel_x = -4; + pixel_y = 26 + }, +/obj/structure/sign/poster/official/random/directional/south, +/obj/machinery/fax{ + fax_name = "Quartermaster's Office"; + name = "Quartermaster's Fax Machine"; + pixel_y = 7 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "eJm" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -12776,29 +12856,6 @@ /obj/effect/turf_decal/stripes/asteroid/end, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) -"eJR" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) -"eKd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/light/small/directional/west, -/obj/machinery/airlock_sensor/incinerator_atmos{ - pixel_y = -20 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "eKf" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/donkpocketpizza, @@ -12827,6 +12884,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"eKV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "eKW" = ( /obj/machinery/door/airlock/maintenance{ name = "Bathroom" @@ -12907,6 +12969,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"eNa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "eNl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12941,18 +13016,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eNE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "eNP" = ( /obj/effect/turf_decal/plaque{ icon_state = "L9"; @@ -13029,6 +13092,12 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"ePr" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ePt" = ( /obj/structure/flora/grass/jungle/a/style_4, /turf/open/floor/grass, @@ -13066,14 +13135,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"eQj" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/sorting) "eQk" = ( /obj/machinery/door/airlock/security{ name = "Isolation" @@ -13104,6 +13165,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/dorms) +"eQI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/white/corner, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "eQQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13112,11 +13184,6 @@ dir = 1 }, /area/station/maintenance/starboard/greater) -"eQR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "eQY" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -13157,6 +13224,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) +"eSA" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) "eSV" = ( /obj/structure/bed/maint, /turf/open/floor/iron/small, @@ -13210,6 +13287,12 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, /area/station/service/bar) +"eTL" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/lobby) "eTT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13269,14 +13352,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"eUL" = ( -/obj/machinery/door/airlock/hatch{ - name = "Tool Supply Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/commons/storage/tools) "eUN" = ( /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, @@ -13321,17 +13396,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) -"eVo" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "eVz" = ( /obj/machinery/camera/directional/west{ c_tag = "AI Sat - Antechamber"; @@ -13435,6 +13499,11 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"eXl" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "eXo" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/server) @@ -13497,24 +13566,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) -"eYs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/office) -"eYx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/sorting) "eYB" = ( /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/wood, @@ -13541,16 +13592,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/science/lower) -"eYX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "eYY" = ( /obj/structure/window/spawner/directional/west, /obj/structure/window/spawner/directional/east, @@ -13560,6 +13601,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/maintenance/port/lesser) +"eZd" = ( +/obj/effect/spawner/random/structure/crate_loot, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "eZi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13875,6 +13920,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"fgo" = ( +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fgp" = ( /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) @@ -13918,13 +13967,6 @@ /obj/effect/turf_decal/weather/dirt, /turf/open/floor/grass, /area/station/service/chapel) -"fgV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "fgW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/vending/drugs, @@ -14017,6 +14059,10 @@ /obj/item/plate, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"fiE" = ( +/obj/effect/turf_decal/siding/red, +/turf/open/floor/iron, +/area/station/cargo/storage) "fiK" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -14059,14 +14105,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"fjH" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "fjL" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -14215,6 +14253,13 @@ /obj/item/flashlight/lantern, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) +"fma" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron, +/area/station/cargo/storage) "fme" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -14310,19 +14355,6 @@ /obj/item/storage/fancy/donut_box, /turf/open/floor/iron/textured_large, /area/station/security/brig/entrance) -"fod" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/delivery/white, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "foe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14418,22 +14450,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"fpr" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Engineering Deliveries" - }, -/obj/structure/sign/departments/engineering/directional/north, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/structure/plasticflaps{ - name = "Engineering Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/light/warm/directional/north, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "fpB" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -14517,6 +14533,13 @@ /obj/machinery/door/window/brigdoor/right/directional/north, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/customs) +"frY" = ( +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "frZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14627,10 +14650,18 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"ftJ" = ( -/obj/effect/turf_decal/siding/red, +"ftI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/cargo/lobby) "ftT" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/machinery/camera/directional/west{ @@ -14645,10 +14676,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) -"fua" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron/small, -/area/station/cargo/lobby) "fuj" = ( /obj/structure/table/glass, /obj/effect/turf_decal/siding/dark_red, @@ -14703,15 +14730,6 @@ }, /turf/open/space/basic, /area/space) -"fuT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "fuV" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -14737,15 +14755,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) -"fvq" = ( -/obj/machinery/firealarm/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "fvs" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14788,6 +14797,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"fvX" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs/cable/red{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/iron, +/area/station/cargo/sorting) "fwc" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -14815,25 +14833,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"fwB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = 24; - req_access = list("cargo") - }, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fwF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14883,35 +14882,13 @@ /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "fxc" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/cargo/storage) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fxi" = ( /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"fxp" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"fxE" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/paperplane{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/paperplane{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "fxF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14923,6 +14900,14 @@ /obj/structure/table, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) +"fxO" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) "fxW" = ( /obj/machinery/restaurant_portal/restaurant, /obj/effect/turf_decal/siding/wood{ @@ -15051,14 +15036,6 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) -"fzM" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/pdapainter/supply, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "fzT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15073,6 +15050,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"fAn" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fAr" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/barricade/wooden/crude, @@ -15225,6 +15209,16 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"fCK" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/supply, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fCS" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/airalarm/directional/east, @@ -15361,14 +15355,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"fEt" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) @@ -15542,9 +15528,6 @@ /obj/structure/flora/bush/large/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"fGY" = ( -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "fHf" = ( /obj/structure/bed/maint, /obj/effect/spawner/random/maintenance, @@ -15603,6 +15586,14 @@ /obj/machinery/vending/wardrobe/science_wardrobe, /turf/open/floor/iron/white, /area/station/science/research) +"fHX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "fIe" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 6 @@ -15627,6 +15618,13 @@ /obj/machinery/light/floor, /turf/open/floor/stone, /area/station/service/bar) +"fIq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/cargo/office) "fIw" = ( /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, @@ -15789,19 +15787,6 @@ /obj/item/clothing/mask/animal/small/bat, /turf/open/floor/wood/parquet, /area/station/service/greenroom) -"fLs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fLt" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/dinner, @@ -15873,6 +15858,15 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) +"fMf" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "fMg" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/smooth, @@ -16151,6 +16145,14 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/small, /area/station/service/janitor) +"fQv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fQA" = ( /obj/effect/spawner/random/structure/chair_maintenance{ dir = 8 @@ -16201,20 +16203,6 @@ /obj/item/plunger, /turf/open/floor/iron, /area/station/medical/chemistry) -"fRu" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fRv" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -16313,14 +16301,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fTa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/departments/cargo/directional/west, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "fTd" = ( /obj/structure/transport/linear/tram, /obj/effect/landmark/transport/transport_id/birdshot/line_1, @@ -16505,6 +16485,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"fWj" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "fWr" = ( /obj/structure/closet/crate, /obj/structure/barricade/wooden/crude, @@ -16590,15 +16579,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"fXY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fYe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood{ @@ -16663,14 +16643,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"fZY" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "fZZ" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -16851,12 +16823,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"gdd" = ( -/obj/machinery/computer/order_console/bitrunning{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/bitrunning/den) "gdn" = ( /obj/item/kirbyplants/organic/applebush, /obj/effect/turf_decal/tile/red{ @@ -16998,12 +16964,6 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/service/library) -"gfp" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/lobby) "gfs" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/command) @@ -17078,10 +17038,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"ggr" = ( -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) +"ggn" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/byteforge, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/bitrunning/den) "ggw" = ( /obj/effect/turf_decal/stripes/white/end{ dir = 1 @@ -17110,6 +17072,14 @@ }, /turf/open/floor/wood, /area/station/engineering/atmospherics_engine) +"ggK" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/pdapainter/supply, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "ggN" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -17238,6 +17208,12 @@ /obj/machinery/nuclearbomb/beer, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"giA" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "giU" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -17432,11 +17408,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmospherics_engine) -"gmz" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, @@ -17475,6 +17446,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"gnO" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gnQ" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window, @@ -17550,15 +17530,6 @@ /obj/item/clothing/head/costume/papersack/smiley, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) -"gpd" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/corner{ - dir = 8 - }, -/area/station/cargo/storage) "gpf" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -17652,6 +17623,12 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"gqw" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gqS" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/effect/turf_decal/siding/wideplating, @@ -17697,24 +17674,6 @@ }, /turf/open/floor/iron/white/side, /area/station/science/lobby) -"gsj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/holy/directional/south, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) -"gsr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/white/corner, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "gsv" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -17774,12 +17733,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"gtU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "guh" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "atmos to engine" @@ -17793,6 +17746,20 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) +"guq" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gus" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "guz" = ( /obj/structure/cable, /obj/item/kirbyplants/random, @@ -17818,20 +17785,6 @@ "guY" = ( /turf/closed/wall, /area/station/service/chapel/storage) -"gvz" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/stripes, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/landmark/start/bitrunner, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "gvV" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/office{ @@ -18252,6 +18205,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) +"gBs" = ( +/obj/effect/spawner/structure/window, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) "gBu" = ( /turf/closed/wall/r_wall, /area/station/security/prison/mess) @@ -18319,15 +18278,6 @@ /obj/structure/table/glass, /turf/open/floor/glass/reinforced, /area/station/command/bridge) -"gBX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "gCe" = ( /obj/structure/cable, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -18453,6 +18403,37 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gEa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/office) +"gEb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/dice{ + pixel_x = -10; + pixel_y = 11 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "gEc" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -18500,6 +18481,25 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"gFi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = 24; + req_access = list("cargo") + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "gFm" = ( /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/tile/neutral, @@ -18609,6 +18609,14 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"gGA" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/storage) "gGB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18697,6 +18705,25 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"gIr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "Sort and Deliver"; + pixel_x = 8; + pixel_y = 12 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "gIs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -18770,6 +18797,26 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/security) +"gJb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort2" + }, +/obj/machinery/door/window/left/directional/west{ + name = "Crate Security Door"; + req_access = list("shipping") + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "gJo" = ( /turf/open/floor/iron/stairs{ dir = 8 @@ -18803,13 +18850,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"gJH" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "gJQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -18868,13 +18908,6 @@ "gLb" = ( /turf/closed/wall, /area/station/medical/virology) -"gLf" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/plating, -/area/station/hallway/primary/central/fore) "gLg" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/camera/autoname/directional/north, @@ -18935,6 +18968,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"gLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "gLV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19129,6 +19171,13 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"gOS" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "gOX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -19167,6 +19216,24 @@ /obj/structure/fermenting_barrel, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gPO" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Service Deliveries" + }, +/obj/structure/sign/departments/botany/directional/north, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/structure/plasticflaps{ + name = "Service Deliveries" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "gPY" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -19188,36 +19255,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"gQD" = ( -/obj/structure/closet/secure_closet/security/cargo, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) -"gQG" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/closet/crate, -/obj/effect/turf_decal/bot_white, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/stack/package_wrap{ - pixel_y = 5 - }, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/storage/box{ - desc = "It smells of monkey business..."; - name = "Empty Gorillacube Box" - }, -/obj/item/weldingtool, -/obj/item/radio{ - pixel_y = 3; - pixel_x = -6 - }, -/obj/item/assembly/signaler, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) "gRm" = ( /obj/structure/flora/bush/flowers_br, /obj/structure/flora/bush/flowers_pp/style_random, @@ -19303,6 +19340,13 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"gSA" = ( +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gSD" = ( /obj/machinery/mass_driver/chapelgun{ dir = 8 @@ -19338,6 +19382,15 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) +"gTj" = ( +/obj/structure/cable, +/turf/closed/wall, +/area/station/maintenance/port/greater) +"gTw" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "gTH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19402,15 +19455,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/aft) -"gUf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/airlock{ - name = "Cargo Maintenance" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gUk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19458,12 +19502,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/engine/o2, /area/station/engineering/atmos) -"gUQ" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine/atmos) "gUV" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/south{ @@ -19476,13 +19514,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"gVb" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating_new, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "gVc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19499,16 +19530,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"gVy" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "gVA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -19576,6 +19597,18 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"gXB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "gXL" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -19611,18 +19644,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"gYh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "gYq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19674,6 +19695,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"gZR" = ( +/obj/structure/sign/poster/random/directional/south, +/obj/machinery/conveyor{ + id = "mining"; + dir = 10 + }, +/obj/machinery/bouldertech/refinery, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "gZS" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -19709,6 +19740,12 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"hao" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "haq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19721,10 +19758,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"haD" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "haO" = ( /obj/effect/turf_decal/stripes/white/end, /obj/machinery/door/poddoor/shutters{ @@ -19732,13 +19765,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hba" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/storage) "hbc" = ( /obj/effect/turf_decal/siding/dark_red/corner{ dir = 8 @@ -20171,12 +20197,6 @@ /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/space/nearstation) -"hft" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "hfI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20186,16 +20206,6 @@ }, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"hgd" = ( -/obj/structure/table, -/obj/item/screwdriver{ - pixel_y = -6 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 7 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hgf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/green{ @@ -20219,6 +20229,16 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"hgp" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "hgu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20299,21 +20319,13 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"hhp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/stool/directional/west, -/obj/machinery/airalarm/directional/east, -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) -"hhr" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ +"hhy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 }, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine/atmos) +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hhL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20400,6 +20412,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) +"hjA" = ( +/obj/structure/table, +/obj/machinery/status_display/supply{ + pixel_x = 1; + pixel_y = 32 + }, +/obj/machinery/fax/auto_name{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "hjQ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -20407,6 +20434,19 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"hjS" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/delivery/white, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "hkd" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 8 @@ -20503,9 +20543,6 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hle" = ( -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "hlC" = ( /obj/effect/spawner/structure/window, /obj/effect/turf_decal/bot{ @@ -20530,6 +20567,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"hlP" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/wrapping_paper{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "hlX" = ( /obj/machinery/door/airlock/public/glass{ name = "Old Command Hallway" @@ -20553,21 +20602,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) -"hmj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/gps{ - pixel_y = 5; - pixel_x = 13 - }, -/obj/item/storage/toolbox/emergency/old, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hmk" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, @@ -20613,30 +20647,12 @@ dir = 1 }, /area/station/service/bar/backroom) -"hmQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/crowbar/large{ - pixel_y = 18 - }, -/obj/item/clothing/head/costume/pirate{ - pixel_x = 15; - pixel_y = -3 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/wrench{ - pixel_y = 15 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hmR" = ( -/obj/effect/turf_decal/loading_area/white, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron, -/area/station/cargo/lobby) +/area/station/cargo/storage) "hnf" = ( /obj/item/bikehorn/rubberducky{ pixel_x = -6; @@ -20738,6 +20754,13 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) +"hpb" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hpe" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, @@ -20787,11 +20810,6 @@ dir = 8 }, /area/station/science/lobby) -"hqH" = ( -/obj/item/reagent_containers/cup/watering_can/wood, -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "hqM" = ( /obj/structure/toiletbong{ dir = 1 @@ -20887,12 +20905,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron, /area/station/security/prison) -"hrP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "hrV" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -21006,6 +21018,18 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"huh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/rack, +/obj/item/stack/cable_coil/five, +/obj/item/pickaxe, +/obj/item/wrench, +/obj/item/radio/off, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "huj" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -21067,13 +21091,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/maint) -"hvw" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/obj/effect/spawner/random/vending/snackvend, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hvx" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/machinery/light/small/directional/north, @@ -21243,6 +21260,25 @@ "hyE" = ( /turf/closed/wall, /area/station/maintenance/starboard/aft) +"hyS" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "hyW" = ( /obj/effect/turf_decal/weather/dirt{ dir = 10 @@ -21281,6 +21317,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) +"hzr" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/requests_console/directional/north{ + department = "Detective's Office"; + name = "Detective Requests Console" + }, +/obj/machinery/light/small/directional/west, +/obj/structure/detectiveboard/directional/west, +/turf/open/floor/wood, +/area/station/security/detectives_office) "hzK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -21339,6 +21385,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"hAO" = ( +/obj/machinery/computer/piratepad_control/civilian{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "hAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21417,18 +21476,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) -"hBJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hBR" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 4 @@ -21625,15 +21672,6 @@ "hEJ" = ( /turf/open/floor/iron/smooth, /area/station/service/library) -"hEK" = ( -/obj/machinery/conveyor{ - id = "mining" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "hFb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -21697,12 +21735,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) -"hGa" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics Tank - Mix" - }, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "hGb" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/storage) @@ -21728,6 +21760,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"hGA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron, +/area/station/cargo/sorting) "hGE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -21776,6 +21813,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"hHX" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/quartermaster, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "hIi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -22298,6 +22345,17 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"hSn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hSK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/white{ @@ -22489,13 +22547,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/science/genetics) -"hWa" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "hWk" = ( /obj/machinery/vending/coffee, /obj/structure/extinguisher_cabinet/directional/south, @@ -22589,6 +22640,14 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) +"hXM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "hXU" = ( /turf/closed/wall, /area/station/security/execution/education) @@ -22647,6 +22706,21 @@ dir = 8 }, /area/station/science/lab) +"hYQ" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Security Deliveries" + }, +/obj/structure/sign/departments/security/directional/north, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/plasticflaps{ + name = "Security Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "hYS" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/structure/railing, @@ -22687,27 +22761,12 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) -"hZA" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "hZP" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"hZR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/closet_empty/crate, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "hZT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22748,14 +22807,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"iax" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "iaA" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/light/small/directional/north, @@ -22919,12 +22970,6 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"idb" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/byteforge, -/obj/effect/turf_decal/box, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/bitrunning/den) "idd" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -23001,6 +23046,11 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"idB" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "idF" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -23038,6 +23088,22 @@ /obj/machinery/telecomms/message_server/preset, /turf/open/floor/circuit, /area/station/tcommsat/server) +"iek" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Engineering Deliveries" + }, +/obj/structure/sign/departments/engineering/directional/north, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/plasticflaps{ + name = "Engineering Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "ieY" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -23078,11 +23144,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"ifv" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/light/warm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/storage) "ifH" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -23231,21 +23292,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"ihD" = ( -/obj/structure/table, -/obj/machinery/status_display/supply{ - pixel_x = 1; - pixel_y = 32 - }, -/obj/machinery/fax/auto_name{ - pixel_x = -1; - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "ihZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23304,6 +23350,24 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iiR" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/conveyor_switch/oneway{ + pixel_x = 4; + pixel_y = 10; + id = "mining" + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iiW" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, @@ -23317,12 +23381,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ijp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "ijz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, @@ -23425,22 +23483,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"ikQ" = ( -/obj/structure/table/wood, -/obj/item/folder/white{ - pixel_x = -3; - pixel_y = 0 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "ikU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -23520,19 +23562,6 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"ilL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ilT" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Access" @@ -23633,6 +23662,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) +"ioJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ioQ" = ( /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ @@ -23834,6 +23870,14 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"iqM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "ira" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light/small/directional/south, @@ -23967,13 +24011,14 @@ "itb" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"itr" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 +"itf" = ( +/obj/structure/disposalpipe/segment, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "itw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -24143,20 +24188,22 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"ivC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ivY" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/techstorage/tcomms_all, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"iwo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iwt" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -24174,13 +24221,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) -"ixa" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/light_switch/directional/south, -/obj/machinery/light/warm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24378,6 +24418,11 @@ /obj/machinery/field/generator, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"iAt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "iAu" = ( /obj/structure/bed{ dir = 4 @@ -24436,6 +24481,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"iAL" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "iAM" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 @@ -24584,17 +24638,22 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/server) -"iCN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "iDk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"iDm" = ( +/obj/structure/cable, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iDt" = ( /obj/effect/mapping_helpers/airlock/access/any/security/general, /obj/machinery/door/airlock/security{ @@ -24650,6 +24709,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos) +"iEc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "iEk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -24739,10 +24805,42 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"iFG" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "iFP" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating/rust, /area/station/maintenance/hallway/abandoned_command) +"iGb" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot_white, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/stack/package_wrap{ + pixel_y = 5 + }, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/storage/box{ + desc = "It smells of monkey business..."; + name = "Empty Gorillacube Box" + }, +/obj/item/weldingtool, +/obj/item/radio{ + pixel_y = 3; + pixel_x = -6 + }, +/obj/item/assembly/signaler, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "iGl" = ( /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) @@ -24817,6 +24915,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iGW" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) "iHa" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Gas to Cold Loop"; @@ -24927,6 +25033,20 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) +"iIG" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = -3 + }, +/obj/item/clothing/gloves/cargo_gauntlet, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 3 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "iIK" = ( /obj/effect/turf_decal/bot, /obj/structure/rack, @@ -25017,6 +25137,18 @@ /mob/living/basic/pet/dog/corgi/ian, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) +"iJp" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "iJq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25054,17 +25186,9 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"iJC" = ( -/obj/item/kirbyplants/organic/plant17, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/calendar{ - pixel_x = 0; - pixel_y = -26 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) +"iJH" = ( +/turf/closed/wall, +/area/station/security/checkpoint/supply) "iJI" = ( /obj/structure/table/glass, /obj/item/folder/blue, @@ -25121,6 +25245,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig/entrance) +"iKn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "iKo" = ( /obj/structure/broken_flooring/corner/directional/south, /obj/effect/spawner/random/trash/graffiti{ @@ -25197,12 +25329,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/hop, /turf/open/floor/plating, /area/station/maintenance/department/bridge) -"iLP" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "iLR" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -25291,12 +25417,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"iNv" = ( -/obj/structure/chair/stool/directional/east, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "iNA" = ( /obj/machinery/light/cold/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -25527,6 +25647,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) +"iQM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "iQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -25553,13 +25689,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"iRd" = ( -/obj/effect/spawner/random/trash, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iRk" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -25581,12 +25710,6 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"iRr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "iRz" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -25754,16 +25877,15 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"iUu" = ( -/obj/machinery/computer/cargo/request{ - dir = 1 +"iUA" = ( +/obj/machinery/conveyor{ + id = "mining" }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "iUH" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/south, @@ -25772,6 +25894,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"iUI" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iUK" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -26110,6 +26240,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) +"iZx" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "iZy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -26195,6 +26330,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"jab" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jar" = ( /obj/machinery/drone_dispenser, /turf/open/misc/asteroid, @@ -26248,14 +26387,6 @@ "jaQ" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) -"jaW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "jbd" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -26303,18 +26434,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"jbB" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/stripes, -/obj/effect/turf_decal/trimline/brown/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "jbV" = ( /obj/machinery/photocopier, /turf/open/floor/iron/dark, @@ -26512,6 +26631,11 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"jfP" = ( +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "jfT" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -26528,6 +26652,20 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"jgj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -24; + req_access = list("cargo") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "jgq" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -26540,16 +26678,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"jgA" = ( -/obj/machinery/door/airlock/hatch{ - name = "Tool Supply Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/lobby) "jgF" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -26566,19 +26694,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"jhc" = ( -/obj/structure/table, -/obj/item/paper/crumpled{ - pixel_x = -27; - pixel_y = 2 - }, -/obj/item/storage/medkit/regular{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jhj" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/station_alert{ @@ -26598,13 +26713,6 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"jhE" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "jhF" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -26687,19 +26795,6 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jiG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "jiR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine/vacuum, @@ -26753,53 +26848,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/medical/chemistry) -"jjT" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/storage) -"jjV" = ( -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/railing{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/stack/package_wrap{ - pixel_y = 6; - pixel_x = -1 - }, -/obj/item/paper/crumpled{ - pixel_x = 5; - pixel_y = 0 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/lobby) -"jkn" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jkz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -26841,6 +26889,19 @@ /obj/structure/cable, /turf/open/floor/plating/rust, /area/station/engineering/supermatter/room) +"jln" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jlt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26936,6 +26997,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"jmC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/holy/directional/south, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jmF" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/turf_decal/stripes/line{ @@ -26963,6 +27031,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"jmX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "jmY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26976,15 +27055,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) -"jng" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jnh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27169,12 +27239,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) -"jqM" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "jqZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27191,6 +27255,14 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"jro" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jrs" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -27205,6 +27277,12 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"jry" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "jrD" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 4 @@ -27319,6 +27397,10 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) +"jtB" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/iron/dark/corner, +/area/station/cargo/storage) "jtD" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, @@ -27347,20 +27429,11 @@ /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"jue" = ( -/obj/effect/turf_decal/siding/red, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/cargo/storage) -"jus" = ( +"juo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "juS" = ( /obj/structure/bed, /obj/item/bedsheet/hop, @@ -27368,18 +27441,14 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) -"juY" = ( -/obj/structure/hedge, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/light_switch/directional/east, -/obj/machinery/light/warm/directional/east, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) +"juU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/west, +/obj/effect/landmark/event_spawn, +/obj/machinery/portable_atmospherics/pump/lil_pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jvd" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -27395,17 +27464,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"jvm" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "jvB" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27661,9 +27719,6 @@ dir = 4 }, /area/station/command/heads_quarters/captain/private) -"jyP" = ( -/turf/open/floor/iron/dark, -/area/station/cargo/lobby) "jyY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -27743,6 +27798,16 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/lobby) +"jAN" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jAR" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/airalarm/directional/east, @@ -27752,13 +27817,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"jBn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jBo" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 6 @@ -27796,6 +27854,42 @@ /obj/machinery/flasher/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"jBJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/west{ + name = "Cargo Desk"; + req_access = list("shipping") + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/obj/item/paper_bin{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/office) +"jBN" = ( +/obj/machinery/piratepad/civilian, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/south, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "jBQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27972,6 +28066,19 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"jFg" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/paperplane{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/paperplane{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "jFh" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron, @@ -28036,12 +28143,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) -"jGx" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "jGy" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/vending/wardrobe/bar_wardrobe, @@ -28062,6 +28163,15 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"jGC" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/cargo/storage) "jGK" = ( /obj/structure/chair/wood, /obj/structure/cable, @@ -28155,6 +28265,11 @@ /mob/living/basic/sloth/citrus, /turf/open/floor/iron, /area/station/cargo/storage) +"jHC" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "jHI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -28173,6 +28288,21 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"jHN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) +"jHS" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/engineering/main) "jHU" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -28180,16 +28310,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/science/lobby) -"jHW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/cargo/storage) "jIc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ @@ -28224,6 +28344,12 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"jIn" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/firealarm/directional/west, +/obj/machinery/vending/cytopro, +/turf/open/floor/iron/white, +/area/station/science/cytology) "jIy" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -28254,6 +28380,39 @@ }, /turf/open/floor/wood, /area/station/engineering/main) +"jJw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) +"jJB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"jJO" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/chair/stool/directional/east, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/newscaster/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "jJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28293,6 +28452,14 @@ dir = 1 }, /area/station/science/xenobiology) +"jKl" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28329,6 +28496,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"jLt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/cytology) "jLv" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -28412,15 +28586,6 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"jMQ" = ( -/obj/machinery/atmospherics/components/binary/pump/off{ - name = "O2 To Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "jMX" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -28482,6 +28647,13 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) +"jNV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jOb" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -28564,6 +28736,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"jPl" = ( +/obj/machinery/button/ignition/incinerator/atmos, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "jPo" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance{ @@ -28613,6 +28789,14 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"jQG" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jQW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -28899,23 +29083,6 @@ /obj/item/instrument/harmonica, /turf/open/floor/iron, /area/station/security/prison/rec) -"jUr" = ( -/obj/item/cigarette, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 5; - pixel_x = 6 - }, -/obj/item/lighter, -/obj/structure/sign/poster/official/random/directional/east, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "jUx" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -28927,15 +29094,6 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"jUz" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs/cable/red{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jUA" = ( /obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ @@ -28982,18 +29140,6 @@ "jVM" = ( /turf/closed/wall, /area/station/maintenance/central/greater) -"jVS" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) -"jVV" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "jVY" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -29280,9 +29426,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/service/janitor) -"kas" = ( -/turf/closed/wall, -/area/station/cargo/lobby) "kat" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -29401,20 +29544,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"kcM" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - name = "Medical Deliveries" - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/plasticflaps{ - name = "Medical Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/obj/structure/sign/departments/med/directional/north, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "kcQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 1 @@ -29468,13 +29597,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/small, /area/station/science/server) -"kec" = ( -/obj/machinery/light/floor, -/obj/structure/flora/bush/flowers_br/style_3, -/obj/structure/flora/bush/flowers_yw, -/obj/structure/flora/bush/flowers_pp, -/turf/open/floor/grass, -/area/station/hallway/primary/central/fore) "kel" = ( /obj/machinery/light/cold/directional/south, /obj/machinery/modular_computer/preset/id{ @@ -29494,11 +29616,6 @@ "ket" = ( /turf/open/floor/iron, /area/station/security/prison/work) -"kev" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "keL" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -29586,6 +29703,16 @@ dir = 1 }, /area/station/hallway/primary/aft) +"kgp" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "kgu" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/components/unary/passive_vent, @@ -29638,6 +29765,24 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) +"khw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "khD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, @@ -29652,13 +29797,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"khK" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/cargo/office) "khQ" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, @@ -29703,6 +29841,12 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"kik" = ( +/obj/structure/chair/stool/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "kit" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -29759,10 +29903,24 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kiW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "kiY" = ( /obj/structure/flora/tree/jungle/style_6, /turf/open/floor/grass, /area/station/service/chapel) +"kjb" = ( +/obj/structure/hedge, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "kjg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29866,11 +30024,32 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"kkx" = ( -/obj/structure/disposalpipe/segment{ +"kkD" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/turf/closed/wall, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/stack/package_wrap{ + pixel_y = 6; + pixel_x = -1 + }, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, /area/station/cargo/lobby) "kkK" = ( /obj/effect/spawner/random/structure/closet_maintenance, @@ -29927,6 +30106,13 @@ dir = 1 }, /area/station/engineering/atmos) +"klA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Plasma to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "klF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -30091,6 +30277,10 @@ "knv" = ( /turf/closed/wall, /area/station/maintenance/department/engine/atmos) +"knw" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "knB" = ( /obj/machinery/door/airlock{ id_tag = "Toilet2"; @@ -30116,6 +30306,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) +"knR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "knV" = ( /obj/structure/closet/l3closet, /obj/effect/turf_decal/stripes/line{ @@ -30359,6 +30554,12 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"ksq" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/light/small/directional/north, +/obj/structure/mirror/directional/north, +/turf/open/floor/iron/grimy, +/area/station/cargo/boutique) "ksv" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -30377,6 +30578,10 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/engineering/gravity_generator) +"ksE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "ksJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30528,18 +30733,6 @@ /obj/structure/chair, /turf/open/floor/iron, /area/station/commons/storage/tools) -"kuX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/chair/comfy/brown{ - buildstackamount = 0; - color = "#c45c57"; - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "kvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -30632,6 +30825,20 @@ /obj/structure/window/spawner/directional/north, /turf/open/space/basic, /area/space/nearstation) +"kxa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "kxb" = ( /obj/structure/table/reinforced/titaniumglass, /obj/effect/turf_decal/bot, @@ -30663,6 +30870,10 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"kxu" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "kxE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/research/glass{ @@ -30678,19 +30889,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"kxG" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/table, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "kxL" = ( /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/entry) @@ -30770,25 +30968,11 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"kzG" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters{ - id = "qm_warehouse_aft"; - name = "Warehouse Shutters" - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "kzI" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/closet_empty/crate, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"kzM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "kzP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, @@ -30822,13 +31006,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) -"kAr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/cargo/office) "kAz" = ( /obj/machinery/power/energy_accumulator/tesla_coil/anchored, /obj/structure/window/reinforced/plasma/spawner/directional/north, @@ -30978,10 +31155,6 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/purple, /area/station/commons/dorms) -"kDP" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/cargo/lobby) "kEd" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -31059,15 +31232,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"kFz" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/conveyor{ - id = "mining" - }, -/obj/machinery/brm, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "kFA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -31211,15 +31375,6 @@ }, /turf/open/floor/iron, /area/station/security) -"kHR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "kHX" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -31231,14 +31386,6 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"kIl" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "kIm" = ( /obj/machinery/camera/autoname/directional/south, /obj/machinery/light/small/directional/south, @@ -31315,6 +31462,14 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/station/ai_monitored/security/armory) +"kJu" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "kJJ" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -31362,17 +31517,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"kKF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/directional/east, -/obj/effect/landmark/start/quartermaster, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "kKT" = ( /obj/machinery/computer/camera_advanced/xenobio{ dir = 4 @@ -31415,6 +31559,27 @@ "kMe" = ( /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) +"kMg" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "kMm" = ( /obj/structure/chair/sofa/right/brown{ dir = 1 @@ -31439,6 +31604,31 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"kMY" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + name = "Bitrunning Den" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/cargo/bitrunning/den) "kNf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -31457,10 +31647,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"kNv" = ( -/obj/machinery/air_sensor/mix_tank, -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "kNx" = ( /turf/open/floor/engine/o2, /area/station/engineering/atmos) @@ -31517,6 +31703,15 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) +"kOA" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/conveyor{ + id = "mining" + }, +/obj/machinery/brm, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "kOG" = ( /obj/structure/cable, /obj/machinery/door/airlock/external{ @@ -31564,6 +31759,14 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/white/small, /area/station/security/warden) +"kPh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kPk" = ( /obj/structure/chair/sofa/bench{ dir = 1 @@ -31614,6 +31817,15 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"kQj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "kQk" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -31628,6 +31840,9 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) +"kRb" = ( +/turf/open/floor/iron, +/area/station/cargo/sorting) "kRi" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -31723,11 +31938,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"kSN" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "kTm" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/siding/wood{ @@ -31977,17 +32187,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/escape) -"kYT" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 9 - }, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "kYY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32090,13 +32289,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) -"lam" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "laF" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -32141,6 +32333,10 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) +"lbe" = ( +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "lbG" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -32551,10 +32747,6 @@ /obj/item/camera, /turf/open/floor/iron, /area/station/security/prison/workout) -"lhd" = ( -/obj/structure/water_source/puddle, -/turf/open/floor/grass, -/area/station/security/prison/garden) "lhi" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/button/door/directional/north{ @@ -32772,12 +32964,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/rec) -"ljK" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "ljN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -32867,6 +33053,18 @@ /obj/structure/flora/rock/pile/jungle/style_4, /turf/open/floor/grass, /area/station/service/chapel) +"lkL" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lkN" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 1 @@ -32957,23 +33155,30 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"lmp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/stool/directional/west, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "lmz" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "lmJ" = ( /turf/open/floor/iron, /area/station/engineering/atmos/project) -"lng" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"lmZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/warm/directional/north, +/obj/effect/landmark/navigate_destination/bar, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/hallway/primary/central/fore) "lnu" = ( /obj/machinery/holopad, /turf/open/floor/iron/dark, @@ -33024,6 +33229,17 @@ /obj/structure/ore_box, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"lnL" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4; + pixel_y = -2 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lnM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/right/directional/north{ @@ -33059,10 +33275,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) -"lnV" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lnW" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/structure/chair{ @@ -33214,6 +33426,22 @@ "lqC" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"lqK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "lqL" = ( /obj/effect/landmark/transport/nav_beacon/tram/platform/birdshot/prison_wing, /turf/open/floor/tram, @@ -33247,6 +33475,12 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"lrN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Mix" + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "lrP" = ( /obj/machinery/computer/security{ dir = 8 @@ -33281,6 +33515,10 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"lsH" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "lsO" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/white/side{ @@ -33369,6 +33607,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"lud" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "lun" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/command/general, @@ -33482,9 +33727,13 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"lvL" = ( -/turf/closed/wall/rust, -/area/station/cargo/lobby) +"lvN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lvS" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -33533,17 +33782,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"lwx" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/structure/hedge, -/obj/effect/turf_decal/siding/thinplating_new/end{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "lwI" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/security/mining{ @@ -33602,6 +33840,10 @@ dir = 1 }, /area/station/commons/fitness/locker_room) +"lxE" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lxI" = ( /obj/effect/turf_decal/siding/wood/end, /obj/effect/spawner/random/engineering/atmospherics_portable, @@ -33736,6 +33978,10 @@ dir = 1 }, /area/station/command/bridge) +"lAM" = ( +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "lAO" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -33883,21 +34129,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/lobby) -"lCJ" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch/directional/east, -/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "lCK" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33989,20 +34220,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lEs" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/computer/order_console/cook{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "lEJ" = ( /obj/machinery/door/poddoor{ id = "QMLoaddoor"; @@ -34042,6 +34259,13 @@ "lER" = ( /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"lFb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lFg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34112,23 +34336,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/science/lower) -"lGM" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/camera/autoname/directional/west, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) -"lGO" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/prison/garden) "lHb" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/robotics, @@ -34193,10 +34400,6 @@ /obj/machinery/shower/directional/east, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"lHK" = ( -/obj/structure/closet, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "lHS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, @@ -34223,12 +34426,6 @@ dir = 1 }, /area/station/command/heads_quarters/qm) -"lHU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "lHW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34287,26 +34484,6 @@ dir = 8 }, /area/station/science/xenobiology) -"lIP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/structure/sign/directions/supply/directional/west{ - pixel_x = 0; - pixel_y = 39 - }, -/obj/structure/sign/directions/vault/directional/west{ - dir = 2; - pixel_x = 0; - pixel_y = 30 - }, -/turf/open/floor/iron/small, -/area/station/hallway/primary/central/fore) "lJe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34336,6 +34513,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"lKf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/camera/autoname/directional/west, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "lKg" = ( /obj/machinery/firealarm/directional/east, /turf/open/floor/wood, @@ -34442,17 +34631,6 @@ dir = 9 }, /area/station/hallway/secondary/construction) -"lLM" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/item/folder/yellow{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "lLX" = ( /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) @@ -34563,15 +34741,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"lNN" = ( -/obj/structure/table, -/obj/item/toy/foamblade, -/obj/item/analyzer{ - pixel_y = 8; - pixel_x = -9 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lNQ" = ( /obj/effect/turf_decal/bot_white/right, /obj/machinery/firealarm/directional/north, @@ -34586,6 +34755,11 @@ /obj/effect/landmark/navigate_destination/court, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"lOg" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lOi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34631,9 +34805,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"lPm" = ( -/turf/closed/wall, -/area/station/maintenance/hallway/abandoned_recreation) "lPo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/assistant, @@ -34642,6 +34813,30 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"lPv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/item/folder/red{ + pixel_y = 3 + }, +/obj/item/food/monkeycube/bee{ + name = "monkey cube"; + pixel_y = 17 + }, +/obj/item/food/monkeycube/chicken{ + pixel_y = 15; + pixel_x = 6; + name = "monkey cube"; + desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!" + }, +/obj/item/wirecutters{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "lPC" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -34668,15 +34863,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"lQc" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "lQh" = ( /turf/open/floor/iron/small, /area/station/maintenance/port/aft) @@ -34729,14 +34915,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lRf" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/landmark/start/cargo_technician, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "lRh" = ( /obj/effect/landmark/start/scientist, /obj/machinery/light/small/directional/north, @@ -34961,15 +35139,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"lVv" = ( -/obj/structure/chair/stool/directional/south, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/break_room) "lVy" = ( /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 8 @@ -35027,6 +35196,21 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"lWE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/gps{ + pixel_y = 5; + pixel_x = 13 + }, +/obj/item/storage/toolbox/emergency/old, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "lWV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35086,6 +35270,15 @@ }, /turf/open/floor/wood/tile, /area/station/science/lower) +"lXM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "lXR" = ( /obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35116,6 +35309,17 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) +"lYe" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/stripes/end, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "lYf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35280,17 +35484,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"lZP" = ( -/obj/structure/table, -/obj/item/toy/eightball{ - pixel_x = -4 - }, -/obj/item/wirecutters{ - pixel_y = 17; - pixel_x = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lZR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, @@ -35303,6 +35496,12 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"mac" = ( +/obj/structure/hedge, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "mae" = ( /obj/structure/cable, /turf/closed/wall, @@ -35370,24 +35569,6 @@ /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"mbH" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Service Deliveries" - }, -/obj/structure/sign/departments/botany/directional/north, -/obj/effect/turf_decal/tile/green/fourcorners, -/obj/structure/plasticflaps{ - name = "Service Deliveries" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "mbP" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/requests_console/directional/north{ @@ -35399,17 +35580,6 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron/small, /area/station/engineering/atmos/office) -"mbS" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Quartermaster's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/qm, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/command/heads_quarters/qm) "mbV" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/eighties/red, @@ -35509,6 +35679,10 @@ /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"mdp" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/security/prison/garden) "mdr" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, @@ -35535,6 +35709,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"mek" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/holopad, +/mob/living/basic/chick/permanent{ + name = "Morgan" + }, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "meu" = ( /turf/closed/wall, /area/station/command/heads_quarters/captain) @@ -35585,10 +35767,6 @@ /obj/effect/mapping_helpers/mail_sorting/science/ordnance, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"mfx" = ( -/obj/effect/turf_decal/stripes/white/line, -/turf/open/floor/iron/dark/side, -/area/station/cargo/storage) "mfB" = ( /obj/structure/table/wood, /obj/item/book/bible, @@ -35615,23 +35793,6 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"mgd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/table/glass, -/obj/item/flashlight/lamp/green{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/taperecorder{ - pixel_x = -15; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "mgt" = ( /obj/machinery/vending/boozeomat, /obj/machinery/firealarm/directional/south, @@ -35761,6 +35922,20 @@ /obj/item/clothing/under/costume/skeleton, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"mjh" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "mjr" = ( /obj/machinery/vending/dinnerware, /obj/machinery/requests_console/auto_name/directional/south, @@ -35873,6 +36048,14 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"mln" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/light/small/directional/west, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = -20 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "mlp" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -35977,11 +36160,10 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) -"mmX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +"mmZ" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "mnb" = ( /obj/effect/turf_decal/stripes/white/corner{ dir = 4 @@ -36064,6 +36246,18 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"mnU" = ( +/obj/structure/hedge, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light_switch/directional/east, +/obj/machinery/light/warm/directional/east, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "mog" = ( /obj/machinery/oven/range, /obj/machinery/airalarm/directional/north, @@ -36095,6 +36289,23 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/research) +"moq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "mos" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, @@ -36140,6 +36351,26 @@ }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) +"mpL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/crowbar/large{ + pixel_y = 18 + }, +/obj/item/clothing/head/costume/pirate{ + pixel_x = 15; + pixel_y = -3 + }, +/obj/item/clothing/suit/hazardvest{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/wrench{ + pixel_y = 15 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "mpQ" = ( /obj/structure/bed{ dir = 4 @@ -36199,30 +36430,15 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"mrP" = ( -/obj/structure/disposalpipe/segment{ +"mrY" = ( +/obj/effect/turf_decal/siding/wood{ dir = 6 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/item/folder/red{ - pixel_y = 3 - }, -/obj/item/food/monkeycube/bee{ - name = "monkey cube"; - pixel_y = 17 - }, -/obj/item/food/monkeycube/chicken{ - pixel_y = 15; - pixel_x = 6; - name = "monkey cube"; - desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!" - }, -/obj/item/wirecutters{ - pixel_y = 6 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "msg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36251,36 +36467,12 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"msF" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/landmark/start/quartermaster, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "msJ" = ( /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"msZ" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/storage/wallet{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -2 - }, -/obj/item/lighter{ - pixel_x = 11; - pixel_y = -7 - }, -/obj/machinery/light/directional/south, -/obj/structure/sign/poster/official/random/directional/south, +"mta" = ( +/obj/structure/dresser, +/obj/structure/sign/poster/contraband/random/directional/east, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) @@ -36363,14 +36555,6 @@ "muS" = ( /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"muT" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron, -/area/station/cargo/sorting) "muW" = ( /obj/structure/cable, /obj/machinery/status_display/ai/directional/north, @@ -36421,29 +36605,6 @@ dir = 1 }, /area/station/hallway/primary/central/fore) -"mvX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/cargo/storage) -"mwc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mwn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -36516,6 +36677,15 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/warden) +"mxh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "mxp" = ( /obj/structure/table, /obj/structure/railing/corner{ @@ -36525,15 +36695,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"mxv" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "mxM" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, @@ -36671,10 +36832,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"mzv" = ( -/obj/docking_port/stationary/syndicate/northeast, -/turf/open/space/basic, -/area/space) "mzx" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -36706,10 +36863,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"mAu" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "mAv" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, @@ -36747,11 +36900,6 @@ /obj/item/instrument/eguitar, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"mBt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "mBC" = ( /obj/structure/sign/poster/official/soft_cap_pop_art/directional/north, /turf/open/floor/iron/grimy, @@ -36785,14 +36933,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"mCU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 +"mCV" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) +"mCW" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +/obj/item/banner/cargo, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "mDf" = ( /obj/structure/chair/wood{ dir = 8 @@ -36808,6 +36963,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"mDk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mDl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -36816,18 +36978,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"mDx" = ( -/obj/machinery/mineral/ore_redemption{ - dir = 4; - input_dir = 8; - output_dir = 4 - }, -/obj/machinery/door/window/right/directional/east{ - name = "Ore Redemtion Window" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/textured_large, -/area/station/cargo/office) "mDA" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole{ @@ -36861,14 +37011,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) -"mDQ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "mDS" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -36933,6 +37075,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"mFd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "mFh" = ( /obj/effect/decal/cleanable/glass, /obj/structure/table/reinforced/rglass, @@ -36978,17 +37129,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/circuit, /area/station/tcommsat/server) -"mFH" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4; - pixel_y = -2 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mFL" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -37001,6 +37141,13 @@ /obj/structure/cable, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"mFQ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "mGg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37068,6 +37215,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) +"mGI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/station/cargo/lobby) "mGM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, @@ -37159,20 +37312,20 @@ dir = 1 }, /area/station/science/lower) -"mIx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/unres{ +"mIp" = ( +/obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/cargo/miningoffice) +/area/station/hallway/primary/central/fore) "mIA" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -37348,15 +37501,18 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"mKR" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "mKY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/hydroponics) -"mLa" = ( -/obj/machinery/light/small/dim/directional/north, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "mLh" = ( /obj/structure/cable, /obj/machinery/computer/security/mining{ @@ -37381,6 +37537,11 @@ }, /turf/open/floor/iron, /area/station/security/processing) +"mLz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "mLA" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -37510,6 +37671,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mOc" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "mOk" = ( /obj/structure/table/glass, /obj/item/folder/blue{ @@ -37670,6 +37839,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mRQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "mSa" = ( /turf/open/floor/iron, /area/station/commons/fitness/locker_room) @@ -37680,12 +37855,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/storage) -"mSu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "mSA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -37701,17 +37870,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"mSJ" = ( -/obj/structure/hedge, -/obj/machinery/status_display/supply{ - pixel_y = 32 - }, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/storage) "mSQ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -37955,6 +38113,17 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"mWU" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair{ + dir = 4; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mWY" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench/left{ @@ -37963,6 +38132,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"mXb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/tree/jungle/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "mXk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/east, @@ -38045,6 +38221,15 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mYE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/south, +/obj/item/storage/belt/utility, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "mYP" = ( /obj/structure/table, /obj/item/storage/bag/tray/cafeteria{ @@ -38113,25 +38298,6 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"mZR" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 10 - }, -/obj/structure/sign/poster/official/the_owl/directional/west, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "mZZ" = ( /obj/structure/table/glass, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -38160,9 +38326,8 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) "naB" = ( -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) +/turf/closed/wall/rust, +/area/station/cargo/lobby) "naC" = ( /obj/structure/cable, /obj/structure/broken_flooring/singular/directional/south, @@ -38182,6 +38347,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"naK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/maintenance/department/engine/atmos) "naN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -38208,10 +38382,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"nbN" = ( -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "ncb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -38258,13 +38428,6 @@ /obj/effect/landmark/start/lawyer, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"ncB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "ncD" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -38385,18 +38548,6 @@ }, /turf/open/floor/iron, /area/station/security) -"ngn" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_yw, -/obj/structure/flora/bush/large/style_random{ - pixel_x = -20; - pixel_y = 3 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "ngq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38409,6 +38560,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) +"nhk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nhl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38417,11 +38574,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nht" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "nhu" = ( /obj/structure/table, /obj/effect/spawner/random/engineering/flashlight, @@ -38516,14 +38668,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"niE" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/photocopier, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "niF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38600,6 +38744,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"njv" = ( +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "njA" = ( /obj/machinery/photocopier, /obj/structure/sign/poster/official/random/directional/north, @@ -38642,11 +38796,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security) -"nke" = ( -/obj/effect/spawner/random/structure/grille, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "nki" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/cold/dim/directional/west, @@ -38660,6 +38809,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"nku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "nkw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -38770,13 +38927,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"nmw" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light_switch/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "nmC" = ( /obj/structure/table, /obj/item/storage/bag/tray, @@ -38790,11 +38940,24 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) +"nmE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nmH" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/main) +"nmV" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "nmX" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -38914,18 +39077,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/large, /area/station/service/janitor) -"npf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/obj/structure/rack, -/obj/item/stack/cable_coil/five, -/obj/item/pickaxe, -/obj/item/wrench, -/obj/item/radio/off, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) "npp" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -39046,16 +39197,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"nrX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/sign/poster/official/random/directional/west, -/obj/structure/destructible/cult/item_dispenser/archives/library, -/obj/item/book/codex_gigas, -/obj/machinery/light/small/dim/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "nsc" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -39316,14 +39457,23 @@ }, /turf/open/floor/iron/recharge_floor, /area/station/maintenance/port/aft) -"nvU" = ( -/obj/structure/cable, +"nwb" = ( /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 4 }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"nwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "nwj" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -39387,10 +39537,6 @@ /obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"nxS" = ( -/obj/effect/landmark/start/librarian, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "nyd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39478,6 +39624,18 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"nzd" = ( +/obj/structure/filingcabinet, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) +"nzy" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/cargo/sorting) "nzA" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39494,6 +39652,44 @@ "nzL" = ( /turf/closed/wall, /area/station/science/ordnance/testlab) +"nzO" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/stamp/denied{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/stamp{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/item/radio{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"nzS" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = 8; + pixel_y = 36 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "nzU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39549,12 +39745,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"nBn" = ( -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "nBq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39592,13 +39782,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"nBI" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "nBP" = ( /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "engsm"; @@ -39642,15 +39825,6 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/wood, /area/station/engineering/break_room) -"nCE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/light_switch/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "nCH" = ( /turf/closed/wall/r_wall, /area/station/security) @@ -39705,11 +39879,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) -"nDK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "nDQ" = ( /obj/structure/chair{ dir = 4 @@ -39914,6 +40083,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"nHb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/vending/wardrobe/curator_wardrobe, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "nHd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39922,23 +40100,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"nHq" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow{ - pixel_x = 13; - pixel_y = 1 - }, -/obj/item/flashlight/lamp{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 15; - pixel_y = 7 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/break_room) "nHu" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -40081,6 +40242,17 @@ }, /turf/open/floor/plating, /area/station/command/meeting_room) +"nJK" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "nJU" = ( /obj/machinery/conveyor{ dir = 4; @@ -40100,13 +40272,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"nKe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "nKj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40121,6 +40286,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"nLi" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "nLk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40158,6 +40331,23 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"nLQ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cell_charger{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + pixel_x = 14; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "nMk" = ( /obj/machinery/power/emitter/welded{ dir = 1 @@ -40282,6 +40472,13 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nPg" = ( +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "nPl" = ( /obj/machinery/power/supermatter_crystal/engine, /turf/open/floor/engine, @@ -40312,15 +40509,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/security/execution/transfer) -"nPL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "nPM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40424,20 +40612,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"nQE" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/holopad, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "nQH" = ( /obj/structure/closet{ name = "Paramedic Supplies" @@ -40457,15 +40631,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"nQW" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "nQX" = ( /obj/machinery/holopad, /turf/open/floor/iron/smooth, @@ -40490,16 +40655,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/engineering/break_room) -"nRF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "nRP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40526,15 +40681,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"nSh" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "nSA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -40605,46 +40751,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/cubicle) -"nTV" = ( -/obj/machinery/requests_console/directional/south{ - department = "Security"; - name = "Security Requests Console" - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/radio/off{ - pixel_x = -6 - }, -/obj/machinery/recharger{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) -"nUb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/folder/yellow{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/dice{ - pixel_x = -10; - pixel_y = 11 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/carpet, -/area/station/maintenance/hallway/abandoned_recreation) "nUd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -40721,18 +40827,6 @@ /obj/item/wirecutters, /turf/open/floor/iron/dark, /area/station/security/office) -"nVw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "nVx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40770,11 +40864,6 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) -"nWc" = ( -/obj/structure/chair/stool/directional/west, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -40843,12 +40932,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"nXK" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "nXP" = ( /obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -41004,6 +41087,23 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"oba" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow{ + pixel_x = 13; + pixel_y = 1 + }, +/obj/item/flashlight/lamp{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 15; + pixel_y = 7 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "obb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41024,6 +41124,10 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"obk" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "obq" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -41075,16 +41179,6 @@ /obj/machinery/computer/records/security, /turf/open/floor/iron, /area/station/security/brig/entrance) -"ocZ" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) "odh" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/open/floor/plating, @@ -41094,11 +41188,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"odr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/sorting) "odD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/table/wood, @@ -41168,14 +41257,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"oeT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "oeW" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -41216,6 +41297,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) +"ogq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ogr" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -41360,12 +41450,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs) -"ohN" = ( -/obj/item/radio/intercom/directional/north, -/obj/machinery/firealarm/directional/west, -/obj/machinery/vending/cytopro, -/turf/open/floor/iron/white, -/area/station/science/cytology) "oig" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -41381,6 +41465,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"oim" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/sign/warning/no_smoking/directional/east, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ois" = ( /obj/effect/turf_decal/siding/white{ dir = 6 @@ -41404,17 +41495,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"oiO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/cargo/storage) "oiP" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -41498,6 +41578,21 @@ /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"okL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "okW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41582,18 +41677,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/white/corner, /area/station/science/xenobiology) -"omZ" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "ona" = ( /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) @@ -41677,12 +41760,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) -"ooB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ooK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -41903,10 +41980,6 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) -"osB" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/sorting) "osP" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -41965,9 +42038,6 @@ dir = 1 }, /area/station/command/corporate_suite) -"ouk" = ( -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/lobby) "oul" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_2, @@ -42166,31 +42236,20 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"oxo" = ( -/obj/effect/turf_decal/stripes{ +"oxt" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ +/obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, -/obj/effect/turf_decal/stripes{ - dir = 8 - }, -/obj/machinery/door/airlock/mining{ - name = "Bitrunning Den" +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/smooth_half{ - dir = 1 - }, -/area/station/cargo/bitrunning/den) +/turf/open/floor/iron, +/area/station/cargo/sorting) "oyn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/public/glass{ @@ -42202,6 +42261,11 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"oyv" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "oyz" = ( /obj/structure/flora/grass/jungle/b/style_3, /obj/effect/turf_decal/weather/dirt{ @@ -42210,6 +42274,13 @@ /obj/structure/cable, /turf/open/floor/grass, /area/station/service/chapel) +"oyH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/storage) "oyQ" = ( /turf/closed/wall, /area/station/science/auxlab/firing_range) @@ -42331,6 +42402,20 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"oBO" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/airlock_controller/incinerator_atmos{ + pixel_x = -40; + pixel_y = -8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "oBP" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -42501,6 +42586,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"oEL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "oFc" = ( /obj/effect/spawner/random/trash, /obj/machinery/light/small/directional/west, @@ -42874,6 +42968,12 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) +"oLE" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "oLV" = ( /obj/machinery/camera/autoname/directional/south, /obj/structure/cable, @@ -42888,23 +42988,6 @@ /mob/living/basic/slime, /turf/open/floor/engine, /area/station/science/xenobiology) -"oMJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/mining/glass{ - name = "Delivery Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/cargo/sorting) "oNd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/blue/corner{ @@ -42950,6 +43033,11 @@ dir = 8 }, /area/station/science/research) +"oNQ" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/office) "oNX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42965,6 +43053,13 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"oOf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "oOg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, @@ -42987,6 +43082,14 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"oOm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/east, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "oOp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/east, @@ -43062,20 +43165,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"oPh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "oPj" = ( /turf/open/floor/engine/plasma, /area/station/engineering/atmos) @@ -43159,6 +43248,16 @@ /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/atmos/pumproom) +"oQP" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oRj" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -43278,6 +43377,12 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"oSB" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "oTf" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -43465,18 +43570,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/execution/transfer) -"oVQ" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/wrapping_paper{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "oVW" = ( /obj/effect/turf_decal/weather/dirt{ dir = 5 @@ -43557,10 +43650,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"oYf" = ( -/obj/machinery/button/ignition/incinerator/atmos, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) "oYi" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -43666,15 +43755,18 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"paf" = ( +"oZZ" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/turf/open/floor/iron/dark/side{ - dir = 8 +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 }, -/area/station/cargo/storage) +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "pan" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -43793,6 +43885,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"pbV" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "pca" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -43932,6 +44030,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"peE" = ( +/obj/structure/closet, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "peN" = ( /obj/structure/lattice, /obj/machinery/camera/motion/directional/north{ @@ -44055,14 +44157,6 @@ /obj/item/kirbyplants/fern, /turf/open/floor/iron/white, /area/station/science/cytology) -"pgA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool/directional/east, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "phd" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -44380,6 +44474,12 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) +"pmD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "pmE" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44397,13 +44497,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"pmP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/cargo/lobby) "pnf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44451,11 +44544,6 @@ /obj/structure/flora/bush/jungle/c/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"pnO" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "pnQ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -44490,17 +44578,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) -"poi" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/item/banner/cargo, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "pot" = ( /obj/structure/table/wood, /obj/item/cigarette/cigar/premium{ @@ -44610,6 +44687,16 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"ppP" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ppQ" = ( /obj/effect/turf_decal/stripes/box, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -44669,10 +44756,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"prd" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "prf" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -44825,6 +44908,18 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) +"ptO" = ( +/obj/structure/sign/poster/official/random/directional/east, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/obj/item/aquarium_kit, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "ptX" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44834,14 +44929,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"pua" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, +"puk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, /area/station/cargo/lobby) "pus" = ( /obj/effect/turf_decal/box/red/corners, @@ -44857,19 +44947,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"puP" = ( -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/cargo/lobby) -"puQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/sorting) "pvi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44883,15 +44960,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"pvt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "pvC" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -44999,21 +45067,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"pyG" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/sign/warning/no_smoking/directional/east, -/turf/open/floor/iron, -/area/station/cargo/lobby) -"pyY" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/airlock{ - name = "Cargo Maintenance" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pzb" = ( /obj/effect/turf_decal/trimline/blue/corner{ dir = 1 @@ -45025,6 +45078,13 @@ "pzd" = ( /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) +"pzk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -45136,6 +45196,22 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"pBo" = ( +/obj/structure/table/wood, +/obj/item/folder/white{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "pBu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -45573,6 +45649,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) +"pIg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "pIn" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -45582,6 +45668,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"pIo" = ( +/obj/machinery/computer/order_console/bitrunning{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/bitrunning/den) "pIp" = ( /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -45628,14 +45720,6 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron, /area/station/cargo/storage) -"pJo" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/holopad, -/mob/living/basic/chick/permanent{ - name = "Morgan" - }, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "pJr" = ( /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, @@ -45698,20 +45782,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"pKO" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "pKR" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 4 @@ -45836,23 +45906,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"pMC" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/invisible{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/north, -/obj/item/storage/photo_album/library, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "pMM" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -45872,6 +45925,26 @@ }, /turf/open/floor/plating, /area/station/engineering/gravity_generator) +"pMX" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"pNa" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "pNh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45919,13 +45992,6 @@ }, /turf/closed/wall, /area/station/commons/fitness/locker_room) -"pOc" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "pOi" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46155,6 +46221,10 @@ /obj/effect/mapping_helpers/airlock/access/any/security/general, /turf/open/floor/iron/textured_half, /area/station/security/checkpoint/customs/auxiliary) +"pRO" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "pRQ" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, @@ -46195,16 +46265,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"pSt" = ( -/obj/structure/sign/poster/random/directional/south, -/obj/machinery/conveyor{ - id = "mining"; - dir = 10 - }, -/obj/machinery/bouldertech/refinery, -/obj/structure/sign/poster/random/directional/east, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "pSB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/tank/air{ @@ -46273,6 +46333,12 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"pTK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine/atmos) "pTZ" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -46367,11 +46433,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pVk" = ( -/obj/effect/spawner/structure/window, -/obj/structure/curtain/bounty/start_closed, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pVq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/neutral/line{ @@ -46416,6 +46477,12 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"pVV" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/lobby) "pWl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46652,6 +46719,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"pZt" = ( +/obj/structure/chair/stool/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "pZv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -46662,6 +46734,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"pZC" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/sign/poster/official/tactical_game_cards/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "pZK" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46821,13 +46909,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"qcJ" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "qcQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46854,19 +46935,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"qdH" = ( -/obj/structure/chair/office{ +"qdL" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, -/obj/effect/landmark/start/cargo_technician, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/office) +/obj/machinery/fishing_portal_generator, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qdM" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -46935,24 +47014,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/security/prison/workout) -"qet" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"qeM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "qeP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47075,15 +47136,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"qgK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"qgX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/kirbyplants/random, -/obj/machinery/firealarm/directional/south, -/obj/item/storage/belt/utility, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"qgZ" = ( +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "qhh" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -47102,25 +47165,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"qht" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "CO2 to Pure" - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"qhA" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "qhD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47150,6 +47194,15 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"qhU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "qhV" = ( /obj/structure/table, /obj/machinery/fax{ @@ -47338,14 +47391,13 @@ /obj/machinery/power/terminal, /turf/open/floor/iron/smooth_large, /area/station/engineering/supermatter/room) -"qks" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/junction{ - dir = 4 +"qkC" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/cargo/office) "qkK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -47496,6 +47548,16 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"qnU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "qoj" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/window/right/directional/west{ @@ -47510,12 +47572,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/space/nearstation) -"qou" = ( -/obj/structure/hedge, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "qow" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -47563,11 +47619,6 @@ /obj/structure/steam_vent, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"qpv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "qpO" = ( /obj/structure/chair{ dir = 1 @@ -47591,6 +47642,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"qqB" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "qqC" = ( /obj/structure/chair/comfy/carp{ dir = 1 @@ -47629,6 +47693,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) +"qrJ" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"qrW" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "qsg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal, @@ -47684,18 +47757,6 @@ "qtd" = ( /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"qti" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "qtE" = ( /obj/structure/bed{ dir = 4 @@ -47720,6 +47781,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"qtW" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access = list("library") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "quq" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/closet/crate/cardboard, @@ -47862,15 +47933,6 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/port) -"qxc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "qxi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47894,15 +47956,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/server) -"qxF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/break_room) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -47957,20 +48010,23 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"qyE" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "qyN" = ( /obj/structure/railing, /turf/open/space/basic, /area/space/nearstation) -"qyQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/status_display/supply{ - pixel_x = -2; - pixel_y = 32 - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/cargo/storage) "qyT" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) @@ -48082,11 +48138,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"qzW" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qAj" = ( /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron, @@ -48247,25 +48298,34 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"qCF" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/rack, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 +"qCG" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -8; - pixel_y = 11 +/obj/structure/table, +/obj/structure/railing{ + dir = 9 }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 4; - pixel_y = 6 +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio"; + pixel_x = -4; + pixel_y = 10 }, -/obj/item/pickaxe, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 15; + pixel_y = 8 + }, +/obj/effect/spawner/random/food_or_drink/donuts{ + pixel_x = 8; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/lobby) "qCJ" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -48387,23 +48447,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"qDL" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "qDN" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/status_display/evac/directional/west, @@ -48676,12 +48719,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"qJe" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "qJq" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -48711,14 +48748,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"qJW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qKe" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green, @@ -48726,29 +48755,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"qKh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/spawner/random/structure/steam_vent, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qKt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"qKw" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Filing Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/lobby) "qKx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48881,9 +48893,27 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/department/electrical) +"qMI" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/cargo/storage) "qMK" = ( /turf/closed/wall, /area/station/command/bridge) +"qMM" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "qMP" = ( /obj/structure/closet/firecloset, /obj/structure/sign/poster/official/random/directional/north, @@ -48938,11 +48968,6 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"qOs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "qOG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -49120,12 +49145,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"qRT" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "qRU" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 8 @@ -49176,6 +49195,12 @@ /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"qSF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qSH" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/crate, @@ -49252,16 +49277,11 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/cargo/boutique) -"qTU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) +"qTS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qUa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49628,23 +49648,17 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/small, /area/station/security/tram) -"qYr" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 8 +"qYq" = ( +/obj/machinery/door/airlock/wood{ + desc = "Sessions held every Friday."; + name = "The Sunfinder Society" }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "qYv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -49677,6 +49691,12 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"qYG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "qYK" = ( /obj/structure/disposalpipe/trunk, /obj/structure/window/reinforced/spawner/directional/west, @@ -49769,6 +49789,26 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"qZX" = ( +/obj/effect/decal/cleanable/molten_object, +/obj/effect/landmark/event_spawn, +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/welding_fuel{ + pixel_y = -3; + pixel_x = 13 + }, +/obj/item/stack/sheet/iron/ten{ + pixel_y = -6; + pixel_x = -2 + }, +/obj/item/hand_labeler{ + pixel_y = -15 + }, +/obj/item/reagent_containers/cup/watering_can{ + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "raf" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -49794,16 +49834,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"raK" = ( -/obj/machinery/computer/cargo{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "raL" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 1 @@ -49883,6 +49913,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rbT" = ( +/obj/effect/landmark/navigate_destination/cargo, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rbW" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -49960,22 +49998,6 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"rdr" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/radio/intercom/directional/east, -/obj/machinery/camera/autoname/directional/south, -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "rds" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -50047,15 +50069,6 @@ "reh" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/lab) -"rei" = ( -/obj/structure/disposalpipe/segment, -/obj/item/food/grown/pineapple{ - pixel_x = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "rej" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -50067,6 +50080,24 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"rev" = ( +/obj/machinery/requests_console/directional/south{ + department = "Security"; + name = "Security Requests Console" + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/radio/off{ + pixel_x = -6 + }, +/obj/machinery/recharger{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "rex" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/effect/decal/cleanable/dirt, @@ -50166,6 +50197,11 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/glass, /area/station/command/heads_quarters/rd) +"rfP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "rfT" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 5 @@ -50269,6 +50305,12 @@ /obj/structure/chair/office, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"rhF" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "rhH" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -50464,6 +50506,14 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"rmc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) "rmk" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/jungle/c/style_3{ @@ -50515,15 +50565,6 @@ }, /turf/open/floor/plating, /area/station/medical/chemistry) -"rnS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/wood, -/area/station/service/chapel/office) "rnV" = ( /obj/structure/cable, /turf/open/floor/iron/showroomfloor, @@ -50669,16 +50710,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"rrj" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/quartermaster, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "rro" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -50709,6 +50740,12 @@ }, /turf/open/floor/iron/small, /area/station/engineering/atmos/pumproom) +"rrJ" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "rrQ" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/half/contrasted, @@ -50806,13 +50843,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"rtg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/table, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rth" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50826,6 +50856,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) +"rtH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/cargo/storage) "rtI" = ( /turf/open/floor/iron/white/corner{ dir = 8 @@ -50908,33 +50949,6 @@ "ruD" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"ruK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2"; - name = "Sort and Deliver"; - pixel_x = 8; - pixel_y = 12 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"ruR" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "ruS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50948,10 +50962,6 @@ "ruY" = ( /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"rvk" = ( -/obj/effect/spawner/random/structure/closet_empty/crate, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "rvp" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/hallway/abandoned_command) @@ -51210,6 +51220,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"ryX" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #1" + }, +/obj/effect/turf_decal/delivery, +/mob/living/simple_animal/bot/mulebot, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/storage) "rza" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -51259,6 +51279,17 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"rzX" = ( +/obj/structure/hedge, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "rzZ" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -51413,18 +51444,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"rDc" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/yellow{ - dir = 4 - }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_y = 6 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/break_room) "rDj" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -51435,6 +51454,14 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"rDs" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Filing Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "rDv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/west, @@ -51514,6 +51541,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rEV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison/garden) "rEW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -51546,6 +51578,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rFm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rFn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral, @@ -51563,6 +51601,17 @@ dir = 4 }, /area/station/science/ordnance/testlab) +"rFv" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "rFy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -51594,6 +51643,12 @@ dir = 6 }, /area/station/science/research) +"rFU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "rFV" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, @@ -51751,6 +51806,30 @@ }, /turf/open/floor/grass, /area/station/science/xenobiology) +"rJB" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/photocopier, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) +"rJL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"rJQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "rJW" = ( /obj/machinery/suit_storage_unit/hos, /obj/effect/decal/cleanable/dirt, @@ -51764,6 +51843,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rKn" = ( +/obj/structure/cable, +/obj/item/banner/cargo, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -51809,6 +51893,13 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"rLp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "rLr" = ( /obj/machinery/door/poddoor/incinerator_ordmix, /turf/open/floor/engine/vacuum, @@ -51973,13 +52064,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"rOf" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "rOG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -52064,9 +52148,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) -"rPI" = ( -/turf/open/floor/iron, -/area/station/cargo/sorting) "rPL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -52074,6 +52155,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"rPM" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) "rPT" = ( /obj/structure/chair/stool/bar/directional/east, /obj/effect/turf_decal/siding/red/corner{ @@ -52136,22 +52226,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, /turf/open/floor/iron/dark/small, /area/station/medical/pharmacy) -"rQJ" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) "rQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -52187,6 +52261,17 @@ dir = 1 }, /area/station/security/courtroom) +"rRl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/quartermaster, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "rRq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -52206,15 +52291,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/courtroom) -"rRO" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "rRQ" = ( /obj/structure/hedge, /obj/item/radio/intercom/directional/south, @@ -52274,6 +52350,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"rSM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "rST" = ( /turf/closed/wall, /area/station/cargo/storage) @@ -52373,13 +52458,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"rUX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "rVj" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/cold/directional/north, @@ -52459,6 +52537,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"rWa" = ( +/obj/structure/closet, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "rWm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52506,6 +52589,13 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/ce) +"rWK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red/corner, +/turf/open/floor/iron, +/area/station/cargo/storage) "rWM" = ( /obj/structure/table, /obj/item/exodrone{ @@ -52540,6 +52630,19 @@ dir = 1 }, /area/station/cargo/bitrunning/den) +"rWR" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + name = "Science Deliveries" + }, +/obj/structure/sign/departments/science/directional/north, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/plasticflaps{ + name = "Science Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "rWU" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -52613,13 +52716,6 @@ /obj/structure/flora/bush/flowers_yw/style_3, /turf/open/floor/grass, /area/station/service/chapel) -"rYt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/white, -/area/station/science/cytology) "rYx" = ( /obj/effect/turf_decal/siding/wideplating/dark, /obj/structure/cable, @@ -52728,9 +52824,6 @@ /obj/item/clothing/glasses/eyepatch/medical, /turf/open/floor/carpet/orange, /area/station/commons/dorms) -"rZV" = ( -/turf/open/floor/iron, -/area/station/cargo/lobby) "saq" = ( /obj/machinery/camera/directional/east{ c_tag = "Atmospherics Tank - Toxins" @@ -52881,19 +52974,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"sdJ" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - name = "Science Deliveries" - }, -/obj/structure/sign/departments/science/directional/north, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/structure/plasticflaps{ - name = "Science Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "sdZ" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -52911,12 +52991,6 @@ /obj/effect/turf_decal/siding/white/corner, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"sec" = ( -/obj/machinery/vending/wardrobe/chap_wardrobe, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "seq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, @@ -53015,6 +53089,14 @@ dir = 8 }, /area/station/engineering/main) +"sfL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/cargo/sorting) "sge" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/item/clothing/head/costume/festive, @@ -53113,6 +53195,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/xenobiology) +"sjn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "sjp" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -53158,6 +53252,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"sjX" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) "sjY" = ( /obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{ dir = 4 @@ -53292,16 +53391,6 @@ "slY" = ( /turf/closed/wall, /area/station/maintenance/port/fore) -"slZ" = ( -/obj/structure/closet/secure_closet/detective, -/obj/machinery/requests_console/directional/north{ - department = "Detective's Office"; - name = "Detective Requests Console" - }, -/obj/machinery/light/small/directional/west, -/obj/structure/detectiveboard/directional/west, -/turf/open/floor/wood, -/area/station/security/detectives_office) "smf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53495,6 +53584,23 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"spA" = ( +/obj/structure/table, +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/snack/lizard{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/office) "spH" = ( /obj/machinery/door/firedoor, /turf/open/floor/iron/small, @@ -53548,14 +53654,6 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sqq" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/departments/cargo/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "sqz" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -53575,15 +53673,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"sqM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/office) "sqV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/sofa/bench/left{ @@ -53622,9 +53711,6 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/port/greater) -"srw" = ( -/turf/closed/wall/r_wall/rust, -/area/station/maintenance/department/electrical) "srx" = ( /obj/machinery/power/port_gen/pacman, /obj/effect/turf_decal/bot{ @@ -53685,11 +53771,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"ssj" = ( -/obj/item/kirbyplants/random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/station/service/chapel/office) "sso" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -53711,17 +53792,6 @@ }, /turf/open/floor/wood/tile, /area/station/science/lower) -"ssw" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/chair{ - dir = 4; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "ssz" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/science/xenobiology) @@ -53963,13 +54033,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"swr" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "swu" = ( /turf/open/floor/wood, /area/station/security/detectives_office) @@ -54079,6 +54142,16 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"sxQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "sxT" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -54172,12 +54245,37 @@ }, /turf/open/floor/wood, /area/station/service/chapel) +"sAy" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "sBm" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"sBn" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "sBq" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/closet/l3closet/janitor, @@ -54364,6 +54462,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"sEd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "sEn" = ( /obj/item/clothing/head/cone, /obj/item/clothing/head/cone{ @@ -54529,6 +54633,9 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"sHW" = ( +/turf/closed/wall, +/area/station/maintenance/hallway/abandoned_recreation) "sHX" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 6 @@ -54568,10 +54675,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"sJf" = ( -/obj/structure/water_source/puddle, -/turf/open/misc/asteroid, -/area/station/maintenance/starboard/greater) "sJg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/door/airlock/command{ @@ -54617,12 +54720,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"sJJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/qm) "sJL" = ( /obj/structure/table, /obj/effect/turf_decal/siding{ @@ -54653,6 +54750,18 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"sKh" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) +"sKj" = ( +/obj/machinery/light/warm/directional/east, +/obj/effect/turf_decal/tile/brown/anticorner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "sKk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54706,6 +54815,24 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/small, /area/station/security/warden) +"sKO" = ( +/obj/structure/table, +/obj/item/disk/cargo{ + pixel_x = 6 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = -3; + pixel_y = 11 + }, +/obj/item/pen{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "sKS" = ( /obj/structure/sign/poster/official/pda_ad/directional/north, /obj/structure/tank_holder/extinguisher, @@ -54713,20 +54840,6 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"sKT" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = -3 - }, -/obj/item/clothing/gloves/cargo_gauntlet, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 3 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/cargo/storage) "sLB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -55120,6 +55233,10 @@ dir = 8 }, /area/station/science/lobby) +"sRs" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "sRD" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -55240,6 +55357,16 @@ /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/circuit, /area/station/tcommsat/server) +"sTN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/obj/structure/destructible/cult/item_dispenser/archives/library, +/obj/item/book/codex_gigas, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "sTR" = ( /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -55367,6 +55494,20 @@ "sVN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) +"sVQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/cargo/storage) "sWc" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/chem_master, @@ -55401,6 +55542,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/cytology) +"sXj" = ( +/obj/machinery/air_sensor/mix_tank, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "sXm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -55601,16 +55746,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"sZy" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "sZA" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/bush/flowers_pp/style_2, @@ -55799,11 +55934,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"tcn" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tcz" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -56008,18 +56138,13 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"tfx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) +"tfj" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "tfy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red{ @@ -56222,6 +56347,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"tjg" = ( +/obj/machinery/atmospherics/components/binary/pump/off{ + name = "O2 To Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tjj" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) @@ -56252,6 +56386,12 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"tki" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "tkm" = ( /obj/structure/window/spawner/directional/west, /obj/structure/flora/bush/large/style_random{ @@ -56303,6 +56443,9 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tlG" = ( +/turf/closed/wall, +/area/station/cargo/lobby) "tlI" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/flora/rock/pile/jungle/style_random, @@ -56563,12 +56706,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/noslip, /area/station/security/tram) -"tpF" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "tpG" = ( /obj/structure/closet/athletic_mixed, /obj/effect/turf_decal/stripes/red/line{ @@ -56630,12 +56767,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"tqn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "tqo" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -56683,6 +56814,12 @@ dir = 1 }, /area/station/hallway/secondary/dock) +"tri" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "trp" = ( /turf/closed/wall, /area/station/maintenance/port/aft) @@ -56726,6 +56863,28 @@ /obj/structure/sign/departments/aiupload/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"tsk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"tsl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "tst" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -56762,10 +56921,6 @@ /obj/structure/flora/grass/jungle/b/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"ttd" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tts" = ( /obj/structure/altar_of_gods, /obj/item/book/bible, @@ -56836,6 +56991,14 @@ /obj/item/stack/sheet/glass/fifty, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"tuw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tux" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57337,6 +57500,15 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) +"tBE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tCh" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/red, @@ -57501,13 +57673,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tFe" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "tFs" = ( /obj/structure/table/glass, /obj/item/storage/medkit/regular{ @@ -57605,19 +57770,19 @@ /mob/living/carbon/human/species/monkey/punpun, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"tHo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "tHp" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/security/tram) -"tHv" = ( -/obj/structure/rack, -/obj/item/storage/medkit/regular, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/cargo/storage) "tHK" = ( /turf/closed/wall, /area/station/security/prison/shower) @@ -57627,13 +57792,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"tHV" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 10 - }, -/obj/structure/flora/tree/jungle/style_2, -/turf/open/floor/grass, -/area/station/service/chapel) "tIa" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair{ @@ -57642,19 +57800,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/security/brig/entrance) -"tIk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) -"tIn" = ( -/obj/machinery/light/warm/directional/east, -/obj/effect/turf_decal/tile/brown/anticorner{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) "tIz" = ( /obj/structure/chair/wood{ dir = 8 @@ -57746,6 +57891,20 @@ "tJX" = ( /turf/open/floor/plating, /area/station/maintenance/aft) +"tJY" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/supply{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "tKa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -58016,6 +58175,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"tOu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "tOw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -58117,6 +58282,11 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) +"tQn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/official/no_erp/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "tQr" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -58181,6 +58351,16 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/security/courtroom) +"tRm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tRw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -58240,17 +58420,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"tSY" = ( -/obj/structure/chair/sofa/bench/left{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) "tTg" = ( /obj/structure/table, /obj/item/trash/cheesie{ @@ -58261,12 +58430,6 @@ /obj/item/storage/fancy/donut_box, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"tTl" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/light/small/directional/north, -/obj/structure/mirror/directional/north, -/turf/open/floor/iron/grimy, -/area/station/cargo/boutique) "tTp" = ( /obj/structure/cable, /obj/effect/turf_decal/caution/stand_clear/red{ @@ -58410,14 +58573,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"tVb" = ( -/obj/machinery/airalarm/directional/north, -/obj/item/kirbyplants/organic/applebush{ - pixel_y = 5 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "tVc" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One"; @@ -58508,13 +58663,6 @@ /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"tXc" = ( -/obj/machinery/light/cold/directional/west, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "tXl" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/table/bronze, @@ -58829,9 +58977,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/project) -"uct" = ( -/turf/open/floor/engine/vacuum, -/area/station/engineering/atmos) "ucy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/red{ @@ -58856,6 +59001,13 @@ }, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"ucO" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "ucR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ @@ -59030,6 +59182,20 @@ }, /turf/open/floor/iron/textured_large, /area/station/command/heads_quarters/hop) +"ueL" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "ueP" = ( /obj/machinery/camera/directional/east{ c_tag = "Atmospherics Tank - Air" @@ -59137,13 +59303,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"ugt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "ugA" = ( /obj/effect/turf_decal/siding/yellow{ dir = 1 @@ -59267,14 +59426,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"uic" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply, -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/turf/open/floor/plating, -/area/station/cargo/miningfoundry) "uid" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59297,14 +59448,6 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"uin" = ( -/obj/structure/disposalpipe/segment, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/qm) "uiw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59325,6 +59468,31 @@ }, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"uiK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine/atmos) +"uiO" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 10 + }, +/obj/structure/sign/poster/official/the_owl/directional/west, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "uiS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59333,15 +59501,13 @@ dir = 1 }, /area/station/science/research) -"uiT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +"uiU" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) +/turf/open/floor/plating, +/area/station/cargo/office) "uiY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59587,6 +59753,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"umL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "unc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59602,6 +59776,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"unG" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "unK" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -59666,19 +59846,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/port) -"upo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "upr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59703,6 +59870,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/primary/starboard) +"upF" = ( +/obj/structure/table, +/obj/item/toy/eightball{ + pixel_x = -4 + }, +/obj/item/wirecutters{ + pixel_y = 17; + pixel_x = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "upG" = ( /obj/structure/railing, /obj/structure/cable, @@ -59712,6 +59890,12 @@ dir = 4 }, /area/station/command/heads_quarters/ce) +"upM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "upP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59965,12 +60149,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"usi" = ( -/obj/structure/dresser, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "usF" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/easel, @@ -60042,6 +60220,25 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"uur" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/storage/wallet{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/lighter{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/machinery/light/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "uuz" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -60052,6 +60249,15 @@ /obj/machinery/camera/directional/west, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"uuA" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "uuS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/blue{ @@ -60124,6 +60330,14 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"uwO" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Supply Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/commons/storage/tools) "uxJ" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/machinery/door/firedoor, @@ -60173,12 +60387,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/aft) -"uzG" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "uzJ" = ( /turf/open/floor/iron, /area/station/cargo/storage) @@ -60241,11 +60449,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/tile, /area/station/command/bridge) -"uAN" = ( -/obj/structure/closet, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -60342,17 +60545,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) -"uBT" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/stripes/end, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/cargo/sorting) "uBY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, @@ -60535,12 +60727,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"uEU" = ( -/obj/effect/spawner/structure/window, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/command/heads_quarters/qm) "uEZ" = ( /obj/effect/turf_decal/siding/wideplating, /obj/effect/turf_decal/siding/wideplating{ @@ -60774,6 +60960,23 @@ /obj/item/assault_pod/mining, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"uHE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/mining/glass{ + name = "Delivery Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/cargo/sorting) "uHF" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /obj/machinery/door/airlock{ @@ -60799,19 +61002,6 @@ dir = 1 }, /area/station/service/chapel/office) -"uHK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse_aft"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -23; - req_access = list("cargo") - }, -/obj/machinery/light/small/dim/directional/west, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "uHR" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -60849,6 +61039,16 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"uIG" = ( +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "uIP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60902,6 +61102,27 @@ /obj/machinery/shieldgen, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"uJI" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/landmark/start/quartermaster, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) +"uJV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "uKh" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/bot, @@ -60967,6 +61188,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/rust, /area/station/engineering/main) +"uLz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "uLD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61011,10 +61241,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/secondary/service) -"uMj" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/maintenance/port/greater) "uMl" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -61142,11 +61368,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"uOA" = ( -/obj/structure/cable, -/obj/item/banner/cargo, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "uOH" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, @@ -61157,6 +61378,18 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"uPf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "uPr" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/bot, @@ -61229,6 +61462,17 @@ "uQo" = ( /turf/open/floor/engine/air, /area/station/engineering/atmos) +"uQt" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Quartermaster's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/heads_quarters/qm) "uQu" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/status_display/door_timer{ @@ -61303,24 +61547,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"uRB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) "uRF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -61389,6 +61615,14 @@ /obj/effect/landmark/navigate_destination/tcomms, /turf/open/floor/iron, /area/station/science/lower) +"uSM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "uSN" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -61405,14 +61639,6 @@ }, /turf/open/floor/iron/textured_half, /area/station/commons/storage/art) -"uSQ" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/cargo/storage) "uTb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/table/glass, @@ -61491,6 +61717,36 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"uUq" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/dest_tagger{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) +"uUz" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/light_switch/directional/east, +/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "uUA" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -61534,6 +61790,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"uVB" = ( +/obj/item/kirbyplants/organic/plant17, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/calendar{ + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "uVD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/airalarm/directional/east, @@ -61556,12 +61823,6 @@ "uVT" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hop) -"uVU" = ( -/obj/structure/chair/stool/directional/west, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/wood, -/area/station/maintenance/hallway/abandoned_recreation) "uWe" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -61730,13 +61991,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"uZs" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "uZA" = ( /obj/structure/chair{ dir = 1; @@ -62195,6 +62449,15 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"vgL" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/binary/volume_pump, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "vgN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -62310,14 +62573,6 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"viM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "viP" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/small, @@ -62366,6 +62621,15 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"vjs" = ( +/obj/structure/disposalpipe/segment, +/obj/item/food/grown/pineapple{ + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "vjI" = ( /obj/machinery/door/airlock{ name = "Bathrooms" @@ -62373,13 +62637,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) -"vjL" = ( -/obj/machinery/vending/wardrobe/cargo_wardrobe, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "vkh" = ( /turf/closed/wall, /area/station/service/bar) @@ -62448,6 +62705,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/command/heads_quarters/qm) +"vkR" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "vkS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62798,15 +63066,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) -"vpl" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "vpq" = ( /obj/machinery/door/poddoor/massdriver_ordnance, /obj/effect/turf_decal/stripes/end, @@ -63003,6 +63262,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"vse" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "vsf" = ( /obj/structure/closet/crate{ name = "Materials Crate" @@ -63176,14 +63440,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"vuN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "vuR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63265,15 +63521,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"vvB" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/cargo/storage) "vvC" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, @@ -63311,12 +63558,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"vvZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "vwc" = ( /obj/structure/chair/comfy/brown{ buildstackamount = 0; @@ -63436,18 +63677,6 @@ "vxt" = ( /turf/closed/wall, /area/station/maintenance/department/engine) -"vxA" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) "vxM" = ( /turf/open/floor/iron, /area/station/commons/storage/art) @@ -63550,6 +63779,10 @@ /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"vzD" = ( +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/dark/side, +/area/station/cargo/storage) "vzE" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/west, @@ -63726,12 +63959,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"vCo" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "vCp" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 1 @@ -63753,10 +63980,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"vCK" = ( -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/iron/dark/corner, -/area/station/cargo/storage) "vCO" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -63784,26 +64007,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"vDg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 1; - id = "packageSort2" - }, -/obj/machinery/door/window/left/directional/west{ - name = "Crate Security Door"; - req_access = list("shipping") - }, -/turf/open/floor/plating, -/area/station/cargo/sorting) "vDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63830,23 +64033,12 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/lockers) -"vDS" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "vDV" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) "vDX" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) -"vDY" = ( -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "vEa" = ( /obj/machinery/griddle, /turf/open/floor/iron/kitchen/small, @@ -64057,12 +64249,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) -"vHm" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "vHu" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -64095,15 +64281,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/engine, /area/station/science/xenobiology) -"vHU" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, -/turf/open/floor/iron/smooth_half{ - dir = 8 - }, -/area/station/maintenance/department/engine/atmos) "vHV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -64122,15 +64299,6 @@ }, /turf/open/floor/wood, /area/station/engineering/atmos/office) -"vIb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "vId" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64214,6 +64382,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"vJE" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/hallway/primary/port) "vJG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -64672,6 +64847,10 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) +"vRc" = ( +/obj/effect/turf_decal/loading_area/white, +/turf/open/floor/iron, +/area/station/cargo/lobby) "vRd" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, @@ -64703,23 +64882,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"vRH" = ( -/obj/structure/table, -/obj/machinery/light/warm/directional/south, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/spawner/random/food_or_drink/snack/lizard{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ - pixel_x = -5; - pixel_y = 7 - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/office) "vSg" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) @@ -64739,6 +64901,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vSn" = ( +/obj/structure/hedge, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "vSt" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 4 @@ -64801,9 +64974,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) -"vTb" = ( -/turf/closed/wall, -/area/station/security/checkpoint/supply) "vTf" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 9 @@ -64921,11 +65091,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"vUr" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) "vUz" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -65095,6 +65260,14 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"vWy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/departments/cargo/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vWA" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/firealarm/directional/south, @@ -65175,6 +65348,15 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/security/prison/rec) +"vXv" = ( +/obj/structure/table, +/obj/item/toy/foamblade, +/obj/item/analyzer{ + pixel_y = 8; + pixel_x = -9 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "vXy" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/white/corner{ @@ -65296,38 +65478,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"vZf" = ( -/obj/structure/table, -/obj/item/disk/cargo{ - pixel_x = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_x = -3; - pixel_y = 11 - }, -/obj/item/pen{ - pixel_x = -9; - pixel_y = 0 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) -"vZg" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/structure/hedge, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating_new/end{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "vZm" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -65358,6 +65508,11 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"vZS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "vZW" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -65412,11 +65567,6 @@ /obj/machinery/vending/games, /turf/open/floor/wood/parquet, /area/station/service/library) -"waJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "waN" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -65428,24 +65578,6 @@ /obj/structure/bookcase/random/religion, /turf/open/floor/wood, /area/station/service/chapel/office) -"waT" = ( -/obj/structure/railing{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/conveyor_switch/oneway{ - pixel_x = 4; - pixel_y = 10; - id = "mining" - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "waX" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65490,6 +65622,15 @@ dir = 1 }, /area/station/science/lower) +"wbt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "wbH" = ( /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, @@ -65619,20 +65760,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"wdG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wdS" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 4 @@ -65640,12 +65767,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/circuit, /area/station/tcommsat/server) -"wdV" = ( -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/lobby) "wdY" = ( /obj/effect/spawner/random/structure/table, /turf/open/floor/plating, @@ -65804,6 +65925,13 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"whg" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "whl" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/stripes/line{ @@ -65896,6 +66024,14 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"wie" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "win" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65929,14 +66065,6 @@ "wja" = ( /turf/closed/wall/r_wall, /area/station/commons/toilet/auxiliary) -"wjj" = ( -/obj/structure/filingcabinet, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "wjq" = ( /obj/structure/sign/painting/large/library{ dir = 1 @@ -65947,13 +66075,6 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"wjw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/supermatter/room) "wjG" = ( /obj/structure/filingcabinet, /turf/open/floor/iron/dark/small, @@ -65995,13 +66116,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wkD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -66123,6 +66237,15 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/office) +"wnf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/elevatorshaft, +/area/station/engineering/break_room) "wnw" = ( /obj/machinery/pdapainter/engineering, /obj/effect/turf_decal/bot, @@ -66176,13 +66299,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"woh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "woi" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/fore) @@ -66253,6 +66369,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"woY" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "wpa" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -66280,10 +66405,6 @@ "wpO" = ( /turf/closed/wall/r_wall, /area/station/security/processing) -"wpP" = ( -/obj/machinery/skill_station, -/turf/open/floor/wood/parquet, -/area/station/service/library) "wqb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66297,17 +66418,18 @@ /obj/effect/mapping_helpers/requests_console/ore_update, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"wqd" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wqj" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) +"wqx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "wqz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, /turf/open/floor/engine, @@ -66413,15 +66535,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"wrV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "wrW" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -66503,6 +66616,14 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"wtd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse_aft"; + name = "Warehouse Shutters" + }, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "wte" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -66722,6 +66843,13 @@ /obj/structure/hedge, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"wvF" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "wvM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66734,13 +66862,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"wwc" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "wwk" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -66811,10 +66932,6 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/iron/cafeteria, /area/station/maintenance/starboard/fore) -"wxg" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wxu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -66824,6 +66941,34 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"wxJ" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"wxM" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/computer/order_console/cook{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) "wxR" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -66910,6 +67055,12 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron/dark, /area/station/science/genetics) +"wyG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "wyH" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -66948,15 +67099,10 @@ "wzv" = ( /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"wzB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, +"wzz" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, -/area/station/cargo/lobby) +/area/station/cargo/sorting) "wzF" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -67001,6 +67147,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"wAh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display/supply{ + pixel_x = -2; + pixel_y = 32 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "wAj" = ( /obj/structure/table/wood, /obj/machinery/computer/records/medical/laptop{ @@ -67053,16 +67209,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"wBj" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "wBm" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -67123,15 +67269,6 @@ /obj/machinery/computer/arcade/orion_trail/kobayashi, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) -"wCC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "wCH" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -67218,6 +67355,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"wDQ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/spawner/random/structure/steam_vent, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "wEf" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -67293,20 +67439,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wFo" = ( -/obj/structure/table/wood, -/obj/item/hand_labeler_refill{ - pixel_x = -4; - pixel_y = 26 - }, -/obj/structure/sign/poster/official/random/directional/south, -/obj/machinery/fax{ - fax_name = "Quartermaster's Office"; - name = "Quartermaster's Fax Machine"; - pixel_y = 7 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "wFq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -67454,16 +67586,6 @@ /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"wIk" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wIm" = ( /obj/machinery/door/airlock/hatch{ name = "Centcom Dock" @@ -67656,12 +67778,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wLv" = ( -/obj/machinery/light/floor, -/obj/structure/flora/bush/flowers_br, -/obj/structure/flora/bush/flowers_br/style_3, -/turf/open/floor/grass, -/area/station/hallway/primary/central/fore) "wLw" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ @@ -67699,14 +67815,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/library) -"wMy" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "wMz" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -67965,15 +68073,6 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"wOK" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "wOS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67983,26 +68082,6 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wOZ" = ( -/obj/effect/decal/cleanable/molten_object, -/obj/effect/landmark/event_spawn, -/obj/structure/table, -/obj/item/reagent_containers/cup/bottle/welding_fuel{ - pixel_y = -3; - pixel_x = 13 - }, -/obj/item/stack/sheet/iron/ten{ - pixel_y = -6; - pixel_x = -2 - }, -/obj/item/hand_labeler{ - pixel_y = -15 - }, -/obj/item/reagent_containers/cup/watering_can{ - pixel_y = 12 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "wPd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) @@ -68058,16 +68137,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"wPO" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "O2 to Airmix" - }, -/obj/machinery/light/no_nightlight/directional/north, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wPP" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 @@ -68107,14 +68176,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"wQd" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/siding/thinplating_new, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "wQi" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 @@ -68328,25 +68389,6 @@ /obj/effect/spawner/random/techstorage/engineering_all, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"wSQ" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #1" - }, -/obj/effect/turf_decal/delivery, -/mob/living/simple_animal/bot/mulebot, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron, -/area/station/cargo/storage) -"wST" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown/anticorner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "wSZ" = ( /turf/closed/wall/r_wall, /area/station/maintenance/hallway/abandoned_command) @@ -68484,24 +68526,6 @@ }, /turf/open/floor/wood, /area/station/hallway/primary/central/aft) -"wUF" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/supply{ - pixel_x = 0; - pixel_y = 32 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/cargo/lobby) -"wUH" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/station/service/chapel/office) "wUS" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/effect/turf_decal/stripes/line{ @@ -68520,6 +68544,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/ordnance/testlab) +"wVr" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "wVI" = ( /obj/machinery/biogenerator, /obj/machinery/light/small/dim/directional/north, @@ -68554,17 +68584,6 @@ dir = 1 }, /area/station/hallway/secondary/construction) -"wWA" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "wWD" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/landmark/start/hangover, @@ -68703,34 +68722,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"wYX" = ( -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/obj/structure/table, -/obj/structure/railing{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; - pixel_x = -4; - pixel_y = 10 - }, -/obj/item/reagent_containers/cup/glass/coffee{ - pixel_x = 15; - pixel_y = 8 - }, -/obj/effect/spawner/random/food_or_drink/donuts{ - pixel_x = 8; - pixel_y = 0 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/lobby) "wZa" = ( /obj/docking_port/stationary{ dir = 8; @@ -68814,12 +68805,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xah" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) "xam" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68956,6 +68941,13 @@ "xck" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/office) +"xco" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xcq" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -68978,6 +68970,22 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/grass, /area/station/service/hydroponics) +"xcA" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "xcF" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -69012,19 +69020,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"xdl" = ( -/obj/machinery/computer/piratepad_control/civilian{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) "xdo" = ( /obj/machinery/firealarm/directional/north, /obj/item/kirbyplants/random/fullysynthetic, @@ -69178,6 +69173,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/research) +"xeZ" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "xfa" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -69329,6 +69336,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"xgK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "xhk" = ( /obj/machinery/door/airlock/public/glass{ name = "Public Shrine" @@ -69339,6 +69361,15 @@ dir = 8 }, /area/station/hallway/primary/central/fore) +"xhC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xhD" = ( /obj/structure/table, /obj/item/clothing/shoes/ducky_shoes{ @@ -69356,16 +69387,6 @@ /obj/effect/landmark/navigate_destination/lawyer, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"xhL" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/supply, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "xhM" = ( /obj/structure/table, /obj/item/book/manual/wiki/tcomms, @@ -69467,6 +69488,20 @@ dir = 5 }, /area/station/science/lower) +"xjc" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/cargo/office) "xjg" = ( /turf/open/floor/iron/dark, /area/station/security/interrogation) @@ -69558,10 +69593,6 @@ "xkt" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) -"xkA" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "xkK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69910,23 +69941,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"xqr" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/cargo/sorting) "xqs" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/eighties/red, @@ -69985,6 +69999,17 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/robotics/augments) +"xrt" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "xru" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/airalarm/directional/east, @@ -70103,12 +70128,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"xsB" = ( -/obj/structure/cable, -/obj/item/reagent_containers/pill/maintenance, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "xsC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/extinguisher_cabinet/directional/west, @@ -70166,6 +70185,20 @@ dir = 4 }, /area/station/science/lobby) +"xsP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xsT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -70264,14 +70297,6 @@ "xul" = ( /turf/open/floor/iron, /area/station/maintenance/port/aft) -"xum" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/cargo/office) "xur" = ( /turf/closed/wall, /area/station/security/processing) @@ -70403,6 +70428,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"xvR" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "xvT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -70445,11 +70481,6 @@ /obj/structure/bed/maint, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"xwn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "xwr" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/recharge_station, @@ -70501,13 +70532,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"xwO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/storage) "xwQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -70560,20 +70584,6 @@ /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"xxG" = ( -/obj/machinery/door/airlock/grunge{ - name = "Janitorial Closet" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/service/janitor) "xxL" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/checker{ @@ -70585,6 +70595,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) +"xyb" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "xyh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70744,17 +70765,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"xAx" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "xAA" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 @@ -70777,6 +70787,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"xAO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xAR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70909,6 +70928,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xDl" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt, +/obj/item/bedsheet/qm, +/obj/item/reagent_containers/cup/glass/bottle/tequila{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "xDs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -70918,21 +70952,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/starboard) -"xDx" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Security Deliveries" - }, -/obj/structure/sign/departments/security/directional/north, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/plasticflaps{ - name = "Security Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron/dark/side, -/area/station/cargo/sorting) "xDS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71116,18 +71135,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"xGg" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "xGl" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -71255,6 +71262,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron, /area/station/science/lobby) +"xIl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xIu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -71386,6 +71400,16 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"xKn" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Supply Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "xKq" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/effect/turf_decal/bot, @@ -71400,6 +71424,12 @@ "xKG" = ( /turf/open/floor/iron, /area/station/hallway/primary/port) +"xKI" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xKQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/firealarm/directional/north, @@ -71451,6 +71481,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xLw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xLy" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt/dust, @@ -71535,17 +71574,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"xMt" = ( -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/sorting) "xMv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71645,11 +71673,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) -"xOU" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron/smooth, -/area/station/cargo/lobby) "xPd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71878,6 +71901,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"xRC" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock{ + name = "Cargo Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "xRH" = ( /turf/closed/wall, /area/station/maintenance/fore/lesser) @@ -71971,6 +72002,20 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) +"xSY" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + name = "Medical Deliveries" + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/plasticflaps{ + name = "Medical Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/sign/departments/med/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "xSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72188,15 +72233,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/service/janitor) -"xVW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xVY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72422,6 +72458,9 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"xYo" = ( +/turf/open/floor/iron, +/area/station/cargo/lobby) "xYu" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -72653,16 +72692,6 @@ "ybO" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"ybY" = ( -/obj/machinery/piratepad/civilian, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/light/cold/dim/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/cargo/lobby) "ycb" = ( /obj/effect/turf_decal/weather/dirt{ dir = 6 @@ -72773,15 +72802,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ydA" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/machinery/vending/wardrobe/curator_wardrobe, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library/private) "ydL" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, @@ -72793,16 +72813,6 @@ "yeh" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) -"yei" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "yel" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -72932,13 +72942,6 @@ "yfD" = ( /turf/closed/wall, /area/station/medical/surgery/theatre) -"yfF" = ( -/obj/machinery/vending/autodrobe, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/commons/fitness/locker_room) "yfJ" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/decal/cleanable/dirt, @@ -72959,13 +72962,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"yfT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "yfX" = ( /obj/machinery/space_heater, /obj/effect/decal/cleanable/dirt, @@ -72989,19 +72985,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"ygs" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) "ygu" = ( /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) @@ -73042,16 +73025,6 @@ /obj/effect/spawner/random/aimodule/harmless, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"yhk" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "yhq" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ @@ -73192,12 +73165,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) -"yiV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "yiY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -73228,6 +73195,35 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) +"yjy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/folder/red{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = -30 + }, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "yjE" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/engine) @@ -79863,7 +79859,7 @@ ybp qBK jMp cor -wPO +bDi wLw udH gbh @@ -80104,7 +80100,7 @@ rDU hYC bLp wGx -qht +cdp nrn lCT trX @@ -80120,7 +80116,7 @@ kNx tyc dJn nrn -jMQ +tjg wmL civ gbh @@ -81906,7 +81902,7 @@ fAD jWm ybO kVB -dzH +qrW rPg nrn trY @@ -82149,7 +82145,7 @@ wWm mPB pit wWm -pnO +idB pCn teV dix @@ -82160,7 +82156,7 @@ ykk hYC egC nlt -ckR +tRm nrn ktJ saq @@ -82402,7 +82398,7 @@ wBo sRf wBo hFO -oYf +jPl mPB wWm nlR @@ -82658,9 +82654,9 @@ wBo fgX uFS wBo -eKd +mln wBo -aeH +nzS dOP pit dHx @@ -82916,7 +82912,7 @@ bTI jnI gya qBM -ael +oBO wcF eqr mUe @@ -82930,7 +82926,7 @@ pjk pjk pjk qfK -crP +klA hLx klg lRy @@ -83957,8 +83953,8 @@ oVm fjf sRW fjf -itr -hWa +cHD +hhy wFK ybO qOr @@ -84010,7 +84006,7 @@ lOj dTW lwI lOj -mSJ +vSn kdH kmo ouN @@ -84018,8 +84014,8 @@ rST ouN oQr kdH -hba -cYj +eEG +rzX slw dDd vuj @@ -84267,7 +84263,7 @@ bTE cob vWA lOj -uSQ +aNE kdH nJU kEA @@ -84275,8 +84271,8 @@ kQe ouR oRr kdH -tHv -sKT +dfM +iIG slw qtJ qdu @@ -84462,7 +84458,7 @@ pWm pRw pnl pxz -yei +enI ybO ybO qKA @@ -84733,7 +84729,7 @@ wmq vMI pKW kiP -tqn +dIw dYv jZl feu @@ -84743,7 +84739,7 @@ bGX jhj cGV tkU -ocZ +bst pqr tkU kUN @@ -84782,15 +84778,15 @@ jvR jir lPi uzJ -aTm +eib knk ppk uzJ ovQ oSb -cDd +edA uzJ -wSQ +ryX slw slw lLi @@ -84980,7 +84976,7 @@ fjh wzv pnl dpH -kNv +sXj gAy jZl bKK @@ -85036,18 +85032,18 @@ nFo nFo nFo nFo -mIx +kxa lOj jTA -jqM +qYG pZK -hrP +xKI kQM -fXY +kQj pZK -hrP +xKI mjQ -beR +qqB ahr nFX nFX @@ -85236,9 +85232,9 @@ pWm uEH dfd pnl -uct -uct -uct +bjt +bjt +bjt jZl bEG rCk @@ -85285,31 +85281,31 @@ slY gOK slY hfc -ttd +bEv iNE nFo ach -gvz +ueL ylH nEl ejq tvN moz moz -rei +vjs odX odX odX odX odX -akl +rWK mjV -mvX +sVQ mhk ihb ozt sqz -hft +bHw mhk iSD pbw @@ -85493,9 +85489,9 @@ wzv yil wzv pnl -uct -hGa -uct +bjt +lrN +bjt jZl oqq tmK @@ -85543,30 +85539,30 @@ gPN gZk iNE kPW -rvk +lxE nFo tPZ rPx cvP rWP -oxo +kMY jWA uzJ -vCK -jHW -bpd -vvB -bpd -eka -qpv -ftJ +jtB +jJw +fxO +rPM +fxO +qMI +rfP +fiE qby qby qby -vTb -vTb +iJH +iJH mhk -hft +bHw mhk pGS sUN @@ -85748,12 +85744,12 @@ kNn yil xnL yil -bXb +jHN pnl pnl pnl pnl -srw +emz tXF qaU yew @@ -85799,31 +85795,31 @@ slY gPN slY kwY -ttd +bEv hfc nFo hNv -jbB -idb +iJp +ggn nyf ejq -pvt +oEL uzJ -mfx -esB +vzD +amq mRD kEH mRD -jjT -qpv -ftJ +gGA +rfP +fiE qby -gQD +frY mLh -bzx -nTV +njv +rev mhk -hft +bHw mhk cXb sry @@ -86005,10 +86001,10 @@ rjo pWm pWm pWm -bXb -bXb -bXb -bXb +jHN +jHN +jHN +jHN yil fTJ qpp @@ -86024,7 +86020,7 @@ ttL glo dPW vCp -sqM +vgL kWY mzx dcK @@ -86055,30 +86051,30 @@ mFA slY slY slY -ttd +bEv slY slY nFo nFo -dNl -gdd +xvR +pIo nFo nFo -lng -qJe -gpd -oiO -paf -paf -paf -fxc +boG +hmR +jGC +rtH +eti +eti +eti +dvP odX -xwO +oyH lWY -xGg +oZZ mLk -mDQ -ijp +hXM +pmD srn pRc mhk @@ -86262,7 +86258,7 @@ mmT vtJ acg pWm -efn +eZd wzv wzv wzv @@ -86311,9 +86307,9 @@ gEc gIx sjq sjq -kIl +guq jCo -jVV +tki nPX ouT jjq @@ -86321,21 +86317,21 @@ jjq jjq rST iUN -arI -woh +pIg +rLp moz -vuN +iqM uzJ uzJ -ifv +sjX uzJ -qOs -jue +mLz +cNw qby -wjj +nzd mMt dVW -rdr +xcA mhk kwy mhk @@ -86521,8 +86517,8 @@ bOa pWm bvt bvt -nbN -ggr +lAM +fgo oii pnl gmv @@ -86568,25 +86564,25 @@ slY hTr slY slY -cGf -bFI +qgX +mmZ jjq jiu -bLr -nBI +obk +tfj kzI -iRr +gus oGl iVx lzp jFB -tpF -msF +mRQ +uJI wuM pBD wuM pBD -mbS +uQt wuM wuM wuM @@ -86613,7 +86609,7 @@ uAk yea vmX vij -ssj +oNQ wyl fEC fEC @@ -86788,14 +86784,14 @@ jDi jDi jDi pnl -srw +emz pnl pnl jZl xck -cag +hyS xck -bJH +kMg xck cGV bNq @@ -86803,9 +86799,9 @@ bNq ecq bNq bNq -hhr +pTK bNq -gUQ +uiK bNq bNq bNq @@ -86825,32 +86821,32 @@ hLD hTD oOK slY -yfT +lFb slY jjq jjq -nht +dcu jNc qSH -fEt +mKR rST iVI -bBb +fma jHB -mAu -fvq +sRs +qMM wuM -uOA -vHm -naB -tIk -iLP +rKn +bdi +lsH +nmE +dFn wCI -wFo +eJi mhk nFY mhk -haD +mCV mze iLH oyz @@ -87082,27 +87078,27 @@ tjY siG nEA slY -aBk -uHK -kzG +tBE +ehu +wtd pAU -mmX -azk -fZY -cdh +fxc +nku +jKl +jgj rTA -fwB -uZs +gFi +xco lUI -ncB -qks -uEU -fzM -pJo +rJQ +iKn +gBs +ggK +mek kSb -mxv -oVQ -rrj +cjc +hlP +hHX nxJ mhk xYJ @@ -87214,7 +87210,7 @@ aWt sis sis sis -lhd +mdp xjz blb dDB @@ -87339,30 +87335,30 @@ rhm cis slY slY -yfT -akk -kzG -gsr +lFb +qTS +wtd +eQI vrW -lCJ -hZR -lHU +uUz +uSM +sEd rTA -qti +csj eDy uzJ -mAu +sRs lzp pBD -niE -swr -cNL -aJx -eqW -sJJ +rJB +cUV +ksE +woY +uUq +wyG urF mhk -waJ +cEp mhk sNW mze @@ -87380,14 +87376,14 @@ cdB wAW rpB jzr -vIb -ygs -wUH -rnS +gLS +tsl +pMX +cDQ buc -jGx -hle -sec +rFU +qgZ +oSB fEC kJJ qVP @@ -87466,7 +87462,7 @@ eua izh xAG jWd -lGO +rEV cZA hyX tBm @@ -87556,7 +87552,7 @@ kNn pnl pnl pnl -srw +emz pnl tOc oCE @@ -87595,27 +87591,27 @@ slY slY mEB slY -gmz +vse mFA slY jjq jjq -xhL +fCK jjq ibe ipP rST eeb -cgT -vZg -vDY -omZ +fHX +sAy +jfP +xeZ wuM -qhA -fgV -eQR +cbq +eCO +bIu lHk -cvx +nhk lKg efS mhk @@ -87644,7 +87640,7 @@ pvC aLS wzS wzS -nSh +lXM fEC rui qVP @@ -87852,21 +87848,21 @@ dDB dDB blb slY -xsB +bUq xwz xwz -qCF -gVb -jiG +cyQ +cuZ +eNa xwz mTl mTl rST -qyQ -gtU -lwx -fGY -nPL +wAh +jry +rFv +dwy +bbV wuM wuM wuM @@ -87875,9 +87871,9 @@ lHT vkN wuM wuM -lPm -aYl -mZR +sHW +rrJ +uiO mhk mze mhk @@ -87891,10 +87887,10 @@ lFm kzV uaa eYB -ciD +vJE wXk glM -gsj +jmC yea vrf von @@ -88109,32 +88105,32 @@ dDB dDB blb slY -gmz +vse xwz -tVb -mBt -ess -bbR +cky +juo +iDm +biV xwz -mbH -xqr -muT +gPO +moq +jro jnn jnn bDN bDN -ilL -wqd +ebM +sfL kFD kTp -uin -buP -nCE +itf +qnU +wbt kTp -pgA -avc -iNv -iJC +oOm +jJO +kik +uVB mhk gLV mhk @@ -88147,11 +88143,11 @@ tBk miF miF miF -bAw +etJ wAW -wCC +mFd ckP -kHR +amX yea yea vJn @@ -88366,33 +88362,33 @@ dDB dDB blb slY -gmz +vse xwz -qRT -bgW -wQd +unG +qrJ +iUI jwU xwz -xDx -csi -wxg -oeT -lLM -jkn -odr -puQ -osB +hYQ +pNa +wzz +dXu +ahI +lkL +hGA +tsk +nzy btG pBD -jus -kKF -poi +qhU +rRl +mCW wuM -bbI -eIB -cms -cgc -bdx +pZC +yjy +jmX +tri +qYq xsD mhk xxj @@ -88405,11 +88401,11 @@ cxz cZs cZs eYB -ciD +vJE wXk uQK -mCU -rRO +bfS +fMf yea vJA vKa @@ -88623,32 +88619,32 @@ dDB dDB blb slY -gmz -uic -fjH -wBj -waT +vse +and +nLi +cNl +iiR ePn uki -fpr -eJR -uzG -bCM -jhc +iek +xgK +upM +jQG +abv wcP -rPI -jng -osB -ixa +kRb +rJL +nzy +gOS wuM -nBn -fxE -msZ +giA +jFg +uur wuM -ikQ -nUb -lQc -nmw +pBo +gEb +dgy +lud mhk fpN mhk @@ -88837,7 +88833,7 @@ kMe nDJ lWV cYt -wjw +tHo gAV tDu ccA @@ -88852,14 +88848,14 @@ oYv jJg bsG wqW -cQV +jHS tdb tdb tdb tdb qyr mLZ -vHU +naK lER hRO knv @@ -88880,35 +88876,35 @@ blb slY mEB slY -tcn +iZx xwz xwz -kFz -hEK -pSt +kOA +iUA +gZR xwz -sdJ -rQJ -jBn -lRf -jUz -rtg -ooB -eYx -eQj -fod +rWR +iQM +lvN +kJu +fvX +cOs +kiW +xAO +rmc +hjS pBD -naB -nWc -qou +lsH +pZt +mac wuM -uVU -hhp -kSN -aXy +oLE +lmp +iAt +tQn mhk mSA -uMj +gTj ani bKv jCm @@ -89138,31 +89134,31 @@ ueX hNo wZF wZF -iwo +tuw slY slY -wwc +fAn slY slY -kcM -uRB -fRu -wdG -ruK -fLs -eVo -qet -dmo -kxG +xSY +khw +xsP +oxt +gIr +jJB +sBn +ePr +eCV +bjf wuM -usi -cjw -bFU +mta +xDl +kjb wuM -pVk +dLl twm -pVk -pVk +dLl +dLl mhk jQv mhk @@ -89182,7 +89178,7 @@ beN oRw xle xle -slZ +hzr iIU wAj xle @@ -89342,7 +89338,7 @@ ayK ayK ayK lQU -ruR +mOc lQU ayK lQU @@ -89350,7 +89346,7 @@ lQU lQU ayK lQU -ruR +mOc lQU ayK rDV @@ -89394,22 +89390,22 @@ mEB gDH mFA gKi -nke +lOg ohl slY -mLa -iRd +gTw +nPg gDH slY slY slY -xMt -vDg +xyb +gJb lUT -uBT +lYe mTl kFJ -oMJ +uHE kFJ wuM wuM @@ -89652,23 +89648,23 @@ gEc mFA slY slY -tFe -mSu -vvZ -qJW +oOf +qSF +rFm +fQv wZF wZF -qKh +wDQ slY slY -khK -xum -chv +uiU +bLG +diN xat -vjL -eNE -rOf -qcJ +gSA +nwb +qkC +wvF mhk qTJ lYT @@ -89912,21 +89908,21 @@ slY slY slY slY -dHr +bmO slY slY -cGf +qgX kAn slY -wOK -yhk -yhk -lGM -gBX -tfx -pOc -pOc -pyY +fWj +hgp +hgp +lKf +cCC +aBQ +mFQ +mFQ +xRC nJo avY oHk @@ -89938,7 +89934,7 @@ vMP eRy mhk iSD -ngn +bqA cxz vUS miF @@ -90109,8 +90105,8 @@ uqe uLW blb aKm -fxp -nKe +eXl +jNV guh cBl fJe @@ -90163,26 +90159,26 @@ blb blb blb ueX -wMy +nmV slY aus voz sRg hmb -npf +huh ivm slY -nvU +brO wZF -gUf -viM -eYX -eYX -vpl -vCo -eYs -nQW -vRH +dTj +umL +uJV +uJV +gnO +gqw +gEa +iAL +spA mhk ilo tYL @@ -90420,8 +90416,8 @@ dDB dDB dDB slY -jaW -ezm +aBt +uPf vOm tOw hVk @@ -90429,17 +90425,17 @@ gpP iJq qfV slY -aFp -qzW +apP +jHC slY -ihD -juY -coA -qdH -raK -eYs -jhE -vZf +hjA +mnU +nzO +jln +jAN +gEa +bzW +sKO mhk jQv sNW @@ -90681,8 +90677,8 @@ slY slY eVc hbw -wOZ -hmj +qZX +lWE arL sRg slY @@ -90691,11 +90687,11 @@ slY slY wnd xat -kAr -dIq +fIq +jBJ wnd -bGv -mDx +xjc +aMI xat mhk jQv @@ -90896,7 +90892,7 @@ szg tpW pUM kMe -prd +knw fGf ayK izf @@ -90936,24 +90932,24 @@ sRg cJT eEq sRg -gQG +iGb hbw -aGI -hmQ +nLQ +mpL pGE -eUL -ouk -ouk -ouk -jgA -jyP -wdV -wST -nRF -sZy -qeM -jVS -iUu +uwO +bRA +bRA +bRA +xKn +dmO +pVV +axP +ivC +kgp +ftI +hao +uIG mhk ifl mhk @@ -91195,25 +91191,25 @@ mGY hXf xGf jLb -hgd -mrP +cOa +lPv xrZ sRg -kas -kas -kas -kas -puP -wYX -nXK -qTU -lam -pua -hmR -ybY +tlG +tlG +tlG +tlG +lbe +qCG +pbV +sxQ +day +mxh +vRc +jBN mhk oEn -yiV +tOu mhk mTN wTO @@ -91224,7 +91220,7 @@ oUJ wCR oOC iRE -tHV +mXb kZI oUb yhX @@ -91413,10 +91409,10 @@ gAV qkq wRy urz -vDS -ugt -lVv -nHq +dkD +iEc +uuA +oba exQ fib cca @@ -91456,20 +91452,20 @@ hgn jEQ gRL hcl -kas -xkA -ljK -dUU -jyP -jjV -dAt -fuT -cKl -pmP -rZV -xdl +tlG +pRO +wVr +puk +dmO +kkD +iGW +xhC +ioJ +xIl +xYo +hAO mhk -xVW +uLz pRc mhk wCR @@ -91659,7 +91655,7 @@ dyI dyI ozQ ozQ -xAx +wxJ brA brA dyI @@ -91673,7 +91669,7 @@ ayK swK jTf nCC -rDc +bwW qQi sVu wfn @@ -91712,24 +91708,24 @@ hgZ hgZ kaz eOk -qgK -lvL -xOU -iCN -qKw -kDP -gfp -tIn -gYh -abw -wzB -pyG -coo +mYE +naB +oyv +vZS +rDs +dAZ +eTL +sKj +gXB +rhF +xLw +oim +wie mhk -lnV -wrV +jab +rSM mhk -tTl +ksq wTO qVR scY @@ -91930,7 +91926,7 @@ ayK nXC nmi cED -nQE +mjh rLj gNt iIK @@ -91970,21 +91966,21 @@ qiz fgt pHC qiz -kas -uAN -lHK -kas -dUU -dUU -kas -wUF -fua -bYW -kkx -kas +tlG +rWa +peE +tlG +puk +puk +tlG +tJY +kxu +cjf +mGI +tlG mhk rXw -wrV +rSM mhk wCR wCR @@ -92173,7 +92169,7 @@ cBd cBd dyI ozQ -jvm +vkR brA dyI oer @@ -92187,7 +92183,7 @@ ayK wfn wfn osT -qxF +wnf wap wfn gKL @@ -92231,14 +92227,14 @@ xRV xRV xRV xRV -hvw -ssw -mFH -upo -dth -wIk -wWA -gJH +ccO +mWU +lnL +dOH +rbT +ppP +hSn +hpb mhk mhk jby @@ -92486,20 +92482,20 @@ nxI sxZ qGc pfw -kzM -fTa +dEp +vWy frI -dWa -dWa -qxc -dWa -nDK -wkD +aJD +aJD +wqx +aJD +knR +mDk frI -sqq -kev +dBn +nwf mXZ -mwc +ogq mAR qWG fkS @@ -92747,8 +92743,8 @@ uAo iIv uAo jsG -gVy -pKO +oQP +mIp fHN jpu pWM @@ -93002,9 +92998,9 @@ nTa tlt eIM yjZ -rUX -rUX -bQo +pzk +pzk +eII xSw kfw yeD @@ -93263,7 +93259,7 @@ xZS xZS xRV xRV -lIP +eyx kux wGz yaL @@ -93790,7 +93786,7 @@ cKt jVM hIm azq -wpP +api wMg wKr vtr @@ -94808,7 +94804,7 @@ uVT vET ncL wQB -vUr +ebn jVM rXy bFO @@ -95332,7 +95328,7 @@ ptX hsH srg jVM -kYT +nJK sZo yfC lnN @@ -95585,7 +95581,7 @@ jVM jVM jVM jVM -dxW +qtW jVM xlU jRK @@ -95838,11 +95834,11 @@ kvT wQB cZi jVM -aJI -nrX -ydA +dgt +sTN +nHb jVM -xah +cMH jVM lzB jVM @@ -96095,11 +96091,11 @@ kyO wQB drC jVM -pMC -nxS -alN +dqF +sKh +iFG jVM -xah +cMH jVM uZY jVM @@ -96352,11 +96348,11 @@ ncL wQB ydz jVM -mgd -kuX -uiT -dxW -xah +bgl +sjn +mrY +qtW +cMH jVM joR jVM @@ -97392,8 +97388,8 @@ wVN hQs rdV bPy -nVw -qYr +okL +azx eqI nHI cgs @@ -97649,13 +97645,13 @@ jVM aLB ilx qEO -oPh -qDL +lqK +wxM sGN bzj -vxA -lEs -jUr +qyE +qdL +ptO uMg xBd qXP @@ -97891,7 +97887,7 @@ opn jYY ndJ rJZ -hBJ +egW xRV xRV xRV @@ -98150,8 +98146,8 @@ dCu eXR wQB rHl -gLf -kec +dMC +ucO jVM jTn xXe @@ -98406,7 +98402,7 @@ psc dCu rJZ wQB -tSY +xrt txW nCX jVM @@ -98922,7 +98918,7 @@ rJZ wQB eIO xND -wLv +czh jVM oZy jVM @@ -100741,7 +100737,7 @@ xkV ecC cvV spH -hZA +whg dPp sFs fZZ @@ -101255,7 +101251,7 @@ gyy xkV swW vkh -iax +kPh cSy bpY sMt @@ -102276,7 +102272,7 @@ rZq ycX pBu khY -dpF +lmZ aGq khY khY @@ -102771,7 +102767,7 @@ cCD gcz jyM uoB -cGA +eSA baJ rji vAw @@ -105607,7 +105603,7 @@ sRL bCP dqB pIf -lZP +upF jgF wqj rEa @@ -106119,7 +106115,7 @@ nVa fuD xVV eWP -lNN +vXv lWp xhD heN @@ -107152,7 +107148,7 @@ jvQ eul eeJ egJ -yfF +egA gMq duT gtk @@ -107914,7 +107910,7 @@ rqw sRL sRL sRL -xxG +ceD sRL sRL eeJ @@ -114604,7 +114600,7 @@ xQJ bfE rIo xQJ -ohN +jIn oUC oPM sDj @@ -115377,7 +115373,7 @@ noB xQJ avN oPM -rYt +jLt wBI sEr dQQ @@ -119160,7 +119156,7 @@ dDB dDB dDB dDB -mzv +dRz dDB dDB dDB @@ -121827,7 +121823,7 @@ xok xok xok xok -tXc +dTi tbI xok qNO @@ -122602,7 +122598,7 @@ lkV iJL rci vTv -dpz +juU boY agI kQt @@ -123373,7 +123369,7 @@ nWh xnR aLC wLZ -xwn +eKV cns vwJ kQt @@ -129558,10 +129554,10 @@ uxL lhl jxD ylD -hqH +cWC vzv brz -sJf +egg ylD wyj dYR diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index da57feb27813..4200fe13d159 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -12653,6 +12653,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) "ddg" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index ce8f714c0e45..6cbcb15e08ee 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -44654,14 +44654,7 @@ /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) "mYR" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen{ - pixel_x = -5 - }, -/obj/item/hand_labeler{ - pixel_y = -3 - }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/wood, /area/station/hallway/secondary/service) "mZf" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index f6792840a511..865e1ea3444b 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -24297,15 +24297,13 @@ "iJK" = ( /obj/item/radio/intercom/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/plumbed{ - dir = 8 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "iKj" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index cafc8754cd88..2fc187c626d6 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -86467,6 +86467,7 @@ /area/station/security/brig) "wms" = ( /obj/machinery/airalarm/directional/east, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "wmt" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 9480252ff138..9c97fd61253f 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -14032,6 +14032,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "dNB" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 8eca8d06b611..c1d1929d4d27 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -5209,6 +5209,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"bQY" = ( +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/machinery/fishing_portal_generator, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "bRl" = ( /obj/machinery/suit_storage_unit/captain{ req_access = list("captain") @@ -13201,8 +13206,8 @@ /turf/open/floor/iron, /area/station/engineering/main) "eFP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, -/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "eGn" = ( @@ -18088,6 +18093,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) +"gvs" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/structure/cable, +/obj/structure/table, +/obj/item/aquarium_kit, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "gvw" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) @@ -25270,14 +25283,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"jac" = ( -/obj/structure/cable, -/obj/effect/spawner/random/trash/garbage{ - spawn_scatter_radius = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "jaf" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green, @@ -25481,12 +25486,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/maintenance/department/cargo) -"jdP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "jdW" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -31193,6 +31192,13 @@ /obj/machinery/light/directional/north, /turf/open/floor/circuit, /area/station/engineering/storage/tech) +"kYi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "kYk" = ( /obj/machinery/door/poddoor/shutters{ id = "secmechbay"; @@ -37544,6 +37550,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/exam_room) +"nki" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "nkA" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 1 @@ -37637,11 +37649,6 @@ /obj/structure/marker_beacon/purple, /turf/open/space/basic, /area/space/nearstation) -"nmS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "nmX" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/structure/disposalpipe/segment, @@ -39249,6 +39256,11 @@ /obj/item/emergency_bed, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) +"nUL" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -41010,6 +41022,10 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) +"oEo" = ( +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/turf/closed/wall, +/area/station/hallway/secondary/service) "oEp" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -62533,6 +62549,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"wan" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/garbage{ + spawn_scatter_radius = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "war" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -63067,7 +63091,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "wlf" = ( -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/effect/turf_decal/tile/dark_green/opposingcorners, /turf/open/floor/iron, @@ -91818,7 +91841,7 @@ acc tQF ewJ uFW -jrX +wan acc acc acc @@ -92073,9 +92096,9 @@ mbZ acc acc acc -acc +wMb eFP -jac +jrX kuP kuP kuP @@ -92330,9 +92353,9 @@ jrn acc nZY ihH -acc -acc -jrX +nUL +eFP +lIr lIr lIr lIr @@ -92587,10 +92610,10 @@ qpb acc jOD uFW -nmS uFW -jrX +nki lIr +bQY lHi dyX uWr @@ -92845,9 +92868,9 @@ mCo ewJ uFW jXL -uFW -jdP +kYi lIr +gvs wlf fvd cik @@ -93103,8 +93126,8 @@ acc jrX siG jrX -jrX lIr +oEo otA xlX bcX diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 8aca00b288b7..a6607cd7797e 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -637,10 +637,13 @@ . = ..() var/water_adaptation = HAS_TRAIT(owner, TRAIT_WATER_ADAPTATION) var/heal_or_deal = HAS_TRAIT(owner, TRAIT_WATER_HATER) && !water_adaptation ? 1 : -1 + var/healed = 0 if(water_adaptation) //very mild healing for those with the water adaptation trait (fish infusion) - owner.adjustOxyLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) - owner.adjustFireLoss(-0.6 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) - owner.adjustToxLoss(-0.6 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) - owner.adjustBruteLoss(-0.6 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) + healed += owner.adjustOxyLoss(-1.5 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) + healed += owner.adjustFireLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) + healed += owner.adjustToxLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) + healed += owner.adjustBruteLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) heal_or_deal *= 1.5 - owner.adjustStaminaLoss(stamina_heal_per_tick * heal_or_deal * seconds_between_ticks) + healed += owner.adjustStaminaLoss(stamina_heal_per_tick * heal_or_deal * seconds_between_ticks, updating_stamina = FALSE) + if(healed) + owner.updatehealth() diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index e125a6110596..0076d0154647 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -235,6 +235,7 @@ gills = new() AddElement(/datum/element/noticable_organ, "%PRONOUN_Theyve a set of gills on %PRONOUN_their neck.", BODY_ZONE_PRECISE_MOUTH) AddComponent(/datum/component/bubble_icon_override, "fish", BUBBLE_ICON_PRIORITY_ORGAN) + AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) /obj/item/organ/internal/lungs/fish/Destroy() QDEL_NULL(gills) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 2bed9752f883..caa4b4e740ee 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -17,13 +17,13 @@ var/buildstackamount = 1 var/item_chair = /obj/item/chair // if null it can't be picked up ///How much sitting on this chair influences fishing difficulty - var/fishing_modifier = -3 + var/fishing_modifier = -5 /obj/structure/chair/Initialize(mapload) . = ..() if(prob(0.2)) name = "tactical [name]" - fishing_modifier -= 4 + fishing_modifier -= 8 MakeRotate() if(can_buckle && fishing_modifier) AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier) @@ -143,7 +143,7 @@ buildstacktype = /obj/item/stack/sheet/mineral/wood buildstackamount = 3 item_chair = /obj/item/chair/wood - fishing_modifier = -4 + fishing_modifier = -6 /obj/structure/chair/wood/narsie_act() return @@ -161,7 +161,7 @@ max_integrity = 70 buildstackamount = 2 item_chair = null - fishing_modifier = -5 + fishing_modifier = -7 // The mutable appearance used for the overlay over buckled mobs. var/mutable_appearance/armrest @@ -237,13 +237,13 @@ desc = "A luxurious chair, the many purple scales reflect the light in a most pleasing manner." icon_state = "carp_chair" buildstacktype = /obj/item/stack/sheet/animalhide/carp - fishing_modifier = -10 + fishing_modifier = -12 /obj/structure/chair/office anchored = FALSE buildstackamount = 5 item_chair = null - fishing_modifier = -4 + fishing_modifier = -6 icon_state = "officechair_dark" /obj/structure/chair/office/Initialize(mapload) @@ -257,10 +257,7 @@ /obj/structure/chair/office/tactical name = "tactical swivel chair" - -/obj/structure/chair/office/tactical/Initialize(mapload) - . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -10) + fishing_modifier = -10 /obj/structure/chair/office/light icon_state = "officechair_white" @@ -463,7 +460,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) buildstacktype = /obj/item/stack/sheet/bronze buildstackamount = 1 item_chair = null - fishing_modifier = -12 //the pinnacle of Ratvarian technology. + fishing_modifier = -13 //the pinnacle of Ratvarian technology. /// Total rotations made var/turns = 0 @@ -503,7 +500,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) item_chair = null obj_flags = parent_type::obj_flags | NO_DEBRIS_AFTER_DECONSTRUCTION alpha = 0 - fishing_modifier = -20 //it only lives for 25 seconds, so we make them worth it. + fishing_modifier = -21 //it only lives for 25 seconds, so we make them worth it. /obj/structure/chair/mime/wrench_act_secondary(mob/living/user, obj/item/weapon) return NONE @@ -525,7 +522,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) buildstacktype = /obj/item/stack/sheet/plastic buildstackamount = 2 item_chair = /obj/item/chair/plastic - fishing_modifier = -8 + fishing_modifier = -10 /obj/structure/chair/plastic/post_buckle_mob(mob/living/Mob) Mob.pixel_y += 2 diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index 04bb0b1e25e3..caee13863e1c 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -19,7 +19,7 @@ path/corner/color_name {\ icon = 'icons/obj/chairs_wide.dmi' buildstackamount = 1 item_chair = null - fishing_modifier = -4 + fishing_modifier = -6 var/mutable_appearance/armrest /obj/structure/chair/sofa/Initialize(mapload) diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index bdc294f5366a..7520e6e769b3 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -26,4 +26,4 @@ . = ..() AddElement(/datum/element/earhealing) AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) - AddComponent(/datum/component/adjust_fishing_difficulty, -1) + AddComponent(/datum/component/adjust_fishing_difficulty, -2) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 85c2702194b8..a7a61891fcf1 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -344,7 +344,6 @@ /obj/item/clothing/glasses/sunglasses/Initialize(mapload) . = ..() add_glasses_slapcraft_component() - AddComponent(/datum/component/adjust_fishing_difficulty, -1) /obj/item/clothing/glasses/sunglasses/proc/add_glasses_slapcraft_component() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/hudsunsec, /datum/crafting_recipe/hudsunmed, /datum/crafting_recipe/hudsundiag, /datum/crafting_recipe/scienceglasses) @@ -520,10 +519,6 @@ flags_cover = GLASSESCOVERSEYES glass_colour_type = /datum/client_colour/glass_colour/red -/obj/item/clothing/glasses/thermal/Initialize(mapload) - . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) - /obj/item/clothing/glasses/thermal/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) diff --git a/code/modules/clothing/gloves/botany.dm b/code/modules/clothing/gloves/botany.dm index 144477240b29..ba3d777fb0d8 100644 --- a/code/modules/clothing/gloves/botany.dm +++ b/code/modules/clothing/gloves/botany.dm @@ -14,7 +14,7 @@ /obj/item/clothing/gloves/botanic_leather/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /datum/armor/gloves_botanic_leather bio = 50 diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index c3b400d7c591..244cecaa6466 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -61,7 +61,7 @@ /obj/item/clothing/gloves/color/fingerless/Initialize(mapload) . = ..() var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/gripperoffbrand) - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) AddElement( /datum/element/slapcrafting,\ diff --git a/code/modules/clothing/gloves/combat.dm b/code/modules/clothing/gloves/combat.dm index a2574c8d23ec..55eeeba723f1 100644 --- a/code/modules/clothing/gloves/combat.dm +++ b/code/modules/clothing/gloves/combat.dm @@ -27,7 +27,7 @@ /obj/item/clothing/gloves/combat/wizard/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //something something wizard casting + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //something something wizard casting /obj/item/clothing/gloves/combat/floortile name = "floortile camouflage gloves" @@ -37,4 +37,4 @@ /obj/item/clothing/gloves/combat/floortiletile/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool diff --git a/code/modules/clothing/gloves/insulated.dm b/code/modules/clothing/gloves/insulated.dm index d20ae78c6c4c..9c451fb81171 100644 --- a/code/modules/clothing/gloves/insulated.dm +++ b/code/modules/clothing/gloves/insulated.dm @@ -121,7 +121,7 @@ /obj/item/clothing/gloves/cut/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/gloves/cut/heirloom desc = "The old gloves your great grandfather stole from Engineering, many moons ago. They've seen some tough times recently." @@ -141,4 +141,4 @@ /obj/item/clothing/gloves/chief_engineer/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) diff --git a/code/modules/clothing/gloves/punch_mitts.dm b/code/modules/clothing/gloves/punch_mitts.dm index 96848731a9cb..36d085c289c5 100644 --- a/code/modules/clothing/gloves/punch_mitts.dm +++ b/code/modules/clothing/gloves/punch_mitts.dm @@ -11,7 +11,7 @@ /obj/item/clothing/gloves/fingerless/punch_mitts/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) AddComponent(/datum/component/martial_art_giver, /datum/martial_art/boxing/hunter) /datum/armor/gloves_mitts diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm index 98de3145ddc7..88274322e716 100644 --- a/code/modules/clothing/gloves/special.dm +++ b/code/modules/clothing/gloves/special.dm @@ -60,7 +60,7 @@ /obj/item/clothing/gloves/rapid/Initialize(mapload) . = ..() AddComponent(/datum/component/wearertargeting/punchcooldown) - AddComponent(/datum/component/adjust_fishing_difficulty, -7) + AddComponent(/datum/component/adjust_fishing_difficulty, -9) /obj/item/clothing/gloves/radio name = "translation gloves" @@ -78,7 +78,7 @@ /obj/item/clothing/gloves/race/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -7) + AddComponent(/datum/component/adjust_fishing_difficulty, -9) /obj/item/clothing/gloves/captain desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier. Swanky." @@ -98,7 +98,7 @@ /obj/item/clothing/gloves/captain/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) /datum/armor/captain_gloves bio = 90 @@ -129,7 +129,7 @@ /obj/item/clothing/gloves/latex/nitrile/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) /obj/item/clothing/gloves/latex/coroner name = "coroner's gloves" @@ -185,7 +185,7 @@ /obj/item/clothing/gloves/fishing/Initialize(mapload) . = ..() AddComponent(/datum/component/profound_fisher, new /obj/item/fishing_rod/mob_fisher/athletic(src)) - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //on top of the extra that you get from the athletics skill. + AddComponent(/datum/component/adjust_fishing_difficulty, -4) //on top of the extra that you get from the athletics skill. /obj/item/clothing/gloves/fishing/equipped(mob/user, slot) . = ..() diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index d45fa8d0a90b..ce3db5ab6547 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -23,7 +23,7 @@ /// See: [/datum/component/tackler/var/skill_mod] var/skill_mod = 1 ///How much these gloves affect fishing difficulty - var/fishing_modifier = -5 + var/fishing_modifier = -7 /obj/item/clothing/gloves/tackler/Initialize(mapload) . = ..() @@ -61,7 +61,7 @@ tackle_speed = 2 min_distance = 2 skill_mod = -2 - fishing_modifier = -8 + fishing_modifier = -10 /obj/item/clothing/gloves/tackler/combat name = "gorilla gloves" @@ -113,11 +113,11 @@ base_knockdown = 1.75 SECONDS min_distance = 2 skill_mod = -1 - fishing_modifier = -3 + fishing_modifier = -5 /obj/item/clothing/gloves/tackler/football name = "football gloves" desc = "Gloves for football players! Teaches them how to tackle like a pro." icon_state = "tackle_gloves" inhand_icon_state = null - fishing_modifier = -3 + fishing_modifier = -4 diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 9f7d01506f1e..2ac7db70225f 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -109,7 +109,7 @@ /obj/item/clothing/head/collectable/pirate/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/collectable/kitty name = "collectable kitty ears" @@ -135,7 +135,7 @@ /obj/item/clothing/head/collectable/wizard/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -1) + AddComponent(/datum/component/adjust_fishing_difficulty, -2) /obj/item/clothing/head/collectable/hardhat name = "collectable hard hat" diff --git a/code/modules/clothing/head/fedora.dm b/code/modules/clothing/head/fedora.dm index 7bf295f74553..0bc555ca6bcf 100644 --- a/code/modules/clothing/head/fedora.dm +++ b/code/modules/clothing/head/fedora.dm @@ -38,7 +38,7 @@ /obj/item/clothing/head/fedora/carpskin/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) /obj/item/clothing/head/fedora/beige/press name = "press fedora" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 7b67cda761f2..a15a59f05add 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -626,7 +626,7 @@ /obj/item/clothing/head/utility/surgerycap/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/head/utility/surgerycap/attack_self(mob/user) . = ..() @@ -672,7 +672,7 @@ /obj/item/clothing/head/utility/head_mirror/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/head/utility/head_mirror/examine(mob/user) . = ..() diff --git a/code/modules/clothing/head/moth.dm b/code/modules/clothing/head/moth.dm index abce11336f2d..c9ca9e449f00 100644 --- a/code/modules/clothing/head/moth.dm +++ b/code/modules/clothing/head/moth.dm @@ -15,7 +15,7 @@ /obj/item/clothing/head/mothcap/original/Initialize(mapload) . = ..() AddComponent(/datum/component/scope, range_modifier = 1.2, zoom_method = ZOOM_METHOD_ITEM_ACTION, item_action_type = /datum/action/item_action/hands_free/moth_googles) - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/mothcap/original/item_action_slot_check(slot, mob/user, datum/action/action) return (slot & ITEM_SLOT_HEAD) diff --git a/code/modules/clothing/head/pirate.dm b/code/modules/clothing/head/pirate.dm index 6d5d0a67f30f..ab1aaba8e373 100644 --- a/code/modules/clothing/head/pirate.dm +++ b/code/modules/clothing/head/pirate.dm @@ -7,7 +7,7 @@ /obj/item/clothing/head/costume/pirate/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/head/costume/pirate/equipped(mob/user, slot) . = ..() diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 629305740318..a25a8eb3ca90 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -175,7 +175,7 @@ . = ..() AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) //you asked for this. AddElement(/datum/element/skill_reward, /datum/skill/fishing) - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) #define PROPHAT_MOOD "prophat" diff --git a/code/modules/clothing/masks/animal_masks.dm b/code/modules/clothing/masks/animal_masks.dm index 5a92c8faf071..fd900810e67c 100644 --- a/code/modules/clothing/masks/animal_masks.dm +++ b/code/modules/clothing/masks/animal_masks.dm @@ -152,15 +152,15 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/frog/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 2 : -2) + AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 4 : -4) /obj/item/clothing/mask/animal/frog/make_cursed() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 2) + AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/mask/animal/frog/clear_curse() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/mask/animal/frog/cursed cursed = TRUE @@ -241,15 +241,15 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/small/bear/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 2 : -2) + AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 4 : -4) /obj/item/clothing/mask/animal/small/bear/make_cursed() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 2) + AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/mask/animal/small/bear/clear_curse() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/mask/animal/small/bear/cursed cursed = TRUE @@ -301,15 +301,15 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/small/tribal/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 4 : -4) + AddComponent(/datum/component/adjust_fishing_difficulty, cursed ? 5 : -5) /obj/item/clothing/mask/animal/small/tribal/make_cursed() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 4) + AddComponent(/datum/component/adjust_fishing_difficulty, 5) /obj/item/clothing/mask/animal/small/tribal/clear_curse() . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/mask/animal/small/tribal/cursed //adminspawn only. cursed = TRUE diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 46ad60e58dea..b28645da3a5e 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -26,7 +26,7 @@ /obj/item/clothing/mask/floortilebalaclava/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool /obj/item/clothing/mask/floortilebalaclava/attack_self(mob/user) adjust_visor(user) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 2e6ddeb68355..d8ba970c69cc 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -447,7 +447,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/mask/gas/carp name = "carp mask" @@ -455,7 +455,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( icon_state = "carp_mask" inhand_icon_state = null flags_cover = MASKCOVERSEYES - fishing_modifier = -3 + fishing_modifier = -4 /obj/item/clothing/mask/gas/tiki_mask name = "tiki mask" @@ -468,7 +468,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) dog_fashion = null - fishing_modifier = -2 + fishing_modifier = -4 var/list/tikimask_designs = list() /obj/item/clothing/mask/gas/tiki_mask/Initialize(mapload) @@ -510,7 +510,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( inhand_icon_state = "gas_atmos" resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT - fishing_modifier = -2 + fishing_modifier = -4 /obj/item/clothing/mask/gas/prop name = "prop gas mask" diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 7e16bd3bdab8..a02c7d1debff 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -215,7 +215,7 @@ /obj/item/clothing/neck/stethoscope/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/neck/stethoscope/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] puts \the [src] to [user.p_their()] chest! It looks like [user.p_they()] won't hear much!")) diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index 68a7b1bb0aef..77e7b2ff369e 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -74,7 +74,7 @@ /obj/item/clothing/shoes/jackboots/floortile/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool /obj/item/clothing/shoes/winterboots name = "winter boots" @@ -181,7 +181,7 @@ /obj/item/clothing/shoes/pirate/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/shoes/pirate/armored armor_type = /datum/armor/shoes_pirate diff --git a/code/modules/clothing/shoes/costume.dm b/code/modules/clothing/shoes/costume.dm index 3c66c0ac0c6b..bbc0778e8744 100644 --- a/code/modules/clothing/shoes/costume.dm +++ b/code/modules/clothing/shoes/costume.dm @@ -129,7 +129,7 @@ create_storage(storage_type = /datum/storage/pockets/shoes) LoadComponent(/datum/component/squeak, list('sound/effects/quack.ogg' = 1), 50, falloff_exponent = 20) - AddComponent(/datum/component/adjust_fishing_difficulty, -6) //deploy tactical duckling lure + AddComponent(/datum/component/adjust_fishing_difficulty, -7) //deploy tactical duckling lure /obj/item/clothing/shoes/ducky_shoes/equipped(mob/living/user, slot) . = ..() diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm index 8e32e31acd21..fd361c90c084 100644 --- a/code/modules/clothing/suits/costume.dm +++ b/code/modules/clothing/suits/costume.dm @@ -264,7 +264,7 @@ /obj/item/clothing/suit/hooded/carp_costume/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/hooded/carp_hood name = "carp hood" @@ -279,7 +279,7 @@ /obj/item/clothing/head/hooded/carp_hood/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/head/hooded/carp_hood/equipped(mob/living/carbon/human/user, slot) ..() @@ -403,7 +403,7 @@ /obj/item/clothing/suit/hooded/shark_costume/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) /obj/item/clothing/head/hooded/shark_hood name = "shark hood" @@ -417,7 +417,7 @@ /obj/item/clothing/head/hooded/shark_hood/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/suit/hooded/shork_costume // Oh God Why name = "shork costume" @@ -432,7 +432,7 @@ /obj/item/clothing/suit/hooded/shork_costume/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 2) + AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/head/hooded/shork_hood name = "shork hood" @@ -446,7 +446,7 @@ /obj/item/clothing/head/hooded/shork_hood/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, 3) + AddComponent(/datum/component/adjust_fishing_difficulty, 5) /obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!? name = "bloated human suit" @@ -615,7 +615,7 @@ /obj/item/clothing/suit/costume/hawaiian/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/suit/costume/football_armor name = "football protective gear" diff --git a/code/modules/clothing/suits/ethereal.dm b/code/modules/clothing/suits/ethereal.dm index 1c86ca34094f..031d5ac4c3c5 100644 --- a/code/modules/clothing/suits/ethereal.dm +++ b/code/modules/clothing/suits/ethereal.dm @@ -14,7 +14,7 @@ /obj/item/clothing/suit/hooded/ethereal_raincoat/Initialize(mapload) . = ..() update_icon(UPDATE_OVERLAYS) - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/suit/hooded/ethereal_raincoat/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() @@ -33,7 +33,7 @@ /obj/item/clothing/suit/hooded/ethereal_raincoat/trailwarden/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -5) + AddComponent(/datum/component/adjust_fishing_difficulty, -7) /obj/item/clothing/suit/hooded/ethereal_raincoat/trailwarden/equipped(mob/living/user, slot) . = ..() @@ -56,4 +56,4 @@ /obj/item/clothing/head/hooded/ethereal_rainhood/trailwarden/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) + AddComponent(/datum/component/adjust_fishing_difficulty, -6) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 504558229639..affe103e307b 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -54,7 +54,7 @@ /obj/item/clothing/suit/apron/overalls/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) //Captain /obj/item/clothing/suit/jacket/capjacket @@ -356,7 +356,7 @@ /obj/item/clothing/suit/apron/surgical/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) // FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) // FISH DOCTOR?! //Curator /obj/item/clothing/suit/jacket/curator diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 5453d048b0e0..18a5e60d7402 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -40,7 +40,7 @@ /obj/item/clothing/suit/toggle/labcoat/cmo/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /datum/armor/toggle_labcoat bio = 50 @@ -63,7 +63,7 @@ /obj/item/clothing/suit/toggle/labcoat/paramedic/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/suit/toggle/labcoat/mad name = "\proper The Mad's labcoat" diff --git a/code/modules/clothing/suits/moth.dm b/code/modules/clothing/suits/moth.dm index 076a0dd0b3c9..b9c8ab64fa66 100644 --- a/code/modules/clothing/suits/moth.dm +++ b/code/modules/clothing/suits/moth.dm @@ -16,7 +16,7 @@ /obj/item/clothing/suit/mothcoat/original/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) create_storage(storage_type = /datum/storage/pockets) /obj/item/clothing/suit/mothcoat/winter diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 704182f3642d..794ebfbff49f 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -12,7 +12,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard ///How much this hat affects fishing difficulty - var/fishing_modifier = -4 + var/fishing_modifier = -6 /obj/item/clothing/head/wizard/Initialize(mapload) . = ..() @@ -54,7 +54,7 @@ armor_type = /datum/armor/none resistance_flags = FLAMMABLE dog_fashion = /datum/dog_fashion/head/blue_wizard - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/head/wizard/chanterelle name = "chanterelle hat" @@ -122,7 +122,7 @@ clothing_flags = CASTING_CLOTHES resistance_flags = FIRE_PROOF | ACID_PROOF ///How much this robe affects fishing difficulty - var/fishing_modifier = -6 + var/fishing_modifier = -7 /obj/item/clothing/suit/wizrobe/Initialize(mapload) . = ..() @@ -194,20 +194,20 @@ inhand_icon_state = "wizrobe" armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -2 + fishing_modifier = -3 /obj/item/clothing/head/wizard/marisa/fake name = "witch hat" armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/head/wizard/tape/fake name = "tape hat" desc = "A hat designed exclusively from duct tape. You can barely see." armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -1 + fishing_modifier = -2 /obj/item/clothing/suit/wizrobe/marisa/fake name = "witch robe" @@ -216,14 +216,14 @@ inhand_icon_state = null armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -2 + fishing_modifier = -3 /obj/item/clothing/suit/wizrobe/tape/fake name = "tape robe" desc = "An outfit designed exclusively from duct tape. It was hard to put on." armor_type = /datum/armor/none resistance_flags = FLAMMABLE - fishing_modifier = -2 + fishing_modifier = -3 /obj/item/clothing/suit/wizrobe/paper name = "papier-mache robe" // no non-latin characters! @@ -241,7 +241,7 @@ inhand_icon_state = null armor_type = /datum/armor/robe_durathread allowed = /obj/item/clothing/suit/apron::allowed - fishing_modifier = -4 + fishing_modifier = -6 /datum/armor/robe_durathread melee = 15 diff --git a/code/modules/clothing/under/jobs/civilian/curator.dm b/code/modules/clothing/under/jobs/civilian/curator.dm index f08657cee075..44be99b8951e 100644 --- a/code/modules/clothing/under/jobs/civilian/curator.dm +++ b/code/modules/clothing/under/jobs/civilian/curator.dm @@ -30,7 +30,7 @@ /obj/item/clothing/under/rank/civilian/curator/treasure_hunter/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -3) + AddComponent(/datum/component/adjust_fishing_difficulty, -5) /obj/item/clothing/under/rank/civilian/curator/nasa name = "\improper NASA jumpsuit" diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 2dea33240823..9937e23929a1 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -46,7 +46,7 @@ /obj/item/clothing/under/rank/medical/chief_medical_officer/scrubs/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck name = "chief medical officer's turtleneck" @@ -88,7 +88,7 @@ /obj/item/clothing/under/rank/medical/scrubs/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /obj/item/clothing/under/rank/medical/scrubs/blue desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 588dd8efc2a6..70d2a5eeadb9 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -60,7 +60,7 @@ /obj/item/clothing/under/misc/adminsuit/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -15) + AddComponent(/datum/component/adjust_fishing_difficulty, -25) /datum/armor/clothing_under/adminsuit melee = 100 diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 98f41f407cab..07ec1a59c490 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -119,4 +119,4 @@ /obj/item/clothing/under/suit/carpskin/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) + AddComponent(/datum/component/adjust_fishing_difficulty, -4) diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index e4653b1c9bd4..ac6af3f2f7f8 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -36,7 +36,7 @@ /obj/item/clothing/under/syndicate/bloodred/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //extra-tactical + AddComponent(/datum/component/adjust_fishing_difficulty, -4) //extra-tactical /datum/armor/clothing_under/syndicate_bloodred melee = 10 @@ -125,7 +125,7 @@ /obj/item/clothing/under/syndicate/floortilecamo/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4) //tacticool + AddComponent(/datum/component/adjust_fishing_difficulty, -5) //tacticool /obj/item/clothing/under/syndicate/soviet name = "Ratnik 5 tracksuit" @@ -170,7 +170,7 @@ /obj/item/clothing/under/syndicate/scrubs/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -2) //FISH DOCTOR?! + AddComponent(/datum/component/adjust_fishing_difficulty, -3) //FISH DOCTOR?! /datum/armor/clothing_under/syndicate_scrubs melee = 10 diff --git a/code/modules/experisci/experiment/types/scanning_fish.dm b/code/modules/experisci/experiment/types/scanning_fish.dm index 3ea4f543687e..96832cd86724 100644 --- a/code/modules/experisci/experiment/types/scanning_fish.dm +++ b/code/modules/experisci/experiment/types/scanning_fish.dm @@ -13,7 +13,7 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) allowed_experimentors = list(/obj/item/experi_scanner, /obj/machinery/destructive_scanner, /obj/item/fishing_rod/tech, /obj/item/fish_analyzer) traits = EXPERIMENT_TRAIT_TYPECACHE points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS ) - required_atoms = list(/obj/item/fish = 4) + required_atoms = list(/obj/item/fish = 3) scan_message = "Scan different species of fish" ///Further experiments added to the techweb when this one is completed. var/list/next_experiments = list(/datum/experiment/scanning/fish/second) @@ -79,26 +79,26 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) /datum/experiment/scanning/fish/second name = "Fish Scanning Experiment 2" - description = "An experiment requiring more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal." + description = "An experiment requiring more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS ) - required_atoms = list(/obj/item/fish = 8) + required_atoms = list(/obj/item/fish = 7) next_experiments = list(/datum/experiment/scanning/fish/third) - fish_source_reward = /datum/fish_source/portal/chasm + fish_source_reward = /datum/fish_source/portal/ocean /datum/experiment/scanning/fish/third name = "Fish Scanning Experiment 3" - description = "An experiment requiring even more fish species to be scanned to unlock the 'Ocean' setting for the fishing portal." + description = "An experiment requiring even more fish species to be scanned to unlock the 'Chasm' setting for the fishing portal." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS ) - required_atoms = list(/obj/item/fish = 14) + required_atoms = list(/obj/item/fish = 11) next_experiments = list(/datum/experiment/scanning/fish/fourth, /datum/experiment/scanning/fish/holographic) - fish_source_reward = /datum/fish_source/portal/ocean + fish_source_reward = /datum/fish_source/portal/chasm /datum/experiment/scanning/fish/holographic name = "Holographic Fish Scanning Experiment" description = "This one actually requires holographic fish to unlock the 'Randomizer' setting for the fishing portal." performance_hint = "Load in the 'Beach' template at the Holodeck to fish some holo-fish." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS ) - required_atoms = list(/obj/item/fish/holo = 4) + required_atoms = list(/obj/item/fish/holo = 3) scan_message = "Scan different species of holographic fish" next_experiments = null fish_source_reward = /datum/fish_source/portal/random @@ -111,6 +111,6 @@ GLOBAL_LIST_EMPTY(scanned_fish_by_techweb) name = "Fish Scanning Experiment 4" description = "An experiment requiring lotsa fish species to unlock the 'Hyperspace' setting for the fishing portal." points_reward = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS ) - required_atoms = list(/obj/item/fish = 21) + required_atoms = list(/obj/item/fish = 17) next_experiments = null fish_source_reward = /datum/fish_source/portal/hyperspace diff --git a/code/modules/fishing/fish_catalog.dm b/code/modules/fishing/fish_catalog.dm index 4f329861ff93..f95358c87635 100644 --- a/code/modules/fishing/fish_catalog.dm +++ b/code/modules/fishing/fish_catalog.dm @@ -8,7 +8,7 @@ /obj/item/book/manual/fish_catalog/Initialize(mapload) . = ..() - AddComponent(/datum/component/adjust_fishing_difficulty, -4, ITEM_SLOT_HANDS) + AddComponent(/datum/component/adjust_fishing_difficulty, -7, ITEM_SLOT_HANDS) /obj/item/book/manual/fish_catalog/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm index ccad3b470801..cddabd90c062 100644 --- a/code/modules/fishing/fishing_equipment.dm +++ b/code/modules/fishing/fishing_equipment.dm @@ -289,7 +289,7 @@ material_flags = NONE custom_price = PAYCHECK_CREW * 3 ///How much holding this affects fishing difficulty - var/fishing_modifier = -2 + var/fishing_modifier = -4 /obj/item/storage/toolbox/fishing/Initialize(mapload) . = ..() @@ -298,7 +298,7 @@ /obj/item/fishing_rod, )) atom_storage.exception_hold = exception_cache - AddComponent(/datum/component/adjust_fishing_difficulty, -2, ITEM_SLOT_HANDS) + AddComponent(/datum/component/adjust_fishing_difficulty, fishing_modifier, ITEM_SLOT_HANDS) /obj/item/storage/toolbox/fishing/PopulateContents() new /obj/item/bait_can/worm(src) @@ -326,10 +326,10 @@ /obj/item/storage/toolbox/fishing/master name = "super fishing toolbox" - desc = "Contains EVERYTHING (almost) you need for your fishing trip." + desc = "Contains (almost) EVERYTHING you need for your fishing trip." icon_state = "gold" inhand_icon_state = "toolbox_gold" - fishing_modifier = -7 + fishing_modifier = -10 /obj/item/storage/toolbox/fishing/master/PopulateContents() new /obj/item/fishing_rod/telescopic/master(src) @@ -339,7 +339,6 @@ new /obj/item/fish_feed(src) new /obj/item/aquarium_kit(src) new /obj/item/fish_analyzer(src) - new /obj/item/experi_scanner(src) /obj/item/storage/box/fishing_hooks name = "fishing hook set" diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 30ce2b33ad0c..646b9816a6e1 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -149,7 +149,9 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) if(rod.hook.fishing_hook_traits & FISHING_HOOK_KILL) special_effects |= FISHING_MINIGAME_RULE_KILL + //Finish the minigame faster at higher skill. The value modifiers for fishing are negative values btw. completion_loss += user.mind?.get_skill_modifier(/datum/skill/fishing, SKILL_VALUE_MODIFIER)/5 + completion_gain -= user.mind?.get_skill_modifier(/datum/skill/fishing, SKILL_VALUE_MODIFIER)/7.5 /datum/fishing_challenge/Destroy(force) GLOB.fishing_challenges_by_user -= user diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index aa6b9ac3a34c..55ee105d56c3 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -176,16 +176,7 @@ /datum/movespeed_modifier/magic_ties multiplicative_slowdown = 0.5 -///movespeed modifier that makes you go faster when wet and lying on the floor once past the fish organ set threshold. -/datum/movespeed_modifier/fish_flopping - blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND - multiplicative_slowdown = - (CRAWLING_ADD_SLOWDOWN * 0.71) - ///speed bonus given by the fish tail organ when inside water. /datum/movespeed_modifier/fish_on_water blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND multiplicative_slowdown = - /turf/open/water::slowdown - -///speed malus given by the fish organ set when dry -/datum/movespeed_modifier/fish_waterless - multiplicative_slowdown = 0.36 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index 8f4e59d65557..3b32aea77480 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -59,3 +59,12 @@ /datum/movespeed_modifier/status_effect/guardian_shield multiplicative_slowdown = 1 + +///movespeed modifier that makes you go faster when wet and lying on the floor once past the fish organ set threshold. +/datum/movespeed_modifier/fish_flopping + blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND + multiplicative_slowdown = - (CRAWLING_ADD_SLOWDOWN * 0.65) + +///speed malus given by the fish organ set when dry +/datum/movespeed_modifier/fish_waterless + multiplicative_slowdown = 0.36 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 9f05026ba764..0c04f7af836b 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -301,6 +301,8 @@ exposed_mob.incapacitate(1) // startles the felinid, canceling any do_after exposed_mob.add_mood_event("watersprayed", /datum/mood_event/watersprayed) + if((methods & INGEST) && HAS_TRAIT(exposed_mob, TRAIT_WATER_ADAPTATION) && reac_volume >= 4) + exposed_mob.adjust_wet_stacks(0.15 * reac_volume) #undef WATER_TO_WET_STACKS_FACTOR_TOUCH #undef WATER_TO_WET_STACKS_FACTOR_VAPOR @@ -316,9 +318,9 @@ affected_mob.adjust_drunk_effect(drunkness_restored * REM * seconds_per_tick) // and even sobers you up slowly!! if(water_adaptation) var/need_mob_update = FALSE - need_mob_update = affected_mob.adjustToxLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) - need_mob_update += affected_mob.adjustFireLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) - need_mob_update += affected_mob.adjustBruteLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) + need_mob_update = affected_mob.adjustToxLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) + need_mob_update += affected_mob.adjustFireLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) + need_mob_update += affected_mob.adjustBruteLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) return need_mob_update ? UPDATE_MOB_HEALTH : . // For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual. diff --git a/code/modules/research/designs/autolathe/service_designs.dm b/code/modules/research/designs/autolathe/service_designs.dm index 94772421b69a..29523bf5820b 100644 --- a/code/modules/research/designs/autolathe/service_designs.dm +++ b/code/modules/research/designs/autolathe/service_designs.dm @@ -537,7 +537,7 @@ RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE /datum/design/fish_case name = "Stasis Fish Case" @@ -549,7 +549,7 @@ RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE, ) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE /datum/design/ticket_machine name = "Ticket Machine Frame" From 22135dec6a0789a4d9533a59892279d898ffe189 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 00:46:18 +0000 Subject: [PATCH 098/119] Automatic changelog for PR #87201 [ci skip] --- html/changelogs/AutoChangeLog-pr-87201.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87201.yml diff --git a/html/changelogs/AutoChangeLog-pr-87201.yml b/html/changelogs/AutoChangeLog-pr-87201.yml new file mode 100644 index 000000000000..03a14d7407a3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87201.yml @@ -0,0 +1,10 @@ +author: "Ghommie" +delete-after: True +changes: + - map: "Added a premapped fishing portal generator to every map." + - balance: "Lowered the requirements for fish scanning experiment. Swapped the rewards of the second and third experiments." + - balance: "Buffed fishing difficulty modifiers for several items and chairs." + - balance: "Fishing skill now affects completion speed of the minigame more actively." + - balance: "Mild fish infusion tweaks. Crawling is a smidge slower, but healing from showers and drank water is a bit better." + - qol: "Fishing rods and fish cases can now be printed by cargo and science lathes." + - rscadd: "Gills now give the fish puns speech modifier." \ No newline at end of file From 6b2de13386a6962c07f9ef016ae9d562733c312d Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Thu, 17 Oct 2024 05:12:53 +0200 Subject: [PATCH 099/119] moves the movement subsystem off background (#87247) ## About The Pull Request movement subsystem now has the SS_BACKGROUND flag removed excuse me if this isnt any correct like i know daedalus did this for some reason at best ## Why It's Good For The Game (stuff controlled by) movement ss is not actually THAT costly (compared to Throwing) ![2024-10-15 22_07_17-Boss' Fat Camp 82](https://github.com/user-attachments/assets/0b0ffe3f-5703-4e32-87a7-4d84cc0979f3) (when i nuked metastation on local) and i think being able to move when you slip on oil or whatever eg jetpacks during lotsa lag is pretty important this does not actually make it immune to lag it just seems to mitigate the issue by a slight margin ## Changelog :cl: code: Movement Subsystem no longer is a background subsystem. This means that you should no longer get stuck after slipping on oil during instances of high usage. /:cl: --- code/controllers/subsystem/movement/movement.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystem/movement/movement.dm b/code/controllers/subsystem/movement/movement.dm index d6043d596bb0..2b0463db7905 100644 --- a/code/controllers/subsystem/movement/movement.dm +++ b/code/controllers/subsystem/movement/movement.dm @@ -1,6 +1,6 @@ SUBSYSTEM_DEF(movement) name = "Movement Loops" - flags = SS_NO_INIT|SS_BACKGROUND|SS_TICKER + flags = SS_NO_INIT|SS_TICKER wait = 1 //Fire each tick /* A breif aside about the bucketing system here From 7b75e73d0805010cc3657718c8a6e777a1395ca5 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 03:13:16 +0000 Subject: [PATCH 100/119] Automatic changelog for PR #87247 [ci skip] --- html/changelogs/AutoChangeLog-pr-87247.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87247.yml diff --git a/html/changelogs/AutoChangeLog-pr-87247.yml b/html/changelogs/AutoChangeLog-pr-87247.yml new file mode 100644 index 000000000000..48873ff33dc1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87247.yml @@ -0,0 +1,4 @@ +author: "mc-oofert" +delete-after: True +changes: + - code_imp: "Movement Subsystem no longer is a background subsystem. This means that you should no longer get stuck after slipping on oil during instances of high usage." \ No newline at end of file From e064c6239292bca5388a2ec60824116e8fc44193 Mon Sep 17 00:00:00 2001 From: san7890 Date: Thu, 17 Oct 2024 02:22:36 -0600 Subject: [PATCH 101/119] Adds Better Bombanana Logging (#87249) ## About The Pull Request Fixes #87214 Better bombanana logging that should account for all the edgecases mentioned in the above issue report, giving more awareness on why a bombanana peel spawned, as well as renaming the bombanana syndicate minibomb to actually have the name "bomb". Just does a lot of retinkering and cleaning up to ensure all the args are appropriate and that everything should be fed into the logging procs appropriately. Big ol' verbose message in case something wonks out though, but it should be pretty evident in the logs now. ## Why It's Good For The Game Better logging for admins. ## Changelog :cl: admin: Logging of Bombanana Peel explosions should be far better now. /:cl: --- .../antagonists/clown_ops/clown_weapons.dm | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/clown_ops/clown_weapons.dm b/code/modules/antagonists/clown_ops/clown_weapons.dm index bd2dfd4b0da0..c801d3ce6f6e 100644 --- a/code/modules/antagonists/clown_ops/clown_weapons.dm +++ b/code/modules/antagonists/clown_ops/clown_weapons.dm @@ -205,20 +205,44 @@ tastes = list("explosives" = 10) food_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) +/obj/item/food/grown/banana/bombanana/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_FOOD_CONSUMED, PROC_REF(on_consumed)) + +/// Log whenever someone eats this with an explicit message since it willspawn a live bomb. +/obj/item/food/grown/banana/bombanana/proc/on_consumed(datum/source, mob/living/eater, mob/feeder) + SIGNAL_HANDLER + var/list/concatable = list("[key_name_and_tag(eater)] has eaten a bombanana!") + if(feeder != eater) + concatable += "This person was fed this by [key_name_and_tag(feeder)]." + + concatable += "As a result of this, a bombanana peel will be spawned at [AREACOORD(src)]." + + var/final_string = jointext(concatable, " ") + log_bomber(details = final_string) // sorta wacks out the traditional "log_bomber" format but it gets the point across better + return NONE + /obj/item/grown/bananapeel/bombanana - desc = "A peel from a banana. Why is it beeping?" + desc = parent_type::desc + " Why is it beeping?" seed = /obj/item/seeds/banana/bombanana - var/det_time = 50 + /// How long we have until we explode. + var/det_time = 5 SECONDS + /// Ref to the bomb we spawn when we explode. var/obj/item/grenade/syndieminibomb/bomb /obj/item/grown/bananapeel/bombanana/Initialize(mapload) . = ..() AddComponent(/datum/component/slippery, det_time) bomb = new /obj/item/grenade/syndieminibomb(src) + bomb.name = "bombanana peel" bomb.det_time = det_time + + var/potential_user = null if(iscarbon(loc)) to_chat(loc, span_danger("[src] begins to beep.")) - bomb.arm_grenade(loc, null, FALSE) + potential_user = loc // just for fingerprint diagnosis in explosion logging, the on_consumed proc will have provided the necessary context already + + bomb.arm_grenade(potential_user, msg = FALSE) /obj/item/grown/bananapeel/bombanana/Destroy() . = ..() From 815cc6486e48722c1d2fe0b8ab379bb69109f9be Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:22:57 +0000 Subject: [PATCH 102/119] Automatic changelog for PR #87249 [ci skip] --- html/changelogs/AutoChangeLog-pr-87249.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87249.yml diff --git a/html/changelogs/AutoChangeLog-pr-87249.yml b/html/changelogs/AutoChangeLog-pr-87249.yml new file mode 100644 index 000000000000..799b711b9a25 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87249.yml @@ -0,0 +1,4 @@ +author: "san7890" +delete-after: True +changes: + - admin: "Logging of Bombanana Peel explosions should be far better now." \ No newline at end of file From d5e4aeccd50838a66951f72d3bad5008a7662514 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:23:27 +0200 Subject: [PATCH 103/119] Fixes our last playsound(list()) (#87251) ## About The Pull Request This doesn't work anymore. Thanks to dangerkitten on bitbus for making me write a regex to find this one. (said regex being ``playsound\([^,]+, list\(``) ## Changelog :cl: fix: Hotswapping tanks in pumps and scrubbers now properly plays both sounds instead of runtiming /:cl: --- .../atmospherics/machinery/portable/portable_atmospherics.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index cb1a23f82f15..8284b212efc4 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -230,7 +230,8 @@ UnregisterSignal(holding, COMSIG_QDELETING) holding = new_tank RegisterSignal(holding, COMSIG_QDELETING, PROC_REF(unregister_holding)) - playsound(src, list(insert_sound,remove_sound), sound_vol) + playsound(src, insert_sound, sound_vol) + playsound(src, remove_sound, sound_vol) else if(holding)//we remove a tank investigate_log("had its internal [holding] removed by [key_name(user)].", INVESTIGATE_ATMOS) to_chat(user, span_notice("You remove [holding] from [src].")) From f4de2a4d502cd914c2dda53359c6c8a60b00e475 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:23:53 +0000 Subject: [PATCH 104/119] Automatic changelog for PR #87251 [ci skip] --- html/changelogs/AutoChangeLog-pr-87251.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87251.yml diff --git a/html/changelogs/AutoChangeLog-pr-87251.yml b/html/changelogs/AutoChangeLog-pr-87251.yml new file mode 100644 index 000000000000..9e17d2c2330e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87251.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Hotswapping tanks in pumps and scrubbers now properly plays both sounds instead of runtiming" \ No newline at end of file From 61cfc21802ca955a0bf176ab213add688ff3b1ac Mon Sep 17 00:00:00 2001 From: jimmyl <70376633+mc-oofert@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:32:54 +0200 Subject: [PATCH 105/119] [no gbp] a few very minor manulathe changes + rotating fix (#87244) ## About The Pull Request made manufacturing machines i/o overlays (the blue and orange lights and such) rotate with the machine CTRL SHIFT LMB makes the manulathe dump all mats manulathes no longer may receive ore: this was not intentional, processing ore is stuff the smelter does manulathes now use a matter bin instead of a servo (because it makes sense because it holds mats): this affects its material capacity being: bin tier * 50 sheets ## Why It's Good For The Game bug bad oversight bad and you also no longer need to decon the lathe to dump mats ## Changelog :cl: fix: input output overlays for manufacturing machines actually update properly when rotated qol: you may dump materials of a manulathe via CTRL SHIFT LMB balance: manulathes may not receive ore (not intentional) balance: manulathes now use a matter bin in their construction, which now affects their material holding capacity: 50 sheets per tier /:cl: --- .../machines/machine_circuitboards.dm | 2 +- code/modules/manufactorio/_manufacturing.dm | 6 ++++- code/modules/manufactorio/machines/crusher.dm | 2 +- code/modules/manufactorio/machines/lathe.dm | 23 ++++++++++++++++--- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index a7f4add500b8..5f793d1c2ecd 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -1758,7 +1758,7 @@ build_path = /obj/machinery/power/manufacturing/lathe req_components = list( /obj/item/stack/sheet/iron = 5, - /datum/stock_part/servo = 1, + /datum/stock_part/matter_bin = 1, ) /obj/item/circuitboard/machine/manucrusher diff --git a/code/modules/manufactorio/_manufacturing.dm b/code/modules/manufactorio/_manufacturing.dm index db177ac5ae4d..5c44d1e86151 100644 --- a/code/modules/manufactorio/_manufacturing.dm +++ b/code/modules/manufactorio/_manufacturing.dm @@ -28,7 +28,7 @@ . = ..() if(may_be_moved) . += "It receives power via cable, but certain buildings do not need power." - . += length(contents - circuit) ? "It contains:" : "Its empty." + . += length(contents - circuit) ? "It contains:" : "It contains no items." for(var/atom/movable/thing as anything in contents - circuit) var/text = thing.name var/obj/item/stack/possible_stack = thing @@ -62,6 +62,10 @@ return ITEM_INTERACT_SUCCESS return ITEM_INTERACT_BLOCKING +/obj/machinery/power/manufacturing/setDir(newdir) + . = ..() + update_appearance(UPDATE_OVERLAYS) + /obj/machinery/power/manufacturing/crowbar_act(mob/living/user, obj/item/tool) . = ITEM_INTERACT_BLOCKING if(default_deconstruction_crowbar(tool)) diff --git a/code/modules/manufactorio/machines/crusher.dm b/code/modules/manufactorio/machines/crusher.dm index 272cfeee02ee..b8cb50bb0bb7 100644 --- a/code/modules/manufactorio/machines/crusher.dm +++ b/code/modules/manufactorio/machines/crusher.dm @@ -39,7 +39,7 @@ if(gone == withholding) withholding = null -/obj/machinery/power/manufacturing/crusher/process(seconds_per_tick) //noot functional +/obj/machinery/power/manufacturing/crusher/process(seconds_per_tick) if(!isnull(withholding) && !send_resource(withholding, dir)) return for(var/material in held_mats) diff --git a/code/modules/manufactorio/machines/lathe.dm b/code/modules/manufactorio/machines/lathe.dm index 2669e851b931..431d7af1c11d 100644 --- a/code/modules/manufactorio/machines/lathe.dm +++ b/code/modules/manufactorio/machines/lathe.dm @@ -19,18 +19,35 @@ var/atom/movable/withheld /obj/machinery/power/manufacturing/lathe/Initialize(mapload) - . = ..() print_sound = new(src, FALSE) materials = AddComponent( \ /datum/component/material_container, \ SSmaterials.materials_by_category[MAT_CATEGORY_ITEM_MATERIAL], \ - SHEET_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, \ + 0, \ MATCONTAINER_EXAMINE|MATCONTAINER_NO_INSERT, \ ) + register_context() + . = ..() if(!GLOB.autounlock_techwebs[/datum/techweb/autounlocking/autolathe]) GLOB.autounlock_techwebs[/datum/techweb/autounlocking/autolathe] = new /datum/techweb/autounlocking/autolathe stored_research = GLOB.autounlock_techwebs[/datum/techweb/autounlocking/autolathe] +/obj/machinery/power/manufacturing/lathe/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB] = "Dump all contained materials" + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/power/manufacturing/lathe/click_ctrl_shift(mob/living/user) + balloon_alert_to_viewers("materials dumped") + materials.retrieve_all() + +/obj/machinery/power/manufacturing/lathe/RefreshParts() + . = ..() + var/datum/stock_part/matter_bin/bin = locate() in component_parts + materials.max_amount = bin.tier * (SHEET_MATERIAL_AMOUNT * MAX_STACK_SIZE) + + /obj/machinery/power/manufacturing/lathe/examine(mob/user) . = ..() var/datum/design/design @@ -63,7 +80,7 @@ return ..() /obj/machinery/power/manufacturing/lathe/receive_resource(atom/movable/receiving, atom/from, receive_dir) - if(!isstack(receiving) || receiving.resistance_flags & INDESTRUCTIBLE || receive_dir != REVERSE_DIR(dir)) + if(!isstack(receiving) || istype(receiving, /obj/item/stack/ore) || receiving.resistance_flags & INDESTRUCTIBLE || receive_dir != REVERSE_DIR(dir)) return MANUFACTURING_FAIL materials.insert_item(receiving) return MANUFACTURING_SUCCESS From 582cbcc2920a7f73fd88dac52e9701937b19311e Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:33:30 +0000 Subject: [PATCH 106/119] Automatic changelog for PR #87244 [ci skip] --- html/changelogs/AutoChangeLog-pr-87244.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87244.yml diff --git a/html/changelogs/AutoChangeLog-pr-87244.yml b/html/changelogs/AutoChangeLog-pr-87244.yml new file mode 100644 index 000000000000..48ae3f6f59b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87244.yml @@ -0,0 +1,7 @@ +author: "mc-oofert" +delete-after: True +changes: + - bugfix: "input output overlays for manufacturing machines actually update properly when rotated" + - qol: "you may dump materials of a manulathe via CTRL SHIFT LMB" + - balance: "manulathes may not receive ore (not intentional)" + - balance: "manulathes now use a matter bin in their construction, which now affects their material holding capacity: 50 sheets per tier" \ No newline at end of file From e90a5871d0048eb8836852aaea3634c20828463c Mon Sep 17 00:00:00 2001 From: Hatterhat <31829017+Hatterhat@users.noreply.github.com> Date: Thu, 17 Oct 2024 04:12:43 -0500 Subject: [PATCH 107/119] [NO GBP] fixes portable SMESes disappearing when opening their panel (#87250) ## About The Pull Request replaces the _o in the p_smes_o icon state with a -o so the icon actually shows up instead of turning invisible. no GBP because it's my bad. i thought i caught that ## Why It's Good For The Game SMES turning invisible when unscrewed probably not great for usability ## Changelog :cl: fix: Portable SMESes should no longer turn invisible when unscrewed. /:cl: --------- Co-authored-by: Hatterhat --- icons/obj/machines/engine/other.dmi | Bin 25316 -> 25288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/machines/engine/other.dmi b/icons/obj/machines/engine/other.dmi index 7fb5ac6e7656d59b2449d030355f377bfaa6ddd7..15390eb537c83a3a602a5ba9c5aaeefc6616e7a0 100644 GIT binary patch literal 25288 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⁡fexO1Icr9{p}39P4f*CLa4NTo46 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≦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 diff --git a/modular_nova/modules/implants/code/augments_head.dm b/modular_nova/modules/implants/code/augments_head.dm index c516035c0a16..42038a9911b0 100644 --- a/modular_nova/modules/implants/code/augments_head.dm +++ b/modular_nova/modules/implants/code/augments_head.dm @@ -12,7 +12,7 @@ systems that heavily influence the user's nervous system, like the central nervous system rebooter." icon = 'modular_nova/modules/implants/icons/implants.dmi' icon_state = "sandy" - slot = ORGAN_SLOT_BRAIN_ANTISTUN + slot = ORGAN_SLOT_BRAIN_CNS zone = BODY_ZONE_HEAD implant_overlay = null implant_color = null @@ -130,7 +130,7 @@ hacking for you. Due to their complexity, the system does not appear to work on cyborgs." icon = 'modular_nova/modules/implants/icons/implants.dmi' icon_state = "hackerman" - slot = ORGAN_SLOT_BRAIN_ANTISTUN + slot = ORGAN_SLOT_BRAIN_CNS zone = BODY_ZONE_HEAD implant_overlay = null implant_color = null diff --git a/modular_nova/modules/implants/code/augments_internal.dm b/modular_nova/modules/implants/code/augments_internal.dm index ea4158bfc238..1d52cedeacf7 100644 --- a/modular_nova/modules/implants/code/augments_internal.dm +++ b/modular_nova/modules/implants/code/augments_internal.dm @@ -3,7 +3,7 @@ desc = "This implant will automatically attempt to jolt you awake when it detects you have fallen unconscious outside of REM sleeping cycles. Has a short cooldown. Conflicts with the CNS Rebooter, making them incompatible with eachother." icon_state = "brain_implant_rebooter" implant_color = "#0356fc" - slot = ORGAN_SLOT_BRAIN_ANTISTUN //One or the other, not both. + slot = ORGAN_SLOT_BRAIN_CNS //One or the other, not both. var/cooldown /obj/item/organ/internal/cyberimp/brain/anti_sleep/on_life(seconds_per_tick, times_fired) diff --git a/tgstation.dme b/tgstation.dme index 8ca621eda051..c4a90bb4d0e3 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1900,6 +1900,8 @@ #include "code\datums\quirks\positive_quirks\alcohol_tolerance.dm" #include "code\datums\quirks\positive_quirks\apathetic.dm" #include "code\datums\quirks\positive_quirks\bilingual.dm" +#include "code\datums\quirks\positive_quirks\chip_connector.dm" +#include "code\datums\quirks\positive_quirks\chipped.dm" #include "code\datums\quirks\positive_quirks\clown_enjoyer.dm" #include "code\datums\quirks\positive_quirks\drunk_healing.dm" #include "code\datums\quirks\positive_quirks\empath.dm" @@ -2012,6 +2014,7 @@ #include "code\datums\status_effects\debuffs\stamcrit.dm" #include "code\datums\status_effects\debuffs\static_vision.dm" #include "code\datums\status_effects\debuffs\strandling.dm" +#include "code\datums\status_effects\debuffs\temperature_over_time.dm" #include "code\datums\status_effects\debuffs\terrified.dm" #include "code\datums\status_effects\debuffs\tower_of_babel.dm" #include "code\datums\status_effects\debuffs\tox_vomit.dm" @@ -3881,6 +3884,7 @@ #include "code\modules\client\preferences\blindfold_color.dm" #include "code\modules\client\preferences\body_type.dm" #include "code\modules\client\preferences\broadcast_login_logout.dm" +#include "code\modules\client\preferences\chipped.dm" #include "code\modules\client\preferences\clothing.dm" #include "code\modules\client\preferences\darkened_flash.dm" #include "code\modules\client\preferences\food_allergy.dm" @@ -4616,6 +4620,7 @@ #include "code\modules\library\random_books.dm" #include "code\modules\library\skill_learning\skill_station.dm" #include "code\modules\library\skill_learning\skillchip.dm" +#include "code\modules\library\skill_learning\generic_skillchips\acrobatics.dm" #include "code\modules\library\skill_learning\generic_skillchips\matrix_taunt.dm" #include "code\modules\library\skill_learning\generic_skillchips\misc.dm" #include "code\modules\library\skill_learning\generic_skillchips\musical.dm" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx new file mode 100644 index 000000000000..ed61233251c2 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/chipped.tsx @@ -0,0 +1,6 @@ +import { FeatureIconnedDropdownInput, FeatureWithIcons } from '../dropdowns'; + +export const chipped: FeatureWithIcons = { + name: 'Chipped', + component: FeatureIconnedDropdownInput, +}; From 9970c6086722624b38c9dafd69bc7de6d4ced50d Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 08:48:07 +0000 Subject: [PATCH 047/119] Automatic changelog for PR #87082 [ci skip] --- html/changelogs/AutoChangeLog-pr-87082.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87082.yml diff --git a/html/changelogs/AutoChangeLog-pr-87082.yml b/html/changelogs/AutoChangeLog-pr-87082.yml new file mode 100644 index 000000000000..355d06d08803 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87082.yml @@ -0,0 +1,7 @@ +author: "carlarctg" +delete-after: True +changes: + - rscadd: "Added the FOSBURY skillchip, found in hacked toy vendors. This skillchip allows you to bypass the emote cooldown when flipping or spinning. However, if used too often, it will lower the chip's integrity and cause malfunctions." + - rscadd: "Added the Chipped quirk. It allows you to spawn with one base skillchip. (not the one above)" + - rscadd: "Added the Chip Connector quirk. It contains a new implant, the chip connector, which allows you to install and take out skillchips at any time." + - code_imp: "Renamed the organ slots for brain implants and made the connector implant take the CNS slot." \ No newline at end of file From 549cd262a2467e5866b33664fa91b82725f0875a Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Mon, 14 Oct 2024 01:50:56 -0700 Subject: [PATCH 048/119] Webhook: Prevent connection errors to game servers from blocking discord announces (#87179) Just a guess, but i think basil being down is why this isn't working. --- .../github_webhook_processor.php | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tools/WebhookProcessor/github_webhook_processor.php b/tools/WebhookProcessor/github_webhook_processor.php index a96960805de1..e2d54b58baec 100644 --- a/tools/WebhookProcessor/github_webhook_processor.php +++ b/tools/WebhookProcessor/github_webhook_processor.php @@ -396,13 +396,13 @@ function handle_pr($payload) { $repo_name = $payload['repository']['name']; - if (in_array($repo_name, $game_announce_whitelist)) { - game_announce($action, $payload, $pr_flags); - } - if (!is_blacklisted($discord_announce_blacklist, $repo_name)) { discord_announce($action, $payload, $pr_flags); } + + if (in_array($repo_name, $game_announce_whitelist)) { + game_announce($action, $payload, $pr_flags); + } } function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { @@ -491,10 +491,15 @@ function game_announce($action, $payload, $pr_flags) { $msg = '?announce='.urlencode($msg).'&payload='.urlencode(json_encode($game_payload)); foreach ($game_servers as $serverid => $server) { - $server_message = $msg; - if (isset($server['comskey'])) - $server_message .= '&key='.urlencode($server['comskey']); - game_server_send($server['address'], $server['port'], $server_message); + try { + $server_message = $msg; + if (isset($server['comskey'])) + $server_message .= '&key='.urlencode($server['comskey']); + game_server_send($server['address'], $server['port'], $server_message); + } catch (exception $e) { + log_error('Error on line ' . $e->getLine() . ': ' . $e->getMessage()); + continue; + } } } From a5f630140906b5db808a9debeae1ba332fc0059a Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:12:44 +0300 Subject: [PATCH 049/119] Id card handling sounds (#87193) --- code/game/objects/items/cards_ids.dm | 5 +++++ sound/items/handling/id_card/attribution.txt | 2 ++ sound/items/handling/id_card/id_card_drop1.ogg | Bin 0 -> 7125 bytes sound/items/handling/id_card/id_card_pickup1.ogg | Bin 0 -> 8078 bytes 4 files changed, 7 insertions(+) create mode 100644 sound/items/handling/id_card/attribution.txt create mode 100644 sound/items/handling/id_card/id_card_drop1.ogg create mode 100644 sound/items/handling/id_card/id_card_pickup1.ogg diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index b8153179f02a..73ce50bc6683 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -26,6 +26,9 @@ lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' w_class = WEIGHT_CLASS_TINY + pickup_sound = 'sound/items/handling/id_card/id_card_pickup1.ogg' + drop_sound = 'sound/items/handling/id_card/id_card_drop1.ogg' + sound_vary = TRUE /// Cached icon that has been built for this card. Intended to be displayed in chat. Cardboards IDs and actual IDs use it. var/icon/cached_flat_icon @@ -1852,6 +1855,8 @@ var/scribbled_trim ///The colors for each of the above variables, for when overlays are updated. var/details_colors = list(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK) + pickup_sound = 'sound/items/handling/materials/cardboard_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/cardboard_drop.ogg' /obj/item/card/cardboard/equipped(mob/user, slot, initial = FALSE) . = ..() diff --git a/sound/items/handling/id_card/attribution.txt b/sound/items/handling/id_card/attribution.txt new file mode 100644 index 000000000000..1bb71cf8f7ee --- /dev/null +++ b/sound/items/handling/id_card/attribution.txt @@ -0,0 +1,2 @@ +id_card handling sounds made by sadboysuss +license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/handling/id_card/id_card_drop1.ogg b/sound/items/handling/id_card/id_card_drop1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..81cfbb50e435c15dd2cc425785a527aa0ab39f78 GIT binary patch literal 7125 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 Z!|4Lex{HBVy~;ZIp+5Jk0{##8{Xd+9P=){i literal 0 HcmV?d00001 diff --git a/sound/items/handling/id_card/id_card_pickup1.ogg b/sound/items/handling/id_card/id_card_pickup1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cbd01a1189f5a8618786ec3d1ab39d2ac0297b8d GIT binary patch literal 8078 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 Cdhz)H literal 0 HcmV?d00001 From 352e6a17c294a54c787e9e59699abfad06bab7e8 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 10:14:38 +0000 Subject: [PATCH 050/119] Automatic changelog for PR #87193 [ci skip] --- html/changelogs/AutoChangeLog-pr-87193.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87193.yml diff --git a/html/changelogs/AutoChangeLog-pr-87193.yml b/html/changelogs/AutoChangeLog-pr-87193.yml new file mode 100644 index 000000000000..36688beb1467 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87193.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "cards have new handling sounds" \ No newline at end of file From 6ea20a6d86e6bc99fc73090ec46a67a7ba215e77 Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:49:38 +0300 Subject: [PATCH 051/119] medical, jani, soulstone, grenade belt handling sounds the same as tool belt (#87208) ## About The Pull Request same sounds as the toolbelt ## Why It's Good For The Game I think it fits ## Changelog :cl: grungussuss sound: medical, jani, soulstone, grenade belts got sounds /:cl: --- code/game/objects/items/storage/belt.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index d73c490ca4bf..586e1461527c 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -230,6 +230,8 @@ icon_state = "medical" inhand_icon_state = "medical" worn_icon_state = "medical" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/medical/Initialize(mapload) . = ..() @@ -497,6 +499,8 @@ icon_state = "soulstonebelt" inhand_icon_state = "soulstonebelt" worn_icon_state = "soulstonebelt" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/soulstone/Initialize(mapload) . = ..() @@ -632,6 +636,8 @@ icon_state = "grenadebeltnew" inhand_icon_state = "security" worn_icon_state = "grenadebeltnew" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/grenade/Initialize(mapload) . = ..() @@ -695,6 +701,8 @@ icon_state = "janibelt" inhand_icon_state = "janibelt" worn_icon_state = "janibelt" + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/janitor/Initialize(mapload) . = ..() From 8baeeaeb36bd480253b83a6d9a9e0ce284195747 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:50:01 +0000 Subject: [PATCH 052/119] Automatic changelog for PR #87208 [ci skip] --- html/changelogs/AutoChangeLog-pr-87208.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87208.yml diff --git a/html/changelogs/AutoChangeLog-pr-87208.yml b/html/changelogs/AutoChangeLog-pr-87208.yml new file mode 100644 index 000000000000..3224087239db --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87208.yml @@ -0,0 +1,4 @@ +author: "grungussuss" +delete-after: True +changes: + - sound: "medical, jani, soulstone, grenade belts got sounds" \ No newline at end of file From a351146bf4d195e29d6288455ccd0f68a476635a Mon Sep 17 00:00:00 2001 From: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:34:50 -0700 Subject: [PATCH 053/119] map votes are now simple, and tell you what the effective tallies were (#87218) :cl: qol: map votes are now winner take all instead of weighted. /:cl: --- code/controllers/subsystem/map_vote.dm | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/map_vote.dm b/code/controllers/subsystem/map_vote.dm index 881652b472db..d5708cd9d087 100644 --- a/code/controllers/subsystem/map_vote.dm +++ b/code/controllers/subsystem/map_vote.dm @@ -79,15 +79,33 @@ SUBSYSTEM_DEF(map_vote) send_map_vote_notice("No valid maps.") return - var/winner = pick_weight(filter_cache_to_valid_maps()) + var/winner + var/winner_amount = 0 + for(var/map in valid_maps) + if(!winner_amount) + winner = map + winner_amount = map_vote_cache[map] + continue + if(map_vote_cache[map] <= winner_amount) + continue + winner = map + winner_amount = map_vote_cache[map] + + ASSERT(winner, "No winner found in map vote.") set_next_map(config.maplist[winner]) - send_map_vote_notice("Map Selected - [span_bold(next_map_config.map_name)]") + var/list/messages = list("Map Selected - [span_bold(next_map_config.map_name)]") + messages += "Tallies at the time of selection:" + messages += tally_printout // do not reset tallies if only one map is even possible if(length(valid_maps) > 1) map_vote_cache[winner] = CONFIG_GET(number/map_vote_minimum_tallies) write_cache() update_tally_printout() + else + messages += "Only one map was possible, tallies were not reset." + + send_map_vote_notice(arglist(messages)) /// Returns a list of all map options that are invalid for the current population. /datum/controller/subsystem/map_vote/proc/get_valid_map_vote_choices() From 82bf581053cfadb55588dec67dd832714fa7fba0 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:35:14 +0000 Subject: [PATCH 054/119] Automatic changelog for PR #87218 [ci skip] --- html/changelogs/AutoChangeLog-pr-87218.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87218.yml diff --git a/html/changelogs/AutoChangeLog-pr-87218.yml b/html/changelogs/AutoChangeLog-pr-87218.yml new file mode 100644 index 000000000000..d6b17a11a454 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87218.yml @@ -0,0 +1,4 @@ +author: "ZephyrTFA" +delete-after: True +changes: + - qol: "map votes are now winner take all instead of weighted." \ No newline at end of file From 51ccb4260cd64871c4260742d4fc9fb9bdc7d6e4 Mon Sep 17 00:00:00 2001 From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Date: Tue, 15 Oct 2024 03:18:37 +0300 Subject: [PATCH 055/119] slightly redoes how animals hunt for food (#87166) ## About The Pull Request before, if u wanted to make ur animal hunt for food, u had to give them the find food subtree, the attacking subtree, and had to edit their targeting stratedgy to include items. this makes it so u only have to give them just 1 subtree which will handle everything it needs to. also makes it alot more customizable, u can now set a hunger cooldown for ur animals, and cute emotes for them to play after eating food ## Why It's Good For The Game makes it more convenient for future devs to include food hunting behaviors to their animals, while also making it more customizable ## Changelog :cl: code: animals' food hunting behavior has been refactored, please report any bugs /:cl: --- code/__DEFINES/ai/ai_blackboard.dm | 15 ++++++++-- code/__DEFINES/basic_mobs.dm | 3 ++ .../ai/basic_mobs/base_basic_controller.dm | 6 ++++ .../interact_with_target.dm | 27 +++++++++++++++++ .../ai/basic_mobs/basic_subtrees/find_food.dm | 30 ++++++++++++++++--- .../living/basic/farm_animals/cow/cow_ai.dm | 4 +-- .../basic/farm_animals/gorilla/gorilla_ai.dm | 4 +-- .../basic/lavaland/goliath/goliath_ai.dm | 2 +- .../lavaland/lobstrosity/lobstrosity_ai.dm | 4 +-- .../lavaland/raptor/raptor_ai_controller.dm | 13 +------- .../lavaland/raptor/raptor_ai_subtrees.dm | 2 +- .../mob/living/basic/pets/orbie/orbie_ai.dm | 3 +- .../living/basic/ruin_defender/skeleton.dm | 2 +- .../space_fauna/carp/carp_controllers.dm | 10 +++---- .../living/basic/space_fauna/snake/snake.dm | 4 +-- .../modules/mob/living/basic/vermin/lizard.dm | 3 +- .../basic/vermin/mothroach/mothroach_ai.dm | 23 ++------------ tgstation.dme | 1 + 18 files changed, 96 insertions(+), 60 deletions(-) create mode 100644 code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index 0c682f7d411a..2b25d0cfb31e 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -123,6 +123,18 @@ ///list of foods this mob likes #define BB_BASIC_FOODS "BB_basic_foods" +///key holding any food we've found +#define BB_TARGET_FOOD "BB_TARGET_FOOD" + +///key holding emotes we play after eating +#define BB_EAT_EMOTES "BB_eat_emotes" + +///key holding the next time we eat +#define BB_NEXT_FOOD_EAT "BB_next_food_eat" + +///key holding our eating cooldown +#define BB_EAT_FOOD_COOLDOWN "BB_eat_food_cooldown" + /// Blackboard key for a held item #define BB_SIMPLE_CARRY_ITEM "BB_SIMPLE_CARRY_ITEM" @@ -168,5 +180,4 @@ /// For /datum/ai_behavior/find_potential_targets, what if any field are we using currently #define BB_FIND_TARGETS_FIELD(type) "bb_find_targets_field_[type]" -///mothroach next meal key! -#define BB_MOTHROACH_NEXT_EAT "mothroach_next_eat" + diff --git a/code/__DEFINES/basic_mobs.dm b/code/__DEFINES/basic_mobs.dm index 6696da857c8e..12ddaa3a68af 100644 --- a/code/__DEFINES/basic_mobs.dm +++ b/code/__DEFINES/basic_mobs.dm @@ -24,6 +24,9 @@ /// Above this speed we stop gliding because it looks silly #define END_GLIDE_SPEED 10 +///hunger cooldown for basic mobs +#define EAT_FOOD_COOLDOWN 45 SECONDS + ///mook attack status flags #define MOOK_ATTACK_NEUTRAL 0 #define MOOK_ATTACK_WARMUP 1 diff --git a/code/datums/ai/basic_mobs/base_basic_controller.dm b/code/datums/ai/basic_mobs/base_basic_controller.dm index f21d31b05000..7ab15437f7d3 100644 --- a/code/datums/ai/basic_mobs/base_basic_controller.dm +++ b/code/datums/ai/basic_mobs/base_basic_controller.dm @@ -9,6 +9,7 @@ update_speed(basic_mob) RegisterSignals(basic_mob, list(POST_BASIC_MOB_UPDATE_VARSPEED, COMSIG_MOB_MOVESPEED_UPDATED), PROC_REF(update_speed)) + RegisterSignal(basic_mob, COMSIG_MOB_ATE, PROC_REF(on_mob_eat)) return ..() //Run parent at end @@ -44,3 +45,8 @@ /datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic/basic_mob) SIGNAL_HANDLER movement_delay = basic_mob.cached_multiplicative_slowdown + +/datum/ai_controller/basic_controller/proc/on_mob_eat() + SIGNAL_HANDLER + var/food_cooldown = blackboard[BB_EAT_FOOD_COOLDOWN] || EAT_FOOD_COOLDOWN + set_blackboard_key(BB_NEXT_FOOD_EAT, world.time + food_cooldown) diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm new file mode 100644 index 000000000000..3b0c4245656e --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm @@ -0,0 +1,27 @@ +///behavior for general interactions with any targets +/datum/ai_behavior/interact_with_target + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH + ///should we be clearing the target after the fact? + var/clear_target = TRUE + +/datum/ai_behavior/interact_with_target/setup(datum/ai_controller/controller, target_key) + . = ..() + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target)) + return FALSE + set_movement_target(controller, target) + +/datum/ai_behavior/interact_with_target/perform(seconds_per_tick, datum/ai_controller/controller, target_key) + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target) || !pre_interact(controller, target)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED + controller.ai_interact(target) + return AI_BEHAVIOR_SUCCEEDED | AI_BEHAVIOR_DELAY + +/datum/ai_behavior/interact_with_target/finish_action(datum/ai_controller/controller, succeeded, target_key) + . = ..() + if(clear_target || !succeeded) + controller.clear_blackboard_key(target_key) + +/datum/ai_behavior/interact_with_target/proc/pre_interact(datum/ai_controller/controller, target) + return TRUE diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm index 9e3cd557b643..f05c357b1a84 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm @@ -4,11 +4,33 @@ var/datum/ai_behavior/finding_behavior = /datum/ai_behavior/find_and_set/in_list ///key of foods list var/food_list_key = BB_BASIC_FOODS + ///key where we store our food + var/found_food_key = BB_TARGET_FOOD + ///key holding any emotes we play after eating food + var/emotes_blackboard_list = BB_EAT_EMOTES /datum/ai_planning_subtree/find_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - . = ..() - if(controller.blackboard_key_exists(BB_BASIC_MOB_CURRENT_TARGET)) - // Busy with something + if(controller.blackboard[BB_NEXT_FOOD_EAT] > world.time) + return + if(!controller.blackboard_key_exists(found_food_key)) + controller.queue_behavior(finding_behavior, found_food_key, controller.blackboard[food_list_key]) return + controller.queue_behavior(/datum/ai_behavior/interact_with_target/eat_food, found_food_key, emotes_blackboard_list) + return SUBTREE_RETURN_FINISH_PLANNING + +/datum/ai_behavior/interact_with_target/eat_food + ///default list of actions we take after eating + var/list/food_actions = list( + "eats up happily!", + "chomps with glee!", + ) - controller.queue_behavior(finding_behavior, BB_BASIC_MOB_CURRENT_TARGET, controller.blackboard[food_list_key]) +/datum/ai_behavior/interact_with_target/eat_food/perform(seconds_per_tick, datum/ai_controller/controller, target_key, emotes_blackboard_list) + . = ..() + if(. & AI_BEHAVIOR_FAILED) + return + var/list/emotes_to_pick = controller.blackboard[emotes_blackboard_list] || food_actions + if(!length(emotes_to_pick)) + return + var/mob/living/living_pawn = controller.pawn + living_pawn.manual_emote(pick(emotes_to_pick)) diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm b/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm index e1e611a28c2a..cedc39f64f3f 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/cow_ai.dm @@ -1,6 +1,6 @@ /datum/ai_controller/basic_controller/cow blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_BASIC_MOB_TIP_REACTING = FALSE, BB_BASIC_MOB_TIPPER = null, ) @@ -11,7 +11,5 @@ planning_subtrees = list( /datum/ai_planning_subtree/tip_reaction, /datum/ai_planning_subtree/find_food, - //attacking the food will eat it - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/random_speech/cow, ) diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm index 28a727fdb1bc..de55865b5fad 100644 --- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_ai.dm @@ -1,7 +1,7 @@ /// Pretty basic, just click people to death. Also hunt and eat bananas. /datum/ai_controller/basic_controller/gorilla blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_TARGET_MINIMUM_STAT = UNCONSCIOUS, BB_EMOTE_KEY = "ooga", BB_EMOTE_CHANCE = 40, @@ -13,10 +13,10 @@ planning_subtrees = list( /datum/ai_planning_subtree/run_emote, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/attack_obstacle_in_path/gorilla, /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/find_food, ) /datum/ai_planning_subtree/attack_obstacle_in_path/gorilla diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm index 86ba1e003208..3bf9d1d8f335 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath_ai.dm @@ -3,7 +3,7 @@ /datum/ai_controller/basic_controller/goliath blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_TARGET_MINIMUM_STAT = HARD_CRIT, ) diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm index de62b43e4a05..de6ca4a0cc1b 100644 --- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity_ai.dm @@ -7,7 +7,7 @@ /datum/ai_controller/basic_controller/lobstrosity blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_MINIMUM_STAT = HARD_CRIT, BB_LOBSTROSITY_EXPLOIT_TRAITS = list(TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT), @@ -45,7 +45,7 @@ ///Ensure that juveline lobstrosities witll charge at things they can reach. /datum/ai_controller/basic_controller/lobstrosity/juvenile blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_MINIMUM_STAT = SOFT_CRIT, BB_LOBSTROSITY_EXPLOIT_TRAITS = list(TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT), diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm index 8178df7b78c2..d9bada12ee8d 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm @@ -1,5 +1,3 @@ -#define NEXT_EAT_COOLDOWN 45 SECONDS - /datum/ai_controller/basic_controller/raptor blackboard = list( BB_INTERACTIONS_WITH_OWNER = list( @@ -34,16 +32,9 @@ /datum/ai_planning_subtree/find_and_hunt_target/play_with_owner/raptor, ) -/datum/ai_controller/basic_controller/raptor/TryPossessPawn(atom/new_pawn) +/datum/ai_controller/basic_controller/raptor/on_mob_eat() . = ..() - if(. & AI_CONTROLLER_INCOMPATIBLE) - return - RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(post_eat)) - -/datum/ai_controller/basic_controller/raptor/proc/post_eat() - SIGNAL_HANDLER clear_blackboard_key(BB_RAPTOR_TROUGH_TARGET) - set_blackboard_key(BB_RAPTOR_EAT_COOLDOWN, world.time + NEXT_EAT_COOLDOWN) /datum/ai_controller/basic_controller/baby_raptor blackboard = list( @@ -62,5 +53,3 @@ /datum/ai_planning_subtree/express_happiness, /datum/ai_planning_subtree/look_for_adult, ) - -#undef NEXT_EAT_COOLDOWN diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm index a8d91963ebfb..2b88cc3282bd 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_subtrees.dm @@ -56,7 +56,7 @@ hunt_range = 9 /datum/ai_planning_subtree/find_and_hunt_target/raptor_trough/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - if(world.time < controller.blackboard[BB_RAPTOR_EAT_COOLDOWN]) + if(world.time < controller.blackboard[BB_NEXT_FOOD_EAT]) return return ..() diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm index 1452dd18dee0..a978b750d503 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm @@ -3,7 +3,7 @@ /datum/ai_controller/basic_controller/orbie blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TRICK_NAME = "Trick", ) @@ -13,7 +13,6 @@ planning_subtrees = list( /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/find_playmates, - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/relay_pda_message, /datum/ai_planning_subtree/pet_planning, ) diff --git a/code/modules/mob/living/basic/ruin_defender/skeleton.dm b/code/modules/mob/living/basic/ruin_defender/skeleton.dm index e6754a80a22d..5eb8fda15232 100644 --- a/code/modules/mob/living/basic/ruin_defender/skeleton.dm +++ b/code/modules/mob/living/basic/ruin_defender/skeleton.dm @@ -162,7 +162,7 @@ /// Skeletons mostly just beat people to death, but they'll also find and drink milk. /datum/ai_controller/basic_controller/skeleton blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_TARGET_MINIMUM_STAT = HARD_CRIT, BB_EMOTE_KEY = "rattles", BB_EMOTE_CHANCE = 20, diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm index ae011f5b14a3..93ede010eb6d 100644 --- a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm @@ -10,7 +10,7 @@ /datum/ai_controller/basic_controller/carp blackboard = list( BB_BASIC_MOB_STOP_FLEEING = TRUE, - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN, BB_CARPS_FEAR_FISHERMAN = TRUE, @@ -24,11 +24,11 @@ /datum/ai_planning_subtree/find_target_prioritize_traits, /datum/ai_planning_subtree/make_carp_rift/panic_teleport, /datum/ai_planning_subtree/flee_target/from_fisherman, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/attack_obstacle_in_path/carp, /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, /datum/ai_planning_subtree/basic_melee_attack_subtree/no_fisherman, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/carp_migration, ) @@ -36,7 +36,7 @@ /datum/ai_controller/basic_controller/carp/mega blackboard = list( BB_BASIC_MOB_STOP_FLEEING = TRUE, - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN, BB_CARPS_FEAR_FISHERMAN = FALSE, @@ -46,12 +46,12 @@ /datum/ai_planning_subtree/simple_find_nearest_target_to_flee, /datum/ai_planning_subtree/make_carp_rift/panic_teleport, /datum/ai_planning_subtree/flee_target, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/find_target_prioritize_traits, /datum/ai_planning_subtree/attack_obstacle_in_path/carp, /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/carp_migration, ) /** @@ -90,13 +90,13 @@ /datum/ai_planning_subtree/find_target_prioritize_traits, /datum/ai_planning_subtree/make_carp_rift/panic_teleport, /datum/ai_planning_subtree/flee_target/from_fisherman, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/find_nearest_magicarp_spell_target, /datum/ai_planning_subtree/targeted_mob_ability/magicarp, /datum/ai_planning_subtree/attack_obstacle_in_path/carp, /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, /datum/ai_planning_subtree/basic_melee_attack_subtree/magicarp, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/carp_migration, ) diff --git a/code/modules/mob/living/basic/space_fauna/snake/snake.dm b/code/modules/mob/living/basic/space_fauna/snake/snake.dm index 78f7d86e0db3..3125ae9d3235 100644 --- a/code/modules/mob/living/basic/space_fauna/snake/snake.dm +++ b/code/modules/mob/living/basic/space_fauna/snake/snake.dm @@ -73,7 +73,7 @@ /// Snakes are primarily concerned with getting those tasty, tasty mice, but aren't afraid to strike back at those who attack them /datum/ai_controller/basic_controller/snake blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -82,7 +82,7 @@ planning_subtrees = list( /datum/ai_planning_subtree/target_retaliate, - /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/find_food, /datum/ai_planning_subtree/random_speech/snake, ) diff --git a/code/modules/mob/living/basic/vermin/lizard.dm b/code/modules/mob/living/basic/vermin/lizard.dm index c1c21850ee62..5e3a07094a91 100644 --- a/code/modules/mob/living/basic/vermin/lizard.dm +++ b/code/modules/mob/living/basic/vermin/lizard.dm @@ -64,7 +64,7 @@ /datum/ai_controller/basic_controller/lizard blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -72,7 +72,6 @@ idle_behavior = /datum/idle_behavior/idle_random_walk planning_subtrees = list( /datum/ai_planning_subtree/find_food, - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/random_speech/lizard, ) diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm index bed72a982399..c9e8558ec5c4 100644 --- a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm +++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm @@ -1,10 +1,9 @@ -#define MOTHROACH_EAT_TIMER 1 MINUTES - /datum/ai_controller/basic_controller/mothroach blackboard = list( BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + BB_EAT_FOOD_COOLDOWN = 1 MINUTES, ) ai_traits = STOP_MOVING_WHEN_PULLED @@ -15,28 +14,12 @@ /datum/ai_planning_subtree/find_food/mothroach, /datum/ai_planning_subtree/target_retaliate/to_flee, /datum/ai_planning_subtree/flee_target/from_flee_key, - /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/random_speech/mothroach, ) -/datum/ai_controller/basic_controller/mothroach/TryPossessPawn(atom/new_pawn) - . = ..() - if(. & AI_CONTROLLER_INCOMPATIBLE) - return - RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(on_eaten)) - -/datum/ai_controller/basic_controller/mothroach/proc/on_eaten(datum/source) - SIGNAL_HANDLER - set_blackboard_key(BB_MOTHROACH_NEXT_EAT, world.time + MOTHROACH_EAT_TIMER) - /datum/ai_planning_subtree/find_food/mothroach finding_behavior = /datum/ai_behavior/find_and_set/in_list/mothroach_food -/datum/ai_planning_subtree/find_food/mothroach/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - if(world.time < controller.blackboard[BB_MOTHROACH_NEXT_EAT]) - return - return ..() - /datum/ai_behavior/find_and_set/in_list/mothroach_food /datum/ai_behavior/find_and_set/in_list/mothroach_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range) @@ -45,5 +28,3 @@ found -= living_pawn.loc if(length(found)) return pick(found) - -#undef MOTHROACH_EAT_TIMER diff --git a/tgstation.dme b/tgstation.dme index c4a90bb4d0e3..e038b962d321 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1001,6 +1001,7 @@ #include "code\datums\ai\basic_mobs\basic_ai_behaviors\climb_tree.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\emote_with_target.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\find_parent.dm" +#include "code\datums\ai\basic_mobs\basic_ai_behaviors\interact_with_target.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\nearest_targeting.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\pick_up_item.dm" #include "code\datums\ai\basic_mobs\basic_ai_behaviors\pull_target.dm" From 40b0bf5d861c67c044b969b92ebeecd91f4cd7b2 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 00:33:06 +0000 Subject: [PATCH 056/119] Automatic changelog for PR #87166 [ci skip] --- html/changelogs/AutoChangeLog-pr-87166.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87166.yml diff --git a/html/changelogs/AutoChangeLog-pr-87166.yml b/html/changelogs/AutoChangeLog-pr-87166.yml new file mode 100644 index 000000000000..e3faa3745a51 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87166.yml @@ -0,0 +1,4 @@ +author: "Ben10Omintrix" +delete-after: True +changes: + - code_imp: "animals' food hunting behavior has been refactored, please report any bugs" \ No newline at end of file From 0a624bb7ebcca1b72ab3824cdc61a929926733a8 Mon Sep 17 00:00:00 2001 From: Bloop <13398309+vinylspiders@users.noreply.github.com> Date: Tue, 15 Oct 2024 00:36:41 -0400 Subject: [PATCH 057/119] Fixes improper static list declarations + adds grep for it (#87207) ## About The Pull Request I randomly came across a `var/list/static` in the code, which does not actually do what was intended, and thought it was silly. A ctrl+f revealed that this was a fairly common mistake, so I went and fixed all the instances of it I could find. ~~Including one in lighting code, which it looked like they were trying to create a global list to cache generated lighting sheet values for speed, but it was just a normal list that got created each time pointlessly. Now those values are actually being cached (using a global var, because a `static` list was not the right thing to use there in the first place).~~ Nevermind, it seems that this was in fact being cached even if it shouldn't have been, because byond. Just rearranged it there seeing as it works either way. ## Why It's Good For The Game Code that does what it's supposed to ## Changelog :cl: fix: fixes a bunch of improper static list declarations /:cl: # Conflicts: # code/game/objects/items/kirby_plants/kirbyplants.dm --- code/datums/components/riding/riding.dm | 2 +- code/datums/mutations/speech.dm | 2 +- .../objects/items/kirby_plants/kirbyplants.dm | 19 +++++++++---------- code/game/objects/structures/traps.dm | 4 ++-- code/modules/lighting/lighting_source.dm | 8 +++++--- code/modules/mapping/ruins.dm | 2 +- .../boulder_processing/boulder_types.dm | 4 ++-- .../projectiles/projectile/bullets/special.dm | 2 +- .../spells/spell_types/conjure/simian.dm | 2 +- .../code/game/objects/items/kirby_plants.dm | 3 +++ .../ruins/spaceruin_code/hilbertshotel.dm | 2 +- .../ashwalkers/code/items/ash_seedmesh.dm | 2 +- tgstation.dme | 1 + tools/ci/check_grep.sh | 7 +++++++ 14 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 modular_nova/master_files/code/game/objects/items/kirby_plants.dm diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index cfdaf605878b..e34e763ae839 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -195,7 +195,7 @@ if(diroffsets.len == 3) buckled_mob.layer = diroffsets[3] break dir_loop - var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) + var/static/list/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) var/px = default_vehicle_pixel_offsets[AM_dir] var/py = default_vehicle_pixel_offsets[AM_dir] if(directional_vehicle_offsets[AM_dir]) diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index b9367cfdcdc8..f487ac56c133 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -79,7 +79,7 @@ // Used to replace the original later var/og_word = editing_word // Iterating through each replaceable-string in the .json - var/list/static/super_wacky_words = strings("heckacious.json", "heckacious") + var/static/list/super_wacky_words = strings("heckacious.json", "heckacious") // If the word doesn't get replaced we might do something with it later var/word_edited diff --git a/code/game/objects/items/kirby_plants/kirbyplants.dm b/code/game/objects/items/kirby_plants/kirbyplants.dm index d493dafece3e..bad39eb8b649 100644 --- a/code/game/objects/items/kirby_plants/kirbyplants.dm +++ b/code/game/objects/items/kirby_plants/kirbyplants.dm @@ -19,9 +19,7 @@ var/dead = FALSE ///If it's a special named plant, set this to true to prevent dead-name overriding. var/custom_plant_name = FALSE - var/list/static/random_plant_states - /// Maximum icon state number - KEEP THIS UP TO DATE - var/random_state_cap = 43 // NOVA EDIT ADDITION + var/static/list/random_plant_states /obj/item/kirbyplants/Initialize(mapload) . = ..() @@ -67,22 +65,24 @@ /// Cycle basic plant visuals /obj/item/kirbyplants/proc/change_visual() - if(!random_plant_states) - generate_states() + if(isnull(random_plant_states)) + random_plant_states = generate_states() var/current = random_plant_states.Find(icon_state) var/next = WRAP(current+1,1,length(random_plant_states)) icon_state = random_plant_states[next] /obj/item/kirbyplants/proc/generate_states() - random_plant_states = list() + var/list/plant_states = list() for(var/i in 1 to random_state_cap) //NOVA EDIT CHANGE - ORIGINAL: for(var/i in 1 to 24) var/number if(i < 10) number = "0[i]" else number = "[i]" - random_plant_states += "plant-[number]" - random_plant_states += list("applebush", "monkeyplant") //NOVA EDIT CHANGE - ORIGINAL:random_plant_states += "applebush" + plant_states += "plant-[number]" + plant_states += list("applebush", "monkeyplant") //NOVA EDIT CHANGE - ORIGINAL: plant_states += "applebush" + + return plant_states /obj/item/kirbyplants/random icon = 'icons/obj/fluff/flora/_flora.dmi' @@ -90,8 +90,7 @@ /obj/item/kirbyplants/random/Initialize(mapload) . = ..() - //icon = 'icons/obj/flora/plants.dmi' // ORIGINAL - icon = 'modular_nova/modules/aesthetics/plants/plants.dmi' //NOVA EDIT CHANGE + icon = 'modular_nova/modules/aesthetics/plants/plants.dmi' //NOVA EDIT CHANGE - ORIGINAL: icon = 'icons/obj/flora/plants.dmi' randomize_base_icon_state() //Handles randomizing the icon during initialize() diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index a30a59e45a2c..11f4817b94cf 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -12,7 +12,7 @@ var/charges = INFINITY var/antimagic_flags = MAGIC_RESISTANCE - var/list/static/ignore_typecache + var/static/list/ignore_typecache var/list/mob/immune_minds = list() var/sparks = TRUE @@ -30,7 +30,7 @@ ) AddElement(/datum/element/connect_loc, loc_connections) - if(!ignore_typecache) + if(isnull(ignore_typecache)) ignore_typecache = typecacheof(list( /obj/effect, /mob/dead, diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index 30c239160e5a..304b358cf882 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -1,3 +1,6 @@ +/// Cached global list of generated lighting sheets. See: datum/light_source/proc/get_sheet() +GLOBAL_LIST_EMPTY(lighting_sheets) + // This is where the fun begins. // These are the main datums that emit light. @@ -222,16 +225,15 @@ /// If the requested sheet is multiz, this will be 3 lists deep, first handling z level then x and y /// otherwise it's just two, x then y /datum/light_source/proc/get_sheet(multiz = FALSE) - var/list/static/key_to_sheet = list() var/range = max(1, light_range); var/key = "[range]-[visual_offset]-[offset_x]-[offset_y]-[light_dir]-[light_angle]-[light_height]-[multiz]" - var/list/hand_back = key_to_sheet[key] + var/list/hand_back = GLOB.lighting_sheets[key] if(!hand_back) if(multiz) hand_back = generate_sheet_multiz(range, visual_offset, offset_x, offset_y, light_dir, light_angle, light_height) else hand_back = generate_sheet(range, visual_offset, offset_x, offset_y, light_dir, light_angle, light_height) - key_to_sheet[key] = hand_back + GLOB.lighting_sheets[key] = hand_back return hand_back /// Returns a list of lists that encodes the light falloff of our source diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index 4987016c5a07..d6ac3ac4f942 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -31,7 +31,7 @@ testing("Ruin \"[name]\" placed at ([central_turf.x], [central_turf.y], [central_turf.z])") if(clear_below) - var/list/static/clear_below_typecache = typecacheof(list( + var/static/list/clear_below_typecache = typecacheof(list( /obj/structure/spawner, /mob/living/simple_animal, /obj/structure/flora diff --git a/code/modules/mining/boulder_processing/boulder_types.dm b/code/modules/mining/boulder_processing/boulder_types.dm index 366c5b21c425..6d0d58a1be2b 100644 --- a/code/modules/mining/boulder_processing/boulder_types.dm +++ b/code/modules/mining/boulder_processing/boulder_types.dm @@ -38,7 +38,7 @@ . = ..() /// Static list of all minerals to populate gulag boulders with. - var/list/static/gulag_minerals = list( + var/static/list/gulag_minerals = list( /datum/material/diamond = 1, /datum/material/gold = 8, /datum/material/iron = 95, @@ -59,7 +59,7 @@ . = ..() /// Static list of all minerals to populate gulag boulders with, but with bluespace added where safe. - var/list/static/expanded_gulag_minerals = list( + var/static/list/expanded_gulag_minerals = list( /datum/material/bluespace = 1, /datum/material/diamond = 1, /datum/material/gold = 8, diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm index 2af0fe7b9cb9..34f6c1e07187 100644 --- a/code/modules/projectiles/projectile/bullets/special.dm +++ b/code/modules/projectiles/projectile/bullets/special.dm @@ -196,7 +196,7 @@ if(possible_victims.len) return pick(possible_victims) - var/list/static/prioritized_targets = list(/obj/structure/reagent_dispensers, /obj/item/grenade, /obj/structure/window) + var/static/list/prioritized_targets = list(/obj/structure/reagent_dispensers, /obj/item/grenade, /obj/structure/window) for(var/iter_type in prioritized_targets) for(var/already_coined_tries in 1 to 3) var/atom/iter_type_check = locate(iter_type) in valid_targets diff --git a/code/modules/spells/spell_types/conjure/simian.dm b/code/modules/spells/spell_types/conjure/simian.dm index b64a34f847ea..1f1074cb981f 100644 --- a/code/modules/spells/spell_types/conjure/simian.dm +++ b/code/modules/spells/spell_types/conjure/simian.dm @@ -98,7 +98,7 @@ weapon.attack_self(summoned_monkey) // Fashionable ape wear, organised by tier - var/list/static/monky_hats = list( + var/static/list/monky_hats = list( null, // nothin here /obj/item/clothing/head/costume/garland, /obj/item/clothing/head/helmet/durathread, diff --git a/modular_nova/master_files/code/game/objects/items/kirby_plants.dm b/modular_nova/master_files/code/game/objects/items/kirby_plants.dm new file mode 100644 index 000000000000..06aa42a08f53 --- /dev/null +++ b/modular_nova/master_files/code/game/objects/items/kirby_plants.dm @@ -0,0 +1,3 @@ +/obj/item/kirbyplants + /// Maximum icon state number - KEEP THIS UP TO DATE + var/random_state_cap = 43 // NOVA EDIT ADDITION diff --git a/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm index ee6676d01031..675db4c055a6 100644 --- a/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm +++ b/modular_nova/master_files/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm @@ -1,6 +1,6 @@ // GHOST HOTEL UPDATE /obj/item/hilbertshotel - var/list/static/hotel_maps = list("Generic", "Apartment", "Beach Condo") + var/static/list/hotel_maps = list("Generic", "Apartment", "Beach Condo") //standard - hilbert's hotel room //apartment - see /datum/map_template/ghost_cafe_rooms var/datum/map_template/ghost_cafe_rooms/apartment/ghost_cafe_rooms_apartment diff --git a/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm b/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm index 0c3b264f10fe..1d34fbe96130 100644 --- a/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm +++ b/modular_nova/modules/ashwalkers/code/items/ash_seedmesh.dm @@ -3,7 +3,7 @@ desc = "A little mesh that, when paired with sand, has the possibility of filtering out large seeds." icon = 'modular_nova/modules/ashwalkers/icons/misc_tools.dmi' icon_state = "mesh" - var/list/static/seeds_blacklist = list( + var/static/list/seeds_blacklist = list( /obj/item/seeds/lavaland, /obj/item/seeds/gatfruit, /obj/item/seeds/seedling/evil, diff --git a/tgstation.dme b/tgstation.dme index e038b962d321..5670cde40e73 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6645,6 +6645,7 @@ #include "modular_nova\master_files\code\game\objects\items\emags.dm" #include "modular_nova\master_files\code\game\objects\items\hhmirror.dm" #include "modular_nova\master_files\code\game\objects\items\holy_weapons.dm" +#include "modular_nova\master_files\code\game\objects\items\kirby_plants.dm" #include "modular_nova\master_files\code\game\objects\items\oxygen_candle.dm" #include "modular_nova\master_files\code\game\objects\items\RCD.dm" #include "modular_nova\master_files\code\game\objects\items\religion.dm" diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh index 8a2b715502ff..05718cfccd88 100644 --- a/tools/ci/check_grep.sh +++ b/tools/ci/check_grep.sh @@ -140,6 +140,13 @@ if $grep '^/[\w/]\S+\(.*(var/|, ?var/.*).*\)' $code_files; then st=1 fi; +part "improperly pathed static lists" +if $grep -i 'var/list/static/.*' $code_files; then + echo + echo -e "${RED}ERROR: Found incorrect static list definition 'var/list/static/', it should be 'var/static/list/' instead.${NC}" + st=1 +fi; + part "can_perform_action argument check" if $grep 'can_perform_action\(\s*\)' $code_files; then echo From 6a31cf9d75f9bd7948644118428d77d02206dcb7 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 04:37:01 +0000 Subject: [PATCH 058/119] Automatic changelog for PR #87207 [ci skip] --- html/changelogs/AutoChangeLog-pr-87207.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87207.yml diff --git a/html/changelogs/AutoChangeLog-pr-87207.yml b/html/changelogs/AutoChangeLog-pr-87207.yml new file mode 100644 index 000000000000..4ee7a40193df --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87207.yml @@ -0,0 +1,4 @@ +author: "vinylspiders" +delete-after: True +changes: + - bugfix: "fixes a bunch of improper static list declarations" \ No newline at end of file From f9fa72f1bab3afeb43114eb4a0d9861924d3c055 Mon Sep 17 00:00:00 2001 From: mamiipolat <119690368+mamiipolat@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:24:54 +0300 Subject: [PATCH 059/119] Felinid mood fix (#87230) ![resim](https://github.com/user-attachments/assets/35ce028c-0ed0-4ea2-89f3-77acc15693ac) ## About The Pull Request Showering will add negative mood effect to felinids ## Why It's Good For The Game there was a status effect that drops stamina for felinids on shower but at the same time it boosts mood i decided to make it better :cl: Mamaii add: shower will give felinids negative mood effect fix: fixed shower hater status effect alert not showing /:cl: --- code/datums/mood_events/needs_events.dm | 5 +++++ code/datums/status_effects/neutral.dm | 2 +- code/game/objects/structures/shower.dm | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index dd5441476dcf..93a8f186da6c 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -76,6 +76,11 @@ mood_change = 4 timeout = 5 MINUTES +/datum/mood_event/shower_hater + description = "I hate being wet!" + mood_change = -2 + timeout = 3 MINUTES + /datum/mood_event/fresh_laundry description = "There's nothing like the feeling of a freshly laundered jumpsuit." mood_change = 2 diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 8737cacede31..8aca00b288b7 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -618,7 +618,7 @@ /atom/movable/screen/alert/status_effect/shower_regen/hater name = "Washing" desc = "Waaater... Fuck this WATER!!" - icon_state = "shower_regen_hater" + icon_state = "shower_regen_catgirl" /datum/status_effect/shower_regen id = "shower_regen" diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index 34344415464d..718f610957b9 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -266,8 +266,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16)) return var/mob/living/living_target = target check_heat(living_target) - living_target.add_mood_event("shower", /datum/mood_event/nice_shower) living_target.apply_status_effect(/datum/status_effect/shower_regen) + if(!HAS_TRAIT(target, TRAIT_WATER_HATER) || HAS_TRAIT(target, TRAIT_WATER_ADAPTATION)) + living_target.add_mood_event("shower", /datum/mood_event/nice_shower) + else + living_target.add_mood_event("shower", /datum/mood_event/shower_hater) /** * Toggle whether shower is actually on and outputting water. From 269b411ac328903ecbba9611746cc9ee3fe65e93 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:29:05 +0000 Subject: [PATCH 060/119] Automatic changelog for PR #87230 [ci skip] --- html/changelogs/AutoChangeLog-pr-87230.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87230.yml diff --git a/html/changelogs/AutoChangeLog-pr-87230.yml b/html/changelogs/AutoChangeLog-pr-87230.yml new file mode 100644 index 000000000000..1feb2c158ed3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87230.yml @@ -0,0 +1,5 @@ +author: "Mamaii" +delete-after: True +changes: + - rscadd: "shower will give felinids negative mood effect" + - bugfix: "fixed shower hater status effect alert not showing" \ No newline at end of file From c86ff0ea5621427ba40e32cab164227d6721d513 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:03:03 +0200 Subject: [PATCH 061/119] Changes variable_color on limbs to use a priority system (#87216) Its now a priority -> color assoc list with a pair of helper procs to wrap lazylist stuff. New priorities should go to ``code/__DEFINES/bodyparts.dm`` as defines as to be seen and not overridden. Wasn't a problem until carps came along as before only hulks used this thing, now we've got clashing. :cl: fix: Losing hulk after becoming a carp no longer turns you black /:cl: --------- Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/bodyparts.dm | 5 +++ code/datums/elements/organ_set_bonus.dm | 6 ++- code/datums/mutations/hulk.dm | 4 +- .../dna_infuser/organ_sets/carp_organs.dm | 1 + code/modules/surgery/bodyparts/_bodyparts.dm | 38 ++++++++++++------- .../modules/synths/code/species/synthetic.dm | 4 +- 6 files changed, 38 insertions(+), 20 deletions(-) diff --git a/code/__DEFINES/bodyparts.dm b/code/__DEFINES/bodyparts.dm index 4d957373a55c..34a26376e2f6 100644 --- a/code/__DEFINES/bodyparts.dm +++ b/code/__DEFINES/bodyparts.dm @@ -43,3 +43,8 @@ #define AUGGED_CHEST_EMP_SHAKE_TIME 5 SECONDS /// When hit by an EMP, the time an augged head will make vision fucky for. #define AUGGED_HEAD_EMP_GLITCH_DURATION 6 SECONDS + +// Color priorities for bodyparts +#define LIMB_COLOR_HULK 10 +#define LIMB_COLOR_CARP_INFUSION 20 +#define LIMB_COLOR_SYNTH 100 // NOVA EDIT ADDITION - High priority diff --git a/code/datums/elements/organ_set_bonus.dm b/code/datums/elements/organ_set_bonus.dm index 1c75bf7de148..082933e409e9 100644 --- a/code/datums/elements/organ_set_bonus.dm +++ b/code/datums/elements/organ_set_bonus.dm @@ -59,6 +59,8 @@ var/list/bonus_traits = list() /// Limb overlay to apply upon activation var/limb_overlay + /// Color priority for limb overlay + var/color_overlay_priority /datum/status_effect/organ_set_bonus/proc/set_organs(new_value) organs = new_value @@ -87,7 +89,7 @@ var/mob/living/carbon/carbon_owner = owner for(var/obj/item/bodypart/limb in carbon_owner.bodyparts) limb.add_bodypart_overlay(new limb_overlay()) - limb.variable_color = COLOR_WHITE + limb.add_color_override(COLOR_WHITE, color_overlay_priority) carbon_owner.update_body() return TRUE @@ -105,5 +107,5 @@ var/overlay = locate(limb_overlay) in limb.bodypart_overlays if(overlay) limb.remove_bodypart_overlay(overlay) - limb.variable_color = null + limb.remove_color_override(color_overlay_priority) carbon_owner.update_body() diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 17575d6994a5..50d14db29dd5 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -32,7 +32,7 @@ if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = bodypart_color + part.add_color_override(bodypart_color, LIMB_COLOR_HULK) owner.update_body_parts() owner.add_mood_event("hulk", /datum/mood_event/hulk) RegisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) @@ -94,7 +94,7 @@ if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = null + part.remove_color_override(LIMB_COLOR_HULK) owner.update_body_parts() owner.clear_mood_event("hulk") UnregisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK) diff --git a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm index c551ce0c4e96..622cafaa7bfd 100644 --- a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm @@ -11,6 +11,7 @@ bonus_deactivate_text = span_notice("Your DNA is once again mostly yours, and so fades your ability to space-swim...") bonus_traits = list(TRAIT_SPACEWALK) limb_overlay = /datum/bodypart_overlay/texture/carpskin + color_overlay_priority = LIMB_COLOR_CARP_INFUSION ///Carp lungs! You can breathe in space! Oh... you can't breathe on the station, you need low oxygen environments. /// Inverts behavior of lungs. Bypasses suffocation due to space / lack of gas, but also allows Oxygen to suffocate. diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index eddcc45e6535..7c03311eff8c 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -107,8 +107,8 @@ var/species_color = "" ///Limbs need this information as a back-up incase they are generated outside of a carbon (limbgrower) var/should_draw_greyscale = TRUE - ///An "override" color that can be applied to ANY limb, greyscale or not. - var/variable_color = "" + /// An assoc list of priority (as a string because byond) -> color, used to override draw_color. + var/list/color_overrides var/px_x = 0 var/px_y = 0 @@ -950,12 +950,7 @@ is_husked = FALSE is_invisible = FALSE - if(variable_color) - draw_color = variable_color - else if(should_draw_greyscale) - draw_color = species_color || (skin_tone ? skintone2hex(skin_tone) : null) - else - draw_color = null + update_draw_color() if(!is_creating || !owner) return @@ -978,9 +973,7 @@ skin_tone = "" species_color = "" - draw_color = variable_color - if(should_draw_greyscale) //Should the limb be colored? - draw_color ||= species_color || (skin_tone ? skintone2hex(skin_tone) : null) + update_draw_color() // NOVA EDIT ADDITION var/datum/species/owner_species = human_owner.dna.species @@ -997,6 +990,24 @@ recolor_external_organs() return TRUE +/obj/item/bodypart/proc/update_draw_color() + draw_color = null + if(LAZYLEN(color_overrides)) + var/priority + for (var/override_priority in color_overrides) + if (text2num(override_priority) > priority) + priority = text2num(override_priority) + draw_color = color_overrides[override_priority] + return + if(should_draw_greyscale) + draw_color = species_color || (skin_tone ? skintone2hex(skin_tone) : null) + +/obj/item/bodypart/proc/add_color_override(new_color, color_priority) + LAZYSET(color_overrides, "[color_priority]", new_color) + +/obj/item/bodypart/proc/remove_color_override(color_priority) + LAZYREMOVE(color_overrides, "[color_priority]") + //to update the bodypart's icon when not attached to a mob /obj/item/bodypart/proc/update_icon_dropped() SHOULD_CALL_PARENT(TRUE) @@ -1057,9 +1068,8 @@ if(aux_zone) //Hand shit aux = image(limb.icon, "[limb_id]_[aux_zone]", -aux_layer, image_dir) . += aux - draw_color = variable_color - if(should_draw_greyscale) //Should the limb be colored outside of a forced color? - draw_color ||= (species_color) || (skin_tone && skintone2hex(skin_tone)) + + update_draw_color() if(is_husked) huskify_image(thing_to_husk = limb) diff --git a/modular_nova/modules/synths/code/species/synthetic.dm b/modular_nova/modules/synths/code/species/synthetic.dm index 063e59d29322..0c989ccf6ef2 100644 --- a/modular_nova/modules/synths/code/species/synthetic.dm +++ b/modular_nova/modules/synths/code/species/synthetic.dm @@ -128,12 +128,12 @@ if(limb.body_zone == BODY_ZONE_HEAD) if(head_of_choice.color_src && head[MUTANT_INDEX_COLOR_LIST] && length(head[MUTANT_INDEX_COLOR_LIST])) - limb.variable_color = head[MUTANT_INDEX_COLOR_LIST][1] + limb.add_color_override(head[MUTANT_INDEX_COLOR_LIST][1], LIMB_COLOR_SYNTH) limb.change_appearance(head_of_choice.icon, head_of_choice.icon_state, !!head_of_choice.color_src, head_of_choice.dimorphic) continue if(chassis_of_choice.color_src && chassis[MUTANT_INDEX_COLOR_LIST] && length(chassis[MUTANT_INDEX_COLOR_LIST])) - limb.variable_color = chassis[MUTANT_INDEX_COLOR_LIST][1] + limb.add_color_override(chassis[MUTANT_INDEX_COLOR_LIST][1], LIMB_COLOR_SYNTH) limb.change_appearance(chassis_of_choice.icon, chassis_of_choice.icon_state, !!chassis_of_choice.color_src, limb.body_part == CHEST && chassis_of_choice.dimorphic) limb.name = "\improper[chassis_of_choice.name] [parse_zone(limb.body_zone)]" From 8719eeefb4b2366451f37a45cf51b1c71bdf3b0e Mon Sep 17 00:00:00 2001 From: kittysmooch <105110468+kittysmooch@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:10:18 -0700 Subject: [PATCH 062/119] removes precisely one pixel from female heads (#87219) ## About The Pull Request while working on cosmetic stuff for a downstream i noticed that the neck of female bodied human sprites was asymmetrical from the east and west facing icons ![image](https://github.com/user-attachments/assets/ae914ea5-b138-4404-b7df-5e4fcd59d0e0) ![image](https://github.com/user-attachments/assets/9dca384c-4e3e-44cd-b4c9-0f6feff55231) i checked the icon files and, sure enough, the east facing head has an extra pixel on the neck, so i removed it and updated the relevant dmi. ![image](https://github.com/user-attachments/assets/b9a008d2-1acd-436a-bb69-591909d60ef9) ![image](https://github.com/user-attachments/assets/7afc14a4-1834-440d-b37e-ad45d0372820) i also did a cursory glance at all the other body sprites to ensure that they were symmetrical. i didnt look that close admittedly but i didnt spot any other discrepancies. and that's all! this is probably the ittiest bittiest pr ever ## Why It's Good For The Game i think this one is pretty self explanatory lol ## Changelog :cl: fix: fixed east facing female human heads having an extra neck pixel :cl: --- icons/mob/human/bodyparts_greyscale.dmi | Bin 40162 -> 34918 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human/bodyparts_greyscale.dmi b/icons/mob/human/bodyparts_greyscale.dmi index b87182b258b443a96ff59ce961c4d8fc46ae2dd5..1fa4f751b3b0ffff40ae166fc6d87e34ce8a5ab8 100644 GIT binary patch literal 34918 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�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 Date: Tue, 15 Oct 2024 16:28:50 +0000 Subject: [PATCH 063/119] Automatic changelog for PR #87216 [ci skip] --- html/changelogs/AutoChangeLog-pr-87216.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87216.yml diff --git a/html/changelogs/AutoChangeLog-pr-87216.yml b/html/changelogs/AutoChangeLog-pr-87216.yml new file mode 100644 index 000000000000..063a32710568 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87216.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Losing hulk after becoming a carp no longer turns you black" \ No newline at end of file From f6124d180eef87cf9923eb4f011167ba0f35f514 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:29:10 +0000 Subject: [PATCH 064/119] Automatic changelog for PR #87219 [ci skip] --- html/changelogs/AutoChangeLog-pr-87219.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87219.yml diff --git a/html/changelogs/AutoChangeLog-pr-87219.yml b/html/changelogs/AutoChangeLog-pr-87219.yml new file mode 100644 index 000000000000..5ed4f2e947cc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87219.yml @@ -0,0 +1,4 @@ +author: "kittysmooch" +delete-after: True +changes: + - bugfix: "fixed east facing female human heads having an extra neck pixel\n:cl:" \ No newline at end of file From 0ef2ae406b8396f2a742e369ae44526a6d462591 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 15 Oct 2024 19:33:25 +0200 Subject: [PATCH 065/119] Fixing several fish-related issues. (#87199) --- code/__DEFINES/traits/sources.dm | 2 - code/__HELPERS/pronouns.dm | 3 +- code/datums/components/fish_growth.dm | 4 +- code/datums/components/rename.dm | 2 + code/datums/elements/tool_renaming.dm | 3 -- .../dna_infuser/organ_sets/fish_organs.dm | 5 +- code/modules/fishing/admin.dm | 11 ++-- code/modules/fishing/aquarium/aquarium.dm | 8 +-- .../modules/fishing/aquarium/fish_analyzer.dm | 6 +-- code/modules/fishing/fish/types/station.dm | 38 ++++++++++++-- code/modules/fishing/fish_movement.dm | 26 +++++++++- code/modules/fishing/sources/_fish_source.dm | 52 +++++++++++++------ .../reagent_containers/cups/drinkingglass.dm | 5 +- code/modules/unit_tests/fish_unit_tests.dm | 2 +- 14 files changed, 122 insertions(+), 45 deletions(-) diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index beb2b98944bc..8b3ac10f950b 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -293,8 +293,6 @@ /// Trait from an organ being inside a bodypart #define ORGAN_INSIDE_BODY_TRAIT "organ_inside_body" -/// Trait when something was labelled by the /datum/element/tool_renaming element. -#define RENAMING_TOOL_LABEL_TRAIT "renaming_tool_label" /// Trait when a drink was renamed by a shaker #define SHAKER_LABEL_TRAIT "shaker_trait" diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index fe2357d6ce42..28bb4c116626 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -86,7 +86,8 @@ gender = targeted_gender else gender = targeted_atom.gender - var/regex/pronoun_regex = regex("%PRONOUN(_(they|They|their|Their|theirs|Theirs|them|Them|have|are|were|do|theyve|Theyve|theyre|Theyre|s|es))") + ///The pronouns are ordered by their length to avoid %PRONOUN_Theyve being translated to "Heve" instead of "He's", for example + var/regex/pronoun_regex = regex("%PRONOUN(_(theirs|Theirs|theyve|Theyve|theyre|Theyre|their|Their|they|They|them|Them|have|were|are|do|es|s))") while(pronoun_regex.Find(target_string)) target_string = pronoun_regex.Replace(target_string, GET_TARGET_PRONOUN(targeted_atom, pronoun_regex.match, gender)) return target_string diff --git a/code/datums/components/fish_growth.dm b/code/datums/components/fish_growth.dm index 7c9aed1048c2..7f1e411ed3a3 100644 --- a/code/datums/components/fish_growth.dm +++ b/code/datums/components/fish_growth.dm @@ -90,12 +90,12 @@ var/message_verb = del_on_grow ? "grows into" : "generates" location.visible_message(span_notice("[source] [message_verb] \a [result]."), vision_distance = 3) - if(inherit_name && source.name != initial(source.name)) + if(inherit_name && HAS_TRAIT(source, TRAIT_WAS_RENAMED)) if(ismob(result)) var/mob/mob = result mob.fully_replace_character_name(mob.name, source.name) else - result.name = source.name + result.AddComponent(/datum/component/rename, source.name, result.desc) SEND_SIGNAL(source, COMSIG_FISH_FINISH_GROWING, result) diff --git a/code/datums/components/rename.dm b/code/datums/components/rename.dm index ad98c861ddee..31e1629f314f 100644 --- a/code/datums/components/rename.dm +++ b/code/datums/components/rename.dm @@ -26,6 +26,7 @@ src.custom_name = custom_name src.custom_desc = custom_desc apply_rename() + ADD_TRAIT(parent, TRAIT_WAS_RENAMED, type) /** This proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component. @@ -62,4 +63,5 @@ /datum/component/rename/Destroy() revert_rename() + REMOVE_TRAIT(parent, TRAIT_WAS_RENAMED, type) return ..() diff --git a/code/datums/elements/tool_renaming.dm b/code/datums/elements/tool_renaming.dm index bd87f1d171c8..729c5fd6a218 100644 --- a/code/datums/elements/tool_renaming.dm +++ b/code/datums/elements/tool_renaming.dm @@ -51,7 +51,6 @@ return renamed_obj.AddComponent(/datum/component/rename, input, renamed_obj.desc) to_chat(user, span_notice("You have successfully renamed \the [old_name] to [renamed_obj].")) - ADD_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_NAME) if(OPTION_DESCRIPTION) @@ -64,13 +63,11 @@ return renamed_obj.AddComponent(/datum/component/rename, renamed_obj.name, input) to_chat(user, span_notice("You have successfully changed [renamed_obj]'s description.")) - ADD_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_DESC) if(OPTION_RESET) qdel(renamed_obj.GetComponent(/datum/component/rename)) to_chat(user, span_notice("You have successfully reset [renamed_obj]'s name and description.")) - REMOVE_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_NAME | UPDATE_DESC) #undef OPTION_RENAME diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index 1dc16492fbca..e125a6110596 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -218,8 +218,8 @@ icon_state = "gills" safe_oxygen_min = 0 //We don't breathe this - ///The required partial pressure of water_vapor for not drowing - var/safe_water_level = 29 + ///The required partial pressure of water_vapor for not suffocating. + var/safe_water_level = parent_type::safe_oxygen_min /// Bodypart overlay applied to the chest where the lungs are in var/datum/bodypart_overlay/simple/gills/gills @@ -296,7 +296,6 @@ name = "mutated semi-aquatic lungs" desc = "DNA from an amphibious or semi-aquatic creature infused on a pair lungs. Enjoy breathing underwater without drowning outside water." safe_oxygen_min = /obj/item/organ/internal/lungs::safe_oxygen_min - safe_water_level = 19 has_gills = FALSE /** * If false, we don't breathe air since we've got water instead. diff --git a/code/modules/fishing/admin.dm b/code/modules/fishing/admin.dm index 46212f421283..53aefaf33389 100644 --- a/code/modules/fishing/admin.dm +++ b/code/modules/fishing/admin.dm @@ -33,8 +33,14 @@ ADMIN_VERB(fishing_calculator, R_DEBUG, "Fishing Calculator", "A calculator... f switch(action) if("recalc") var/rod_type = text2path(params["rod"]) - var/bait_type = text2path(params["bait"]) + if(!rod_type) + to_chat(user, span_warning("A fishing rod is needed in order to fish.")) + return var/hook_type = text2path(params["hook"]) + if(!hook_type) + to_chat(user, span_warning("A fishing hook is needed in order to fish.")) + return + var/bait_type = text2path(params["bait"]) var/line_type = text2path(params["line"]) var/datum/fish_source/spot = GLOB.preset_fish_sources[text2path(params["spot"])] @@ -45,8 +51,7 @@ ADMIN_VERB(fishing_calculator, R_DEBUG, "Fishing Calculator", "A calculator... f if(bait_type) temporary_rod.set_slot(new bait_type(temporary_rod), ROD_SLOT_BAIT) - if(hook_type) - temporary_rod.set_slot(new hook_type(temporary_rod), ROD_SLOT_HOOK) + temporary_rod.set_slot(new hook_type(temporary_rod), ROD_SLOT_HOOK) if(line_type) temporary_rod.set_slot(new line_type(temporary_rod), ROD_SLOT_LINE) diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index 56de1a9b10f6..ea37c9dc759c 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -356,7 +356,7 @@ fluid_type = params["fluid"] SEND_SIGNAL(src, COMSIG_AQUARIUM_FLUID_CHANGED, fluid_type) . = TRUE - if("reproduction_and_growth") + if("allow_breeding") reproduction_and_growth = !reproduction_and_growth . = TRUE if("feeding_interval") @@ -371,10 +371,10 @@ to_chat(user, span_notice("You take out [item] from [src].")) if("rename_fish") var/new_name = sanitize_name(params["chosen_name"]) - if(!new_name) - return var/atom/movable/fish = locate(params["fish_reference"]) in contents - fish.name = new_name + if(!fish || !new_name || new_name == fish.name) + return + fish.AddComponent(/datum/component/rename, new_name, fish.desc) /obj/structure/aquarium/ui_interact(mob/user, datum/tgui/ui) . = ..() diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm index 905d3549128d..617d8b600baa 100644 --- a/code/modules/fishing/aquarium/fish_analyzer.dm +++ b/code/modules/fishing/aquarium/fish_analyzer.dm @@ -119,12 +119,12 @@ data["fish_list"] += list(list( "fish_name" = fishie.name, - "fish_icon" = fishie::icon, - "fish_icon_state" = fishie::icon_state, + "fish_icon" = fishie.icon, + "fish_icon_state" = fishie.base_icon_state, "fish_health" = fishie.status == FISH_DEAD ? 0 : PERCENT(fishie.health/initial(fishie.health)), "fish_size" = fishie.size, "fish_weight" = fishie.weight, - "fish_food" = fishie.food::name, + "fish_food" = fishie.food.name, "fish_food_color" = fishie.food::color, "fish_min_temp" = fishie.required_temperature_min, "fish_max_temp" = fishie.required_temperature_max, diff --git a/code/modules/fishing/fish/types/station.dm b/code/modules/fishing/fish/types/station.dm index e811996d5af0..96a7ca7e99f1 100644 --- a/code/modules/fishing/fish/types/station.dm +++ b/code/modules/fishing/fish/types/station.dm @@ -170,6 +170,10 @@ ) return return_list +#define FISH_FRITTERISH "fritterish" +#define FISH_BERNARD "bernard" +#define FISH_MATTHEW "matthew" + /obj/item/fish/fryish/fritterish name = "fritterish" desc = "A deliciously extremophile alien fish. This one looks like a taiyaki." @@ -185,21 +189,45 @@ is_bait = FALSE next_type = /datum/fish_evolution/nessie growth_time = 8 MINUTES + ///fritterish can have different forms assigned to them on init. These are purely visual. + var/variant = FISH_FRITTERISH /obj/item/fish/fryish/fritterish/Initialize(mapload, apply_qualities = TRUE) . = ..() - base_icon_state = icon_state = pick("fritterish", "bernardfish", "matthewfish") - switch(icon_state) - if("bernardfish") + variant = pick(FISH_FRITTERISH, FISH_BERNARD, FISH_MATTHEW) + switch(variant) + if(FISH_BERNARD) name = "bernard-fish" desc = "A deliciously extremophile alien fish shaped like a dinosaur. Children love it." + base_icon_state = icon_state = "bernardfish" sprite_width = 4 sprite_height = 6 - if("matthewfish") - desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + if(FISH_MATTHEW) name = "matthew-fish" + desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + base_icon_state = icon_state = "matthewfish" sprite_width = 6 +/obj/item/fish/fryish/fritterish/update_name() + switch(variant) + if(FISH_BERNARD) + name = "bernard-fish" + if(FISH_MATTHEW) + name = "matthew-fish" + return ..() + +/obj/item/fish/fryish/fritterish/update_desc() + switch(variant) + if(FISH_BERNARD) + desc = "A deliciously extremophile alien fish shaped like a dinosaur. Children love it." + if(FISH_MATTHEW) + desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + return ..() + +#undef FISH_FRITTERISH +#undef FISH_BERNARD +#undef FISH_MATTHEW + /obj/item/fish/fryish/nessie name = "nessie-fish" desc = "A deliciously extremophile alien fish. This one is so big, you could write legends about it." diff --git a/code/modules/fishing/fish_movement.dm b/code/modules/fishing/fish_movement.dm index b288161b1923..952db364d442 100644 --- a/code/modules/fishing/fish_movement.dm +++ b/code/modules/fishing/fish_movement.dm @@ -103,7 +103,31 @@ var/acceleration_mult = get_acceleration(seconds_per_tick) var/target_acceleration = distance * acceleration_mult * seconds_per_tick + if(fish_idle_velocity) + var/idle_velocity = fish_idle_velocity + var/abs_idle_vel = abs(idle_velocity) + //Make sure idle velocity doesn't manage to halt fish to a grind and getting them unable to move. + //First, check if the directions of the two forces are oppositve + if((idle_velocity / abs_idle_vel) != (target_acceleration / abs(target_acceleration))) + //Then, calculate the ratio between absolute idle velocity and halved acceleration multiplier. + var/halved_ratio = (acceleration_mult * 0.5) / abs_idle_vel + /** + * If the idle velocity is more than half the acceleration, + * proceed to use powers, for diminishing loss of acceleration per additional unit of idle velocity. + * This way you never reach 0 acceleration while allowing more extreme values to keep lowering it. + */ + if(halved_ratio < 1) + var/power = min(halved_ratio + 0.5, 1) + target_acceleration *= 1 - (halved_ratio^power) + /** + * Otherwise we add the idle velocity (which we know is of opposite sign and + * has an absolute value between 0.ε and 0.5) to the target velocity + */ + else + target_acceleration += idle_velocity + fish_velocity = fish_velocity * FISH_FRICTION_MULT + target_acceleration + else if(can_roll && prob(short_chance)) var/distance_from_top = FISHING_MINIGAME_AREA - master.fish_position - master.fish_height var/distance_from_bottom = master.fish_position @@ -115,7 +139,7 @@ target_position = clamp(master.fish_position + jump_length, 0, FISHING_MINIGAME_AREA - master.fish_height) current_velocity_limit = short_jump_velocity_limit - fish_velocity = clamp(fish_velocity + fish_idle_velocity, -current_velocity_limit, current_velocity_limit) + fish_velocity = clamp(fish_velocity, -current_velocity_limit, current_velocity_limit) set_fish_position(seconds_per_tick) ///Proc that returns the acceleration of the fish during the minigame. diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index c2db0a43fc9b..9a02e0b270b4 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -339,8 +339,8 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) if(HAS_TRAIT(fisherman, TRAIT_PROFOUND_FISHER) && !fisherman.client) final_table -= profound_fisher_blacklist for(var/result in final_table) - final_table[result] *= rod.hook?.get_hook_bonus_multiplicative(result) - final_table[result] += rod.hook?.get_hook_bonus_additive(result)//Decide on order here so it can be multiplicative + final_table[result] *= rod.hook.get_hook_bonus_multiplicative(result) + final_table[result] += rod.hook.get_hook_bonus_additive(result)//Decide on order here so it can be multiplicative if(ispath(result, /obj/item/fish)) if(bait) @@ -408,25 +408,47 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) var/list/known_fishes = list() var/obj/item/fishing_rod/rod = user.get_active_held_item() - if(!istype(rod)) + var/list/final_table + if(!istype(rod) || !rod.hook) rod = null + else + final_table = get_modified_fish_table(rod, user, location) + var/total_weight = 0 + var/list/rodless_weights = list() + var/total_rod_weight = 0 + var/list/rod_weights = list() for(var/reward in fish_table) + var/weight = fish_table[reward] + var/final_weight + if(rod) + total_weight += weight + final_weight = final_table[reward] + total_rod_weight += final_weight if(!ispath(reward, /obj/item/fish)) continue var/obj/item/fish/prototype = reward - if(initial(prototype.fish_flags) & FISH_FLAG_SHOW_IN_CATALOG) + if(!(initial(prototype.fish_flags) & FISH_FLAG_SHOW_IN_CATALOG)) + continue + if(rod) + rodless_weights[reward] = weight + rod_weights[reward] = final_weight + else + known_fishes += initial(prototype.name) + + if(rod) + for(var/reward in rodless_weights) + var/percent_weight = rodless_weights[reward] / total_weight + var/percent_rod_weight = rod_weights[reward] / total_rod_weight + var/obj/item/fish/prototype = reward var/init_name = initial(prototype.name) - if(rod) - var/init_weight = fish_table[reward] - var/weight = (rod.bait ? rod.bait.check_bait(prototype) : 1) - weight = get_fish_trait_catch_mods(weight, reward, rod, user, location) - if(weight > init_weight) - init_name = span_bold(init_name) - if(weight/init_weight >= 3.5) - init_name = "init_name" - else if(weight < init_weight) - init_name = span_small(init_name) + var/ratio = percent_weight/percent_rod_weight + if(ratio < 0.9) + init_name = span_bold(init_name) + if(ratio < 0.3) + init_name = "[init_name]" + else if(ratio > 1.1) + init_name = span_small(init_name) known_fishes += init_name if(!length(known_fishes)) @@ -436,7 +458,7 @@ GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) if(rod) info = span_tooltip("boldened are the fish you're more likely to catch with your current setup. The opposite is true for smaller names", info) - examine_text += span_info("[info]: [english_list(known_fishes)].") + examine_text += examine_block(span_info("[info]: [english_list(known_fishes)].")) /datum/fish_source/proc/spawn_reward_from_explosion(atom/location, severity) if(!explosive_malus) diff --git a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm index fa3a53434bbc..a4f902ff5f3c 100644 --- a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm @@ -36,7 +36,8 @@ /obj/item/reagent_containers/cup/glass/drinkingglass/on_reagent_change(datum/reagents/holder, ...) . = ..() if(!length(reagents.reagent_list)) - REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) //so new drinks can rename the glass + qdel(GetComponent(/datum/component/rename)) + REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, SHAKER_LABEL_TRAIT) //so new drinks can rename the glass // Having our icon state change removes fill thresholds /obj/item/reagent_containers/cup/glass/drinkingglass/on_cup_change(datum/glass_style/style) @@ -58,8 +59,8 @@ if(!HAS_TRAIT(src, TRAIT_WAS_RENAMED)) return + qdel(GetComponent(/datum/component/rename)) REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, SHAKER_LABEL_TRAIT) - REMOVE_TRAIT(src, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) name = initial(name) desc = initial(desc) update_appearance(UPDATE_NAME | UPDATE_DESC) diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index 1bda9875c264..8ed2b999e7ff 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -360,7 +360,7 @@ /obj/structure/aquarium/crab/Initialize(mapload) . = ..() crabbie = new(src) - crabbie.name = "Crabbie" + crabbie.AddComponent(/datum/component/rename, "Crabbie", crabbie.desc) crabbie.last_feeding = world.time crabbie.AddComponent(/datum/component/fish_growth, crabbie.lob_type, 1 SECONDS) From 5c481712f372fde12268dd07ff75ee3eea503208 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:33:46 +0000 Subject: [PATCH 066/119] Automatic changelog for PR #87199 [ci skip] --- html/changelogs/AutoChangeLog-pr-87199.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87199.yml diff --git a/html/changelogs/AutoChangeLog-pr-87199.yml b/html/changelogs/AutoChangeLog-pr-87199.yml new file mode 100644 index 000000000000..0c40ab3efdaf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87199.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed gills not managing to breathe water vapor through internals." + - bugfix: "Fixed some inconsistencies with examining fishing spots with the appropriate level and fishing rod." \ No newline at end of file From a90d60c03ba5055ef8ee9de11c1ea337d1dc0cb5 Mon Sep 17 00:00:00 2001 From: hyperjll <105099113+hyperjll@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:53:07 -0400 Subject: [PATCH 067/119] Updates the GLA Brand Mail Counterfeit Device's description to either be more readable or more descriptive. (#87157) ## About The Pull Request Hi. Whoever originally wrote the description for this item in the uplink likely isn't a native english speaker and must've used google translate to make it. Point is: This description is broken and nobody has fixed it (I'm assuming nobody wants to spend GBP trying to fix it.) ## Why It's Good For The Game I'd like to be able to read this item's description and not feel like i just had a stroke. Also, being descriptive as to WHAT THIS ITEM ACTUALLY DOES is super important before purchasing it, nobody wants to boot up the wiki and try to figure out what this does. ## Changelog :cl: qol: The GLA Brand Mail Counterfeit Device's description has been updated by a native english speaker and has been made more descriptive. /:cl: --- code/modules/uplink/uplink_items/job.dm | 5 ++++- code/modules/uplink/uplink_items/stealthy_tools.dm | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index e786e7cd3a73..c9290ddd662b 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -18,7 +18,10 @@ /datum/uplink_item/role_restricted/mail_counterfeit_kit name = "GLA Brand Mail Counterfeit Kit" - desc = "A box of five (5) counterfeit devices. Each single-use device can hold one normal sized object, and impersonate an ordinary postal envelope addressed to whoever you choose. Optionally, can be rigged to activate held items - great for if you want to surprise someone with a primed grenade!" + desc = "A box containing five devices capable of counterfeiting NT's mail. Can be used to store items within as an easy means of smuggling contraband. \ + Additionally, you may choose to \"arm\" the item inside, causing the item to be used the moment the mail is opened as if the person had just used it in hand. \ + The most common usage of this feature is with grenades, as it forces the grenade to prime. Bonus points if the grenade is set to instantly detonate. \ + Comes with an integrated micro-computer for configuration purposes." item = /obj/item/storage/box/syndie_kit/mail_counterfeit cost = 2 uplink_item_flags = SYNDIE_TRIPS_CONTRABAND diff --git a/code/modules/uplink/uplink_items/stealthy_tools.dm b/code/modules/uplink/uplink_items/stealthy_tools.dm index 40e5df8febdf..e3402ec3c728 100644 --- a/code/modules/uplink/uplink_items/stealthy_tools.dm +++ b/code/modules/uplink/uplink_items/stealthy_tools.dm @@ -95,7 +95,10 @@ /datum/uplink_item/stealthy_tools/mail_counterfeit name = "GLA Brand Mail Counterfeit Device" - desc = "Device that actually able to counterfeit NT's mail. This device also able to place a trap inside of mail for malicious actions. Trap will \"activate\" any item inside of mail. Also it might be used for contraband purposes. Integrated micro-computer will give you great configuration optionality for your needs." + desc = "A device capable of counterfeiting NT's mail. Can be used to store items within as an easy means of smuggling contraband. \ + Additionally, you may choose to \"arm\" the item inside, causing the item to be used the moment the mail is opened as if the person had just used it in hand. \ + The most common usage of this feature is with grenades, as it forces the grenade to prime. Bonus points if the grenade is set to instantly detonate. \ + Comes with an integrated micro-computer for configuration purposes." item = /obj/item/storage/mail_counterfeit_device cost = 1 surplus = 30 From d64265d656adef22559e72ef15e21064595c7962 Mon Sep 17 00:00:00 2001 From: "tgstation-ci[bot]" <179393467+tgstation-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 17:53:28 +0000 Subject: [PATCH 068/119] Automatic changelog for PR #87157 [ci skip] --- html/changelogs/AutoChangeLog-pr-87157.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-87157.yml diff --git a/html/changelogs/AutoChangeLog-pr-87157.yml b/html/changelogs/AutoChangeLog-pr-87157.yml new file mode 100644 index 000000000000..bad3d118fd4e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-87157.yml @@ -0,0 +1,4 @@ +author: "hyperjll" +delete-after: True +changes: + - qol: "The GLA Brand Mail Counterfeit Device's description has been updated by a native english speaker and has been made more descriptive." \ No newline at end of file From 533c1ad58c9870941e7e27bb8f607f37e4d661de Mon Sep 17 00:00:00 2001 From: junkgle <133079191+junkgle01@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:56:39 -0500 Subject: [PATCH 069/119] resprites clown mask styles and adds one (#87159) ![Screenshot_108](https://github.com/user-attachments/assets/c0c40aca-ec80-4849-8d24-b6a45df8ed7d) ## About The Pull Request resprites the existing clown mask styles and adds a new clown mask style: The Dealer. the old madman mask has been made into an optional craft: the gamer's wig and mask. does not resprite already existing default clown mask ![Screenshot_109](https://github.com/user-attachments/assets/99b6fdb9-5e19-4b27-a41c-5902a5b92d27) ## Why It's Good For The Game resprites are good! and more variety is good too ## Changelog :cl: add: the Honkmother has decided to bless Her children with a new form! image: resprited the optional clown mask styles /:cl: --- code/datums/components/crafting/tailoring.dm | 10 ++++++++++ code/modules/clothing/masks/gasmask.dm | 14 +++++++++++++- icons/mob/clothing/mask.dmi | Bin 49232 -> 53601 bytes icons/obj/clothing/masks.dmi | Bin 31227 -> 32303 bytes 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index 0bd319481339..2196a88325ac 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -643,3 +643,13 @@ /obj/item/clothing/head/fedora/beige = 1, ) category = CAT_CLOTHING + +/datum/crafting_recipe/jonkler + name = "gamer's wig and mask" + result = /obj/item/clothing/mask/gas/jonkler + time = 10 SECONDS + tool_paths = list(/obj/item/toy/crayon/green) + reqs = list( + /obj/item/clothing/mask/gas/clown_hat = 1, + ) + category = CAT_CLOTHING diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 82b6fb1b90dd..f76d5d6a3944 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -5,6 +5,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( "The Madman" = "joker", "The Rainbow Color" = "rainbow", "The Jester" = "chaos", + "The Dealer" = "cards" )) /obj/item/clothing/mask/gas @@ -306,7 +307,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list( "The Coquette" = image(icon = src.icon, icon_state = "sexyclown"), "The Jester" = image(icon = src.icon, icon_state = "chaos"), "The Madman" = image(icon = src.icon, icon_state = "joker"), - "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow") + "The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow"), + "The Dealer" = image(icon = src.icon, icon_state = "cards"), ) //AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0) //NOVA EDIT REMOVAL @@ -338,6 +340,16 @@ GLOBAL_LIST_INIT(clown_mask_options, list( resistance_flags = FLAMMABLE fishing_modifier = 0 +/obj/item/clothing/mask/gas/jonkler + name = "gamer's wig and mask" + desc = "But I am a gamer, and no man; A reproach of men, and despised by the people." + clothing_flags = MASKINTERNALS + icon_state = "jonkler" + inhand_icon_state = null + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + has_fov = FALSE + /obj/item/clothing/mask/gas/mime name = "mime mask" desc = "The traditional mime's mask. It has an eerie facial posture." diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 117511dd8741e5f3a4f3709764e6fe12bf31408c..89e01e574afb29a3bfabcd8222b85212faa1920b 100644 GIT binary patch literal 53601 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 Hmv8?U*|@JK literal 49232 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 E08{$k`v3p{ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 595893177355b17e59cdd41d4076d9bc051c3a75..62c1fa687406bdada410d76abefe715cceb35e8b 100644 GIT binary patch literal 32303 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