From e0a311435b1b806ca96b8b0da8a632dc877b084a Mon Sep 17 00:00:00 2001 From: zerothebigboy Date: Fri, 11 Jun 2021 20:53:35 -0400 Subject: [PATCH 001/173] thetwentysecondofmany --- _maps/RandomRuins/SpaceRuins/shuttlerelic.dmm | 6 +--- code/game/objects/items/tools/crowbar.dm | 6 ++++ code/game/objects/items/tools/wirecutters.dm | 31 ++++++++++++++---- .../ruins/spaceruin_code/caravanambush.dm | 8 ++--- .../mob/inhands/equipment/tools_lefthand.dmi | Bin 5499 -> 5873 bytes .../mob/inhands/equipment/tools_righthand.dmi | Bin 5368 -> 5745 bytes icons/obj/clothing/belt_overlays.dmi | Bin 7286 -> 7231 bytes icons/obj/device.dmi | Bin 56527 -> 55511 bytes icons/obj/nuke_tools.dmi | Bin 5017 -> 5056 bytes icons/obj/tools.dmi | Bin 33387 -> 33669 bytes 10 files changed, 35 insertions(+), 16 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm index a0fc5fa8a7..347d0a093f 100644 --- a/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm +++ b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm @@ -64,11 +64,7 @@ dir = 1; icon_state = "chairold" }, -/obj/item/crowbar/large{ - desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big. It feels oddly heavy.."; - force = 20; - name = "heavy crowbar" - }, +/obj/item/crowbar/large/heavy, /turf/open/floor/oldshuttle, /area/ruin/powered) "o" = ( diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index f0fd29adbc..f481cab91f 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -67,6 +67,12 @@ item_state = "crowbar" toolspeed = 0.5 +/obj/item/crowbar/large/heavy + name = "heavy crowbar" + desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big. It feels oddly heavy.." + force = 20 + icon_state = "crowbar_powergame" + /obj/item/crowbar/cyborg name = "hydraulic crowbar" desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs." diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index ee72c7fed2..51bb046290 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -23,13 +23,13 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) var/random_color = TRUE var/static/list/wirecutter_colors = list( - "blue" = "#1861d5", - "red" = "#951710", - "pink" = "#d5188d", - "brown" = "#a05212", - "green" = "#0e7f1b", - "cyan" = "#18a2d5", - "yellow" = "#d58c18" + "blue" = rgb(24, 97, 213), + "red" = rgb(255, 0, 0), + "pink" = rgb(213, 24, 141), + "brown" = rgb(160, 82, 18), + "green" = rgb(14, 127, 27), + "cyan" = rgb(24, 162, 213), + "yellow" = rgb(255, 165, 0) ) @@ -49,6 +49,23 @@ base_overlay.appearance_flags = RESET_COLOR . += base_overlay +/obj/item/wirecutters/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() + if(isinhands && random_color) + var/mutable_appearance/M = mutable_appearance(icon_file, "cutters_cutty_thingy") + M.appearance_flags = RESET_COLOR + . += M + +/obj/item/wirecutters/get_belt_overlay() + if(random_color) + var/mutable_appearance/body = mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "cutters") + var/mutable_appearance/head = mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "cutters_cutty_thingy") + body.color = color + head.add_overlay(body) + return head + else + return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state) + /obj/item/wirecutters/attack(mob/living/carbon/C, mob/user) if(istype(C) && C.handcuffed && istype(C.handcuffed, /obj/item/restraints/handcuffs/cable)) user.visible_message("[user] cuts [C]'s restraints with [src]!") diff --git a/code/modules/ruins/spaceruin_code/caravanambush.dm b/code/modules/ruins/spaceruin_code/caravanambush.dm index 740850524c..ab38ed8e4d 100644 --- a/code/modules/ruins/spaceruin_code/caravanambush.dm +++ b/code/modules/ruins/spaceruin_code/caravanambush.dm @@ -1,27 +1,27 @@ //caravan ambush /obj/item/wrench/caravan - color = "#ff0000" + icon_state = "wrench_caravan" desc = "A prototype of a new wrench design, allegedly the red color scheme makes it go faster." name = "experimental wrench" toolspeed = 0.3 /obj/item/screwdriver/caravan - color = "#ff0000" + icon_state = "screwdriver_caravan" desc = "A prototype of a new screwdriver design, allegedly the red color scheme makes it go faster." name = "experimental screwdriver" toolspeed = 0.3 random_color = FALSE /obj/item/wirecutters/caravan - color = "#ff0000" + icon_state = "cutters_caravan" desc = "A prototype of a new wirecutter design, allegedly the red color scheme makes it go faster." name = "experimental wirecutters" toolspeed = 0.3 random_color = FALSE /obj/item/crowbar/red/caravan - color = "#ff0000" + icon_state = "crowbar_caravan" desc = "A prototype of a new crowbar design, allegedly the red color scheme makes it go faster." name = "experimental crowbar" toolspeed = 0.3 diff --git a/icons/mob/inhands/equipment/tools_lefthand.dmi b/icons/mob/inhands/equipment/tools_lefthand.dmi index c25ea837da4d118e3f27841690a729e3a49195dc..27aaef50b1ce10680437b7266f3a9886256e1c92 100644 GIT binary patch literal 5873 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 CI$)mw literal 5499 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 jZvnvvg+VLEAaELISPQ~1 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 literal 5368 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 diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index 5f31a65ffa81668dc310133b65643e7ce08ff9da..0799920a6c64a95186938c8829a20bc39e8e5da8 100644 GIT binary patch literal 7231 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 R!9NCpyBY@SC{>5Z{{eaPzYzcc literal 7286 zcmai3Wmr^Q*FFP7s5B@cjffHw0!pKVAd=Ebmvj#eW6&avG=d1y9WpS0fPj?bNDkc% zBQP+`cYNOO*LOYF_x_nZXPtF+t+ns9?zJPeG@g)OWx5Ig0J*A)q7DE+z`qcHlo)JY zdVIA7AEy0v4ZRd?Jgq$J-Ms8wT>!v0GdZQ*B~yqhY^d+KVXs(OlYM@6qwY<;02Nb6 z%z*WdxsxcXd~*;*oYNR@)&lX!31w^d5_%>b9UC$@w0i7SemkGWL!{2{^zyT0f3A(I z!_g5^(wB^WXiLq)T(s_+U!+!ZsMoh53g=Ij4xXhHf>0TkAz4pGk&G#3w%re{yB`eP z7le)GGm$iSHSzg}&l(ltsyi5LUUOx>xJo<1T7N*gbMFz8R47i9Kus&^s~gvS9eYw6 zslDwt!mCCxd@)+t0zK+8jkgI*mcyDyi&vaW2lt+(W*S(k$2z;Q$Bu?=@gG|)w@LKb z$f@kinGmH9*3nryMR6tZRg@0ID;-~79VvaDZ$)CP_)Abh|Ix`|+ws*NF2z6OwTU#> zt2kn#+H2Azev(*|3X4eLL;l;slS>OOUp{agvzoI#Lh2S;a%sSgv1#O%5CYNMGGHOmT6@b z=oP;bhC$KGx9Y!bXo>p zDmIZv7jnUltT~#0tuP0$(MaXx4s&k+0F%C|;v-$(%$?Z)Lp{AYlKnkpYk3_gw5tBGl4(eMHtVWolh96RKGWsG&T%-+h3h0WG2t1E^rtG=yc zCFF}H+Rbt4w2-DbxqT{jH;V9|;#Dhv>h61pe7+Dd5dZyO1xHf=gP22-c~D-lpAGPyN$jbjl9I*t?VC&PRA*PPsK<`z~oTS=S_qt zL8JQ;G0^7H;8-0(UA}*Gq+n>saB*>AXhsrnvU|NFjQqJc6zq$XoFe50f%3$Ox4!S# z`mM~q-bZL8$H?E zH_3e=s{5@ikd;Vj1!uEDlP)dw&9lYj7|vNX)CQgT=AU?9>Cd$3;>CoYe3?E4@OiDS zt%YaH1UzMVQ}Pmh^ZJbq^jYyzCM1i^%>pXqKW1L~V(o1-y&%&Fz~wtl^%925c;K4% z=q+)h-%)`}?1sHH1s*c5TxJen8`?KW+2!QeLPJ9v_139JLqz0JTE}2O= zAsVX*q!p3u1T zbY6kLIiqGn$Ke9O zKLU@~udG?#2YUFt<7NTMc3@w}4^@8G z1btQ7f;NX(zk8|86$q_< zwhJ{1sf&#Gg}^8fRbM)|1a)Wc$RA7$lR*v@GYQ7vRvjvnH=pP${^4!h#x64v%abRu zLa370t|&ZiAe?80XG(R|WM)b+4Q`Bc8f=*ndX&$Vh3IuiTyfOUXNAN`XA7P9d>tk= z_v#Y|;2gOgFm*;;`z-d_@>s}1{3nqHea?XErZC)%I!CoKvr=0^C$1rgn;RljJ#*%P zabjHY9&N8d&1FVPN?2wlv&AyUfD4Iyh6jT9W2o* zDK=J$)<_c}0zFMBI9T>a%uSy64Af)3)NbG3UC}{FTBFcN_PG&9nd+gaL_PdoWTehk zc-VE#M+H2MA@6@4uJqN-B7C?wISIhyG|}Xi1CXliG0s!_vhi^CraBOie2csqGwr0Ph z{J|g_)ZWqgGqnL6gq@2^VY)s@3br#9YJz}qaB+2vi5HuO3`Pk|rK^84thq~HBG(dC z`vqS)WVEIW5N`vuMSbkZ}He2df-Wiru6$@!P@aMm|_E@>F|@oFABnKn2*TSia5i_g-6;nJTzdqxLTI!%fcI(zwxXeld)rHa}o ztTv7pMwUx8J2b8f1tzaHiXo8qzvNs{Y-}LRYtoLO2L)Jk@OhbGi@%uci%P`zp*3ed z-m}vkj8ao8O<#FMcxR`g`+OV3+Q!CW{a3DrLYqCXyu2LI-~a6N^pwFviN>yckC9Kq zZk7Nr6b5(~_vB2M*8~$L^fk-&*5M&6wX^^g^U{lgQ5)|`%k`mK2&5?iA)yisCJwMm zNPPQAHNVkjE%AZlG@3Bziv;?tgCXlhG~J68xoaq(M@M|HHWJ*z&-=FGFf)S+r&A$wz}G7HMroi3)kaC) zLPJ`~UiH>iSGO(gXX9Eoyw?0*!|u)^mi8Aq0Qkj4V5*<~e3FIuaEl)mEC=hy|AU>q z*wE54&&>X?S%n-H=at(gOZ(m7ok=$uA_+M90(If?jZ=uAN>+OQM8Zy};uPtBkgv92&Ov8J$cF8Bx!-q2><^-szwFY4sQA4sFTvzM3QyCyUDLO7q{ilp9|Zs=Yg{yhBo2_@*l7E`tMARI@Jc$3eM6+Jg>aA8>;$Os3|&BD<@ zM%J#ThT`G=OAshFn1J2wzfbFz;^y8bJUpC!&6nVdVrJC8BrE)uScZ&L*&j2WufTNr zhEULZ^}sad2*E@`3tLhKe@P)~i3gy}=~Rd&zEv{XCFb?>Z>!^fQUMhWjeChvMMXu% z-m-fenBH?SN|HY>fhI9x8se$WD9jHtlW8sj5EYF&ySoX2yw9K2E{BGD6A}}<94lIg zfrlQ;Ju*2b$Jk}u#oiu?`Ca|e2FELe&Uw{T;B;=AhG@2$?|&78udlz#&(GJzo+TwE zB~Wa}V0r^qa`4T|OV_t{j5p%pOL&$osDC-NAy#YN2OVUP0@ZG;iAu@!&ZUc!QOqFsM2{oY?#^R*ls zQV8t!n(rx${~EH*1guY;L83JwPkoTcG@Ov%p>-J;nYr;WvWAb}%n&eV=fmY*V|0J; zb=k1OaUQYe%WRXaQRh3m0s8{rURU>1wfddTQU?26lQIs<+n79qT#E(Zi$ryUSyGNb zrB&nX%HFi_O!+wS{NNIIKASDrTVBziSE7FfV2}-LOd2NLGB9m@2z9bN&lUqGsOD>_ z>rVRDvUw!v?-T)zb}nQ(v>yg}wuG%wsL`Lvd`eDE{FYW$RURu(M-?J5Stvm{n&0~t zw+^ksb2T3TX(m3TVMr)e>{ z@S*^f^U$3WnBT$&QnuE}*azd<0kB&QHM1X`;bvkjm#%EV43BQ!7d{wA2_0;=W(MQ7 z_9nf}_De_$fhd(pf7RxbX$|fZ!IzEZn^cWHdvli4f_AwsS~4@u!Gv|DdsZ&Ei6@GM z8-Cm;qd7Y^4!94pvWw%gEpDyEne_4(`b$y`e9{h3d9kDZ=8&XsV$)V3Om8z#uJcuL zG4VS1w)Ha`mx22IFZ6DvbZBFxI>PxsJJSVZ?tM8gt^Qd3wb|+Z;`9FOv=ho(FjCQ$ z%kQDrAavnv=YL`cD)7|s6i;{a<3N6CQPeRuM8fN9Ba7$rN}=kq4GiD&G9~#M$<}Oe zi@www!GglM)l$qs944iteBx3bxt5VqObIM3ENCD{dazd1tVk$4KL@|N$3_#3PcE7u zWuM3V?uVnS?#DPh^J_5}zsL_Cd9vbX93%tsl2>Xe{OvQ}JgHe&oUs>)n3ai&XLUCq zINRxocLIY^av_(^cje$qqSJYKoKPqf0iXV zzTOq5VZQSu^Nw2WO`1n`LW7H47rrwGNrP&O3{7p+Hc|*h00{iqIRO}*yGHV3Q2ii)0*MvhmL)!Yj3q-tCl!*E@w;NlcL0N6V7vsP{~LX)$}4JDzqQu2i^ zt(_Z*g=9My6lQ|c+>54{Vjozf!YV6;$N`PahaATBPDNKZ-WAxB5$e3Lq7&lVrGP1J zgxo!NN(oID$4Kl%JLj;A-WnMjqy*dr@k~Ia_hfy7*y|L57Y-04auLKGThZ72);}xL z%`%1)8HJC1z8!uqGk29WXP~=DG9LT2X#NoGZ8D zUe=%e;ss9UI+MSgAc5o8+85`kB~PckAzE>1*(Z4RQc>VXYz{B$&g?Y_yFvCm`{$#k zIKsdnB?N2-0Ajgii^Z-vhSmD4ebUgPDmQKUIk*P_YZd=Xz|-rlyerOXZ62~+mm~V> zVFm}SF66xFSpaJ~WRbCT(u4(5etA+szFDuh^-DdRezibnfw5P6~UbsgLj~<-8 zlQ8=(z|b3N-YY7iGEX%r@RbpiyNq2;0p-p6DpX-)to)|Fw^U%yd9`Z_KNe;Z#-Y~> zwr@AaK;{YfDC&&Hqz3%68#t zT+a<;FcQvmU;KzBq#q69i(j2 zCRdGjVNJG(p?i4i3O z=#8opO%PgeoK$Of-8G`>44vFu!l<<$-wRWwV?m-5^*qC}y}kYVoIlN0%Qt6jut^u8Xsyy2FO*X+4u(zAzYUafkHr?4RUK#aky0XToBLPP8)JbI>O2Rhihe33UGfThe zW?&&|$wyFbm0##RUF2wYC15tFi9FYe`8OcM!5b z=I;<<)L_WkIL1#T?!!+XT_4Giv+ipY2TEK1$lu`PftTrz*Nbi(D*1jE5{-KGfso`w zYVbtvHWu&WTN1H@&qqzHk;>b(b0E3#K;!J$>l~@`gPTetb1aSIAw?CP)mw7EIrRHl zd?y{Z?gL(;0UP21_Lr*(6gfU+t4F@wx^2P)aaBTwSk+Ul-%3SU^2$Mz9M;xB8W6IC zOOKG@WDl5x|_%0>1My6WN*sN4S9y{(a_YN?Oqq1Q51 z@aajb`{@|9sN*Qq(@e#Nipr0p&=DxC8B80d_;`z(I}+qstjv$|6R#4^pRL_?NW=>n z5yEYqORKh2b#xLQo|+0U2UgqwsVTOR2cTe)&|O99DFXt=weWR<M! z1uC&YdbqN7xMTuzWW6G@AUAg66XL= zW?YvrL&G_==4JN@znK-wHt;I)8Y~RYC>LW!ARNpFySO|_q2%K%DLFKO%Ls};YPpHd z7*FBNlJ=vK^EM&aCY0RSy@QZYG|l}9{JPj&)ETld?x>*oBG~w)u+WjEdq%lixFJ3} zd(a?+lSS9>jvM00HKIAusBz4bQHnX9e(@W429_q_|KFWJ;Ti#z-(N^XT+wld{-0Ze z{#xJ_eHss^yYZBLSM^o^6R3yr;YJ{NpIw1#Waa&J-=3e6j>-~!=zx})$m#>VIIBu39%1(2qLX>TT)!GcQO#j^fK+>&MS5t`VNT(gaxt55cN z`ZVfvFnyA z&+ZZV02XWs#6>r$l(V^+$@B{BYy77I*u#B(3xz)jznSo2K8pcZrb#;r0h-D$Mu-0O j4(7k#()`uf#zT_q+kaS!0!`q3BA}|Ip;-Rd{LTLWxo`U5 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 34f9867ee927c78c95459cf1db76aad84d939452..c7f447c9bb44c1d7c3f8a5b8b4f9d9f27b3df440 100644 GIT binary patch literal 55511 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 T8euZ57QtY=>Hf4bFHZ9B{U&?B literal 56527 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 fh5t`owL8J(h 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 T-#U~3%mF$YhW9Jfo`wDwKx^M{ literal 5017 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 Af&c&j diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index 8414c8b95c8d8464648ed0ce4bbd5b3af225b812..38f7fa719960490422c495c4c0f17e8c977d9a1b 100644 GIT binary patch literal 33669 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 VnUQ;IkpVsd$Ve(ml!+Sz{y(ZW?oa># literal 33387 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 Zhr$}QNUTi4VF-Xf@-iyYRj*7!{|_hOv$FsI From 8c6c089807368090859c8f044b04bcd502eabe7e Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sun, 13 Jun 2021 12:03:18 +0200 Subject: [PATCH 002/173] Wheelchair Sprite Rollback --- icons/obj/vehicles.dmi | Bin 41055 -> 44769 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index d12851f572d5cf4a36efde4058e8fae919e9ee6e..f982d706358ee795457c0cf0a508c0328b8a46f4 100644 GIT binary patch delta 24177 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 delta 20434 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 T!sEBW&3%x$iH&iIp*#K`EzsG@ From 1d14add3826bbf0c8d31b292b669bc12e4f269a1 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sun, 13 Jun 2021 13:31:00 +0200 Subject: [PATCH 003/173] Fixed an Oops The wheels should probably show up while nobody's seated as well. --- icons/obj/vehicles.dmi | Bin 44769 -> 44977 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index f982d706358ee795457c0cf0a508c0328b8a46f4..f07f0fbe79050fcc9629847e0e67c09f8cc452d2 100644 GIT binary patch delta 23408 zcmZ_01yodF*EW0r=~SeoMM1ih#u1Pb1O$<007>a?4$_E#iiA=M3P^Xu(A_BAAl)(K z%zOu*_xb;KeQSMd$(qAC!@2jp@7?>_F3w_?%wretX@dTS+S-j6SoXsm04ob0?*m8l zjlQUC*L#(cNV=OJwS)o67yD zB`dD5_F!!6JLFi3(RL`bSbqQGLEpWy!O5ocMtBiQVr{!@?6eMfvD?tN)Q#y%JN>2iK(apT4f-QQ36;f?Q`gYmg< zW-B2YT%Vmp9f3!y{na~_)BD{V=`7sbDpZ$}pKJ!vg)I`J8(nBki>c))+oJYAc{;oU z$|Z;fuV+p_=I?kOj~?yOmLeRd=SL^Dar?(B57a?58yikCCaH*DTG?iszkjuy>y=p& zrbkCdQybkYG@okKn;03>0c2#%Q zTpW{qTk&G&dsx73PMa+~*6H@1QWgVBiuBnwzaoPB$JD%*QUyYD{oIpma=vP(NJPX} zMv@E6&*jQ<6D$$j4y7>$OpIgkj#X6`Dn91+a3$-9>f;Kiw-y@Jh4ig$ENm<-wgsQR zp>9Gkrm3g<9TIlLFmk7OcA{gU5`f}js!{XEv!7c5fbaZy1^apbQEAkOfS>uM9Lkj}&h7?qyI%7Nuj%zNPJvqZeFkMzR8;RmI@{Z^zB$-j z-!AT0q}@*!xr*#h5vK$wC@8={B+_H?XdZ*Enicb$_pjQQW?=z}WTt|>GPT@hR;TN@}% zNTB|lkU+E+!zhUdD5}x95EAxG5AfpAms>)AlAjPRmWoZ$#n(KC-ggcLt4E8@h{Sm-79k+oWI0$~} z225t=JvV=(=+Ju>#%=FC{&x(sofi`KJ!Np3-oH5%j z5D4t(P{`M>d8gmR6&Ih{{$3%o*XjQK`xEsxWt-=F$|$qRUviJ*8TQJG^fjswSaD&r z_d3PVWxjSJoMW(65OZJe)eBe3mh8}_vE<2SYwaBe1mOt>!kEpM_XH_XuNkM9U=n=gb_?v z+Eb#FB|QtDpMCmttJiIclVQ7i;UJ%wu;4_p#o&C8z;PDTUqg&tFv<*qm`cPp-+Ib6 z!|WKs!D8kd`-#85^xeC61u&vV?%b~mzoizxY%>>vR(RcsWUQTZwXEx#W(21_*U#iK zE$^&sihfZobt52uDxxbdk4u7wE*sn!93ku7id-6;Ed5*17EzjIWjt0Vl~JFXne*X%^^Ec1re%~4#G%E16Z!6YdB-bMo$1PDcfl_FXrs0n=had0+FIVTj-JK}G858=ErD%&9 zv%&HkMBlu5GwHFv1afCOd}>Nx{@jsQE(TTc+cA|oaC;uy8C+lQ4G*pmhSk7D2+l+37xm&&>mmh?$@?35;|<)0YAT|7b)~m z&(BW^_*PR>qw|xQ<&ryed%o(VP6b|$0j<=`zuy!!`)yyf984Z-y2B0D`N$jRJ}=q} zqMnzM3nRf&2%hwn#5D=Hyn%S@W$5X6x8USb;-8TFGZq}dZBdOqN0P7+X~8WI>ZW%e z4$~<=Ab2AF7I;_8|FuZB#yTqK2YPknw6(Rd05dbQ5Z5K0C%;Ol;EqE@c$!t=TCVhR z6+;r3im@U*b4+6%2q(SBMWr{0#zZ$>@)-(Ck=$?pt6S#mTcnhze@uvPM~+4-#BdnP z?mUBm`?7;te3sP+eM85r3gjNeb=mGL7H8U^WNm zvtSc2@cIu6FZBJ8HsTH{QJrCb5L=^%ky$$ihweHNEc zId<`PWNK>jW3m2sceHH*oX;GC{t4$p^`npAl39{)y{Mkd&Tq^T6zVJH#WOXddb=|l zOl9o}I#tEttB-%w`JD?@*4Ks}xF+($JLFuMM-E(Fik+I&dAwyk|MpPbZZz&X1D&BO zsge~!Wz;rgjyK-T@sB(b70s-vp}TgEETYdp4f#-Kj9vU!`eMe;AydYOf;J8gVa7#?^r_cseb4#)@brQB6)yXoIKi_EnTUq& zz-|0ptv`hD1|O=}zmM6^T3VTz$K2iB7xz2ELtUX;S#>@qxjZ!<9Hxgag3i(pDjYkqo1j-xON=g{;FRp220f54N1rzPL;M~c-r^KM+awn6R zhpMKS)$v8cw;j_I6LX6PW#T$6rueMNwU77DCj5PZ+ygKE z4l(cWuNrtr11zi}BywSRi>aRTild=X)!r)vZtm`^K5YV0=>0xpUq*iq{&mQnzgORX zr7fZW~%bp*!yGYtFTY^e;b;XPQhu)-HM-OlHR#Y#?-LPE0F+ zD7fBLSuzH49koAx+`D)G{>epn?BECkC}d8c${yD$#vVs_^~W|@)PC$_^{c?-ytp|y z2nC&|WLZ0oqee$Xsnx5Ud9*MI>Vr(hr6GLg#nBO=r}AW-ITJU}Cd(tw>^nXidouc0 z;-)~+!{du}HlV33lJb!^eNTH74Hh65PNw}Fab~Hbe{_4?+}qxB#3(MQ+uQ}zH#yL6 zFfOW!u;NwWdt(^)$Q~d&y-K<(G9^*tp+fyDf?_0a&LC|g|e0m=`I{I#KqUy(b$nQT=M>j>-)@{&j@IZXk z)6+{5bG|zwJYv6+W%Z*h5~Sp~%gs&f?CdN{>s+9FCE#=PHJ|lTGHiR#y9+(n!2U~h zdOpk6`!v0&iZp`J3zzk~+zXd8V!x9UQ35i8r)|aQEZ;UUzp~VKKe729E8~+S%{O}= zt|+HSd24zJR*Ei=&u6CxaHU)xkE+iG5Wsa$vFRZZsAg)p)A#B2F$$_s7n z(7-?d3WGnO7L$?LYY2RJ8G>z<$$F@w9;C2#c*@f#r?jr|JB?dSF&_X}0OhALFJZBZ zVFD>#;4O8q(crs2@l{Vew?prGa_@)t3M*@CY{J5n!2YlzGb=wod2-1l_eEZAuAPIK zC-K|dTrLJFFABV1EJ@GZr)T-ToEK0^OF)&VHqG%V?Tfx>dmn|&L%Q{Vhi97x$WUvG3L9gIPpEo;9& zYh>!9h*3}L>6pQxdAWmLCG$c>ZP5Wd=vK4I!^7o&Lt}=>oh2RYBE>vEpR6~_kAK=w8B$GMQA5^d9zd; zQKh9qb!%~-KHctJL8_~(cY?%i>frV?}ag*wBlS6^C$d;R`W&pcvQC+E>E_w9=J9> zVNMH)7nArn>(a{$1o9)UM)HJjMpM4$xqG)|$I{fgoK7o4OWgbH{$h)Rujh6hs$kC<<%cmEy#(N6Z%P*kzt z;Rlq(lR-qT%Vi4c5xcY7UDt61|LK1*=2PaMg9Aa=0d7Pi36$FkgX<^nX~i=J3tsI- z+3Xe^x7Tk+*|67>i<@MOAN7yVuU}}s6){^OKtk8Y$&6q*r0mnj_orQdWPM=}80LUN zqzy{)rHGGgb|QrwGvV8Nb;oN&wBieo`)1?z#*VX&v(RmAZN_kdqZUy?!C~%;E_4Gi zR1Qg8->F>dDgXnAjfebc3+ig?zr)yS<*VglrMWL&U*Iin`Por5@=M{~$o}nh?>Vnx z#za_1+Pr}vVy&|=v}JsS!&hyukPNAd{($N~%SG*_`H5bh`eMfV&~v{rm+}ZJ4)wIB z+S*h;wx^BN*vRZe^gYgKf24m?f}q_cme?(e7ok%hhO`8J-zadp zRG`|zGl7U<$4h5CZ&rYPQ@hjS);Wpf6eU0)V%Il{&siTlJ3~Lr#R7_qzK~(Q2M@X2 zP~DNO{;PERh*^SZaU9<4h`)maFtl#9U~ujRh3pB6VyvA>mF?ae*sxwEA821nX5{Af zP@4J1g8{}^dH7CQb=cG=?7EKmfvDnJVmK^k$}G#w+;j`I*b2N0#%d73A`%aXG7}Se z-+7wZOR1HQRciw-vw*-+j|0#o_Xr6m8}OFiBmzwKzLB^}+|K&0>X||sdnd;Ii>*DH z*xQ=-4jleQbgt}Z5CA0j5^|9&hb=Tf+6?FuH!Bb`Qf|JcnUW`t|1%VFXH`4oV!r|> zoAaoOsYFdrbA?4NupV)nNY9?bQB^tE31eF4li}e&61NHY9}>+!NQMCNdZs^GSjl{a zfmE=2eu(q)G@^+VIgZq+G$)B351O(ENbsyqFvp$Cd(f-@N@UDk^l|#>R$L#Ev$Ml%74s*JW8jN)kiT zhie(l(-1>J)3|hOSnY&G!)I8mtR*X}{>Yng%&dFhXODrbIk;HQKLt0$5@w~W{Bx5V zP16-Z$T8M|Q;?UWPgT6norwjYK{;P8lRavn$ty~1aXgvZBop8LRO5jv4g%lpbt2)K z0;>0l?r=!|;XAG$D$RS{!%wPq{%qsk)M*;Xr{!Iz=Ov;%r10S~dF?wuj_Ik{xs1nA zYmkobPnDzriWi1)bH@U&<65jH$o4y(Ew>ue1xNUlh2EFHVfq`9FvSbnZ96Zv;JV77 zihedp+rAYw(Cx=L?EGHsAef1+_?-cic6LOogv!zapY8_T&X(y5C8kM1cOKp6;81)J zVi3UC9yIT=$7*-(e!G?EGPLOPaW&2)qwNb!_>~(op}0i6Qs^cpj;jBybgZ7UXn(RCNW$ZqOAv|ciDEj(+7;Y0(F7ekmA78HN$0l{> z;mN$<*v@pni)PhNAxC%V>0tVo&qycqc2xN^nWY4!t~#O*i55j$TPONiS)Y`79})re zPOgJI6EtMT!7vYUREjP=f65wV$k|E+Ggp8OdYSh~_4!YFwwK!4ta#FtzIbgY#z5~< z{2}3C0zkH>|Fu?ZCyu)64rg`R*{0;;Wj`y(>LtujsxQNET_c985&BMLZaOwM5hO={^wnF{8SAD0H+HZz=p8 zoT%3>K+>8yfVlT3LA_JXX23cb#sfB2-=NqBJMFQ>{Rp{?43vKXwk0@=yB&enz@n^b zq>@~4UhY_|+iPq+8Hev-d0O?Rh`aW|N1C?9t4K4b`ibe>=2}%b%J|d@m^f%x~*csuPajSunzx|!ZcH4xWOB}0oG1|P^UTkM- zi+-K*3$H}*Qhx=1h{4<*n7^Pde)Ed6*qkr`3%GxO!B)b-dzo~mWe}_Sq(HD*)V-9# zlN?Q+Nd|AWs$I?zP8yVU<-9{)=@&@Zyy`|m@pDHaiFkhg@fm2lIJ4NHcE!*HJ8fL& zA_kxe$1FO~QM(Cn{o7`Tc^ibn$MV`CEko_`@BRvOz66I3S>^~t21^50H6K!^-I@gd zykxzq(<&64hGQeQ_dL&t9@o*59w;#Ik0aho2G0W~l`sUX=yFrC8O`6Evf3J*D(1gV zezrD8bD;ei9PH1Sz>2-|=$Xw+`Ta<3*VVq8Dbsj)_D_GiRL3kFw#VrDrAfj)IqXOw zHlp`3Pa#xKps@=xvl|#g(u|aECg2JV_#3AEaaJ-zv3C6 zr9D0-PoYl5>;xk^Y`utK?L`Nj4~}*v>$@6+&qxmf9=5b*^IJ~LyWc)DWtsT%HtDgw z(5r3iSK1h&OvPA*r%!JHM<+9`S7L8$ZJn3e2=gP*^t;c$y!XFEGrNs@VByq$W9}OI zB0^Bb1TqEJtUD`RE#k2J*gE)1ySV7P6J5nq==l5d<$)`(CBpCg85ih6H#&e#qTD8p z)?hoC7i6qo+FR6`1(R(PQ70kzi`@g3oYF=HPa@slrIv{KzgbankDi>^l29=Fg@6Gp zUDj^2k4c``Dia25?!{IxvSBqCe_##&i9vgUgX9fN&=)f*>-OU_5FYCqGKdNuMV@Yb z4k+&o@baC!;x9(fS zA}meNQ>IbqiV6=nUpsVO?W4OwU^ZJCIO7g>Kb|^mEWVbVDJ~XRH;#E?)x%;Z2@2u4 zQZlY>WHUG1|8erBnVH8tCG4E_AuOOUJMmQB*>{a|G zi2-yWU$VQS=82+V{eu)Rk5S?`+ePauL^rSiv0p<=E0~ay-NfAWrib(~(9xh33yJhy zE-s?+Rpk40BiM$chlTsqVUiYIfa5IItVvns8T$z%Bk*2KDi{l>^OKeUQQs*rM|7r1 zCl|?QK3(@%8!_{7JDUwJkGU7?&Lp6=$oOJDz<%xH!#zQrpcuF->6nL(_3q|?`Y)<) zKhbE~qfBpw!rw$mx>a8kZwX0MYoEjY|v-_Sd>0pT@OCd^ZcU4S8 z14cni!}rkB+0*k8;ua15x0aT36e>m%NV4Lf1zEgSMnT0w<%7zKnL0xIuiq{57 z5JSaNaA#xwQ&L2Aa$ShnSb^!5+rB_iTl-?kJ0iV{b{<#_Kz^g(b^s!9b=T3V#CMRd z&RJ;0O7CjbIYVCu`$H8Y!}#7>k>Y<+@Zg2bGNwPw)YM^=9BK zZ;GVkpnx9mr};dgsl0fOT-L%o;oyN2feVnqY*hAF6cw@KaphVrG^)KBZY6-;$6CdA zZd;_wKP)tY%1BYW_)PPGUl;g&mOR6ER4aTqWj0|>{hOCBFu!qXOMFv%twU@fD`AgW zD>4rCvd_Juc2ehWgN~XIheDIrm8)=m_4 z@RwAgxRZ-3NKe^hUPH>u9LWxcJV=~>2-xKN( zEdJQ6>M(Sgv|8!sN#HyeDS|R*5Vvpr+qM<6mB0zHSX8 zoe1K!!xENk=8cS8-`p&vgQ1Gg&e*LF;x z_3)yGEv8N!j3H$Zqo8-=n3Tm+zGydmuN!`R>;^QYN&5~>4s)(|DOFLjb{}S^BbX^W z_l&7n=y;FALqorpl-!hKI>!f&hzG(|FYxcAH)vO%OY>$nHa2pg-wQ;Ytxn}_A*1dH zT?+;HWSS@`0m&@s!K2`zlhzT<7zNeICXqT^!QiyR_C(29ecjzEJFG&Hn30FKwrSiiH{ zZH*P2U2GL$L7DaW(OPE7_ZOuBo)*Vp50AAkYv>W8EB=m3a`1}ux&vRiIbUH?2l0ir zVK8zVs)*=^ zv}Px~Z+rvuT#iHa|9kg*;`ZKm?Xv5Jwv5>FopBkczCjSALGSXf$Ne1(b?6@Q=2KiU zo7;#Z&qU6JR~5(l|5Q7`>v9JH{HY7E7>8(hB(vR5(~G zB4JWF8wW>tB({SRW;msYy{U9E ziFFOkhZ)>{_>G+$%l<(XZ_{!HuV~}k8OTtXOca}Tb@!V-)5ijlwR>Or9tw5}`fxm_ z`I=;!)SUGg9)#LOievZkvxuMP7d8$oF8&I7W=K&h(Y84IClT6DSAJok zLO?)cUE-4S;nC3xBO}tL6!;qtWyo_*qi@LMM6I|txu3Y_|NMyy6|Dok=grCHjbA{0 z95FH4MbpJx7`P3sN;|$o(qK$(eB_zDHGfC?|noP^skfo%|78Mnx zsq@_NknD%LQI#+micPjWTsr|;K$p64Y5odS|31ED#Pp`sfD(;HclGyc8#PX?tgaG~ zeatrE{U?ObUgS%0jLWTW0xS{|cS=f1prR*uGiG8!7pnRhglN$lpM6nfPf}%nsiR}y zcR2R(Yp8iZz~eKKPiY=}Z_ET}uibr24B4OB=iS#*ea#%C#6oSY1k^W}bdw>2G-+{h zF_(Sdj&axKiO=_@we%%fUEX6KX|va_v4H2#pXc@!4>+KTSe3jq8pgir_xyn zPChhHzH)LZ&Odsylq>L}uDH9uKh(HL(b$*?m?&pIYfIn!`lc@K?e8}IM%`>N2KCp_ zlVhKT&Dkt-43ppRHMhg_m349O$!?f9*t>an5Mj>G&j~}}Iy#A+?2AsbNFx0M??)Vq z`z?u8>|Sp>1|`|fv%&7%AIlTjore06H1)W+xB_2PWutguFnEQsF2v}HYer{UbN6Ir zu_yB>%~7o@x8X)fOa1w4X>^9Y8pQkfG1S1<*ME1g+-cwkTK*BvrSj>9Js*>9ShBHH zCkH+!CK8*vy1Ks5&;Wv)7fKwot`kjYzwS;`*lNnpLDSK!=W=>_bb#y59RZq<`1p9) zYUo71FD!??)YQC%+?$VO3y*!k7ok6`uV-b&(bC%D?x!5##qfdcac82@??2;$Fc|Cx zE*|F?+(?UeMNLa9?zwHodhp$-nW*S!dAFD4iU#z59{o{GIRykZ29$%;=H5`M-_iWa zeoYAokutdCMB?Q3J=`cjC_~$iW$(DU86d8tAUi}w>bF4VvZ#S%ccPV z0n~^cUeOZI0g1F*)rQ6kRJU(GkwT0399!?VPDi*$jkcwlTUh)wP;vbqv6G5z<+E-~ z*#DVmEXztXJUJODAIop1Yl((EcmOI9O#k_V3+Nu7-F-Ez$J$2O`=W;}Rw{_ZoM0IY zMA7|Px&wCPlOPG0n$s~?R#k3Mbqq&`hbe`5Zl@A|A&J~`iC)Wkp6nB_t(k?xa_Q>V z4~c>oQ#e^t(c1R*_6_X*H7+hL4ILePK)1{?n!;nU)WX`vMn+yf)TyuxETe>Wqzfs< zE3=;&ZICn2u=cm;>oKVpVP<5sFIj1;O&DCh{gr4oExM=f$i>xlaczymkOpJkmv07n z*j)bLlJIWxAOr&TDqj~17}{_XvDw_-epoeDTlYNvLt)cPdbhJ6#JC8^%6-70qZ`)u+0!bE`9$pnLC1U*hOIAWme)RE2p zrS(9nM#`Bcr(rhs3?o%v!Qe>?3y`9HJ+yT~`{>Q>j#%c{7nusp5O5`X^m}RPElAVE zv;*Enc9Q+csLlGC$^~nOOr(aM9$~5)eq6WtN9qR9n7kuNK)lna3oQ+$$mvblMA``L|_Y&G6VB6V=U zQbZ+^gP=vYdM4uaaE5$WU*C-(;V~-#S|0Yr{R2@nXla?1YjCU3ph}H4_`2FKakHaE2D%QpO(BMq#KY4<{e843kx&bb_`&Reu$RK_Y5E0$#z~qZAJ32T}vwsf>4{seDBrhl^2qO9M zD{kW5JEFd1QS!jQg-^xB#Wx=mn_(JJtE;U%M`i`v+jhyeAnIfs4Bhj?k zwapv-%b1#)3Q?r_m&!UdORa<00I;^VZ}$zK8%>pRA2EGLNqNgXE?d=diLN#@G<1LT zvL-&^G7FsTycR$1i*FH;26TYQdqcCE9=^^AHAB(r6fGQW91ljo+^gHR*49lwBsn(D zPQ`7Kd0RfGJgP!^5l4ov*}Tf20c0n6@Bq?UBZ;3#n%)n22&imTo2+N&sy+d)U!_^s z%ge94mMp1%lI40@I4jWyq3fKwKiwAr7sm?>td{*|IRh1$18BX>fn4@I3d?3{e~q>~ z!x8q=m6IXqlAe6;?nF&weS02+PCB(L8xCj2WAFX5n*=$dna>~JR+7VRnCwlJ@-T!* zZVBwPSNy4p!D>?9ZJ@F8*n5@V`-SNzQpe0w4PF96bTWRgL@{n?{X0>naFA@Gc7LY9 zwyJRGWmlTtq4I5X#ZZUw%!QcXO`|#LJ^W*q%Ur118_%!Oy%r;%jCm z2Z=y^NA(AO;$u{#>UIGv2{uJ$qsYbZCt8#u_ERC>n+l{V>gx$$4X3urChj`4S5v2kGVI)7XnHMQryT>E`)1yYAKgMp&FTygPQCe739- zy7t}uvA9H$$gUyB>GRUvc7F17)WOX>m=bmtK;etoG_9$(p`8 zFLw$8)<&WuOMZWi5=x^UKQQxCY0>(dJ#l;yFJk)R)+L$;tmL=5e`|@-&5u}ii?3_q zl-J;?j7lRO;AebMvnl%N*5xTp$|T$`-MbZS=08^ozVe_Jz7x&Y8vpsT$x&8+?mSM~ zZ~g@Ta*;Oqb*49O2AUB|Btcg{5!@HZ_ogBnx3@4}r?}mv`jTIVZhBH?WQ3{22(xAk zDRvc1XRU*nkHG0c0TK zSbA(_ksKc5CBwtCn)JUgg3e?}(0t!(Oik7n6|?^e4FLsD(_fwQ_hR`{dJ^%ecirrz z#CY5{D8SY&IIa%PJI+ZR_oq@{34Z0>OT3VA8s%2D*5{$8zdg|?#}Shm763dD*T1U* zi)GV+Lwtg85`oPoO#`WtAHRHwgd&Kx_IAAx+y4y?bOy;{%&T4e^tY-yrq3PK5u$sr zG>p8wJk(t6gmMr8n~{4EdQUyf9o_5F^b%0Xgi$r=%TN{1y}()ywSgMLD`Lr_$yS?r z+JLVC0s^Q(=kl$%m;wSz2SeTJ?a4CUmg+ZHJO3|$Ao%|y1X}}qXc=8%hnTHOpdZ14 z(Z!wP>XG5(!>6{s$GBfK$uft#AjBun?6V~?iCdJE7QLFcIwb<2zB*2mkgzaSw~J!f zuyuJva#GR*1H?agU%?*Kt9^oY?vslmp5u8%RTXz5*&}o7c#N5z{!FuVkN$tr z0pMIIO#B-76*L4S#!&>dfmm0)t)oYDz?B6&Z6J<_M(UIgCy=*yFTNl=dzdaw6{cP% z{Mj&3w{ql6)7jjrU}tY@oIe!phf!%3YhKp`yN7SZZot8{dx;k`pvDg+SYpFkDPf>h zksNXL&Imr#vhK}BTZ4?WAO0a=*?@)RS(g0F<`HGjFOD%EK2Y4i!>c8k9~%qnP;h0{Ic~fR6HpTnYB1(k0ioXRKONIw zgKcDA&NI!`VvL$o!M5?tB_{~S4}qK~R$W&%h=3l0@0!Qy5ixBG&A~5Ty<)$DTJa&h ziTtnKPW0L@+SN3;WO@x7*PK^2m(LvqXp3Ff)XXg{Gk*P2eu18jTjathBPuTn4k|9^>GUS`^7Hda zggwzXU|vpJ(UMu{V8fSFHcrlNwgSf(NYfyWv083Cqep4m>SW~S_wCpwjPw(Nz|t6t zm9Fx#h3}o3#`)=wkpi&;8m>r9Ht=S*0?kZZd`^bf%jDmr(YpOgF`ALik*K+4-21)CCkng%G?z2oqw-pHe1A zN@o%{Z2g&02g3D^v+5*#5*s@Z78a%h625%-C5DObfgmK*&Xkmnlonf_ieW`?LmwNeb&BSv6Z+#PEA!a91uY?P6fJENAtUxh z3(hNQ|7r5S%0^BM7K7}hf?kHA**P`cvIu@S;`Z3Qcw{{K-VJXZhWX(0U^iN@ahNTX zWgM=pjSJBF_gB!m&$6VT(L`!jUQ_@DC1s`(G-&Y%LePCmstoEU%WooU%_Ix%bMT>( zoLc%UDMNU1enK2`Lt0Ikon7Gz+J>9f;n~*5({8XX-5CEfID?dO%9^+e&W_XJad>uA z?=bMi%=>(W^>S+nB^61G^=m)qsYA+0dWZ=GZKsY*k+u?{he+bS!0O~Rfj0!`>|dSx zyky|}&j8M}UyPK|ccn@O6h{V|px3_1=lFO+3?%xChktu%jr?DgKnPyfi#n9i$j-ge zyY!5pF=n-lb+wqur3nxi)L7oXAWqKsyhS4})9s|lB|Na*L{xW*fjY%S>-gXDKVhHj z@Qazme0E?0D8|FQ`*of%Y`w1vqj{P(L|z>r=8w8a{Rr9Fo}L~jx1Q*x!Irm}0?Nl6 z3>VbO%F5Ss2a0t71W_vPb{bFsJw}~AgYoe-v+fE=&-W%6oetd<=>X~&!dS-BG!!#> zSOG-B3tzOO2NuR*u4}OUs&~(>xcFY3%_Msx#tUKp)#hARlxA%WR)j&YY_Iw=2EtQ> zxt`Doj#HjX+YSaLjCuX>^x7u4t78)HUQUade9JDH9**vSpz>G%_}!pQo8gzJqT}#h z&Nt_*dA*dz3^ zRUtYq;5jxX^?u%Wxys=iYp3aKimfG{81X2!Q}p;V#O;m-&k*PHbagdnIX>5bdX3qp z|7uuaOD!dsUA1YIF5NRRI!b%F{i3_{bK6G2g+FTHyeln@T^d7m{p-g5PHX8A0Ty@MQ>sW^uzfkqlR)kk>ww}UboopT!{M4oy~;nY~=%` z2ibp}?|*B3;7TAg#B)L0U3FhLAcxm?^3Z~ZlT(>W4?3^kq&qkMea}B)W%`qzh6csi zA|Z#WS2$K-@bw6b{-?B$1Hb|lv_!mnCkq*NY#f|n$oJ&rJXjDZ?&?y4>aw%GGjmQE zE|^y{8W{2Y(Qv9>+WmpD91?o`kXTnyaTG}XZ-s`Wp>01GtEbMq!BQ;h*aKu?DB4>%qKkcok2 z4^$%6BdmZXMiX6K+Mu8yyOxT|%8bTFroc%o>?h~HT;$b~VzERYJ~WvHYu#JUA(SI4 zW3q_-tpO`5tLZCpKqY}k#@hM;B*w+7HIGo6Ct+`7c%iT*!kEa@8iEYA&o%hIfO>ov z7e3)+POE)iCMxZdr+q^CtPR604(6BtPSN8s22R$voQb1Ro;T;so}at_#^uF&bB!uH zHq+G93elXJpJ#si7JMt_bNt{s_keOt)g%EdXeerZeVt;7LEP`DbCfG|9@~|NvQe(n zgtIiQLB?p1K1MjOOT(bx2#>tzT z{}_5CZQez}LelojdRM1FW5wCt-zjRKSn}~UndO=!)05bv zinLHhTH1)OU+(~xYp{STuX;oMcXsh3O^JGpmn*vI*7Ci|`~}xTBkOV@m*n6Rmvxp! zg40t6$=rg1{@rX2CFSR){x%I|UeT3a>rFR*U(5OWPiRT6M`^c7@PhkmAPQnPZ~~!e zqh!}H;kH!XkD8PRF5FEnmEIZ}ABKckaR0++%>bGM-e)Q*7VVt8yzP5;8{HW-GSDiC ze1xxu0&BRZE+{ab;Ks=PKgW^~hM93^XD3HmCy$tb;7Qv)0dk$^KO`i$dyWdEV){={zb6-~XfEk4s#evicrG!X{TxDah1>6G96Dk0@dm&Gh)_T3)} z#d30TICt*cnfYK6Hn>YhLelp6m)6Ah;BdDO4fO13QAN?6s?;HOb(SsAaJepPk0 zYHEwumW~wLEZslt^ttIrNm6p;vph!j+ucy!sFPgR=RzT$@lTi&#`eXyGnI;ZvK3?a zCHa$TOa*nRtejkEzrc^X9>3|cX>V}MO-;SS!oi!^aadhzk8Ap^>jMp?-Ap~v%^fZI zqXd4VuGr13;Fl1(_3_uo823v9^k*UB)awzRr~H;P%tZ@Fo%r2Epk1Za$ftya)qTX$ zlG)&c&>E_l;o-NWYy()V1Fd|w#jQOP%&-y$0$L+n`C9p}EUS6W|3f<`|M*-4k6)BC zSdZP9{=1jbzSUv}2xP7$cdh>da|huVcw_XFK2m7}6lO5uSH8o4SW}Q*6pYvRdfJ^) z$Ef3`PHQi@lP4MRzp zl9Eyr)F$dbfT4&RiCygU5pa9)y;LR(ctuK;u5cHmy4gyYp=8a4KjC}Thk52(g`+%bmv2SZW<5E=$ivMBWO-Xz3@tr%nt@h0M?e?rq#B2Rz^7YKe zBcn}+6Vy^Vbnh1yOrre1adUGYJXLz6VI1+5PW|qyRUT{GTeofjNd|6giZP#WBY$(Q zQQ^g${RtnlQB_fa%Hv!*LW5?jitc-XVBB}rl>NQCM(v_GpRb79bNIqAC~l^aywCtEZc zqKM8u6jZVr$blx2l$gOae5%@SHFixi8T8P+#@FOz`^W8zD|bEW{gAE}7WaY9OI68D z)?%8+kV>ei*Qs@mjJ_oxBYP#!5k45UifA9_%EPVC&AZ>x<@oi~v%Q+;AhR{%L z=<^pYZ70QGJlQDAZER}tTwyPn5hE|Y{|;Kb#EmkSahBCCGUvgY}C#U4Z6QO zxja5mF;_HTD8-km`#3#uO&wwTvQdTfd@FA&)a;jjZ3vNj z-ZVKiC!7_3e!ax_kM6$qd;djJ>3{=Zm;j$3eGGhKL^I0>U@*fX93SIalYYqaO-b$` zqaJ`M?TMLjYtxj797}$dsY13f83pNSs2=s{(s>$go|)rxbv36iO)rhtp>trtE^8Ii~-w__q@+5PK7sf$l^vtNDzZYTyoc6}BG-t5?v2!LDxaCNogBQu9X{G|M`KQ1Y6Bu#X9!G+aT zOL<-s+icupu|hUht%a_QtZLoytuDgx85_{`Qx5rY)iw@%$Zi}^g_#)q!tee!USFNr78gmsqO zMC^TX@_$6;RyYrSx2=i_ZCcuO;dORAmR(_m1`d#p)C&x~X@c zpoOr+Ys6*Adpd%m{msNO`LiZ|O)9F;%1RNa zzLZf=KnjfxHQAd$J$xWgy6&{v{;UUOaB#4NX-Tr^z1=HT?!@Wunu^ZFg{9#K?M67*`@2YMTp_2v3yHTz=I;R-ziB ze^5L5C`d#_Madba9PO-n(HiU4$*ti3O`@a=UA7%#f!v8aNvz4uR<@L$zotu+OOpqW zYy~)kh(0oZu1mh19=@#(tjae00|Ia=-uDP8By;xiJo&q_N+6V%m-jI}eQ)IB zx}Xj^j=-7@xc=#S<;Y(5CO@`qXi5)w0woaJ4cR3X6;vlDCqN*SDF7Pv;?-yO`=K@# z~z5p$cBQ)!?T0tlRfU=h*@1-U2VovpXrinTUwU3Bo}FP3yy%+HpIa*N6va zAE+%|;yb=;oNCEwZ3;RrloEfX`M;A9+y$r+SYkgdQbpNO$8z)L+aFWp)*9 zcX;~pyyEA?OrE z5QJa}*md=3H}s&3yU^4YBO{~i)FrY0#QbQrTN9LyxpV&F%&)Gdh5q{k+Q)ukP!{+x zH8uKqvIwiBBt0d&>Jun6gwTf?hKBE@ejA+zeqa&b<(GUeE9IvV zLrJcIm4CYw2338id1Yl}{!b_884p+Y?eP)O2@)kCM36*}ArfWu8ZAVW|7fE{jTWPG zL=X}sh!#D1M6aVqiD(fwQnEA=YX=_8z!O7M+CxkQ2m1ifmmhIqo!Ra2ali)-vAI^bVpt6PrRh$E8M>)=KWc@jPkR=6f zWDEcoh?jZ&OKfLJ!BEW4Ck?`E-2zo*b$v}@^XD(u;;jNKoxbY*xpTn_5`lH>c&R8Q zn68ZzXndQe?Qa*?R?U`_0^qJ~W@aW|tOvSx3J4NboI{Kv@`>xURfg4GU`0K>Ykd6t zq40lNMmRmf>ee@DxTR18DOtRdipA6f%j`ZrR@aCo3t%#Wf`SSfoqE+ZH4~?QF9S#D zm;H|D;XbUj9-XAJXi;Ha_ThTN;(h_3oF|$2QpoLdGruMR)!24uPG~vF4D#*aGR*)a zM_flyQENj3ayfW(b@w|M1TYTZYrhITuWuUd!V^!h*81CLfc!}2H}wyzZIQe0(X&?o zN0qE?+M7uJ^WSl2lKrXp9%TG_dJ zrCZPROt!XbK7*u0d*mNc#8bM~s!g^;Fsy*Le#qn-!yuW9NkKpBU$5hW-28HTY<@OK zf4?hNvkSdWO-e;3P)a9=tR}zl9d(g-YlT{k;|c!@NokTYLd=G7v9m%8rlo**0z-#Z z{+0aO-FIWBZ;j)p2+=IEz0OTP;OUxLs{L$bTmgaCPLlr#Z^ZU?2OV#73xEm;jnmEY z-4;xD1*u zE|;|h$jjcst9uo8L!4{VHO5JB{?|9cZg}_$h;Vav-i@|MmQQ*`UF$dIoIc}nG7b=! zEvM-!r+_oxuF$OdV%BomAGVumXv7^?j6ZcffVN1ODU<&|Y?JUAW0z(|TgM+OFx0fm z61;6K9HaNFSJ2AYVv4|YR-;1(i`9(<)n%C~a$AvxBg2n6rXemA$krp0K{?l=c3@E-pRwLITkuQZjOi$p@>N9G$4pO|j+83b=Ufi;iUKPk zTEMht*}jar7)+r&O2FHgq+7zX{cLsIWOiy=-?5u_@=5ZCcw0)S`z*w&zJEoX{SWcl zpc+$MyXbS9a@8&JvlF~*W1iHbM}`L(Nl+5rLlZriA+4q&0;|eN+fVh;q`B8-s&C7A0v&6wp#p{{dHu+Qo~keOn<`Sr7YF$@Y?9r_>MM+ry2^IG%rl#OcVH;^Vl zYny$0x5QmJVEHD;hMkY!2f1=WnEL#0lw^MxVfZ#rxb*1G9Y!!i7_GOn&yk5dd^lR7ki1sb zf5yvO1RJS=9C|sRvdK))#BzgyfuXHzItFMyWLH&TpEFfwX5Ly^Sv9hiFHl}J;stAy zc4uRNw$cBPTK8oejW=tXqV&QCg8Qiu_#;#H7MN9IWR7@Xs6WGbbTh0VZUP)g2B3`K z1vsM$-(81yY#j^j^X?c}NQ6GZG$kda@XMD@=y#1HXiRN6;sYP7b;g0hWWZ6iiQ2II8P9_z=r^h7Wa(irnhzI!?=yAg=|ao5 znD7=nLF=}TbZK$HDFnhee-7gVQJD*6sBts1Xo*$xPFmPjTiIg1mK=iEKs^k43o=Mc zUF-Hs&RVMq$$Chn!z1(Oo==R7*9*wz<_XUV9^27i_^5qm`??K?V1k0Me{_;^kgnj- ze0X^HeJw(3)S9OfdSu^X55hv4AVR=ozpNjEXW4!ko0dco&cSt((^8G0KT4)ZX;{=x zp;t#OKnM8+z{k`qzyiV6Jmt6H%fZ2y7(V@67joTz^@48thp)n;qAqw&cXyEsjVr(` zJ`fY5z~vMhmVEngp$46prejfK3W~b#+ zA?ww$=M6~9h5|!GiFeaXDY1;7ZPS*}C`cr7b3@#yyXV-iPRlNH^A!!p=OH1N)4+kP z5(PW<#2ous=NgGJsULtsR#Fu*q2G6r#O3MJxX{RSDX-qdE_&v-#TptFhR;ua1^TA8 zn^AzMbU~z{GU!PDnv~@PCxh zZ?(G9Zm@H97QMxIJ~FhO<@*Or3fgvj;d!1`Jq!XjIq&gk8t94fKXW*uG&<+lyQ}-o zPC1r`j$FCvc0fFxQI48oE+b^08)Q(%l0IxSpjJ{S887moT1C84{I&4%1Qi~Wc0P$` z7#rB%`Bo8t_uF8{@9*qP;dav65(SN2S4Mbq@*Ji&E;RI#W&tk;iV&gkbu8EDr)YIL}*P88+0rKmOYvnls_nn09 zKWyHUtc8h3D9OQN$o#3>W)sZ+fVA7=d6?tJF#OrRnDB{AV511T3vXS*NEvl!nLW!! z>-kx5VtQ(7A12K@<4C9`5{!59%aJ=#tuOBEAsKaTtxD zux?|$e!Xo0^VsHivo6Uav(iZ)alBR)-aVg;cvR#M-&g)^+lx9uoxXls@QZ7qIV-O^ zsQ>Hak4RYSmD1%khSkrnWZcnUx8l+V^5Y zC577+Q3E`$-gBMh?w}T**V&QwEWtbSmSn2qLw(oy*mX1_KL)OBy1zq6Vp7O-74Z*UWX^7 z!xt!6p}L>3g2uOav*MDHt_q#Pe++a=2i0&(7Sdr>**d?spK{Q(0itkNS?2*||#PGR?+~M%yQ~Lv?>OyhOPgn%i_4So3NT&C$gsx@=KpYc&%@;OhUA8Iucc1_cCY($Yc^s35Wi`Izd5hCIj-5 z*cEz!43tlDpOU;(e3Z=Zv*dU&Q?{wkdu3LDb_&fU}vMRq?B_- zc2V5;Fgw1E>gb@aJE7r7O}EvWE0$b{oClo#rxBs=8rY-{z!h{svzHoo98`6OF+vGd zH%U(!N|`||Q$vDkK`Uv?yceuzEPl^#_YTwhFjI%;!vnRJsXBktm@ntMrsr`!qeVm5 zoZgrxXFNBrym5QtfR9g~%YpoJVRFBA^cAoVzT@3b{WdV&?uRyp4`BjUH_Do})kkdx zHha*422gF&x~q8P%8COl0(v=_VGt8u(-}ugL(D5Vm=_Ms+yb5MO;)S!xOa(=nfdG% z=i9?7V?+^gBFmRS>Og3I8w|gQm$^RQg>W_F`P^k;34=Sh%-$n&Ak2Yt>t?er+ie{x zgSBPjX(?z}u1G^_f5G;}zlY2O?{llj6ojuUfy-w1TZ2=# zJStoR-t^XSm=vAhx?5|3)P4GqpV(;-mm>Ya~XRM~hkG-{!ZQbTFrGNK!DSf)E`3|2*fBJI9 zWe!g#>*1y&|I$+)wEd3zUig!M>LX=Qvgz4u3!B`0l}HogHZ`rN3+pV%Yz8{i36llz z>d~$0a5NM#R88b-c|DZ7as!51wiLaEn=wtkjZd@(tffZ-ti4!(R+OHp9C zQpn!h&d6<4B0jNV!s+|3xA7FJzsoHYpZ@3VoyNAo42j|_X_aQVfA8d3IC4&`PgId%vDgET6>N3D zItV60LM9;{vphUEmZ64d5Tz8b)z$MiuvWd|-?AIg7cz^Qnwq%@j(gi*bW4fJXv0y$ z;Un)t`IPfU&Z!_jdF$eHe*s$M6kd)gC(lNT%9ZyGzFQ zlNrs3;)@IKoF_zFd+SbnhhgHPI#%4zIS-F^Vz$ z9dIBbf_h3g-gLZ*-*<35DUz`LsYTO5>_W?3$443zdwOhf8JB>^l{H77Z=AhzGhZ4W zzFJG&8WZbCWyf}1ZgrAQ4-b)&Pk-~Mlf3WF`+%;BwfRx!GBIuS@7(@m@ypA%3drhEp}NG$lRLfJ zkoV*~CpMQ1bIAn^n{SebKTeURhIi*iDz*GYbSokZKmR?tuQYo37?*ygZ3pwv>Z+K?9vgavUw-fFk4v#q!P@mSJq86HZC<`YVy zGL>pnM_@ITlsx=+8>o=Afdd~uriKjSH4ye;?{Pn`8h-`H>jB?Pi7SEz@roRD!e@IO znSTTGbG4L|sxugIB=A&N0QsAJakY1|7BvA5aTw-H-y z#NNxTw&@3sl@!D<{`U+xWAtg{5ee#)j8pX9ytvBkv~?}Rw`9M1^*WT({7;v delta 23167 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 N`CC(81Ep>k{$K8sD8B#z From 7ccf42de59abeebee2c5436eac2d3bef6dcd7048 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon, 14 Jun 2021 22:17:40 +0200 Subject: [PATCH 004/173] Overlay Adjustments --- icons/obj/vehicles.dmi | Bin 44977 -> 45461 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index f07f0fbe79050fcc9629847e0e67c09f8cc452d2..3c03d663b29264eee653f2a87474060f168766f7 100644 GIT binary patch delta 3957 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 EA2R)%7ytkO delta 3469 zcmb_e`#%%j{~tmjM(ILIb6azrQAir*nq1P%+x?nb2%E@da?3(;uiWqCmP_Qma#?PP z&2_E!N0XInb2pcL*ZXhyp2y?-@Or%-=bYE;d7iIJCY8P6U-p-h*xV=gtz zM`$m9KL8*kw-(vu7o!BspTAb)R%Y>e?DIXTx5|?BQT#z{=l|$=a3c!3btSYRcq8J+ zn6h=+m)+U?#N8vpyksyT#!*64&j#VrWX*6WxtEh@ScB@$E*T0uXo8-Tdu}*l?qMv^ zIPp(-5qdGK%0&W%ZJ>9-bmR09E8hTLDLYxMEr0BDudi== z%O`QZPyf52&S5I9OWPNo5y|)x%{RnlQ!#gTrOha+HqWo*6?U}{3FMlO%`1Jf(tIFx z&Ix+e>G7J(iX9}PQnK+g{dG|wH!VK0s^uE)@(X-~k&u+_Kkb&_JKoJFT7RqjY2eDa z)R3VLej(e~x5RrzbP>O2#Y~SDeC@nqJ7C-qlWv)u3w$K9*>w7QPzB!=^RGLcOOBn% z<>keQTR_c{s#Gw_DtKXh3F~^~STp>RSbYA*+tgvY2U=mLB5y`a;P}SEma4JlJ?E~b zQ8ukY_R|?nr;F)q*rS0Ki|+vd=4BDfpXm^8jHk;>m2*0#o{)sHVAsL3a+g3dU=u4# zRoVOA3?6Hy_>QziqNiRe7w^Z1xG|H-8ByYlc)UdWvBV9S8SzoPD zEk^0rEHAAsmr16bogUrY9B7E3g{@tt?QU*&(~M)C9>ATJdV!F%gGsT%XQ0VD7;USmzO_zf?a+6=4h~~0!D0BY@f!^ zNcDZw-OkVmSQ_G_!e9~lSIKEB!5sm5uy=2)7cvLCBDz49zz0V%HPei2v^{~wJhp3i zJllVBy^{lpEPCrbg*)Yj7rk%+ztCpnez4w}jm8!d?b_CgiAd1Gs_pH=QsBO09RMnKL%YP$L>NNA2Uqn=^;s1G;(~d%LXdXmX}LQ zW@48+9qBD${j)HSOj1OZWUKMfokfNLEOsT{RNf!D5vq3)z^_jE5`0Tg4$D+SH<%~BwNu~Oop5X0Y-D91R8pP7ifF%pR= z8SgyE8B7+v0px#{yt@8t?rOPKp3ro_Eh;+O?DmmLd7T;V@#?w=S>Rc3mO;$WS(6B@ z0=hkYKb!?lR8)Z7s5Y6nBnX4S-jP>-%}z^j{VOW>)}7Q;Z-6MV7#SJCV_D{c`KD%H zIQ%Jls+Gdt=Gt&=9cbzHPc_^9qV!f?#@;X?vz=jR(c>nOdQ#yenB{*lN#XMyVs-|L z3Kq7uiH4GCO;W-*gi|Y7kSC5OpHJ&Or&BiuVXE~~{)2G!OIgpvwxR0<=HLt!!|rdb z;r1yt%x!ySTIf{OIF?v4lwx)azQq45z|5PLp7)~!8(s>4Pi`W0h$^3Hfk$C$ZG^ym zchq%&oa@E<&JE)!_tEu1Or#aIrE~R>TGG;zHvktz&bLZQc;A=C<@_f^6TWOby>&(C zXEFlh>E)%3!Kg0MXbk~W{X4gHipMJhgfT3Yjg1X3g@8?FWE`9vTha*B7dNXm=o7r* zkdCXF_y*Zl9Hi!~4sEFVunj91Zq~bn@Vtn8~`yI+s1FZ=-oc5+tfrEeiGwvh1CoZNGw^ zF)gZn;W9Y3-4Yh3NdR+{?h67&gzqIhd^&wFw)xA!+B|Afd)LxkR6@Nma1#3#**2y4 zAZO#lE!5_Fwb1o-Ic}FJCZmQ)D)noceODcp4TzGG`}m;A*~@D%!5wUpev0ku-3LkTZfzo34}py%P1zoqA)1jy8A#hjNZGNdeYH`@T^l^XQLAoi zXPYOq-wm>FcB{DNSi%vS$2}+sJXtgNE@~rDQYOJHqM4xw zQyoB&?S+(cxxiS!)nUCtJgoz!)YG#XW*>f@e4c*FVD6o>?!AAWOLgGK^3|&gZ&^6_ zcc1`xO(E@IY-Hs35MRMWYdbrY$k@yY&b8a?DAIN0CAAQ^i8Bwt>GJr}#FkW~tE_6GpkNoN8jCs(Zh-_Rr36x997L~-#N@?>X}eW3!?AJ#datjEe|s3*A+~P=w<_hTU5n$C z06ySpe^Y+Z^@N9yb`mex{9G*Gk44%nSH;ZM+%i~YkKItA*BCyjB40HkF&*#Be|Y{F zqumz8JD_aUaO}@y2soS)AyZl+a^SjO`jdYybqVr*Nzhd92X}hgj)D|Qc`_*J;ksW;LBv7@`YjAVhV*heKZg}>OOcjNvz{BwY1!M z*K%|a*Y~6wB07cDQD5r$T5U8P$Zr!A;WzWHs1P$UoH@4*vDI#`)0J+%|IrE9Ugz=9 zeW~5=(z*^ICd=}IU!cEG)h+pnJp$F(GAP{~sp`|V0DPS}$KZtY9P<{rEn^cPTMv%x zrhdRiI#(U8dUOu%Sg)wV#dlY(@7rkHn*$qjz9f`oV470hzqI<#es}$^xtsm033{$$ z(;TPJnnga88rldUQ$fU1?lyLRR@Mw??0-43u}4Y&AT{0%SGH)tq26vW6cJM=4il^P z>Q4y@TF{M`C1pS$&>ifnC|p9qP}Hec2?>>a|Gz?{JEmWBUepM7ir@mBd3YUwr}VVt zG#v^F3jQpFFF1lH`#daOO%w~SVYb=R-m*R#N}{Pq-U$cQ4}oQpH*G;q{-3xKnr1^}3$J?wzL zqgoUKq;<4QH2H);Af&VEqOFj^c<+r-M0dqyqV@;w70)Y;@*3N6w5;^+jO-}3>?T)5b{7cGLA={6v3kO*zU#C@#(R9Uu zO2<3B1zVBjrFRjC=6qoaXP)fq0T*bWOGESYr};;8DG3m$Jy|#}s(1d;y)<96>hq!^ z>{ZP_c#e=?MbDJ3Uys*ExlX7%w*38)v`jSrOs?m_lY_GW&%Jlr0C?{d7c?x?3P+$? zJ2*JR6tiHYXvrnVZdV>y%m=n9L7{AbS6!Mp=y7E46hbJtgL0B9=GC4X=s=j*smsD? z>gw<=8-W_|fwI=Tz$+=#NM7YK#mg45UQ=$+Jcs^|p~9vfi$&myiVD`axHjcqe1a9^ svgu$t^fMw? Date: Mon, 14 Jun 2021 22:20:44 +0200 Subject: [PATCH 005/173] Wheelchair and motorized Wheelchair update --- code/modules/vehicles/motorized_wheelchair.dm | 155 ++++++++++++++++++ code/modules/vehicles/wheelchair.dm | 17 +- 2 files changed, 167 insertions(+), 5 deletions(-) create mode 100644 code/modules/vehicles/motorized_wheelchair.dm diff --git a/code/modules/vehicles/motorized_wheelchair.dm b/code/modules/vehicles/motorized_wheelchair.dm new file mode 100644 index 0000000000..8e2d838066 --- /dev/null +++ b/code/modules/vehicles/motorized_wheelchair.dm @@ -0,0 +1,155 @@ +/obj/vehicle/ridden/wheelchair/motorized + name = "Hoverchair" + desc = "A chair with thrusters. It seems to have a motor in it." + icon = 'icons/obj/vehicles.dmi' + icon_state = "wheelchair_motorized" + max_integrity = 150 + var/speed = 2 + var/power_efficiency = 1 + var/power_usage = 25 + var/panel_open = FALSE + var/list/required_parts = list(/obj/item/stock_parts/manipulator, + /obj/item/stock_parts/manipulator, + /obj/item/stock_parts/capacitor) + var/obj/item/stock_parts/cell/power_cell + +/obj/vehicle/ridden/wheelchair/motorized/CheckParts(list/parts_list) + ..() + refresh_parts() + +/obj/vehicle/ridden/wheelchair/motorized/proc/refresh_parts() + speed = 1 // Should never be under 1 + for(var/obj/item/stock_parts/manipulator/M in contents) + speed += M.rating + for(var/obj/item/stock_parts/capacitor/C in contents) + power_efficiency = C.rating + var/datum/component/riding/D = GetComponent(/datum/component/riding) + D.vehicle_move_delay = round((CONFIG_GET(number/movedelay/run_delay) * 2) / speed, world.tick_lag) + +/obj/vehicle/ridden/wheelchair/motorized/obj_destruction(damage_flag) + var/turf/T = get_turf(src) + for(var/atom/movable/A in contents) + A.forceMove(T) + if(isliving(A)) + var/mob/living/L = A + L.update_mobility() + ..() + +/obj/vehicle/ridden/wheelchair/motorized/driver_move(mob/living/user, direction) + if(istype(user)) + if(!canmove) + return FALSE + if(!power_cell) + to_chat(user, "There seems to be no cell installed in [src].") + canmove = FALSE + addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) + return FALSE + if(power_cell.charge < power_usage / max(power_efficiency, 1)) + to_chat(user, "The display on [src] blinks 'Out of Power'.") + canmove = FALSE + addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) + return FALSE + if(user.get_num_arms() < arms_required) + to_chat(user, "You don't have enough arms to operate the motor controller!") + canmove = FALSE + addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20) + return FALSE + power_cell.use(power_usage / max(power_efficiency, 1)) + return ..() + +/obj/vehicle/ridden/wheelchair/motorized/post_buckle_mob(mob/living/user) + . = ..() + density = TRUE + +/obj/vehicle/ridden/wheelchair/motorized/post_unbuckle_mob() + . = ..() + density = FALSE + +/obj/vehicle/ridden/wheelchair/motorized/attack_hand(mob/living/user) + if(power_cell && panel_open) + power_cell.update_icon() + user.put_in_hands(power_cell) + power_cell = null + to_chat(user, "You remove the power cell from [src].") + return + return ..() + +/obj/vehicle/ridden/wheelchair/motorized/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_SCREWDRIVER) + I.play_tool_sound(src) + panel_open = !panel_open + user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel on [src].", "You [panel_open ? "open" : "close"] the maintenance panel.") + return + if(panel_open) + if(istype(I, /obj/item/stock_parts/cell)) + if(power_cell) + to_chat(user, "There is a power cell already installed.") + else + I.forceMove(src) + power_cell = I + to_chat(user, "You install the [I].") + refresh_parts() + return + if(istype(I, /obj/item/stock_parts)) + var/obj/item/stock_parts/B = I + var/P + for(var/obj/item/stock_parts/A in contents) + for(var/D in required_parts) + if(ispath(A.type, D)) + P = D + break + if(istype(B, P) && istype(A, P)) + if(B.get_part_rating() > A.get_part_rating()) + B.forceMove(src) + user.put_in_hands(A) + user.visible_message("[user] replaces [A] with [B] in [src].", "You replace [A] with [B].") + break + refresh_parts() + return + return ..() + +/obj/vehicle/ridden/wheelchair/motorized/wrench_act(mob/living/user, obj/item/I) + to_chat(user, "You begin to detach the thrusters...") + if(I.use_tool(src, user, 40, volume=50)) + to_chat(user, "You detach the thrusters and deconstruct the chair.") + new /obj/item/stack/rods(drop_location(), 8) + new /obj/item/stack/sheet/plasteel(drop_location(), 10) + var/turf/T = get_turf(src) + for(var/atom/movable/A in contents) + A.forceMove(T) + if(isliving(A)) + var/mob/living/L = A + L.update_mobility() + qdel(src) + return TRUE + +/obj/vehicle/ridden/wheelchair/motorized/examine(mob/user) + . = ..() + if(panel_open) + . += "There is a small screen on it, [(in_range(user, src) || isobserver(user)) ? "[power_cell ? "it reads:" : "but it is dark."]" : "but you can't see it from here."]" + if(!power_cell || (!in_range(user, src) && !isobserver(user))) + return + . += "Speed: [speed]" + . += "Energy efficiency: [power_efficiency]" + . += "Power: [power_cell.charge] out of [power_cell.maxcharge]" + +/obj/vehicle/ridden/wheelchair/motorized/Bump(atom/movable/M) + . = ..() + // If the speed is higher than delay_multiplier throw the person on the wheelchair away + if(M.density && speed > 2 && has_buckled_mobs()) + var/mob/living/H = buckled_mobs[1] + var/atom/throw_target = get_edge_target_turf(H, pick(GLOB.cardinals)) + unbuckle_mob(H) + H.throw_at(throw_target, 2, 3) + H.Knockdown(100) + H.adjustStaminaLoss(40) + if(isliving(M)) + var/mob/living/D = M + throw_target = get_edge_target_turf(D, pick(GLOB.cardinals)) + D.throw_at(throw_target, 2, 3) + D.Knockdown(80) + D.adjustStaminaLoss(35) + visible_message("[src] crashes into [M], sending [H] and [D] flying!") + else + visible_message("[src] crashes into [M], sending [H] flying!") + playsound(src, 'sound/effects/bang.ogg', 50, 1) diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index a81dff37ad..28145ba8e1 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -26,8 +26,8 @@ AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) /obj/vehicle/ridden/wheelchair/obj_destruction(damage_flag) - new /obj/item/stack/rods(drop_location(), 1) - new /obj/item/stack/sheet/metal(drop_location(), 1) + new /obj/item/stack/rods(drop_location(), 8) + new /obj/item/stack/sheet/metal(drop_location(), 2) ..() /obj/vehicle/ridden/wheelchair/Destroy() @@ -53,7 +53,10 @@ /obj/vehicle/ridden/wheelchair/Moved() . = ..() cut_overlays() - playsound(src, 'sound/effects/roll.ogg', 75, 1) + if(istype(src, /obj/vehicle/ridden/wheelchair/motorized)) + playsound(src, 'sound/effects/chairwhoosh.ogg', 75, 1) + else + playsound(src, 'sound/effects/roll.ogg', 75, 1) if(has_buckled_mobs()) handle_rotation_overlayed() @@ -88,8 +91,12 @@ /obj/vehicle/ridden/wheelchair/proc/handle_rotation_overlayed() cut_overlays() - var/image/V = image(icon = icon, icon_state = "wheelchair_overlay", layer = FLY_LAYER, dir = src.dir) - add_overlay(V) + if(istype(src, /obj/vehicle/ridden/wheelchair/motorized)) + var/image/V = image(icon = icon, icon_state = "wheelchair_noverlay", layer = FLY_LAYER, dir = src.dir) + add_overlay(V) + else + var/image/V = image(icon = icon, icon_state = "wheelchair_overlay", layer = FLY_LAYER, dir = src.dir) + add_overlay(V) From 5be4953eff8c21df77a6d11b39f35aa6b012ed17 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon, 14 Jun 2021 22:21:26 +0200 Subject: [PATCH 006/173] adding the motorized chair to the environment --- tgstation.dme | 7493 +++++++++++++++++++++++++------------------------ 1 file changed, 3747 insertions(+), 3746 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index bf6cf98d56..5625f8a45c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1,3746 +1,3747 @@ - -// DM Environment file for tgstation.dme. -// All manual changes should be made outside the BEGIN_ and END_ blocks. -// New source code should be placed in .dm files: choose File/New --> Code File. -// BEGIN_INTERNALS -// END_INTERNALS - -// BEGIN_FILE_DIR -#define FILE_DIR . -// END_FILE_DIR - -// BEGIN_PREFERENCES -#define DEBUG -// END_PREFERENCES - -// BEGIN_INCLUDE -#include "_maps\_basemap.dm" -#include "code\_compile_options.dm" -#include "code\world.dm" -#include "code\__DEFINES\_extools.dm" -#include "code\__DEFINES\_globals.dm" -#include "code\__DEFINES\_protect.dm" -#include "code\__DEFINES\_tick.dm" -#include "code\__DEFINES\access.dm" -#include "code\__DEFINES\achievements.dm" -#include "code\__DEFINES\actionspeed_modifiers.dm" -#include "code\__DEFINES\admin.dm" -#include "code\__DEFINES\antagonists.dm" -#include "code\__DEFINES\atmospherics.dm" -#include "code\__DEFINES\atom_hud.dm" -#include "code\__DEFINES\blackmarket.dm" -#include "code\__DEFINES\botany.dm" -#include "code\__DEFINES\callbacks.dm" -#include "code\__DEFINES\cargo.dm" -#include "code\__DEFINES\cinematics.dm" -#include "code\__DEFINES\citadel_defines.dm" -#include "code\__DEFINES\cleaning.dm" -#include "code\__DEFINES\clockcult.dm" -#include "code\__DEFINES\colors.dm" -#include "code\__DEFINES\combat.dm" -#include "code\__DEFINES\configuration.dm" -#include "code\__DEFINES\construction.dm" -#include "code\__DEFINES\contracts.dm" -#include "code\__DEFINES\cooldowns.dm" -#include "code\__DEFINES\cult.dm" -#include "code\__DEFINES\diseases.dm" -#include "code\__DEFINES\DNA.dm" -#include "code\__DEFINES\donator_groupings.dm" -#include "code\__DEFINES\dye_keys.dm" -#include "code\__DEFINES\dynamic.dm" -#include "code\__DEFINES\economy.dm" -#include "code\__DEFINES\events.dm" -#include "code\__DEFINES\exosuit_fabs.dm" -#include "code\__DEFINES\explosion.dm" -#include "code\__DEFINES\exports.dm" -#include "code\__DEFINES\fantasy_affixes.dm" -#include "code\__DEFINES\food.dm" -#include "code\__DEFINES\footsteps.dm" -#include "code\__DEFINES\hud.dm" -#include "code\__DEFINES\instruments.dm" -#include "code\__DEFINES\integrated_electronics.dm" -#include "code\__DEFINES\interaction_flags.dm" -#include "code\__DEFINES\inventory.dm" -#include "code\__DEFINES\is_helpers.dm" -#include "code\__DEFINES\jobs.dm" -#include "code\__DEFINES\language.dm" -#include "code\__DEFINES\layers_planes.dm" -#include "code\__DEFINES\lighting.dm" -#include "code\__DEFINES\loadout.dm" -#include "code\__DEFINES\logging.dm" -#include "code\__DEFINES\machines.dm" -#include "code\__DEFINES\maps.dm" -#include "code\__DEFINES\materials.dm" -#include "code\__DEFINES\maths.dm" -#include "code\__DEFINES\MC.dm" -#include "code\__DEFINES\melee.dm" -#include "code\__DEFINES\menu.dm" -#include "code\__DEFINES\misc.dm" -#include "code\__DEFINES\mobs.dm" -#include "code\__DEFINES\monkeys.dm" -#include "code\__DEFINES\move_force.dm" -#include "code\__DEFINES\movement.dm" -#include "code\__DEFINES\movespeed_modification.dm" -#include "code\__DEFINES\nanites.dm" -#include "code\__DEFINES\networks.dm" -#include "code\__DEFINES\pinpointers.dm" -#include "code\__DEFINES\pipe_construction.dm" -#include "code\__DEFINES\plumbing.dm" -#include "code\__DEFINES\pool.dm" -#include "code\__DEFINES\power.dm" -#include "code\__DEFINES\preferences.dm" -#include "code\__DEFINES\procpath.dm" -#include "code\__DEFINES\profile.dm" -#include "code\__DEFINES\projectiles.dm" -#include "code\__DEFINES\qdel.dm" -#include "code\__DEFINES\radiation.dm" -#include "code\__DEFINES\radio.dm" -#include "code\__DEFINES\reactions.dm" -#include "code\__DEFINES\reagents.dm" -#include "code\__DEFINES\reagents_specific_heat.dm" -#include "code\__DEFINES\research.dm" -#include "code\__DEFINES\robots.dm" -#include "code\__DEFINES\rockpaperscissors.dm" -#include "code\__DEFINES\role_preferences.dm" -#include "code\__DEFINES\rust_g.dm" -#include "code\__DEFINES\say.dm" -#include "code\__DEFINES\security_levels.dm" -#include "code\__DEFINES\shuttles.dm" -#include "code\__DEFINES\sight.dm" -#include "code\__DEFINES\sound.dm" -#include "code\__DEFINES\spaceman_dmm.dm" -#include "code\__DEFINES\species.dm" -#include "code\__DEFINES\stat.dm" -#include "code\__DEFINES\stat_tracking.dm" -#include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\subsystems.dm" -#include "code\__DEFINES\tgs.config.dm" -#include "code\__DEFINES\tgs.dm" -#include "code\__DEFINES\tgui.dm" -#include "code\__DEFINES\time.dm" -#include "code\__DEFINES\tools.dm" -#include "code\__DEFINES\traits.dm" -#include "code\__DEFINES\turf_flags.dm" -#include "code\__DEFINES\typeids.dm" -#include "code\__DEFINES\vehicles.dm" -#include "code\__DEFINES\voreconstants.dm" -#include "code\__DEFINES\vote.dm" -#include "code\__DEFINES\vv.dm" -#include "code\__DEFINES\wall_dents.dm" -#include "code\__DEFINES\wires.dm" -#include "code\__DEFINES\wounds.dm" -#include "code\__DEFINES\_flags\_flags.dm" -#include "code\__DEFINES\_flags\do_after.dm" -#include "code\__DEFINES\_flags\item_flags.dm" -#include "code\__DEFINES\_flags\obj_flags.dm" -#include "code\__DEFINES\_flags\return_values.dm" -#include "code\__DEFINES\_flags\shields.dm" -#include "code\__DEFINES\admin\keybindings.dm" -#include "code\__DEFINES\chemistry\reactions.dm" -#include "code\__DEFINES\combat\attack_types.dm" -#include "code\__DEFINES\combat\block.dm" -#include "code\__DEFINES\combat\block_parry.dm" -#include "code\__DEFINES\combat\stamina_combat.dm" -#include "code\__DEFINES\dcs\flags.dm" -#include "code\__DEFINES\dcs\helpers.dm" -#include "code\__DEFINES\dcs\signals.dm" -#include "code\__DEFINES\mapping\maploader.dm" -#include "code\__DEFINES\material\worth.dm" -#include "code\__DEFINES\mobs\innate_abilities.dm" -#include "code\__DEFINES\mobs\slowdowns.dm" -#include "code\__DEFINES\research\anomalies.dm" -#include "code\__DEFINES\research\stock_parts.dm" -#include "code\__DEFINES\skills\defines.dm" -#include "code\__DEFINES\skills\helpers.dm" -#include "code\__DEFINES\storage\_storage.dm" -#include "code\__DEFINES\storage\volumetrics.dm" -#include "code\__HELPERS\_cit_helpers.dm" -#include "code\__HELPERS\_lists.dm" -#include "code\__HELPERS\_logging.dm" -#include "code\__HELPERS\_string_lists.dm" -#include "code\__HELPERS\angles.dm" -#include "code\__HELPERS\areas.dm" -#include "code\__HELPERS\AStar.dm" -#include "code\__HELPERS\chat.dm" -#include "code\__HELPERS\cmp.dm" -#include "code\__HELPERS\custom_holoforms.dm" -#include "code\__HELPERS\dates.dm" -#include "code\__HELPERS\dna.dm" -#include "code\__HELPERS\do_after.dm" -#include "code\__HELPERS\donator_groupings.dm" -#include "code\__HELPERS\files.dm" -#include "code\__HELPERS\filters.dm" -#include "code\__HELPERS\game.dm" -#include "code\__HELPERS\global_lists.dm" -#include "code\__HELPERS\heap.dm" -#include "code\__HELPERS\icon_smoothing.dm" -#include "code\__HELPERS\icons.dm" -#include "code\__HELPERS\level_traits.dm" -#include "code\__HELPERS\matrices.dm" -#include "code\__HELPERS\mobs.dm" -#include "code\__HELPERS\mouse_control.dm" -#include "code\__HELPERS\names.dm" -#include "code\__HELPERS\priority_announce.dm" -#include "code\__HELPERS\pronouns.dm" -#include "code\__HELPERS\qdel.dm" -#include "code\__HELPERS\radiation.dm" -#include "code\__HELPERS\radio.dm" -#include "code\__HELPERS\reagents.dm" -#include "code\__HELPERS\roundend.dm" -#include "code\__HELPERS\sanitize_values.dm" -#include "code\__HELPERS\shell.dm" -#include "code\__HELPERS\stat_tracking.dm" -#include "code\__HELPERS\text.dm" -#include "code\__HELPERS\text_vr.dm" -#include "code\__HELPERS\time.dm" -#include "code\__HELPERS\type2type.dm" -#include "code\__HELPERS\type_processing.dm" -#include "code\__HELPERS\typelists.dm" -#include "code\__HELPERS\unsorted.dm" -#include "code\__HELPERS\vector.dm" -#include "code\__HELPERS\verbs.dm" -#include "code\__HELPERS\view.dm" -#include "code\__HELPERS\sorts\__main.dm" -#include "code\__HELPERS\sorts\InsertSort.dm" -#include "code\__HELPERS\sorts\MergeSort.dm" -#include "code\__HELPERS\sorts\TimSort.dm" -#include "code\_globalvars\admin.dm" -#include "code\_globalvars\bitfields.dm" -#include "code\_globalvars\configuration.dm" -#include "code\_globalvars\game_modes.dm" -#include "code\_globalvars\genetics.dm" -#include "code\_globalvars\logging.dm" -#include "code\_globalvars\misc.dm" -#include "code\_globalvars\regexes.dm" -#include "code\_globalvars\traits.dm" -#include "code\_globalvars\lists\achievements.dm" -#include "code\_globalvars\lists\client.dm" -#include "code\_globalvars\lists\flavor_misc.dm" -#include "code\_globalvars\lists\keybindings.dm" -#include "code\_globalvars\lists\loadout_categories.dm" -#include "code\_globalvars\lists\maintenance_loot.dm" -#include "code\_globalvars\lists\mapping.dm" -#include "code\_globalvars\lists\misc.dm" -#include "code\_globalvars\lists\mobs.dm" -#include "code\_globalvars\lists\names.dm" -#include "code\_globalvars\lists\objects.dm" -#include "code\_globalvars\lists\poll_ignore.dm" -#include "code\_globalvars\lists\typecache.dm" -#include "code\_js\byjax.dm" -#include "code\_js\menus.dm" -#include "code\_onclick\adjacent.dm" -#include "code\_onclick\ai.dm" -#include "code\_onclick\click.dm" -#include "code\_onclick\cyborg.dm" -#include "code\_onclick\drag_drop.dm" -#include "code\_onclick\item_attack.dm" -#include "code\_onclick\observer.dm" -#include "code\_onclick\other_mobs.dm" -#include "code\_onclick\overmind.dm" -#include "code\_onclick\right_click.dm" -#include "code\_onclick\right_item_attack.dm" -#include "code\_onclick\right_other_mobs.dm" -#include "code\_onclick\telekinesis.dm" -#include "code\_onclick\hud\_defines.dm" -#include "code\_onclick\hud\action_button.dm" -#include "code\_onclick\hud\ai.dm" -#include "code\_onclick\hud\alert.dm" -#include "code\_onclick\hud\alien.dm" -#include "code\_onclick\hud\alien_larva.dm" -#include "code\_onclick\hud\blob_overmind.dm" -#include "code\_onclick\hud\blobbernauthud.dm" -#include "code\_onclick\hud\clockwork_marauder.dm" -#include "code\_onclick\hud\constructs.dm" -#include "code\_onclick\hud\credits.dm" -#include "code\_onclick\hud\devil.dm" -#include "code\_onclick\hud\drones.dm" -#include "code\_onclick\hud\fullscreen.dm" -#include "code\_onclick\hud\generic_dextrous.dm" -#include "code\_onclick\hud\ghost.dm" -#include "code\_onclick\hud\guardian.dm" -#include "code\_onclick\hud\hud.dm" -#include "code\_onclick\hud\human.dm" -#include "code\_onclick\hud\lavaland_elite.dm" -#include "code\_onclick\hud\map_popups.dm" -#include "code\_onclick\hud\monkey.dm" -#include "code\_onclick\hud\movable_screen_objects.dm" -#include "code\_onclick\hud\parallax.dm" -#include "code\_onclick\hud\picture_in_picture.dm" -#include "code\_onclick\hud\plane_master.dm" -#include "code\_onclick\hud\radial.dm" -#include "code\_onclick\hud\radial_persistent.dm" -#include "code\_onclick\hud\revenanthud.dm" -#include "code\_onclick\hud\robot.dm" -#include "code\_onclick\hud\screen_objects.dm" -#include "code\_onclick\hud\simple_animal.dm" -#include "code\_onclick\hud\swarmer.dm" -#include "code\_onclick\hud\screen_objects\clickdelay.dm" -#include "code\_onclick\hud\screen_objects\sprint.dm" -#include "code\_onclick\hud\screen_objects\stamina.dm" -#include "code\_onclick\hud\screen_objects\storage.dm" -#include "code\_onclick\hud\screen_objects\vore.dm" -#include "code\controllers\admin.dm" -#include "code\controllers\configuration_citadel.dm" -#include "code\controllers\controller.dm" -#include "code\controllers\failsafe.dm" -#include "code\controllers\globals.dm" -#include "code\controllers\hooks.dm" -#include "code\controllers\master.dm" -#include "code\controllers\subsystem.dm" -#include "code\controllers\configuration\config_entry.dm" -#include "code\controllers\configuration\configuration.dm" -#include "code\controllers\configuration\entries\comms.dm" -#include "code\controllers\configuration\entries\dbconfig.dm" -#include "code\controllers\configuration\entries\donator.dm" -#include "code\controllers\configuration\entries\dynamic.dm" -#include "code\controllers\configuration\entries\fail2topic.dm" -#include "code\controllers\configuration\entries\game_options.dm" -#include "code\controllers\configuration\entries\general.dm" -#include "code\controllers\configuration\entries\logging.dm" -#include "code\controllers\configuration\entries\persistence.dm" -#include "code\controllers\configuration\entries\plushies.dm" -#include "code\controllers\configuration\entries\policy.dm" -#include "code\controllers\configuration\entries\resources.dm" -#include "code\controllers\configuration\entries\respawns.dm" -#include "code\controllers\configuration\entries\stamina_combat.dm" -#include "code\controllers\subsystem\achievements.dm" -#include "code\controllers\subsystem\acid.dm" -#include "code\controllers\subsystem\activity.dm" -#include "code\controllers\subsystem\adjacent_air.dm" -#include "code\controllers\subsystem\air.dm" -#include "code\controllers\subsystem\air_turfs.dm" -#include "code\controllers\subsystem\assets.dm" -#include "code\controllers\subsystem\atoms.dm" -#include "code\controllers\subsystem\augury.dm" -#include "code\controllers\subsystem\autotransfer.dm" -#include "code\controllers\subsystem\blackbox.dm" -#include "code\controllers\subsystem\blackmarket.dm" -#include "code\controllers\subsystem\chat.dm" -#include "code\controllers\subsystem\communications.dm" -#include "code\controllers\subsystem\dbcore.dm" -#include "code\controllers\subsystem\dcs.dm" -#include "code\controllers\subsystem\disease.dm" -#include "code\controllers\subsystem\economy.dm" -#include "code\controllers\subsystem\events.dm" -#include "code\controllers\subsystem\explosions.dm" -#include "code\controllers\subsystem\fail2topic.dm" -#include "code\controllers\subsystem\fire_burning.dm" -#include "code\controllers\subsystem\fluid.dm" -#include "code\controllers\subsystem\garbage.dm" -#include "code\controllers\subsystem\holodeck.dm" -#include "code\controllers\subsystem\icon_smooth.dm" -#include "code\controllers\subsystem\idlenpcpool.dm" -#include "code\controllers\subsystem\input.dm" -#include "code\controllers\subsystem\ipintel.dm" -#include "code\controllers\subsystem\job.dm" -#include "code\controllers\subsystem\jukeboxes.dm" -#include "code\controllers\subsystem\language.dm" -#include "code\controllers\subsystem\lighting.dm" -#include "code\controllers\subsystem\machines.dm" -#include "code\controllers\subsystem\mapping.dm" -#include "code\controllers\subsystem\materials.dm" -#include "code\controllers\subsystem\minimaps.dm" -#include "code\controllers\subsystem\minimum_spawns.dm" -#include "code\controllers\subsystem\minor_mapping.dm" -#include "code\controllers\subsystem\mobs.dm" -#include "code\controllers\subsystem\nightshift.dm" -#include "code\controllers\subsystem\npcpool.dm" -#include "code\controllers\subsystem\overlays.dm" -#include "code\controllers\subsystem\pai.dm" -#include "code\controllers\subsystem\parallax.dm" -#include "code\controllers\subsystem\pathfinder.dm" -#include "code\controllers\subsystem\profiler.dm" -#include "code\controllers\subsystem\radiation.dm" -#include "code\controllers\subsystem\radio.dm" -#include "code\controllers\subsystem\research.dm" -#include "code\controllers\subsystem\runechat.dm" -#include "code\controllers\subsystem\server_maint.dm" -#include "code\controllers\subsystem\shuttle.dm" -#include "code\controllers\subsystem\sounds.dm" -#include "code\controllers\subsystem\spacedrift.dm" -#include "code\controllers\subsystem\statpanel.dm" -#include "code\controllers\subsystem\stickyban.dm" -#include "code\controllers\subsystem\sun.dm" -#include "code\controllers\subsystem\tgui.dm" -#include "code\controllers\subsystem\throwing.dm" -#include "code\controllers\subsystem\ticker.dm" -#include "code\controllers\subsystem\time_track.dm" -#include "code\controllers\subsystem\timer.dm" -#include "code\controllers\subsystem\title.dm" -#include "code\controllers\subsystem\traumas.dm" -#include "code\controllers\subsystem\vis_overlays.dm" -#include "code\controllers\subsystem\vore.dm" -#include "code\controllers\subsystem\vote.dm" -#include "code\controllers\subsystem\persistence\_persistence.dm" -#include "code\controllers\subsystem\persistence\cleanable_debris.dm" -#include "code\controllers\subsystem\persistence\panic_bunker.dm" -#include "code\controllers\subsystem\persistence\poly_parrot.dm" -#include "code\controllers\subsystem\persistence\recent_votes_etc.dm" -#include "code\controllers\subsystem\persistence\secret_satchels.dm" -#include "code\controllers\subsystem\persistence\trophies.dm" -#include "code\controllers\subsystem\processing\chemistry.dm" -#include "code\controllers\subsystem\processing\circuit.dm" -#include "code\controllers\subsystem\processing\fastprocess.dm" -#include "code\controllers\subsystem\processing\fields.dm" -#include "code\controllers\subsystem\processing\huds.dm" -#include "code\controllers\subsystem\processing\instruments.dm" -#include "code\controllers\subsystem\processing\nanites.dm" -#include "code\controllers\subsystem\processing\networks.dm" -#include "code\controllers\subsystem\processing\obj.dm" -#include "code\controllers\subsystem\processing\processing.dm" -#include "code\controllers\subsystem\processing\projectiles.dm" -#include "code\controllers\subsystem\processing\quirks.dm" -#include "code\controllers\subsystem\processing\status_effects.dm" -#include "code\controllers\subsystem\processing\weather.dm" -#include "code\controllers\subsystem\processing\wet_floors.dm" -#include "code\datums\accents.dm" -#include "code\datums\action.dm" -#include "code\datums\ai_laws.dm" -#include "code\datums\armor.dm" -#include "code\datums\beam.dm" -#include "code\datums\beepsky_fashion.dm" -#include "code\datums\browser.dm" -#include "code\datums\callback.dm" -#include "code\datums\chatmessage.dm" -#include "code\datums\cinematic.dm" -#include "code\datums\dash_weapon.dm" -#include "code\datums\datacore.dm" -#include "code\datums\datum.dm" -#include "code\datums\datumvars.dm" -#include "code\datums\dna.dm" -#include "code\datums\dog_fashion.dm" -#include "code\datums\ductnet.dm" -#include "code\datums\emotes.dm" -#include "code\datums\ert.dm" -#include "code\datums\explosion.dm" -#include "code\datums\explosion2.dm" -#include "code\datums\forced_movement.dm" -#include "code\datums\holocall.dm" -#include "code\datums\http.dm" -#include "code\datums\hud.dm" -#include "code\datums\mind.dm" -#include "code\datums\mutable_appearance.dm" -#include "code\datums\numbered_display.dm" -#include "code\datums\outfit.dm" -#include "code\datums\position_point_vector.dm" -#include "code\datums\profiling.dm" -#include "code\datums\progressbar.dm" -#include "code\datums\radiation_wave.dm" -#include "code\datums\recipe.dm" -#include "code\datums\ruins.dm" -#include "code\datums\saymode.dm" -#include "code\datums\shuttles.dm" -#include "code\datums\soullink.dm" -#include "code\datums\spawners_menu.dm" -#include "code\datums\tgs_event_handler.dm" -#include "code\datums\verbs.dm" -#include "code\datums\view.dm" -#include "code\datums\weakrefs.dm" -#include "code\datums\world_topic.dm" -#include "code\datums\achievements\_achievement_data.dm" -#include "code\datums\achievements\_awards.dm" -#include "code\datums\achievements\boss_achievements.dm" -#include "code\datums\achievements\boss_scores.dm" -#include "code\datums\achievements\mafia_achievements.dm" -#include "code\datums\achievements\misc_achievements.dm" -#include "code\datums\achievements\misc_scores.dm" -#include "code\datums\achievements\skill_achievements.dm" -#include "code\datums\actions\beam_rifle.dm" -#include "code\datums\actions\ninja.dm" -#include "code\datums\brain_damage\brain_trauma.dm" -#include "code\datums\brain_damage\hypnosis.dm" -#include "code\datums\brain_damage\imaginary_friend.dm" -#include "code\datums\brain_damage\magic.dm" -#include "code\datums\brain_damage\mild.dm" -#include "code\datums\brain_damage\phobia.dm" -#include "code\datums\brain_damage\severe.dm" -#include "code\datums\brain_damage\special.dm" -#include "code\datums\brain_damage\split_personality.dm" -#include "code\datums\components\_component.dm" -#include "code\datums\components\activity.dm" -#include "code\datums\components\anti_magic.dm" -#include "code\datums\components\armor_plate.dm" -#include "code\datums\components\bane.dm" -#include "code\datums\components\bouncy.dm" -#include "code\datums\components\butchering.dm" -#include "code\datums\components\caltrop.dm" -#include "code\datums\components\chasm.dm" -#include "code\datums\components\combat_mode.dm" -#include "code\datums\components\construction.dm" -#include "code\datums\components\dejavu.dm" -#include "code\datums\components\earprotection.dm" -#include "code\datums\components\edible.dm" -#include "code\datums\components\edit_complainer.dm" -#include "code\datums\components\embedded.dm" -#include "code\datums\components\explodable.dm" -#include "code\datums\components\field_of_vision.dm" -#include "code\datums\components\footstep.dm" -#include "code\datums\components\fried.dm" -#include "code\datums\components\gps.dm" -#include "code\datums\components\honkspam.dm" -#include "code\datums\components\identification.dm" -#include "code\datums\components\igniter.dm" -#include "code\datums\components\infective.dm" -#include "code\datums\components\jousting.dm" -#include "code\datums\components\killerqueen.dm" -#include "code\datums\components\knockback.dm" -#include "code\datums\components\knockoff.dm" -#include "code\datums\components\label.dm" -#include "code\datums\components\lifesteal.dm" -#include "code\datums\components\lockon_aiming.dm" -#include "code\datums\components\magnetic_catch.dm" -#include "code\datums\components\material_container.dm" -#include "code\datums\components\mirage_border.dm" -#include "code\datums\components\mirv.dm" -#include "code\datums\components\mood.dm" -#include "code\datums\components\nanites.dm" -#include "code\datums\components\ntnet_interface.dm" -#include "code\datums\components\omen.dm" -#include "code\datums\components\orbiter.dm" -#include "code\datums\components\paintable.dm" -#include "code\datums\components\pellet_cloud.dm" -#include "code\datums\components\phantomthief.dm" -#include "code\datums\components\rad_insulation.dm" -#include "code\datums\components\radioactive.dm" -#include "code\datums\components\remote_materials.dm" -#include "code\datums\components\riding.dm" -#include "code\datums\components\rotation.dm" -#include "code\datums\components\shielded.dm" -#include "code\datums\components\shrink.dm" -#include "code\datums\components\sizzle.dm" -#include "code\datums\components\slippery.dm" -#include "code\datums\components\spawner.dm" -#include "code\datums\components\spooky.dm" -#include "code\datums\components\squeak.dm" -#include "code\datums\components\stationloving.dm" -#include "code\datums\components\summoning.dm" -#include "code\datums\components\swarming.dm" -#include "code\datums\components\tackle.dm" -#include "code\datums\components\thermite.dm" -#include "code\datums\components\twitch_plays.dm" -#include "code\datums\components\twohanded.dm" -#include "code\datums\components\uplink.dm" -#include "code\datums\components\virtual_reality.dm" -#include "code\datums\components\waddling.dm" -#include "code\datums\components\wearertargeting.dm" -#include "code\datums\components\wet_floor.dm" -#include "code\datums\components\crafting\crafting.dm" -#include "code\datums\components\crafting\guncrafting.dm" -#include "code\datums\components\crafting\recipes.dm" -#include "code\datums\components\crafting\glassware\glassware.dm" -#include "code\datums\components\crafting\glassware\lens_crafting.dm" -#include "code\datums\components\crafting\recipes\recipes_clothing.dm" -#include "code\datums\components\crafting\recipes\recipes_misc.dm" -#include "code\datums\components\crafting\recipes\recipes_primal.dm" -#include "code\datums\components\crafting\recipes\recipes_robot.dm" -#include "code\datums\components\crafting\recipes\recipes_weapon_and_ammo.dm" -#include "code\datums\components\fantasy\_fantasy.dm" -#include "code\datums\components\fantasy\affix.dm" -#include "code\datums\components\fantasy\prefixes.dm" -#include "code\datums\components\fantasy\suffixes.dm" -#include "code\datums\components\plumbing\_plumbing.dm" -#include "code\datums\components\plumbing\chemical_acclimator.dm" -#include "code\datums\components\plumbing\filter.dm" -#include "code\datums\components\plumbing\reaction_chamber.dm" -#include "code\datums\components\plumbing\splitter.dm" -#include "code\datums\components\storage\storage.dm" -#include "code\datums\components\storage\ui.dm" -#include "code\datums\components\storage\concrete\_concrete.dm" -#include "code\datums\components\storage\concrete\bag_of_holding.dm" -#include "code\datums\components\storage\concrete\bluespace.dm" -#include "code\datums\components\storage\concrete\emergency.dm" -#include "code\datums\components\storage\concrete\implant.dm" -#include "code\datums\components\storage\concrete\pockets.dm" -#include "code\datums\components\storage\concrete\rped.dm" -#include "code\datums\components\storage\concrete\special.dm" -#include "code\datums\components\storage\concrete\stack.dm" -#include "code\datums\components\storage\concrete\tcg.dm" -#include "code\datums\diseases\_disease.dm" -#include "code\datums\diseases\_MobProcs.dm" -#include "code\datums\diseases\anxiety.dm" -#include "code\datums\diseases\appendicitis.dm" -#include "code\datums\diseases\beesease.dm" -#include "code\datums\diseases\brainrot.dm" -#include "code\datums\diseases\cold.dm" -#include "code\datums\diseases\cold9.dm" -#include "code\datums\diseases\dna_spread.dm" -#include "code\datums\diseases\fake_gbs.dm" -#include "code\datums\diseases\flu.dm" -#include "code\datums\diseases\fluspanish.dm" -#include "code\datums\diseases\gbs.dm" -#include "code\datums\diseases\heart_failure.dm" -#include "code\datums\diseases\magnitis.dm" -#include "code\datums\diseases\parrotpossession.dm" -#include "code\datums\diseases\pierrot_throat.dm" -#include "code\datums\diseases\retrovirus.dm" -#include "code\datums\diseases\rhumba_beat.dm" -#include "code\datums\diseases\transformation.dm" -#include "code\datums\diseases\tuberculosis.dm" -#include "code\datums\diseases\wizarditis.dm" -#include "code\datums\diseases\advance\advance.dm" -#include "code\datums\diseases\advance\presets.dm" -#include "code\datums\diseases\advance\symptoms\beard.dm" -#include "code\datums\diseases\advance\symptoms\choking.dm" -#include "code\datums\diseases\advance\symptoms\confusion.dm" -#include "code\datums\diseases\advance\symptoms\cough.dm" -#include "code\datums\diseases\advance\symptoms\deafness.dm" -#include "code\datums\diseases\advance\symptoms\disfiguration.dm" -#include "code\datums\diseases\advance\symptoms\dizzy.dm" -#include "code\datums\diseases\advance\symptoms\fever.dm" -#include "code\datums\diseases\advance\symptoms\fire.dm" -#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" -#include "code\datums\diseases\advance\symptoms\genetics.dm" -#include "code\datums\diseases\advance\symptoms\hallucigen.dm" -#include "code\datums\diseases\advance\symptoms\headache.dm" -#include "code\datums\diseases\advance\symptoms\heal.dm" -#include "code\datums\diseases\advance\symptoms\itching.dm" -#include "code\datums\diseases\advance\symptoms\nanites.dm" -#include "code\datums\diseases\advance\symptoms\narcolepsy.dm" -#include "code\datums\diseases\advance\symptoms\oxygen.dm" -#include "code\datums\diseases\advance\symptoms\sensory.dm" -#include "code\datums\diseases\advance\symptoms\shedding.dm" -#include "code\datums\diseases\advance\symptoms\shivering.dm" -#include "code\datums\diseases\advance\symptoms\skin.dm" -#include "code\datums\diseases\advance\symptoms\sneeze.dm" -#include "code\datums\diseases\advance\symptoms\species.dm" -#include "code\datums\diseases\advance\symptoms\symptoms.dm" -#include "code\datums\diseases\advance\symptoms\viral.dm" -#include "code\datums\diseases\advance\symptoms\vision.dm" -#include "code\datums\diseases\advance\symptoms\voice_change.dm" -#include "code\datums\diseases\advance\symptoms\vomit.dm" -#include "code\datums\diseases\advance\symptoms\weight.dm" -#include "code\datums\diseases\advance\symptoms\youth.dm" -#include "code\datums\elements\_element.dm" -#include "code\datums\elements\art.dm" -#include "code\datums\elements\beauty.dm" -#include "code\datums\elements\bed_tucking.dm" -#include "code\datums\elements\bsa_blocker.dm" -#include "code\datums\elements\cleaning.dm" -#include "code\datums\elements\decal.dm" -#include "code\datums\elements\dusts_on_catatonia.dm" -#include "code\datums\elements\dusts_on_leaving_area.dm" -#include "code\datums\elements\dwarfism.dm" -#include "code\datums\elements\earhealing.dm" -#include "code\datums\elements\embed.dm" -#include "code\datums\elements\empprotection.dm" -#include "code\datums\elements\firestacker.dm" -#include "code\datums\elements\flavor_text.dm" -#include "code\datums\elements\forced_gravity.dm" -#include "code\datums\elements\ghost_role_eligibility.dm" -#include "code\datums\elements\mob_holder.dm" -#include "code\datums\elements\photosynthesis.dm" -#include "code\datums\elements\polychromic.dm" -#include "code\datums\elements\scavenging.dm" -#include "code\datums\elements\snail_crawl.dm" -#include "code\datums\elements\spellcasting.dm" -#include "code\datums\elements\squish.dm" -#include "code\datums\elements\swimming.dm" -#include "code\datums\elements\sword_point.dm" -#include "code\datums\elements\tactical.dm" -#include "code\datums\elements\turf_transparency.dm" -#include "code\datums\elements\update_icon_blocker.dm" -#include "code\datums\elements\update_icon_updates_onmob.dm" -#include "code\datums\elements\ventcrawling.dm" -#include "code\datums\elements\wuv.dm" -#include "code\datums\helper_datums\events.dm" -#include "code\datums\helper_datums\getrev.dm" -#include "code\datums\helper_datums\icon_snapshot.dm" -#include "code\datums\helper_datums\teleport.dm" -#include "code\datums\looping_sounds\_looping_sound.dm" -#include "code\datums\looping_sounds\item_sounds.dm" -#include "code\datums\looping_sounds\machinery_sounds.dm" -#include "code\datums\looping_sounds\weather.dm" -#include "code\datums\mapgen\_MapGenerator.dm" -#include "code\datums\mapgen\CaveGenerator.dm" -#include "code\datums\mapgen\JungleGenerator.dm" -#include "code\datums\mapgen\biomes\_biome.dm" -#include "code\datums\mapgen\Cavegens\IcemoonCaves.dm" -#include "code\datums\mapgen\Cavegens\LavalandGenerator.dm" -#include "code\datums\martial\_martial.dm" -#include "code\datums\martial\boxing.dm" -#include "code\datums\martial\cqc.dm" -#include "code\datums\martial\krav_maga.dm" -#include "code\datums\martial\mushpunch.dm" -#include "code\datums\martial\plasma_fist.dm" -#include "code\datums\martial\psychotic_brawl.dm" -#include "code\datums\martial\rising_bass.dm" -#include "code\datums\martial\sleeping_carp.dm" -#include "code\datums\martial\wrestling.dm" -#include "code\datums\materials\_material.dm" -#include "code\datums\materials\basemats.dm" -#include "code\datums\materials\meat.dm" -#include "code\datums\materials\pizza.dm" -#include "code\datums\mood_events\beauty_events.dm" -#include "code\datums\mood_events\drink_events.dm" -#include "code\datums\mood_events\drug_events.dm" -#include "code\datums\mood_events\generic_negative_events.dm" -#include "code\datums\mood_events\generic_positive_events.dm" -#include "code\datums\mood_events\mood_event.dm" -#include "code\datums\mood_events\needs_events.dm" -#include "code\datums\mutations\_mutations.dm" -#include "code\datums\mutations\actions.dm" -#include "code\datums\mutations\antenna.dm" -#include "code\datums\mutations\body.dm" -#include "code\datums\mutations\chameleon.dm" -#include "code\datums\mutations\cluwne.dm" -#include "code\datums\mutations\cold.dm" -#include "code\datums\mutations\combined.dm" -#include "code\datums\mutations\hulk.dm" -#include "code\datums\mutations\radioactive.dm" -#include "code\datums\mutations\sight.dm" -#include "code\datums\mutations\space_adaptation.dm" -#include "code\datums\mutations\speech.dm" -#include "code\datums\mutations\telekinesis.dm" -#include "code\datums\ruins\icemoon.dm" -#include "code\datums\ruins\lavaland.dm" -#include "code\datums\ruins\space.dm" -#include "code\datums\ruins\station.dm" -#include "code\datums\skills\_check_skills.dm" -#include "code\datums\skills\_skill.dm" -#include "code\datums\skills\_skill_holder.dm" -#include "code\datums\skills\_skill_modifier.dm" -#include "code\datums\skills\blacksmithing.dm" -#include "code\datums\skills\engineering.dm" -#include "code\datums\skills\medical.dm" -#include "code\datums\skills\modifiers\job.dm" -#include "code\datums\skills\modifiers\mood.dm" -#include "code\datums\skills\modifiers\organs.dm" -#include "code\datums\status_effects\buffs.dm" -#include "code\datums\status_effects\debuffs.dm" -#include "code\datums\status_effects\gas.dm" -#include "code\datums\status_effects\neutral.dm" -#include "code\datums\status_effects\status_effect.dm" -#include "code\datums\status_effects\wound_effects.dm" -#include "code\datums\traits\_quirk.dm" -#include "code\datums\traits\good.dm" -#include "code\datums\traits\negative.dm" -#include "code\datums\traits\neutral.dm" -#include "code\datums\weather\weather.dm" -#include "code\datums\weather\weather_types\acid_rain.dm" -#include "code\datums\weather\weather_types\ash_storm.dm" -#include "code\datums\weather\weather_types\floor_is_lava.dm" -#include "code\datums\weather\weather_types\radiation_storm.dm" -#include "code\datums\weather\weather_types\snow_storm.dm" -#include "code\datums\weather\weather_types\void_storm.dm" -#include "code\datums\wires\_wires.dm" -#include "code\datums\wires\airalarm.dm" -#include "code\datums\wires\airlock.dm" -#include "code\datums\wires\apc.dm" -#include "code\datums\wires\autolathe.dm" -#include "code\datums\wires\emitter.dm" -#include "code\datums\wires\explosive.dm" -#include "code\datums\wires\microwave.dm" -#include "code\datums\wires\mulebot.dm" -#include "code\datums\wires\particle_accelerator.dm" -#include "code\datums\wires\r_n_d.dm" -#include "code\datums\wires\radio.dm" -#include "code\datums\wires\robot.dm" -#include "code\datums\wires\suit_storage_unit.dm" -#include "code\datums\wires\syndicatebomb.dm" -#include "code\datums\wires\tesla_coil.dm" -#include "code\datums\wires\vending.dm" -#include "code\datums\wounds\_scars.dm" -#include "code\datums\wounds\_wounds.dm" -#include "code\datums\wounds\bones.dm" -#include "code\datums\wounds\burns.dm" -#include "code\datums\wounds\loss.dm" -#include "code\datums\wounds\pierce.dm" -#include "code\datums\wounds\slash.dm" -#include "code\game\alternate_appearance.dm" -#include "code\game\atoms.dm" -#include "code\game\atoms_movable.dm" -#include "code\game\atoms_movement.dm" -#include "code\game\communications.dm" -#include "code\game\data_huds.dm" -#include "code\game\say.dm" -#include "code\game\shuttle_engines.dm" -#include "code\game\sound.dm" -#include "code\game\world.dm" -#include "code\game\area\ai_monitored.dm" -#include "code\game\area\areas.dm" -#include "code\game\area\Space_Station_13_areas.dm" -#include "code\game\area\areas\away_content.dm" -#include "code\game\area\areas\centcom.dm" -#include "code\game\area\areas\holodeck.dm" -#include "code\game\area\areas\mining.dm" -#include "code\game\area\areas\shuttles.dm" -#include "code\game\area\areas\ruins\_ruins.dm" -#include "code\game\area\areas\ruins\icemoon.dm" -#include "code\game\area\areas\ruins\lavaland.dm" -#include "code\game\area\areas\ruins\space.dm" -#include "code\game\area\areas\ruins\templates.dm" -#include "code\game\gamemodes\events.dm" -#include "code\game\gamemodes\game_mode.dm" -#include "code\game\gamemodes\objective.dm" -#include "code\game\gamemodes\objective_items.dm" -#include "code\game\gamemodes\objective_sabotage.dm" -#include "code\game\gamemodes\bloodsucker\bloodsucker.dm" -#include "code\game\gamemodes\bloodsucker\hunter.dm" -#include "code\game\gamemodes\brother\traitor_bro.dm" -#include "code\game\gamemodes\changeling\changeling.dm" -#include "code\game\gamemodes\changeling\traitor_chan.dm" -#include "code\game\gamemodes\clock_cult\clock_cult.dm" -#include "code\game\gamemodes\clown_ops\bananium_bomb.dm" -#include "code\game\gamemodes\clown_ops\clown_ops.dm" -#include "code\game\gamemodes\clown_ops\clown_weapons.dm" -#include "code\game\gamemodes\cult\cult.dm" -#include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\game_mode.dm" -#include "code\game\gamemodes\devil\objectives.dm" -#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" -#include "code\game\gamemodes\dynamic\dynamic.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_minor.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" -#include "code\game\gamemodes\dynamic\dynamic_storytellers.dm" -#include "code\game\gamemodes\eldritch_cult\eldritch_cult.dm" -#include "code\game\gamemodes\extended\extended.dm" -#include "code\game\gamemodes\gangs\dominator.dm" -#include "code\game\gamemodes\gangs\dominator_countdown.dm" -#include "code\game\gamemodes\gangs\gang.dm" -#include "code\game\gamemodes\gangs\gang_datums.dm" -#include "code\game\gamemodes\gangs\gang_decals.dm" -#include "code\game\gamemodes\gangs\gang_hud.dm" -#include "code\game\gamemodes\gangs\gang_items.dm" -#include "code\game\gamemodes\gangs\gang_pen.dm" -#include "code\game\gamemodes\gangs\gangs.dm" -#include "code\game\gamemodes\gangs\gangtool.dm" -#include "code\game\gamemodes\gangs\implant_gang.dm" -#include "code\game\gamemodes\meteor\meteor.dm" -#include "code\game\gamemodes\meteor\meteors.dm" -#include "code\game\gamemodes\monkey\monkey.dm" -#include "code\game\gamemodes\nuclear\nuclear.dm" -#include "code\game\gamemodes\overthrow\objective.dm" -#include "code\game\gamemodes\overthrow\overthrow.dm" -#include "code\game\gamemodes\revolution\revolution.dm" -#include "code\game\gamemodes\sandbox\airlock_maker.dm" -#include "code\game\gamemodes\sandbox\h_sandbox.dm" -#include "code\game\gamemodes\sandbox\sandbox.dm" -#include "code\game\gamemodes\traitor\double_agents.dm" -#include "code\game\gamemodes\traitor\traitor.dm" -#include "code\game\gamemodes\wizard\wizard.dm" -#include "code\game\machinery\_machinery.dm" -#include "code\game\machinery\ai_slipper.dm" -#include "code\game\machinery\airlock_control.dm" -#include "code\game\machinery\announcement_system.dm" -#include "code\game\machinery\aug_manipulator.dm" -#include "code\game\machinery\autolathe.dm" -#include "code\game\machinery\bank_machine.dm" -#include "code\game\machinery\Beacon.dm" -#include "code\game\machinery\bloodbankgen.dm" -#include "code\game\machinery\buttons.dm" -#include "code\game\machinery\cell_charger.dm" -#include "code\game\machinery\cloning.dm" -#include "code\game\machinery\colormate.dm" -#include "code\game\machinery\constructable_frame.dm" -#include "code\game\machinery\cryopod.dm" -#include "code\game\machinery\dance_machine.dm" -#include "code\game\machinery\defibrillator_mount.dm" -#include "code\game\machinery\deployable.dm" -#include "code\game\machinery\dish_drive.dm" -#include "code\game\machinery\dna_scanner.dm" -#include "code\game\machinery\doppler_array.dm" -#include "code\game\machinery\droneDispenser.dm" -#include "code\game\machinery\firealarm.dm" -#include "code\game\machinery\flasher.dm" -#include "code\game\machinery\gulag_item_reclaimer.dm" -#include "code\game\machinery\gulag_teleporter.dm" -#include "code\game\machinery\harvester.dm" -#include "code\game\machinery\hologram.dm" -#include "code\game\machinery\hypnochair.dm" -#include "code\game\machinery\igniter.dm" -#include "code\game\machinery\iv_drip.dm" -#include "code\game\machinery\launch_pad.dm" -#include "code\game\machinery\lightswitch.dm" -#include "code\game\machinery\limbgrower.dm" -#include "code\game\machinery\magnet.dm" -#include "code\game\machinery\mass_driver.dm" -#include "code\game\machinery\navbeacon.dm" -#include "code\game\machinery\PDApainter.dm" -#include "code\game\machinery\quantum_pad.dm" -#include "code\game\machinery\recharger.dm" -#include "code\game\machinery\rechargestation.dm" -#include "code\game\machinery\recycler.dm" -#include "code\game\machinery\requests_console.dm" -#include "code\game\machinery\sheetifier.dm" -#include "code\game\machinery\shieldgen.dm" -#include "code\game\machinery\Sleeper.dm" -#include "code\game\machinery\slotmachine.dm" -#include "code\game\machinery\spaceheater.dm" -#include "code\game\machinery\status_display.dm" -#include "code\game\machinery\suit_storage_unit.dm" -#include "code\game\machinery\syndicatebeacon.dm" -#include "code\game\machinery\syndicatebomb.dm" -#include "code\game\machinery\teleporter.dm" -#include "code\game\machinery\transformer.dm" -#include "code\game\machinery\turnstile.dm" -#include "code\game\machinery\washing_machine.dm" -#include "code\game\machinery\wishgranter.dm" -#include "code\game\machinery\camera\camera.dm" -#include "code\game\machinery\camera\camera_assembly.dm" -#include "code\game\machinery\camera\motion.dm" -#include "code\game\machinery\camera\presets.dm" -#include "code\game\machinery\camera\tracking.dm" -#include "code\game\machinery\computer\_computer.dm" -#include "code\game\machinery\computer\aifixer.dm" -#include "code\game\machinery\computer\apc_control.dm" -#include "code\game\machinery\computer\arcade.dm" -#include "code\game\machinery\computer\atmos_alert.dm" -#include "code\game\machinery\computer\atmos_control.dm" -#include "code\game\machinery\computer\buildandrepair.dm" -#include "code\game\machinery\computer\camera.dm" -#include "code\game\machinery\computer\camera_advanced.dm" -#include "code\game\machinery\computer\card.dm" -#include "code\game\machinery\computer\cloning.dm" -#include "code\game\machinery\computer\communications.dm" -#include "code\game\machinery\computer\crew.dm" -#include "code\game\machinery\computer\dna_console.dm" -#include "code\game\machinery\computer\launchpad_control.dm" -#include "code\game\machinery\computer\law.dm" -#include "code\game\machinery\computer\medical.dm" -#include "code\game\machinery\computer\Operating.dm" -#include "code\game\machinery\computer\pod.dm" -#include "code\game\machinery\computer\robot.dm" -#include "code\game\machinery\computer\security.dm" -#include "code\game\machinery\computer\station_alert.dm" -#include "code\game\machinery\computer\telecrystalconsoles.dm" -#include "code\game\machinery\computer\teleporter.dm" -#include "code\game\machinery\computer\arcade\battle.dm" -#include "code\game\machinery\computer\arcade\minesweeper.dm" -#include "code\game\machinery\computer\arcade\misc_arcade.dm" -#include "code\game\machinery\computer\arcade\orion_trail.dm" -#include "code\game\machinery\computer\prisoner\_prisoner.dm" -#include "code\game\machinery\computer\prisoner\gulag_teleporter.dm" -#include "code\game\machinery\computer\prisoner\management.dm" -#include "code\game\machinery\doors\airlock.dm" -#include "code\game\machinery\doors\airlock_electronics.dm" -#include "code\game\machinery\doors\airlock_types.dm" -#include "code\game\machinery\doors\alarmlock.dm" -#include "code\game\machinery\doors\brigdoors.dm" -#include "code\game\machinery\doors\checkForMultipleDoors.dm" -#include "code\game\machinery\doors\door.dm" -#include "code\game\machinery\doors\firedoor.dm" -#include "code\game\machinery\doors\passworddoor.dm" -#include "code\game\machinery\doors\poddoor.dm" -#include "code\game\machinery\doors\shutters.dm" -#include "code\game\machinery\doors\unpowered.dm" -#include "code\game\machinery\doors\windowdoor.dm" -#include "code\game\machinery\embedded_controller\access_controller.dm" -#include "code\game\machinery\embedded_controller\airlock_controller.dm" -#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" -#include "code\game\machinery\embedded_controller\simple_vent_controller.dm" -#include "code\game\machinery\pipe\construction.dm" -#include "code\game\machinery\pipe\pipe_dispenser.dm" -#include "code\game\machinery\porta_turret\portable_turret.dm" -#include "code\game\machinery\porta_turret\portable_turret_construct.dm" -#include "code\game\machinery\porta_turret\portable_turret_cover.dm" -#include "code\game\machinery\poweredfans\fan_assembly.dm" -#include "code\game\machinery\poweredfans\poweredfans.dm" -#include "code\game\machinery\shuttle\custom_shuttle.dm" -#include "code\game\machinery\shuttle\shuttle_engine.dm" -#include "code\game\machinery\shuttle\shuttle_heater.dm" -#include "code\game\machinery\telecomms\broadcasting.dm" -#include "code\game\machinery\telecomms\machine_interactions.dm" -#include "code\game\machinery\telecomms\telecomunications.dm" -#include "code\game\machinery\telecomms\computers\logbrowser.dm" -#include "code\game\machinery\telecomms\computers\message.dm" -#include "code\game\machinery\telecomms\computers\telemonitor.dm" -#include "code\game\machinery\telecomms\machines\allinone.dm" -#include "code\game\machinery\telecomms\machines\broadcaster.dm" -#include "code\game\machinery\telecomms\machines\bus.dm" -#include "code\game\machinery\telecomms\machines\hub.dm" -#include "code\game\machinery\telecomms\machines\message_server.dm" -#include "code\game\machinery\telecomms\machines\processor.dm" -#include "code\game\machinery\telecomms\machines\receiver.dm" -#include "code\game\machinery\telecomms\machines\relay.dm" -#include "code\game\machinery\telecomms\machines\server.dm" -#include "code\game\mecha\mech_bay.dm" -#include "code\game\mecha\mech_fabricator.dm" -#include "code\game\mecha\mecha.dm" -#include "code\game\mecha\mecha_actions.dm" -#include "code\game\mecha\mecha_construction_paths.dm" -#include "code\game\mecha\mecha_control_console.dm" -#include "code\game\mecha\mecha_defense.dm" -#include "code\game\mecha\mecha_parts.dm" -#include "code\game\mecha\mecha_topic.dm" -#include "code\game\mecha\mecha_wreckage.dm" -#include "code\game\mecha\combat\combat.dm" -#include "code\game\mecha\combat\durand.dm" -#include "code\game\mecha\combat\gygax.dm" -#include "code\game\mecha\combat\honker.dm" -#include "code\game\mecha\combat\marauder.dm" -#include "code\game\mecha\combat\neovgre.dm" -#include "code\game\mecha\combat\phazon.dm" -#include "code\game\mecha\combat\reticence.dm" -#include "code\game\mecha\equipment\mecha_equipment.dm" -#include "code\game\mecha\equipment\tools\medical_tools.dm" -#include "code\game\mecha\equipment\tools\mining_tools.dm" -#include "code\game\mecha\equipment\tools\other_tools.dm" -#include "code\game\mecha\equipment\tools\work_tools.dm" -#include "code\game\mecha\equipment\weapons\mecha_ammo.dm" -#include "code\game\mecha\equipment\weapons\weapons.dm" -#include "code\game\mecha\medical\medical.dm" -#include "code\game\mecha\medical\medigax.dm" -#include "code\game\mecha\medical\odysseus.dm" -#include "code\game\mecha\working\ripley.dm" -#include "code\game\mecha\working\working.dm" -#include "code\game\objects\buckling.dm" -#include "code\game\objects\empulse.dm" -#include "code\game\objects\items.dm" -#include "code\game\objects\obj_defense.dm" -#include "code\game\objects\objs.dm" -#include "code\game\objects\structures.dm" -#include "code\game\objects\effects\alien_acid.dm" -#include "code\game\objects\effects\anomalies.dm" -#include "code\game\objects\effects\arachnid_web.dm" -#include "code\game\objects\effects\blessing.dm" -#include "code\game\objects\effects\bump_teleporter.dm" -#include "code\game\objects\effects\contraband.dm" -#include "code\game\objects\effects\countdown.dm" -#include "code\game\objects\effects\effects.dm" -#include "code\game\objects\effects\forcefields.dm" -#include "code\game\objects\effects\glowshroom.dm" -#include "code\game\objects\effects\landmarks.dm" -#include "code\game\objects\effects\mines.dm" -#include "code\game\objects\effects\misc.dm" -#include "code\game\objects\effects\overlays.dm" -#include "code\game\objects\effects\portals.dm" -#include "code\game\objects\effects\proximity.dm" -#include "code\game\objects\effects\spiders.dm" -#include "code\game\objects\effects\step_triggers.dm" -#include "code\game\objects\effects\wanted_poster.dm" -#include "code\game\objects\effects\decals\cleanable.dm" -#include "code\game\objects\effects\decals\crayon.dm" -#include "code\game\objects\effects\decals\decal.dm" -#include "code\game\objects\effects\decals\misc.dm" -#include "code\game\objects\effects\decals\remains.dm" -#include "code\game\objects\effects\decals\vgdecals.dm" -#include "code\game\objects\effects\decals\cleanable\aliens.dm" -#include "code\game\objects\effects\decals\cleanable\gibs.dm" -#include "code\game\objects\effects\decals\cleanable\humans.dm" -#include "code\game\objects\effects\decals\cleanable\misc.dm" -#include "code\game\objects\effects\decals\cleanable\robots.dm" -#include "code\game\objects\effects\decals\turfdecal\dirt.dm" -#include "code\game\objects\effects\decals\turfdecal\markings.dm" -#include "code\game\objects\effects\decals\turfdecal\tilecoloring.dm" -#include "code\game\objects\effects\decals\turfdecal\weather.dm" -#include "code\game\objects\effects\effect_system\effect_system.dm" -#include "code\game\objects\effects\effect_system\effects_explosion.dm" -#include "code\game\objects\effects\effect_system\effects_foam.dm" -#include "code\game\objects\effects\effect_system\effects_other.dm" -#include "code\game\objects\effects\effect_system\effects_smoke.dm" -#include "code\game\objects\effects\effect_system\effects_sparks.dm" -#include "code\game\objects\effects\effect_system\effects_water.dm" -#include "code\game\objects\effects\spawners\bombspawner.dm" -#include "code\game\objects\effects\spawners\bundle.dm" -#include "code\game\objects\effects\spawners\gibspawner.dm" -#include "code\game\objects\effects\spawners\lootdrop.dm" -#include "code\game\objects\effects\spawners\structure.dm" -#include "code\game\objects\effects\spawners\traps.dm" -#include "code\game\objects\effects\spawners\vaultspawner.dm" -#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" -#include "code\game\objects\effects\temporary_visuals\clockcult.dm" -#include "code\game\objects\effects\temporary_visuals\cult.dm" -#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" -#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" -#include "code\game\objects\items\AI_modules.dm" -#include "code\game\objects\items\airlock_painter.dm" -#include "code\game\objects\items\apc_frame.dm" -#include "code\game\objects\items\armor_kits.dm" -#include "code\game\objects\items\binoculars.dm" -#include "code\game\objects\items\blueprints.dm" -#include "code\game\objects\items\body_egg.dm" -#include "code\game\objects\items\bodybag.dm" -#include "code\game\objects\items\boombox.dm" -#include "code\game\objects\items\broom.dm" -#include "code\game\objects\items\candle.dm" -#include "code\game\objects\items\cardboard_cutouts.dm" -#include "code\game\objects\items\cards_ids.dm" -#include "code\game\objects\items\chainsaw.dm" -#include "code\game\objects\items\charter.dm" -#include "code\game\objects\items\chromosome.dm" -#include "code\game\objects\items\chrono_eraser.dm" -#include "code\game\objects\items\cigs_lighters.dm" -#include "code\game\objects\items\clown_items.dm" -#include "code\game\objects\items\control_wand.dm" -#include "code\game\objects\items\cosmetics.dm" -#include "code\game\objects\items\courtroom.dm" -#include "code\game\objects\items\crab17.dm" -#include "code\game\objects\items\crayons.dm" -#include "code\game\objects\items\credit_holochip.dm" -#include "code\game\objects\items\debug_items.dm" -#include "code\game\objects\items\defib.dm" -#include "code\game\objects\items\dehy_carp.dm" -#include "code\game\objects\items\dice.dm" -#include "code\game\objects\items\dna_injector.dm" -#include "code\game\objects\items\documents.dm" -#include "code\game\objects\items\dualsaber.dm" -#include "code\game\objects\items\eightball.dm" -#include "code\game\objects\items\electrostaff.dm" -#include "code\game\objects\items\extinguisher.dm" -#include "code\game\objects\items\fireaxe.dm" -#include "code\game\objects\items\flamethrower.dm" -#include "code\game\objects\items\fluff.dm" -#include "code\game\objects\items\gift.dm" -#include "code\game\objects\items\granters.dm" -#include "code\game\objects\items\handcuffs.dm" -#include "code\game\objects\items\his_grace.dm" -#include "code\game\objects\items\holosign_creator.dm" -#include "code\game\objects\items\holy_weapons.dm" -#include "code\game\objects\items\hot_potato.dm" -#include "code\game\objects\items\inducer.dm" -#include "code\game\objects\items\kitchen.dm" -#include "code\game\objects\items\latexballoon.dm" -#include "code\game\objects\items\manuals.dm" -#include "code\game\objects\items\miscellaneous.dm" -#include "code\game\objects\items\mop.dm" -#include "code\game\objects\items\paint.dm" -#include "code\game\objects\items\paiwire.dm" -#include "code\game\objects\items\pet_carrier.dm" -#include "code\game\objects\items\pinpointer.dm" -#include "code\game\objects\items\pitchfork.dm" -#include "code\game\objects\items\plushes.dm" -#include "code\game\objects\items\pneumaticCannon.dm" -#include "code\game\objects\items\powerfist.dm" -#include "code\game\objects\items\puzzle_pieces.dm" -#include "code\game\objects\items\RCD.dm" -#include "code\game\objects\items\RCL.dm" -#include "code\game\objects\items\religion.dm" -#include "code\game\objects\items\RPD.dm" -#include "code\game\objects\items\RSF.dm" -#include "code\game\objects\items\scrolls.dm" -#include "code\game\objects\items\sharpener.dm" -#include "code\game\objects\items\shields.dm" -#include "code\game\objects\items\shooting_range.dm" -#include "code\game\objects\items\shrapnel.dm" -#include "code\game\objects\items\signs.dm" -#include "code\game\objects\items\singularityhammer.dm" -#include "code\game\objects\items\spear.dm" -#include "code\game\objects\items\stunbaton.dm" -#include "code\game\objects\items\taster.dm" -#include "code\game\objects\items\teleportation.dm" -#include "code\game\objects\items\teleprod.dm" -#include "code\game\objects\items\telescopic_iv.dm" -#include "code\game\objects\items\theft_tools.dm" -#include "code\game\objects\items\toys.dm" -#include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\vending_items.dm" -#include "code\game\objects\items\weaponry.dm" -#include "code\game\objects\items\circuitboards\circuitboard.dm" -#include "code\game\objects\items\circuitboards\computer_circuitboards.dm" -#include "code\game\objects\items\circuitboards\machine_circuitboards.dm" -#include "code\game\objects\items\devices\aicard.dm" -#include "code\game\objects\items\devices\anomaly_neutralizer.dm" -#include "code\game\objects\items\devices\beacon.dm" -#include "code\game\objects\items\devices\camera_bug.dm" -#include "code\game\objects\items\devices\chameleonproj.dm" -#include "code\game\objects\items\devices\compressionkit.dm" -#include "code\game\objects\items\devices\desynchronizer.dm" -#include "code\game\objects\items\devices\dogborg_sleeper.dm" -#include "code\game\objects\items\devices\doorCharge.dm" -#include "code\game\objects\items\devices\electroadaptive_pseudocircuit.dm" -#include "code\game\objects\items\devices\electrochromatic_kit.dm" -#include "code\game\objects\items\devices\flashlight.dm" -#include "code\game\objects\items\devices\forcefieldprojector.dm" -#include "code\game\objects\items\devices\geiger_counter.dm" -#include "code\game\objects\items\devices\glue.dm" -#include "code\game\objects\items\devices\gps.dm" -#include "code\game\objects\items\devices\laserpointer.dm" -#include "code\game\objects\items\devices\lightreplacer.dm" -#include "code\game\objects\items\devices\megaphone.dm" -#include "code\game\objects\items\devices\multitool.dm" -#include "code\game\objects\items\devices\paicard.dm" -#include "code\game\objects\items\devices\pipe_painter.dm" -#include "code\game\objects\items\devices\polycircuit.dm" -#include "code\game\objects\items\devices\portable_chem_mixer.dm" -#include "code\game\objects\items\devices\powersink.dm" -#include "code\game\objects\items\devices\pressureplates.dm" -#include "code\game\objects\items\devices\quantum_keycard.dm" -#include "code\game\objects\items\devices\reverse_bear_trap.dm" -#include "code\game\objects\items\devices\scanners.dm" -#include "code\game\objects\items\devices\sensor_device.dm" -#include "code\game\objects\items\devices\taperecorder.dm" -#include "code\game\objects\items\devices\traitordevices.dm" -#include "code\game\objects\items\devices\transfer_valve.dm" -#include "code\game\objects\items\devices\PDA\cart.dm" -#include "code\game\objects\items\devices\PDA\PDA.dm" -#include "code\game\objects\items\devices\PDA\PDA_types.dm" -#include "code\game\objects\items\devices\PDA\radio.dm" -#include "code\game\objects\items\devices\PDA\virus_cart.dm" -#include "code\game\objects\items\devices\radio\electropack.dm" -#include "code\game\objects\items\devices\radio\encryptionkey.dm" -#include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\intercom.dm" -#include "code\game\objects\items\devices\radio\radio.dm" -#include "code\game\objects\items\grenades\antigravity.dm" -#include "code\game\objects\items\grenades\chem_grenade.dm" -#include "code\game\objects\items\grenades\clusterbuster.dm" -#include "code\game\objects\items\grenades\emgrenade.dm" -#include "code\game\objects\items\grenades\flashbang.dm" -#include "code\game\objects\items\grenades\ghettobomb.dm" -#include "code\game\objects\items\grenades\grenade.dm" -#include "code\game\objects\items\grenades\plastic.dm" -#include "code\game\objects\items\grenades\smokebomb.dm" -#include "code\game\objects\items\grenades\spawnergrenade.dm" -#include "code\game\objects\items\grenades\syndieminibomb.dm" -#include "code\game\objects\items\implants\implant.dm" -#include "code\game\objects\items\implants\implant_abductor.dm" -#include "code\game\objects\items\implants\implant_chem.dm" -#include "code\game\objects\items\implants\implant_clown.dm" -#include "code\game\objects\items\implants\implant_deathrattle.dm" -#include "code\game\objects\items\implants\implant_exile.dm" -#include "code\game\objects\items\implants\implant_explosive.dm" -#include "code\game\objects\items\implants\implant_freedom.dm" -#include "code\game\objects\items\implants\implant_hijack.dm" -#include "code\game\objects\items\implants\implant_krav_maga.dm" -#include "code\game\objects\items\implants\implant_mindshield.dm" -#include "code\game\objects\items\implants\implant_misc.dm" -#include "code\game\objects\items\implants\implant_radio.dm" -#include "code\game\objects\items\implants\implant_spell.dm" -#include "code\game\objects\items\implants\implant_stealth.dm" -#include "code\game\objects\items\implants\implant_storage.dm" -#include "code\game\objects\items\implants\implant_track.dm" -#include "code\game\objects\items\implants\implant_uplink.dm" -#include "code\game\objects\items\implants\implantcase.dm" -#include "code\game\objects\items\implants\implantchair.dm" -#include "code\game\objects\items\implants\implanter.dm" -#include "code\game\objects\items\implants\implantpad.dm" -#include "code\game\objects\items\melee\energy.dm" -#include "code\game\objects\items\melee\misc.dm" -#include "code\game\objects\items\melee\transforming.dm" -#include "code\game\objects\items\robot\ai_upgrades.dm" -#include "code\game\objects\items\robot\robot_items.dm" -#include "code\game\objects\items\robot\robot_parts.dm" -#include "code\game\objects\items\robot\robot_upgrades.dm" -#include "code\game\objects\items\stacks\bscrystal.dm" -#include "code\game\objects\items\stacks\cash.dm" -#include "code\game\objects\items\stacks\medical.dm" -#include "code\game\objects\items\stacks\rods.dm" -#include "code\game\objects\items\stacks\stack.dm" -#include "code\game\objects\items\stacks\tape.dm" -#include "code\game\objects\items\stacks\telecrystal.dm" -#include "code\game\objects\items\stacks\tickets.dm" -#include "code\game\objects\items\stacks\wrap.dm" -#include "code\game\objects\items\stacks\sheets\glass.dm" -#include "code\game\objects\items\stacks\sheets\leather.dm" -#include "code\game\objects\items\stacks\sheets\light.dm" -#include "code\game\objects\items\stacks\sheets\mineral.dm" -#include "code\game\objects\items\stacks\sheets\sheet_types.dm" -#include "code\game\objects\items\stacks\sheets\sheets.dm" -#include "code\game\objects\items\stacks\tiles\light.dm" -#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" -#include "code\game\objects\items\stacks\tiles\tile_types.dm" -#include "code\game\objects\items\storage\_storage.dm" -#include "code\game\objects\items\storage\backpack.dm" -#include "code\game\objects\items\storage\bags.dm" -#include "code\game\objects\items\storage\belt.dm" -#include "code\game\objects\items\storage\book.dm" -#include "code\game\objects\items\storage\boxes.dm" -#include "code\game\objects\items\storage\briefcase.dm" -#include "code\game\objects\items\storage\dakis.dm" -#include "code\game\objects\items\storage\fancy.dm" -#include "code\game\objects\items\storage\firstaid.dm" -#include "code\game\objects\items\storage\lockbox.dm" -#include "code\game\objects\items\storage\secure.dm" -#include "code\game\objects\items\storage\toolbox.dm" -#include "code\game\objects\items\storage\uplink_kits.dm" -#include "code\game\objects\items\storage\wallets.dm" -#include "code\game\objects\items\tanks\jetpack.dm" -#include "code\game\objects\items\tanks\tank_types.dm" -#include "code\game\objects\items\tanks\tanks.dm" -#include "code\game\objects\items\tanks\watertank.dm" -#include "code\game\objects\items\tools\crowbar.dm" -#include "code\game\objects\items\tools\screwdriver.dm" -#include "code\game\objects\items\tools\weldingtool.dm" -#include "code\game\objects\items\tools\wirecutters.dm" -#include "code\game\objects\items\tools\wrench.dm" -#include "code\game\objects\structures\ai_core.dm" -#include "code\game\objects\structures\aliens.dm" -#include "code\game\objects\structures\artstuff.dm" -#include "code\game\objects\structures\barsigns.dm" -#include "code\game\objects\structures\bedsheet_bin.dm" -#include "code\game\objects\structures\chess.dm" -#include "code\game\objects\structures\destructible_structures.dm" -#include "code\game\objects\structures\displaycase.dm" -#include "code\game\objects\structures\divine.dm" -#include "code\game\objects\structures\door_assembly.dm" -#include "code\game\objects\structures\door_assembly_types.dm" -#include "code\game\objects\structures\dresser.dm" -#include "code\game\objects\structures\electricchair.dm" -#include "code\game\objects\structures\extinguisher.dm" -#include "code\game\objects\structures\false_walls.dm" -#include "code\game\objects\structures\femur_breaker.dm" -#include "code\game\objects\structures\fence.dm" -#include "code\game\objects\structures\fireaxe.dm" -#include "code\game\objects\structures\fireplace.dm" -#include "code\game\objects\structures\flora.dm" -#include "code\game\objects\structures\fluff.dm" -#include "code\game\objects\structures\fugitive_role_spawners.dm" -#include "code\game\objects\structures\ghost_role_spawners.dm" -#include "code\game\objects\structures\girders.dm" -#include "code\game\objects\structures\grille.dm" -#include "code\game\objects\structures\guillotine.dm" -#include "code\game\objects\structures\guncase.dm" -#include "code\game\objects\structures\headpike.dm" -#include "code\game\objects\structures\hivebot.dm" -#include "code\game\objects\structures\holosign.dm" -#include "code\game\objects\structures\janicart.dm" -#include "code\game\objects\structures\kitchen_spike.dm" -#include "code\game\objects\structures\ladders.dm" -#include "code\game\objects\structures\lattice.dm" -#include "code\game\objects\structures\life_candle.dm" -#include "code\game\objects\structures\loom.dm" -#include "code\game\objects\structures\loot_pile.dm" -#include "code\game\objects\structures\manned_turret.dm" -#include "code\game\objects\structures\memorial.dm" -#include "code\game\objects\structures\mineral_doors.dm" -#include "code\game\objects\structures\mirror.dm" -#include "code\game\objects\structures\mop_bucket.dm" -#include "code\game\objects\structures\morgue.dm" -#include "code\game\objects\structures\noticeboard.dm" -#include "code\game\objects\structures\petrified_statue.dm" -#include "code\game\objects\structures\plasticflaps.dm" -#include "code\game\objects\structures\railings.dm" -#include "code\game\objects\structures\reflector.dm" -#include "code\game\objects\structures\safe.dm" -#include "code\game\objects\structures\showcase.dm" -#include "code\game\objects\structures\spawner.dm" -#include "code\game\objects\structures\spirit_board.dm" -#include "code\game\objects\structures\stairs.dm" -#include "code\game\objects\structures\statues.dm" -#include "code\game\objects\structures\table_frames.dm" -#include "code\game\objects\structures\tables_racks.dm" -#include "code\game\objects\structures\tank_dispenser.dm" -#include "code\game\objects\structures\target_stake.dm" -#include "code\game\objects\structures\traps.dm" -#include "code\game\objects\structures\watercloset.dm" -#include "code\game\objects\structures\windoor_assembly.dm" -#include "code\game\objects\structures\window.dm" -#include "code\game\objects\structures\beds_chairs\alien_nest.dm" -#include "code\game\objects\structures\beds_chairs\bed.dm" -#include "code\game\objects\structures\beds_chairs\chair.dm" -#include "code\game\objects\structures\beds_chairs\pew.dm" -#include "code\game\objects\structures\beds_chairs\sofa.dm" -#include "code\game\objects\structures\crates_lockers\closets.dm" -#include "code\game\objects\structures\crates_lockers\crates.dm" -#include "code\game\objects\structures\crates_lockers\closets\bodybag.dm" -#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" -#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" -#include "code\game\objects\structures\crates_lockers\closets\genpop.dm" -#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" -#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" -#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" -#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\misc.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" -#include "code\game\objects\structures\crates_lockers\crates\bins.dm" -#include "code\game\objects\structures\crates_lockers\crates\critter.dm" -#include "code\game\objects\structures\crates_lockers\crates\large.dm" -#include "code\game\objects\structures\crates_lockers\crates\secure.dm" -#include "code\game\objects\structures\crates_lockers\crates\wooden.dm" -#include "code\game\objects\structures\icemoon\cave_entrance.dm" -#include "code\game\objects\structures\lavaland\geyser.dm" -#include "code\game\objects\structures\lavaland\necropolis_tendril.dm" -#include "code\game\objects\structures\signs\_signs.dm" -#include "code\game\objects\structures\signs\signs_departments.dm" -#include "code\game\objects\structures\signs\signs_maps.dm" -#include "code\game\objects\structures\signs\signs_plaques.dm" -#include "code\game\objects\structures\signs\signs_warning.dm" -#include "code\game\objects\structures\transit_tubes\station.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" -#include "code\game\turfs\baseturf_skipover.dm" -#include "code\game\turfs\change_turf.dm" -#include "code\game\turfs\closed.dm" -#include "code\game\turfs\open.dm" -#include "code\game\turfs\turf.dm" -#include "code\game\turfs\simulated\chasm.dm" -#include "code\game\turfs\simulated\dirtystation.dm" -#include "code\game\turfs\simulated\floor.dm" -#include "code\game\turfs\simulated\glass.dm" -#include "code\game\turfs\simulated\lava.dm" -#include "code\game\turfs\simulated\minerals.dm" -#include "code\game\turfs\simulated\openspace.dm" -#include "code\game\turfs\simulated\reebe_void.dm" -#include "code\game\turfs\simulated\river.dm" -#include "code\game\turfs\simulated\walls.dm" -#include "code\game\turfs\simulated\water.dm" -#include "code\game\turfs\simulated\floor\fancy_floor.dm" -#include "code\game\turfs\simulated\floor\light_floor.dm" -#include "code\game\turfs\simulated\floor\mineral_floor.dm" -#include "code\game\turfs\simulated\floor\misc_floor.dm" -#include "code\game\turfs\simulated\floor\plasteel_floor.dm" -#include "code\game\turfs\simulated\floor\plating.dm" -#include "code\game\turfs\simulated\floor\reinf_floor.dm" -#include "code\game\turfs\simulated\floor\plating\asteroid.dm" -#include "code\game\turfs\simulated\floor\plating\dirt.dm" -#include "code\game\turfs\simulated\floor\plating\misc_plating.dm" -#include "code\game\turfs\simulated\wall\material_walls.dm" -#include "code\game\turfs\simulated\wall\mineral_walls.dm" -#include "code\game\turfs\simulated\wall\misc_walls.dm" -#include "code\game\turfs\simulated\wall\reinf_walls.dm" -#include "code\game\turfs\space\space.dm" -#include "code\game\turfs\space\transit.dm" -#include "code\modules\actionspeed\_actionspeed_modifier.dm" -#include "code\modules\actionspeed\modifiers\base.dm" -#include "code\modules\actionspeed\modifiers\mood.dm" -#include "code\modules\actionspeed\modifiers\status_effects.dm" -#include "code\modules\admin\admin.dm" -#include "code\modules\admin\admin_investigate.dm" -#include "code\modules\admin\admin_ranks.dm" -#include "code\modules\admin\admin_verbs.dm" -#include "code\modules\admin\adminmenu.dm" -#include "code\modules\admin\antag_panel.dm" -#include "code\modules\admin\banjob.dm" -#include "code\modules\admin\chat_commands.dm" -#include "code\modules\admin\check_antagonists.dm" -#include "code\modules\admin\create_mob.dm" -#include "code\modules\admin\create_object.dm" -#include "code\modules\admin\create_poll.dm" -#include "code\modules\admin\create_turf.dm" -#include "code\modules\admin\fun_balloon.dm" -#include "code\modules\admin\holder2.dm" -#include "code\modules\admin\ipintel.dm" -#include "code\modules\admin\IsBanned.dm" -#include "code\modules\admin\NewBan.dm" -#include "code\modules\admin\outfit_editor.dm" -#include "code\modules\admin\outfit_manager.dm" -#include "code\modules\admin\outfits.dm" -#include "code\modules\admin\permissionedit.dm" -#include "code\modules\admin\player_panel.dm" -#include "code\modules\admin\sound_emitter.dm" -#include "code\modules\admin\sql_message_system.dm" -#include "code\modules\admin\stickyban.dm" -#include "code\modules\admin\topic.dm" -#include "code\modules\admin\whitelist.dm" -#include "code\modules\admin\callproc\callproc.dm" -#include "code\modules\admin\DB_ban\functions.dm" -#include "code\modules\admin\verbs\adminhelp.dm" -#include "code\modules\admin\verbs\adminjump.dm" -#include "code\modules\admin\verbs\adminpm.dm" -#include "code\modules\admin\verbs\adminsay.dm" -#include "code\modules\admin\verbs\ak47s.dm" -#include "code\modules\admin\verbs\atmosdebug.dm" -#include "code\modules\admin\verbs\bluespacearty.dm" -#include "code\modules\admin\verbs\borgpanel.dm" -#include "code\modules\admin\verbs\BrokenInhands.dm" -#include "code\modules\admin\verbs\cinematic.dm" -#include "code\modules\admin\verbs\deadsay.dm" -#include "code\modules\admin\verbs\debug.dm" -#include "code\modules\admin\verbs\diagnostics.dm" -#include "code\modules\admin\verbs\dice.dm" -#include "code\modules\admin\verbs\fps.dm" -#include "code\modules\admin\verbs\getlogs.dm" -#include "code\modules\admin\verbs\individual_logging.dm" -#include "code\modules\admin\verbs\machine_upgrade.dm" -#include "code\modules\admin\verbs\manipulate_organs.dm" -#include "code\modules\admin\verbs\map_template_loadverb.dm" -#include "code\modules\admin\verbs\mapping.dm" -#include "code\modules\admin\verbs\maprotation.dm" -#include "code\modules\admin\verbs\one_click_antag.dm" -#include "code\modules\admin\verbs\onlyone.dm" -#include "code\modules\admin\verbs\panicbunker.dm" -#include "code\modules\admin\verbs\playsound.dm" -#include "code\modules\admin\verbs\possess.dm" -#include "code\modules\admin\verbs\pray.dm" -#include "code\modules\admin\verbs\randomverbs.dm" -#include "code\modules\admin\verbs\reestablish_db_connection.dm" -#include "code\modules\admin\verbs\secrets.dm" -#include "code\modules\admin\verbs\selectequipment.dm" -#include "code\modules\admin\verbs\shuttlepanel.dm" -#include "code\modules\admin\verbs\spawnobjasmob.dm" -#include "code\modules\admin\verbs\tripAI.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" -#include "code\modules\admin\view_variables\admin_delete.dm" -#include "code\modules\admin\view_variables\debug_variables.dm" -#include "code\modules\admin\view_variables\filterrific.dm" -#include "code\modules\admin\view_variables\get_variables.dm" -#include "code\modules\admin\view_variables\mark_datum.dm" -#include "code\modules\admin\view_variables\mass_edit_variables.dm" -#include "code\modules\admin\view_variables\modify_variables.dm" -#include "code\modules\admin\view_variables\reference_tracking.dm" -#include "code\modules\admin\view_variables\topic.dm" -#include "code\modules\admin\view_variables\topic_basic.dm" -#include "code\modules\admin\view_variables\topic_list.dm" -#include "code\modules\admin\view_variables\view_variables.dm" -#include "code\modules\antagonists\_common\antag_datum.dm" -#include "code\modules\antagonists\_common\antag_helpers.dm" -#include "code\modules\antagonists\_common\antag_hud.dm" -#include "code\modules\antagonists\_common\antag_spawner.dm" -#include "code\modules\antagonists\_common\antag_team.dm" -#include "code\modules\antagonists\abductor\abductor.dm" -#include "code\modules\antagonists\abductor\ice_abductor.dm" -#include "code\modules\antagonists\abductor\abductee\abductee.dm" -#include "code\modules\antagonists\abductor\abductee\abductee_objectives.dm" -#include "code\modules\antagonists\abductor\abductee\trauma.dm" -#include "code\modules\antagonists\abductor\equipment\abduction_gear.dm" -#include "code\modules\antagonists\abductor\equipment\abduction_outfits.dm" -#include "code\modules\antagonists\abductor\equipment\abduction_surgery.dm" -#include "code\modules\antagonists\abductor\equipment\gland.dm" -#include "code\modules\antagonists\abductor\equipment\orderable_gear.dm" -#include "code\modules\antagonists\abductor\equipment\glands\access.dm" -#include "code\modules\antagonists\abductor\equipment\glands\blood.dm" -#include "code\modules\antagonists\abductor\equipment\glands\chem.dm" -#include "code\modules\antagonists\abductor\equipment\glands\egg.dm" -#include "code\modules\antagonists\abductor\equipment\glands\electric.dm" -#include "code\modules\antagonists\abductor\equipment\glands\heal.dm" -#include "code\modules\antagonists\abductor\equipment\glands\mindshock.dm" -#include "code\modules\antagonists\abductor\equipment\glands\plasma.dm" -#include "code\modules\antagonists\abductor\equipment\glands\quantum.dm" -#include "code\modules\antagonists\abductor\equipment\glands\slime.dm" -#include "code\modules\antagonists\abductor\equipment\glands\spider.dm" -#include "code\modules\antagonists\abductor\equipment\glands\transform.dm" -#include "code\modules\antagonists\abductor\equipment\glands\trauma.dm" -#include "code\modules\antagonists\abductor\equipment\glands\ventcrawl.dm" -#include "code\modules\antagonists\abductor\equipment\glands\viral.dm" -#include "code\modules\antagonists\abductor\machinery\camera.dm" -#include "code\modules\antagonists\abductor\machinery\console.dm" -#include "code\modules\antagonists\abductor\machinery\dispenser.dm" -#include "code\modules\antagonists\abductor\machinery\experiment.dm" -#include "code\modules\antagonists\abductor\machinery\pad.dm" -#include "code\modules\antagonists\blob\blob.dm" -#include "code\modules\antagonists\blob\blob\blob_report.dm" -#include "code\modules\antagonists\blob\blob\overmind.dm" -#include "code\modules\antagonists\blob\blob\powers.dm" -#include "code\modules\antagonists\blob\blob\theblob.dm" -#include "code\modules\antagonists\blob\blob\blobs\blob_mobs.dm" -#include "code\modules\antagonists\blob\blob\blobs\core.dm" -#include "code\modules\antagonists\blob\blob\blobs\factory.dm" -#include "code\modules\antagonists\blob\blob\blobs\node.dm" -#include "code\modules\antagonists\blob\blob\blobs\resource.dm" -#include "code\modules\antagonists\blob\blob\blobs\shield.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\_blobstrain.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\_reagent.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\blazing_oil.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\cryogenic_poison.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\electromagnetic_web.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\energized_jelly.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\explosive_lattice.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\multiplex.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\networked_fibers.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\pressurized_slime.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\reactive_spines.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\regenerative_materia.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\replicating_foam.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\shifting_fragments.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\synchronous_mesh.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\zombifying_pods.dm" -#include "code\modules\antagonists\blood_contract\blood_contract.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_flaws.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_integration.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_life.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_objectives.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_powers.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_sunlight.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_ui.dm" -#include "code\modules\antagonists\bloodsucker\datum_bloodsucker.dm" -#include "code\modules\antagonists\bloodsucker\datum_hunter.dm" -#include "code\modules\antagonists\bloodsucker\datum_vassal.dm" -#include "code\modules\antagonists\bloodsucker\items\bloodsucker_organs.dm" -#include "code\modules\antagonists\bloodsucker\items\bloodsucker_stake.dm" -#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_coffin.dm" -#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_crypt.dm" -#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_lair.dm" -#include "code\modules\antagonists\bloodsucker\powers\brawn.dm" -#include "code\modules\antagonists\bloodsucker\powers\cloak.dm" -#include "code\modules\antagonists\bloodsucker\powers\feed.dm" -#include "code\modules\antagonists\bloodsucker\powers\fortitude.dm" -#include "code\modules\antagonists\bloodsucker\powers\go_home.dm" -#include "code\modules\antagonists\bloodsucker\powers\haste.dm" -#include "code\modules\antagonists\bloodsucker\powers\lunge.dm" -#include "code\modules\antagonists\bloodsucker\powers\masquerade.dm" -#include "code\modules\antagonists\bloodsucker\powers\mesmerize.dm" -#include "code\modules\antagonists\bloodsucker\powers\recuperate.dm" -#include "code\modules\antagonists\bloodsucker\powers\trespass.dm" -#include "code\modules\antagonists\bloodsucker\powers\veil.dm" -#include "code\modules\antagonists\brainwashing\brainwashing.dm" -#include "code\modules\antagonists\brother\brother.dm" -#include "code\modules\antagonists\changeling\cellular_emporium.dm" -#include "code\modules\antagonists\changeling\changeling.dm" -#include "code\modules\antagonists\changeling\changeling_power.dm" -#include "code\modules\antagonists\changeling\powers\absorb.dm" -#include "code\modules\antagonists\changeling\powers\adrenaline.dm" -#include "code\modules\antagonists\changeling\powers\augmented_eyesight.dm" -#include "code\modules\antagonists\changeling\powers\biodegrade.dm" -#include "code\modules\antagonists\changeling\powers\chameleon_skin.dm" -#include "code\modules\antagonists\changeling\powers\digitalcamo.dm" -#include "code\modules\antagonists\changeling\powers\fakedeath.dm" -#include "code\modules\antagonists\changeling\powers\fleshmend.dm" -#include "code\modules\antagonists\changeling\powers\headcrab.dm" -#include "code\modules\antagonists\changeling\powers\hivemind.dm" -#include "code\modules\antagonists\changeling\powers\humanform.dm" -#include "code\modules\antagonists\changeling\powers\lesserform.dm" -#include "code\modules\antagonists\changeling\powers\linglink.dm" -#include "code\modules\antagonists\changeling\powers\mimic_voice.dm" -#include "code\modules\antagonists\changeling\powers\mutations.dm" -#include "code\modules\antagonists\changeling\powers\panacea.dm" -#include "code\modules\antagonists\changeling\powers\pheromone_receptors.dm" -#include "code\modules\antagonists\changeling\powers\regenerate.dm" -#include "code\modules\antagonists\changeling\powers\revive.dm" -#include "code\modules\antagonists\changeling\powers\shriek.dm" -#include "code\modules\antagonists\changeling\powers\spiders.dm" -#include "code\modules\antagonists\changeling\powers\strained_muscles.dm" -#include "code\modules\antagonists\changeling\powers\tiny_prick.dm" -#include "code\modules\antagonists\changeling\powers\transform.dm" -#include "code\modules\antagonists\clockcult\clock_effect.dm" -#include "code\modules\antagonists\clockcult\clock_item.dm" -#include "code\modules\antagonists\clockcult\clock_mobs.dm" -#include "code\modules\antagonists\clockcult\clock_scripture.dm" -#include "code\modules\antagonists\clockcult\clock_structure.dm" -#include "code\modules\antagonists\clockcult\clockcult.dm" -#include "code\modules\antagonists\clockcult\clock_effects\city_of_cogs_rift.dm" -#include "code\modules\antagonists\clockcult\clock_effects\clock_overlay.dm" -#include "code\modules\antagonists\clockcult\clock_effects\clock_sigils.dm" -#include "code\modules\antagonists\clockcult\clock_effects\general_markers.dm" -#include "code\modules\antagonists\clockcult\clock_effects\servant_blocker.dm" -#include "code\modules\antagonists\clockcult\clock_effects\spatial_gateway.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\clock_powerdrain.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\clock_rites.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\component_helpers.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\fabrication_helpers.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\hierophant_network.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\power_helpers.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\ratvarian_language.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\scripture_checks.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\slab_abilities.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_augments.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_components.dm" -#include "code\modules\antagonists\clockcult\clock_items\clockwork_armor.dm" -#include "code\modules\antagonists\clockcult\clock_items\clockwork_slab.dm" -#include "code\modules\antagonists\clockcult\clock_items\clockwork_weaponry.dm" -#include "code\modules\antagonists\clockcult\clock_items\construct_chassis.dm" -#include "code\modules\antagonists\clockcult\clock_items\integration_cog.dm" -#include "code\modules\antagonists\clockcult\clock_items\judicial_visor.dm" -#include "code\modules\antagonists\clockcult\clock_items\replica_fabricator.dm" -#include "code\modules\antagonists\clockcult\clock_items\soul_vessel.dm" -#include "code\modules\antagonists\clockcult\clock_items\wraith_spectacles.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\_call_weapon.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\brass_claw.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_shield.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_spear.dm" -#include "code\modules\antagonists\clockcult\clock_mobs\_eminence.dm" -#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_guardian.dm" -#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_marauder.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_applications.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_cyborg.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_drivers.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_judgement.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_scripts.dm" -#include "code\modules\antagonists\clockcult\clock_structures\_trap_object.dm" -#include "code\modules\antagonists\clockcult\clock_structures\ark_of_the_clockwork_justicar.dm" -#include "code\modules\antagonists\clockcult\clock_structures\clockwork_obelisk.dm" -#include "code\modules\antagonists\clockcult\clock_structures\eminence_spire.dm" -#include "code\modules\antagonists\clockcult\clock_structures\heralds_beacon.dm" -#include "code\modules\antagonists\clockcult\clock_structures\mania_motor.dm" -#include "code\modules\antagonists\clockcult\clock_structures\ocular_warden.dm" -#include "code\modules\antagonists\clockcult\clock_structures\prolonging_prism.dm" -#include "code\modules\antagonists\clockcult\clock_structures\ratvar_the_clockwork_justicar.dm" -#include "code\modules\antagonists\clockcult\clock_structures\reflector.dm" -#include "code\modules\antagonists\clockcult\clock_structures\stargazer.dm" -#include "code\modules\antagonists\clockcult\clock_structures\taunting_trail.dm" -#include "code\modules\antagonists\clockcult\clock_structures\wall_gear.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\lever.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor_mech.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\repeater.dm" -#include "code\modules\antagonists\clockcult\clock_structures\traps\brass_skewer.dm" -#include "code\modules\antagonists\clockcult\clock_structures\traps\power_null.dm" -#include "code\modules\antagonists\clockcult\clock_structures\traps\steam_vent.dm" -#include "code\modules\antagonists\collector\collector.dm" -#include "code\modules\antagonists\cult\blood_magic.dm" -#include "code\modules\antagonists\cult\cult.dm" -#include "code\modules\antagonists\cult\cult_comms.dm" -#include "code\modules\antagonists\cult\cult_items.dm" -#include "code\modules\antagonists\cult\cult_structures.dm" -#include "code\modules\antagonists\cult\ritual.dm" -#include "code\modules\antagonists\cult\rune_spawn_action.dm" -#include "code\modules\antagonists\cult\runes.dm" -#include "code\modules\antagonists\devil\devil.dm" -#include "code\modules\antagonists\devil\devil_helpers.dm" -#include "code\modules\antagonists\devil\imp\imp.dm" -#include "code\modules\antagonists\devil\sintouched\objectives.dm" -#include "code\modules\antagonists\devil\sintouched\sintouched.dm" -#include "code\modules\antagonists\devil\true_devil\_true_devil.dm" -#include "code\modules\antagonists\devil\true_devil\inventory.dm" -#include "code\modules\antagonists\disease\disease_abilities.dm" -#include "code\modules\antagonists\disease\disease_datum.dm" -#include "code\modules\antagonists\disease\disease_disease.dm" -#include "code\modules\antagonists\disease\disease_event.dm" -#include "code\modules\antagonists\disease\disease_mob.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_antag.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_book.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_effects.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_items.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_knowledge.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_magic.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_monster_antag.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_structures.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\ash_lore.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\flesh_lore.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\rust_lore.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\void_lore.dm" -#include "code\modules\antagonists\ert\ert.dm" -#include "code\modules\antagonists\fugitive\fugitive.dm" -#include "code\modules\antagonists\fugitive\fugitive_outfits.dm" -#include "code\modules\antagonists\fugitive\fugitive_ship.dm" -#include "code\modules\antagonists\fugitive\hunter.dm" -#include "code\modules\antagonists\greentext\greentext.dm" -#include "code\modules\antagonists\greybois\greybois.dm" -#include "code\modules\antagonists\highlander\highlander.dm" -#include "code\modules\antagonists\magic_servant\magic_servant.dm" -#include "code\modules\antagonists\monkey\monkey.dm" -#include "code\modules\antagonists\morph\morph.dm" -#include "code\modules\antagonists\morph\morph_antag.dm" -#include "code\modules\antagonists\nightmare\nightmare.dm" -#include "code\modules\antagonists\ninja\ninja.dm" -#include "code\modules\antagonists\nukeop\clownop.dm" -#include "code\modules\antagonists\nukeop\nukeop.dm" -#include "code\modules\antagonists\nukeop\equipment\borgchameleon.dm" -#include "code\modules\antagonists\nukeop\equipment\nuclear_challenge.dm" -#include "code\modules\antagonists\nukeop\equipment\nuclearbomb.dm" -#include "code\modules\antagonists\nukeop\equipment\pinpointer.dm" -#include "code\modules\antagonists\official\official.dm" -#include "code\modules\antagonists\overthrow\overthrow.dm" -#include "code\modules\antagonists\overthrow\overthrow_converter.dm" -#include "code\modules\antagonists\overthrow\overthrow_team.dm" -#include "code\modules\antagonists\pirate\pirate.dm" -#include "code\modules\antagonists\revenant\revenant.dm" -#include "code\modules\antagonists\revenant\revenant_abilities.dm" -#include "code\modules\antagonists\revenant\revenant_antag.dm" -#include "code\modules\antagonists\revenant\revenant_blight.dm" -#include "code\modules\antagonists\revenant\revenant_spawn_event.dm" -#include "code\modules\antagonists\revolution\revolution.dm" -#include "code\modules\antagonists\santa\santa.dm" -#include "code\modules\antagonists\separatist\separatist.dm" -#include "code\modules\antagonists\slaughter\slaughter.dm" -#include "code\modules\antagonists\slaughter\slaughter_antag.dm" -#include "code\modules\antagonists\slaughter\slaughterevent.dm" -#include "code\modules\antagonists\survivalist\survivalist.dm" -#include "code\modules\antagonists\swarmer\swarmer.dm" -#include "code\modules\antagonists\swarmer\swarmer_event.dm" -#include "code\modules\antagonists\traitor\datum_traitor.dm" -#include "code\modules\antagonists\traitor\syndicate_contract.dm" -#include "code\modules\antagonists\traitor\classes\ai.dm" -#include "code\modules\antagonists\traitor\classes\assassin.dm" -#include "code\modules\antagonists\traitor\classes\freeform.dm" -#include "code\modules\antagonists\traitor\classes\hijack.dm" -#include "code\modules\antagonists\traitor\classes\human.dm" -#include "code\modules\antagonists\traitor\classes\martyr.dm" -#include "code\modules\antagonists\traitor\classes\subterfuge.dm" -#include "code\modules\antagonists\traitor\classes\traitor_class.dm" -#include "code\modules\antagonists\traitor\equipment\contractor.dm" -#include "code\modules\antagonists\traitor\equipment\Malf_Modules.dm" -#include "code\modules\antagonists\traitor\IAA\internal_affairs.dm" -#include "code\modules\antagonists\valentines\heartbreaker.dm" -#include "code\modules\antagonists\valentines\valentine.dm" -#include "code\modules\antagonists\wishgranter\wishgranter.dm" -#include "code\modules\antagonists\wizard\wizard.dm" -#include "code\modules\antagonists\wizard\equipment\artefact.dm" -#include "code\modules\antagonists\wizard\equipment\soulstone.dm" -#include "code\modules\antagonists\wizard\equipment\spellbook.dm" -#include "code\modules\antagonists\xeno\xeno.dm" -#include "code\modules\arousal\arousal.dm" -#include "code\modules\arousal\genitals.dm" -#include "code\modules\arousal\genitals_sprite_accessories.dm" -#include "code\modules\arousal\organs\breasts.dm" -#include "code\modules\arousal\organs\penis.dm" -#include "code\modules\arousal\organs\testicles.dm" -#include "code\modules\arousal\organs\vagina.dm" -#include "code\modules\arousal\organs\womb.dm" -#include "code\modules\arousal\toys\dildos.dm" -#include "code\modules\assembly\assembly.dm" -#include "code\modules\assembly\bomb.dm" -#include "code\modules\assembly\doorcontrol.dm" -#include "code\modules\assembly\flash.dm" -#include "code\modules\assembly\health.dm" -#include "code\modules\assembly\helpers.dm" -#include "code\modules\assembly\holder.dm" -#include "code\modules\assembly\igniter.dm" -#include "code\modules\assembly\infrared.dm" -#include "code\modules\assembly\mousetrap.dm" -#include "code\modules\assembly\playback.dm" -#include "code\modules\assembly\proximity.dm" -#include "code\modules\assembly\shock_kit.dm" -#include "code\modules\assembly\signaler.dm" -#include "code\modules\assembly\timer.dm" -#include "code\modules\assembly\voice.dm" -#include "code\modules\asset_cache\asset_cache_client.dm" -#include "code\modules\asset_cache\asset_cache_item.dm" -#include "code\modules\asset_cache\asset_list.dm" -#include "code\modules\asset_cache\asset_list_items.dm" -#include "code\modules\asset_cache\transports\asset_transport.dm" -#include "code\modules\asset_cache\transports\webroot_transport.dm" -#include "code\modules\atmospherics\multiz.dm" -#include "code\modules\atmospherics\environmental\LINDA_fire.dm" -#include "code\modules\atmospherics\environmental\LINDA_system.dm" -#include "code\modules\atmospherics\environmental\LINDA_turf_tile.dm" -#include "code\modules\atmospherics\gasmixtures\gas_mixture.dm" -#include "code\modules\atmospherics\gasmixtures\gas_types.dm" -#include "code\modules\atmospherics\gasmixtures\immutable_mixtures.dm" -#include "code\modules\atmospherics\gasmixtures\reactions.dm" -#include "code\modules\atmospherics\machinery\airalarm.dm" -#include "code\modules\atmospherics\machinery\atmosmachinery.dm" -#include "code\modules\atmospherics\machinery\datum_pipeline.dm" -#include "code\modules\atmospherics\machinery\components\components_base.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\binary_devices.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\circulator.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\dp_vent_pump.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\passive_gate.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\pump.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\relief_valve.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\valve.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\volume_pump.dm" -#include "code\modules\atmospherics\machinery\components\trinary_devices\filter.dm" -#include "code\modules\atmospherics\machinery\components\trinary_devices\mixer.dm" -#include "code\modules\atmospherics\machinery\components\trinary_devices\trinary_devices.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\cryo.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\heat_exchanger.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\outlet_injector.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\passive_vent.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\portables_connector.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\relief_valve.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\tank.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\thermomachine.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\unary_devices.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\vent_pump.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\vent_scrubber.dm" -#include "code\modules\atmospherics\machinery\other\meter.dm" -#include "code\modules\atmospherics\machinery\other\miner.dm" -#include "code\modules\atmospherics\machinery\pipes\bluespace.dm" -#include "code\modules\atmospherics\machinery\pipes\layermanifold.dm" -#include "code\modules\atmospherics\machinery\pipes\manifold.dm" -#include "code\modules\atmospherics\machinery\pipes\manifold4w.dm" -#include "code\modules\atmospherics\machinery\pipes\mapping.dm" -#include "code\modules\atmospherics\machinery\pipes\pipes.dm" -#include "code\modules\atmospherics\machinery\pipes\simple.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\he_pipes.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\junction.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold4w.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\simple.dm" -#include "code\modules\atmospherics\machinery\portable\canister.dm" -#include "code\modules\atmospherics\machinery\portable\portable_atmospherics.dm" -#include "code\modules\atmospherics\machinery\portable\pump.dm" -#include "code\modules\atmospherics\machinery\portable\scrubber.dm" -#include "code\modules\awaymissions\away_props.dm" -#include "code\modules\awaymissions\bluespaceartillery.dm" -#include "code\modules\awaymissions\capture_the_flag.dm" -#include "code\modules\awaymissions\corpse.dm" -#include "code\modules\awaymissions\exile.dm" -#include "code\modules\awaymissions\gateway.dm" -#include "code\modules\awaymissions\pamphlet.dm" -#include "code\modules\awaymissions\signpost.dm" -#include "code\modules\awaymissions\super_secret_room.dm" -#include "code\modules\awaymissions\zlevel.dm" -#include "code\modules\awaymissions\mission_code\Academy.dm" -#include "code\modules\awaymissions\mission_code\Cabin.dm" -#include "code\modules\awaymissions\mission_code\caves.dm" -#include "code\modules\awaymissions\mission_code\centcomAway.dm" -#include "code\modules\awaymissions\mission_code\challenge.dm" -#include "code\modules\awaymissions\mission_code\jungleresort.dm" -#include "code\modules\awaymissions\mission_code\moonoutpost19.dm" -#include "code\modules\awaymissions\mission_code\murderdome.dm" -#include "code\modules\awaymissions\mission_code\research.dm" -#include "code\modules\awaymissions\mission_code\snowdin.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" -#include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" -#include "code\modules\awaymissions\mission_code\wildwest.dm" -#include "code\modules\buildmode\bm_mode.dm" -#include "code\modules\buildmode\buildmode.dm" -#include "code\modules\buildmode\buttons.dm" -#include "code\modules\buildmode\effects\line.dm" -#include "code\modules\buildmode\submodes\advanced.dm" -#include "code\modules\buildmode\submodes\area_edit.dm" -#include "code\modules\buildmode\submodes\basic.dm" -#include "code\modules\buildmode\submodes\boom.dm" -#include "code\modules\buildmode\submodes\copy.dm" -#include "code\modules\buildmode\submodes\fill.dm" -#include "code\modules\buildmode\submodes\mapgen.dm" -#include "code\modules\buildmode\submodes\throwing.dm" -#include "code\modules\buildmode\submodes\variable_edit.dm" -#include "code\modules\cargo\bounty.dm" -#include "code\modules\cargo\bounty_console.dm" -#include "code\modules\cargo\centcom_podlauncher.dm" -#include "code\modules\cargo\console.dm" -#include "code\modules\cargo\coupon.dm" -#include "code\modules\cargo\export_scanner.dm" -#include "code\modules\cargo\exports.dm" -#include "code\modules\cargo\expressconsole.dm" -#include "code\modules\cargo\gondolapod.dm" -#include "code\modules\cargo\order.dm" -#include "code\modules\cargo\packs.dm" -#include "code\modules\cargo\supplypod.dm" -#include "code\modules\cargo\supplypod_beacon.dm" -#include "code\modules\cargo\blackmarket\blackmarket_item.dm" -#include "code\modules\cargo\blackmarket\blackmarket_market.dm" -#include "code\modules\cargo\blackmarket\blackmarket_telepad.dm" -#include "code\modules\cargo\blackmarket\blackmarket_uplink.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\clothing.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\consumables.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\misc.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\tools.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\weapons.dm" -#include "code\modules\cargo\bounties\assistant.dm" -#include "code\modules\cargo\bounties\botany.dm" -#include "code\modules\cargo\bounties\chef.dm" -#include "code\modules\cargo\bounties\engineering.dm" -#include "code\modules\cargo\bounties\gardencook.dm" -#include "code\modules\cargo\bounties\item.dm" -#include "code\modules\cargo\bounties\mech.dm" -#include "code\modules\cargo\bounties\medical.dm" -#include "code\modules\cargo\bounties\mining.dm" -#include "code\modules\cargo\bounties\reagent.dm" -#include "code\modules\cargo\bounties\science.dm" -#include "code\modules\cargo\bounties\security.dm" -#include "code\modules\cargo\bounties\silly.dm" -#include "code\modules\cargo\bounties\slime.dm" -#include "code\modules\cargo\bounties\special.dm" -#include "code\modules\cargo\bounties\virus.dm" -#include "code\modules\cargo\exports\food_wine.dm" -#include "code\modules\cargo\exports\gear.dm" -#include "code\modules\cargo\exports\large_objects.dm" -#include "code\modules\cargo\exports\manifest.dm" -#include "code\modules\cargo\exports\materials.dm" -#include "code\modules\cargo\exports\organs_robotics.dm" -#include "code\modules\cargo\exports\parts.dm" -#include "code\modules\cargo\exports\seeds.dm" -#include "code\modules\cargo\exports\sheets.dm" -#include "code\modules\cargo\exports\tools.dm" -#include "code\modules\cargo\exports\weapons.dm" -#include "code\modules\cargo\packs\armory.dm" -#include "code\modules\cargo\packs\costumes_toys.dm" -#include "code\modules\cargo\packs\emergency.dm" -#include "code\modules\cargo\packs\engine.dm" -#include "code\modules\cargo\packs\engineering.dm" -#include "code\modules\cargo\packs\goodies.dm" -#include "code\modules\cargo\packs\livestock.dm" -#include "code\modules\cargo\packs\materials.dm" -#include "code\modules\cargo\packs\medical.dm" -#include "code\modules\cargo\packs\misc.dm" -#include "code\modules\cargo\packs\organic.dm" -#include "code\modules\cargo\packs\science.dm" -#include "code\modules\cargo\packs\security.dm" -#include "code\modules\cargo\packs\service.dm" -#include "code\modules\cargo\packs\vending.dm" -#include "code\modules\chatter\chatter.dm" -#include "code\modules\client\client_colour.dm" -#include "code\modules\client\client_defines.dm" -#include "code\modules\client\client_procs.dm" -#include "code\modules\client\message.dm" -#include "code\modules\client\player_details.dm" -#include "code\modules\client\preferences.dm" -#include "code\modules\client\preferences_savefile.dm" -#include "code\modules\client\preferences_toggles.dm" -#include "code\modules\client\preferences_vr.dm" -#include "code\modules\client\verbs\aooc.dm" -#include "code\modules\client\verbs\autobunker.dm" -#include "code\modules\client\verbs\etips.dm" -#include "code\modules\client\verbs\looc.dm" -#include "code\modules\client\verbs\minimap.dm" -#include "code\modules\client\verbs\ooc.dm" -#include "code\modules\client\verbs\ping.dm" -#include "code\modules\client\verbs\suicide.dm" -#include "code\modules\client\verbs\who.dm" -#include "code\modules\clothing\chameleon.dm" -#include "code\modules\clothing\clothing.dm" -#include "code\modules\clothing\ears\_ears.dm" -#include "code\modules\clothing\glasses\_glasses.dm" -#include "code\modules\clothing\glasses\disablerglasses.dm" -#include "code\modules\clothing\glasses\engine_goggles.dm" -#include "code\modules\clothing\glasses\hud.dm" -#include "code\modules\clothing\glasses\phantomthief.dm" -#include "code\modules\clothing\gloves\_gloves.dm" -#include "code\modules\clothing\gloves\boxing.dm" -#include "code\modules\clothing\gloves\color.dm" -#include "code\modules\clothing\gloves\miscellaneous.dm" -#include "code\modules\clothing\gloves\ring.dm" -#include "code\modules\clothing\gloves\tacklers.dm" -#include "code\modules\clothing\head\_head.dm" -#include "code\modules\clothing\head\beanie.dm" -#include "code\modules\clothing\head\collectable.dm" -#include "code\modules\clothing\head\hardhat.dm" -#include "code\modules\clothing\head\helmet.dm" -#include "code\modules\clothing\head\jobs.dm" -#include "code\modules\clothing\head\misc.dm" -#include "code\modules\clothing\head\misc_special.dm" -#include "code\modules\clothing\head\soft_caps.dm" -#include "code\modules\clothing\masks\_masks.dm" -#include "code\modules\clothing\masks\boxing.dm" -#include "code\modules\clothing\masks\breath.dm" -#include "code\modules\clothing\masks\cluwne.dm" -#include "code\modules\clothing\masks\gasmask.dm" -#include "code\modules\clothing\masks\hailer.dm" -#include "code\modules\clothing\masks\miscellaneous.dm" -#include "code\modules\clothing\neck\_neck.dm" -#include "code\modules\clothing\outfits\ert.dm" -#include "code\modules\clothing\outfits\event.dm" -#include "code\modules\clothing\outfits\plasmaman.dm" -#include "code\modules\clothing\outfits\standard.dm" -#include "code\modules\clothing\outfits\vr.dm" -#include "code\modules\clothing\outfits\vv_outfit.dm" -#include "code\modules\clothing\shoes\_shoes.dm" -#include "code\modules\clothing\shoes\bananashoes.dm" -#include "code\modules\clothing\shoes\cluwne.dm" -#include "code\modules\clothing\shoes\colour.dm" -#include "code\modules\clothing\shoes\magboots.dm" -#include "code\modules\clothing\shoes\miscellaneous.dm" -#include "code\modules\clothing\shoes\taeclowndo.dm" -#include "code\modules\clothing\spacesuits\_spacesuits.dm" -#include "code\modules\clothing\spacesuits\chronosuit.dm" -#include "code\modules\clothing\spacesuits\hardsuit.dm" -#include "code\modules\clothing\spacesuits\miscellaneous.dm" -#include "code\modules\clothing\spacesuits\plasmamen.dm" -#include "code\modules\clothing\spacesuits\syndi.dm" -#include "code\modules\clothing\suits\_suits.dm" -#include "code\modules\clothing\suits\armor.dm" -#include "code\modules\clothing\suits\bio.dm" -#include "code\modules\clothing\suits\cloaks.dm" -#include "code\modules\clothing\suits\jobs.dm" -#include "code\modules\clothing\suits\labcoat.dm" -#include "code\modules\clothing\suits\miscellaneous.dm" -#include "code\modules\clothing\suits\reactive_armour.dm" -#include "code\modules\clothing\suits\toggles.dm" -#include "code\modules\clothing\suits\utility.dm" -#include "code\modules\clothing\suits\wiz_robe.dm" -#include "code\modules\clothing\under\_under.dm" -#include "code\modules\clothing\under\accessories.dm" -#include "code\modules\clothing\under\cluwne.dm" -#include "code\modules\clothing\under\color.dm" -#include "code\modules\clothing\under\costume.dm" -#include "code\modules\clothing\under\miscellaneous.dm" -#include "code\modules\clothing\under\pants.dm" -#include "code\modules\clothing\under\shorts.dm" -#include "code\modules\clothing\under\skirt_dress.dm" -#include "code\modules\clothing\under\suits.dm" -#include "code\modules\clothing\under\sweaters.dm" -#include "code\modules\clothing\under\syndicate.dm" -#include "code\modules\clothing\under\trek.dm" -#include "code\modules\clothing\under\jobs\cargo.dm" -#include "code\modules\clothing\under\jobs\centcom.dm" -#include "code\modules\clothing\under\jobs\command.dm" -#include "code\modules\clothing\under\jobs\engineering.dm" -#include "code\modules\clothing\under\jobs\medical.dm" -#include "code\modules\clothing\under\jobs\rnd.dm" -#include "code\modules\clothing\under\jobs\security.dm" -#include "code\modules\clothing\under\jobs\civilian\civilian.dm" -#include "code\modules\clothing\under\jobs\civilian\clown_mime.dm" -#include "code\modules\clothing\under\jobs\civilian\curator.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\civilian_service.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\engineering.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\medsci.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\security.dm" -#include "code\modules\detectivework\detective_work.dm" -#include "code\modules\detectivework\evidence.dm" -#include "code\modules\detectivework\scanner.dm" -#include "code\modules\economy\_economy.dm" -#include "code\modules\economy\account.dm" -#include "code\modules\economy\paystand.dm" -#include "code\modules\emoji\emoji_parse.dm" -#include "code\modules\error_handler\error_handler.dm" -#include "code\modules\error_handler\error_viewer.dm" -#include "code\modules\events\_event.dm" -#include "code\modules\events\abductor.dm" -#include "code\modules\events\alien_infestation.dm" -#include "code\modules\events\anomaly.dm" -#include "code\modules\events\anomaly_bluespace.dm" -#include "code\modules\events\anomaly_flux.dm" -#include "code\modules\events\anomaly_grav.dm" -#include "code\modules\events\anomaly_pyro.dm" -#include "code\modules\events\anomaly_vortex.dm" -#include "code\modules\events\aurora_caelus.dm" -#include "code\modules\events\blob.dm" -#include "code\modules\events\brain_trauma.dm" -#include "code\modules\events\brand_intelligence.dm" -#include "code\modules\events\bureaucratic_error.dm" -#include "code\modules\events\camerafailure.dm" -#include "code\modules\events\carp_migration.dm" -#include "code\modules\events\cat_surgeon.dm" -#include "code\modules\events\communications_blackout.dm" -#include "code\modules\events\devil.dm" -#include "code\modules\events\disease_outbreak.dm" -#include "code\modules\events\dust.dm" -#include "code\modules\events\electrical_storm.dm" -#include "code\modules\events\fake_virus.dm" -#include "code\modules\events\false_alarm.dm" -#include "code\modules\events\floorcluwne.dm" -#include "code\modules\events\fugitive_spawning.dm" -#include "code\modules\events\ghost_role.dm" -#include "code\modules\events\grid_check.dm" -#include "code\modules\events\heart_attack.dm" -#include "code\modules\events\high_priority_bounty.dm" -#include "code\modules\events\immovable_rod.dm" -#include "code\modules\events\ion_storm.dm" -#include "code\modules\events\major_dust.dm" -#include "code\modules\events\mass_hallucination.dm" -#include "code\modules\events\meateor_wave.dm" -#include "code\modules\events\meteor_wave.dm" -#include "code\modules\events\mice_migration.dm" -#include "code\modules\events\nightmare.dm" -#include "code\modules\events\operative.dm" -#include "code\modules\events\pirates.dm" -#include "code\modules\events\portal_storm.dm" -#include "code\modules\events\prison_break.dm" -#include "code\modules\events\processor_overload.dm" -#include "code\modules\events\radiation_storm.dm" -#include "code\modules\events\sentience.dm" -#include "code\modules\events\shuttle_loan.dm" -#include "code\modules\events\spacevine.dm" -#include "code\modules\events\spider_infestation.dm" -#include "code\modules\events\spontaneous_appendicitis.dm" -#include "code\modules\events\stray_cargo.dm" -#include "code\modules\events\supermatter_surge.dm" -#include "code\modules\events\supernova.dm" -#include "code\modules\events\travelling_trader.dm" -#include "code\modules\events\vent_clog.dm" -#include "code\modules\events\wisdomcow.dm" -#include "code\modules\events\wormholes.dm" -#include "code\modules\events\holiday\halloween.dm" -#include "code\modules\events\holiday\vday.dm" -#include "code\modules\events\holiday\xmas.dm" -#include "code\modules\events\wizard\aid.dm" -#include "code\modules\events\wizard\blobies.dm" -#include "code\modules\events\wizard\curseditems.dm" -#include "code\modules\events\wizard\departmentrevolt.dm" -#include "code\modules\events\wizard\embeddies.dm" -#include "code\modules\events\wizard\fakeexplosion.dm" -#include "code\modules\events\wizard\ghost.dm" -#include "code\modules\events\wizard\greentext.dm" -#include "code\modules\events\wizard\imposter.dm" -#include "code\modules\events\wizard\invincible.dm" -#include "code\modules\events\wizard\lava.dm" -#include "code\modules\events\wizard\madness.dm" -#include "code\modules\events\wizard\magicarp.dm" -#include "code\modules\events\wizard\petsplosion.dm" -#include "code\modules\events\wizard\race.dm" -#include "code\modules\events\wizard\rpgloot.dm" -#include "code\modules\events\wizard\shuffle.dm" -#include "code\modules\events\wizard\summons.dm" -#include "code\modules\fields\fields.dm" -#include "code\modules\fields\gravity.dm" -#include "code\modules\fields\infinite_void.dm" -#include "code\modules\fields\peaceborg_dampener.dm" -#include "code\modules\fields\timestop.dm" -#include "code\modules\fields\turf_objects.dm" -#include "code\modules\flufftext\Dreaming.dm" -#include "code\modules\flufftext\Hallucination.dm" -#include "code\modules\food_and_drinks\autobottler.dm" -#include "code\modules\food_and_drinks\food.dm" -#include "code\modules\food_and_drinks\pizzabox.dm" -#include "code\modules\food_and_drinks\drinks\drinks.dm" -#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" -#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" -#include "code\modules\food_and_drinks\food\condiment.dm" -#include "code\modules\food_and_drinks\food\customizables.dm" -#include "code\modules\food_and_drinks\food\snacks.dm" -#include "code\modules\food_and_drinks\food\snacks_bread.dm" -#include "code\modules\food_and_drinks\food\snacks_burgers.dm" -#include "code\modules\food_and_drinks\food\snacks_cake.dm" -#include "code\modules\food_and_drinks\food\snacks_egg.dm" -#include "code\modules\food_and_drinks\food\snacks_frozen.dm" -#include "code\modules\food_and_drinks\food\snacks_meat.dm" -#include "code\modules\food_and_drinks\food\snacks_other.dm" -#include "code\modules\food_and_drinks\food\snacks_pastry.dm" -#include "code\modules\food_and_drinks\food\snacks_pie.dm" -#include "code\modules\food_and_drinks\food\snacks_pizza.dm" -#include "code\modules\food_and_drinks\food\snacks_salad.dm" -#include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm" -#include "code\modules\food_and_drinks\food\snacks_soup.dm" -#include "code\modules\food_and_drinks\food\snacks_spaghetti.dm" -#include "code\modules\food_and_drinks\food\snacks_sushi.dm" -#include "code\modules\food_and_drinks\food\snacks_vend.dm" -#include "code\modules\food_and_drinks\food\snacks\dough.dm" -#include "code\modules\food_and_drinks\food\snacks\meat.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\grill.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" -#include "code\modules\food_and_drinks\recipes\drinks_recipes.dm" -#include "code\modules\food_and_drinks\recipes\food_mixtures.dm" -#include "code\modules\food_and_drinks\recipes\processor_recipes.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_bread.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_burger.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_cake.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_donut.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_egg.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_frozen.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_meat.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_mexican.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_misc.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pastry.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pies_sweets.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pizza.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_salad.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_seafood.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" -#include "code\modules\games\cas.dm" -#include "code\modules\games\unum.dm" -#include "code\modules\holiday\easter.dm" -#include "code\modules\holiday\holidays.dm" -#include "code\modules\holiday\halloween\bartholomew.dm" -#include "code\modules\holiday\halloween\jacqueen.dm" -#include "code\modules\holodeck\area_copy.dm" -#include "code\modules\holodeck\computer.dm" -#include "code\modules\holodeck\holo_effect.dm" -#include "code\modules\holodeck\items.dm" -#include "code\modules\holodeck\mobs.dm" -#include "code\modules\holodeck\turfs.dm" -#include "code\modules\hydroponics\biogenerator.dm" -#include "code\modules\hydroponics\fermenting_barrel.dm" -#include "code\modules\hydroponics\gene_modder.dm" -#include "code\modules\hydroponics\grown.dm" -#include "code\modules\hydroponics\growninedible.dm" -#include "code\modules\hydroponics\hydroitemdefines.dm" -#include "code\modules\hydroponics\hydroponics.dm" -#include "code\modules\hydroponics\hydroponics_chemreact.dm" -#include "code\modules\hydroponics\plant_genes.dm" -#include "code\modules\hydroponics\sample.dm" -#include "code\modules\hydroponics\seed_extractor.dm" -#include "code\modules\hydroponics\seeds.dm" -#include "code\modules\hydroponics\beekeeping\beebox.dm" -#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" -#include "code\modules\hydroponics\beekeeping\honey_frame.dm" -#include "code\modules\hydroponics\beekeeping\honeycomb.dm" -#include "code\modules\hydroponics\grown\ambrosia.dm" -#include "code\modules\hydroponics\grown\apple.dm" -#include "code\modules\hydroponics\grown\banana.dm" -#include "code\modules\hydroponics\grown\beans.dm" -#include "code\modules\hydroponics\grown\berries.dm" -#include "code\modules\hydroponics\grown\cannabis.dm" -#include "code\modules\hydroponics\grown\cereals.dm" -#include "code\modules\hydroponics\grown\chili.dm" -#include "code\modules\hydroponics\grown\citrus.dm" -#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" -#include "code\modules\hydroponics\grown\corn.dm" -#include "code\modules\hydroponics\grown\cotton.dm" -#include "code\modules\hydroponics\grown\eggplant.dm" -#include "code\modules\hydroponics\grown\flowers.dm" -#include "code\modules\hydroponics\grown\garlic.dm" -#include "code\modules\hydroponics\grown\grass_carpet.dm" -#include "code\modules\hydroponics\grown\kudzu.dm" -#include "code\modules\hydroponics\grown\melon.dm" -#include "code\modules\hydroponics\grown\misc.dm" -#include "code\modules\hydroponics\grown\mushrooms.dm" -#include "code\modules\hydroponics\grown\nettle.dm" -#include "code\modules\hydroponics\grown\onion.dm" -#include "code\modules\hydroponics\grown\peach.dm" -#include "code\modules\hydroponics\grown\peanuts.dm" -#include "code\modules\hydroponics\grown\peas.dm" -#include "code\modules\hydroponics\grown\pineapple.dm" -#include "code\modules\hydroponics\grown\potato.dm" -#include "code\modules\hydroponics\grown\pumpkin.dm" -#include "code\modules\hydroponics\grown\random.dm" -#include "code\modules\hydroponics\grown\replicapod.dm" -#include "code\modules\hydroponics\grown\root.dm" -#include "code\modules\hydroponics\grown\tea_coffee.dm" -#include "code\modules\hydroponics\grown\tobacco.dm" -#include "code\modules\hydroponics\grown\tomato.dm" -#include "code\modules\hydroponics\grown\towercap.dm" -#include "code\modules\instruments\instrument_data\_instrument_data.dm" -#include "code\modules\instruments\instrument_data\_instrument_key.dm" -#include "code\modules\instruments\instrument_data\brass.dm" -#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" -#include "code\modules\instruments\instrument_data\fun.dm" -#include "code\modules\instruments\instrument_data\guitar.dm" -#include "code\modules\instruments\instrument_data\hardcoded.dm" -#include "code\modules\instruments\instrument_data\organ.dm" -#include "code\modules\instruments\instrument_data\piano.dm" -#include "code\modules\instruments\instrument_data\synth_tones.dm" -#include "code\modules\instruments\instruments\item.dm" -#include "code\modules\instruments\instruments\stationary.dm" -#include "code\modules\instruments\songs\_song.dm" -#include "code\modules\instruments\songs\editor.dm" -#include "code\modules\instruments\songs\play_legacy.dm" -#include "code\modules\instruments\songs\play_synthesized.dm" -#include "code\modules\integrated_electronics\_defines.dm" -#include "code\modules\integrated_electronics\core\analyzer.dm" -#include "code\modules\integrated_electronics\core\assemblies.dm" -#include "code\modules\integrated_electronics\core\debugger.dm" -#include "code\modules\integrated_electronics\core\detailer.dm" -#include "code\modules\integrated_electronics\core\helpers.dm" -#include "code\modules\integrated_electronics\core\integrated_circuit.dm" -#include "code\modules\integrated_electronics\core\pins.dm" -#include "code\modules\integrated_electronics\core\printer.dm" -#include "code\modules\integrated_electronics\core\saved_circuits.dm" -#include "code\modules\integrated_electronics\core\wirer.dm" -#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\index_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\selfref_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm" -#include "code\modules\integrated_electronics\passive\passive.dm" -#include "code\modules\integrated_electronics\passive\power.dm" -#include "code\modules\integrated_electronics\subtypes\access.dm" -#include "code\modules\integrated_electronics\subtypes\arithmetic.dm" -#include "code\modules\integrated_electronics\subtypes\atmospherics.dm" -#include "code\modules\integrated_electronics\subtypes\converters.dm" -#include "code\modules\integrated_electronics\subtypes\data_transfer.dm" -#include "code\modules\integrated_electronics\subtypes\input.dm" -#include "code\modules\integrated_electronics\subtypes\lists.dm" -#include "code\modules\integrated_electronics\subtypes\logic.dm" -#include "code\modules\integrated_electronics\subtypes\manipulation.dm" -#include "code\modules\integrated_electronics\subtypes\memory.dm" -#include "code\modules\integrated_electronics\subtypes\output.dm" -#include "code\modules\integrated_electronics\subtypes\power.dm" -#include "code\modules\integrated_electronics\subtypes\reagents.dm" -#include "code\modules\integrated_electronics\subtypes\smart.dm" -#include "code\modules\integrated_electronics\subtypes\text.dm" -#include "code\modules\integrated_electronics\subtypes\time.dm" -#include "code\modules\integrated_electronics\subtypes\trig.dm" -#include "code\modules\integrated_electronics\subtypes\weaponized.dm" -#include "code\modules\jobs\access.dm" -#include "code\modules\jobs\job_exp.dm" -#include "code\modules\jobs\job_report.dm" -#include "code\modules\jobs\jobs.dm" -#include "code\modules\jobs\job_types\_job.dm" -#include "code\modules\jobs\job_types\ai.dm" -#include "code\modules\jobs\job_types\assistant.dm" -#include "code\modules\jobs\job_types\atmospheric_technician.dm" -#include "code\modules\jobs\job_types\bartender.dm" -#include "code\modules\jobs\job_types\botanist.dm" -#include "code\modules\jobs\job_types\captain.dm" -#include "code\modules\jobs\job_types\cargo_technician.dm" -#include "code\modules\jobs\job_types\chaplain.dm" -#include "code\modules\jobs\job_types\chemist.dm" -#include "code\modules\jobs\job_types\chief_engineer.dm" -#include "code\modules\jobs\job_types\chief_medical_officer.dm" -#include "code\modules\jobs\job_types\clown.dm" -#include "code\modules\jobs\job_types\cook.dm" -#include "code\modules\jobs\job_types\curator.dm" -#include "code\modules\jobs\job_types\cyborg.dm" -#include "code\modules\jobs\job_types\detective.dm" -#include "code\modules\jobs\job_types\geneticist.dm" -#include "code\modules\jobs\job_types\head_of_personnel.dm" -#include "code\modules\jobs\job_types\head_of_security.dm" -#include "code\modules\jobs\job_types\janitor.dm" -#include "code\modules\jobs\job_types\lawyer.dm" -#include "code\modules\jobs\job_types\medical_doctor.dm" -#include "code\modules\jobs\job_types\mime.dm" -#include "code\modules\jobs\job_types\paramedic.dm" -#include "code\modules\jobs\job_types\quartermaster.dm" -#include "code\modules\jobs\job_types\research_director.dm" -#include "code\modules\jobs\job_types\roboticist.dm" -#include "code\modules\jobs\job_types\scientist.dm" -#include "code\modules\jobs\job_types\security_officer.dm" -#include "code\modules\jobs\job_types\shaft_miner.dm" -#include "code\modules\jobs\job_types\station_engineer.dm" -#include "code\modules\jobs\job_types\virologist.dm" -#include "code\modules\jobs\job_types\warden.dm" -#include "code\modules\keybindings\bindings_atom.dm" -#include "code\modules\keybindings\bindings_client.dm" -#include "code\modules\keybindings\focus.dm" -#include "code\modules\keybindings\setup.dm" -#include "code\modules\keybindings\keybind\__defines.dm" -#include "code\modules\keybindings\keybind\_keybind.dm" -#include "code\modules\keybindings\keybind\admin.dm" -#include "code\modules\keybindings\keybind\carbon.dm" -#include "code\modules\keybindings\keybind\client.dm" -#include "code\modules\keybindings\keybind\combat.dm" -#include "code\modules\keybindings\keybind\communication.dm" -#include "code\modules\keybindings\keybind\emote.dm" -#include "code\modules\keybindings\keybind\human.dm" -#include "code\modules\keybindings\keybind\living.dm" -#include "code\modules\keybindings\keybind\mob.dm" -#include "code\modules\keybindings\keybind\movement.dm" -#include "code\modules\keybindings\keybind\robot.dm" -#include "code\modules\keybindings\keybind\targeting.dm" -#include "code\modules\language\aphasia.dm" -#include "code\modules\language\arachnid.dm" -#include "code\modules\language\beachbum.dm" -#include "code\modules\language\codespeak.dm" -#include "code\modules\language\common.dm" -#include "code\modules\language\draconic.dm" -#include "code\modules\language\drone.dm" -#include "code\modules\language\dwarven.dm" -#include "code\modules\language\language.dm" -#include "code\modules\language\language_holder.dm" -#include "code\modules\language\language_menu.dm" -#include "code\modules\language\machine.dm" -#include "code\modules\language\monkey.dm" -#include "code\modules\language\mushroom.dm" -#include "code\modules\language\narsian.dm" -#include "code\modules\language\ratvarian.dm" -#include "code\modules\language\signlanguage.dm" -#include "code\modules\language\slime.dm" -#include "code\modules\language\swarmer.dm" -#include "code\modules\language\sylvan.dm" -#include "code\modules\language\vampiric.dm" -#include "code\modules\language\voltaic.dm" -#include "code\modules\language\xenocommon.dm" -#include "code\modules\library\lib_codex_gigas.dm" -#include "code\modules\library\lib_items.dm" -#include "code\modules\library\lib_machines.dm" -#include "code\modules\library\random_books.dm" -#include "code\modules\library\soapstone.dm" -#include "code\modules\lighting\emissive_blocker.dm" -#include "code\modules\lighting\lighting_area.dm" -#include "code\modules\lighting\lighting_atom.dm" -#include "code\modules\lighting\lighting_corner.dm" -#include "code\modules\lighting\lighting_object.dm" -#include "code\modules\lighting\lighting_setup.dm" -#include "code\modules\lighting\lighting_source.dm" -#include "code\modules\lighting\lighting_turf.dm" -#include "code\modules\mafia\_defines.dm" -#include "code\modules\mafia\controller.dm" -#include "code\modules\mafia\map_pieces.dm" -#include "code\modules\mafia\outfits.dm" -#include "code\modules\mafia\roles.dm" -#include "code\modules\mapping\map_config.dm" -#include "code\modules\mapping\map_orientation_pattern.dm" -#include "code\modules\mapping\map_template.dm" -#include "code\modules\mapping\minimaps.dm" -#include "code\modules\mapping\preloader.dm" -#include "code\modules\mapping\reader.dm" -#include "code\modules\mapping\ruins.dm" -#include "code\modules\mapping\verify.dm" -#include "code\modules\mapping\mapping_helpers\_mapping_helpers.dm" -#include "code\modules\mapping\mapping_helpers\baseturf.dm" -#include "code\modules\mapping\mapping_helpers\network_builder\_network_builder.dm" -#include "code\modules\mapping\mapping_helpers\network_builder\atmos_pipe.dm" -#include "code\modules\mapping\mapping_helpers\network_builder\power_cables.dm" -#include "code\modules\mapping\space_management\multiz_helpers.dm" -#include "code\modules\mapping\space_management\space_level.dm" -#include "code\modules\mapping\space_management\space_reservation.dm" -#include "code\modules\mapping\space_management\space_transition.dm" -#include "code\modules\mapping\space_management\traits.dm" -#include "code\modules\mapping\space_management\zlevel_manager.dm" -#include "code\modules\mining\abandoned_crates.dm" -#include "code\modules\mining\aux_base.dm" -#include "code\modules\mining\aux_base_camera.dm" -#include "code\modules\mining\fulton.dm" -#include "code\modules\mining\machine_processing.dm" -#include "code\modules\mining\machine_redemption.dm" -#include "code\modules\mining\machine_silo.dm" -#include "code\modules\mining\machine_stacking.dm" -#include "code\modules\mining\machine_unloading.dm" -#include "code\modules\mining\machine_vending.dm" -#include "code\modules\mining\mine_items.dm" -#include "code\modules\mining\minebot.dm" -#include "code\modules\mining\mint.dm" -#include "code\modules\mining\money_bag.dm" -#include "code\modules\mining\ores_coins.dm" -#include "code\modules\mining\point_bank.dm" -#include "code\modules\mining\satchel_ore_boxdm.dm" -#include "code\modules\mining\shelters.dm" -#include "code\modules\mining\equipment\explorer_gear.dm" -#include "code\modules\mining\equipment\goliath_hide.dm" -#include "code\modules\mining\equipment\kinetic_crusher.dm" -#include "code\modules\mining\equipment\lazarus_injector.dm" -#include "code\modules\mining\equipment\marker_beacons.dm" -#include "code\modules\mining\equipment\mineral_scanner.dm" -#include "code\modules\mining\equipment\mining_tools.dm" -#include "code\modules\mining\equipment\regenerative_core.dm" -#include "code\modules\mining\equipment\resonator.dm" -#include "code\modules\mining\equipment\survival_pod.dm" -#include "code\modules\mining\equipment\vendor_items.dm" -#include "code\modules\mining\equipment\wormhole_jaunter.dm" -#include "code\modules\mining\laborcamp\laborshuttle.dm" -#include "code\modules\mining\laborcamp\laborstacker.dm" -#include "code\modules\mining\lavaland\ash_flora.dm" -#include "code\modules\mining\lavaland\necropolis_chests.dm" -#include "code\modules\mining\lavaland\ruins\gym.dm" -#include "code\modules\mob\clickdelay.dm" -#include "code\modules\mob\death.dm" -#include "code\modules\mob\emote.dm" -#include "code\modules\mob\innate_abilities.dm" -#include "code\modules\mob\inventory.dm" -#include "code\modules\mob\login.dm" -#include "code\modules\mob\logout.dm" -#include "code\modules\mob\mob.dm" -#include "code\modules\mob\mob_defines.dm" -#include "code\modules\mob\mob_helpers.dm" -#include "code\modules\mob\mob_movement.dm" -#include "code\modules\mob\mob_transformation_simple.dm" -#include "code\modules\mob\say.dm" -#include "code\modules\mob\say_vr.dm" -#include "code\modules\mob\status_procs.dm" -#include "code\modules\mob\transform_procs.dm" -#include "code\modules\mob\typing_indicator.dm" -#include "code\modules\mob\update_icons.dm" -#include "code\modules\mob\camera\camera.dm" -#include "code\modules\mob\dead\dead.dm" -#include "code\modules\mob\dead\new_player\login.dm" -#include "code\modules\mob\dead\new_player\logout.dm" -#include "code\modules\mob\dead\new_player\new_player.dm" -#include "code\modules\mob\dead\new_player\poll.dm" -#include "code\modules\mob\dead\new_player\preferences_setup.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\_sprite_accessories.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\alienpeople.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\arachnid.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\body_markings.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\caps.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\Citadel_Snowflake.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\ears.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\frills.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\hair_head.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\horns.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\ipc_synths.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\spines.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\underwear.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\wings.dm" -#include "code\modules\mob\dead\observer\login.dm" -#include "code\modules\mob\dead\observer\logout.dm" -#include "code\modules\mob\dead\observer\notificationprefs.dm" -#include "code\modules\mob\dead\observer\observer.dm" -#include "code\modules\mob\dead\observer\observer_movement.dm" -#include "code\modules\mob\dead\observer\orbit.dm" -#include "code\modules\mob\dead\observer\respawn.dm" -#include "code\modules\mob\dead\observer\say.dm" -#include "code\modules\mob\living\blood.dm" -#include "code\modules\mob\living\bloodcrawl.dm" -#include "code\modules\mob\living\clickdelay.dm" -#include "code\modules\mob\living\damage_procs.dm" -#include "code\modules\mob\living\death.dm" -#include "code\modules\mob\living\emote.dm" -#include "code\modules\mob\living\life.dm" -#include "code\modules\mob\living\living.dm" -#include "code\modules\mob\living\living_active_block.dm" -#include "code\modules\mob\living\living_active_parry.dm" -#include "code\modules\mob\living\living_block.dm" -#include "code\modules\mob\living\living_blocking_parrying.dm" -#include "code\modules\mob\living\living_defense.dm" -#include "code\modules\mob\living\living_defines.dm" -#include "code\modules\mob\living\living_mobility.dm" -#include "code\modules\mob\living\living_movement.dm" -#include "code\modules\mob\living\living_signals.dm" -#include "code\modules\mob\living\living_sprint.dm" -#include "code\modules\mob\living\login.dm" -#include "code\modules\mob\living\logout.dm" -#include "code\modules\mob\living\say.dm" -#include "code\modules\mob\living\stamina_buffer.dm" -#include "code\modules\mob\living\status_procs.dm" -#include "code\modules\mob\living\taste.dm" -#include "code\modules\mob\living\update_icons.dm" -#include "code\modules\mob\living\ventcrawling.dm" -#include "code\modules\mob\living\brain\brain.dm" -#include "code\modules\mob\living\brain\brain_item.dm" -#include "code\modules\mob\living\brain\death.dm" -#include "code\modules\mob\living\brain\emote.dm" -#include "code\modules\mob\living\brain\life.dm" -#include "code\modules\mob\living\brain\MMI.dm" -#include "code\modules\mob\living\brain\posibrain.dm" -#include "code\modules\mob\living\brain\say.dm" -#include "code\modules\mob\living\brain\status_procs.dm" -#include "code\modules\mob\living\carbon\carbon.dm" -#include "code\modules\mob\living\carbon\carbon_active_parry.dm" -#include "code\modules\mob\living\carbon\carbon_defense.dm" -#include "code\modules\mob\living\carbon\carbon_defines.dm" -#include "code\modules\mob\living\carbon\carbon_movement.dm" -#include "code\modules\mob\living\carbon\carbon_sprint.dm" -#include "code\modules\mob\living\carbon\damage_procs.dm" -#include "code\modules\mob\living\carbon\death.dm" -#include "code\modules\mob\living\carbon\emote.dm" -#include "code\modules\mob\living\carbon\examine.dm" -#include "code\modules\mob\living\carbon\handle_corruption.dm" -#include "code\modules\mob\living\carbon\inventory.dm" -#include "code\modules\mob\living\carbon\life.dm" -#include "code\modules\mob\living\carbon\say.dm" -#include "code\modules\mob\living\carbon\status_procs.dm" -#include "code\modules\mob\living\carbon\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\alien.dm" -#include "code\modules\mob\living\carbon\alien\alien_defense.dm" -#include "code\modules\mob\living\carbon\alien\damage_procs.dm" -#include "code\modules\mob\living\carbon\alien\death.dm" -#include "code\modules\mob\living\carbon\alien\emote.dm" -#include "code\modules\mob\living\carbon\alien\life.dm" -#include "code\modules\mob\living\carbon\alien\login.dm" -#include "code\modules\mob\living\carbon\alien\logout.dm" -#include "code\modules\mob\living\carbon\alien\organs.dm" -#include "code\modules\mob\living\carbon\alien\say.dm" -#include "code\modules\mob\living\carbon\alien\screen.dm" -#include "code\modules\mob\living\carbon\alien\status_procs.dm" -#include "code\modules\mob\living\carbon\alien\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\death.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\praetorian.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" -#include "code\modules\mob\living\carbon\alien\larva\death.dm" -#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" -#include "code\modules\mob\living\carbon\alien\larva\life.dm" -#include "code\modules\mob\living\carbon\alien\larva\powers.dm" -#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" -#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" -#include "code\modules\mob\living\carbon\human\damage_procs.dm" -#include "code\modules\mob\living\carbon\human\death.dm" -#include "code\modules\mob\living\carbon\human\dummy.dm" -#include "code\modules\mob\living\carbon\human\emote.dm" -#include "code\modules\mob\living\carbon\human\examine.dm" -#include "code\modules\mob\living\carbon\human\human.dm" -#include "code\modules\mob\living\carbon\human\human_block.dm" -#include "code\modules\mob\living\carbon\human\human_defense.dm" -#include "code\modules\mob\living\carbon\human\human_defines.dm" -#include "code\modules\mob\living\carbon\human\human_helpers.dm" -#include "code\modules\mob\living\carbon\human\human_mobility.dm" -#include "code\modules\mob\living\carbon\human\human_movement.dm" -#include "code\modules\mob\living\carbon\human\inventory.dm" -#include "code\modules\mob\living\carbon\human\life.dm" -#include "code\modules\mob\living\carbon\human\login.dm" -#include "code\modules\mob\living\carbon\human\physiology.dm" -#include "code\modules\mob\living\carbon\human\say.dm" -#include "code\modules\mob\living\carbon\human\species.dm" -#include "code\modules\mob\living\carbon\human\status_procs.dm" -#include "code\modules\mob\living\carbon\human\typing_indicator.dm" -#include "code\modules\mob\living\carbon\human\update_icons.dm" -#include "code\modules\mob\living\carbon\human\innate_abilities\blobform.dm" -#include "code\modules\mob\living\carbon\human\innate_abilities\customization.dm" -#include "code\modules\mob\living\carbon\human\innate_abilities\limb_regeneration.dm" -#include "code\modules\mob\living\carbon\human\species_types\abductor.dm" -#include "code\modules\mob\living\carbon\human\species_types\android.dm" -#include "code\modules\mob\living\carbon\human\species_types\angel.dm" -#include "code\modules\mob\living\carbon\human\species_types\anthropomorph.dm" -#include "code\modules\mob\living\carbon\human\species_types\arachnid.dm" -#include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" -#include "code\modules\mob\living\carbon\human\species_types\corporate.dm" -#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" -#include "code\modules\mob\living\carbon\human\species_types\dwarves.dm" -#include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" -#include "code\modules\mob\living\carbon\human\species_types\felinid.dm" -#include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\golems.dm" -#include "code\modules\mob\living\carbon\human\species_types\humans.dm" -#include "code\modules\mob\living\carbon\human\species_types\ipc.dm" -#include "code\modules\mob\living\carbon\human\species_types\jellypeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\lizardpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\mushpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\plasmamen.dm" -#include "code\modules\mob\living\carbon\human\species_types\podpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\shadowpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\skeletons.dm" -#include "code\modules\mob\living\carbon\human\species_types\synthliz.dm" -#include "code\modules\mob\living\carbon\human\species_types\synths.dm" -#include "code\modules\mob\living\carbon\human\species_types\vampire.dm" -#include "code\modules\mob\living\carbon\human\species_types\xeno.dm" -#include "code\modules\mob\living\carbon\human\species_types\zombies.dm" -#include "code\modules\mob\living\carbon\monkey\combat.dm" -#include "code\modules\mob\living\carbon\monkey\death.dm" -#include "code\modules\mob\living\carbon\monkey\inventory.dm" -#include "code\modules\mob\living\carbon\monkey\life.dm" -#include "code\modules\mob\living\carbon\monkey\monkey.dm" -#include "code\modules\mob\living\carbon\monkey\monkey_defense.dm" -#include "code\modules\mob\living\carbon\monkey\punpun.dm" -#include "code\modules\mob\living\carbon\monkey\update_icons.dm" -#include "code\modules\mob\living\silicon\custom_holoform.dm" -#include "code\modules\mob\living\silicon\damage_procs.dm" -#include "code\modules\mob\living\silicon\death.dm" -#include "code\modules\mob\living\silicon\examine.dm" -#include "code\modules\mob\living\silicon\laws.dm" -#include "code\modules\mob\living\silicon\login.dm" -#include "code\modules\mob\living\silicon\say.dm" -#include "code\modules\mob\living\silicon\silicon.dm" -#include "code\modules\mob\living\silicon\silicon_defense.dm" -#include "code\modules\mob\living\silicon\silicon_movement.dm" -#include "code\modules\mob\living\silicon\ai\ai.dm" -#include "code\modules\mob\living\silicon\ai\ai_defense.dm" -#include "code\modules\mob\living\silicon\ai\ai_portrait_picker.dm" -#include "code\modules\mob\living\silicon\ai\death.dm" -#include "code\modules\mob\living\silicon\ai\examine.dm" -#include "code\modules\mob\living\silicon\ai\laws.dm" -#include "code\modules\mob\living\silicon\ai\life.dm" -#include "code\modules\mob\living\silicon\ai\login.dm" -#include "code\modules\mob\living\silicon\ai\logout.dm" -#include "code\modules\mob\living\silicon\ai\multicam.dm" -#include "code\modules\mob\living\silicon\ai\say.dm" -#include "code\modules\mob\living\silicon\ai\vox_sounds.dm" -#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" -#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" -#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" -#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" -#include "code\modules\mob\living\silicon\pai\death.dm" -#include "code\modules\mob\living\silicon\pai\pai.dm" -#include "code\modules\mob\living\silicon\pai\pai_defense.dm" -#include "code\modules\mob\living\silicon\pai\pai_shell.dm" -#include "code\modules\mob\living\silicon\pai\personality.dm" -#include "code\modules\mob\living\silicon\pai\say.dm" -#include "code\modules\mob\living\silicon\pai\software.dm" -#include "code\modules\mob\living\silicon\pai\update_icon.dm" -#include "code\modules\mob\living\silicon\robot\death.dm" -#include "code\modules\mob\living\silicon\robot\emote.dm" -#include "code\modules\mob\living\silicon\robot\examine.dm" -#include "code\modules\mob\living\silicon\robot\inventory.dm" -#include "code\modules\mob\living\silicon\robot\laws.dm" -#include "code\modules\mob\living\silicon\robot\life.dm" -#include "code\modules\mob\living\silicon\robot\login.dm" -#include "code\modules\mob\living\silicon\robot\robot.dm" -#include "code\modules\mob\living\silicon\robot\robot_defense.dm" -#include "code\modules\mob\living\silicon\robot\robot_defines.dm" -#include "code\modules\mob\living\silicon\robot\robot_mobility.dm" -#include "code\modules\mob\living\silicon\robot\robot_modules.dm" -#include "code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "code\modules\mob\living\silicon\robot\robot_sprint.dm" -#include "code\modules\mob\living\silicon\robot\say.dm" -#include "code\modules\mob\living\silicon\robot\update_icons.dm" -#include "code\modules\mob\living\simple_animal\animal_defense.dm" -#include "code\modules\mob\living\simple_animal\astral.dm" -#include "code\modules\mob\living\simple_animal\constructs.dm" -#include "code\modules\mob\living\simple_animal\corpse.dm" -#include "code\modules\mob\living\simple_animal\damage_procs.dm" -#include "code\modules\mob\living\simple_animal\eldritch_demons.dm" -#include "code\modules\mob\living\simple_animal\parrot.dm" -#include "code\modules\mob\living\simple_animal\pickle.dm" -#include "code\modules\mob\living\simple_animal\shade.dm" -#include "code\modules\mob\living\simple_animal\simple_animal.dm" -#include "code\modules\mob\living\simple_animal\simple_animal_vr.dm" -#include "code\modules\mob\living\simple_animal\simplemob_vore_values.dm" -#include "code\modules\mob\living\simple_animal\status_procs.dm" -#include "code\modules\mob\living\simple_animal\bot\bot.dm" -#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" -#include "code\modules\mob\living\simple_animal\bot\construction.dm" -#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" -#include "code\modules\mob\living\simple_animal\bot\firebot.dm" -#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" -#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" -#include "code\modules\mob\living\simple_animal\bot\medbot.dm" -#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" -#include "code\modules\mob\living\simple_animal\bot\secbot.dm" -#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" -#include "code\modules\mob\living\simple_animal\friendly\bumbles.dm" -#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" -#include "code\modules\mob\living\simple_animal\friendly\cat.dm" -#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" -#include "code\modules\mob\living\simple_animal\friendly\crab.dm" -#include "code\modules\mob\living\simple_animal\friendly\dog.dm" -#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" -#include "code\modules\mob\living\simple_animal\friendly\fox.dm" -#include "code\modules\mob\living\simple_animal\friendly\gondola.dm" -#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" -#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" -#include "code\modules\mob\living\simple_animal\friendly\panda.dm" -#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" -#include "code\modules\mob\living\simple_animal\friendly\pet.dm" -#include "code\modules\mob\living\simple_animal\friendly\plushie.dm" -#include "code\modules\mob\living\simple_animal\friendly\possum.dm" -#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" -#include "code\modules\mob\living\simple_animal\friendly\snake.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\extra_drone_types.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\interaction.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\inventory.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\say.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\verbs.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\visuals_icons.dm" -#include "code\modules\mob\living\simple_animal\guardian\guardian.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\assassin.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\charger.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\dextrous.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\explosive.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\fire.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\gravitokinetic.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\lightning.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\protector.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\ranged.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\standard.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\support.dm" -#include "code\modules\mob\living\simple_animal\hostile\alien.dm" -#include "code\modules\mob\living\simple_animal\hostile\banana_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\bear.dm" -#include "code\modules\mob\living\simple_animal\hostile\bees.dm" -#include "code\modules\mob\living\simple_animal\hostile\bread.dm" -#include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" -#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" -#include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" -#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" -#include "code\modules\mob\living\simple_animal\hostile\floor_cluwne.dm" -#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\goose.dm" -#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" -#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" -#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" -#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" -#include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" -#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" -#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" -#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" -#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" -#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" -#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" -#include "code\modules\mob\living\simple_animal\hostile\russian.dm" -#include "code\modules\mob\living\simple_animal\hostile\sharks.dm" -#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" -#include "code\modules\mob\living\simple_animal\hostile\statue.dm" -#include "code\modules\mob\living\simple_animal\hostile\stickman.dm" -#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" -#include "code\modules\mob\living\simple_animal\hostile\tree.dm" -#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" -#include "code\modules\mob\living\simple_animal\hostile\wizard.dm" -#include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" -#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" -#include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" -#include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" -#include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" -#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" -#include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\demonic_frost_miner.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon_vore.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\curse_blob.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobsterosity.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\wolf.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\elite.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\goliath_broodmother.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\herald.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\legionnaire.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\pandora.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\bat.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\frog.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\ghost.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\spaceman.dm" -#include "code\modules\mob\living\simple_animal\slime\death.dm" -#include "code\modules\mob\living\simple_animal\slime\emote.dm" -#include "code\modules\mob\living\simple_animal\slime\life.dm" -#include "code\modules\mob\living\simple_animal\slime\powers.dm" -#include "code\modules\mob\living\simple_animal\slime\say.dm" -#include "code\modules\mob\living\simple_animal\slime\slime.dm" -#include "code\modules\mob\living\simple_animal\slime\slime_mobility.dm" -#include "code\modules\mob\living\simple_animal\slime\subtypes.dm" -#include "code\modules\modular_computers\laptop_vendor.dm" -#include "code\modules\modular_computers\computers\_modular_computer_shared.dm" -#include "code\modules\modular_computers\computers\item\computer.dm" -#include "code\modules\modular_computers\computers\item\computer_components.dm" -#include "code\modules\modular_computers\computers\item\computer_damage.dm" -#include "code\modules\modular_computers\computers\item\computer_power.dm" -#include "code\modules\modular_computers\computers\item\computer_ui.dm" -#include "code\modules\modular_computers\computers\item\laptop.dm" -#include "code\modules\modular_computers\computers\item\laptop_presets.dm" -#include "code\modules\modular_computers\computers\item\processor.dm" -#include "code\modules\modular_computers\computers\item\tablet.dm" -#include "code\modules\modular_computers\computers\item\tablet_presets.dm" -#include "code\modules\modular_computers\computers\machinery\console_presets.dm" -#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" -#include "code\modules\modular_computers\computers\machinery\modular_console.dm" -#include "code\modules\modular_computers\file_system\computer_file.dm" -#include "code\modules\modular_computers\file_system\data.dm" -#include "code\modules\modular_computers\file_system\program.dm" -#include "code\modules\modular_computers\file_system\program_events.dm" -#include "code\modules\modular_computers\file_system\programs\airestorer.dm" -#include "code\modules\modular_computers\file_system\programs\alarm.dm" -#include "code\modules\modular_computers\file_system\programs\arcade.dm" -#include "code\modules\modular_computers\file_system\programs\atmosscan.dm" -#include "code\modules\modular_computers\file_system\programs\borg_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\budgetordering.dm" -#include "code\modules\modular_computers\file_system\programs\card.dm" -#include "code\modules\modular_computers\file_system\programs\cargobounty.dm" -#include "code\modules\modular_computers\file_system\programs\configurator.dm" -#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm" -#include "code\modules\modular_computers\file_system\programs\file_browser.dm" -#include "code\modules\modular_computers\file_system\programs\jobmanagement.dm" -#include "code\modules\modular_computers\file_system\programs\ntdownloader.dm" -#include "code\modules\modular_computers\file_system\programs\ntmonitor.dm" -#include "code\modules\modular_computers\file_system\programs\ntnrc_client.dm" -#include "code\modules\modular_computers\file_system\programs\powermonitor.dm" -#include "code\modules\modular_computers\file_system\programs\radar.dm" -#include "code\modules\modular_computers\file_system\programs\robocontrol.dm" -#include "code\modules\modular_computers\file_system\programs\robotact.dm" -#include "code\modules\modular_computers\file_system\programs\secureye.dm" -#include "code\modules\modular_computers\file_system\programs\sm_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\contract_uplink.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" -#include "code\modules\modular_computers\hardware\_hardware.dm" -#include "code\modules\modular_computers\hardware\ai_slot.dm" -#include "code\modules\modular_computers\hardware\battery_module.dm" -#include "code\modules\modular_computers\hardware\card_slot.dm" -#include "code\modules\modular_computers\hardware\CPU.dm" -#include "code\modules\modular_computers\hardware\hard_drive.dm" -#include "code\modules\modular_computers\hardware\network_card.dm" -#include "code\modules\modular_computers\hardware\portable_disk.dm" -#include "code\modules\modular_computers\hardware\printer.dm" -#include "code\modules\modular_computers\hardware\recharger.dm" -#include "code\modules\modular_computers\hardware\sensor_package.dm" -#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" -#include "code\modules\movespeed\_movespeed_modifier.dm" -#include "code\modules\movespeed\modifiers\components.dm" -#include "code\modules\movespeed\modifiers\innate.dm" -#include "code\modules\movespeed\modifiers\items.dm" -#include "code\modules\movespeed\modifiers\misc.dm" -#include "code\modules\movespeed\modifiers\mobs.dm" -#include "code\modules\movespeed\modifiers\reagents.dm" -#include "code\modules\movespeed\modifiers\status_effects.dm" -#include "code\modules\newscaster\_news.dm" -#include "code\modules\newscaster\feed_channel.dm" -#include "code\modules\newscaster\feed_comment.dm" -#include "code\modules\newscaster\feed_message.dm" -#include "code\modules\newscaster\ghostread.dm" -#include "code\modules\newscaster\news_network.dm" -#include "code\modules\newscaster\newscaster_machine.dm" -#include "code\modules\newscaster\newspaper.dm" -#include "code\modules\newscaster\wanted_message.dm" -#include "code\modules\ninja\__ninjaDefines.dm" -#include "code\modules\ninja\energy_katana.dm" -#include "code\modules\ninja\ninja_event.dm" -#include "code\modules\ninja\outfit.dm" -#include "code\modules\ninja\suit\gloves.dm" -#include "code\modules\ninja\suit\head.dm" -#include "code\modules\ninja\suit\mask.dm" -#include "code\modules\ninja\suit\ninjaDrainAct.dm" -#include "code\modules\ninja\suit\shoes.dm" -#include "code\modules\ninja\suit\suit.dm" -#include "code\modules\ninja\suit\suit_attackby.dm" -#include "code\modules\ninja\suit\suit_initialisation.dm" -#include "code\modules\ninja\suit\suit_process.dm" -#include "code\modules\ninja\suit\n_suit_verbs\energy_net_nets.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_adrenaline.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_cost_check.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_empulse.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_net.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_smoke.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_stars.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_stealth.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_sword_recall.dm" -#include "code\modules\NTNet\netdata.dm" -#include "code\modules\NTNet\network.dm" -#include "code\modules\NTNet\relays.dm" -#include "code\modules\NTNet\services\_service.dm" -#include "code\modules\paperwork\carbonpaper.dm" -#include "code\modules\paperwork\clipboard.dm" -#include "code\modules\paperwork\contract.dm" -#include "code\modules\paperwork\filingcabinet.dm" -#include "code\modules\paperwork\folders.dm" -#include "code\modules\paperwork\handlabeler.dm" -#include "code\modules\paperwork\paper.dm" -#include "code\modules\paperwork\paper_cutter.dm" -#include "code\modules\paperwork\paper_premade.dm" -#include "code\modules\paperwork\paperbin.dm" -#include "code\modules\paperwork\paperplane.dm" -#include "code\modules\paperwork\pen.dm" -#include "code\modules\paperwork\photocopier.dm" -#include "code\modules\paperwork\stamps.dm" -#include "code\modules\paperwork\ticketmachine.dm" -#include "code\modules\photography\_pictures.dm" -#include "code\modules\photography\camera\camera.dm" -#include "code\modules\photography\camera\camera_image_capturing.dm" -#include "code\modules\photography\camera\film.dm" -#include "code\modules\photography\camera\other.dm" -#include "code\modules\photography\camera\silicon_camera.dm" -#include "code\modules\photography\photos\album.dm" -#include "code\modules\photography\photos\frame.dm" -#include "code\modules\photography\photos\photo.dm" -#include "code\modules\plumbing\ducts.dm" -#include "code\modules\plumbing\plumbers\_plumb_machinery.dm" -#include "code\modules\plumbing\plumbers\acclimator.dm" -#include "code\modules\plumbing\plumbers\autohydro.dm" -#include "code\modules\plumbing\plumbers\bottler.dm" -#include "code\modules\plumbing\plumbers\destroyer.dm" -#include "code\modules\plumbing\plumbers\fermenter.dm" -#include "code\modules\plumbing\plumbers\filter.dm" -#include "code\modules\plumbing\plumbers\grinder_chemical.dm" -#include "code\modules\plumbing\plumbers\medipenrefill.dm" -#include "code\modules\plumbing\plumbers\pill_press.dm" -#include "code\modules\plumbing\plumbers\pumps.dm" -#include "code\modules\plumbing\plumbers\reaction_chamber.dm" -#include "code\modules\plumbing\plumbers\splitters.dm" -#include "code\modules\plumbing\plumbers\synthesizer.dm" -#include "code\modules\pool\pool_controller.dm" -#include "code\modules\pool\pool_drain.dm" -#include "code\modules\pool\pool_effects.dm" -#include "code\modules\pool\pool_main.dm" -#include "code\modules\pool\pool_noodles.dm" -#include "code\modules\pool\pool_structures.dm" -#include "code\modules\pool\pool_wires.dm" -#include "code\modules\power\apc.dm" -#include "code\modules\power\cable.dm" -#include "code\modules\power\cell.dm" -#include "code\modules\power\floodlight.dm" -#include "code\modules\power\generator.dm" -#include "code\modules\power\gravitygenerator.dm" -#include "code\modules\power\lighting.dm" -#include "code\modules\power\monitor.dm" -#include "code\modules\power\multiz.dm" -#include "code\modules\power\port_gen.dm" -#include "code\modules\power\power.dm" -#include "code\modules\power\powernet.dm" -#include "code\modules\power\rtg.dm" -#include "code\modules\power\smes.dm" -#include "code\modules\power\solar.dm" -#include "code\modules\power\terminal.dm" -#include "code\modules\power\tracker.dm" -#include "code\modules\power\turbine.dm" -#include "code\modules\power\antimatter\containment_jar.dm" -#include "code\modules\power\antimatter\control.dm" -#include "code\modules\power\antimatter\shielding.dm" -#include "code\modules\power\singularity\collector.dm" -#include "code\modules\power\singularity\containment_field.dm" -#include "code\modules\power\singularity\emitter.dm" -#include "code\modules\power\singularity\field_generator.dm" -#include "code\modules\power\singularity\generator.dm" -#include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" -#include "code\modules\power\singularity\singularity.dm" -#include "code\modules\power\singularity\particle_accelerator\particle.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" -#include "code\modules\power\supermatter\supermatter.dm" -#include "code\modules\power\tesla\coil.dm" -#include "code\modules\power\tesla\energy_ball.dm" -#include "code\modules\power\tesla\generator.dm" -#include "code\modules\procedural_mapping\mapGenerator.dm" -#include "code\modules\procedural_mapping\mapGeneratorModule.dm" -#include "code\modules\procedural_mapping\mapGeneratorObj.dm" -#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" -#include "code\modules\procedural_mapping\mapGenerators\cellular.dm" -#include "code\modules\procedural_mapping\mapGenerators\cult.dm" -#include "code\modules\procedural_mapping\mapGenerators\lava_river.dm" -#include "code\modules\procedural_mapping\mapGenerators\lavaland.dm" -#include "code\modules\procedural_mapping\mapGenerators\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\repair.dm" -#include "code\modules\procedural_mapping\mapGenerators\shuttle.dm" -#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" -#include "code\modules\projectiles\gun.dm" -#include "code\modules\projectiles\pins.dm" -#include "code\modules\projectiles\projectile.dm" -#include "code\modules\projectiles\ammunition\_ammunition.dm" -#include "code\modules\projectiles\ammunition\_firing.dm" -#include "code\modules\projectiles\ammunition\ballistic\lmg.dm" -#include "code\modules\projectiles\ammunition\ballistic\pistol.dm" -#include "code\modules\projectiles\ammunition\ballistic\revolver.dm" -#include "code\modules\projectiles\ammunition\ballistic\rifle.dm" -#include "code\modules\projectiles\ammunition\ballistic\shotgun.dm" -#include "code\modules\projectiles\ammunition\ballistic\smg.dm" -#include "code\modules\projectiles\ammunition\ballistic\sniper.dm" -#include "code\modules\projectiles\ammunition\caseless\_caseless.dm" -#include "code\modules\projectiles\ammunition\caseless\arrow.dm" -#include "code\modules\projectiles\ammunition\caseless\ferromagnetic.dm" -#include "code\modules\projectiles\ammunition\caseless\foam.dm" -#include "code\modules\projectiles\ammunition\caseless\misc.dm" -#include "code\modules\projectiles\ammunition\caseless\rocket.dm" -#include "code\modules\projectiles\ammunition\energy\_energy.dm" -#include "code\modules\projectiles\ammunition\energy\ebow.dm" -#include "code\modules\projectiles\ammunition\energy\gravity.dm" -#include "code\modules\projectiles\ammunition\energy\laser.dm" -#include "code\modules\projectiles\ammunition\energy\lmg.dm" -#include "code\modules\projectiles\ammunition\energy\plasma.dm" -#include "code\modules\projectiles\ammunition\energy\plasma_cit.dm" -#include "code\modules\projectiles\ammunition\energy\portal.dm" -#include "code\modules\projectiles\ammunition\energy\special.dm" -#include "code\modules\projectiles\ammunition\energy\stun.dm" -#include "code\modules\projectiles\ammunition\special\magic.dm" -#include "code\modules\projectiles\ammunition\special\syringe.dm" -#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm" -#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" -#include "code\modules\projectiles\boxes_magazines\external\grenade.dm" -#include "code\modules\projectiles\boxes_magazines\external\lmg.dm" -#include "code\modules\projectiles\boxes_magazines\external\magweapon.dm" -#include "code\modules\projectiles\boxes_magazines\external\pistol.dm" -#include "code\modules\projectiles\boxes_magazines\external\rechargable.dm" -#include "code\modules\projectiles\boxes_magazines\external\rifle.dm" -#include "code\modules\projectiles\boxes_magazines\external\shotgun.dm" -#include "code\modules\projectiles\boxes_magazines\external\smg.dm" -#include "code\modules\projectiles\boxes_magazines\external\sniper.dm" -#include "code\modules\projectiles\boxes_magazines\external\toy.dm" -#include "code\modules\projectiles\boxes_magazines\internal\_cylinder.dm" -#include "code\modules\projectiles\boxes_magazines\internal\_internal.dm" -#include "code\modules\projectiles\boxes_magazines\internal\bow.dm" -#include "code\modules\projectiles\boxes_magazines\internal\derringer.dm" -#include "code\modules\projectiles\boxes_magazines\internal\grenade.dm" -#include "code\modules\projectiles\boxes_magazines\internal\misc.dm" -#include "code\modules\projectiles\boxes_magazines\internal\revolver.dm" -#include "code\modules\projectiles\boxes_magazines\internal\rifle.dm" -#include "code\modules\projectiles\boxes_magazines\internal\shotgun.dm" -#include "code\modules\projectiles\boxes_magazines\internal\toy.dm" -#include "code\modules\projectiles\guns\ballistic.dm" -#include "code\modules\projectiles\guns\energy.dm" -#include "code\modules\projectiles\guns\magic.dm" -#include "code\modules\projectiles\guns\ballistic\automatic.dm" -#include "code\modules\projectiles\guns\ballistic\bow.dm" -#include "code\modules\projectiles\guns\ballistic\derringer.dm" -#include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" -#include "code\modules\projectiles\guns\ballistic\launchers.dm" -#include "code\modules\projectiles\guns\ballistic\magweapon.dm" -#include "code\modules\projectiles\guns\ballistic\pistol.dm" -#include "code\modules\projectiles\guns\ballistic\revolver.dm" -#include "code\modules\projectiles\guns\ballistic\shotgun.dm" -#include "code\modules\projectiles\guns\ballistic\toy.dm" -#include "code\modules\projectiles\guns\energy\dueling.dm" -#include "code\modules\projectiles\guns\energy\energy_gun.dm" -#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" -#include "code\modules\projectiles\guns\energy\laser.dm" -#include "code\modules\projectiles\guns\energy\megabuster.dm" -#include "code\modules\projectiles\guns\energy\mounted.dm" -#include "code\modules\projectiles\guns\energy\plasma_cit.dm" -#include "code\modules\projectiles\guns\energy\pulse.dm" -#include "code\modules\projectiles\guns\energy\special.dm" -#include "code\modules\projectiles\guns\energy\stun.dm" -#include "code\modules\projectiles\guns\magic\motivation.dm" -#include "code\modules\projectiles\guns\magic\spell_book.dm" -#include "code\modules\projectiles\guns\magic\staff.dm" -#include "code\modules\projectiles\guns\magic\wand.dm" -#include "code\modules\projectiles\guns\misc\beam_rifle.dm" -#include "code\modules\projectiles\guns\misc\blastcannon.dm" -#include "code\modules\projectiles\guns\misc\chameleon.dm" -#include "code\modules\projectiles\guns\misc\chem_gun.dm" -#include "code\modules\projectiles\guns\misc\grenade_launcher.dm" -#include "code\modules\projectiles\guns\misc\medbeam.dm" -#include "code\modules\projectiles\guns\misc\syringe_gun.dm" -#include "code\modules\projectiles\projectile\beams.dm" -#include "code\modules\projectiles\projectile\bullets.dm" -#include "code\modules\projectiles\projectile\magic.dm" -#include "code\modules\projectiles\projectile\megabuster.dm" -#include "code\modules\projectiles\projectile\plasma.dm" -#include "code\modules\projectiles\projectile\bullets\_incendiary.dm" -#include "code\modules\projectiles\projectile\bullets\dart_syringe.dm" -#include "code\modules\projectiles\projectile\bullets\dnainjector.dm" -#include "code\modules\projectiles\projectile\bullets\ferromagnetic.dm" -#include "code\modules\projectiles\projectile\bullets\grenade.dm" -#include "code\modules\projectiles\projectile\bullets\lmg.dm" -#include "code\modules\projectiles\projectile\bullets\pistol.dm" -#include "code\modules\projectiles\projectile\bullets\revolver.dm" -#include "code\modules\projectiles\projectile\bullets\rifle.dm" -#include "code\modules\projectiles\projectile\bullets\shotgun.dm" -#include "code\modules\projectiles\projectile\bullets\smg.dm" -#include "code\modules\projectiles\projectile\bullets\sniper.dm" -#include "code\modules\projectiles\projectile\bullets\special.dm" -#include "code\modules\projectiles\projectile\energy\_energy.dm" -#include "code\modules\projectiles\projectile\energy\ebow.dm" -#include "code\modules\projectiles\projectile\energy\misc.dm" -#include "code\modules\projectiles\projectile\energy\net_snare.dm" -#include "code\modules\projectiles\projectile\energy\nuclear_particle.dm" -#include "code\modules\projectiles\projectile\energy\stun.dm" -#include "code\modules\projectiles\projectile\energy\tesla.dm" -#include "code\modules\projectiles\projectile\magic\spellcard.dm" -#include "code\modules\projectiles\projectile\reusable\_reusable.dm" -#include "code\modules\projectiles\projectile\reusable\arrow.dm" -#include "code\modules\projectiles\projectile\reusable\foam_dart.dm" -#include "code\modules\projectiles\projectile\reusable\magspear.dm" -#include "code\modules\projectiles\projectile\special\curse.dm" -#include "code\modules\projectiles\projectile\special\floral.dm" -#include "code\modules\projectiles\projectile\special\gravity.dm" -#include "code\modules\projectiles\projectile\special\hallucination.dm" -#include "code\modules\projectiles\projectile\special\ion.dm" -#include "code\modules\projectiles\projectile\special\judgement_cut.dm" -#include "code\modules\projectiles\projectile\special\meteor.dm" -#include "code\modules\projectiles\projectile\special\mindflayer.dm" -#include "code\modules\projectiles\projectile\special\neurotoxin.dm" -#include "code\modules\projectiles\projectile\special\plasma.dm" -#include "code\modules\projectiles\projectile\special\rocket.dm" -#include "code\modules\projectiles\projectile\special\temperature.dm" -#include "code\modules\projectiles\projectile\special\wormhole.dm" -#include "code\modules\reagents\chem_splash.dm" -#include "code\modules\reagents\chem_wiki_render.dm" -#include "code\modules\reagents\reagent_containers.dm" -#include "code\modules\reagents\reagent_dispenser.dm" -#include "code\modules\reagents\chemistry\colors.dm" -#include "code\modules\reagents\chemistry\holder.dm" -#include "code\modules\reagents\chemistry\reagents.dm" -#include "code\modules\reagents\chemistry\recipes.dm" -#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" -#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" -#include "code\modules\reagents\chemistry\machinery\chem_master.dm" -#include "code\modules\reagents\chemistry\machinery\chem_synthesizer.dm" -#include "code\modules\reagents\chemistry\machinery\pandemic.dm" -#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" -#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm" -#include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\drink_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\drug_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\food_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\impure_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\medicine_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\other_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm" -#include "code\modules\reagents\chemistry\recipes\drugs.dm" -#include "code\modules\reagents\chemistry\recipes\medicine.dm" -#include "code\modules\reagents\chemistry\recipes\others.dm" -#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" -#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" -#include "code\modules\reagents\chemistry\recipes\special.dm" -#include "code\modules\reagents\chemistry\recipes\toxins.dm" -#include "code\modules\reagents\reagent_containers\blood_pack.dm" -#include "code\modules\reagents\reagent_containers\borghypo.dm" -#include "code\modules\reagents\reagent_containers\bottle.dm" -#include "code\modules\reagents\reagent_containers\chem_pack.dm" -#include "code\modules\reagents\reagent_containers\dropper.dm" -#include "code\modules\reagents\reagent_containers\glass.dm" -#include "code\modules\reagents\reagent_containers\hypospray.dm" -#include "code\modules\reagents\reagent_containers\hypovial.dm" -#include "code\modules\reagents\reagent_containers\maunamug.dm" -#include "code\modules\reagents\reagent_containers\medspray.dm" -#include "code\modules\reagents\reagent_containers\patch.dm" -#include "code\modules\reagents\reagent_containers\pill.dm" -#include "code\modules\reagents\reagent_containers\rags.dm" -#include "code\modules\reagents\reagent_containers\sleeper_buffer.dm" -#include "code\modules\reagents\reagent_containers\spray.dm" -#include "code\modules\reagents\reagent_containers\syringes.dm" -#include "code\modules\recycling\conveyor2.dm" -#include "code\modules\recycling\sortingmachinery.dm" -#include "code\modules\recycling\disposal\bin.dm" -#include "code\modules\recycling\disposal\construction.dm" -#include "code\modules\recycling\disposal\eject.dm" -#include "code\modules\recycling\disposal\holder.dm" -#include "code\modules\recycling\disposal\multiz.dm" -#include "code\modules\recycling\disposal\outlet.dm" -#include "code\modules\recycling\disposal\pipe.dm" -#include "code\modules\recycling\disposal\pipe_sorting.dm" -#include "code\modules\research\bepis.dm" -#include "code\modules\research\designs.dm" -#include "code\modules\research\destructive_analyzer.dm" -#include "code\modules\research\experimentor.dm" -#include "code\modules\research\rdconsole.dm" -#include "code\modules\research\rdmachines.dm" -#include "code\modules\research\research_disk.dm" -#include "code\modules\research\server.dm" -#include "code\modules\research\stock_parts.dm" -#include "code\modules\research\anomaly\anomaly_core.dm" -#include "code\modules\research\anomaly\explosive_compressor.dm" -#include "code\modules\research\anomaly\raw_anomaly.dm" -#include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autobotter_designs.dm" -#include "code\modules\research\designs\autoylathe_designs.dm" -#include "code\modules\research\designs\biogenerator_designs.dm" -#include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\computer_part_designs.dm" -#include "code\modules\research\designs\electronics_designs.dm" -#include "code\modules\research\designs\equipment_designs.dm" -#include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\mecha_designs.dm" -#include "code\modules\research\designs\mechfabricator_designs.dm" -#include "code\modules\research\designs\medical_designs.dm" -#include "code\modules\research\designs\mining_designs.dm" -#include "code\modules\research\designs\misc_designs.dm" -#include "code\modules\research\designs\nanite_designs.dm" -#include "code\modules\research\designs\power_designs.dm" -#include "code\modules\research\designs\smelting_designs.dm" -#include "code\modules\research\designs\stock_parts_designs.dm" -#include "code\modules\research\designs\telecomms_designs.dm" -#include "code\modules\research\designs\tool_designs.dm" -#include "code\modules\research\designs\weapon_designs.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" -#include "code\modules\research\machinery\_production.dm" -#include "code\modules\research\machinery\circuit_imprinter.dm" -#include "code\modules\research\machinery\departmental_circuit_imprinter.dm" -#include "code\modules\research\machinery\departmental_protolathe.dm" -#include "code\modules\research\machinery\departmental_techfab.dm" -#include "code\modules\research\machinery\protolathe.dm" -#include "code\modules\research\machinery\techfab.dm" -#include "code\modules\research\nanites\nanite_chamber.dm" -#include "code\modules\research\nanites\nanite_chamber_computer.dm" -#include "code\modules\research\nanites\nanite_cloud_controller.dm" -#include "code\modules\research\nanites\nanite_misc_items.dm" -#include "code\modules\research\nanites\nanite_program_hub.dm" -#include "code\modules\research\nanites\nanite_programmer.dm" -#include "code\modules\research\nanites\nanite_programs.dm" -#include "code\modules\research\nanites\nanite_remote.dm" -#include "code\modules\research\nanites\program_disks.dm" -#include "code\modules\research\nanites\public_chamber.dm" -#include "code\modules\research\nanites\rules.dm" -#include "code\modules\research\nanites\extra_settings\_extra_setting.dm" -#include "code\modules\research\nanites\extra_settings\boolean.dm" -#include "code\modules\research\nanites\extra_settings\number.dm" -#include "code\modules\research\nanites\extra_settings\text.dm" -#include "code\modules\research\nanites\extra_settings\type.dm" -#include "code\modules\research\nanites\nanite_programs\buffing.dm" -#include "code\modules\research\nanites\nanite_programs\healing.dm" -#include "code\modules\research\nanites\nanite_programs\protocols.dm" -#include "code\modules\research\nanites\nanite_programs\rogue.dm" -#include "code\modules\research\nanites\nanite_programs\sensor.dm" -#include "code\modules\research\nanites\nanite_programs\suppression.dm" -#include "code\modules\research\nanites\nanite_programs\utility.dm" -#include "code\modules\research\nanites\nanite_programs\weapon.dm" -#include "code\modules\research\techweb\__techweb_helpers.dm" -#include "code\modules\research\techweb\_techweb.dm" -#include "code\modules\research\techweb\_techweb_node.dm" -#include "code\modules\research\techweb\nodes\alien_nodes.dm" -#include "code\modules\research\techweb\nodes\bepis_nodes.dm" -#include "code\modules\research\techweb\nodes\biotech_nodes.dm" -#include "code\modules\research\techweb\nodes\bluespace_nodes.dm" -#include "code\modules\research\techweb\nodes\computer_hud_nodes.dm" -#include "code\modules\research\techweb\nodes\engineering_nodes.dm" -#include "code\modules\research\techweb\nodes\export_nodes.dm" -#include "code\modules\research\techweb\nodes\mecha_nodes.dm" -#include "code\modules\research\techweb\nodes\medical_nodes.dm" -#include "code\modules\research\techweb\nodes\misc_nodes.dm" -#include "code\modules\research\techweb\nodes\nanites_nodes.dm" -#include "code\modules\research\techweb\nodes\robotics_nodes.dm" -#include "code\modules\research\techweb\nodes\syndicate_nodes.dm" -#include "code\modules\research\techweb\nodes\tools_nodes.dm" -#include "code\modules\research\techweb\nodes\weaponry_nodes.dm" -#include "code\modules\research\xenobiology\xenobio_camera.dm" -#include "code\modules\research\xenobiology\xenobiology.dm" -#include "code\modules\research\xenobiology\crossbreeding\__corecross.dm" -#include "code\modules\research\xenobiology\crossbreeding\_clothing.dm" -#include "code\modules\research\xenobiology\crossbreeding\_misc.dm" -#include "code\modules\research\xenobiology\crossbreeding\_mobs.dm" -#include "code\modules\research\xenobiology\crossbreeding\_status_effects.dm" -#include "code\modules\research\xenobiology\crossbreeding\_weapons.dm" -#include "code\modules\research\xenobiology\crossbreeding\burning.dm" -#include "code\modules\research\xenobiology\crossbreeding\charged.dm" -#include "code\modules\research\xenobiology\crossbreeding\chilling.dm" -#include "code\modules\research\xenobiology\crossbreeding\consuming.dm" -#include "code\modules\research\xenobiology\crossbreeding\industrial.dm" -#include "code\modules\research\xenobiology\crossbreeding\prismatic.dm" -#include "code\modules\research\xenobiology\crossbreeding\recurring.dm" -#include "code\modules\research\xenobiology\crossbreeding\regenerative.dm" -#include "code\modules\research\xenobiology\crossbreeding\reproductive.dm" -#include "code\modules\research\xenobiology\crossbreeding\selfsustaining.dm" -#include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" -#include "code\modules\ruins\lavaland_ruin_code.dm" -#include "code\modules\ruins\icemoonruin_code\hotsprings.dm" -#include "code\modules\ruins\icemoonruin_code\library.dm" -#include "code\modules\ruins\lavalandruin_code\alien_nest.dm" -#include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" -#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" -#include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" -#include "code\modules\ruins\lavalandruin_code\puzzle.dm" -#include "code\modules\ruins\lavalandruin_code\sloth.dm" -#include "code\modules\ruins\lavalandruin_code\surface.dm" -#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" -#include "code\modules\ruins\objects_and_mobs\ash_walker_den.dm" -#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" -#include "code\modules\ruins\objects_and_mobs\sin_ruins.dm" -#include "code\modules\ruins\spaceruin_code\asteroid4.dm" -#include "code\modules\ruins\spaceruin_code\bigderelict1.dm" -#include "code\modules\ruins\spaceruin_code\caravanambush.dm" -#include "code\modules\ruins\spaceruin_code\clericsden.dm" -#include "code\modules\ruins\spaceruin_code\cloning_lab.dm" -#include "code\modules\ruins\spaceruin_code\crashedclownship.dm" -#include "code\modules\ruins\spaceruin_code\crashedship.dm" -#include "code\modules\ruins\spaceruin_code\deepstorage.dm" -#include "code\modules\ruins\spaceruin_code\DJstation.dm" -#include "code\modules\ruins\spaceruin_code\hilbertshotel.dm" -#include "code\modules\ruins\spaceruin_code\listeningstation.dm" -#include "code\modules\ruins\spaceruin_code\miracle.dm" -#include "code\modules\ruins\spaceruin_code\oldstation.dm" -#include "code\modules\ruins\spaceruin_code\originalcontent.dm" -#include "code\modules\ruins\spaceruin_code\skelter.dm" -#include "code\modules\ruins\spaceruin_code\spacehotel.dm" -#include "code\modules\ruins\spaceruin_code\TheDerelict.dm" -#include "code\modules\ruins\spaceruin_code\whiteshipruin_box.dm" -#include "code\modules\security_levels\keycard_authentication.dm" -#include "code\modules\security_levels\security_levels.dm" -#include "code\modules\shielding\helpers.dm" -#include "code\modules\shuttle\arrivals.dm" -#include "code\modules\shuttle\assault_pod.dm" -#include "code\modules\shuttle\computer.dm" -#include "code\modules\shuttle\custom_shuttle.dm" -#include "code\modules\shuttle\docking.dm" -#include "code\modules\shuttle\elevator.dm" -#include "code\modules\shuttle\emergency.dm" -#include "code\modules\shuttle\ferry.dm" -#include "code\modules\shuttle\manipulator.dm" -#include "code\modules\shuttle\monastery.dm" -#include "code\modules\shuttle\navigation_computer.dm" -#include "code\modules\shuttle\on_move.dm" -#include "code\modules\shuttle\ripple.dm" -#include "code\modules\shuttle\shuttle.dm" -#include "code\modules\shuttle\shuttle_rotate.dm" -#include "code\modules\shuttle\snaxi.dm" -#include "code\modules\shuttle\spaceship_navigation_beacon.dm" -#include "code\modules\shuttle\special.dm" -#include "code\modules\shuttle\supply.dm" -#include "code\modules\shuttle\syndicate.dm" -#include "code\modules\shuttle\white_ship.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_actions.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_console.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" -#include "code\modules\smithing\anvil.dm" -#include "code\modules\smithing\finished_items.dm" -#include "code\modules\smithing\furnace.dm" -#include "code\modules\smithing\smithed_items.dm" -#include "code\modules\spells\spell.dm" -#include "code\modules\spells\spell_types\aimed.dm" -#include "code\modules\spells\spell_types\area_teleport.dm" -#include "code\modules\spells\spell_types\bloodcrawl.dm" -#include "code\modules\spells\spell_types\charge.dm" -#include "code\modules\spells\spell_types\cluwnecurse.dm" -#include "code\modules\spells\spell_types\cone_spells.dm" -#include "code\modules\spells\spell_types\conjure.dm" -#include "code\modules\spells\spell_types\construct_spells.dm" -#include "code\modules\spells\spell_types\curse.dm" -#include "code\modules\spells\spell_types\devil.dm" -#include "code\modules\spells\spell_types\devil_boons.dm" -#include "code\modules\spells\spell_types\dumbfire.dm" -#include "code\modules\spells\spell_types\emplosion.dm" -#include "code\modules\spells\spell_types\ethereal_jaunt.dm" -#include "code\modules\spells\spell_types\explosion.dm" -#include "code\modules\spells\spell_types\forcewall.dm" -#include "code\modules\spells\spell_types\genetic.dm" -#include "code\modules\spells\spell_types\godhand.dm" -#include "code\modules\spells\spell_types\infinite_guns.dm" -#include "code\modules\spells\spell_types\inflict_handler.dm" -#include "code\modules\spells\spell_types\knock.dm" -#include "code\modules\spells\spell_types\lichdom.dm" -#include "code\modules\spells\spell_types\lightning.dm" -#include "code\modules\spells\spell_types\mime.dm" -#include "code\modules\spells\spell_types\projectile.dm" -#include "code\modules\spells\spell_types\rightandwrong.dm" -#include "code\modules\spells\spell_types\rod_form.dm" -#include "code\modules\spells\spell_types\santa.dm" -#include "code\modules\spells\spell_types\shadow_walk.dm" -#include "code\modules\spells\spell_types\shapeshift.dm" -#include "code\modules\spells\spell_types\spacetime_distortion.dm" -#include "code\modules\spells\spell_types\summonitem.dm" -#include "code\modules\spells\spell_types\taeclowndo.dm" -#include "code\modules\spells\spell_types\telepathy.dm" -#include "code\modules\spells\spell_types\the_traps.dm" -#include "code\modules\spells\spell_types\togglebuff.dm" -#include "code\modules\spells\spell_types\touch_attacks.dm" -#include "code\modules\spells\spell_types\trigger.dm" -#include "code\modules\spells\spell_types\turf_teleport.dm" -#include "code\modules\spells\spell_types\voice_of_god.dm" -#include "code\modules\spells\spell_types\wizard.dm" -#include "code\modules\spells\spell_types\pointed\barnyard.dm" -#include "code\modules\spells\spell_types\pointed\blind.dm" -#include "code\modules\spells\spell_types\pointed\mind_transfer.dm" -#include "code\modules\spells\spell_types\pointed\pointed.dm" -#include "code\modules\station_goals\bsa.dm" -#include "code\modules\station_goals\dna_vault.dm" -#include "code\modules\station_goals\shield.dm" -#include "code\modules\station_goals\station_goal.dm" -#include "code\modules\surgery\amputation.dm" -#include "code\modules\surgery\bone_mending.dm" -#include "code\modules\surgery\brain_surgery.dm" -#include "code\modules\surgery\burn_dressing.dm" -#include "code\modules\surgery\cavity_implant.dm" -#include "code\modules\surgery\core_removal.dm" -#include "code\modules\surgery\coronary_bypass.dm" -#include "code\modules\surgery\dental_implant.dm" -#include "code\modules\surgery\embalming.dm" -#include "code\modules\surgery\emergency_cardioversion_recovery.dm" -#include "code\modules\surgery\emergency_reboot.dm" -#include "code\modules\surgery\experimental_dissection.dm" -#include "code\modules\surgery\eye_surgery.dm" -#include "code\modules\surgery\graft_synthtissue.dm" -#include "code\modules\surgery\healing.dm" -#include "code\modules\surgery\helpers.dm" -#include "code\modules\surgery\implant_removal.dm" -#include "code\modules\surgery\limb_augmentation.dm" -#include "code\modules\surgery\lipoplasty.dm" -#include "code\modules\surgery\lobectomy.dm" -#include "code\modules\surgery\mechanic_steps.dm" -#include "code\modules\surgery\nutcracker.dm" -#include "code\modules\surgery\organ_manipulation.dm" -#include "code\modules\surgery\organic_steps.dm" -#include "code\modules\surgery\plastic_surgery.dm" -#include "code\modules\surgery\prosthetic_replacement.dm" -#include "code\modules\surgery\purge_corruption.dm" -#include "code\modules\surgery\remove_embedded_object.dm" -#include "code\modules\surgery\repair_puncture.dm" -#include "code\modules\surgery\robot_brain_surgery.dm" -#include "code\modules\surgery\robot_healing.dm" -#include "code\modules\surgery\surgery.dm" -#include "code\modules\surgery\surgery_step.dm" -#include "code\modules\surgery\tools.dm" -#include "code\modules\surgery\advanced\brainwashing.dm" -#include "code\modules\surgery\advanced\lobotomy.dm" -#include "code\modules\surgery\advanced\necrotic_revival.dm" -#include "code\modules\surgery\advanced\pacification.dm" -#include "code\modules\surgery\advanced\revival.dm" -#include "code\modules\surgery\advanced\toxichealing.dm" -#include "code\modules\surgery\advanced\viral_bonding.dm" -#include "code\modules\surgery\advanced\bioware\bioware.dm" -#include "code\modules\surgery\advanced\bioware\bioware_surgery.dm" -#include "code\modules\surgery\advanced\bioware\ligament_hook.dm" -#include "code\modules\surgery\advanced\bioware\ligament_reinforcement.dm" -#include "code\modules\surgery\advanced\bioware\muscled_veins.dm" -#include "code\modules\surgery\advanced\bioware\nerve_grounding.dm" -#include "code\modules\surgery\advanced\bioware\nerve_splicing.dm" -#include "code\modules\surgery\advanced\bioware\vein_threading.dm" -#include "code\modules\surgery\bodyparts\_bodyparts.dm" -#include "code\modules\surgery\bodyparts\dismemberment.dm" -#include "code\modules\surgery\bodyparts\head.dm" -#include "code\modules\surgery\bodyparts\helpers.dm" -#include "code\modules\surgery\bodyparts\parts.dm" -#include "code\modules\surgery\bodyparts\robot_bodyparts.dm" -#include "code\modules\surgery\organs\appendix.dm" -#include "code\modules\surgery\organs\augments_arms.dm" -#include "code\modules\surgery\organs\augments_chest.dm" -#include "code\modules\surgery\organs\augments_eyes.dm" -#include "code\modules\surgery\organs\augments_internal.dm" -#include "code\modules\surgery\organs\autosurgeon.dm" -#include "code\modules\surgery\organs\ears.dm" -#include "code\modules\surgery\organs\eyes.dm" -#include "code\modules\surgery\organs\heart.dm" -#include "code\modules\surgery\organs\helpers.dm" -#include "code\modules\surgery\organs\liver.dm" -#include "code\modules\surgery\organs\lungs.dm" -#include "code\modules\surgery\organs\organ_internal.dm" -#include "code\modules\surgery\organs\stomach.dm" -#include "code\modules\surgery\organs\tails.dm" -#include "code\modules\surgery\organs\tongue.dm" -#include "code\modules\surgery\organs\vocal_cords.dm" -#include "code\modules\tcg\cards.dm" -#include "code\modules\tcg\pack_1.dm" -#include "code\modules\tcg\pack_nuclear.dm" -#include "code\modules\tcg\pack_star.dm" -#include "code\modules\tgchat\message.dm" -#include "code\modules\tgchat\to_chat.dm" -#include "code\modules\tgs\includes.dm" -#include "code\modules\tgui\external.dm" -#include "code\modules\tgui\states.dm" -#include "code\modules\tgui\tgui.dm" -#include "code\modules\tgui\tgui_alert.dm" -#include "code\modules\tgui\tgui_input_list.dm" -#include "code\modules\tgui\tgui_window.dm" -#include "code\modules\tgui\states\admin.dm" -#include "code\modules\tgui\states\always.dm" -#include "code\modules\tgui\states\conscious.dm" -#include "code\modules\tgui\states\contained.dm" -#include "code\modules\tgui\states\debug.dm" -#include "code\modules\tgui\states\deep_inventory.dm" -#include "code\modules\tgui\states\default.dm" -#include "code\modules\tgui\states\hands.dm" -#include "code\modules\tgui\states\human_adjacent.dm" -#include "code\modules\tgui\states\inventory.dm" -#include "code\modules\tgui\states\language_menu.dm" -#include "code\modules\tgui\states\new_player.dm" -#include "code\modules\tgui\states\not_incapacitated.dm" -#include "code\modules\tgui\states\notcontained.dm" -#include "code\modules\tgui\states\observer.dm" -#include "code\modules\tgui\states\physical.dm" -#include "code\modules\tgui\states\self.dm" -#include "code\modules\tgui\states\zlevel.dm" -#include "code\modules\tgui_panel\audio.dm" -#include "code\modules\tgui_panel\external.dm" -#include "code\modules\tgui_panel\telemetry.dm" -#include "code\modules\tgui_panel\tgui_panel.dm" -#include "code\modules\tooltip\tooltip.dm" -#include "code\modules\unit_tests\_unit_tests.dm" -#include "code\modules\uplink\uplink_devices.dm" -#include "code\modules\uplink\uplink_items.dm" -#include "code\modules\uplink\uplink_purchase_log.dm" -#include "code\modules\uplink\uplink_items\uplink_ammo.dm" -#include "code\modules\uplink\uplink_items\uplink_badass.dm" -#include "code\modules\uplink\uplink_items\uplink_bundles.dm" -#include "code\modules\uplink\uplink_items\uplink_clothing.dm" -#include "code\modules\uplink\uplink_items\uplink_dangerous.dm" -#include "code\modules\uplink\uplink_items\uplink_devices.dm" -#include "code\modules\uplink\uplink_items\uplink_explosives.dm" -#include "code\modules\uplink\uplink_items\uplink_implants.dm" -#include "code\modules\uplink\uplink_items\uplink_roles.dm" -#include "code\modules\uplink\uplink_items\uplink_stealth.dm" -#include "code\modules\uplink\uplink_items\uplink_stealthdevices.dm" -#include "code\modules\uplink\uplink_items\uplink_support.dm" -#include "code\modules\vehicles\_vehicle.dm" -#include "code\modules\vehicles\atv.dm" -#include "code\modules\vehicles\bicycle.dm" -#include "code\modules\vehicles\lavaboat.dm" -#include "code\modules\vehicles\pimpin_ride.dm" -#include "code\modules\vehicles\ridden.dm" -#include "code\modules\vehicles\scooter.dm" -#include "code\modules\vehicles\sealed.dm" -#include "code\modules\vehicles\secway.dm" -#include "code\modules\vehicles\speedbike.dm" -#include "code\modules\vehicles\vehicle_actions.dm" -#include "code\modules\vehicles\vehicle_key.dm" -#include "code\modules\vehicles\wheelchair.dm" -#include "code\modules\vehicles\cars\car.dm" -#include "code\modules\vehicles\cars\clowncar.dm" -#include "code\modules\vending\_vending.dm" -#include "code\modules\vending\assist.dm" -#include "code\modules\vending\autodrobe.dm" -#include "code\modules\vending\barkbox.dm" -#include "code\modules\vending\boozeomat.dm" -#include "code\modules\vending\cartridge.dm" -#include "code\modules\vending\cigarette.dm" -#include "code\modules\vending\clothesmate.dm" -#include "code\modules\vending\coffee.dm" -#include "code\modules\vending\cola.dm" -#include "code\modules\vending\dinnerware.dm" -#include "code\modules\vending\engineering.dm" -#include "code\modules\vending\engivend.dm" -#include "code\modules\vending\games.dm" -#include "code\modules\vending\kinkmate.dm" -#include "code\modules\vending\liberation.dm" -#include "code\modules\vending\liberation_toy.dm" -#include "code\modules\vending\magivend.dm" -#include "code\modules\vending\medical.dm" -#include "code\modules\vending\medical_wall.dm" -#include "code\modules\vending\megaseed.dm" -#include "code\modules\vending\nutrimax.dm" -#include "code\modules\vending\plasmaresearch.dm" -#include "code\modules\vending\robotics.dm" -#include "code\modules\vending\security.dm" -#include "code\modules\vending\snack.dm" -#include "code\modules\vending\sovietsoda.dm" -#include "code\modules\vending\sovietvend.dm" -#include "code\modules\vending\sustenance.dm" -#include "code\modules\vending\toys.dm" -#include "code\modules\vending\wardrobes.dm" -#include "code\modules\vending\youtool.dm" -#include "code\modules\vore\hook-defs.dm" -#include "code\modules\vore\persistence.dm" -#include "code\modules\vore\trycatch.dm" -#include "code\modules\vore\eating\belly_dat_vr.dm" -#include "code\modules\vore\eating\belly_obj.dm" -#include "code\modules\vore\eating\bellymodes.dm" -#include "code\modules\vore\eating\digest_act.dm" -#include "code\modules\vore\eating\living.dm" -#include "code\modules\vore\eating\voreitems.dm" -#include "code\modules\vore\eating\vorepanel.dm" -#include "code\modules\VR\vr_mob.dm" -#include "code\modules\VR\vr_sleeper.dm" -#include "code\modules\zombie\items.dm" -#include "code\modules\zombie\organs.dm" -#include "interface\interface.dm" -#include "interface\menu.dm" -#include "interface\stylesheet.dm" -#include "interface\skin.dmf" -#include "modular_citadel\code\datums\components\souldeath.dm" -#include "modular_citadel\code\datums\status_effects\chems.dm" -#include "modular_citadel\code\game\objects\cit_screenshake.dm" -#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" -#include "modular_citadel\code\modules\admin\holder2.dm" -#include "modular_citadel\code\modules\admin\secrets.dm" -#include "modular_citadel\code\modules\client\client_procs.dm" -#include "modular_citadel\code\modules\client\preferences_savefile.dm" -#include "modular_citadel\code\modules\client\preferences_toggles.dm" -#include "modular_citadel\code\modules\client\loadout\__donator.dm" -#include "modular_citadel\code\modules\client\loadout\_loadout.dm" -#include "modular_citadel\code\modules\client\loadout\_medical.dm" -#include "modular_citadel\code\modules\client\loadout\_security.dm" -#include "modular_citadel\code\modules\client\loadout\_service.dm" -#include "modular_citadel\code\modules\client\loadout\backpack.dm" -#include "modular_citadel\code\modules\client\loadout\glasses.dm" -#include "modular_citadel\code\modules\client\loadout\gloves.dm" -#include "modular_citadel\code\modules\client\loadout\hands.dm" -#include "modular_citadel\code\modules\client\loadout\head.dm" -#include "modular_citadel\code\modules\client\loadout\mask.dm" -#include "modular_citadel\code\modules\client\loadout\neck.dm" -#include "modular_citadel\code\modules\client\loadout\shoes.dm" -#include "modular_citadel\code\modules\client\loadout\suit.dm" -#include "modular_citadel\code\modules\client\loadout\uniform.dm" -#include "modular_citadel\code\modules\client\loadout\unlockable.dm" -#include "modular_citadel\code\modules\client\verbs\who.dm" -#include "modular_citadel\code\modules\clothing\neck.dm" -#include "modular_citadel\code\modules\clothing\trek.dm" -#include "modular_citadel\code\modules\clothing\suits\suits.dm" -#include "modular_citadel\code\modules\custom_loadout\custom_items.dm" -#include "modular_citadel\code\modules\custom_loadout\load_to_mob.dm" -#include "modular_citadel\code\modules\custom_loadout\read_from_file.dm" -#include "modular_citadel\code\modules\mentor\dementor.dm" -#include "modular_citadel\code\modules\mentor\follow.dm" -#include "modular_citadel\code\modules\mentor\mentor.dm" -#include "modular_citadel\code\modules\mentor\mentor_memo.dm" -#include "modular_citadel\code\modules\mentor\mentor_verbs.dm" -#include "modular_citadel\code\modules\mentor\mentorhelp.dm" -#include "modular_citadel\code\modules\mentor\mentorpm.dm" -#include "modular_citadel\code\modules\mentor\mentorsay.dm" -#include "modular_citadel\code\modules\mob\cit_emotes.dm" -#include "modular_citadel\code\modules\mob\living\living.dm" -#include "modular_citadel\code\modules\mob\living\carbon\carbon.dm" -#include "modular_citadel\code\modules\mob\living\carbon\damage_procs.dm" -#include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" -#include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" -#include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" -#include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" -#include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm" -#include "modular_citadel\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" -#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\pistol.dm" -#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\smg\smg.dm" -#include "modular_citadel\code\modules\projectiles\bullets\bullets\smg.dm" -#include "modular_citadel\code\modules\projectiles\guns\pumpenergy.dm" -#include "modular_citadel\code\modules\projectiles\guns\toys.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" -#include "modular_citadel\code\modules\projectiles\guns\energy\energy_gun.dm" -#include "modular_citadel\code\modules\projectiles\projectiles\reusable.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\astrogen.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\eigentstasium.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\enlargement.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\fermi_reagents.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\healing.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\MKUltra.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\SDGF.dm" -#include "modular_citadel\code\modules\reagents\chemistry\recipes\fermi.dm" -#include "modular_citadel\code\modules\reagents\objects\clothes.dm" -#include "modular_citadel\code\modules\reagents\objects\items.dm" -// END_INCLUDE + +// DM Environment file for tgstation.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. +// New source code should be placed in .dm files: choose File/New --> Code File. +// BEGIN_INTERNALS +// END_INTERNALS + +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR + +// BEGIN_PREFERENCES +#define DEBUG +// END_PREFERENCES + +// BEGIN_INCLUDE +#include "_maps\_basemap.dm" +#include "code\_compile_options.dm" +#include "code\world.dm" +#include "code\__DEFINES\_extools.dm" +#include "code\__DEFINES\_globals.dm" +#include "code\__DEFINES\_protect.dm" +#include "code\__DEFINES\_tick.dm" +#include "code\__DEFINES\access.dm" +#include "code\__DEFINES\achievements.dm" +#include "code\__DEFINES\actionspeed_modifiers.dm" +#include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\antagonists.dm" +#include "code\__DEFINES\atmospherics.dm" +#include "code\__DEFINES\atom_hud.dm" +#include "code\__DEFINES\blackmarket.dm" +#include "code\__DEFINES\botany.dm" +#include "code\__DEFINES\callbacks.dm" +#include "code\__DEFINES\cargo.dm" +#include "code\__DEFINES\cinematics.dm" +#include "code\__DEFINES\citadel_defines.dm" +#include "code\__DEFINES\cleaning.dm" +#include "code\__DEFINES\clockcult.dm" +#include "code\__DEFINES\colors.dm" +#include "code\__DEFINES\combat.dm" +#include "code\__DEFINES\configuration.dm" +#include "code\__DEFINES\construction.dm" +#include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\cooldowns.dm" +#include "code\__DEFINES\cult.dm" +#include "code\__DEFINES\diseases.dm" +#include "code\__DEFINES\DNA.dm" +#include "code\__DEFINES\donator_groupings.dm" +#include "code\__DEFINES\dye_keys.dm" +#include "code\__DEFINES\dynamic.dm" +#include "code\__DEFINES\economy.dm" +#include "code\__DEFINES\events.dm" +#include "code\__DEFINES\exosuit_fabs.dm" +#include "code\__DEFINES\explosion.dm" +#include "code\__DEFINES\exports.dm" +#include "code\__DEFINES\fantasy_affixes.dm" +#include "code\__DEFINES\food.dm" +#include "code\__DEFINES\footsteps.dm" +#include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\instruments.dm" +#include "code\__DEFINES\integrated_electronics.dm" +#include "code\__DEFINES\interaction_flags.dm" +#include "code\__DEFINES\inventory.dm" +#include "code\__DEFINES\is_helpers.dm" +#include "code\__DEFINES\jobs.dm" +#include "code\__DEFINES\language.dm" +#include "code\__DEFINES\layers_planes.dm" +#include "code\__DEFINES\lighting.dm" +#include "code\__DEFINES\loadout.dm" +#include "code\__DEFINES\logging.dm" +#include "code\__DEFINES\machines.dm" +#include "code\__DEFINES\maps.dm" +#include "code\__DEFINES\materials.dm" +#include "code\__DEFINES\maths.dm" +#include "code\__DEFINES\MC.dm" +#include "code\__DEFINES\melee.dm" +#include "code\__DEFINES\menu.dm" +#include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mobs.dm" +#include "code\__DEFINES\monkeys.dm" +#include "code\__DEFINES\move_force.dm" +#include "code\__DEFINES\movement.dm" +#include "code\__DEFINES\movespeed_modification.dm" +#include "code\__DEFINES\nanites.dm" +#include "code\__DEFINES\networks.dm" +#include "code\__DEFINES\pinpointers.dm" +#include "code\__DEFINES\pipe_construction.dm" +#include "code\__DEFINES\plumbing.dm" +#include "code\__DEFINES\pool.dm" +#include "code\__DEFINES\power.dm" +#include "code\__DEFINES\preferences.dm" +#include "code\__DEFINES\procpath.dm" +#include "code\__DEFINES\profile.dm" +#include "code\__DEFINES\projectiles.dm" +#include "code\__DEFINES\qdel.dm" +#include "code\__DEFINES\radiation.dm" +#include "code\__DEFINES\radio.dm" +#include "code\__DEFINES\reactions.dm" +#include "code\__DEFINES\reagents.dm" +#include "code\__DEFINES\reagents_specific_heat.dm" +#include "code\__DEFINES\research.dm" +#include "code\__DEFINES\robots.dm" +#include "code\__DEFINES\rockpaperscissors.dm" +#include "code\__DEFINES\role_preferences.dm" +#include "code\__DEFINES\rust_g.dm" +#include "code\__DEFINES\say.dm" +#include "code\__DEFINES\security_levels.dm" +#include "code\__DEFINES\shuttles.dm" +#include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\sound.dm" +#include "code\__DEFINES\spaceman_dmm.dm" +#include "code\__DEFINES\species.dm" +#include "code\__DEFINES\stat.dm" +#include "code\__DEFINES\stat_tracking.dm" +#include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\subsystems.dm" +#include "code\__DEFINES\tgs.config.dm" +#include "code\__DEFINES\tgs.dm" +#include "code\__DEFINES\tgui.dm" +#include "code\__DEFINES\time.dm" +#include "code\__DEFINES\tools.dm" +#include "code\__DEFINES\traits.dm" +#include "code\__DEFINES\turf_flags.dm" +#include "code\__DEFINES\typeids.dm" +#include "code\__DEFINES\vehicles.dm" +#include "code\__DEFINES\voreconstants.dm" +#include "code\__DEFINES\vote.dm" +#include "code\__DEFINES\vv.dm" +#include "code\__DEFINES\wall_dents.dm" +#include "code\__DEFINES\wires.dm" +#include "code\__DEFINES\wounds.dm" +#include "code\__DEFINES\_flags\_flags.dm" +#include "code\__DEFINES\_flags\do_after.dm" +#include "code\__DEFINES\_flags\item_flags.dm" +#include "code\__DEFINES\_flags\obj_flags.dm" +#include "code\__DEFINES\_flags\return_values.dm" +#include "code\__DEFINES\_flags\shields.dm" +#include "code\__DEFINES\admin\keybindings.dm" +#include "code\__DEFINES\chemistry\reactions.dm" +#include "code\__DEFINES\combat\attack_types.dm" +#include "code\__DEFINES\combat\block.dm" +#include "code\__DEFINES\combat\block_parry.dm" +#include "code\__DEFINES\combat\stamina_combat.dm" +#include "code\__DEFINES\dcs\flags.dm" +#include "code\__DEFINES\dcs\helpers.dm" +#include "code\__DEFINES\dcs\signals.dm" +#include "code\__DEFINES\mapping\maploader.dm" +#include "code\__DEFINES\material\worth.dm" +#include "code\__DEFINES\mobs\innate_abilities.dm" +#include "code\__DEFINES\mobs\slowdowns.dm" +#include "code\__DEFINES\research\anomalies.dm" +#include "code\__DEFINES\research\stock_parts.dm" +#include "code\__DEFINES\skills\defines.dm" +#include "code\__DEFINES\skills\helpers.dm" +#include "code\__DEFINES\storage\_storage.dm" +#include "code\__DEFINES\storage\volumetrics.dm" +#include "code\__HELPERS\_cit_helpers.dm" +#include "code\__HELPERS\_lists.dm" +#include "code\__HELPERS\_logging.dm" +#include "code\__HELPERS\_string_lists.dm" +#include "code\__HELPERS\angles.dm" +#include "code\__HELPERS\areas.dm" +#include "code\__HELPERS\AStar.dm" +#include "code\__HELPERS\chat.dm" +#include "code\__HELPERS\cmp.dm" +#include "code\__HELPERS\custom_holoforms.dm" +#include "code\__HELPERS\dates.dm" +#include "code\__HELPERS\dna.dm" +#include "code\__HELPERS\do_after.dm" +#include "code\__HELPERS\donator_groupings.dm" +#include "code\__HELPERS\files.dm" +#include "code\__HELPERS\filters.dm" +#include "code\__HELPERS\game.dm" +#include "code\__HELPERS\global_lists.dm" +#include "code\__HELPERS\heap.dm" +#include "code\__HELPERS\icon_smoothing.dm" +#include "code\__HELPERS\icons.dm" +#include "code\__HELPERS\level_traits.dm" +#include "code\__HELPERS\matrices.dm" +#include "code\__HELPERS\mobs.dm" +#include "code\__HELPERS\mouse_control.dm" +#include "code\__HELPERS\names.dm" +#include "code\__HELPERS\priority_announce.dm" +#include "code\__HELPERS\pronouns.dm" +#include "code\__HELPERS\qdel.dm" +#include "code\__HELPERS\radiation.dm" +#include "code\__HELPERS\radio.dm" +#include "code\__HELPERS\reagents.dm" +#include "code\__HELPERS\roundend.dm" +#include "code\__HELPERS\sanitize_values.dm" +#include "code\__HELPERS\shell.dm" +#include "code\__HELPERS\stat_tracking.dm" +#include "code\__HELPERS\text.dm" +#include "code\__HELPERS\text_vr.dm" +#include "code\__HELPERS\time.dm" +#include "code\__HELPERS\type2type.dm" +#include "code\__HELPERS\type_processing.dm" +#include "code\__HELPERS\typelists.dm" +#include "code\__HELPERS\unsorted.dm" +#include "code\__HELPERS\vector.dm" +#include "code\__HELPERS\verbs.dm" +#include "code\__HELPERS\view.dm" +#include "code\__HELPERS\sorts\__main.dm" +#include "code\__HELPERS\sorts\InsertSort.dm" +#include "code\__HELPERS\sorts\MergeSort.dm" +#include "code\__HELPERS\sorts\TimSort.dm" +#include "code\_globalvars\admin.dm" +#include "code\_globalvars\bitfields.dm" +#include "code\_globalvars\configuration.dm" +#include "code\_globalvars\game_modes.dm" +#include "code\_globalvars\genetics.dm" +#include "code\_globalvars\logging.dm" +#include "code\_globalvars\misc.dm" +#include "code\_globalvars\regexes.dm" +#include "code\_globalvars\traits.dm" +#include "code\_globalvars\lists\achievements.dm" +#include "code\_globalvars\lists\client.dm" +#include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\keybindings.dm" +#include "code\_globalvars\lists\loadout_categories.dm" +#include "code\_globalvars\lists\maintenance_loot.dm" +#include "code\_globalvars\lists\mapping.dm" +#include "code\_globalvars\lists\misc.dm" +#include "code\_globalvars\lists\mobs.dm" +#include "code\_globalvars\lists\names.dm" +#include "code\_globalvars\lists\objects.dm" +#include "code\_globalvars\lists\poll_ignore.dm" +#include "code\_globalvars\lists\typecache.dm" +#include "code\_js\byjax.dm" +#include "code\_js\menus.dm" +#include "code\_onclick\adjacent.dm" +#include "code\_onclick\ai.dm" +#include "code\_onclick\click.dm" +#include "code\_onclick\cyborg.dm" +#include "code\_onclick\drag_drop.dm" +#include "code\_onclick\item_attack.dm" +#include "code\_onclick\observer.dm" +#include "code\_onclick\other_mobs.dm" +#include "code\_onclick\overmind.dm" +#include "code\_onclick\right_click.dm" +#include "code\_onclick\right_item_attack.dm" +#include "code\_onclick\right_other_mobs.dm" +#include "code\_onclick\telekinesis.dm" +#include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\action_button.dm" +#include "code\_onclick\hud\ai.dm" +#include "code\_onclick\hud\alert.dm" +#include "code\_onclick\hud\alien.dm" +#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\blob_overmind.dm" +#include "code\_onclick\hud\blobbernauthud.dm" +#include "code\_onclick\hud\clockwork_marauder.dm" +#include "code\_onclick\hud\constructs.dm" +#include "code\_onclick\hud\credits.dm" +#include "code\_onclick\hud\devil.dm" +#include "code\_onclick\hud\drones.dm" +#include "code\_onclick\hud\fullscreen.dm" +#include "code\_onclick\hud\generic_dextrous.dm" +#include "code\_onclick\hud\ghost.dm" +#include "code\_onclick\hud\guardian.dm" +#include "code\_onclick\hud\hud.dm" +#include "code\_onclick\hud\human.dm" +#include "code\_onclick\hud\lavaland_elite.dm" +#include "code\_onclick\hud\map_popups.dm" +#include "code\_onclick\hud\monkey.dm" +#include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\parallax.dm" +#include "code\_onclick\hud\picture_in_picture.dm" +#include "code\_onclick\hud\plane_master.dm" +#include "code\_onclick\hud\radial.dm" +#include "code\_onclick\hud\radial_persistent.dm" +#include "code\_onclick\hud\revenanthud.dm" +#include "code\_onclick\hud\robot.dm" +#include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\simple_animal.dm" +#include "code\_onclick\hud\swarmer.dm" +#include "code\_onclick\hud\screen_objects\clickdelay.dm" +#include "code\_onclick\hud\screen_objects\sprint.dm" +#include "code\_onclick\hud\screen_objects\stamina.dm" +#include "code\_onclick\hud\screen_objects\storage.dm" +#include "code\_onclick\hud\screen_objects\vore.dm" +#include "code\controllers\admin.dm" +#include "code\controllers\configuration_citadel.dm" +#include "code\controllers\controller.dm" +#include "code\controllers\failsafe.dm" +#include "code\controllers\globals.dm" +#include "code\controllers\hooks.dm" +#include "code\controllers\master.dm" +#include "code\controllers\subsystem.dm" +#include "code\controllers\configuration\config_entry.dm" +#include "code\controllers\configuration\configuration.dm" +#include "code\controllers\configuration\entries\comms.dm" +#include "code\controllers\configuration\entries\dbconfig.dm" +#include "code\controllers\configuration\entries\donator.dm" +#include "code\controllers\configuration\entries\dynamic.dm" +#include "code\controllers\configuration\entries\fail2topic.dm" +#include "code\controllers\configuration\entries\game_options.dm" +#include "code\controllers\configuration\entries\general.dm" +#include "code\controllers\configuration\entries\logging.dm" +#include "code\controllers\configuration\entries\persistence.dm" +#include "code\controllers\configuration\entries\plushies.dm" +#include "code\controllers\configuration\entries\policy.dm" +#include "code\controllers\configuration\entries\resources.dm" +#include "code\controllers\configuration\entries\respawns.dm" +#include "code\controllers\configuration\entries\stamina_combat.dm" +#include "code\controllers\subsystem\achievements.dm" +#include "code\controllers\subsystem\acid.dm" +#include "code\controllers\subsystem\activity.dm" +#include "code\controllers\subsystem\adjacent_air.dm" +#include "code\controllers\subsystem\air.dm" +#include "code\controllers\subsystem\air_turfs.dm" +#include "code\controllers\subsystem\assets.dm" +#include "code\controllers\subsystem\atoms.dm" +#include "code\controllers\subsystem\augury.dm" +#include "code\controllers\subsystem\autotransfer.dm" +#include "code\controllers\subsystem\blackbox.dm" +#include "code\controllers\subsystem\blackmarket.dm" +#include "code\controllers\subsystem\chat.dm" +#include "code\controllers\subsystem\communications.dm" +#include "code\controllers\subsystem\dbcore.dm" +#include "code\controllers\subsystem\dcs.dm" +#include "code\controllers\subsystem\disease.dm" +#include "code\controllers\subsystem\economy.dm" +#include "code\controllers\subsystem\events.dm" +#include "code\controllers\subsystem\explosions.dm" +#include "code\controllers\subsystem\fail2topic.dm" +#include "code\controllers\subsystem\fire_burning.dm" +#include "code\controllers\subsystem\fluid.dm" +#include "code\controllers\subsystem\garbage.dm" +#include "code\controllers\subsystem\holodeck.dm" +#include "code\controllers\subsystem\icon_smooth.dm" +#include "code\controllers\subsystem\idlenpcpool.dm" +#include "code\controllers\subsystem\input.dm" +#include "code\controllers\subsystem\ipintel.dm" +#include "code\controllers\subsystem\job.dm" +#include "code\controllers\subsystem\jukeboxes.dm" +#include "code\controllers\subsystem\language.dm" +#include "code\controllers\subsystem\lighting.dm" +#include "code\controllers\subsystem\machines.dm" +#include "code\controllers\subsystem\mapping.dm" +#include "code\controllers\subsystem\materials.dm" +#include "code\controllers\subsystem\minimaps.dm" +#include "code\controllers\subsystem\minimum_spawns.dm" +#include "code\controllers\subsystem\minor_mapping.dm" +#include "code\controllers\subsystem\mobs.dm" +#include "code\controllers\subsystem\nightshift.dm" +#include "code\controllers\subsystem\npcpool.dm" +#include "code\controllers\subsystem\overlays.dm" +#include "code\controllers\subsystem\pai.dm" +#include "code\controllers\subsystem\parallax.dm" +#include "code\controllers\subsystem\pathfinder.dm" +#include "code\controllers\subsystem\profiler.dm" +#include "code\controllers\subsystem\radiation.dm" +#include "code\controllers\subsystem\radio.dm" +#include "code\controllers\subsystem\research.dm" +#include "code\controllers\subsystem\runechat.dm" +#include "code\controllers\subsystem\server_maint.dm" +#include "code\controllers\subsystem\shuttle.dm" +#include "code\controllers\subsystem\sounds.dm" +#include "code\controllers\subsystem\spacedrift.dm" +#include "code\controllers\subsystem\statpanel.dm" +#include "code\controllers\subsystem\stickyban.dm" +#include "code\controllers\subsystem\sun.dm" +#include "code\controllers\subsystem\tgui.dm" +#include "code\controllers\subsystem\throwing.dm" +#include "code\controllers\subsystem\ticker.dm" +#include "code\controllers\subsystem\time_track.dm" +#include "code\controllers\subsystem\timer.dm" +#include "code\controllers\subsystem\title.dm" +#include "code\controllers\subsystem\traumas.dm" +#include "code\controllers\subsystem\vis_overlays.dm" +#include "code\controllers\subsystem\vore.dm" +#include "code\controllers\subsystem\vote.dm" +#include "code\controllers\subsystem\persistence\_persistence.dm" +#include "code\controllers\subsystem\persistence\cleanable_debris.dm" +#include "code\controllers\subsystem\persistence\panic_bunker.dm" +#include "code\controllers\subsystem\persistence\poly_parrot.dm" +#include "code\controllers\subsystem\persistence\recent_votes_etc.dm" +#include "code\controllers\subsystem\persistence\secret_satchels.dm" +#include "code\controllers\subsystem\persistence\trophies.dm" +#include "code\controllers\subsystem\processing\chemistry.dm" +#include "code\controllers\subsystem\processing\circuit.dm" +#include "code\controllers\subsystem\processing\fastprocess.dm" +#include "code\controllers\subsystem\processing\fields.dm" +#include "code\controllers\subsystem\processing\huds.dm" +#include "code\controllers\subsystem\processing\instruments.dm" +#include "code\controllers\subsystem\processing\nanites.dm" +#include "code\controllers\subsystem\processing\networks.dm" +#include "code\controllers\subsystem\processing\obj.dm" +#include "code\controllers\subsystem\processing\processing.dm" +#include "code\controllers\subsystem\processing\projectiles.dm" +#include "code\controllers\subsystem\processing\quirks.dm" +#include "code\controllers\subsystem\processing\status_effects.dm" +#include "code\controllers\subsystem\processing\weather.dm" +#include "code\controllers\subsystem\processing\wet_floors.dm" +#include "code\datums\accents.dm" +#include "code\datums\action.dm" +#include "code\datums\ai_laws.dm" +#include "code\datums\armor.dm" +#include "code\datums\beam.dm" +#include "code\datums\beepsky_fashion.dm" +#include "code\datums\browser.dm" +#include "code\datums\callback.dm" +#include "code\datums\chatmessage.dm" +#include "code\datums\cinematic.dm" +#include "code\datums\dash_weapon.dm" +#include "code\datums\datacore.dm" +#include "code\datums\datum.dm" +#include "code\datums\datumvars.dm" +#include "code\datums\dna.dm" +#include "code\datums\dog_fashion.dm" +#include "code\datums\ductnet.dm" +#include "code\datums\emotes.dm" +#include "code\datums\ert.dm" +#include "code\datums\explosion.dm" +#include "code\datums\explosion2.dm" +#include "code\datums\forced_movement.dm" +#include "code\datums\holocall.dm" +#include "code\datums\http.dm" +#include "code\datums\hud.dm" +#include "code\datums\mind.dm" +#include "code\datums\mutable_appearance.dm" +#include "code\datums\numbered_display.dm" +#include "code\datums\outfit.dm" +#include "code\datums\position_point_vector.dm" +#include "code\datums\profiling.dm" +#include "code\datums\progressbar.dm" +#include "code\datums\radiation_wave.dm" +#include "code\datums\recipe.dm" +#include "code\datums\ruins.dm" +#include "code\datums\saymode.dm" +#include "code\datums\shuttles.dm" +#include "code\datums\soullink.dm" +#include "code\datums\spawners_menu.dm" +#include "code\datums\tgs_event_handler.dm" +#include "code\datums\verbs.dm" +#include "code\datums\view.dm" +#include "code\datums\weakrefs.dm" +#include "code\datums\world_topic.dm" +#include "code\datums\achievements\_achievement_data.dm" +#include "code\datums\achievements\_awards.dm" +#include "code\datums\achievements\boss_achievements.dm" +#include "code\datums\achievements\boss_scores.dm" +#include "code\datums\achievements\mafia_achievements.dm" +#include "code\datums\achievements\misc_achievements.dm" +#include "code\datums\achievements\misc_scores.dm" +#include "code\datums\achievements\skill_achievements.dm" +#include "code\datums\actions\beam_rifle.dm" +#include "code\datums\actions\ninja.dm" +#include "code\datums\brain_damage\brain_trauma.dm" +#include "code\datums\brain_damage\hypnosis.dm" +#include "code\datums\brain_damage\imaginary_friend.dm" +#include "code\datums\brain_damage\magic.dm" +#include "code\datums\brain_damage\mild.dm" +#include "code\datums\brain_damage\phobia.dm" +#include "code\datums\brain_damage\severe.dm" +#include "code\datums\brain_damage\special.dm" +#include "code\datums\brain_damage\split_personality.dm" +#include "code\datums\components\_component.dm" +#include "code\datums\components\activity.dm" +#include "code\datums\components\anti_magic.dm" +#include "code\datums\components\armor_plate.dm" +#include "code\datums\components\bane.dm" +#include "code\datums\components\bouncy.dm" +#include "code\datums\components\butchering.dm" +#include "code\datums\components\caltrop.dm" +#include "code\datums\components\chasm.dm" +#include "code\datums\components\combat_mode.dm" +#include "code\datums\components\construction.dm" +#include "code\datums\components\dejavu.dm" +#include "code\datums\components\earprotection.dm" +#include "code\datums\components\edible.dm" +#include "code\datums\components\edit_complainer.dm" +#include "code\datums\components\embedded.dm" +#include "code\datums\components\explodable.dm" +#include "code\datums\components\field_of_vision.dm" +#include "code\datums\components\footstep.dm" +#include "code\datums\components\fried.dm" +#include "code\datums\components\gps.dm" +#include "code\datums\components\honkspam.dm" +#include "code\datums\components\identification.dm" +#include "code\datums\components\igniter.dm" +#include "code\datums\components\infective.dm" +#include "code\datums\components\jousting.dm" +#include "code\datums\components\killerqueen.dm" +#include "code\datums\components\knockback.dm" +#include "code\datums\components\knockoff.dm" +#include "code\datums\components\label.dm" +#include "code\datums\components\lifesteal.dm" +#include "code\datums\components\lockon_aiming.dm" +#include "code\datums\components\magnetic_catch.dm" +#include "code\datums\components\material_container.dm" +#include "code\datums\components\mirage_border.dm" +#include "code\datums\components\mirv.dm" +#include "code\datums\components\mood.dm" +#include "code\datums\components\nanites.dm" +#include "code\datums\components\ntnet_interface.dm" +#include "code\datums\components\omen.dm" +#include "code\datums\components\orbiter.dm" +#include "code\datums\components\paintable.dm" +#include "code\datums\components\pellet_cloud.dm" +#include "code\datums\components\phantomthief.dm" +#include "code\datums\components\rad_insulation.dm" +#include "code\datums\components\radioactive.dm" +#include "code\datums\components\remote_materials.dm" +#include "code\datums\components\riding.dm" +#include "code\datums\components\rotation.dm" +#include "code\datums\components\shielded.dm" +#include "code\datums\components\shrink.dm" +#include "code\datums\components\sizzle.dm" +#include "code\datums\components\slippery.dm" +#include "code\datums\components\spawner.dm" +#include "code\datums\components\spooky.dm" +#include "code\datums\components\squeak.dm" +#include "code\datums\components\stationloving.dm" +#include "code\datums\components\summoning.dm" +#include "code\datums\components\swarming.dm" +#include "code\datums\components\tackle.dm" +#include "code\datums\components\thermite.dm" +#include "code\datums\components\twitch_plays.dm" +#include "code\datums\components\twohanded.dm" +#include "code\datums\components\uplink.dm" +#include "code\datums\components\virtual_reality.dm" +#include "code\datums\components\waddling.dm" +#include "code\datums\components\wearertargeting.dm" +#include "code\datums\components\wet_floor.dm" +#include "code\datums\components\crafting\crafting.dm" +#include "code\datums\components\crafting\guncrafting.dm" +#include "code\datums\components\crafting\recipes.dm" +#include "code\datums\components\crafting\glassware\glassware.dm" +#include "code\datums\components\crafting\glassware\lens_crafting.dm" +#include "code\datums\components\crafting\recipes\recipes_clothing.dm" +#include "code\datums\components\crafting\recipes\recipes_misc.dm" +#include "code\datums\components\crafting\recipes\recipes_primal.dm" +#include "code\datums\components\crafting\recipes\recipes_robot.dm" +#include "code\datums\components\crafting\recipes\recipes_weapon_and_ammo.dm" +#include "code\datums\components\fantasy\_fantasy.dm" +#include "code\datums\components\fantasy\affix.dm" +#include "code\datums\components\fantasy\prefixes.dm" +#include "code\datums\components\fantasy\suffixes.dm" +#include "code\datums\components\plumbing\_plumbing.dm" +#include "code\datums\components\plumbing\chemical_acclimator.dm" +#include "code\datums\components\plumbing\filter.dm" +#include "code\datums\components\plumbing\reaction_chamber.dm" +#include "code\datums\components\plumbing\splitter.dm" +#include "code\datums\components\storage\storage.dm" +#include "code\datums\components\storage\ui.dm" +#include "code\datums\components\storage\concrete\_concrete.dm" +#include "code\datums\components\storage\concrete\bag_of_holding.dm" +#include "code\datums\components\storage\concrete\bluespace.dm" +#include "code\datums\components\storage\concrete\emergency.dm" +#include "code\datums\components\storage\concrete\implant.dm" +#include "code\datums\components\storage\concrete\pockets.dm" +#include "code\datums\components\storage\concrete\rped.dm" +#include "code\datums\components\storage\concrete\special.dm" +#include "code\datums\components\storage\concrete\stack.dm" +#include "code\datums\components\storage\concrete\tcg.dm" +#include "code\datums\diseases\_disease.dm" +#include "code\datums\diseases\_MobProcs.dm" +#include "code\datums\diseases\anxiety.dm" +#include "code\datums\diseases\appendicitis.dm" +#include "code\datums\diseases\beesease.dm" +#include "code\datums\diseases\brainrot.dm" +#include "code\datums\diseases\cold.dm" +#include "code\datums\diseases\cold9.dm" +#include "code\datums\diseases\dna_spread.dm" +#include "code\datums\diseases\fake_gbs.dm" +#include "code\datums\diseases\flu.dm" +#include "code\datums\diseases\fluspanish.dm" +#include "code\datums\diseases\gbs.dm" +#include "code\datums\diseases\heart_failure.dm" +#include "code\datums\diseases\magnitis.dm" +#include "code\datums\diseases\parrotpossession.dm" +#include "code\datums\diseases\pierrot_throat.dm" +#include "code\datums\diseases\retrovirus.dm" +#include "code\datums\diseases\rhumba_beat.dm" +#include "code\datums\diseases\transformation.dm" +#include "code\datums\diseases\tuberculosis.dm" +#include "code\datums\diseases\wizarditis.dm" +#include "code\datums\diseases\advance\advance.dm" +#include "code\datums\diseases\advance\presets.dm" +#include "code\datums\diseases\advance\symptoms\beard.dm" +#include "code\datums\diseases\advance\symptoms\choking.dm" +#include "code\datums\diseases\advance\symptoms\confusion.dm" +#include "code\datums\diseases\advance\symptoms\cough.dm" +#include "code\datums\diseases\advance\symptoms\deafness.dm" +#include "code\datums\diseases\advance\symptoms\disfiguration.dm" +#include "code\datums\diseases\advance\symptoms\dizzy.dm" +#include "code\datums\diseases\advance\symptoms\fever.dm" +#include "code\datums\diseases\advance\symptoms\fire.dm" +#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" +#include "code\datums\diseases\advance\symptoms\genetics.dm" +#include "code\datums\diseases\advance\symptoms\hallucigen.dm" +#include "code\datums\diseases\advance\symptoms\headache.dm" +#include "code\datums\diseases\advance\symptoms\heal.dm" +#include "code\datums\diseases\advance\symptoms\itching.dm" +#include "code\datums\diseases\advance\symptoms\nanites.dm" +#include "code\datums\diseases\advance\symptoms\narcolepsy.dm" +#include "code\datums\diseases\advance\symptoms\oxygen.dm" +#include "code\datums\diseases\advance\symptoms\sensory.dm" +#include "code\datums\diseases\advance\symptoms\shedding.dm" +#include "code\datums\diseases\advance\symptoms\shivering.dm" +#include "code\datums\diseases\advance\symptoms\skin.dm" +#include "code\datums\diseases\advance\symptoms\sneeze.dm" +#include "code\datums\diseases\advance\symptoms\species.dm" +#include "code\datums\diseases\advance\symptoms\symptoms.dm" +#include "code\datums\diseases\advance\symptoms\viral.dm" +#include "code\datums\diseases\advance\symptoms\vision.dm" +#include "code\datums\diseases\advance\symptoms\voice_change.dm" +#include "code\datums\diseases\advance\symptoms\vomit.dm" +#include "code\datums\diseases\advance\symptoms\weight.dm" +#include "code\datums\diseases\advance\symptoms\youth.dm" +#include "code\datums\elements\_element.dm" +#include "code\datums\elements\art.dm" +#include "code\datums\elements\beauty.dm" +#include "code\datums\elements\bed_tucking.dm" +#include "code\datums\elements\bsa_blocker.dm" +#include "code\datums\elements\cleaning.dm" +#include "code\datums\elements\decal.dm" +#include "code\datums\elements\dusts_on_catatonia.dm" +#include "code\datums\elements\dusts_on_leaving_area.dm" +#include "code\datums\elements\dwarfism.dm" +#include "code\datums\elements\earhealing.dm" +#include "code\datums\elements\embed.dm" +#include "code\datums\elements\empprotection.dm" +#include "code\datums\elements\firestacker.dm" +#include "code\datums\elements\flavor_text.dm" +#include "code\datums\elements\forced_gravity.dm" +#include "code\datums\elements\ghost_role_eligibility.dm" +#include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\photosynthesis.dm" +#include "code\datums\elements\polychromic.dm" +#include "code\datums\elements\scavenging.dm" +#include "code\datums\elements\snail_crawl.dm" +#include "code\datums\elements\spellcasting.dm" +#include "code\datums\elements\squish.dm" +#include "code\datums\elements\swimming.dm" +#include "code\datums\elements\sword_point.dm" +#include "code\datums\elements\tactical.dm" +#include "code\datums\elements\turf_transparency.dm" +#include "code\datums\elements\update_icon_blocker.dm" +#include "code\datums\elements\update_icon_updates_onmob.dm" +#include "code\datums\elements\ventcrawling.dm" +#include "code\datums\elements\wuv.dm" +#include "code\datums\helper_datums\events.dm" +#include "code\datums\helper_datums\getrev.dm" +#include "code\datums\helper_datums\icon_snapshot.dm" +#include "code\datums\helper_datums\teleport.dm" +#include "code\datums\looping_sounds\_looping_sound.dm" +#include "code\datums\looping_sounds\item_sounds.dm" +#include "code\datums\looping_sounds\machinery_sounds.dm" +#include "code\datums\looping_sounds\weather.dm" +#include "code\datums\mapgen\_MapGenerator.dm" +#include "code\datums\mapgen\CaveGenerator.dm" +#include "code\datums\mapgen\JungleGenerator.dm" +#include "code\datums\mapgen\biomes\_biome.dm" +#include "code\datums\mapgen\Cavegens\IcemoonCaves.dm" +#include "code\datums\mapgen\Cavegens\LavalandGenerator.dm" +#include "code\datums\martial\_martial.dm" +#include "code\datums\martial\boxing.dm" +#include "code\datums\martial\cqc.dm" +#include "code\datums\martial\krav_maga.dm" +#include "code\datums\martial\mushpunch.dm" +#include "code\datums\martial\plasma_fist.dm" +#include "code\datums\martial\psychotic_brawl.dm" +#include "code\datums\martial\rising_bass.dm" +#include "code\datums\martial\sleeping_carp.dm" +#include "code\datums\martial\wrestling.dm" +#include "code\datums\materials\_material.dm" +#include "code\datums\materials\basemats.dm" +#include "code\datums\materials\meat.dm" +#include "code\datums\materials\pizza.dm" +#include "code\datums\mood_events\beauty_events.dm" +#include "code\datums\mood_events\drink_events.dm" +#include "code\datums\mood_events\drug_events.dm" +#include "code\datums\mood_events\generic_negative_events.dm" +#include "code\datums\mood_events\generic_positive_events.dm" +#include "code\datums\mood_events\mood_event.dm" +#include "code\datums\mood_events\needs_events.dm" +#include "code\datums\mutations\_mutations.dm" +#include "code\datums\mutations\actions.dm" +#include "code\datums\mutations\antenna.dm" +#include "code\datums\mutations\body.dm" +#include "code\datums\mutations\chameleon.dm" +#include "code\datums\mutations\cluwne.dm" +#include "code\datums\mutations\cold.dm" +#include "code\datums\mutations\combined.dm" +#include "code\datums\mutations\hulk.dm" +#include "code\datums\mutations\radioactive.dm" +#include "code\datums\mutations\sight.dm" +#include "code\datums\mutations\space_adaptation.dm" +#include "code\datums\mutations\speech.dm" +#include "code\datums\mutations\telekinesis.dm" +#include "code\datums\ruins\icemoon.dm" +#include "code\datums\ruins\lavaland.dm" +#include "code\datums\ruins\space.dm" +#include "code\datums\ruins\station.dm" +#include "code\datums\skills\_check_skills.dm" +#include "code\datums\skills\_skill.dm" +#include "code\datums\skills\_skill_holder.dm" +#include "code\datums\skills\_skill_modifier.dm" +#include "code\datums\skills\blacksmithing.dm" +#include "code\datums\skills\engineering.dm" +#include "code\datums\skills\medical.dm" +#include "code\datums\skills\modifiers\job.dm" +#include "code\datums\skills\modifiers\mood.dm" +#include "code\datums\skills\modifiers\organs.dm" +#include "code\datums\status_effects\buffs.dm" +#include "code\datums\status_effects\debuffs.dm" +#include "code\datums\status_effects\gas.dm" +#include "code\datums\status_effects\neutral.dm" +#include "code\datums\status_effects\status_effect.dm" +#include "code\datums\status_effects\wound_effects.dm" +#include "code\datums\traits\_quirk.dm" +#include "code\datums\traits\good.dm" +#include "code\datums\traits\negative.dm" +#include "code\datums\traits\neutral.dm" +#include "code\datums\weather\weather.dm" +#include "code\datums\weather\weather_types\acid_rain.dm" +#include "code\datums\weather\weather_types\ash_storm.dm" +#include "code\datums\weather\weather_types\floor_is_lava.dm" +#include "code\datums\weather\weather_types\radiation_storm.dm" +#include "code\datums\weather\weather_types\snow_storm.dm" +#include "code\datums\weather\weather_types\void_storm.dm" +#include "code\datums\wires\_wires.dm" +#include "code\datums\wires\airalarm.dm" +#include "code\datums\wires\airlock.dm" +#include "code\datums\wires\apc.dm" +#include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\emitter.dm" +#include "code\datums\wires\explosive.dm" +#include "code\datums\wires\microwave.dm" +#include "code\datums\wires\mulebot.dm" +#include "code\datums\wires\particle_accelerator.dm" +#include "code\datums\wires\r_n_d.dm" +#include "code\datums\wires\radio.dm" +#include "code\datums\wires\robot.dm" +#include "code\datums\wires\suit_storage_unit.dm" +#include "code\datums\wires\syndicatebomb.dm" +#include "code\datums\wires\tesla_coil.dm" +#include "code\datums\wires\vending.dm" +#include "code\datums\wounds\_scars.dm" +#include "code\datums\wounds\_wounds.dm" +#include "code\datums\wounds\bones.dm" +#include "code\datums\wounds\burns.dm" +#include "code\datums\wounds\loss.dm" +#include "code\datums\wounds\pierce.dm" +#include "code\datums\wounds\slash.dm" +#include "code\game\alternate_appearance.dm" +#include "code\game\atoms.dm" +#include "code\game\atoms_movable.dm" +#include "code\game\atoms_movement.dm" +#include "code\game\communications.dm" +#include "code\game\data_huds.dm" +#include "code\game\say.dm" +#include "code\game\shuttle_engines.dm" +#include "code\game\sound.dm" +#include "code\game\world.dm" +#include "code\game\area\ai_monitored.dm" +#include "code\game\area\areas.dm" +#include "code\game\area\Space_Station_13_areas.dm" +#include "code\game\area\areas\away_content.dm" +#include "code\game\area\areas\centcom.dm" +#include "code\game\area\areas\holodeck.dm" +#include "code\game\area\areas\mining.dm" +#include "code\game\area\areas\shuttles.dm" +#include "code\game\area\areas\ruins\_ruins.dm" +#include "code\game\area\areas\ruins\icemoon.dm" +#include "code\game\area\areas\ruins\lavaland.dm" +#include "code\game\area\areas\ruins\space.dm" +#include "code\game\area\areas\ruins\templates.dm" +#include "code\game\gamemodes\events.dm" +#include "code\game\gamemodes\game_mode.dm" +#include "code\game\gamemodes\objective.dm" +#include "code\game\gamemodes\objective_items.dm" +#include "code\game\gamemodes\objective_sabotage.dm" +#include "code\game\gamemodes\bloodsucker\bloodsucker.dm" +#include "code\game\gamemodes\bloodsucker\hunter.dm" +#include "code\game\gamemodes\brother\traitor_bro.dm" +#include "code\game\gamemodes\changeling\changeling.dm" +#include "code\game\gamemodes\changeling\traitor_chan.dm" +#include "code\game\gamemodes\clock_cult\clock_cult.dm" +#include "code\game\gamemodes\clown_ops\bananium_bomb.dm" +#include "code\game\gamemodes\clown_ops\clown_ops.dm" +#include "code\game\gamemodes\clown_ops\clown_weapons.dm" +#include "code\game\gamemodes\cult\cult.dm" +#include "code\game\gamemodes\devil\devil_game_mode.dm" +#include "code\game\gamemodes\devil\game_mode.dm" +#include "code\game\gamemodes\devil\objectives.dm" +#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" +#include "code\game\gamemodes\dynamic\dynamic.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_minor.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" +#include "code\game\gamemodes\dynamic\dynamic_storytellers.dm" +#include "code\game\gamemodes\eldritch_cult\eldritch_cult.dm" +#include "code\game\gamemodes\extended\extended.dm" +#include "code\game\gamemodes\gangs\dominator.dm" +#include "code\game\gamemodes\gangs\dominator_countdown.dm" +#include "code\game\gamemodes\gangs\gang.dm" +#include "code\game\gamemodes\gangs\gang_datums.dm" +#include "code\game\gamemodes\gangs\gang_decals.dm" +#include "code\game\gamemodes\gangs\gang_hud.dm" +#include "code\game\gamemodes\gangs\gang_items.dm" +#include "code\game\gamemodes\gangs\gang_pen.dm" +#include "code\game\gamemodes\gangs\gangs.dm" +#include "code\game\gamemodes\gangs\gangtool.dm" +#include "code\game\gamemodes\gangs\implant_gang.dm" +#include "code\game\gamemodes\meteor\meteor.dm" +#include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\monkey\monkey.dm" +#include "code\game\gamemodes\nuclear\nuclear.dm" +#include "code\game\gamemodes\overthrow\objective.dm" +#include "code\game\gamemodes\overthrow\overthrow.dm" +#include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\sandbox\airlock_maker.dm" +#include "code\game\gamemodes\sandbox\h_sandbox.dm" +#include "code\game\gamemodes\sandbox\sandbox.dm" +#include "code\game\gamemodes\traitor\double_agents.dm" +#include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\machinery\_machinery.dm" +#include "code\game\machinery\ai_slipper.dm" +#include "code\game\machinery\airlock_control.dm" +#include "code\game\machinery\announcement_system.dm" +#include "code\game\machinery\aug_manipulator.dm" +#include "code\game\machinery\autolathe.dm" +#include "code\game\machinery\bank_machine.dm" +#include "code\game\machinery\Beacon.dm" +#include "code\game\machinery\bloodbankgen.dm" +#include "code\game\machinery\buttons.dm" +#include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\cloning.dm" +#include "code\game\machinery\colormate.dm" +#include "code\game\machinery\constructable_frame.dm" +#include "code\game\machinery\cryopod.dm" +#include "code\game\machinery\dance_machine.dm" +#include "code\game\machinery\defibrillator_mount.dm" +#include "code\game\machinery\deployable.dm" +#include "code\game\machinery\dish_drive.dm" +#include "code\game\machinery\dna_scanner.dm" +#include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\droneDispenser.dm" +#include "code\game\machinery\firealarm.dm" +#include "code\game\machinery\flasher.dm" +#include "code\game\machinery\gulag_item_reclaimer.dm" +#include "code\game\machinery\gulag_teleporter.dm" +#include "code\game\machinery\harvester.dm" +#include "code\game\machinery\hologram.dm" +#include "code\game\machinery\hypnochair.dm" +#include "code\game\machinery\igniter.dm" +#include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\launch_pad.dm" +#include "code\game\machinery\lightswitch.dm" +#include "code\game\machinery\limbgrower.dm" +#include "code\game\machinery\magnet.dm" +#include "code\game\machinery\mass_driver.dm" +#include "code\game\machinery\navbeacon.dm" +#include "code\game\machinery\PDApainter.dm" +#include "code\game\machinery\quantum_pad.dm" +#include "code\game\machinery\recharger.dm" +#include "code\game\machinery\rechargestation.dm" +#include "code\game\machinery\recycler.dm" +#include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\sheetifier.dm" +#include "code\game\machinery\shieldgen.dm" +#include "code\game\machinery\Sleeper.dm" +#include "code\game\machinery\slotmachine.dm" +#include "code\game\machinery\spaceheater.dm" +#include "code\game\machinery\status_display.dm" +#include "code\game\machinery\suit_storage_unit.dm" +#include "code\game\machinery\syndicatebeacon.dm" +#include "code\game\machinery\syndicatebomb.dm" +#include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\transformer.dm" +#include "code\game\machinery\turnstile.dm" +#include "code\game\machinery\washing_machine.dm" +#include "code\game\machinery\wishgranter.dm" +#include "code\game\machinery\camera\camera.dm" +#include "code\game\machinery\camera\camera_assembly.dm" +#include "code\game\machinery\camera\motion.dm" +#include "code\game\machinery\camera\presets.dm" +#include "code\game\machinery\camera\tracking.dm" +#include "code\game\machinery\computer\_computer.dm" +#include "code\game\machinery\computer\aifixer.dm" +#include "code\game\machinery\computer\apc_control.dm" +#include "code\game\machinery\computer\arcade.dm" +#include "code\game\machinery\computer\atmos_alert.dm" +#include "code\game\machinery\computer\atmos_control.dm" +#include "code\game\machinery\computer\buildandrepair.dm" +#include "code\game\machinery\computer\camera.dm" +#include "code\game\machinery\computer\camera_advanced.dm" +#include "code\game\machinery\computer\card.dm" +#include "code\game\machinery\computer\cloning.dm" +#include "code\game\machinery\computer\communications.dm" +#include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\dna_console.dm" +#include "code\game\machinery\computer\launchpad_control.dm" +#include "code\game\machinery\computer\law.dm" +#include "code\game\machinery\computer\medical.dm" +#include "code\game\machinery\computer\Operating.dm" +#include "code\game\machinery\computer\pod.dm" +#include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\security.dm" +#include "code\game\machinery\computer\station_alert.dm" +#include "code\game\machinery\computer\telecrystalconsoles.dm" +#include "code\game\machinery\computer\teleporter.dm" +#include "code\game\machinery\computer\arcade\battle.dm" +#include "code\game\machinery\computer\arcade\minesweeper.dm" +#include "code\game\machinery\computer\arcade\misc_arcade.dm" +#include "code\game\machinery\computer\arcade\orion_trail.dm" +#include "code\game\machinery\computer\prisoner\_prisoner.dm" +#include "code\game\machinery\computer\prisoner\gulag_teleporter.dm" +#include "code\game\machinery\computer\prisoner\management.dm" +#include "code\game\machinery\doors\airlock.dm" +#include "code\game\machinery\doors\airlock_electronics.dm" +#include "code\game\machinery\doors\airlock_types.dm" +#include "code\game\machinery\doors\alarmlock.dm" +#include "code\game\machinery\doors\brigdoors.dm" +#include "code\game\machinery\doors\checkForMultipleDoors.dm" +#include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\passworddoor.dm" +#include "code\game\machinery\doors\poddoor.dm" +#include "code\game\machinery\doors\shutters.dm" +#include "code\game\machinery\doors\unpowered.dm" +#include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\embedded_controller\access_controller.dm" +#include "code\game\machinery\embedded_controller\airlock_controller.dm" +#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" +#include "code\game\machinery\embedded_controller\simple_vent_controller.dm" +#include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\pipe_dispenser.dm" +#include "code\game\machinery\porta_turret\portable_turret.dm" +#include "code\game\machinery\porta_turret\portable_turret_construct.dm" +#include "code\game\machinery\porta_turret\portable_turret_cover.dm" +#include "code\game\machinery\poweredfans\fan_assembly.dm" +#include "code\game\machinery\poweredfans\poweredfans.dm" +#include "code\game\machinery\shuttle\custom_shuttle.dm" +#include "code\game\machinery\shuttle\shuttle_engine.dm" +#include "code\game\machinery\shuttle\shuttle_heater.dm" +#include "code\game\machinery\telecomms\broadcasting.dm" +#include "code\game\machinery\telecomms\machine_interactions.dm" +#include "code\game\machinery\telecomms\telecomunications.dm" +#include "code\game\machinery\telecomms\computers\logbrowser.dm" +#include "code\game\machinery\telecomms\computers\message.dm" +#include "code\game\machinery\telecomms\computers\telemonitor.dm" +#include "code\game\machinery\telecomms\machines\allinone.dm" +#include "code\game\machinery\telecomms\machines\broadcaster.dm" +#include "code\game\machinery\telecomms\machines\bus.dm" +#include "code\game\machinery\telecomms\machines\hub.dm" +#include "code\game\machinery\telecomms\machines\message_server.dm" +#include "code\game\machinery\telecomms\machines\processor.dm" +#include "code\game\machinery\telecomms\machines\receiver.dm" +#include "code\game\machinery\telecomms\machines\relay.dm" +#include "code\game\machinery\telecomms\machines\server.dm" +#include "code\game\mecha\mech_bay.dm" +#include "code\game\mecha\mech_fabricator.dm" +#include "code\game\mecha\mecha.dm" +#include "code\game\mecha\mecha_actions.dm" +#include "code\game\mecha\mecha_construction_paths.dm" +#include "code\game\mecha\mecha_control_console.dm" +#include "code\game\mecha\mecha_defense.dm" +#include "code\game\mecha\mecha_parts.dm" +#include "code\game\mecha\mecha_topic.dm" +#include "code\game\mecha\mecha_wreckage.dm" +#include "code\game\mecha\combat\combat.dm" +#include "code\game\mecha\combat\durand.dm" +#include "code\game\mecha\combat\gygax.dm" +#include "code\game\mecha\combat\honker.dm" +#include "code\game\mecha\combat\marauder.dm" +#include "code\game\mecha\combat\neovgre.dm" +#include "code\game\mecha\combat\phazon.dm" +#include "code\game\mecha\combat\reticence.dm" +#include "code\game\mecha\equipment\mecha_equipment.dm" +#include "code\game\mecha\equipment\tools\medical_tools.dm" +#include "code\game\mecha\equipment\tools\mining_tools.dm" +#include "code\game\mecha\equipment\tools\other_tools.dm" +#include "code\game\mecha\equipment\tools\work_tools.dm" +#include "code\game\mecha\equipment\weapons\mecha_ammo.dm" +#include "code\game\mecha\equipment\weapons\weapons.dm" +#include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\medigax.dm" +#include "code\game\mecha\medical\odysseus.dm" +#include "code\game\mecha\working\ripley.dm" +#include "code\game\mecha\working\working.dm" +#include "code\game\objects\buckling.dm" +#include "code\game\objects\empulse.dm" +#include "code\game\objects\items.dm" +#include "code\game\objects\obj_defense.dm" +#include "code\game\objects\objs.dm" +#include "code\game\objects\structures.dm" +#include "code\game\objects\effects\alien_acid.dm" +#include "code\game\objects\effects\anomalies.dm" +#include "code\game\objects\effects\arachnid_web.dm" +#include "code\game\objects\effects\blessing.dm" +#include "code\game\objects\effects\bump_teleporter.dm" +#include "code\game\objects\effects\contraband.dm" +#include "code\game\objects\effects\countdown.dm" +#include "code\game\objects\effects\effects.dm" +#include "code\game\objects\effects\forcefields.dm" +#include "code\game\objects\effects\glowshroom.dm" +#include "code\game\objects\effects\landmarks.dm" +#include "code\game\objects\effects\mines.dm" +#include "code\game\objects\effects\misc.dm" +#include "code\game\objects\effects\overlays.dm" +#include "code\game\objects\effects\portals.dm" +#include "code\game\objects\effects\proximity.dm" +#include "code\game\objects\effects\spiders.dm" +#include "code\game\objects\effects\step_triggers.dm" +#include "code\game\objects\effects\wanted_poster.dm" +#include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\crayon.dm" +#include "code\game\objects\effects\decals\decal.dm" +#include "code\game\objects\effects\decals\misc.dm" +#include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\vgdecals.dm" +#include "code\game\objects\effects\decals\cleanable\aliens.dm" +#include "code\game\objects\effects\decals\cleanable\gibs.dm" +#include "code\game\objects\effects\decals\cleanable\humans.dm" +#include "code\game\objects\effects\decals\cleanable\misc.dm" +#include "code\game\objects\effects\decals\cleanable\robots.dm" +#include "code\game\objects\effects\decals\turfdecal\dirt.dm" +#include "code\game\objects\effects\decals\turfdecal\markings.dm" +#include "code\game\objects\effects\decals\turfdecal\tilecoloring.dm" +#include "code\game\objects\effects\decals\turfdecal\weather.dm" +#include "code\game\objects\effects\effect_system\effect_system.dm" +#include "code\game\objects\effects\effect_system\effects_explosion.dm" +#include "code\game\objects\effects\effect_system\effects_foam.dm" +#include "code\game\objects\effects\effect_system\effects_other.dm" +#include "code\game\objects\effects\effect_system\effects_smoke.dm" +#include "code\game\objects\effects\effect_system\effects_sparks.dm" +#include "code\game\objects\effects\effect_system\effects_water.dm" +#include "code\game\objects\effects\spawners\bombspawner.dm" +#include "code\game\objects\effects\spawners\bundle.dm" +#include "code\game\objects\effects\spawners\gibspawner.dm" +#include "code\game\objects\effects\spawners\lootdrop.dm" +#include "code\game\objects\effects\spawners\structure.dm" +#include "code\game\objects\effects\spawners\traps.dm" +#include "code\game\objects\effects\spawners\vaultspawner.dm" +#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" +#include "code\game\objects\effects\temporary_visuals\clockcult.dm" +#include "code\game\objects\effects\temporary_visuals\cult.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" +#include "code\game\objects\items\AI_modules.dm" +#include "code\game\objects\items\airlock_painter.dm" +#include "code\game\objects\items\apc_frame.dm" +#include "code\game\objects\items\armor_kits.dm" +#include "code\game\objects\items\binoculars.dm" +#include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\body_egg.dm" +#include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\boombox.dm" +#include "code\game\objects\items\broom.dm" +#include "code\game\objects\items\candle.dm" +#include "code\game\objects\items\cardboard_cutouts.dm" +#include "code\game\objects\items\cards_ids.dm" +#include "code\game\objects\items\chainsaw.dm" +#include "code\game\objects\items\charter.dm" +#include "code\game\objects\items\chromosome.dm" +#include "code\game\objects\items\chrono_eraser.dm" +#include "code\game\objects\items\cigs_lighters.dm" +#include "code\game\objects\items\clown_items.dm" +#include "code\game\objects\items\control_wand.dm" +#include "code\game\objects\items\cosmetics.dm" +#include "code\game\objects\items\courtroom.dm" +#include "code\game\objects\items\crab17.dm" +#include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\credit_holochip.dm" +#include "code\game\objects\items\debug_items.dm" +#include "code\game\objects\items\defib.dm" +#include "code\game\objects\items\dehy_carp.dm" +#include "code\game\objects\items\dice.dm" +#include "code\game\objects\items\dna_injector.dm" +#include "code\game\objects\items\documents.dm" +#include "code\game\objects\items\dualsaber.dm" +#include "code\game\objects\items\eightball.dm" +#include "code\game\objects\items\electrostaff.dm" +#include "code\game\objects\items\extinguisher.dm" +#include "code\game\objects\items\fireaxe.dm" +#include "code\game\objects\items\flamethrower.dm" +#include "code\game\objects\items\fluff.dm" +#include "code\game\objects\items\gift.dm" +#include "code\game\objects\items\granters.dm" +#include "code\game\objects\items\handcuffs.dm" +#include "code\game\objects\items\his_grace.dm" +#include "code\game\objects\items\holosign_creator.dm" +#include "code\game\objects\items\holy_weapons.dm" +#include "code\game\objects\items\hot_potato.dm" +#include "code\game\objects\items\inducer.dm" +#include "code\game\objects\items\kitchen.dm" +#include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\manuals.dm" +#include "code\game\objects\items\miscellaneous.dm" +#include "code\game\objects\items\mop.dm" +#include "code\game\objects\items\paint.dm" +#include "code\game\objects\items\paiwire.dm" +#include "code\game\objects\items\pet_carrier.dm" +#include "code\game\objects\items\pinpointer.dm" +#include "code\game\objects\items\pitchfork.dm" +#include "code\game\objects\items\plushes.dm" +#include "code\game\objects\items\pneumaticCannon.dm" +#include "code\game\objects\items\powerfist.dm" +#include "code\game\objects\items\puzzle_pieces.dm" +#include "code\game\objects\items\RCD.dm" +#include "code\game\objects\items\RCL.dm" +#include "code\game\objects\items\religion.dm" +#include "code\game\objects\items\RPD.dm" +#include "code\game\objects\items\RSF.dm" +#include "code\game\objects\items\scrolls.dm" +#include "code\game\objects\items\sharpener.dm" +#include "code\game\objects\items\shields.dm" +#include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\shrapnel.dm" +#include "code\game\objects\items\signs.dm" +#include "code\game\objects\items\singularityhammer.dm" +#include "code\game\objects\items\spear.dm" +#include "code\game\objects\items\stunbaton.dm" +#include "code\game\objects\items\taster.dm" +#include "code\game\objects\items\teleportation.dm" +#include "code\game\objects\items\teleprod.dm" +#include "code\game\objects\items\telescopic_iv.dm" +#include "code\game\objects\items\theft_tools.dm" +#include "code\game\objects\items\toys.dm" +#include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\vending_items.dm" +#include "code\game\objects\items\weaponry.dm" +#include "code\game\objects\items\circuitboards\circuitboard.dm" +#include "code\game\objects\items\circuitboards\computer_circuitboards.dm" +#include "code\game\objects\items\circuitboards\machine_circuitboards.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\anomaly_neutralizer.dm" +#include "code\game\objects\items\devices\beacon.dm" +#include "code\game\objects\items\devices\camera_bug.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\compressionkit.dm" +#include "code\game\objects\items\devices\desynchronizer.dm" +#include "code\game\objects\items\devices\dogborg_sleeper.dm" +#include "code\game\objects\items\devices\doorCharge.dm" +#include "code\game\objects\items\devices\electroadaptive_pseudocircuit.dm" +#include "code\game\objects\items\devices\electrochromatic_kit.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\forcefieldprojector.dm" +#include "code\game\objects\items\devices\geiger_counter.dm" +#include "code\game\objects\items\devices\glue.dm" +#include "code\game\objects\items\devices\gps.dm" +#include "code\game\objects\items\devices\laserpointer.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\megaphone.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\polycircuit.dm" +#include "code\game\objects\items\devices\portable_chem_mixer.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\pressureplates.dm" +#include "code\game\objects\items\devices\quantum_keycard.dm" +#include "code\game\objects\items\devices\reverse_bear_trap.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\sensor_device.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\PDA\cart.dm" +#include "code\game\objects\items\devices\PDA\PDA.dm" +#include "code\game\objects\items\devices\PDA\PDA_types.dm" +#include "code\game\objects\items\devices\PDA\radio.dm" +#include "code\game\objects\items\devices\PDA\virus_cart.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\grenades\antigravity.dm" +#include "code\game\objects\items\grenades\chem_grenade.dm" +#include "code\game\objects\items\grenades\clusterbuster.dm" +#include "code\game\objects\items\grenades\emgrenade.dm" +#include "code\game\objects\items\grenades\flashbang.dm" +#include "code\game\objects\items\grenades\ghettobomb.dm" +#include "code\game\objects\items\grenades\grenade.dm" +#include "code\game\objects\items\grenades\plastic.dm" +#include "code\game\objects\items\grenades\smokebomb.dm" +#include "code\game\objects\items\grenades\spawnergrenade.dm" +#include "code\game\objects\items\grenades\syndieminibomb.dm" +#include "code\game\objects\items\implants\implant.dm" +#include "code\game\objects\items\implants\implant_abductor.dm" +#include "code\game\objects\items\implants\implant_chem.dm" +#include "code\game\objects\items\implants\implant_clown.dm" +#include "code\game\objects\items\implants\implant_deathrattle.dm" +#include "code\game\objects\items\implants\implant_exile.dm" +#include "code\game\objects\items\implants\implant_explosive.dm" +#include "code\game\objects\items\implants\implant_freedom.dm" +#include "code\game\objects\items\implants\implant_hijack.dm" +#include "code\game\objects\items\implants\implant_krav_maga.dm" +#include "code\game\objects\items\implants\implant_mindshield.dm" +#include "code\game\objects\items\implants\implant_misc.dm" +#include "code\game\objects\items\implants\implant_radio.dm" +#include "code\game\objects\items\implants\implant_spell.dm" +#include "code\game\objects\items\implants\implant_stealth.dm" +#include "code\game\objects\items\implants\implant_storage.dm" +#include "code\game\objects\items\implants\implant_track.dm" +#include "code\game\objects\items\implants\implant_uplink.dm" +#include "code\game\objects\items\implants\implantcase.dm" +#include "code\game\objects\items\implants\implantchair.dm" +#include "code\game\objects\items\implants\implanter.dm" +#include "code\game\objects\items\implants\implantpad.dm" +#include "code\game\objects\items\melee\energy.dm" +#include "code\game\objects\items\melee\misc.dm" +#include "code\game\objects\items\melee\transforming.dm" +#include "code\game\objects\items\robot\ai_upgrades.dm" +#include "code\game\objects\items\robot\robot_items.dm" +#include "code\game\objects\items\robot\robot_parts.dm" +#include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\stacks\bscrystal.dm" +#include "code\game\objects\items\stacks\cash.dm" +#include "code\game\objects\items\stacks\medical.dm" +#include "code\game\objects\items\stacks\rods.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\tape.dm" +#include "code\game\objects\items\stacks\telecrystal.dm" +#include "code\game\objects\items\stacks\tickets.dm" +#include "code\game\objects\items\stacks\wrap.dm" +#include "code\game\objects\items\stacks\sheets\glass.dm" +#include "code\game\objects\items\stacks\sheets\leather.dm" +#include "code\game\objects\items\stacks\sheets\light.dm" +#include "code\game\objects\items\stacks\sheets\mineral.dm" +#include "code\game\objects\items\stacks\sheets\sheet_types.dm" +#include "code\game\objects\items\stacks\sheets\sheets.dm" +#include "code\game\objects\items\stacks\tiles\light.dm" +#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" +#include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\storage\_storage.dm" +#include "code\game\objects\items\storage\backpack.dm" +#include "code\game\objects\items\storage\bags.dm" +#include "code\game\objects\items\storage\belt.dm" +#include "code\game\objects\items\storage\book.dm" +#include "code\game\objects\items\storage\boxes.dm" +#include "code\game\objects\items\storage\briefcase.dm" +#include "code\game\objects\items\storage\dakis.dm" +#include "code\game\objects\items\storage\fancy.dm" +#include "code\game\objects\items\storage\firstaid.dm" +#include "code\game\objects\items\storage\lockbox.dm" +#include "code\game\objects\items\storage\secure.dm" +#include "code\game\objects\items\storage\toolbox.dm" +#include "code\game\objects\items\storage\uplink_kits.dm" +#include "code\game\objects\items\storage\wallets.dm" +#include "code\game\objects\items\tanks\jetpack.dm" +#include "code\game\objects\items\tanks\tank_types.dm" +#include "code\game\objects\items\tanks\tanks.dm" +#include "code\game\objects\items\tanks\watertank.dm" +#include "code\game\objects\items\tools\crowbar.dm" +#include "code\game\objects\items\tools\screwdriver.dm" +#include "code\game\objects\items\tools\weldingtool.dm" +#include "code\game\objects\items\tools\wirecutters.dm" +#include "code\game\objects\items\tools\wrench.dm" +#include "code\game\objects\structures\ai_core.dm" +#include "code\game\objects\structures\aliens.dm" +#include "code\game\objects\structures\artstuff.dm" +#include "code\game\objects\structures\barsigns.dm" +#include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\chess.dm" +#include "code\game\objects\structures\destructible_structures.dm" +#include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\divine.dm" +#include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\door_assembly_types.dm" +#include "code\game\objects\structures\dresser.dm" +#include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\false_walls.dm" +#include "code\game\objects\structures\femur_breaker.dm" +#include "code\game\objects\structures\fence.dm" +#include "code\game\objects\structures\fireaxe.dm" +#include "code\game\objects\structures\fireplace.dm" +#include "code\game\objects\structures\flora.dm" +#include "code\game\objects\structures\fluff.dm" +#include "code\game\objects\structures\fugitive_role_spawners.dm" +#include "code\game\objects\structures\ghost_role_spawners.dm" +#include "code\game\objects\structures\girders.dm" +#include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\guillotine.dm" +#include "code\game\objects\structures\guncase.dm" +#include "code\game\objects\structures\headpike.dm" +#include "code\game\objects\structures\hivebot.dm" +#include "code\game\objects\structures\holosign.dm" +#include "code\game\objects\structures\janicart.dm" +#include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\ladders.dm" +#include "code\game\objects\structures\lattice.dm" +#include "code\game\objects\structures\life_candle.dm" +#include "code\game\objects\structures\loom.dm" +#include "code\game\objects\structures\loot_pile.dm" +#include "code\game\objects\structures\manned_turret.dm" +#include "code\game\objects\structures\memorial.dm" +#include "code\game\objects\structures\mineral_doors.dm" +#include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\mop_bucket.dm" +#include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\noticeboard.dm" +#include "code\game\objects\structures\petrified_statue.dm" +#include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\railings.dm" +#include "code\game\objects\structures\reflector.dm" +#include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\showcase.dm" +#include "code\game\objects\structures\spawner.dm" +#include "code\game\objects\structures\spirit_board.dm" +#include "code\game\objects\structures\stairs.dm" +#include "code\game\objects\structures\statues.dm" +#include "code\game\objects\structures\table_frames.dm" +#include "code\game\objects\structures\tables_racks.dm" +#include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\traps.dm" +#include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\windoor_assembly.dm" +#include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\beds_chairs\alien_nest.dm" +#include "code\game\objects\structures\beds_chairs\bed.dm" +#include "code\game\objects\structures\beds_chairs\chair.dm" +#include "code\game\objects\structures\beds_chairs\pew.dm" +#include "code\game\objects\structures\beds_chairs\sofa.dm" +#include "code\game\objects\structures\crates_lockers\closets.dm" +#include "code\game\objects\structures\crates_lockers\crates.dm" +#include "code\game\objects\structures\crates_lockers\closets\bodybag.dm" +#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" +#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\genpop.dm" +#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" +#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" +#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\misc.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\crates_lockers\crates\bins.dm" +#include "code\game\objects\structures\crates_lockers\crates\critter.dm" +#include "code\game\objects\structures\crates_lockers\crates\large.dm" +#include "code\game\objects\structures\crates_lockers\crates\secure.dm" +#include "code\game\objects\structures\crates_lockers\crates\wooden.dm" +#include "code\game\objects\structures\icemoon\cave_entrance.dm" +#include "code\game\objects\structures\lavaland\geyser.dm" +#include "code\game\objects\structures\lavaland\necropolis_tendril.dm" +#include "code\game\objects\structures\signs\_signs.dm" +#include "code\game\objects\structures\signs\signs_departments.dm" +#include "code\game\objects\structures\signs\signs_maps.dm" +#include "code\game\objects\structures\signs\signs_plaques.dm" +#include "code\game\objects\structures\signs\signs_warning.dm" +#include "code\game\objects\structures\transit_tubes\station.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" +#include "code\game\turfs\baseturf_skipover.dm" +#include "code\game\turfs\change_turf.dm" +#include "code\game\turfs\closed.dm" +#include "code\game\turfs\open.dm" +#include "code\game\turfs\turf.dm" +#include "code\game\turfs\simulated\chasm.dm" +#include "code\game\turfs\simulated\dirtystation.dm" +#include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\glass.dm" +#include "code\game\turfs\simulated\lava.dm" +#include "code\game\turfs\simulated\minerals.dm" +#include "code\game\turfs\simulated\openspace.dm" +#include "code\game\turfs\simulated\reebe_void.dm" +#include "code\game\turfs\simulated\river.dm" +#include "code\game\turfs\simulated\walls.dm" +#include "code\game\turfs\simulated\water.dm" +#include "code\game\turfs\simulated\floor\fancy_floor.dm" +#include "code\game\turfs\simulated\floor\light_floor.dm" +#include "code\game\turfs\simulated\floor\mineral_floor.dm" +#include "code\game\turfs\simulated\floor\misc_floor.dm" +#include "code\game\turfs\simulated\floor\plasteel_floor.dm" +#include "code\game\turfs\simulated\floor\plating.dm" +#include "code\game\turfs\simulated\floor\reinf_floor.dm" +#include "code\game\turfs\simulated\floor\plating\asteroid.dm" +#include "code\game\turfs\simulated\floor\plating\dirt.dm" +#include "code\game\turfs\simulated\floor\plating\misc_plating.dm" +#include "code\game\turfs\simulated\wall\material_walls.dm" +#include "code\game\turfs\simulated\wall\mineral_walls.dm" +#include "code\game\turfs\simulated\wall\misc_walls.dm" +#include "code\game\turfs\simulated\wall\reinf_walls.dm" +#include "code\game\turfs\space\space.dm" +#include "code\game\turfs\space\transit.dm" +#include "code\modules\actionspeed\_actionspeed_modifier.dm" +#include "code\modules\actionspeed\modifiers\base.dm" +#include "code\modules\actionspeed\modifiers\mood.dm" +#include "code\modules\actionspeed\modifiers\status_effects.dm" +#include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_investigate.dm" +#include "code\modules\admin\admin_ranks.dm" +#include "code\modules\admin\admin_verbs.dm" +#include "code\modules\admin\adminmenu.dm" +#include "code\modules\admin\antag_panel.dm" +#include "code\modules\admin\banjob.dm" +#include "code\modules\admin\chat_commands.dm" +#include "code\modules\admin\check_antagonists.dm" +#include "code\modules\admin\create_mob.dm" +#include "code\modules\admin\create_object.dm" +#include "code\modules\admin\create_poll.dm" +#include "code\modules\admin\create_turf.dm" +#include "code\modules\admin\fun_balloon.dm" +#include "code\modules\admin\holder2.dm" +#include "code\modules\admin\ipintel.dm" +#include "code\modules\admin\IsBanned.dm" +#include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\outfit_editor.dm" +#include "code\modules\admin\outfit_manager.dm" +#include "code\modules\admin\outfits.dm" +#include "code\modules\admin\permissionedit.dm" +#include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\sound_emitter.dm" +#include "code\modules\admin\sql_message_system.dm" +#include "code\modules\admin\stickyban.dm" +#include "code\modules\admin\topic.dm" +#include "code\modules\admin\whitelist.dm" +#include "code\modules\admin\callproc\callproc.dm" +#include "code\modules\admin\DB_ban\functions.dm" +#include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminjump.dm" +#include "code\modules\admin\verbs\adminpm.dm" +#include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\ak47s.dm" +#include "code\modules\admin\verbs\atmosdebug.dm" +#include "code\modules\admin\verbs\bluespacearty.dm" +#include "code\modules\admin\verbs\borgpanel.dm" +#include "code\modules\admin\verbs\BrokenInhands.dm" +#include "code\modules\admin\verbs\cinematic.dm" +#include "code\modules\admin\verbs\deadsay.dm" +#include "code\modules\admin\verbs\debug.dm" +#include "code\modules\admin\verbs\diagnostics.dm" +#include "code\modules\admin\verbs\dice.dm" +#include "code\modules\admin\verbs\fps.dm" +#include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\individual_logging.dm" +#include "code\modules\admin\verbs\machine_upgrade.dm" +#include "code\modules\admin\verbs\manipulate_organs.dm" +#include "code\modules\admin\verbs\map_template_loadverb.dm" +#include "code\modules\admin\verbs\mapping.dm" +#include "code\modules\admin\verbs\maprotation.dm" +#include "code\modules\admin\verbs\one_click_antag.dm" +#include "code\modules\admin\verbs\onlyone.dm" +#include "code\modules\admin\verbs\panicbunker.dm" +#include "code\modules\admin\verbs\playsound.dm" +#include "code\modules\admin\verbs\possess.dm" +#include "code\modules\admin\verbs\pray.dm" +#include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\reestablish_db_connection.dm" +#include "code\modules\admin\verbs\secrets.dm" +#include "code\modules\admin\verbs\selectequipment.dm" +#include "code\modules\admin\verbs\shuttlepanel.dm" +#include "code\modules\admin\verbs\spawnobjasmob.dm" +#include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" +#include "code\modules\admin\view_variables\admin_delete.dm" +#include "code\modules\admin\view_variables\debug_variables.dm" +#include "code\modules\admin\view_variables\filterrific.dm" +#include "code\modules\admin\view_variables\get_variables.dm" +#include "code\modules\admin\view_variables\mark_datum.dm" +#include "code\modules\admin\view_variables\mass_edit_variables.dm" +#include "code\modules\admin\view_variables\modify_variables.dm" +#include "code\modules\admin\view_variables\reference_tracking.dm" +#include "code\modules\admin\view_variables\topic.dm" +#include "code\modules\admin\view_variables\topic_basic.dm" +#include "code\modules\admin\view_variables\topic_list.dm" +#include "code\modules\admin\view_variables\view_variables.dm" +#include "code\modules\antagonists\_common\antag_datum.dm" +#include "code\modules\antagonists\_common\antag_helpers.dm" +#include "code\modules\antagonists\_common\antag_hud.dm" +#include "code\modules\antagonists\_common\antag_spawner.dm" +#include "code\modules\antagonists\_common\antag_team.dm" +#include "code\modules\antagonists\abductor\abductor.dm" +#include "code\modules\antagonists\abductor\ice_abductor.dm" +#include "code\modules\antagonists\abductor\abductee\abductee.dm" +#include "code\modules\antagonists\abductor\abductee\abductee_objectives.dm" +#include "code\modules\antagonists\abductor\abductee\trauma.dm" +#include "code\modules\antagonists\abductor\equipment\abduction_gear.dm" +#include "code\modules\antagonists\abductor\equipment\abduction_outfits.dm" +#include "code\modules\antagonists\abductor\equipment\abduction_surgery.dm" +#include "code\modules\antagonists\abductor\equipment\gland.dm" +#include "code\modules\antagonists\abductor\equipment\orderable_gear.dm" +#include "code\modules\antagonists\abductor\equipment\glands\access.dm" +#include "code\modules\antagonists\abductor\equipment\glands\blood.dm" +#include "code\modules\antagonists\abductor\equipment\glands\chem.dm" +#include "code\modules\antagonists\abductor\equipment\glands\egg.dm" +#include "code\modules\antagonists\abductor\equipment\glands\electric.dm" +#include "code\modules\antagonists\abductor\equipment\glands\heal.dm" +#include "code\modules\antagonists\abductor\equipment\glands\mindshock.dm" +#include "code\modules\antagonists\abductor\equipment\glands\plasma.dm" +#include "code\modules\antagonists\abductor\equipment\glands\quantum.dm" +#include "code\modules\antagonists\abductor\equipment\glands\slime.dm" +#include "code\modules\antagonists\abductor\equipment\glands\spider.dm" +#include "code\modules\antagonists\abductor\equipment\glands\transform.dm" +#include "code\modules\antagonists\abductor\equipment\glands\trauma.dm" +#include "code\modules\antagonists\abductor\equipment\glands\ventcrawl.dm" +#include "code\modules\antagonists\abductor\equipment\glands\viral.dm" +#include "code\modules\antagonists\abductor\machinery\camera.dm" +#include "code\modules\antagonists\abductor\machinery\console.dm" +#include "code\modules\antagonists\abductor\machinery\dispenser.dm" +#include "code\modules\antagonists\abductor\machinery\experiment.dm" +#include "code\modules\antagonists\abductor\machinery\pad.dm" +#include "code\modules\antagonists\blob\blob.dm" +#include "code\modules\antagonists\blob\blob\blob_report.dm" +#include "code\modules\antagonists\blob\blob\overmind.dm" +#include "code\modules\antagonists\blob\blob\powers.dm" +#include "code\modules\antagonists\blob\blob\theblob.dm" +#include "code\modules\antagonists\blob\blob\blobs\blob_mobs.dm" +#include "code\modules\antagonists\blob\blob\blobs\core.dm" +#include "code\modules\antagonists\blob\blob\blobs\factory.dm" +#include "code\modules\antagonists\blob\blob\blobs\node.dm" +#include "code\modules\antagonists\blob\blob\blobs\resource.dm" +#include "code\modules\antagonists\blob\blob\blobs\shield.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\_blobstrain.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\_reagent.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\blazing_oil.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\cryogenic_poison.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\electromagnetic_web.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\energized_jelly.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\explosive_lattice.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\multiplex.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\networked_fibers.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\pressurized_slime.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\reactive_spines.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\regenerative_materia.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\replicating_foam.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\shifting_fragments.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\synchronous_mesh.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\zombifying_pods.dm" +#include "code\modules\antagonists\blood_contract\blood_contract.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_flaws.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_integration.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_life.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_objectives.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_powers.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_sunlight.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_ui.dm" +#include "code\modules\antagonists\bloodsucker\datum_bloodsucker.dm" +#include "code\modules\antagonists\bloodsucker\datum_hunter.dm" +#include "code\modules\antagonists\bloodsucker\datum_vassal.dm" +#include "code\modules\antagonists\bloodsucker\items\bloodsucker_organs.dm" +#include "code\modules\antagonists\bloodsucker\items\bloodsucker_stake.dm" +#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_coffin.dm" +#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_crypt.dm" +#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_lair.dm" +#include "code\modules\antagonists\bloodsucker\powers\brawn.dm" +#include "code\modules\antagonists\bloodsucker\powers\cloak.dm" +#include "code\modules\antagonists\bloodsucker\powers\feed.dm" +#include "code\modules\antagonists\bloodsucker\powers\fortitude.dm" +#include "code\modules\antagonists\bloodsucker\powers\go_home.dm" +#include "code\modules\antagonists\bloodsucker\powers\haste.dm" +#include "code\modules\antagonists\bloodsucker\powers\lunge.dm" +#include "code\modules\antagonists\bloodsucker\powers\masquerade.dm" +#include "code\modules\antagonists\bloodsucker\powers\mesmerize.dm" +#include "code\modules\antagonists\bloodsucker\powers\recuperate.dm" +#include "code\modules\antagonists\bloodsucker\powers\trespass.dm" +#include "code\modules\antagonists\bloodsucker\powers\veil.dm" +#include "code\modules\antagonists\brainwashing\brainwashing.dm" +#include "code\modules\antagonists\brother\brother.dm" +#include "code\modules\antagonists\changeling\cellular_emporium.dm" +#include "code\modules\antagonists\changeling\changeling.dm" +#include "code\modules\antagonists\changeling\changeling_power.dm" +#include "code\modules\antagonists\changeling\powers\absorb.dm" +#include "code\modules\antagonists\changeling\powers\adrenaline.dm" +#include "code\modules\antagonists\changeling\powers\augmented_eyesight.dm" +#include "code\modules\antagonists\changeling\powers\biodegrade.dm" +#include "code\modules\antagonists\changeling\powers\chameleon_skin.dm" +#include "code\modules\antagonists\changeling\powers\digitalcamo.dm" +#include "code\modules\antagonists\changeling\powers\fakedeath.dm" +#include "code\modules\antagonists\changeling\powers\fleshmend.dm" +#include "code\modules\antagonists\changeling\powers\headcrab.dm" +#include "code\modules\antagonists\changeling\powers\hivemind.dm" +#include "code\modules\antagonists\changeling\powers\humanform.dm" +#include "code\modules\antagonists\changeling\powers\lesserform.dm" +#include "code\modules\antagonists\changeling\powers\linglink.dm" +#include "code\modules\antagonists\changeling\powers\mimic_voice.dm" +#include "code\modules\antagonists\changeling\powers\mutations.dm" +#include "code\modules\antagonists\changeling\powers\panacea.dm" +#include "code\modules\antagonists\changeling\powers\pheromone_receptors.dm" +#include "code\modules\antagonists\changeling\powers\regenerate.dm" +#include "code\modules\antagonists\changeling\powers\revive.dm" +#include "code\modules\antagonists\changeling\powers\shriek.dm" +#include "code\modules\antagonists\changeling\powers\spiders.dm" +#include "code\modules\antagonists\changeling\powers\strained_muscles.dm" +#include "code\modules\antagonists\changeling\powers\tiny_prick.dm" +#include "code\modules\antagonists\changeling\powers\transform.dm" +#include "code\modules\antagonists\clockcult\clock_effect.dm" +#include "code\modules\antagonists\clockcult\clock_item.dm" +#include "code\modules\antagonists\clockcult\clock_mobs.dm" +#include "code\modules\antagonists\clockcult\clock_scripture.dm" +#include "code\modules\antagonists\clockcult\clock_structure.dm" +#include "code\modules\antagonists\clockcult\clockcult.dm" +#include "code\modules\antagonists\clockcult\clock_effects\city_of_cogs_rift.dm" +#include "code\modules\antagonists\clockcult\clock_effects\clock_overlay.dm" +#include "code\modules\antagonists\clockcult\clock_effects\clock_sigils.dm" +#include "code\modules\antagonists\clockcult\clock_effects\general_markers.dm" +#include "code\modules\antagonists\clockcult\clock_effects\servant_blocker.dm" +#include "code\modules\antagonists\clockcult\clock_effects\spatial_gateway.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\clock_powerdrain.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\clock_rites.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\component_helpers.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\fabrication_helpers.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\hierophant_network.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\power_helpers.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\ratvarian_language.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\scripture_checks.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\slab_abilities.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_augments.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_components.dm" +#include "code\modules\antagonists\clockcult\clock_items\clockwork_armor.dm" +#include "code\modules\antagonists\clockcult\clock_items\clockwork_slab.dm" +#include "code\modules\antagonists\clockcult\clock_items\clockwork_weaponry.dm" +#include "code\modules\antagonists\clockcult\clock_items\construct_chassis.dm" +#include "code\modules\antagonists\clockcult\clock_items\integration_cog.dm" +#include "code\modules\antagonists\clockcult\clock_items\judicial_visor.dm" +#include "code\modules\antagonists\clockcult\clock_items\replica_fabricator.dm" +#include "code\modules\antagonists\clockcult\clock_items\soul_vessel.dm" +#include "code\modules\antagonists\clockcult\clock_items\wraith_spectacles.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\_call_weapon.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\brass_claw.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_shield.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_spear.dm" +#include "code\modules\antagonists\clockcult\clock_mobs\_eminence.dm" +#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_guardian.dm" +#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_marauder.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_applications.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_cyborg.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_drivers.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_judgement.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_scripts.dm" +#include "code\modules\antagonists\clockcult\clock_structures\_trap_object.dm" +#include "code\modules\antagonists\clockcult\clock_structures\ark_of_the_clockwork_justicar.dm" +#include "code\modules\antagonists\clockcult\clock_structures\clockwork_obelisk.dm" +#include "code\modules\antagonists\clockcult\clock_structures\eminence_spire.dm" +#include "code\modules\antagonists\clockcult\clock_structures\heralds_beacon.dm" +#include "code\modules\antagonists\clockcult\clock_structures\mania_motor.dm" +#include "code\modules\antagonists\clockcult\clock_structures\ocular_warden.dm" +#include "code\modules\antagonists\clockcult\clock_structures\prolonging_prism.dm" +#include "code\modules\antagonists\clockcult\clock_structures\ratvar_the_clockwork_justicar.dm" +#include "code\modules\antagonists\clockcult\clock_structures\reflector.dm" +#include "code\modules\antagonists\clockcult\clock_structures\stargazer.dm" +#include "code\modules\antagonists\clockcult\clock_structures\taunting_trail.dm" +#include "code\modules\antagonists\clockcult\clock_structures\wall_gear.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\lever.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor_mech.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\repeater.dm" +#include "code\modules\antagonists\clockcult\clock_structures\traps\brass_skewer.dm" +#include "code\modules\antagonists\clockcult\clock_structures\traps\power_null.dm" +#include "code\modules\antagonists\clockcult\clock_structures\traps\steam_vent.dm" +#include "code\modules\antagonists\collector\collector.dm" +#include "code\modules\antagonists\cult\blood_magic.dm" +#include "code\modules\antagonists\cult\cult.dm" +#include "code\modules\antagonists\cult\cult_comms.dm" +#include "code\modules\antagonists\cult\cult_items.dm" +#include "code\modules\antagonists\cult\cult_structures.dm" +#include "code\modules\antagonists\cult\ritual.dm" +#include "code\modules\antagonists\cult\rune_spawn_action.dm" +#include "code\modules\antagonists\cult\runes.dm" +#include "code\modules\antagonists\devil\devil.dm" +#include "code\modules\antagonists\devil\devil_helpers.dm" +#include "code\modules\antagonists\devil\imp\imp.dm" +#include "code\modules\antagonists\devil\sintouched\objectives.dm" +#include "code\modules\antagonists\devil\sintouched\sintouched.dm" +#include "code\modules\antagonists\devil\true_devil\_true_devil.dm" +#include "code\modules\antagonists\devil\true_devil\inventory.dm" +#include "code\modules\antagonists\disease\disease_abilities.dm" +#include "code\modules\antagonists\disease\disease_datum.dm" +#include "code\modules\antagonists\disease\disease_disease.dm" +#include "code\modules\antagonists\disease\disease_event.dm" +#include "code\modules\antagonists\disease\disease_mob.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_antag.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_book.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_effects.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_items.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_knowledge.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_magic.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_monster_antag.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_structures.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\ash_lore.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\flesh_lore.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\rust_lore.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\void_lore.dm" +#include "code\modules\antagonists\ert\ert.dm" +#include "code\modules\antagonists\fugitive\fugitive.dm" +#include "code\modules\antagonists\fugitive\fugitive_outfits.dm" +#include "code\modules\antagonists\fugitive\fugitive_ship.dm" +#include "code\modules\antagonists\fugitive\hunter.dm" +#include "code\modules\antagonists\greentext\greentext.dm" +#include "code\modules\antagonists\greybois\greybois.dm" +#include "code\modules\antagonists\highlander\highlander.dm" +#include "code\modules\antagonists\magic_servant\magic_servant.dm" +#include "code\modules\antagonists\monkey\monkey.dm" +#include "code\modules\antagonists\morph\morph.dm" +#include "code\modules\antagonists\morph\morph_antag.dm" +#include "code\modules\antagonists\nightmare\nightmare.dm" +#include "code\modules\antagonists\ninja\ninja.dm" +#include "code\modules\antagonists\nukeop\clownop.dm" +#include "code\modules\antagonists\nukeop\nukeop.dm" +#include "code\modules\antagonists\nukeop\equipment\borgchameleon.dm" +#include "code\modules\antagonists\nukeop\equipment\nuclear_challenge.dm" +#include "code\modules\antagonists\nukeop\equipment\nuclearbomb.dm" +#include "code\modules\antagonists\nukeop\equipment\pinpointer.dm" +#include "code\modules\antagonists\official\official.dm" +#include "code\modules\antagonists\overthrow\overthrow.dm" +#include "code\modules\antagonists\overthrow\overthrow_converter.dm" +#include "code\modules\antagonists\overthrow\overthrow_team.dm" +#include "code\modules\antagonists\pirate\pirate.dm" +#include "code\modules\antagonists\revenant\revenant.dm" +#include "code\modules\antagonists\revenant\revenant_abilities.dm" +#include "code\modules\antagonists\revenant\revenant_antag.dm" +#include "code\modules\antagonists\revenant\revenant_blight.dm" +#include "code\modules\antagonists\revenant\revenant_spawn_event.dm" +#include "code\modules\antagonists\revolution\revolution.dm" +#include "code\modules\antagonists\santa\santa.dm" +#include "code\modules\antagonists\separatist\separatist.dm" +#include "code\modules\antagonists\slaughter\slaughter.dm" +#include "code\modules\antagonists\slaughter\slaughter_antag.dm" +#include "code\modules\antagonists\slaughter\slaughterevent.dm" +#include "code\modules\antagonists\survivalist\survivalist.dm" +#include "code\modules\antagonists\swarmer\swarmer.dm" +#include "code\modules\antagonists\swarmer\swarmer_event.dm" +#include "code\modules\antagonists\traitor\datum_traitor.dm" +#include "code\modules\antagonists\traitor\syndicate_contract.dm" +#include "code\modules\antagonists\traitor\classes\ai.dm" +#include "code\modules\antagonists\traitor\classes\assassin.dm" +#include "code\modules\antagonists\traitor\classes\freeform.dm" +#include "code\modules\antagonists\traitor\classes\hijack.dm" +#include "code\modules\antagonists\traitor\classes\human.dm" +#include "code\modules\antagonists\traitor\classes\martyr.dm" +#include "code\modules\antagonists\traitor\classes\subterfuge.dm" +#include "code\modules\antagonists\traitor\classes\traitor_class.dm" +#include "code\modules\antagonists\traitor\equipment\contractor.dm" +#include "code\modules\antagonists\traitor\equipment\Malf_Modules.dm" +#include "code\modules\antagonists\traitor\IAA\internal_affairs.dm" +#include "code\modules\antagonists\valentines\heartbreaker.dm" +#include "code\modules\antagonists\valentines\valentine.dm" +#include "code\modules\antagonists\wishgranter\wishgranter.dm" +#include "code\modules\antagonists\wizard\wizard.dm" +#include "code\modules\antagonists\wizard\equipment\artefact.dm" +#include "code\modules\antagonists\wizard\equipment\soulstone.dm" +#include "code\modules\antagonists\wizard\equipment\spellbook.dm" +#include "code\modules\antagonists\xeno\xeno.dm" +#include "code\modules\arousal\arousal.dm" +#include "code\modules\arousal\genitals.dm" +#include "code\modules\arousal\genitals_sprite_accessories.dm" +#include "code\modules\arousal\organs\breasts.dm" +#include "code\modules\arousal\organs\penis.dm" +#include "code\modules\arousal\organs\testicles.dm" +#include "code\modules\arousal\organs\vagina.dm" +#include "code\modules\arousal\organs\womb.dm" +#include "code\modules\arousal\toys\dildos.dm" +#include "code\modules\assembly\assembly.dm" +#include "code\modules\assembly\bomb.dm" +#include "code\modules\assembly\doorcontrol.dm" +#include "code\modules\assembly\flash.dm" +#include "code\modules\assembly\health.dm" +#include "code\modules\assembly\helpers.dm" +#include "code\modules\assembly\holder.dm" +#include "code\modules\assembly\igniter.dm" +#include "code\modules\assembly\infrared.dm" +#include "code\modules\assembly\mousetrap.dm" +#include "code\modules\assembly\playback.dm" +#include "code\modules\assembly\proximity.dm" +#include "code\modules\assembly\shock_kit.dm" +#include "code\modules\assembly\signaler.dm" +#include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" +#include "code\modules\asset_cache\asset_cache_client.dm" +#include "code\modules\asset_cache\asset_cache_item.dm" +#include "code\modules\asset_cache\asset_list.dm" +#include "code\modules\asset_cache\asset_list_items.dm" +#include "code\modules\asset_cache\transports\asset_transport.dm" +#include "code\modules\asset_cache\transports\webroot_transport.dm" +#include "code\modules\atmospherics\multiz.dm" +#include "code\modules\atmospherics\environmental\LINDA_fire.dm" +#include "code\modules\atmospherics\environmental\LINDA_system.dm" +#include "code\modules\atmospherics\environmental\LINDA_turf_tile.dm" +#include "code\modules\atmospherics\gasmixtures\gas_mixture.dm" +#include "code\modules\atmospherics\gasmixtures\gas_types.dm" +#include "code\modules\atmospherics\gasmixtures\immutable_mixtures.dm" +#include "code\modules\atmospherics\gasmixtures\reactions.dm" +#include "code\modules\atmospherics\machinery\airalarm.dm" +#include "code\modules\atmospherics\machinery\atmosmachinery.dm" +#include "code\modules\atmospherics\machinery\datum_pipeline.dm" +#include "code\modules\atmospherics\machinery\components\components_base.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\binary_devices.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\circulator.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\dp_vent_pump.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\passive_gate.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\pump.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\relief_valve.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\valve.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\volume_pump.dm" +#include "code\modules\atmospherics\machinery\components\trinary_devices\filter.dm" +#include "code\modules\atmospherics\machinery\components\trinary_devices\mixer.dm" +#include "code\modules\atmospherics\machinery\components\trinary_devices\trinary_devices.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\cryo.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\heat_exchanger.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\outlet_injector.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\passive_vent.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\portables_connector.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\relief_valve.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\tank.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\thermomachine.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\unary_devices.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\vent_pump.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\vent_scrubber.dm" +#include "code\modules\atmospherics\machinery\other\meter.dm" +#include "code\modules\atmospherics\machinery\other\miner.dm" +#include "code\modules\atmospherics\machinery\pipes\bluespace.dm" +#include "code\modules\atmospherics\machinery\pipes\layermanifold.dm" +#include "code\modules\atmospherics\machinery\pipes\manifold.dm" +#include "code\modules\atmospherics\machinery\pipes\manifold4w.dm" +#include "code\modules\atmospherics\machinery\pipes\mapping.dm" +#include "code\modules\atmospherics\machinery\pipes\pipes.dm" +#include "code\modules\atmospherics\machinery\pipes\simple.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\he_pipes.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\junction.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold4w.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\simple.dm" +#include "code\modules\atmospherics\machinery\portable\canister.dm" +#include "code\modules\atmospherics\machinery\portable\portable_atmospherics.dm" +#include "code\modules\atmospherics\machinery\portable\pump.dm" +#include "code\modules\atmospherics\machinery\portable\scrubber.dm" +#include "code\modules\awaymissions\away_props.dm" +#include "code\modules\awaymissions\bluespaceartillery.dm" +#include "code\modules\awaymissions\capture_the_flag.dm" +#include "code\modules\awaymissions\corpse.dm" +#include "code\modules\awaymissions\exile.dm" +#include "code\modules\awaymissions\gateway.dm" +#include "code\modules\awaymissions\pamphlet.dm" +#include "code\modules\awaymissions\signpost.dm" +#include "code\modules\awaymissions\super_secret_room.dm" +#include "code\modules\awaymissions\zlevel.dm" +#include "code\modules\awaymissions\mission_code\Academy.dm" +#include "code\modules\awaymissions\mission_code\Cabin.dm" +#include "code\modules\awaymissions\mission_code\caves.dm" +#include "code\modules\awaymissions\mission_code\centcomAway.dm" +#include "code\modules\awaymissions\mission_code\challenge.dm" +#include "code\modules\awaymissions\mission_code\jungleresort.dm" +#include "code\modules\awaymissions\mission_code\moonoutpost19.dm" +#include "code\modules\awaymissions\mission_code\murderdome.dm" +#include "code\modules\awaymissions\mission_code\research.dm" +#include "code\modules\awaymissions\mission_code\snowdin.dm" +#include "code\modules\awaymissions\mission_code\stationCollision.dm" +#include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" +#include "code\modules\awaymissions\mission_code\wildwest.dm" +#include "code\modules\buildmode\bm_mode.dm" +#include "code\modules\buildmode\buildmode.dm" +#include "code\modules\buildmode\buttons.dm" +#include "code\modules\buildmode\effects\line.dm" +#include "code\modules\buildmode\submodes\advanced.dm" +#include "code\modules\buildmode\submodes\area_edit.dm" +#include "code\modules\buildmode\submodes\basic.dm" +#include "code\modules\buildmode\submodes\boom.dm" +#include "code\modules\buildmode\submodes\copy.dm" +#include "code\modules\buildmode\submodes\fill.dm" +#include "code\modules\buildmode\submodes\mapgen.dm" +#include "code\modules\buildmode\submodes\throwing.dm" +#include "code\modules\buildmode\submodes\variable_edit.dm" +#include "code\modules\cargo\bounty.dm" +#include "code\modules\cargo\bounty_console.dm" +#include "code\modules\cargo\centcom_podlauncher.dm" +#include "code\modules\cargo\console.dm" +#include "code\modules\cargo\coupon.dm" +#include "code\modules\cargo\export_scanner.dm" +#include "code\modules\cargo\exports.dm" +#include "code\modules\cargo\expressconsole.dm" +#include "code\modules\cargo\gondolapod.dm" +#include "code\modules\cargo\order.dm" +#include "code\modules\cargo\packs.dm" +#include "code\modules\cargo\supplypod.dm" +#include "code\modules\cargo\supplypod_beacon.dm" +#include "code\modules\cargo\blackmarket\blackmarket_item.dm" +#include "code\modules\cargo\blackmarket\blackmarket_market.dm" +#include "code\modules\cargo\blackmarket\blackmarket_telepad.dm" +#include "code\modules\cargo\blackmarket\blackmarket_uplink.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\clothing.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\consumables.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\misc.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\tools.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\weapons.dm" +#include "code\modules\cargo\bounties\assistant.dm" +#include "code\modules\cargo\bounties\botany.dm" +#include "code\modules\cargo\bounties\chef.dm" +#include "code\modules\cargo\bounties\engineering.dm" +#include "code\modules\cargo\bounties\gardencook.dm" +#include "code\modules\cargo\bounties\item.dm" +#include "code\modules\cargo\bounties\mech.dm" +#include "code\modules\cargo\bounties\medical.dm" +#include "code\modules\cargo\bounties\mining.dm" +#include "code\modules\cargo\bounties\reagent.dm" +#include "code\modules\cargo\bounties\science.dm" +#include "code\modules\cargo\bounties\security.dm" +#include "code\modules\cargo\bounties\silly.dm" +#include "code\modules\cargo\bounties\slime.dm" +#include "code\modules\cargo\bounties\special.dm" +#include "code\modules\cargo\bounties\virus.dm" +#include "code\modules\cargo\exports\food_wine.dm" +#include "code\modules\cargo\exports\gear.dm" +#include "code\modules\cargo\exports\large_objects.dm" +#include "code\modules\cargo\exports\manifest.dm" +#include "code\modules\cargo\exports\materials.dm" +#include "code\modules\cargo\exports\organs_robotics.dm" +#include "code\modules\cargo\exports\parts.dm" +#include "code\modules\cargo\exports\seeds.dm" +#include "code\modules\cargo\exports\sheets.dm" +#include "code\modules\cargo\exports\tools.dm" +#include "code\modules\cargo\exports\weapons.dm" +#include "code\modules\cargo\packs\armory.dm" +#include "code\modules\cargo\packs\costumes_toys.dm" +#include "code\modules\cargo\packs\emergency.dm" +#include "code\modules\cargo\packs\engine.dm" +#include "code\modules\cargo\packs\engineering.dm" +#include "code\modules\cargo\packs\goodies.dm" +#include "code\modules\cargo\packs\livestock.dm" +#include "code\modules\cargo\packs\materials.dm" +#include "code\modules\cargo\packs\medical.dm" +#include "code\modules\cargo\packs\misc.dm" +#include "code\modules\cargo\packs\organic.dm" +#include "code\modules\cargo\packs\science.dm" +#include "code\modules\cargo\packs\security.dm" +#include "code\modules\cargo\packs\service.dm" +#include "code\modules\cargo\packs\vending.dm" +#include "code\modules\chatter\chatter.dm" +#include "code\modules\client\client_colour.dm" +#include "code\modules\client\client_defines.dm" +#include "code\modules\client\client_procs.dm" +#include "code\modules\client\message.dm" +#include "code\modules\client\player_details.dm" +#include "code\modules\client\preferences.dm" +#include "code\modules\client\preferences_savefile.dm" +#include "code\modules\client\preferences_toggles.dm" +#include "code\modules\client\preferences_vr.dm" +#include "code\modules\client\verbs\aooc.dm" +#include "code\modules\client\verbs\autobunker.dm" +#include "code\modules\client\verbs\etips.dm" +#include "code\modules\client\verbs\looc.dm" +#include "code\modules\client\verbs\minimap.dm" +#include "code\modules\client\verbs\ooc.dm" +#include "code\modules\client\verbs\ping.dm" +#include "code\modules\client\verbs\suicide.dm" +#include "code\modules\client\verbs\who.dm" +#include "code\modules\clothing\chameleon.dm" +#include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\ears\_ears.dm" +#include "code\modules\clothing\glasses\_glasses.dm" +#include "code\modules\clothing\glasses\disablerglasses.dm" +#include "code\modules\clothing\glasses\engine_goggles.dm" +#include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\glasses\phantomthief.dm" +#include "code\modules\clothing\gloves\_gloves.dm" +#include "code\modules\clothing\gloves\boxing.dm" +#include "code\modules\clothing\gloves\color.dm" +#include "code\modules\clothing\gloves\miscellaneous.dm" +#include "code\modules\clothing\gloves\ring.dm" +#include "code\modules\clothing\gloves\tacklers.dm" +#include "code\modules\clothing\head\_head.dm" +#include "code\modules\clothing\head\beanie.dm" +#include "code\modules\clothing\head\collectable.dm" +#include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\helmet.dm" +#include "code\modules\clothing\head\jobs.dm" +#include "code\modules\clothing\head\misc.dm" +#include "code\modules\clothing\head\misc_special.dm" +#include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\masks\_masks.dm" +#include "code\modules\clothing\masks\boxing.dm" +#include "code\modules\clothing\masks\breath.dm" +#include "code\modules\clothing\masks\cluwne.dm" +#include "code\modules\clothing\masks\gasmask.dm" +#include "code\modules\clothing\masks\hailer.dm" +#include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\neck\_neck.dm" +#include "code\modules\clothing\outfits\ert.dm" +#include "code\modules\clothing\outfits\event.dm" +#include "code\modules\clothing\outfits\plasmaman.dm" +#include "code\modules\clothing\outfits\standard.dm" +#include "code\modules\clothing\outfits\vr.dm" +#include "code\modules\clothing\outfits\vv_outfit.dm" +#include "code\modules\clothing\shoes\_shoes.dm" +#include "code\modules\clothing\shoes\bananashoes.dm" +#include "code\modules\clothing\shoes\cluwne.dm" +#include "code\modules\clothing\shoes\colour.dm" +#include "code\modules\clothing\shoes\magboots.dm" +#include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\shoes\taeclowndo.dm" +#include "code\modules\clothing\spacesuits\_spacesuits.dm" +#include "code\modules\clothing\spacesuits\chronosuit.dm" +#include "code\modules\clothing\spacesuits\hardsuit.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\plasmamen.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\suits\_suits.dm" +#include "code\modules\clothing\suits\armor.dm" +#include "code\modules\clothing\suits\bio.dm" +#include "code\modules\clothing\suits\cloaks.dm" +#include "code\modules\clothing\suits\jobs.dm" +#include "code\modules\clothing\suits\labcoat.dm" +#include "code\modules\clothing\suits\miscellaneous.dm" +#include "code\modules\clothing\suits\reactive_armour.dm" +#include "code\modules\clothing\suits\toggles.dm" +#include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\under\_under.dm" +#include "code\modules\clothing\under\accessories.dm" +#include "code\modules\clothing\under\cluwne.dm" +#include "code\modules\clothing\under\color.dm" +#include "code\modules\clothing\under\costume.dm" +#include "code\modules\clothing\under\miscellaneous.dm" +#include "code\modules\clothing\under\pants.dm" +#include "code\modules\clothing\under\shorts.dm" +#include "code\modules\clothing\under\skirt_dress.dm" +#include "code\modules\clothing\under\suits.dm" +#include "code\modules\clothing\under\sweaters.dm" +#include "code\modules\clothing\under\syndicate.dm" +#include "code\modules\clothing\under\trek.dm" +#include "code\modules\clothing\under\jobs\cargo.dm" +#include "code\modules\clothing\under\jobs\centcom.dm" +#include "code\modules\clothing\under\jobs\command.dm" +#include "code\modules\clothing\under\jobs\engineering.dm" +#include "code\modules\clothing\under\jobs\medical.dm" +#include "code\modules\clothing\under\jobs\rnd.dm" +#include "code\modules\clothing\under\jobs\security.dm" +#include "code\modules\clothing\under\jobs\civilian\civilian.dm" +#include "code\modules\clothing\under\jobs\civilian\clown_mime.dm" +#include "code\modules\clothing\under\jobs\civilian\curator.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\civilian_service.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\engineering.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\medsci.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\security.dm" +#include "code\modules\detectivework\detective_work.dm" +#include "code\modules\detectivework\evidence.dm" +#include "code\modules\detectivework\scanner.dm" +#include "code\modules\economy\_economy.dm" +#include "code\modules\economy\account.dm" +#include "code\modules\economy\paystand.dm" +#include "code\modules\emoji\emoji_parse.dm" +#include "code\modules\error_handler\error_handler.dm" +#include "code\modules\error_handler\error_viewer.dm" +#include "code\modules\events\_event.dm" +#include "code\modules\events\abductor.dm" +#include "code\modules\events\alien_infestation.dm" +#include "code\modules\events\anomaly.dm" +#include "code\modules\events\anomaly_bluespace.dm" +#include "code\modules\events\anomaly_flux.dm" +#include "code\modules\events\anomaly_grav.dm" +#include "code\modules\events\anomaly_pyro.dm" +#include "code\modules\events\anomaly_vortex.dm" +#include "code\modules\events\aurora_caelus.dm" +#include "code\modules\events\blob.dm" +#include "code\modules\events\brain_trauma.dm" +#include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\bureaucratic_error.dm" +#include "code\modules\events\camerafailure.dm" +#include "code\modules\events\carp_migration.dm" +#include "code\modules\events\cat_surgeon.dm" +#include "code\modules\events\communications_blackout.dm" +#include "code\modules\events\devil.dm" +#include "code\modules\events\disease_outbreak.dm" +#include "code\modules\events\dust.dm" +#include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\fake_virus.dm" +#include "code\modules\events\false_alarm.dm" +#include "code\modules\events\floorcluwne.dm" +#include "code\modules\events\fugitive_spawning.dm" +#include "code\modules\events\ghost_role.dm" +#include "code\modules\events\grid_check.dm" +#include "code\modules\events\heart_attack.dm" +#include "code\modules\events\high_priority_bounty.dm" +#include "code\modules\events\immovable_rod.dm" +#include "code\modules\events\ion_storm.dm" +#include "code\modules\events\major_dust.dm" +#include "code\modules\events\mass_hallucination.dm" +#include "code\modules\events\meateor_wave.dm" +#include "code\modules\events\meteor_wave.dm" +#include "code\modules\events\mice_migration.dm" +#include "code\modules\events\nightmare.dm" +#include "code\modules\events\operative.dm" +#include "code\modules\events\pirates.dm" +#include "code\modules\events\portal_storm.dm" +#include "code\modules\events\prison_break.dm" +#include "code\modules\events\processor_overload.dm" +#include "code\modules\events\radiation_storm.dm" +#include "code\modules\events\sentience.dm" +#include "code\modules\events\shuttle_loan.dm" +#include "code\modules\events\spacevine.dm" +#include "code\modules\events\spider_infestation.dm" +#include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\stray_cargo.dm" +#include "code\modules\events\supermatter_surge.dm" +#include "code\modules\events\supernova.dm" +#include "code\modules\events\travelling_trader.dm" +#include "code\modules\events\vent_clog.dm" +#include "code\modules\events\wisdomcow.dm" +#include "code\modules\events\wormholes.dm" +#include "code\modules\events\holiday\halloween.dm" +#include "code\modules\events\holiday\vday.dm" +#include "code\modules\events\holiday\xmas.dm" +#include "code\modules\events\wizard\aid.dm" +#include "code\modules\events\wizard\blobies.dm" +#include "code\modules\events\wizard\curseditems.dm" +#include "code\modules\events\wizard\departmentrevolt.dm" +#include "code\modules\events\wizard\embeddies.dm" +#include "code\modules\events\wizard\fakeexplosion.dm" +#include "code\modules\events\wizard\ghost.dm" +#include "code\modules\events\wizard\greentext.dm" +#include "code\modules\events\wizard\imposter.dm" +#include "code\modules\events\wizard\invincible.dm" +#include "code\modules\events\wizard\lava.dm" +#include "code\modules\events\wizard\madness.dm" +#include "code\modules\events\wizard\magicarp.dm" +#include "code\modules\events\wizard\petsplosion.dm" +#include "code\modules\events\wizard\race.dm" +#include "code\modules\events\wizard\rpgloot.dm" +#include "code\modules\events\wizard\shuffle.dm" +#include "code\modules\events\wizard\summons.dm" +#include "code\modules\fields\fields.dm" +#include "code\modules\fields\gravity.dm" +#include "code\modules\fields\infinite_void.dm" +#include "code\modules\fields\peaceborg_dampener.dm" +#include "code\modules\fields\timestop.dm" +#include "code\modules\fields\turf_objects.dm" +#include "code\modules\flufftext\Dreaming.dm" +#include "code\modules\flufftext\Hallucination.dm" +#include "code\modules\food_and_drinks\autobottler.dm" +#include "code\modules\food_and_drinks\food.dm" +#include "code\modules\food_and_drinks\pizzabox.dm" +#include "code\modules\food_and_drinks\drinks\drinks.dm" +#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" +#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" +#include "code\modules\food_and_drinks\food\condiment.dm" +#include "code\modules\food_and_drinks\food\customizables.dm" +#include "code\modules\food_and_drinks\food\snacks.dm" +#include "code\modules\food_and_drinks\food\snacks_bread.dm" +#include "code\modules\food_and_drinks\food\snacks_burgers.dm" +#include "code\modules\food_and_drinks\food\snacks_cake.dm" +#include "code\modules\food_and_drinks\food\snacks_egg.dm" +#include "code\modules\food_and_drinks\food\snacks_frozen.dm" +#include "code\modules\food_and_drinks\food\snacks_meat.dm" +#include "code\modules\food_and_drinks\food\snacks_other.dm" +#include "code\modules\food_and_drinks\food\snacks_pastry.dm" +#include "code\modules\food_and_drinks\food\snacks_pie.dm" +#include "code\modules\food_and_drinks\food\snacks_pizza.dm" +#include "code\modules\food_and_drinks\food\snacks_salad.dm" +#include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm" +#include "code\modules\food_and_drinks\food\snacks_soup.dm" +#include "code\modules\food_and_drinks\food\snacks_spaghetti.dm" +#include "code\modules\food_and_drinks\food\snacks_sushi.dm" +#include "code\modules\food_and_drinks\food\snacks_vend.dm" +#include "code\modules\food_and_drinks\food\snacks\dough.dm" +#include "code\modules\food_and_drinks\food\snacks\meat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\grill.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" +#include "code\modules\food_and_drinks\recipes\drinks_recipes.dm" +#include "code\modules\food_and_drinks\recipes\food_mixtures.dm" +#include "code\modules\food_and_drinks\recipes\processor_recipes.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_bread.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_burger.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_cake.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_donut.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_egg.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_frozen.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_meat.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_mexican.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_misc.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pastry.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pies_sweets.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pizza.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_salad.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_seafood.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" +#include "code\modules\games\cas.dm" +#include "code\modules\games\unum.dm" +#include "code\modules\holiday\easter.dm" +#include "code\modules\holiday\holidays.dm" +#include "code\modules\holiday\halloween\bartholomew.dm" +#include "code\modules\holiday\halloween\jacqueen.dm" +#include "code\modules\holodeck\area_copy.dm" +#include "code\modules\holodeck\computer.dm" +#include "code\modules\holodeck\holo_effect.dm" +#include "code\modules\holodeck\items.dm" +#include "code\modules\holodeck\mobs.dm" +#include "code\modules\holodeck\turfs.dm" +#include "code\modules\hydroponics\biogenerator.dm" +#include "code\modules\hydroponics\fermenting_barrel.dm" +#include "code\modules\hydroponics\gene_modder.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\growninedible.dm" +#include "code\modules\hydroponics\hydroitemdefines.dm" +#include "code\modules\hydroponics\hydroponics.dm" +#include "code\modules\hydroponics\hydroponics_chemreact.dm" +#include "code\modules\hydroponics\plant_genes.dm" +#include "code\modules\hydroponics\sample.dm" +#include "code\modules\hydroponics\seed_extractor.dm" +#include "code\modules\hydroponics\seeds.dm" +#include "code\modules\hydroponics\beekeeping\beebox.dm" +#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" +#include "code\modules\hydroponics\beekeeping\honey_frame.dm" +#include "code\modules\hydroponics\beekeeping\honeycomb.dm" +#include "code\modules\hydroponics\grown\ambrosia.dm" +#include "code\modules\hydroponics\grown\apple.dm" +#include "code\modules\hydroponics\grown\banana.dm" +#include "code\modules\hydroponics\grown\beans.dm" +#include "code\modules\hydroponics\grown\berries.dm" +#include "code\modules\hydroponics\grown\cannabis.dm" +#include "code\modules\hydroponics\grown\cereals.dm" +#include "code\modules\hydroponics\grown\chili.dm" +#include "code\modules\hydroponics\grown\citrus.dm" +#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" +#include "code\modules\hydroponics\grown\corn.dm" +#include "code\modules\hydroponics\grown\cotton.dm" +#include "code\modules\hydroponics\grown\eggplant.dm" +#include "code\modules\hydroponics\grown\flowers.dm" +#include "code\modules\hydroponics\grown\garlic.dm" +#include "code\modules\hydroponics\grown\grass_carpet.dm" +#include "code\modules\hydroponics\grown\kudzu.dm" +#include "code\modules\hydroponics\grown\melon.dm" +#include "code\modules\hydroponics\grown\misc.dm" +#include "code\modules\hydroponics\grown\mushrooms.dm" +#include "code\modules\hydroponics\grown\nettle.dm" +#include "code\modules\hydroponics\grown\onion.dm" +#include "code\modules\hydroponics\grown\peach.dm" +#include "code\modules\hydroponics\grown\peanuts.dm" +#include "code\modules\hydroponics\grown\peas.dm" +#include "code\modules\hydroponics\grown\pineapple.dm" +#include "code\modules\hydroponics\grown\potato.dm" +#include "code\modules\hydroponics\grown\pumpkin.dm" +#include "code\modules\hydroponics\grown\random.dm" +#include "code\modules\hydroponics\grown\replicapod.dm" +#include "code\modules\hydroponics\grown\root.dm" +#include "code\modules\hydroponics\grown\tea_coffee.dm" +#include "code\modules\hydroponics\grown\tobacco.dm" +#include "code\modules\hydroponics\grown\tomato.dm" +#include "code\modules\hydroponics\grown\towercap.dm" +#include "code\modules\instruments\instrument_data\_instrument_data.dm" +#include "code\modules\instruments\instrument_data\_instrument_key.dm" +#include "code\modules\instruments\instrument_data\brass.dm" +#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" +#include "code\modules\instruments\instrument_data\fun.dm" +#include "code\modules\instruments\instrument_data\guitar.dm" +#include "code\modules\instruments\instrument_data\hardcoded.dm" +#include "code\modules\instruments\instrument_data\organ.dm" +#include "code\modules\instruments\instrument_data\piano.dm" +#include "code\modules\instruments\instrument_data\synth_tones.dm" +#include "code\modules\instruments\instruments\item.dm" +#include "code\modules\instruments\instruments\stationary.dm" +#include "code\modules\instruments\songs\_song.dm" +#include "code\modules\instruments\songs\editor.dm" +#include "code\modules\instruments\songs\play_legacy.dm" +#include "code\modules\instruments\songs\play_synthesized.dm" +#include "code\modules\integrated_electronics\_defines.dm" +#include "code\modules\integrated_electronics\core\analyzer.dm" +#include "code\modules\integrated_electronics\core\assemblies.dm" +#include "code\modules\integrated_electronics\core\debugger.dm" +#include "code\modules\integrated_electronics\core\detailer.dm" +#include "code\modules\integrated_electronics\core\helpers.dm" +#include "code\modules\integrated_electronics\core\integrated_circuit.dm" +#include "code\modules\integrated_electronics\core\pins.dm" +#include "code\modules\integrated_electronics\core\printer.dm" +#include "code\modules\integrated_electronics\core\saved_circuits.dm" +#include "code\modules\integrated_electronics\core\wirer.dm" +#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\index_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\selfref_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm" +#include "code\modules\integrated_electronics\passive\passive.dm" +#include "code\modules\integrated_electronics\passive\power.dm" +#include "code\modules\integrated_electronics\subtypes\access.dm" +#include "code\modules\integrated_electronics\subtypes\arithmetic.dm" +#include "code\modules\integrated_electronics\subtypes\atmospherics.dm" +#include "code\modules\integrated_electronics\subtypes\converters.dm" +#include "code\modules\integrated_electronics\subtypes\data_transfer.dm" +#include "code\modules\integrated_electronics\subtypes\input.dm" +#include "code\modules\integrated_electronics\subtypes\lists.dm" +#include "code\modules\integrated_electronics\subtypes\logic.dm" +#include "code\modules\integrated_electronics\subtypes\manipulation.dm" +#include "code\modules\integrated_electronics\subtypes\memory.dm" +#include "code\modules\integrated_electronics\subtypes\output.dm" +#include "code\modules\integrated_electronics\subtypes\power.dm" +#include "code\modules\integrated_electronics\subtypes\reagents.dm" +#include "code\modules\integrated_electronics\subtypes\smart.dm" +#include "code\modules\integrated_electronics\subtypes\text.dm" +#include "code\modules\integrated_electronics\subtypes\time.dm" +#include "code\modules\integrated_electronics\subtypes\trig.dm" +#include "code\modules\integrated_electronics\subtypes\weaponized.dm" +#include "code\modules\jobs\access.dm" +#include "code\modules\jobs\job_exp.dm" +#include "code\modules\jobs\job_report.dm" +#include "code\modules\jobs\jobs.dm" +#include "code\modules\jobs\job_types\_job.dm" +#include "code\modules\jobs\job_types\ai.dm" +#include "code\modules\jobs\job_types\assistant.dm" +#include "code\modules\jobs\job_types\atmospheric_technician.dm" +#include "code\modules\jobs\job_types\bartender.dm" +#include "code\modules\jobs\job_types\botanist.dm" +#include "code\modules\jobs\job_types\captain.dm" +#include "code\modules\jobs\job_types\cargo_technician.dm" +#include "code\modules\jobs\job_types\chaplain.dm" +#include "code\modules\jobs\job_types\chemist.dm" +#include "code\modules\jobs\job_types\chief_engineer.dm" +#include "code\modules\jobs\job_types\chief_medical_officer.dm" +#include "code\modules\jobs\job_types\clown.dm" +#include "code\modules\jobs\job_types\cook.dm" +#include "code\modules\jobs\job_types\curator.dm" +#include "code\modules\jobs\job_types\cyborg.dm" +#include "code\modules\jobs\job_types\detective.dm" +#include "code\modules\jobs\job_types\geneticist.dm" +#include "code\modules\jobs\job_types\head_of_personnel.dm" +#include "code\modules\jobs\job_types\head_of_security.dm" +#include "code\modules\jobs\job_types\janitor.dm" +#include "code\modules\jobs\job_types\lawyer.dm" +#include "code\modules\jobs\job_types\medical_doctor.dm" +#include "code\modules\jobs\job_types\mime.dm" +#include "code\modules\jobs\job_types\paramedic.dm" +#include "code\modules\jobs\job_types\quartermaster.dm" +#include "code\modules\jobs\job_types\research_director.dm" +#include "code\modules\jobs\job_types\roboticist.dm" +#include "code\modules\jobs\job_types\scientist.dm" +#include "code\modules\jobs\job_types\security_officer.dm" +#include "code\modules\jobs\job_types\shaft_miner.dm" +#include "code\modules\jobs\job_types\station_engineer.dm" +#include "code\modules\jobs\job_types\virologist.dm" +#include "code\modules\jobs\job_types\warden.dm" +#include "code\modules\keybindings\bindings_atom.dm" +#include "code\modules\keybindings\bindings_client.dm" +#include "code\modules\keybindings\focus.dm" +#include "code\modules\keybindings\setup.dm" +#include "code\modules\keybindings\keybind\__defines.dm" +#include "code\modules\keybindings\keybind\_keybind.dm" +#include "code\modules\keybindings\keybind\admin.dm" +#include "code\modules\keybindings\keybind\carbon.dm" +#include "code\modules\keybindings\keybind\client.dm" +#include "code\modules\keybindings\keybind\combat.dm" +#include "code\modules\keybindings\keybind\communication.dm" +#include "code\modules\keybindings\keybind\emote.dm" +#include "code\modules\keybindings\keybind\human.dm" +#include "code\modules\keybindings\keybind\living.dm" +#include "code\modules\keybindings\keybind\mob.dm" +#include "code\modules\keybindings\keybind\movement.dm" +#include "code\modules\keybindings\keybind\robot.dm" +#include "code\modules\keybindings\keybind\targeting.dm" +#include "code\modules\language\aphasia.dm" +#include "code\modules\language\arachnid.dm" +#include "code\modules\language\beachbum.dm" +#include "code\modules\language\codespeak.dm" +#include "code\modules\language\common.dm" +#include "code\modules\language\draconic.dm" +#include "code\modules\language\drone.dm" +#include "code\modules\language\dwarven.dm" +#include "code\modules\language\language.dm" +#include "code\modules\language\language_holder.dm" +#include "code\modules\language\language_menu.dm" +#include "code\modules\language\machine.dm" +#include "code\modules\language\monkey.dm" +#include "code\modules\language\mushroom.dm" +#include "code\modules\language\narsian.dm" +#include "code\modules\language\ratvarian.dm" +#include "code\modules\language\signlanguage.dm" +#include "code\modules\language\slime.dm" +#include "code\modules\language\swarmer.dm" +#include "code\modules\language\sylvan.dm" +#include "code\modules\language\vampiric.dm" +#include "code\modules\language\voltaic.dm" +#include "code\modules\language\xenocommon.dm" +#include "code\modules\library\lib_codex_gigas.dm" +#include "code\modules\library\lib_items.dm" +#include "code\modules\library\lib_machines.dm" +#include "code\modules\library\random_books.dm" +#include "code\modules\library\soapstone.dm" +#include "code\modules\lighting\emissive_blocker.dm" +#include "code\modules\lighting\lighting_area.dm" +#include "code\modules\lighting\lighting_atom.dm" +#include "code\modules\lighting\lighting_corner.dm" +#include "code\modules\lighting\lighting_object.dm" +#include "code\modules\lighting\lighting_setup.dm" +#include "code\modules\lighting\lighting_source.dm" +#include "code\modules\lighting\lighting_turf.dm" +#include "code\modules\mafia\_defines.dm" +#include "code\modules\mafia\controller.dm" +#include "code\modules\mafia\map_pieces.dm" +#include "code\modules\mafia\outfits.dm" +#include "code\modules\mafia\roles.dm" +#include "code\modules\mapping\map_config.dm" +#include "code\modules\mapping\map_orientation_pattern.dm" +#include "code\modules\mapping\map_template.dm" +#include "code\modules\mapping\minimaps.dm" +#include "code\modules\mapping\preloader.dm" +#include "code\modules\mapping\reader.dm" +#include "code\modules\mapping\ruins.dm" +#include "code\modules\mapping\verify.dm" +#include "code\modules\mapping\mapping_helpers\_mapping_helpers.dm" +#include "code\modules\mapping\mapping_helpers\baseturf.dm" +#include "code\modules\mapping\mapping_helpers\network_builder\_network_builder.dm" +#include "code\modules\mapping\mapping_helpers\network_builder\atmos_pipe.dm" +#include "code\modules\mapping\mapping_helpers\network_builder\power_cables.dm" +#include "code\modules\mapping\space_management\multiz_helpers.dm" +#include "code\modules\mapping\space_management\space_level.dm" +#include "code\modules\mapping\space_management\space_reservation.dm" +#include "code\modules\mapping\space_management\space_transition.dm" +#include "code\modules\mapping\space_management\traits.dm" +#include "code\modules\mapping\space_management\zlevel_manager.dm" +#include "code\modules\mining\abandoned_crates.dm" +#include "code\modules\mining\aux_base.dm" +#include "code\modules\mining\aux_base_camera.dm" +#include "code\modules\mining\fulton.dm" +#include "code\modules\mining\machine_processing.dm" +#include "code\modules\mining\machine_redemption.dm" +#include "code\modules\mining\machine_silo.dm" +#include "code\modules\mining\machine_stacking.dm" +#include "code\modules\mining\machine_unloading.dm" +#include "code\modules\mining\machine_vending.dm" +#include "code\modules\mining\mine_items.dm" +#include "code\modules\mining\minebot.dm" +#include "code\modules\mining\mint.dm" +#include "code\modules\mining\money_bag.dm" +#include "code\modules\mining\ores_coins.dm" +#include "code\modules\mining\point_bank.dm" +#include "code\modules\mining\satchel_ore_boxdm.dm" +#include "code\modules\mining\shelters.dm" +#include "code\modules\mining\equipment\explorer_gear.dm" +#include "code\modules\mining\equipment\goliath_hide.dm" +#include "code\modules\mining\equipment\kinetic_crusher.dm" +#include "code\modules\mining\equipment\lazarus_injector.dm" +#include "code\modules\mining\equipment\marker_beacons.dm" +#include "code\modules\mining\equipment\mineral_scanner.dm" +#include "code\modules\mining\equipment\mining_tools.dm" +#include "code\modules\mining\equipment\regenerative_core.dm" +#include "code\modules\mining\equipment\resonator.dm" +#include "code\modules\mining\equipment\survival_pod.dm" +#include "code\modules\mining\equipment\vendor_items.dm" +#include "code\modules\mining\equipment\wormhole_jaunter.dm" +#include "code\modules\mining\laborcamp\laborshuttle.dm" +#include "code\modules\mining\laborcamp\laborstacker.dm" +#include "code\modules\mining\lavaland\ash_flora.dm" +#include "code\modules\mining\lavaland\necropolis_chests.dm" +#include "code\modules\mining\lavaland\ruins\gym.dm" +#include "code\modules\mob\clickdelay.dm" +#include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" +#include "code\modules\mob\innate_abilities.dm" +#include "code\modules\mob\inventory.dm" +#include "code\modules\mob\login.dm" +#include "code\modules\mob\logout.dm" +#include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" +#include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_transformation_simple.dm" +#include "code\modules\mob\say.dm" +#include "code\modules\mob\say_vr.dm" +#include "code\modules\mob\status_procs.dm" +#include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" +#include "code\modules\mob\update_icons.dm" +#include "code\modules\mob\camera\camera.dm" +#include "code\modules\mob\dead\dead.dm" +#include "code\modules\mob\dead\new_player\login.dm" +#include "code\modules\mob\dead\new_player\logout.dm" +#include "code\modules\mob\dead\new_player\new_player.dm" +#include "code\modules\mob\dead\new_player\poll.dm" +#include "code\modules\mob\dead\new_player\preferences_setup.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\_sprite_accessories.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\alienpeople.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\arachnid.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\body_markings.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\caps.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\Citadel_Snowflake.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\ears.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\frills.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\hair_head.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\horns.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\ipc_synths.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\spines.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\underwear.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\wings.dm" +#include "code\modules\mob\dead\observer\login.dm" +#include "code\modules\mob\dead\observer\logout.dm" +#include "code\modules\mob\dead\observer\notificationprefs.dm" +#include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\observer_movement.dm" +#include "code\modules\mob\dead\observer\orbit.dm" +#include "code\modules\mob\dead\observer\respawn.dm" +#include "code\modules\mob\dead\observer\say.dm" +#include "code\modules\mob\living\blood.dm" +#include "code\modules\mob\living\bloodcrawl.dm" +#include "code\modules\mob\living\clickdelay.dm" +#include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\death.dm" +#include "code\modules\mob\living\emote.dm" +#include "code\modules\mob\living\life.dm" +#include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_active_block.dm" +#include "code\modules\mob\living\living_active_parry.dm" +#include "code\modules\mob\living\living_block.dm" +#include "code\modules\mob\living\living_blocking_parrying.dm" +#include "code\modules\mob\living\living_defense.dm" +#include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\living_mobility.dm" +#include "code\modules\mob\living\living_movement.dm" +#include "code\modules\mob\living\living_signals.dm" +#include "code\modules\mob\living\living_sprint.dm" +#include "code\modules\mob\living\login.dm" +#include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\stamina_buffer.dm" +#include "code\modules\mob\living\status_procs.dm" +#include "code\modules\mob\living\taste.dm" +#include "code\modules\mob\living\update_icons.dm" +#include "code\modules\mob\living\ventcrawling.dm" +#include "code\modules\mob\living\brain\brain.dm" +#include "code\modules\mob\living\brain\brain_item.dm" +#include "code\modules\mob\living\brain\death.dm" +#include "code\modules\mob\living\brain\emote.dm" +#include "code\modules\mob\living\brain\life.dm" +#include "code\modules\mob\living\brain\MMI.dm" +#include "code\modules\mob\living\brain\posibrain.dm" +#include "code\modules\mob\living\brain\say.dm" +#include "code\modules\mob\living\brain\status_procs.dm" +#include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_active_parry.dm" +#include "code\modules\mob\living\carbon\carbon_defense.dm" +#include "code\modules\mob\living\carbon\carbon_defines.dm" +#include "code\modules\mob\living\carbon\carbon_movement.dm" +#include "code\modules\mob\living\carbon\carbon_sprint.dm" +#include "code\modules\mob\living\carbon\damage_procs.dm" +#include "code\modules\mob\living\carbon\death.dm" +#include "code\modules\mob\living\carbon\emote.dm" +#include "code\modules\mob\living\carbon\examine.dm" +#include "code\modules\mob\living\carbon\handle_corruption.dm" +#include "code\modules\mob\living\carbon\inventory.dm" +#include "code\modules\mob\living\carbon\life.dm" +#include "code\modules\mob\living\carbon\say.dm" +#include "code\modules\mob\living\carbon\status_procs.dm" +#include "code\modules\mob\living\carbon\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" +#include "code\modules\mob\living\carbon\alien\alien_defense.dm" +#include "code\modules\mob\living\carbon\alien\damage_procs.dm" +#include "code\modules\mob\living\carbon\alien\death.dm" +#include "code\modules\mob\living\carbon\alien\emote.dm" +#include "code\modules\mob\living\carbon\alien\life.dm" +#include "code\modules\mob\living\carbon\alien\login.dm" +#include "code\modules\mob\living\carbon\alien\logout.dm" +#include "code\modules\mob\living\carbon\alien\organs.dm" +#include "code\modules\mob\living\carbon\alien\say.dm" +#include "code\modules\mob\living\carbon\alien\screen.dm" +#include "code\modules\mob\living\carbon\alien\status_procs.dm" +#include "code\modules\mob\living\carbon\alien\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\death.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\praetorian.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" +#include "code\modules\mob\living\carbon\alien\larva\death.dm" +#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" +#include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\powers.dm" +#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" +#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" +#include "code\modules\mob\living\carbon\human\damage_procs.dm" +#include "code\modules\mob\living\carbon\human\death.dm" +#include "code\modules\mob\living\carbon\human\dummy.dm" +#include "code\modules\mob\living\carbon\human\emote.dm" +#include "code\modules\mob\living\carbon\human\examine.dm" +#include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_block.dm" +#include "code\modules\mob\living\carbon\human\human_defense.dm" +#include "code\modules\mob\living\carbon\human\human_defines.dm" +#include "code\modules\mob\living\carbon\human\human_helpers.dm" +#include "code\modules\mob\living\carbon\human\human_mobility.dm" +#include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\inventory.dm" +#include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\login.dm" +#include "code\modules\mob\living\carbon\human\physiology.dm" +#include "code\modules\mob\living\carbon\human\say.dm" +#include "code\modules\mob\living\carbon\human\species.dm" +#include "code\modules\mob\living\carbon\human\status_procs.dm" +#include "code\modules\mob\living\carbon\human\typing_indicator.dm" +#include "code\modules\mob\living\carbon\human\update_icons.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\blobform.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\customization.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\limb_regeneration.dm" +#include "code\modules\mob\living\carbon\human\species_types\abductor.dm" +#include "code\modules\mob\living\carbon\human\species_types\android.dm" +#include "code\modules\mob\living\carbon\human\species_types\angel.dm" +#include "code\modules\mob\living\carbon\human\species_types\anthropomorph.dm" +#include "code\modules\mob\living\carbon\human\species_types\arachnid.dm" +#include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" +#include "code\modules\mob\living\carbon\human\species_types\corporate.dm" +#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" +#include "code\modules\mob\living\carbon\human\species_types\dwarves.dm" +#include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" +#include "code\modules\mob\living\carbon\human\species_types\felinid.dm" +#include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\golems.dm" +#include "code\modules\mob\living\carbon\human\species_types\humans.dm" +#include "code\modules\mob\living\carbon\human\species_types\ipc.dm" +#include "code\modules\mob\living\carbon\human\species_types\jellypeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\lizardpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\mushpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\plasmamen.dm" +#include "code\modules\mob\living\carbon\human\species_types\podpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\shadowpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\skeletons.dm" +#include "code\modules\mob\living\carbon\human\species_types\synthliz.dm" +#include "code\modules\mob\living\carbon\human\species_types\synths.dm" +#include "code\modules\mob\living\carbon\human\species_types\vampire.dm" +#include "code\modules\mob\living\carbon\human\species_types\xeno.dm" +#include "code\modules\mob\living\carbon\human\species_types\zombies.dm" +#include "code\modules\mob\living\carbon\monkey\combat.dm" +#include "code\modules\mob\living\carbon\monkey\death.dm" +#include "code\modules\mob\living\carbon\monkey\inventory.dm" +#include "code\modules\mob\living\carbon\monkey\life.dm" +#include "code\modules\mob\living\carbon\monkey\monkey.dm" +#include "code\modules\mob\living\carbon\monkey\monkey_defense.dm" +#include "code\modules\mob\living\carbon\monkey\punpun.dm" +#include "code\modules\mob\living\carbon\monkey\update_icons.dm" +#include "code\modules\mob\living\silicon\custom_holoform.dm" +#include "code\modules\mob\living\silicon\damage_procs.dm" +#include "code\modules\mob\living\silicon\death.dm" +#include "code\modules\mob\living\silicon\examine.dm" +#include "code\modules\mob\living\silicon\laws.dm" +#include "code\modules\mob\living\silicon\login.dm" +#include "code\modules\mob\living\silicon\say.dm" +#include "code\modules\mob\living\silicon\silicon.dm" +#include "code\modules\mob\living\silicon\silicon_defense.dm" +#include "code\modules\mob\living\silicon\silicon_movement.dm" +#include "code\modules\mob\living\silicon\ai\ai.dm" +#include "code\modules\mob\living\silicon\ai\ai_defense.dm" +#include "code\modules\mob\living\silicon\ai\ai_portrait_picker.dm" +#include "code\modules\mob\living\silicon\ai\death.dm" +#include "code\modules\mob\living\silicon\ai\examine.dm" +#include "code\modules\mob\living\silicon\ai\laws.dm" +#include "code\modules\mob\living\silicon\ai\life.dm" +#include "code\modules\mob\living\silicon\ai\login.dm" +#include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" +#include "code\modules\mob\living\silicon\ai\say.dm" +#include "code\modules\mob\living\silicon\ai\vox_sounds.dm" +#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" +#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" +#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" +#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" +#include "code\modules\mob\living\silicon\pai\death.dm" +#include "code\modules\mob\living\silicon\pai\pai.dm" +#include "code\modules\mob\living\silicon\pai\pai_defense.dm" +#include "code\modules\mob\living\silicon\pai\pai_shell.dm" +#include "code\modules\mob\living\silicon\pai\personality.dm" +#include "code\modules\mob\living\silicon\pai\say.dm" +#include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\pai\update_icon.dm" +#include "code\modules\mob\living\silicon\robot\death.dm" +#include "code\modules\mob\living\silicon\robot\emote.dm" +#include "code\modules\mob\living\silicon\robot\examine.dm" +#include "code\modules\mob\living\silicon\robot\inventory.dm" +#include "code\modules\mob\living\silicon\robot\laws.dm" +#include "code\modules\mob\living\silicon\robot\life.dm" +#include "code\modules\mob\living\silicon\robot\login.dm" +#include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_defense.dm" +#include "code\modules\mob\living\silicon\robot\robot_defines.dm" +#include "code\modules\mob\living\silicon\robot\robot_mobility.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules.dm" +#include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\robot_sprint.dm" +#include "code\modules\mob\living\silicon\robot\say.dm" +#include "code\modules\mob\living\silicon\robot\update_icons.dm" +#include "code\modules\mob\living\simple_animal\animal_defense.dm" +#include "code\modules\mob\living\simple_animal\astral.dm" +#include "code\modules\mob\living\simple_animal\constructs.dm" +#include "code\modules\mob\living\simple_animal\corpse.dm" +#include "code\modules\mob\living\simple_animal\damage_procs.dm" +#include "code\modules\mob\living\simple_animal\eldritch_demons.dm" +#include "code\modules\mob\living\simple_animal\parrot.dm" +#include "code\modules\mob\living\simple_animal\pickle.dm" +#include "code\modules\mob\living\simple_animal\shade.dm" +#include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\simple_animal_vr.dm" +#include "code\modules\mob\living\simple_animal\simplemob_vore_values.dm" +#include "code\modules\mob\living\simple_animal\status_procs.dm" +#include "code\modules\mob\living\simple_animal\bot\bot.dm" +#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" +#include "code\modules\mob\living\simple_animal\bot\construction.dm" +#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" +#include "code\modules\mob\living\simple_animal\bot\firebot.dm" +#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" +#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" +#include "code\modules\mob\living\simple_animal\bot\medbot.dm" +#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" +#include "code\modules\mob\living\simple_animal\bot\secbot.dm" +#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" +#include "code\modules\mob\living\simple_animal\friendly\bumbles.dm" +#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" +#include "code\modules\mob\living\simple_animal\friendly\cat.dm" +#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" +#include "code\modules\mob\living\simple_animal\friendly\crab.dm" +#include "code\modules\mob\living\simple_animal\friendly\dog.dm" +#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" +#include "code\modules\mob\living\simple_animal\friendly\fox.dm" +#include "code\modules\mob\living\simple_animal\friendly\gondola.dm" +#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" +#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" +#include "code\modules\mob\living\simple_animal\friendly\panda.dm" +#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" +#include "code\modules\mob\living\simple_animal\friendly\pet.dm" +#include "code\modules\mob\living\simple_animal\friendly\plushie.dm" +#include "code\modules\mob\living\simple_animal\friendly\possum.dm" +#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" +#include "code\modules\mob\living\simple_animal\friendly\snake.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\extra_drone_types.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\interaction.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\inventory.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\say.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\verbs.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\guardian\guardian.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\assassin.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\charger.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\dextrous.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\explosive.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\fire.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\gravitokinetic.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\lightning.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\protector.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\ranged.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\standard.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\support.dm" +#include "code\modules\mob\living\simple_animal\hostile\alien.dm" +#include "code\modules\mob\living\simple_animal\hostile\banana_spider.dm" +#include "code\modules\mob\living\simple_animal\hostile\bear.dm" +#include "code\modules\mob\living\simple_animal\hostile\bees.dm" +#include "code\modules\mob\living\simple_animal\hostile\bread.dm" +#include "code\modules\mob\living\simple_animal\hostile\carp.dm" +#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" +#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" +#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" +#include "code\modules\mob\living\simple_animal\hostile\floor_cluwne.dm" +#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" +#include "code\modules\mob\living\simple_animal\hostile\goose.dm" +#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" +#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" +#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" +#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" +#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" +#include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" +#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" +#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" +#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" +#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" +#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" +#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" +#include "code\modules\mob\living\simple_animal\hostile\russian.dm" +#include "code\modules\mob\living\simple_animal\hostile\sharks.dm" +#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" +#include "code\modules\mob\living\simple_animal\hostile\statue.dm" +#include "code\modules\mob\living\simple_animal\hostile\stickman.dm" +#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" +#include "code\modules\mob\living\simple_animal\hostile\tree.dm" +#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" +#include "code\modules\mob\living\simple_animal\hostile\wizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" +#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" +#include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" +#include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\demonic_frost_miner.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon_vore.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\curse_blob.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobsterosity.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\wolf.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\elite.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\goliath_broodmother.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\herald.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\legionnaire.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\pandora.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\bat.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\frog.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\ghost.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\spaceman.dm" +#include "code\modules\mob\living\simple_animal\slime\death.dm" +#include "code\modules\mob\living\simple_animal\slime\emote.dm" +#include "code\modules\mob\living\simple_animal\slime\life.dm" +#include "code\modules\mob\living\simple_animal\slime\powers.dm" +#include "code\modules\mob\living\simple_animal\slime\say.dm" +#include "code\modules\mob\living\simple_animal\slime\slime.dm" +#include "code\modules\mob\living\simple_animal\slime\slime_mobility.dm" +#include "code\modules\mob\living\simple_animal\slime\subtypes.dm" +#include "code\modules\modular_computers\laptop_vendor.dm" +#include "code\modules\modular_computers\computers\_modular_computer_shared.dm" +#include "code\modules\modular_computers\computers\item\computer.dm" +#include "code\modules\modular_computers\computers\item\computer_components.dm" +#include "code\modules\modular_computers\computers\item\computer_damage.dm" +#include "code\modules\modular_computers\computers\item\computer_power.dm" +#include "code\modules\modular_computers\computers\item\computer_ui.dm" +#include "code\modules\modular_computers\computers\item\laptop.dm" +#include "code\modules\modular_computers\computers\item\laptop_presets.dm" +#include "code\modules\modular_computers\computers\item\processor.dm" +#include "code\modules\modular_computers\computers\item\tablet.dm" +#include "code\modules\modular_computers\computers\item\tablet_presets.dm" +#include "code\modules\modular_computers\computers\machinery\console_presets.dm" +#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" +#include "code\modules\modular_computers\computers\machinery\modular_console.dm" +#include "code\modules\modular_computers\file_system\computer_file.dm" +#include "code\modules\modular_computers\file_system\data.dm" +#include "code\modules\modular_computers\file_system\program.dm" +#include "code\modules\modular_computers\file_system\program_events.dm" +#include "code\modules\modular_computers\file_system\programs\airestorer.dm" +#include "code\modules\modular_computers\file_system\programs\alarm.dm" +#include "code\modules\modular_computers\file_system\programs\arcade.dm" +#include "code\modules\modular_computers\file_system\programs\atmosscan.dm" +#include "code\modules\modular_computers\file_system\programs\borg_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\budgetordering.dm" +#include "code\modules\modular_computers\file_system\programs\card.dm" +#include "code\modules\modular_computers\file_system\programs\cargobounty.dm" +#include "code\modules\modular_computers\file_system\programs\configurator.dm" +#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm" +#include "code\modules\modular_computers\file_system\programs\file_browser.dm" +#include "code\modules\modular_computers\file_system\programs\jobmanagement.dm" +#include "code\modules\modular_computers\file_system\programs\ntdownloader.dm" +#include "code\modules\modular_computers\file_system\programs\ntmonitor.dm" +#include "code\modules\modular_computers\file_system\programs\ntnrc_client.dm" +#include "code\modules\modular_computers\file_system\programs\powermonitor.dm" +#include "code\modules\modular_computers\file_system\programs\radar.dm" +#include "code\modules\modular_computers\file_system\programs\robocontrol.dm" +#include "code\modules\modular_computers\file_system\programs\robotact.dm" +#include "code\modules\modular_computers\file_system\programs\secureye.dm" +#include "code\modules\modular_computers\file_system\programs\sm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\contract_uplink.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\hardware\_hardware.dm" +#include "code\modules\modular_computers\hardware\ai_slot.dm" +#include "code\modules\modular_computers\hardware\battery_module.dm" +#include "code\modules\modular_computers\hardware\card_slot.dm" +#include "code\modules\modular_computers\hardware\CPU.dm" +#include "code\modules\modular_computers\hardware\hard_drive.dm" +#include "code\modules\modular_computers\hardware\network_card.dm" +#include "code\modules\modular_computers\hardware\portable_disk.dm" +#include "code\modules\modular_computers\hardware\printer.dm" +#include "code\modules\modular_computers\hardware\recharger.dm" +#include "code\modules\modular_computers\hardware\sensor_package.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\movespeed\_movespeed_modifier.dm" +#include "code\modules\movespeed\modifiers\components.dm" +#include "code\modules\movespeed\modifiers\innate.dm" +#include "code\modules\movespeed\modifiers\items.dm" +#include "code\modules\movespeed\modifiers\misc.dm" +#include "code\modules\movespeed\modifiers\mobs.dm" +#include "code\modules\movespeed\modifiers\reagents.dm" +#include "code\modules\movespeed\modifiers\status_effects.dm" +#include "code\modules\newscaster\_news.dm" +#include "code\modules\newscaster\feed_channel.dm" +#include "code\modules\newscaster\feed_comment.dm" +#include "code\modules\newscaster\feed_message.dm" +#include "code\modules\newscaster\ghostread.dm" +#include "code\modules\newscaster\news_network.dm" +#include "code\modules\newscaster\newscaster_machine.dm" +#include "code\modules\newscaster\newspaper.dm" +#include "code\modules\newscaster\wanted_message.dm" +#include "code\modules\ninja\__ninjaDefines.dm" +#include "code\modules\ninja\energy_katana.dm" +#include "code\modules\ninja\ninja_event.dm" +#include "code\modules\ninja\outfit.dm" +#include "code\modules\ninja\suit\gloves.dm" +#include "code\modules\ninja\suit\head.dm" +#include "code\modules\ninja\suit\mask.dm" +#include "code\modules\ninja\suit\ninjaDrainAct.dm" +#include "code\modules\ninja\suit\shoes.dm" +#include "code\modules\ninja\suit\suit.dm" +#include "code\modules\ninja\suit\suit_attackby.dm" +#include "code\modules\ninja\suit\suit_initialisation.dm" +#include "code\modules\ninja\suit\suit_process.dm" +#include "code\modules\ninja\suit\n_suit_verbs\energy_net_nets.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_adrenaline.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_cost_check.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_empulse.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_net.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_smoke.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_stars.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_stealth.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_sword_recall.dm" +#include "code\modules\NTNet\netdata.dm" +#include "code\modules\NTNet\network.dm" +#include "code\modules\NTNet\relays.dm" +#include "code\modules\NTNet\services\_service.dm" +#include "code\modules\paperwork\carbonpaper.dm" +#include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\contract.dm" +#include "code\modules\paperwork\filingcabinet.dm" +#include "code\modules\paperwork\folders.dm" +#include "code\modules\paperwork\handlabeler.dm" +#include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_cutter.dm" +#include "code\modules\paperwork\paper_premade.dm" +#include "code\modules\paperwork\paperbin.dm" +#include "code\modules\paperwork\paperplane.dm" +#include "code\modules\paperwork\pen.dm" +#include "code\modules\paperwork\photocopier.dm" +#include "code\modules\paperwork\stamps.dm" +#include "code\modules\paperwork\ticketmachine.dm" +#include "code\modules\photography\_pictures.dm" +#include "code\modules\photography\camera\camera.dm" +#include "code\modules\photography\camera\camera_image_capturing.dm" +#include "code\modules\photography\camera\film.dm" +#include "code\modules\photography\camera\other.dm" +#include "code\modules\photography\camera\silicon_camera.dm" +#include "code\modules\photography\photos\album.dm" +#include "code\modules\photography\photos\frame.dm" +#include "code\modules\photography\photos\photo.dm" +#include "code\modules\plumbing\ducts.dm" +#include "code\modules\plumbing\plumbers\_plumb_machinery.dm" +#include "code\modules\plumbing\plumbers\acclimator.dm" +#include "code\modules\plumbing\plumbers\autohydro.dm" +#include "code\modules\plumbing\plumbers\bottler.dm" +#include "code\modules\plumbing\plumbers\destroyer.dm" +#include "code\modules\plumbing\plumbers\fermenter.dm" +#include "code\modules\plumbing\plumbers\filter.dm" +#include "code\modules\plumbing\plumbers\grinder_chemical.dm" +#include "code\modules\plumbing\plumbers\medipenrefill.dm" +#include "code\modules\plumbing\plumbers\pill_press.dm" +#include "code\modules\plumbing\plumbers\pumps.dm" +#include "code\modules\plumbing\plumbers\reaction_chamber.dm" +#include "code\modules\plumbing\plumbers\splitters.dm" +#include "code\modules\plumbing\plumbers\synthesizer.dm" +#include "code\modules\pool\pool_controller.dm" +#include "code\modules\pool\pool_drain.dm" +#include "code\modules\pool\pool_effects.dm" +#include "code\modules\pool\pool_main.dm" +#include "code\modules\pool\pool_noodles.dm" +#include "code\modules\pool\pool_structures.dm" +#include "code\modules\pool\pool_wires.dm" +#include "code\modules\power\apc.dm" +#include "code\modules\power\cable.dm" +#include "code\modules\power\cell.dm" +#include "code\modules\power\floodlight.dm" +#include "code\modules\power\generator.dm" +#include "code\modules\power\gravitygenerator.dm" +#include "code\modules\power\lighting.dm" +#include "code\modules\power\monitor.dm" +#include "code\modules\power\multiz.dm" +#include "code\modules\power\port_gen.dm" +#include "code\modules\power\power.dm" +#include "code\modules\power\powernet.dm" +#include "code\modules\power\rtg.dm" +#include "code\modules\power\smes.dm" +#include "code\modules\power\solar.dm" +#include "code\modules\power\terminal.dm" +#include "code\modules\power\tracker.dm" +#include "code\modules\power\turbine.dm" +#include "code\modules\power\antimatter\containment_jar.dm" +#include "code\modules\power\antimatter\control.dm" +#include "code\modules\power\antimatter\shielding.dm" +#include "code\modules\power\singularity\collector.dm" +#include "code\modules\power\singularity\containment_field.dm" +#include "code\modules\power\singularity\emitter.dm" +#include "code\modules\power\singularity\field_generator.dm" +#include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" +#include "code\modules\power\singularity\narsie.dm" +#include "code\modules\power\singularity\singularity.dm" +#include "code\modules\power\singularity\particle_accelerator\particle.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" +#include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" +#include "code\modules\procedural_mapping\mapGenerator.dm" +#include "code\modules\procedural_mapping\mapGeneratorModule.dm" +#include "code\modules\procedural_mapping\mapGeneratorObj.dm" +#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" +#include "code\modules\procedural_mapping\mapGenerators\cellular.dm" +#include "code\modules\procedural_mapping\mapGenerators\cult.dm" +#include "code\modules\procedural_mapping\mapGenerators\lava_river.dm" +#include "code\modules\procedural_mapping\mapGenerators\lavaland.dm" +#include "code\modules\procedural_mapping\mapGenerators\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\repair.dm" +#include "code\modules\procedural_mapping\mapGenerators\shuttle.dm" +#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" +#include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\pins.dm" +#include "code\modules\projectiles\projectile.dm" +#include "code\modules\projectiles\ammunition\_ammunition.dm" +#include "code\modules\projectiles\ammunition\_firing.dm" +#include "code\modules\projectiles\ammunition\ballistic\lmg.dm" +#include "code\modules\projectiles\ammunition\ballistic\pistol.dm" +#include "code\modules\projectiles\ammunition\ballistic\revolver.dm" +#include "code\modules\projectiles\ammunition\ballistic\rifle.dm" +#include "code\modules\projectiles\ammunition\ballistic\shotgun.dm" +#include "code\modules\projectiles\ammunition\ballistic\smg.dm" +#include "code\modules\projectiles\ammunition\ballistic\sniper.dm" +#include "code\modules\projectiles\ammunition\caseless\_caseless.dm" +#include "code\modules\projectiles\ammunition\caseless\arrow.dm" +#include "code\modules\projectiles\ammunition\caseless\ferromagnetic.dm" +#include "code\modules\projectiles\ammunition\caseless\foam.dm" +#include "code\modules\projectiles\ammunition\caseless\misc.dm" +#include "code\modules\projectiles\ammunition\caseless\rocket.dm" +#include "code\modules\projectiles\ammunition\energy\_energy.dm" +#include "code\modules\projectiles\ammunition\energy\ebow.dm" +#include "code\modules\projectiles\ammunition\energy\gravity.dm" +#include "code\modules\projectiles\ammunition\energy\laser.dm" +#include "code\modules\projectiles\ammunition\energy\lmg.dm" +#include "code\modules\projectiles\ammunition\energy\plasma.dm" +#include "code\modules\projectiles\ammunition\energy\plasma_cit.dm" +#include "code\modules\projectiles\ammunition\energy\portal.dm" +#include "code\modules\projectiles\ammunition\energy\special.dm" +#include "code\modules\projectiles\ammunition\energy\stun.dm" +#include "code\modules\projectiles\ammunition\special\magic.dm" +#include "code\modules\projectiles\ammunition\special\syringe.dm" +#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm" +#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "code\modules\projectiles\boxes_magazines\external\grenade.dm" +#include "code\modules\projectiles\boxes_magazines\external\lmg.dm" +#include "code\modules\projectiles\boxes_magazines\external\magweapon.dm" +#include "code\modules\projectiles\boxes_magazines\external\pistol.dm" +#include "code\modules\projectiles\boxes_magazines\external\rechargable.dm" +#include "code\modules\projectiles\boxes_magazines\external\rifle.dm" +#include "code\modules\projectiles\boxes_magazines\external\shotgun.dm" +#include "code\modules\projectiles\boxes_magazines\external\smg.dm" +#include "code\modules\projectiles\boxes_magazines\external\sniper.dm" +#include "code\modules\projectiles\boxes_magazines\external\toy.dm" +#include "code\modules\projectiles\boxes_magazines\internal\_cylinder.dm" +#include "code\modules\projectiles\boxes_magazines\internal\_internal.dm" +#include "code\modules\projectiles\boxes_magazines\internal\bow.dm" +#include "code\modules\projectiles\boxes_magazines\internal\derringer.dm" +#include "code\modules\projectiles\boxes_magazines\internal\grenade.dm" +#include "code\modules\projectiles\boxes_magazines\internal\misc.dm" +#include "code\modules\projectiles\boxes_magazines\internal\revolver.dm" +#include "code\modules\projectiles\boxes_magazines\internal\rifle.dm" +#include "code\modules\projectiles\boxes_magazines\internal\shotgun.dm" +#include "code\modules\projectiles\boxes_magazines\internal\toy.dm" +#include "code\modules\projectiles\guns\ballistic.dm" +#include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\magic.dm" +#include "code\modules\projectiles\guns\ballistic\automatic.dm" +#include "code\modules\projectiles\guns\ballistic\bow.dm" +#include "code\modules\projectiles\guns\ballistic\derringer.dm" +#include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" +#include "code\modules\projectiles\guns\ballistic\launchers.dm" +#include "code\modules\projectiles\guns\ballistic\magweapon.dm" +#include "code\modules\projectiles\guns\ballistic\pistol.dm" +#include "code\modules\projectiles\guns\ballistic\revolver.dm" +#include "code\modules\projectiles\guns\ballistic\shotgun.dm" +#include "code\modules\projectiles\guns\ballistic\toy.dm" +#include "code\modules\projectiles\guns\energy\dueling.dm" +#include "code\modules\projectiles\guns\energy\energy_gun.dm" +#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" +#include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\megabuster.dm" +#include "code\modules\projectiles\guns\energy\mounted.dm" +#include "code\modules\projectiles\guns\energy\plasma_cit.dm" +#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\special.dm" +#include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\magic\motivation.dm" +#include "code\modules\projectiles\guns\magic\spell_book.dm" +#include "code\modules\projectiles\guns\magic\staff.dm" +#include "code\modules\projectiles\guns\magic\wand.dm" +#include "code\modules\projectiles\guns\misc\beam_rifle.dm" +#include "code\modules\projectiles\guns\misc\blastcannon.dm" +#include "code\modules\projectiles\guns\misc\chameleon.dm" +#include "code\modules\projectiles\guns\misc\chem_gun.dm" +#include "code\modules\projectiles\guns\misc\grenade_launcher.dm" +#include "code\modules\projectiles\guns\misc\medbeam.dm" +#include "code\modules\projectiles\guns\misc\syringe_gun.dm" +#include "code\modules\projectiles\projectile\beams.dm" +#include "code\modules\projectiles\projectile\bullets.dm" +#include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\megabuster.dm" +#include "code\modules\projectiles\projectile\plasma.dm" +#include "code\modules\projectiles\projectile\bullets\_incendiary.dm" +#include "code\modules\projectiles\projectile\bullets\dart_syringe.dm" +#include "code\modules\projectiles\projectile\bullets\dnainjector.dm" +#include "code\modules\projectiles\projectile\bullets\ferromagnetic.dm" +#include "code\modules\projectiles\projectile\bullets\grenade.dm" +#include "code\modules\projectiles\projectile\bullets\lmg.dm" +#include "code\modules\projectiles\projectile\bullets\pistol.dm" +#include "code\modules\projectiles\projectile\bullets\revolver.dm" +#include "code\modules\projectiles\projectile\bullets\rifle.dm" +#include "code\modules\projectiles\projectile\bullets\shotgun.dm" +#include "code\modules\projectiles\projectile\bullets\smg.dm" +#include "code\modules\projectiles\projectile\bullets\sniper.dm" +#include "code\modules\projectiles\projectile\bullets\special.dm" +#include "code\modules\projectiles\projectile\energy\_energy.dm" +#include "code\modules\projectiles\projectile\energy\ebow.dm" +#include "code\modules\projectiles\projectile\energy\misc.dm" +#include "code\modules\projectiles\projectile\energy\net_snare.dm" +#include "code\modules\projectiles\projectile\energy\nuclear_particle.dm" +#include "code\modules\projectiles\projectile\energy\stun.dm" +#include "code\modules\projectiles\projectile\energy\tesla.dm" +#include "code\modules\projectiles\projectile\magic\spellcard.dm" +#include "code\modules\projectiles\projectile\reusable\_reusable.dm" +#include "code\modules\projectiles\projectile\reusable\arrow.dm" +#include "code\modules\projectiles\projectile\reusable\foam_dart.dm" +#include "code\modules\projectiles\projectile\reusable\magspear.dm" +#include "code\modules\projectiles\projectile\special\curse.dm" +#include "code\modules\projectiles\projectile\special\floral.dm" +#include "code\modules\projectiles\projectile\special\gravity.dm" +#include "code\modules\projectiles\projectile\special\hallucination.dm" +#include "code\modules\projectiles\projectile\special\ion.dm" +#include "code\modules\projectiles\projectile\special\judgement_cut.dm" +#include "code\modules\projectiles\projectile\special\meteor.dm" +#include "code\modules\projectiles\projectile\special\mindflayer.dm" +#include "code\modules\projectiles\projectile\special\neurotoxin.dm" +#include "code\modules\projectiles\projectile\special\plasma.dm" +#include "code\modules\projectiles\projectile\special\rocket.dm" +#include "code\modules\projectiles\projectile\special\temperature.dm" +#include "code\modules\projectiles\projectile\special\wormhole.dm" +#include "code\modules\reagents\chem_splash.dm" +#include "code\modules\reagents\chem_wiki_render.dm" +#include "code\modules\reagents\reagent_containers.dm" +#include "code\modules\reagents\reagent_dispenser.dm" +#include "code\modules\reagents\chemistry\colors.dm" +#include "code\modules\reagents\chemistry\holder.dm" +#include "code\modules\reagents\chemistry\reagents.dm" +#include "code\modules\reagents\chemistry\recipes.dm" +#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" +#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" +#include "code\modules\reagents\chemistry\machinery\chem_master.dm" +#include "code\modules\reagents\chemistry\machinery\chem_synthesizer.dm" +#include "code\modules\reagents\chemistry\machinery\pandemic.dm" +#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" +#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm" +#include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\drink_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\drug_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\food_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\impure_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\medicine_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\other_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm" +#include "code\modules\reagents\chemistry\recipes\drugs.dm" +#include "code\modules\reagents\chemistry\recipes\medicine.dm" +#include "code\modules\reagents\chemistry\recipes\others.dm" +#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" +#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" +#include "code\modules\reagents\chemistry\recipes\special.dm" +#include "code\modules\reagents\chemistry\recipes\toxins.dm" +#include "code\modules\reagents\reagent_containers\blood_pack.dm" +#include "code\modules\reagents\reagent_containers\borghypo.dm" +#include "code\modules\reagents\reagent_containers\bottle.dm" +#include "code\modules\reagents\reagent_containers\chem_pack.dm" +#include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\glass.dm" +#include "code\modules\reagents\reagent_containers\hypospray.dm" +#include "code\modules\reagents\reagent_containers\hypovial.dm" +#include "code\modules\reagents\reagent_containers\maunamug.dm" +#include "code\modules\reagents\reagent_containers\medspray.dm" +#include "code\modules\reagents\reagent_containers\patch.dm" +#include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\rags.dm" +#include "code\modules\reagents\reagent_containers\sleeper_buffer.dm" +#include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\recycling\conveyor2.dm" +#include "code\modules\recycling\sortingmachinery.dm" +#include "code\modules\recycling\disposal\bin.dm" +#include "code\modules\recycling\disposal\construction.dm" +#include "code\modules\recycling\disposal\eject.dm" +#include "code\modules\recycling\disposal\holder.dm" +#include "code\modules\recycling\disposal\multiz.dm" +#include "code\modules\recycling\disposal\outlet.dm" +#include "code\modules\recycling\disposal\pipe.dm" +#include "code\modules\recycling\disposal\pipe_sorting.dm" +#include "code\modules\research\bepis.dm" +#include "code\modules\research\designs.dm" +#include "code\modules\research\destructive_analyzer.dm" +#include "code\modules\research\experimentor.dm" +#include "code\modules\research\rdconsole.dm" +#include "code\modules\research\rdmachines.dm" +#include "code\modules\research\research_disk.dm" +#include "code\modules\research\server.dm" +#include "code\modules\research\stock_parts.dm" +#include "code\modules\research\anomaly\anomaly_core.dm" +#include "code\modules\research\anomaly\explosive_compressor.dm" +#include "code\modules\research\anomaly\raw_anomaly.dm" +#include "code\modules\research\designs\AI_module_designs.dm" +#include "code\modules\research\designs\autobotter_designs.dm" +#include "code\modules\research\designs\autoylathe_designs.dm" +#include "code\modules\research\designs\biogenerator_designs.dm" +#include "code\modules\research\designs\bluespace_designs.dm" +#include "code\modules\research\designs\computer_part_designs.dm" +#include "code\modules\research\designs\electronics_designs.dm" +#include "code\modules\research\designs\equipment_designs.dm" +#include "code\modules\research\designs\limbgrower_designs.dm" +#include "code\modules\research\designs\mecha_designs.dm" +#include "code\modules\research\designs\mechfabricator_designs.dm" +#include "code\modules\research\designs\medical_designs.dm" +#include "code\modules\research\designs\mining_designs.dm" +#include "code\modules\research\designs\misc_designs.dm" +#include "code\modules\research\designs\nanite_designs.dm" +#include "code\modules\research\designs\power_designs.dm" +#include "code\modules\research\designs\smelting_designs.dm" +#include "code\modules\research\designs\stock_parts_designs.dm" +#include "code\modules\research\designs\telecomms_designs.dm" +#include "code\modules\research\designs\tool_designs.dm" +#include "code\modules\research\designs\weapon_designs.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" +#include "code\modules\research\machinery\_production.dm" +#include "code\modules\research\machinery\circuit_imprinter.dm" +#include "code\modules\research\machinery\departmental_circuit_imprinter.dm" +#include "code\modules\research\machinery\departmental_protolathe.dm" +#include "code\modules\research\machinery\departmental_techfab.dm" +#include "code\modules\research\machinery\protolathe.dm" +#include "code\modules\research\machinery\techfab.dm" +#include "code\modules\research\nanites\nanite_chamber.dm" +#include "code\modules\research\nanites\nanite_chamber_computer.dm" +#include "code\modules\research\nanites\nanite_cloud_controller.dm" +#include "code\modules\research\nanites\nanite_misc_items.dm" +#include "code\modules\research\nanites\nanite_program_hub.dm" +#include "code\modules\research\nanites\nanite_programmer.dm" +#include "code\modules\research\nanites\nanite_programs.dm" +#include "code\modules\research\nanites\nanite_remote.dm" +#include "code\modules\research\nanites\program_disks.dm" +#include "code\modules\research\nanites\public_chamber.dm" +#include "code\modules\research\nanites\rules.dm" +#include "code\modules\research\nanites\extra_settings\_extra_setting.dm" +#include "code\modules\research\nanites\extra_settings\boolean.dm" +#include "code\modules\research\nanites\extra_settings\number.dm" +#include "code\modules\research\nanites\extra_settings\text.dm" +#include "code\modules\research\nanites\extra_settings\type.dm" +#include "code\modules\research\nanites\nanite_programs\buffing.dm" +#include "code\modules\research\nanites\nanite_programs\healing.dm" +#include "code\modules\research\nanites\nanite_programs\protocols.dm" +#include "code\modules\research\nanites\nanite_programs\rogue.dm" +#include "code\modules\research\nanites\nanite_programs\sensor.dm" +#include "code\modules\research\nanites\nanite_programs\suppression.dm" +#include "code\modules\research\nanites\nanite_programs\utility.dm" +#include "code\modules\research\nanites\nanite_programs\weapon.dm" +#include "code\modules\research\techweb\__techweb_helpers.dm" +#include "code\modules\research\techweb\_techweb.dm" +#include "code\modules\research\techweb\_techweb_node.dm" +#include "code\modules\research\techweb\nodes\alien_nodes.dm" +#include "code\modules\research\techweb\nodes\bepis_nodes.dm" +#include "code\modules\research\techweb\nodes\biotech_nodes.dm" +#include "code\modules\research\techweb\nodes\bluespace_nodes.dm" +#include "code\modules\research\techweb\nodes\computer_hud_nodes.dm" +#include "code\modules\research\techweb\nodes\engineering_nodes.dm" +#include "code\modules\research\techweb\nodes\export_nodes.dm" +#include "code\modules\research\techweb\nodes\mecha_nodes.dm" +#include "code\modules\research\techweb\nodes\medical_nodes.dm" +#include "code\modules\research\techweb\nodes\misc_nodes.dm" +#include "code\modules\research\techweb\nodes\nanites_nodes.dm" +#include "code\modules\research\techweb\nodes\robotics_nodes.dm" +#include "code\modules\research\techweb\nodes\syndicate_nodes.dm" +#include "code\modules\research\techweb\nodes\tools_nodes.dm" +#include "code\modules\research\techweb\nodes\weaponry_nodes.dm" +#include "code\modules\research\xenobiology\xenobio_camera.dm" +#include "code\modules\research\xenobiology\xenobiology.dm" +#include "code\modules\research\xenobiology\crossbreeding\__corecross.dm" +#include "code\modules\research\xenobiology\crossbreeding\_clothing.dm" +#include "code\modules\research\xenobiology\crossbreeding\_misc.dm" +#include "code\modules\research\xenobiology\crossbreeding\_mobs.dm" +#include "code\modules\research\xenobiology\crossbreeding\_status_effects.dm" +#include "code\modules\research\xenobiology\crossbreeding\_weapons.dm" +#include "code\modules\research\xenobiology\crossbreeding\burning.dm" +#include "code\modules\research\xenobiology\crossbreeding\charged.dm" +#include "code\modules\research\xenobiology\crossbreeding\chilling.dm" +#include "code\modules\research\xenobiology\crossbreeding\consuming.dm" +#include "code\modules\research\xenobiology\crossbreeding\industrial.dm" +#include "code\modules\research\xenobiology\crossbreeding\prismatic.dm" +#include "code\modules\research\xenobiology\crossbreeding\recurring.dm" +#include "code\modules\research\xenobiology\crossbreeding\regenerative.dm" +#include "code\modules\research\xenobiology\crossbreeding\reproductive.dm" +#include "code\modules\research\xenobiology\crossbreeding\selfsustaining.dm" +#include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" +#include "code\modules\ruins\lavaland_ruin_code.dm" +#include "code\modules\ruins\icemoonruin_code\hotsprings.dm" +#include "code\modules\ruins\icemoonruin_code\library.dm" +#include "code\modules\ruins\lavalandruin_code\alien_nest.dm" +#include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" +#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" +#include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" +#include "code\modules\ruins\lavalandruin_code\puzzle.dm" +#include "code\modules\ruins\lavalandruin_code\sloth.dm" +#include "code\modules\ruins\lavalandruin_code\surface.dm" +#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" +#include "code\modules\ruins\objects_and_mobs\ash_walker_den.dm" +#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" +#include "code\modules\ruins\objects_and_mobs\sin_ruins.dm" +#include "code\modules\ruins\spaceruin_code\asteroid4.dm" +#include "code\modules\ruins\spaceruin_code\bigderelict1.dm" +#include "code\modules\ruins\spaceruin_code\caravanambush.dm" +#include "code\modules\ruins\spaceruin_code\clericsden.dm" +#include "code\modules\ruins\spaceruin_code\cloning_lab.dm" +#include "code\modules\ruins\spaceruin_code\crashedclownship.dm" +#include "code\modules\ruins\spaceruin_code\crashedship.dm" +#include "code\modules\ruins\spaceruin_code\deepstorage.dm" +#include "code\modules\ruins\spaceruin_code\DJstation.dm" +#include "code\modules\ruins\spaceruin_code\hilbertshotel.dm" +#include "code\modules\ruins\spaceruin_code\listeningstation.dm" +#include "code\modules\ruins\spaceruin_code\miracle.dm" +#include "code\modules\ruins\spaceruin_code\oldstation.dm" +#include "code\modules\ruins\spaceruin_code\originalcontent.dm" +#include "code\modules\ruins\spaceruin_code\skelter.dm" +#include "code\modules\ruins\spaceruin_code\spacehotel.dm" +#include "code\modules\ruins\spaceruin_code\TheDerelict.dm" +#include "code\modules\ruins\spaceruin_code\whiteshipruin_box.dm" +#include "code\modules\security_levels\keycard_authentication.dm" +#include "code\modules\security_levels\security_levels.dm" +#include "code\modules\shielding\helpers.dm" +#include "code\modules\shuttle\arrivals.dm" +#include "code\modules\shuttle\assault_pod.dm" +#include "code\modules\shuttle\computer.dm" +#include "code\modules\shuttle\custom_shuttle.dm" +#include "code\modules\shuttle\docking.dm" +#include "code\modules\shuttle\elevator.dm" +#include "code\modules\shuttle\emergency.dm" +#include "code\modules\shuttle\ferry.dm" +#include "code\modules\shuttle\manipulator.dm" +#include "code\modules\shuttle\monastery.dm" +#include "code\modules\shuttle\navigation_computer.dm" +#include "code\modules\shuttle\on_move.dm" +#include "code\modules\shuttle\ripple.dm" +#include "code\modules\shuttle\shuttle.dm" +#include "code\modules\shuttle\shuttle_rotate.dm" +#include "code\modules\shuttle\snaxi.dm" +#include "code\modules\shuttle\spaceship_navigation_beacon.dm" +#include "code\modules\shuttle\special.dm" +#include "code\modules\shuttle\supply.dm" +#include "code\modules\shuttle\syndicate.dm" +#include "code\modules\shuttle\white_ship.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_actions.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_console.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" +#include "code\modules\smithing\anvil.dm" +#include "code\modules\smithing\finished_items.dm" +#include "code\modules\smithing\furnace.dm" +#include "code\modules\smithing\smithed_items.dm" +#include "code\modules\spells\spell.dm" +#include "code\modules\spells\spell_types\aimed.dm" +#include "code\modules\spells\spell_types\area_teleport.dm" +#include "code\modules\spells\spell_types\bloodcrawl.dm" +#include "code\modules\spells\spell_types\charge.dm" +#include "code\modules\spells\spell_types\cluwnecurse.dm" +#include "code\modules\spells\spell_types\cone_spells.dm" +#include "code\modules\spells\spell_types\conjure.dm" +#include "code\modules\spells\spell_types\construct_spells.dm" +#include "code\modules\spells\spell_types\curse.dm" +#include "code\modules\spells\spell_types\devil.dm" +#include "code\modules\spells\spell_types\devil_boons.dm" +#include "code\modules\spells\spell_types\dumbfire.dm" +#include "code\modules\spells\spell_types\emplosion.dm" +#include "code\modules\spells\spell_types\ethereal_jaunt.dm" +#include "code\modules\spells\spell_types\explosion.dm" +#include "code\modules\spells\spell_types\forcewall.dm" +#include "code\modules\spells\spell_types\genetic.dm" +#include "code\modules\spells\spell_types\godhand.dm" +#include "code\modules\spells\spell_types\infinite_guns.dm" +#include "code\modules\spells\spell_types\inflict_handler.dm" +#include "code\modules\spells\spell_types\knock.dm" +#include "code\modules\spells\spell_types\lichdom.dm" +#include "code\modules\spells\spell_types\lightning.dm" +#include "code\modules\spells\spell_types\mime.dm" +#include "code\modules\spells\spell_types\projectile.dm" +#include "code\modules\spells\spell_types\rightandwrong.dm" +#include "code\modules\spells\spell_types\rod_form.dm" +#include "code\modules\spells\spell_types\santa.dm" +#include "code\modules\spells\spell_types\shadow_walk.dm" +#include "code\modules\spells\spell_types\shapeshift.dm" +#include "code\modules\spells\spell_types\spacetime_distortion.dm" +#include "code\modules\spells\spell_types\summonitem.dm" +#include "code\modules\spells\spell_types\taeclowndo.dm" +#include "code\modules\spells\spell_types\telepathy.dm" +#include "code\modules\spells\spell_types\the_traps.dm" +#include "code\modules\spells\spell_types\togglebuff.dm" +#include "code\modules\spells\spell_types\touch_attacks.dm" +#include "code\modules\spells\spell_types\trigger.dm" +#include "code\modules\spells\spell_types\turf_teleport.dm" +#include "code\modules\spells\spell_types\voice_of_god.dm" +#include "code\modules\spells\spell_types\wizard.dm" +#include "code\modules\spells\spell_types\pointed\barnyard.dm" +#include "code\modules\spells\spell_types\pointed\blind.dm" +#include "code\modules\spells\spell_types\pointed\mind_transfer.dm" +#include "code\modules\spells\spell_types\pointed\pointed.dm" +#include "code\modules\station_goals\bsa.dm" +#include "code\modules\station_goals\dna_vault.dm" +#include "code\modules\station_goals\shield.dm" +#include "code\modules\station_goals\station_goal.dm" +#include "code\modules\surgery\amputation.dm" +#include "code\modules\surgery\bone_mending.dm" +#include "code\modules\surgery\brain_surgery.dm" +#include "code\modules\surgery\burn_dressing.dm" +#include "code\modules\surgery\cavity_implant.dm" +#include "code\modules\surgery\core_removal.dm" +#include "code\modules\surgery\coronary_bypass.dm" +#include "code\modules\surgery\dental_implant.dm" +#include "code\modules\surgery\embalming.dm" +#include "code\modules\surgery\emergency_cardioversion_recovery.dm" +#include "code\modules\surgery\emergency_reboot.dm" +#include "code\modules\surgery\experimental_dissection.dm" +#include "code\modules\surgery\eye_surgery.dm" +#include "code\modules\surgery\graft_synthtissue.dm" +#include "code\modules\surgery\healing.dm" +#include "code\modules\surgery\helpers.dm" +#include "code\modules\surgery\implant_removal.dm" +#include "code\modules\surgery\limb_augmentation.dm" +#include "code\modules\surgery\lipoplasty.dm" +#include "code\modules\surgery\lobectomy.dm" +#include "code\modules\surgery\mechanic_steps.dm" +#include "code\modules\surgery\nutcracker.dm" +#include "code\modules\surgery\organ_manipulation.dm" +#include "code\modules\surgery\organic_steps.dm" +#include "code\modules\surgery\plastic_surgery.dm" +#include "code\modules\surgery\prosthetic_replacement.dm" +#include "code\modules\surgery\purge_corruption.dm" +#include "code\modules\surgery\remove_embedded_object.dm" +#include "code\modules\surgery\repair_puncture.dm" +#include "code\modules\surgery\robot_brain_surgery.dm" +#include "code\modules\surgery\robot_healing.dm" +#include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\surgery_step.dm" +#include "code\modules\surgery\tools.dm" +#include "code\modules\surgery\advanced\brainwashing.dm" +#include "code\modules\surgery\advanced\lobotomy.dm" +#include "code\modules\surgery\advanced\necrotic_revival.dm" +#include "code\modules\surgery\advanced\pacification.dm" +#include "code\modules\surgery\advanced\revival.dm" +#include "code\modules\surgery\advanced\toxichealing.dm" +#include "code\modules\surgery\advanced\viral_bonding.dm" +#include "code\modules\surgery\advanced\bioware\bioware.dm" +#include "code\modules\surgery\advanced\bioware\bioware_surgery.dm" +#include "code\modules\surgery\advanced\bioware\ligament_hook.dm" +#include "code\modules\surgery\advanced\bioware\ligament_reinforcement.dm" +#include "code\modules\surgery\advanced\bioware\muscled_veins.dm" +#include "code\modules\surgery\advanced\bioware\nerve_grounding.dm" +#include "code\modules\surgery\advanced\bioware\nerve_splicing.dm" +#include "code\modules\surgery\advanced\bioware\vein_threading.dm" +#include "code\modules\surgery\bodyparts\_bodyparts.dm" +#include "code\modules\surgery\bodyparts\dismemberment.dm" +#include "code\modules\surgery\bodyparts\head.dm" +#include "code\modules\surgery\bodyparts\helpers.dm" +#include "code\modules\surgery\bodyparts\parts.dm" +#include "code\modules\surgery\bodyparts\robot_bodyparts.dm" +#include "code\modules\surgery\organs\appendix.dm" +#include "code\modules\surgery\organs\augments_arms.dm" +#include "code\modules\surgery\organs\augments_chest.dm" +#include "code\modules\surgery\organs\augments_eyes.dm" +#include "code\modules\surgery\organs\augments_internal.dm" +#include "code\modules\surgery\organs\autosurgeon.dm" +#include "code\modules\surgery\organs\ears.dm" +#include "code\modules\surgery\organs\eyes.dm" +#include "code\modules\surgery\organs\heart.dm" +#include "code\modules\surgery\organs\helpers.dm" +#include "code\modules\surgery\organs\liver.dm" +#include "code\modules\surgery\organs\lungs.dm" +#include "code\modules\surgery\organs\organ_internal.dm" +#include "code\modules\surgery\organs\stomach.dm" +#include "code\modules\surgery\organs\tails.dm" +#include "code\modules\surgery\organs\tongue.dm" +#include "code\modules\surgery\organs\vocal_cords.dm" +#include "code\modules\tcg\cards.dm" +#include "code\modules\tcg\pack_1.dm" +#include "code\modules\tcg\pack_nuclear.dm" +#include "code\modules\tcg\pack_star.dm" +#include "code\modules\tgchat\message.dm" +#include "code\modules\tgchat\to_chat.dm" +#include "code\modules\tgs\includes.dm" +#include "code\modules\tgui\external.dm" +#include "code\modules\tgui\states.dm" +#include "code\modules\tgui\tgui.dm" +#include "code\modules\tgui\tgui_alert.dm" +#include "code\modules\tgui\tgui_input_list.dm" +#include "code\modules\tgui\tgui_window.dm" +#include "code\modules\tgui\states\admin.dm" +#include "code\modules\tgui\states\always.dm" +#include "code\modules\tgui\states\conscious.dm" +#include "code\modules\tgui\states\contained.dm" +#include "code\modules\tgui\states\debug.dm" +#include "code\modules\tgui\states\deep_inventory.dm" +#include "code\modules\tgui\states\default.dm" +#include "code\modules\tgui\states\hands.dm" +#include "code\modules\tgui\states\human_adjacent.dm" +#include "code\modules\tgui\states\inventory.dm" +#include "code\modules\tgui\states\language_menu.dm" +#include "code\modules\tgui\states\new_player.dm" +#include "code\modules\tgui\states\not_incapacitated.dm" +#include "code\modules\tgui\states\notcontained.dm" +#include "code\modules\tgui\states\observer.dm" +#include "code\modules\tgui\states\physical.dm" +#include "code\modules\tgui\states\self.dm" +#include "code\modules\tgui\states\zlevel.dm" +#include "code\modules\tgui_panel\audio.dm" +#include "code\modules\tgui_panel\external.dm" +#include "code\modules\tgui_panel\telemetry.dm" +#include "code\modules\tgui_panel\tgui_panel.dm" +#include "code\modules\tooltip\tooltip.dm" +#include "code\modules\unit_tests\_unit_tests.dm" +#include "code\modules\uplink\uplink_devices.dm" +#include "code\modules\uplink\uplink_items.dm" +#include "code\modules\uplink\uplink_purchase_log.dm" +#include "code\modules\uplink\uplink_items\uplink_ammo.dm" +#include "code\modules\uplink\uplink_items\uplink_badass.dm" +#include "code\modules\uplink\uplink_items\uplink_bundles.dm" +#include "code\modules\uplink\uplink_items\uplink_clothing.dm" +#include "code\modules\uplink\uplink_items\uplink_dangerous.dm" +#include "code\modules\uplink\uplink_items\uplink_devices.dm" +#include "code\modules\uplink\uplink_items\uplink_explosives.dm" +#include "code\modules\uplink\uplink_items\uplink_implants.dm" +#include "code\modules\uplink\uplink_items\uplink_roles.dm" +#include "code\modules\uplink\uplink_items\uplink_stealth.dm" +#include "code\modules\uplink\uplink_items\uplink_stealthdevices.dm" +#include "code\modules\uplink\uplink_items\uplink_support.dm" +#include "code\modules\vehicles\_vehicle.dm" +#include "code\modules\vehicles\atv.dm" +#include "code\modules\vehicles\bicycle.dm" +#include "code\modules\vehicles\lavaboat.dm" +#include "code\modules\vehicles\motorized_wheelchair.dm" +#include "code\modules\vehicles\pimpin_ride.dm" +#include "code\modules\vehicles\ridden.dm" +#include "code\modules\vehicles\scooter.dm" +#include "code\modules\vehicles\sealed.dm" +#include "code\modules\vehicles\secway.dm" +#include "code\modules\vehicles\speedbike.dm" +#include "code\modules\vehicles\vehicle_actions.dm" +#include "code\modules\vehicles\vehicle_key.dm" +#include "code\modules\vehicles\wheelchair.dm" +#include "code\modules\vehicles\cars\car.dm" +#include "code\modules\vehicles\cars\clowncar.dm" +#include "code\modules\vending\_vending.dm" +#include "code\modules\vending\assist.dm" +#include "code\modules\vending\autodrobe.dm" +#include "code\modules\vending\barkbox.dm" +#include "code\modules\vending\boozeomat.dm" +#include "code\modules\vending\cartridge.dm" +#include "code\modules\vending\cigarette.dm" +#include "code\modules\vending\clothesmate.dm" +#include "code\modules\vending\coffee.dm" +#include "code\modules\vending\cola.dm" +#include "code\modules\vending\dinnerware.dm" +#include "code\modules\vending\engineering.dm" +#include "code\modules\vending\engivend.dm" +#include "code\modules\vending\games.dm" +#include "code\modules\vending\kinkmate.dm" +#include "code\modules\vending\liberation.dm" +#include "code\modules\vending\liberation_toy.dm" +#include "code\modules\vending\magivend.dm" +#include "code\modules\vending\medical.dm" +#include "code\modules\vending\medical_wall.dm" +#include "code\modules\vending\megaseed.dm" +#include "code\modules\vending\nutrimax.dm" +#include "code\modules\vending\plasmaresearch.dm" +#include "code\modules\vending\robotics.dm" +#include "code\modules\vending\security.dm" +#include "code\modules\vending\snack.dm" +#include "code\modules\vending\sovietsoda.dm" +#include "code\modules\vending\sovietvend.dm" +#include "code\modules\vending\sustenance.dm" +#include "code\modules\vending\toys.dm" +#include "code\modules\vending\wardrobes.dm" +#include "code\modules\vending\youtool.dm" +#include "code\modules\vore\hook-defs.dm" +#include "code\modules\vore\persistence.dm" +#include "code\modules\vore\trycatch.dm" +#include "code\modules\vore\eating\belly_dat_vr.dm" +#include "code\modules\vore\eating\belly_obj.dm" +#include "code\modules\vore\eating\bellymodes.dm" +#include "code\modules\vore\eating\digest_act.dm" +#include "code\modules\vore\eating\living.dm" +#include "code\modules\vore\eating\voreitems.dm" +#include "code\modules\vore\eating\vorepanel.dm" +#include "code\modules\VR\vr_mob.dm" +#include "code\modules\VR\vr_sleeper.dm" +#include "code\modules\zombie\items.dm" +#include "code\modules\zombie\organs.dm" +#include "interface\interface.dm" +#include "interface\menu.dm" +#include "interface\stylesheet.dm" +#include "interface\skin.dmf" +#include "modular_citadel\code\datums\components\souldeath.dm" +#include "modular_citadel\code\datums\status_effects\chems.dm" +#include "modular_citadel\code\game\objects\cit_screenshake.dm" +#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" +#include "modular_citadel\code\modules\admin\holder2.dm" +#include "modular_citadel\code\modules\admin\secrets.dm" +#include "modular_citadel\code\modules\client\client_procs.dm" +#include "modular_citadel\code\modules\client\preferences_savefile.dm" +#include "modular_citadel\code\modules\client\preferences_toggles.dm" +#include "modular_citadel\code\modules\client\loadout\__donator.dm" +#include "modular_citadel\code\modules\client\loadout\_loadout.dm" +#include "modular_citadel\code\modules\client\loadout\_medical.dm" +#include "modular_citadel\code\modules\client\loadout\_security.dm" +#include "modular_citadel\code\modules\client\loadout\_service.dm" +#include "modular_citadel\code\modules\client\loadout\backpack.dm" +#include "modular_citadel\code\modules\client\loadout\glasses.dm" +#include "modular_citadel\code\modules\client\loadout\gloves.dm" +#include "modular_citadel\code\modules\client\loadout\hands.dm" +#include "modular_citadel\code\modules\client\loadout\head.dm" +#include "modular_citadel\code\modules\client\loadout\mask.dm" +#include "modular_citadel\code\modules\client\loadout\neck.dm" +#include "modular_citadel\code\modules\client\loadout\shoes.dm" +#include "modular_citadel\code\modules\client\loadout\suit.dm" +#include "modular_citadel\code\modules\client\loadout\uniform.dm" +#include "modular_citadel\code\modules\client\loadout\unlockable.dm" +#include "modular_citadel\code\modules\client\verbs\who.dm" +#include "modular_citadel\code\modules\clothing\neck.dm" +#include "modular_citadel\code\modules\clothing\trek.dm" +#include "modular_citadel\code\modules\clothing\suits\suits.dm" +#include "modular_citadel\code\modules\custom_loadout\custom_items.dm" +#include "modular_citadel\code\modules\custom_loadout\load_to_mob.dm" +#include "modular_citadel\code\modules\custom_loadout\read_from_file.dm" +#include "modular_citadel\code\modules\mentor\dementor.dm" +#include "modular_citadel\code\modules\mentor\follow.dm" +#include "modular_citadel\code\modules\mentor\mentor.dm" +#include "modular_citadel\code\modules\mentor\mentor_memo.dm" +#include "modular_citadel\code\modules\mentor\mentor_verbs.dm" +#include "modular_citadel\code\modules\mentor\mentorhelp.dm" +#include "modular_citadel\code\modules\mentor\mentorpm.dm" +#include "modular_citadel\code\modules\mentor\mentorsay.dm" +#include "modular_citadel\code\modules\mob\cit_emotes.dm" +#include "modular_citadel\code\modules\mob\living\living.dm" +#include "modular_citadel\code\modules\mob\living\carbon\carbon.dm" +#include "modular_citadel\code\modules\mob\living\carbon\damage_procs.dm" +#include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" +#include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" +#include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" +#include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" +#include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm" +#include "modular_citadel\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\pistol.dm" +#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\smg\smg.dm" +#include "modular_citadel\code\modules\projectiles\bullets\bullets\smg.dm" +#include "modular_citadel\code\modules\projectiles\guns\pumpenergy.dm" +#include "modular_citadel\code\modules\projectiles\guns\toys.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" +#include "modular_citadel\code\modules\projectiles\guns\energy\energy_gun.dm" +#include "modular_citadel\code\modules\projectiles\projectiles\reusable.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\astrogen.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\eigentstasium.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\enlargement.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\fermi_reagents.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\healing.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\MKUltra.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\SDGF.dm" +#include "modular_citadel\code\modules\reagents\chemistry\recipes\fermi.dm" +#include "modular_citadel\code\modules\reagents\objects\clothes.dm" +#include "modular_citadel\code\modules\reagents\objects\items.dm" +// END_INCLUDE From 758bfdc01cca06cc75ee2845ff66b62f815d08bb Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon, 14 Jun 2021 22:24:08 +0200 Subject: [PATCH 007/173] Quick Rollback so it doesn't look awful --- tgstation.dme | 7493 ++++++++++++++++++++++++------------------------- 1 file changed, 3746 insertions(+), 3747 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index 5625f8a45c..bf6cf98d56 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1,3747 +1,3746 @@ - -// DM Environment file for tgstation.dme. -// All manual changes should be made outside the BEGIN_ and END_ blocks. -// New source code should be placed in .dm files: choose File/New --> Code File. -// BEGIN_INTERNALS -// END_INTERNALS - -// BEGIN_FILE_DIR -#define FILE_DIR . -// END_FILE_DIR - -// BEGIN_PREFERENCES -#define DEBUG -// END_PREFERENCES - -// BEGIN_INCLUDE -#include "_maps\_basemap.dm" -#include "code\_compile_options.dm" -#include "code\world.dm" -#include "code\__DEFINES\_extools.dm" -#include "code\__DEFINES\_globals.dm" -#include "code\__DEFINES\_protect.dm" -#include "code\__DEFINES\_tick.dm" -#include "code\__DEFINES\access.dm" -#include "code\__DEFINES\achievements.dm" -#include "code\__DEFINES\actionspeed_modifiers.dm" -#include "code\__DEFINES\admin.dm" -#include "code\__DEFINES\antagonists.dm" -#include "code\__DEFINES\atmospherics.dm" -#include "code\__DEFINES\atom_hud.dm" -#include "code\__DEFINES\blackmarket.dm" -#include "code\__DEFINES\botany.dm" -#include "code\__DEFINES\callbacks.dm" -#include "code\__DEFINES\cargo.dm" -#include "code\__DEFINES\cinematics.dm" -#include "code\__DEFINES\citadel_defines.dm" -#include "code\__DEFINES\cleaning.dm" -#include "code\__DEFINES\clockcult.dm" -#include "code\__DEFINES\colors.dm" -#include "code\__DEFINES\combat.dm" -#include "code\__DEFINES\configuration.dm" -#include "code\__DEFINES\construction.dm" -#include "code\__DEFINES\contracts.dm" -#include "code\__DEFINES\cooldowns.dm" -#include "code\__DEFINES\cult.dm" -#include "code\__DEFINES\diseases.dm" -#include "code\__DEFINES\DNA.dm" -#include "code\__DEFINES\donator_groupings.dm" -#include "code\__DEFINES\dye_keys.dm" -#include "code\__DEFINES\dynamic.dm" -#include "code\__DEFINES\economy.dm" -#include "code\__DEFINES\events.dm" -#include "code\__DEFINES\exosuit_fabs.dm" -#include "code\__DEFINES\explosion.dm" -#include "code\__DEFINES\exports.dm" -#include "code\__DEFINES\fantasy_affixes.dm" -#include "code\__DEFINES\food.dm" -#include "code\__DEFINES\footsteps.dm" -#include "code\__DEFINES\hud.dm" -#include "code\__DEFINES\instruments.dm" -#include "code\__DEFINES\integrated_electronics.dm" -#include "code\__DEFINES\interaction_flags.dm" -#include "code\__DEFINES\inventory.dm" -#include "code\__DEFINES\is_helpers.dm" -#include "code\__DEFINES\jobs.dm" -#include "code\__DEFINES\language.dm" -#include "code\__DEFINES\layers_planes.dm" -#include "code\__DEFINES\lighting.dm" -#include "code\__DEFINES\loadout.dm" -#include "code\__DEFINES\logging.dm" -#include "code\__DEFINES\machines.dm" -#include "code\__DEFINES\maps.dm" -#include "code\__DEFINES\materials.dm" -#include "code\__DEFINES\maths.dm" -#include "code\__DEFINES\MC.dm" -#include "code\__DEFINES\melee.dm" -#include "code\__DEFINES\menu.dm" -#include "code\__DEFINES\misc.dm" -#include "code\__DEFINES\mobs.dm" -#include "code\__DEFINES\monkeys.dm" -#include "code\__DEFINES\move_force.dm" -#include "code\__DEFINES\movement.dm" -#include "code\__DEFINES\movespeed_modification.dm" -#include "code\__DEFINES\nanites.dm" -#include "code\__DEFINES\networks.dm" -#include "code\__DEFINES\pinpointers.dm" -#include "code\__DEFINES\pipe_construction.dm" -#include "code\__DEFINES\plumbing.dm" -#include "code\__DEFINES\pool.dm" -#include "code\__DEFINES\power.dm" -#include "code\__DEFINES\preferences.dm" -#include "code\__DEFINES\procpath.dm" -#include "code\__DEFINES\profile.dm" -#include "code\__DEFINES\projectiles.dm" -#include "code\__DEFINES\qdel.dm" -#include "code\__DEFINES\radiation.dm" -#include "code\__DEFINES\radio.dm" -#include "code\__DEFINES\reactions.dm" -#include "code\__DEFINES\reagents.dm" -#include "code\__DEFINES\reagents_specific_heat.dm" -#include "code\__DEFINES\research.dm" -#include "code\__DEFINES\robots.dm" -#include "code\__DEFINES\rockpaperscissors.dm" -#include "code\__DEFINES\role_preferences.dm" -#include "code\__DEFINES\rust_g.dm" -#include "code\__DEFINES\say.dm" -#include "code\__DEFINES\security_levels.dm" -#include "code\__DEFINES\shuttles.dm" -#include "code\__DEFINES\sight.dm" -#include "code\__DEFINES\sound.dm" -#include "code\__DEFINES\spaceman_dmm.dm" -#include "code\__DEFINES\species.dm" -#include "code\__DEFINES\stat.dm" -#include "code\__DEFINES\stat_tracking.dm" -#include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\subsystems.dm" -#include "code\__DEFINES\tgs.config.dm" -#include "code\__DEFINES\tgs.dm" -#include "code\__DEFINES\tgui.dm" -#include "code\__DEFINES\time.dm" -#include "code\__DEFINES\tools.dm" -#include "code\__DEFINES\traits.dm" -#include "code\__DEFINES\turf_flags.dm" -#include "code\__DEFINES\typeids.dm" -#include "code\__DEFINES\vehicles.dm" -#include "code\__DEFINES\voreconstants.dm" -#include "code\__DEFINES\vote.dm" -#include "code\__DEFINES\vv.dm" -#include "code\__DEFINES\wall_dents.dm" -#include "code\__DEFINES\wires.dm" -#include "code\__DEFINES\wounds.dm" -#include "code\__DEFINES\_flags\_flags.dm" -#include "code\__DEFINES\_flags\do_after.dm" -#include "code\__DEFINES\_flags\item_flags.dm" -#include "code\__DEFINES\_flags\obj_flags.dm" -#include "code\__DEFINES\_flags\return_values.dm" -#include "code\__DEFINES\_flags\shields.dm" -#include "code\__DEFINES\admin\keybindings.dm" -#include "code\__DEFINES\chemistry\reactions.dm" -#include "code\__DEFINES\combat\attack_types.dm" -#include "code\__DEFINES\combat\block.dm" -#include "code\__DEFINES\combat\block_parry.dm" -#include "code\__DEFINES\combat\stamina_combat.dm" -#include "code\__DEFINES\dcs\flags.dm" -#include "code\__DEFINES\dcs\helpers.dm" -#include "code\__DEFINES\dcs\signals.dm" -#include "code\__DEFINES\mapping\maploader.dm" -#include "code\__DEFINES\material\worth.dm" -#include "code\__DEFINES\mobs\innate_abilities.dm" -#include "code\__DEFINES\mobs\slowdowns.dm" -#include "code\__DEFINES\research\anomalies.dm" -#include "code\__DEFINES\research\stock_parts.dm" -#include "code\__DEFINES\skills\defines.dm" -#include "code\__DEFINES\skills\helpers.dm" -#include "code\__DEFINES\storage\_storage.dm" -#include "code\__DEFINES\storage\volumetrics.dm" -#include "code\__HELPERS\_cit_helpers.dm" -#include "code\__HELPERS\_lists.dm" -#include "code\__HELPERS\_logging.dm" -#include "code\__HELPERS\_string_lists.dm" -#include "code\__HELPERS\angles.dm" -#include "code\__HELPERS\areas.dm" -#include "code\__HELPERS\AStar.dm" -#include "code\__HELPERS\chat.dm" -#include "code\__HELPERS\cmp.dm" -#include "code\__HELPERS\custom_holoforms.dm" -#include "code\__HELPERS\dates.dm" -#include "code\__HELPERS\dna.dm" -#include "code\__HELPERS\do_after.dm" -#include "code\__HELPERS\donator_groupings.dm" -#include "code\__HELPERS\files.dm" -#include "code\__HELPERS\filters.dm" -#include "code\__HELPERS\game.dm" -#include "code\__HELPERS\global_lists.dm" -#include "code\__HELPERS\heap.dm" -#include "code\__HELPERS\icon_smoothing.dm" -#include "code\__HELPERS\icons.dm" -#include "code\__HELPERS\level_traits.dm" -#include "code\__HELPERS\matrices.dm" -#include "code\__HELPERS\mobs.dm" -#include "code\__HELPERS\mouse_control.dm" -#include "code\__HELPERS\names.dm" -#include "code\__HELPERS\priority_announce.dm" -#include "code\__HELPERS\pronouns.dm" -#include "code\__HELPERS\qdel.dm" -#include "code\__HELPERS\radiation.dm" -#include "code\__HELPERS\radio.dm" -#include "code\__HELPERS\reagents.dm" -#include "code\__HELPERS\roundend.dm" -#include "code\__HELPERS\sanitize_values.dm" -#include "code\__HELPERS\shell.dm" -#include "code\__HELPERS\stat_tracking.dm" -#include "code\__HELPERS\text.dm" -#include "code\__HELPERS\text_vr.dm" -#include "code\__HELPERS\time.dm" -#include "code\__HELPERS\type2type.dm" -#include "code\__HELPERS\type_processing.dm" -#include "code\__HELPERS\typelists.dm" -#include "code\__HELPERS\unsorted.dm" -#include "code\__HELPERS\vector.dm" -#include "code\__HELPERS\verbs.dm" -#include "code\__HELPERS\view.dm" -#include "code\__HELPERS\sorts\__main.dm" -#include "code\__HELPERS\sorts\InsertSort.dm" -#include "code\__HELPERS\sorts\MergeSort.dm" -#include "code\__HELPERS\sorts\TimSort.dm" -#include "code\_globalvars\admin.dm" -#include "code\_globalvars\bitfields.dm" -#include "code\_globalvars\configuration.dm" -#include "code\_globalvars\game_modes.dm" -#include "code\_globalvars\genetics.dm" -#include "code\_globalvars\logging.dm" -#include "code\_globalvars\misc.dm" -#include "code\_globalvars\regexes.dm" -#include "code\_globalvars\traits.dm" -#include "code\_globalvars\lists\achievements.dm" -#include "code\_globalvars\lists\client.dm" -#include "code\_globalvars\lists\flavor_misc.dm" -#include "code\_globalvars\lists\keybindings.dm" -#include "code\_globalvars\lists\loadout_categories.dm" -#include "code\_globalvars\lists\maintenance_loot.dm" -#include "code\_globalvars\lists\mapping.dm" -#include "code\_globalvars\lists\misc.dm" -#include "code\_globalvars\lists\mobs.dm" -#include "code\_globalvars\lists\names.dm" -#include "code\_globalvars\lists\objects.dm" -#include "code\_globalvars\lists\poll_ignore.dm" -#include "code\_globalvars\lists\typecache.dm" -#include "code\_js\byjax.dm" -#include "code\_js\menus.dm" -#include "code\_onclick\adjacent.dm" -#include "code\_onclick\ai.dm" -#include "code\_onclick\click.dm" -#include "code\_onclick\cyborg.dm" -#include "code\_onclick\drag_drop.dm" -#include "code\_onclick\item_attack.dm" -#include "code\_onclick\observer.dm" -#include "code\_onclick\other_mobs.dm" -#include "code\_onclick\overmind.dm" -#include "code\_onclick\right_click.dm" -#include "code\_onclick\right_item_attack.dm" -#include "code\_onclick\right_other_mobs.dm" -#include "code\_onclick\telekinesis.dm" -#include "code\_onclick\hud\_defines.dm" -#include "code\_onclick\hud\action_button.dm" -#include "code\_onclick\hud\ai.dm" -#include "code\_onclick\hud\alert.dm" -#include "code\_onclick\hud\alien.dm" -#include "code\_onclick\hud\alien_larva.dm" -#include "code\_onclick\hud\blob_overmind.dm" -#include "code\_onclick\hud\blobbernauthud.dm" -#include "code\_onclick\hud\clockwork_marauder.dm" -#include "code\_onclick\hud\constructs.dm" -#include "code\_onclick\hud\credits.dm" -#include "code\_onclick\hud\devil.dm" -#include "code\_onclick\hud\drones.dm" -#include "code\_onclick\hud\fullscreen.dm" -#include "code\_onclick\hud\generic_dextrous.dm" -#include "code\_onclick\hud\ghost.dm" -#include "code\_onclick\hud\guardian.dm" -#include "code\_onclick\hud\hud.dm" -#include "code\_onclick\hud\human.dm" -#include "code\_onclick\hud\lavaland_elite.dm" -#include "code\_onclick\hud\map_popups.dm" -#include "code\_onclick\hud\monkey.dm" -#include "code\_onclick\hud\movable_screen_objects.dm" -#include "code\_onclick\hud\parallax.dm" -#include "code\_onclick\hud\picture_in_picture.dm" -#include "code\_onclick\hud\plane_master.dm" -#include "code\_onclick\hud\radial.dm" -#include "code\_onclick\hud\radial_persistent.dm" -#include "code\_onclick\hud\revenanthud.dm" -#include "code\_onclick\hud\robot.dm" -#include "code\_onclick\hud\screen_objects.dm" -#include "code\_onclick\hud\simple_animal.dm" -#include "code\_onclick\hud\swarmer.dm" -#include "code\_onclick\hud\screen_objects\clickdelay.dm" -#include "code\_onclick\hud\screen_objects\sprint.dm" -#include "code\_onclick\hud\screen_objects\stamina.dm" -#include "code\_onclick\hud\screen_objects\storage.dm" -#include "code\_onclick\hud\screen_objects\vore.dm" -#include "code\controllers\admin.dm" -#include "code\controllers\configuration_citadel.dm" -#include "code\controllers\controller.dm" -#include "code\controllers\failsafe.dm" -#include "code\controllers\globals.dm" -#include "code\controllers\hooks.dm" -#include "code\controllers\master.dm" -#include "code\controllers\subsystem.dm" -#include "code\controllers\configuration\config_entry.dm" -#include "code\controllers\configuration\configuration.dm" -#include "code\controllers\configuration\entries\comms.dm" -#include "code\controllers\configuration\entries\dbconfig.dm" -#include "code\controllers\configuration\entries\donator.dm" -#include "code\controllers\configuration\entries\dynamic.dm" -#include "code\controllers\configuration\entries\fail2topic.dm" -#include "code\controllers\configuration\entries\game_options.dm" -#include "code\controllers\configuration\entries\general.dm" -#include "code\controllers\configuration\entries\logging.dm" -#include "code\controllers\configuration\entries\persistence.dm" -#include "code\controllers\configuration\entries\plushies.dm" -#include "code\controllers\configuration\entries\policy.dm" -#include "code\controllers\configuration\entries\resources.dm" -#include "code\controllers\configuration\entries\respawns.dm" -#include "code\controllers\configuration\entries\stamina_combat.dm" -#include "code\controllers\subsystem\achievements.dm" -#include "code\controllers\subsystem\acid.dm" -#include "code\controllers\subsystem\activity.dm" -#include "code\controllers\subsystem\adjacent_air.dm" -#include "code\controllers\subsystem\air.dm" -#include "code\controllers\subsystem\air_turfs.dm" -#include "code\controllers\subsystem\assets.dm" -#include "code\controllers\subsystem\atoms.dm" -#include "code\controllers\subsystem\augury.dm" -#include "code\controllers\subsystem\autotransfer.dm" -#include "code\controllers\subsystem\blackbox.dm" -#include "code\controllers\subsystem\blackmarket.dm" -#include "code\controllers\subsystem\chat.dm" -#include "code\controllers\subsystem\communications.dm" -#include "code\controllers\subsystem\dbcore.dm" -#include "code\controllers\subsystem\dcs.dm" -#include "code\controllers\subsystem\disease.dm" -#include "code\controllers\subsystem\economy.dm" -#include "code\controllers\subsystem\events.dm" -#include "code\controllers\subsystem\explosions.dm" -#include "code\controllers\subsystem\fail2topic.dm" -#include "code\controllers\subsystem\fire_burning.dm" -#include "code\controllers\subsystem\fluid.dm" -#include "code\controllers\subsystem\garbage.dm" -#include "code\controllers\subsystem\holodeck.dm" -#include "code\controllers\subsystem\icon_smooth.dm" -#include "code\controllers\subsystem\idlenpcpool.dm" -#include "code\controllers\subsystem\input.dm" -#include "code\controllers\subsystem\ipintel.dm" -#include "code\controllers\subsystem\job.dm" -#include "code\controllers\subsystem\jukeboxes.dm" -#include "code\controllers\subsystem\language.dm" -#include "code\controllers\subsystem\lighting.dm" -#include "code\controllers\subsystem\machines.dm" -#include "code\controllers\subsystem\mapping.dm" -#include "code\controllers\subsystem\materials.dm" -#include "code\controllers\subsystem\minimaps.dm" -#include "code\controllers\subsystem\minimum_spawns.dm" -#include "code\controllers\subsystem\minor_mapping.dm" -#include "code\controllers\subsystem\mobs.dm" -#include "code\controllers\subsystem\nightshift.dm" -#include "code\controllers\subsystem\npcpool.dm" -#include "code\controllers\subsystem\overlays.dm" -#include "code\controllers\subsystem\pai.dm" -#include "code\controllers\subsystem\parallax.dm" -#include "code\controllers\subsystem\pathfinder.dm" -#include "code\controllers\subsystem\profiler.dm" -#include "code\controllers\subsystem\radiation.dm" -#include "code\controllers\subsystem\radio.dm" -#include "code\controllers\subsystem\research.dm" -#include "code\controllers\subsystem\runechat.dm" -#include "code\controllers\subsystem\server_maint.dm" -#include "code\controllers\subsystem\shuttle.dm" -#include "code\controllers\subsystem\sounds.dm" -#include "code\controllers\subsystem\spacedrift.dm" -#include "code\controllers\subsystem\statpanel.dm" -#include "code\controllers\subsystem\stickyban.dm" -#include "code\controllers\subsystem\sun.dm" -#include "code\controllers\subsystem\tgui.dm" -#include "code\controllers\subsystem\throwing.dm" -#include "code\controllers\subsystem\ticker.dm" -#include "code\controllers\subsystem\time_track.dm" -#include "code\controllers\subsystem\timer.dm" -#include "code\controllers\subsystem\title.dm" -#include "code\controllers\subsystem\traumas.dm" -#include "code\controllers\subsystem\vis_overlays.dm" -#include "code\controllers\subsystem\vore.dm" -#include "code\controllers\subsystem\vote.dm" -#include "code\controllers\subsystem\persistence\_persistence.dm" -#include "code\controllers\subsystem\persistence\cleanable_debris.dm" -#include "code\controllers\subsystem\persistence\panic_bunker.dm" -#include "code\controllers\subsystem\persistence\poly_parrot.dm" -#include "code\controllers\subsystem\persistence\recent_votes_etc.dm" -#include "code\controllers\subsystem\persistence\secret_satchels.dm" -#include "code\controllers\subsystem\persistence\trophies.dm" -#include "code\controllers\subsystem\processing\chemistry.dm" -#include "code\controllers\subsystem\processing\circuit.dm" -#include "code\controllers\subsystem\processing\fastprocess.dm" -#include "code\controllers\subsystem\processing\fields.dm" -#include "code\controllers\subsystem\processing\huds.dm" -#include "code\controllers\subsystem\processing\instruments.dm" -#include "code\controllers\subsystem\processing\nanites.dm" -#include "code\controllers\subsystem\processing\networks.dm" -#include "code\controllers\subsystem\processing\obj.dm" -#include "code\controllers\subsystem\processing\processing.dm" -#include "code\controllers\subsystem\processing\projectiles.dm" -#include "code\controllers\subsystem\processing\quirks.dm" -#include "code\controllers\subsystem\processing\status_effects.dm" -#include "code\controllers\subsystem\processing\weather.dm" -#include "code\controllers\subsystem\processing\wet_floors.dm" -#include "code\datums\accents.dm" -#include "code\datums\action.dm" -#include "code\datums\ai_laws.dm" -#include "code\datums\armor.dm" -#include "code\datums\beam.dm" -#include "code\datums\beepsky_fashion.dm" -#include "code\datums\browser.dm" -#include "code\datums\callback.dm" -#include "code\datums\chatmessage.dm" -#include "code\datums\cinematic.dm" -#include "code\datums\dash_weapon.dm" -#include "code\datums\datacore.dm" -#include "code\datums\datum.dm" -#include "code\datums\datumvars.dm" -#include "code\datums\dna.dm" -#include "code\datums\dog_fashion.dm" -#include "code\datums\ductnet.dm" -#include "code\datums\emotes.dm" -#include "code\datums\ert.dm" -#include "code\datums\explosion.dm" -#include "code\datums\explosion2.dm" -#include "code\datums\forced_movement.dm" -#include "code\datums\holocall.dm" -#include "code\datums\http.dm" -#include "code\datums\hud.dm" -#include "code\datums\mind.dm" -#include "code\datums\mutable_appearance.dm" -#include "code\datums\numbered_display.dm" -#include "code\datums\outfit.dm" -#include "code\datums\position_point_vector.dm" -#include "code\datums\profiling.dm" -#include "code\datums\progressbar.dm" -#include "code\datums\radiation_wave.dm" -#include "code\datums\recipe.dm" -#include "code\datums\ruins.dm" -#include "code\datums\saymode.dm" -#include "code\datums\shuttles.dm" -#include "code\datums\soullink.dm" -#include "code\datums\spawners_menu.dm" -#include "code\datums\tgs_event_handler.dm" -#include "code\datums\verbs.dm" -#include "code\datums\view.dm" -#include "code\datums\weakrefs.dm" -#include "code\datums\world_topic.dm" -#include "code\datums\achievements\_achievement_data.dm" -#include "code\datums\achievements\_awards.dm" -#include "code\datums\achievements\boss_achievements.dm" -#include "code\datums\achievements\boss_scores.dm" -#include "code\datums\achievements\mafia_achievements.dm" -#include "code\datums\achievements\misc_achievements.dm" -#include "code\datums\achievements\misc_scores.dm" -#include "code\datums\achievements\skill_achievements.dm" -#include "code\datums\actions\beam_rifle.dm" -#include "code\datums\actions\ninja.dm" -#include "code\datums\brain_damage\brain_trauma.dm" -#include "code\datums\brain_damage\hypnosis.dm" -#include "code\datums\brain_damage\imaginary_friend.dm" -#include "code\datums\brain_damage\magic.dm" -#include "code\datums\brain_damage\mild.dm" -#include "code\datums\brain_damage\phobia.dm" -#include "code\datums\brain_damage\severe.dm" -#include "code\datums\brain_damage\special.dm" -#include "code\datums\brain_damage\split_personality.dm" -#include "code\datums\components\_component.dm" -#include "code\datums\components\activity.dm" -#include "code\datums\components\anti_magic.dm" -#include "code\datums\components\armor_plate.dm" -#include "code\datums\components\bane.dm" -#include "code\datums\components\bouncy.dm" -#include "code\datums\components\butchering.dm" -#include "code\datums\components\caltrop.dm" -#include "code\datums\components\chasm.dm" -#include "code\datums\components\combat_mode.dm" -#include "code\datums\components\construction.dm" -#include "code\datums\components\dejavu.dm" -#include "code\datums\components\earprotection.dm" -#include "code\datums\components\edible.dm" -#include "code\datums\components\edit_complainer.dm" -#include "code\datums\components\embedded.dm" -#include "code\datums\components\explodable.dm" -#include "code\datums\components\field_of_vision.dm" -#include "code\datums\components\footstep.dm" -#include "code\datums\components\fried.dm" -#include "code\datums\components\gps.dm" -#include "code\datums\components\honkspam.dm" -#include "code\datums\components\identification.dm" -#include "code\datums\components\igniter.dm" -#include "code\datums\components\infective.dm" -#include "code\datums\components\jousting.dm" -#include "code\datums\components\killerqueen.dm" -#include "code\datums\components\knockback.dm" -#include "code\datums\components\knockoff.dm" -#include "code\datums\components\label.dm" -#include "code\datums\components\lifesteal.dm" -#include "code\datums\components\lockon_aiming.dm" -#include "code\datums\components\magnetic_catch.dm" -#include "code\datums\components\material_container.dm" -#include "code\datums\components\mirage_border.dm" -#include "code\datums\components\mirv.dm" -#include "code\datums\components\mood.dm" -#include "code\datums\components\nanites.dm" -#include "code\datums\components\ntnet_interface.dm" -#include "code\datums\components\omen.dm" -#include "code\datums\components\orbiter.dm" -#include "code\datums\components\paintable.dm" -#include "code\datums\components\pellet_cloud.dm" -#include "code\datums\components\phantomthief.dm" -#include "code\datums\components\rad_insulation.dm" -#include "code\datums\components\radioactive.dm" -#include "code\datums\components\remote_materials.dm" -#include "code\datums\components\riding.dm" -#include "code\datums\components\rotation.dm" -#include "code\datums\components\shielded.dm" -#include "code\datums\components\shrink.dm" -#include "code\datums\components\sizzle.dm" -#include "code\datums\components\slippery.dm" -#include "code\datums\components\spawner.dm" -#include "code\datums\components\spooky.dm" -#include "code\datums\components\squeak.dm" -#include "code\datums\components\stationloving.dm" -#include "code\datums\components\summoning.dm" -#include "code\datums\components\swarming.dm" -#include "code\datums\components\tackle.dm" -#include "code\datums\components\thermite.dm" -#include "code\datums\components\twitch_plays.dm" -#include "code\datums\components\twohanded.dm" -#include "code\datums\components\uplink.dm" -#include "code\datums\components\virtual_reality.dm" -#include "code\datums\components\waddling.dm" -#include "code\datums\components\wearertargeting.dm" -#include "code\datums\components\wet_floor.dm" -#include "code\datums\components\crafting\crafting.dm" -#include "code\datums\components\crafting\guncrafting.dm" -#include "code\datums\components\crafting\recipes.dm" -#include "code\datums\components\crafting\glassware\glassware.dm" -#include "code\datums\components\crafting\glassware\lens_crafting.dm" -#include "code\datums\components\crafting\recipes\recipes_clothing.dm" -#include "code\datums\components\crafting\recipes\recipes_misc.dm" -#include "code\datums\components\crafting\recipes\recipes_primal.dm" -#include "code\datums\components\crafting\recipes\recipes_robot.dm" -#include "code\datums\components\crafting\recipes\recipes_weapon_and_ammo.dm" -#include "code\datums\components\fantasy\_fantasy.dm" -#include "code\datums\components\fantasy\affix.dm" -#include "code\datums\components\fantasy\prefixes.dm" -#include "code\datums\components\fantasy\suffixes.dm" -#include "code\datums\components\plumbing\_plumbing.dm" -#include "code\datums\components\plumbing\chemical_acclimator.dm" -#include "code\datums\components\plumbing\filter.dm" -#include "code\datums\components\plumbing\reaction_chamber.dm" -#include "code\datums\components\plumbing\splitter.dm" -#include "code\datums\components\storage\storage.dm" -#include "code\datums\components\storage\ui.dm" -#include "code\datums\components\storage\concrete\_concrete.dm" -#include "code\datums\components\storage\concrete\bag_of_holding.dm" -#include "code\datums\components\storage\concrete\bluespace.dm" -#include "code\datums\components\storage\concrete\emergency.dm" -#include "code\datums\components\storage\concrete\implant.dm" -#include "code\datums\components\storage\concrete\pockets.dm" -#include "code\datums\components\storage\concrete\rped.dm" -#include "code\datums\components\storage\concrete\special.dm" -#include "code\datums\components\storage\concrete\stack.dm" -#include "code\datums\components\storage\concrete\tcg.dm" -#include "code\datums\diseases\_disease.dm" -#include "code\datums\diseases\_MobProcs.dm" -#include "code\datums\diseases\anxiety.dm" -#include "code\datums\diseases\appendicitis.dm" -#include "code\datums\diseases\beesease.dm" -#include "code\datums\diseases\brainrot.dm" -#include "code\datums\diseases\cold.dm" -#include "code\datums\diseases\cold9.dm" -#include "code\datums\diseases\dna_spread.dm" -#include "code\datums\diseases\fake_gbs.dm" -#include "code\datums\diseases\flu.dm" -#include "code\datums\diseases\fluspanish.dm" -#include "code\datums\diseases\gbs.dm" -#include "code\datums\diseases\heart_failure.dm" -#include "code\datums\diseases\magnitis.dm" -#include "code\datums\diseases\parrotpossession.dm" -#include "code\datums\diseases\pierrot_throat.dm" -#include "code\datums\diseases\retrovirus.dm" -#include "code\datums\diseases\rhumba_beat.dm" -#include "code\datums\diseases\transformation.dm" -#include "code\datums\diseases\tuberculosis.dm" -#include "code\datums\diseases\wizarditis.dm" -#include "code\datums\diseases\advance\advance.dm" -#include "code\datums\diseases\advance\presets.dm" -#include "code\datums\diseases\advance\symptoms\beard.dm" -#include "code\datums\diseases\advance\symptoms\choking.dm" -#include "code\datums\diseases\advance\symptoms\confusion.dm" -#include "code\datums\diseases\advance\symptoms\cough.dm" -#include "code\datums\diseases\advance\symptoms\deafness.dm" -#include "code\datums\diseases\advance\symptoms\disfiguration.dm" -#include "code\datums\diseases\advance\symptoms\dizzy.dm" -#include "code\datums\diseases\advance\symptoms\fever.dm" -#include "code\datums\diseases\advance\symptoms\fire.dm" -#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" -#include "code\datums\diseases\advance\symptoms\genetics.dm" -#include "code\datums\diseases\advance\symptoms\hallucigen.dm" -#include "code\datums\diseases\advance\symptoms\headache.dm" -#include "code\datums\diseases\advance\symptoms\heal.dm" -#include "code\datums\diseases\advance\symptoms\itching.dm" -#include "code\datums\diseases\advance\symptoms\nanites.dm" -#include "code\datums\diseases\advance\symptoms\narcolepsy.dm" -#include "code\datums\diseases\advance\symptoms\oxygen.dm" -#include "code\datums\diseases\advance\symptoms\sensory.dm" -#include "code\datums\diseases\advance\symptoms\shedding.dm" -#include "code\datums\diseases\advance\symptoms\shivering.dm" -#include "code\datums\diseases\advance\symptoms\skin.dm" -#include "code\datums\diseases\advance\symptoms\sneeze.dm" -#include "code\datums\diseases\advance\symptoms\species.dm" -#include "code\datums\diseases\advance\symptoms\symptoms.dm" -#include "code\datums\diseases\advance\symptoms\viral.dm" -#include "code\datums\diseases\advance\symptoms\vision.dm" -#include "code\datums\diseases\advance\symptoms\voice_change.dm" -#include "code\datums\diseases\advance\symptoms\vomit.dm" -#include "code\datums\diseases\advance\symptoms\weight.dm" -#include "code\datums\diseases\advance\symptoms\youth.dm" -#include "code\datums\elements\_element.dm" -#include "code\datums\elements\art.dm" -#include "code\datums\elements\beauty.dm" -#include "code\datums\elements\bed_tucking.dm" -#include "code\datums\elements\bsa_blocker.dm" -#include "code\datums\elements\cleaning.dm" -#include "code\datums\elements\decal.dm" -#include "code\datums\elements\dusts_on_catatonia.dm" -#include "code\datums\elements\dusts_on_leaving_area.dm" -#include "code\datums\elements\dwarfism.dm" -#include "code\datums\elements\earhealing.dm" -#include "code\datums\elements\embed.dm" -#include "code\datums\elements\empprotection.dm" -#include "code\datums\elements\firestacker.dm" -#include "code\datums\elements\flavor_text.dm" -#include "code\datums\elements\forced_gravity.dm" -#include "code\datums\elements\ghost_role_eligibility.dm" -#include "code\datums\elements\mob_holder.dm" -#include "code\datums\elements\photosynthesis.dm" -#include "code\datums\elements\polychromic.dm" -#include "code\datums\elements\scavenging.dm" -#include "code\datums\elements\snail_crawl.dm" -#include "code\datums\elements\spellcasting.dm" -#include "code\datums\elements\squish.dm" -#include "code\datums\elements\swimming.dm" -#include "code\datums\elements\sword_point.dm" -#include "code\datums\elements\tactical.dm" -#include "code\datums\elements\turf_transparency.dm" -#include "code\datums\elements\update_icon_blocker.dm" -#include "code\datums\elements\update_icon_updates_onmob.dm" -#include "code\datums\elements\ventcrawling.dm" -#include "code\datums\elements\wuv.dm" -#include "code\datums\helper_datums\events.dm" -#include "code\datums\helper_datums\getrev.dm" -#include "code\datums\helper_datums\icon_snapshot.dm" -#include "code\datums\helper_datums\teleport.dm" -#include "code\datums\looping_sounds\_looping_sound.dm" -#include "code\datums\looping_sounds\item_sounds.dm" -#include "code\datums\looping_sounds\machinery_sounds.dm" -#include "code\datums\looping_sounds\weather.dm" -#include "code\datums\mapgen\_MapGenerator.dm" -#include "code\datums\mapgen\CaveGenerator.dm" -#include "code\datums\mapgen\JungleGenerator.dm" -#include "code\datums\mapgen\biomes\_biome.dm" -#include "code\datums\mapgen\Cavegens\IcemoonCaves.dm" -#include "code\datums\mapgen\Cavegens\LavalandGenerator.dm" -#include "code\datums\martial\_martial.dm" -#include "code\datums\martial\boxing.dm" -#include "code\datums\martial\cqc.dm" -#include "code\datums\martial\krav_maga.dm" -#include "code\datums\martial\mushpunch.dm" -#include "code\datums\martial\plasma_fist.dm" -#include "code\datums\martial\psychotic_brawl.dm" -#include "code\datums\martial\rising_bass.dm" -#include "code\datums\martial\sleeping_carp.dm" -#include "code\datums\martial\wrestling.dm" -#include "code\datums\materials\_material.dm" -#include "code\datums\materials\basemats.dm" -#include "code\datums\materials\meat.dm" -#include "code\datums\materials\pizza.dm" -#include "code\datums\mood_events\beauty_events.dm" -#include "code\datums\mood_events\drink_events.dm" -#include "code\datums\mood_events\drug_events.dm" -#include "code\datums\mood_events\generic_negative_events.dm" -#include "code\datums\mood_events\generic_positive_events.dm" -#include "code\datums\mood_events\mood_event.dm" -#include "code\datums\mood_events\needs_events.dm" -#include "code\datums\mutations\_mutations.dm" -#include "code\datums\mutations\actions.dm" -#include "code\datums\mutations\antenna.dm" -#include "code\datums\mutations\body.dm" -#include "code\datums\mutations\chameleon.dm" -#include "code\datums\mutations\cluwne.dm" -#include "code\datums\mutations\cold.dm" -#include "code\datums\mutations\combined.dm" -#include "code\datums\mutations\hulk.dm" -#include "code\datums\mutations\radioactive.dm" -#include "code\datums\mutations\sight.dm" -#include "code\datums\mutations\space_adaptation.dm" -#include "code\datums\mutations\speech.dm" -#include "code\datums\mutations\telekinesis.dm" -#include "code\datums\ruins\icemoon.dm" -#include "code\datums\ruins\lavaland.dm" -#include "code\datums\ruins\space.dm" -#include "code\datums\ruins\station.dm" -#include "code\datums\skills\_check_skills.dm" -#include "code\datums\skills\_skill.dm" -#include "code\datums\skills\_skill_holder.dm" -#include "code\datums\skills\_skill_modifier.dm" -#include "code\datums\skills\blacksmithing.dm" -#include "code\datums\skills\engineering.dm" -#include "code\datums\skills\medical.dm" -#include "code\datums\skills\modifiers\job.dm" -#include "code\datums\skills\modifiers\mood.dm" -#include "code\datums\skills\modifiers\organs.dm" -#include "code\datums\status_effects\buffs.dm" -#include "code\datums\status_effects\debuffs.dm" -#include "code\datums\status_effects\gas.dm" -#include "code\datums\status_effects\neutral.dm" -#include "code\datums\status_effects\status_effect.dm" -#include "code\datums\status_effects\wound_effects.dm" -#include "code\datums\traits\_quirk.dm" -#include "code\datums\traits\good.dm" -#include "code\datums\traits\negative.dm" -#include "code\datums\traits\neutral.dm" -#include "code\datums\weather\weather.dm" -#include "code\datums\weather\weather_types\acid_rain.dm" -#include "code\datums\weather\weather_types\ash_storm.dm" -#include "code\datums\weather\weather_types\floor_is_lava.dm" -#include "code\datums\weather\weather_types\radiation_storm.dm" -#include "code\datums\weather\weather_types\snow_storm.dm" -#include "code\datums\weather\weather_types\void_storm.dm" -#include "code\datums\wires\_wires.dm" -#include "code\datums\wires\airalarm.dm" -#include "code\datums\wires\airlock.dm" -#include "code\datums\wires\apc.dm" -#include "code\datums\wires\autolathe.dm" -#include "code\datums\wires\emitter.dm" -#include "code\datums\wires\explosive.dm" -#include "code\datums\wires\microwave.dm" -#include "code\datums\wires\mulebot.dm" -#include "code\datums\wires\particle_accelerator.dm" -#include "code\datums\wires\r_n_d.dm" -#include "code\datums\wires\radio.dm" -#include "code\datums\wires\robot.dm" -#include "code\datums\wires\suit_storage_unit.dm" -#include "code\datums\wires\syndicatebomb.dm" -#include "code\datums\wires\tesla_coil.dm" -#include "code\datums\wires\vending.dm" -#include "code\datums\wounds\_scars.dm" -#include "code\datums\wounds\_wounds.dm" -#include "code\datums\wounds\bones.dm" -#include "code\datums\wounds\burns.dm" -#include "code\datums\wounds\loss.dm" -#include "code\datums\wounds\pierce.dm" -#include "code\datums\wounds\slash.dm" -#include "code\game\alternate_appearance.dm" -#include "code\game\atoms.dm" -#include "code\game\atoms_movable.dm" -#include "code\game\atoms_movement.dm" -#include "code\game\communications.dm" -#include "code\game\data_huds.dm" -#include "code\game\say.dm" -#include "code\game\shuttle_engines.dm" -#include "code\game\sound.dm" -#include "code\game\world.dm" -#include "code\game\area\ai_monitored.dm" -#include "code\game\area\areas.dm" -#include "code\game\area\Space_Station_13_areas.dm" -#include "code\game\area\areas\away_content.dm" -#include "code\game\area\areas\centcom.dm" -#include "code\game\area\areas\holodeck.dm" -#include "code\game\area\areas\mining.dm" -#include "code\game\area\areas\shuttles.dm" -#include "code\game\area\areas\ruins\_ruins.dm" -#include "code\game\area\areas\ruins\icemoon.dm" -#include "code\game\area\areas\ruins\lavaland.dm" -#include "code\game\area\areas\ruins\space.dm" -#include "code\game\area\areas\ruins\templates.dm" -#include "code\game\gamemodes\events.dm" -#include "code\game\gamemodes\game_mode.dm" -#include "code\game\gamemodes\objective.dm" -#include "code\game\gamemodes\objective_items.dm" -#include "code\game\gamemodes\objective_sabotage.dm" -#include "code\game\gamemodes\bloodsucker\bloodsucker.dm" -#include "code\game\gamemodes\bloodsucker\hunter.dm" -#include "code\game\gamemodes\brother\traitor_bro.dm" -#include "code\game\gamemodes\changeling\changeling.dm" -#include "code\game\gamemodes\changeling\traitor_chan.dm" -#include "code\game\gamemodes\clock_cult\clock_cult.dm" -#include "code\game\gamemodes\clown_ops\bananium_bomb.dm" -#include "code\game\gamemodes\clown_ops\clown_ops.dm" -#include "code\game\gamemodes\clown_ops\clown_weapons.dm" -#include "code\game\gamemodes\cult\cult.dm" -#include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\game_mode.dm" -#include "code\game\gamemodes\devil\objectives.dm" -#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" -#include "code\game\gamemodes\dynamic\dynamic.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_minor.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" -#include "code\game\gamemodes\dynamic\dynamic_storytellers.dm" -#include "code\game\gamemodes\eldritch_cult\eldritch_cult.dm" -#include "code\game\gamemodes\extended\extended.dm" -#include "code\game\gamemodes\gangs\dominator.dm" -#include "code\game\gamemodes\gangs\dominator_countdown.dm" -#include "code\game\gamemodes\gangs\gang.dm" -#include "code\game\gamemodes\gangs\gang_datums.dm" -#include "code\game\gamemodes\gangs\gang_decals.dm" -#include "code\game\gamemodes\gangs\gang_hud.dm" -#include "code\game\gamemodes\gangs\gang_items.dm" -#include "code\game\gamemodes\gangs\gang_pen.dm" -#include "code\game\gamemodes\gangs\gangs.dm" -#include "code\game\gamemodes\gangs\gangtool.dm" -#include "code\game\gamemodes\gangs\implant_gang.dm" -#include "code\game\gamemodes\meteor\meteor.dm" -#include "code\game\gamemodes\meteor\meteors.dm" -#include "code\game\gamemodes\monkey\monkey.dm" -#include "code\game\gamemodes\nuclear\nuclear.dm" -#include "code\game\gamemodes\overthrow\objective.dm" -#include "code\game\gamemodes\overthrow\overthrow.dm" -#include "code\game\gamemodes\revolution\revolution.dm" -#include "code\game\gamemodes\sandbox\airlock_maker.dm" -#include "code\game\gamemodes\sandbox\h_sandbox.dm" -#include "code\game\gamemodes\sandbox\sandbox.dm" -#include "code\game\gamemodes\traitor\double_agents.dm" -#include "code\game\gamemodes\traitor\traitor.dm" -#include "code\game\gamemodes\wizard\wizard.dm" -#include "code\game\machinery\_machinery.dm" -#include "code\game\machinery\ai_slipper.dm" -#include "code\game\machinery\airlock_control.dm" -#include "code\game\machinery\announcement_system.dm" -#include "code\game\machinery\aug_manipulator.dm" -#include "code\game\machinery\autolathe.dm" -#include "code\game\machinery\bank_machine.dm" -#include "code\game\machinery\Beacon.dm" -#include "code\game\machinery\bloodbankgen.dm" -#include "code\game\machinery\buttons.dm" -#include "code\game\machinery\cell_charger.dm" -#include "code\game\machinery\cloning.dm" -#include "code\game\machinery\colormate.dm" -#include "code\game\machinery\constructable_frame.dm" -#include "code\game\machinery\cryopod.dm" -#include "code\game\machinery\dance_machine.dm" -#include "code\game\machinery\defibrillator_mount.dm" -#include "code\game\machinery\deployable.dm" -#include "code\game\machinery\dish_drive.dm" -#include "code\game\machinery\dna_scanner.dm" -#include "code\game\machinery\doppler_array.dm" -#include "code\game\machinery\droneDispenser.dm" -#include "code\game\machinery\firealarm.dm" -#include "code\game\machinery\flasher.dm" -#include "code\game\machinery\gulag_item_reclaimer.dm" -#include "code\game\machinery\gulag_teleporter.dm" -#include "code\game\machinery\harvester.dm" -#include "code\game\machinery\hologram.dm" -#include "code\game\machinery\hypnochair.dm" -#include "code\game\machinery\igniter.dm" -#include "code\game\machinery\iv_drip.dm" -#include "code\game\machinery\launch_pad.dm" -#include "code\game\machinery\lightswitch.dm" -#include "code\game\machinery\limbgrower.dm" -#include "code\game\machinery\magnet.dm" -#include "code\game\machinery\mass_driver.dm" -#include "code\game\machinery\navbeacon.dm" -#include "code\game\machinery\PDApainter.dm" -#include "code\game\machinery\quantum_pad.dm" -#include "code\game\machinery\recharger.dm" -#include "code\game\machinery\rechargestation.dm" -#include "code\game\machinery\recycler.dm" -#include "code\game\machinery\requests_console.dm" -#include "code\game\machinery\sheetifier.dm" -#include "code\game\machinery\shieldgen.dm" -#include "code\game\machinery\Sleeper.dm" -#include "code\game\machinery\slotmachine.dm" -#include "code\game\machinery\spaceheater.dm" -#include "code\game\machinery\status_display.dm" -#include "code\game\machinery\suit_storage_unit.dm" -#include "code\game\machinery\syndicatebeacon.dm" -#include "code\game\machinery\syndicatebomb.dm" -#include "code\game\machinery\teleporter.dm" -#include "code\game\machinery\transformer.dm" -#include "code\game\machinery\turnstile.dm" -#include "code\game\machinery\washing_machine.dm" -#include "code\game\machinery\wishgranter.dm" -#include "code\game\machinery\camera\camera.dm" -#include "code\game\machinery\camera\camera_assembly.dm" -#include "code\game\machinery\camera\motion.dm" -#include "code\game\machinery\camera\presets.dm" -#include "code\game\machinery\camera\tracking.dm" -#include "code\game\machinery\computer\_computer.dm" -#include "code\game\machinery\computer\aifixer.dm" -#include "code\game\machinery\computer\apc_control.dm" -#include "code\game\machinery\computer\arcade.dm" -#include "code\game\machinery\computer\atmos_alert.dm" -#include "code\game\machinery\computer\atmos_control.dm" -#include "code\game\machinery\computer\buildandrepair.dm" -#include "code\game\machinery\computer\camera.dm" -#include "code\game\machinery\computer\camera_advanced.dm" -#include "code\game\machinery\computer\card.dm" -#include "code\game\machinery\computer\cloning.dm" -#include "code\game\machinery\computer\communications.dm" -#include "code\game\machinery\computer\crew.dm" -#include "code\game\machinery\computer\dna_console.dm" -#include "code\game\machinery\computer\launchpad_control.dm" -#include "code\game\machinery\computer\law.dm" -#include "code\game\machinery\computer\medical.dm" -#include "code\game\machinery\computer\Operating.dm" -#include "code\game\machinery\computer\pod.dm" -#include "code\game\machinery\computer\robot.dm" -#include "code\game\machinery\computer\security.dm" -#include "code\game\machinery\computer\station_alert.dm" -#include "code\game\machinery\computer\telecrystalconsoles.dm" -#include "code\game\machinery\computer\teleporter.dm" -#include "code\game\machinery\computer\arcade\battle.dm" -#include "code\game\machinery\computer\arcade\minesweeper.dm" -#include "code\game\machinery\computer\arcade\misc_arcade.dm" -#include "code\game\machinery\computer\arcade\orion_trail.dm" -#include "code\game\machinery\computer\prisoner\_prisoner.dm" -#include "code\game\machinery\computer\prisoner\gulag_teleporter.dm" -#include "code\game\machinery\computer\prisoner\management.dm" -#include "code\game\machinery\doors\airlock.dm" -#include "code\game\machinery\doors\airlock_electronics.dm" -#include "code\game\machinery\doors\airlock_types.dm" -#include "code\game\machinery\doors\alarmlock.dm" -#include "code\game\machinery\doors\brigdoors.dm" -#include "code\game\machinery\doors\checkForMultipleDoors.dm" -#include "code\game\machinery\doors\door.dm" -#include "code\game\machinery\doors\firedoor.dm" -#include "code\game\machinery\doors\passworddoor.dm" -#include "code\game\machinery\doors\poddoor.dm" -#include "code\game\machinery\doors\shutters.dm" -#include "code\game\machinery\doors\unpowered.dm" -#include "code\game\machinery\doors\windowdoor.dm" -#include "code\game\machinery\embedded_controller\access_controller.dm" -#include "code\game\machinery\embedded_controller\airlock_controller.dm" -#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" -#include "code\game\machinery\embedded_controller\simple_vent_controller.dm" -#include "code\game\machinery\pipe\construction.dm" -#include "code\game\machinery\pipe\pipe_dispenser.dm" -#include "code\game\machinery\porta_turret\portable_turret.dm" -#include "code\game\machinery\porta_turret\portable_turret_construct.dm" -#include "code\game\machinery\porta_turret\portable_turret_cover.dm" -#include "code\game\machinery\poweredfans\fan_assembly.dm" -#include "code\game\machinery\poweredfans\poweredfans.dm" -#include "code\game\machinery\shuttle\custom_shuttle.dm" -#include "code\game\machinery\shuttle\shuttle_engine.dm" -#include "code\game\machinery\shuttle\shuttle_heater.dm" -#include "code\game\machinery\telecomms\broadcasting.dm" -#include "code\game\machinery\telecomms\machine_interactions.dm" -#include "code\game\machinery\telecomms\telecomunications.dm" -#include "code\game\machinery\telecomms\computers\logbrowser.dm" -#include "code\game\machinery\telecomms\computers\message.dm" -#include "code\game\machinery\telecomms\computers\telemonitor.dm" -#include "code\game\machinery\telecomms\machines\allinone.dm" -#include "code\game\machinery\telecomms\machines\broadcaster.dm" -#include "code\game\machinery\telecomms\machines\bus.dm" -#include "code\game\machinery\telecomms\machines\hub.dm" -#include "code\game\machinery\telecomms\machines\message_server.dm" -#include "code\game\machinery\telecomms\machines\processor.dm" -#include "code\game\machinery\telecomms\machines\receiver.dm" -#include "code\game\machinery\telecomms\machines\relay.dm" -#include "code\game\machinery\telecomms\machines\server.dm" -#include "code\game\mecha\mech_bay.dm" -#include "code\game\mecha\mech_fabricator.dm" -#include "code\game\mecha\mecha.dm" -#include "code\game\mecha\mecha_actions.dm" -#include "code\game\mecha\mecha_construction_paths.dm" -#include "code\game\mecha\mecha_control_console.dm" -#include "code\game\mecha\mecha_defense.dm" -#include "code\game\mecha\mecha_parts.dm" -#include "code\game\mecha\mecha_topic.dm" -#include "code\game\mecha\mecha_wreckage.dm" -#include "code\game\mecha\combat\combat.dm" -#include "code\game\mecha\combat\durand.dm" -#include "code\game\mecha\combat\gygax.dm" -#include "code\game\mecha\combat\honker.dm" -#include "code\game\mecha\combat\marauder.dm" -#include "code\game\mecha\combat\neovgre.dm" -#include "code\game\mecha\combat\phazon.dm" -#include "code\game\mecha\combat\reticence.dm" -#include "code\game\mecha\equipment\mecha_equipment.dm" -#include "code\game\mecha\equipment\tools\medical_tools.dm" -#include "code\game\mecha\equipment\tools\mining_tools.dm" -#include "code\game\mecha\equipment\tools\other_tools.dm" -#include "code\game\mecha\equipment\tools\work_tools.dm" -#include "code\game\mecha\equipment\weapons\mecha_ammo.dm" -#include "code\game\mecha\equipment\weapons\weapons.dm" -#include "code\game\mecha\medical\medical.dm" -#include "code\game\mecha\medical\medigax.dm" -#include "code\game\mecha\medical\odysseus.dm" -#include "code\game\mecha\working\ripley.dm" -#include "code\game\mecha\working\working.dm" -#include "code\game\objects\buckling.dm" -#include "code\game\objects\empulse.dm" -#include "code\game\objects\items.dm" -#include "code\game\objects\obj_defense.dm" -#include "code\game\objects\objs.dm" -#include "code\game\objects\structures.dm" -#include "code\game\objects\effects\alien_acid.dm" -#include "code\game\objects\effects\anomalies.dm" -#include "code\game\objects\effects\arachnid_web.dm" -#include "code\game\objects\effects\blessing.dm" -#include "code\game\objects\effects\bump_teleporter.dm" -#include "code\game\objects\effects\contraband.dm" -#include "code\game\objects\effects\countdown.dm" -#include "code\game\objects\effects\effects.dm" -#include "code\game\objects\effects\forcefields.dm" -#include "code\game\objects\effects\glowshroom.dm" -#include "code\game\objects\effects\landmarks.dm" -#include "code\game\objects\effects\mines.dm" -#include "code\game\objects\effects\misc.dm" -#include "code\game\objects\effects\overlays.dm" -#include "code\game\objects\effects\portals.dm" -#include "code\game\objects\effects\proximity.dm" -#include "code\game\objects\effects\spiders.dm" -#include "code\game\objects\effects\step_triggers.dm" -#include "code\game\objects\effects\wanted_poster.dm" -#include "code\game\objects\effects\decals\cleanable.dm" -#include "code\game\objects\effects\decals\crayon.dm" -#include "code\game\objects\effects\decals\decal.dm" -#include "code\game\objects\effects\decals\misc.dm" -#include "code\game\objects\effects\decals\remains.dm" -#include "code\game\objects\effects\decals\vgdecals.dm" -#include "code\game\objects\effects\decals\cleanable\aliens.dm" -#include "code\game\objects\effects\decals\cleanable\gibs.dm" -#include "code\game\objects\effects\decals\cleanable\humans.dm" -#include "code\game\objects\effects\decals\cleanable\misc.dm" -#include "code\game\objects\effects\decals\cleanable\robots.dm" -#include "code\game\objects\effects\decals\turfdecal\dirt.dm" -#include "code\game\objects\effects\decals\turfdecal\markings.dm" -#include "code\game\objects\effects\decals\turfdecal\tilecoloring.dm" -#include "code\game\objects\effects\decals\turfdecal\weather.dm" -#include "code\game\objects\effects\effect_system\effect_system.dm" -#include "code\game\objects\effects\effect_system\effects_explosion.dm" -#include "code\game\objects\effects\effect_system\effects_foam.dm" -#include "code\game\objects\effects\effect_system\effects_other.dm" -#include "code\game\objects\effects\effect_system\effects_smoke.dm" -#include "code\game\objects\effects\effect_system\effects_sparks.dm" -#include "code\game\objects\effects\effect_system\effects_water.dm" -#include "code\game\objects\effects\spawners\bombspawner.dm" -#include "code\game\objects\effects\spawners\bundle.dm" -#include "code\game\objects\effects\spawners\gibspawner.dm" -#include "code\game\objects\effects\spawners\lootdrop.dm" -#include "code\game\objects\effects\spawners\structure.dm" -#include "code\game\objects\effects\spawners\traps.dm" -#include "code\game\objects\effects\spawners\vaultspawner.dm" -#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" -#include "code\game\objects\effects\temporary_visuals\clockcult.dm" -#include "code\game\objects\effects\temporary_visuals\cult.dm" -#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" -#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm" -#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" -#include "code\game\objects\items\AI_modules.dm" -#include "code\game\objects\items\airlock_painter.dm" -#include "code\game\objects\items\apc_frame.dm" -#include "code\game\objects\items\armor_kits.dm" -#include "code\game\objects\items\binoculars.dm" -#include "code\game\objects\items\blueprints.dm" -#include "code\game\objects\items\body_egg.dm" -#include "code\game\objects\items\bodybag.dm" -#include "code\game\objects\items\boombox.dm" -#include "code\game\objects\items\broom.dm" -#include "code\game\objects\items\candle.dm" -#include "code\game\objects\items\cardboard_cutouts.dm" -#include "code\game\objects\items\cards_ids.dm" -#include "code\game\objects\items\chainsaw.dm" -#include "code\game\objects\items\charter.dm" -#include "code\game\objects\items\chromosome.dm" -#include "code\game\objects\items\chrono_eraser.dm" -#include "code\game\objects\items\cigs_lighters.dm" -#include "code\game\objects\items\clown_items.dm" -#include "code\game\objects\items\control_wand.dm" -#include "code\game\objects\items\cosmetics.dm" -#include "code\game\objects\items\courtroom.dm" -#include "code\game\objects\items\crab17.dm" -#include "code\game\objects\items\crayons.dm" -#include "code\game\objects\items\credit_holochip.dm" -#include "code\game\objects\items\debug_items.dm" -#include "code\game\objects\items\defib.dm" -#include "code\game\objects\items\dehy_carp.dm" -#include "code\game\objects\items\dice.dm" -#include "code\game\objects\items\dna_injector.dm" -#include "code\game\objects\items\documents.dm" -#include "code\game\objects\items\dualsaber.dm" -#include "code\game\objects\items\eightball.dm" -#include "code\game\objects\items\electrostaff.dm" -#include "code\game\objects\items\extinguisher.dm" -#include "code\game\objects\items\fireaxe.dm" -#include "code\game\objects\items\flamethrower.dm" -#include "code\game\objects\items\fluff.dm" -#include "code\game\objects\items\gift.dm" -#include "code\game\objects\items\granters.dm" -#include "code\game\objects\items\handcuffs.dm" -#include "code\game\objects\items\his_grace.dm" -#include "code\game\objects\items\holosign_creator.dm" -#include "code\game\objects\items\holy_weapons.dm" -#include "code\game\objects\items\hot_potato.dm" -#include "code\game\objects\items\inducer.dm" -#include "code\game\objects\items\kitchen.dm" -#include "code\game\objects\items\latexballoon.dm" -#include "code\game\objects\items\manuals.dm" -#include "code\game\objects\items\miscellaneous.dm" -#include "code\game\objects\items\mop.dm" -#include "code\game\objects\items\paint.dm" -#include "code\game\objects\items\paiwire.dm" -#include "code\game\objects\items\pet_carrier.dm" -#include "code\game\objects\items\pinpointer.dm" -#include "code\game\objects\items\pitchfork.dm" -#include "code\game\objects\items\plushes.dm" -#include "code\game\objects\items\pneumaticCannon.dm" -#include "code\game\objects\items\powerfist.dm" -#include "code\game\objects\items\puzzle_pieces.dm" -#include "code\game\objects\items\RCD.dm" -#include "code\game\objects\items\RCL.dm" -#include "code\game\objects\items\religion.dm" -#include "code\game\objects\items\RPD.dm" -#include "code\game\objects\items\RSF.dm" -#include "code\game\objects\items\scrolls.dm" -#include "code\game\objects\items\sharpener.dm" -#include "code\game\objects\items\shields.dm" -#include "code\game\objects\items\shooting_range.dm" -#include "code\game\objects\items\shrapnel.dm" -#include "code\game\objects\items\signs.dm" -#include "code\game\objects\items\singularityhammer.dm" -#include "code\game\objects\items\spear.dm" -#include "code\game\objects\items\stunbaton.dm" -#include "code\game\objects\items\taster.dm" -#include "code\game\objects\items\teleportation.dm" -#include "code\game\objects\items\teleprod.dm" -#include "code\game\objects\items\telescopic_iv.dm" -#include "code\game\objects\items\theft_tools.dm" -#include "code\game\objects\items\toys.dm" -#include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\vending_items.dm" -#include "code\game\objects\items\weaponry.dm" -#include "code\game\objects\items\circuitboards\circuitboard.dm" -#include "code\game\objects\items\circuitboards\computer_circuitboards.dm" -#include "code\game\objects\items\circuitboards\machine_circuitboards.dm" -#include "code\game\objects\items\devices\aicard.dm" -#include "code\game\objects\items\devices\anomaly_neutralizer.dm" -#include "code\game\objects\items\devices\beacon.dm" -#include "code\game\objects\items\devices\camera_bug.dm" -#include "code\game\objects\items\devices\chameleonproj.dm" -#include "code\game\objects\items\devices\compressionkit.dm" -#include "code\game\objects\items\devices\desynchronizer.dm" -#include "code\game\objects\items\devices\dogborg_sleeper.dm" -#include "code\game\objects\items\devices\doorCharge.dm" -#include "code\game\objects\items\devices\electroadaptive_pseudocircuit.dm" -#include "code\game\objects\items\devices\electrochromatic_kit.dm" -#include "code\game\objects\items\devices\flashlight.dm" -#include "code\game\objects\items\devices\forcefieldprojector.dm" -#include "code\game\objects\items\devices\geiger_counter.dm" -#include "code\game\objects\items\devices\glue.dm" -#include "code\game\objects\items\devices\gps.dm" -#include "code\game\objects\items\devices\laserpointer.dm" -#include "code\game\objects\items\devices\lightreplacer.dm" -#include "code\game\objects\items\devices\megaphone.dm" -#include "code\game\objects\items\devices\multitool.dm" -#include "code\game\objects\items\devices\paicard.dm" -#include "code\game\objects\items\devices\pipe_painter.dm" -#include "code\game\objects\items\devices\polycircuit.dm" -#include "code\game\objects\items\devices\portable_chem_mixer.dm" -#include "code\game\objects\items\devices\powersink.dm" -#include "code\game\objects\items\devices\pressureplates.dm" -#include "code\game\objects\items\devices\quantum_keycard.dm" -#include "code\game\objects\items\devices\reverse_bear_trap.dm" -#include "code\game\objects\items\devices\scanners.dm" -#include "code\game\objects\items\devices\sensor_device.dm" -#include "code\game\objects\items\devices\taperecorder.dm" -#include "code\game\objects\items\devices\traitordevices.dm" -#include "code\game\objects\items\devices\transfer_valve.dm" -#include "code\game\objects\items\devices\PDA\cart.dm" -#include "code\game\objects\items\devices\PDA\PDA.dm" -#include "code\game\objects\items\devices\PDA\PDA_types.dm" -#include "code\game\objects\items\devices\PDA\radio.dm" -#include "code\game\objects\items\devices\PDA\virus_cart.dm" -#include "code\game\objects\items\devices\radio\electropack.dm" -#include "code\game\objects\items\devices\radio\encryptionkey.dm" -#include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\intercom.dm" -#include "code\game\objects\items\devices\radio\radio.dm" -#include "code\game\objects\items\grenades\antigravity.dm" -#include "code\game\objects\items\grenades\chem_grenade.dm" -#include "code\game\objects\items\grenades\clusterbuster.dm" -#include "code\game\objects\items\grenades\emgrenade.dm" -#include "code\game\objects\items\grenades\flashbang.dm" -#include "code\game\objects\items\grenades\ghettobomb.dm" -#include "code\game\objects\items\grenades\grenade.dm" -#include "code\game\objects\items\grenades\plastic.dm" -#include "code\game\objects\items\grenades\smokebomb.dm" -#include "code\game\objects\items\grenades\spawnergrenade.dm" -#include "code\game\objects\items\grenades\syndieminibomb.dm" -#include "code\game\objects\items\implants\implant.dm" -#include "code\game\objects\items\implants\implant_abductor.dm" -#include "code\game\objects\items\implants\implant_chem.dm" -#include "code\game\objects\items\implants\implant_clown.dm" -#include "code\game\objects\items\implants\implant_deathrattle.dm" -#include "code\game\objects\items\implants\implant_exile.dm" -#include "code\game\objects\items\implants\implant_explosive.dm" -#include "code\game\objects\items\implants\implant_freedom.dm" -#include "code\game\objects\items\implants\implant_hijack.dm" -#include "code\game\objects\items\implants\implant_krav_maga.dm" -#include "code\game\objects\items\implants\implant_mindshield.dm" -#include "code\game\objects\items\implants\implant_misc.dm" -#include "code\game\objects\items\implants\implant_radio.dm" -#include "code\game\objects\items\implants\implant_spell.dm" -#include "code\game\objects\items\implants\implant_stealth.dm" -#include "code\game\objects\items\implants\implant_storage.dm" -#include "code\game\objects\items\implants\implant_track.dm" -#include "code\game\objects\items\implants\implant_uplink.dm" -#include "code\game\objects\items\implants\implantcase.dm" -#include "code\game\objects\items\implants\implantchair.dm" -#include "code\game\objects\items\implants\implanter.dm" -#include "code\game\objects\items\implants\implantpad.dm" -#include "code\game\objects\items\melee\energy.dm" -#include "code\game\objects\items\melee\misc.dm" -#include "code\game\objects\items\melee\transforming.dm" -#include "code\game\objects\items\robot\ai_upgrades.dm" -#include "code\game\objects\items\robot\robot_items.dm" -#include "code\game\objects\items\robot\robot_parts.dm" -#include "code\game\objects\items\robot\robot_upgrades.dm" -#include "code\game\objects\items\stacks\bscrystal.dm" -#include "code\game\objects\items\stacks\cash.dm" -#include "code\game\objects\items\stacks\medical.dm" -#include "code\game\objects\items\stacks\rods.dm" -#include "code\game\objects\items\stacks\stack.dm" -#include "code\game\objects\items\stacks\tape.dm" -#include "code\game\objects\items\stacks\telecrystal.dm" -#include "code\game\objects\items\stacks\tickets.dm" -#include "code\game\objects\items\stacks\wrap.dm" -#include "code\game\objects\items\stacks\sheets\glass.dm" -#include "code\game\objects\items\stacks\sheets\leather.dm" -#include "code\game\objects\items\stacks\sheets\light.dm" -#include "code\game\objects\items\stacks\sheets\mineral.dm" -#include "code\game\objects\items\stacks\sheets\sheet_types.dm" -#include "code\game\objects\items\stacks\sheets\sheets.dm" -#include "code\game\objects\items\stacks\tiles\light.dm" -#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" -#include "code\game\objects\items\stacks\tiles\tile_types.dm" -#include "code\game\objects\items\storage\_storage.dm" -#include "code\game\objects\items\storage\backpack.dm" -#include "code\game\objects\items\storage\bags.dm" -#include "code\game\objects\items\storage\belt.dm" -#include "code\game\objects\items\storage\book.dm" -#include "code\game\objects\items\storage\boxes.dm" -#include "code\game\objects\items\storage\briefcase.dm" -#include "code\game\objects\items\storage\dakis.dm" -#include "code\game\objects\items\storage\fancy.dm" -#include "code\game\objects\items\storage\firstaid.dm" -#include "code\game\objects\items\storage\lockbox.dm" -#include "code\game\objects\items\storage\secure.dm" -#include "code\game\objects\items\storage\toolbox.dm" -#include "code\game\objects\items\storage\uplink_kits.dm" -#include "code\game\objects\items\storage\wallets.dm" -#include "code\game\objects\items\tanks\jetpack.dm" -#include "code\game\objects\items\tanks\tank_types.dm" -#include "code\game\objects\items\tanks\tanks.dm" -#include "code\game\objects\items\tanks\watertank.dm" -#include "code\game\objects\items\tools\crowbar.dm" -#include "code\game\objects\items\tools\screwdriver.dm" -#include "code\game\objects\items\tools\weldingtool.dm" -#include "code\game\objects\items\tools\wirecutters.dm" -#include "code\game\objects\items\tools\wrench.dm" -#include "code\game\objects\structures\ai_core.dm" -#include "code\game\objects\structures\aliens.dm" -#include "code\game\objects\structures\artstuff.dm" -#include "code\game\objects\structures\barsigns.dm" -#include "code\game\objects\structures\bedsheet_bin.dm" -#include "code\game\objects\structures\chess.dm" -#include "code\game\objects\structures\destructible_structures.dm" -#include "code\game\objects\structures\displaycase.dm" -#include "code\game\objects\structures\divine.dm" -#include "code\game\objects\structures\door_assembly.dm" -#include "code\game\objects\structures\door_assembly_types.dm" -#include "code\game\objects\structures\dresser.dm" -#include "code\game\objects\structures\electricchair.dm" -#include "code\game\objects\structures\extinguisher.dm" -#include "code\game\objects\structures\false_walls.dm" -#include "code\game\objects\structures\femur_breaker.dm" -#include "code\game\objects\structures\fence.dm" -#include "code\game\objects\structures\fireaxe.dm" -#include "code\game\objects\structures\fireplace.dm" -#include "code\game\objects\structures\flora.dm" -#include "code\game\objects\structures\fluff.dm" -#include "code\game\objects\structures\fugitive_role_spawners.dm" -#include "code\game\objects\structures\ghost_role_spawners.dm" -#include "code\game\objects\structures\girders.dm" -#include "code\game\objects\structures\grille.dm" -#include "code\game\objects\structures\guillotine.dm" -#include "code\game\objects\structures\guncase.dm" -#include "code\game\objects\structures\headpike.dm" -#include "code\game\objects\structures\hivebot.dm" -#include "code\game\objects\structures\holosign.dm" -#include "code\game\objects\structures\janicart.dm" -#include "code\game\objects\structures\kitchen_spike.dm" -#include "code\game\objects\structures\ladders.dm" -#include "code\game\objects\structures\lattice.dm" -#include "code\game\objects\structures\life_candle.dm" -#include "code\game\objects\structures\loom.dm" -#include "code\game\objects\structures\loot_pile.dm" -#include "code\game\objects\structures\manned_turret.dm" -#include "code\game\objects\structures\memorial.dm" -#include "code\game\objects\structures\mineral_doors.dm" -#include "code\game\objects\structures\mirror.dm" -#include "code\game\objects\structures\mop_bucket.dm" -#include "code\game\objects\structures\morgue.dm" -#include "code\game\objects\structures\noticeboard.dm" -#include "code\game\objects\structures\petrified_statue.dm" -#include "code\game\objects\structures\plasticflaps.dm" -#include "code\game\objects\structures\railings.dm" -#include "code\game\objects\structures\reflector.dm" -#include "code\game\objects\structures\safe.dm" -#include "code\game\objects\structures\showcase.dm" -#include "code\game\objects\structures\spawner.dm" -#include "code\game\objects\structures\spirit_board.dm" -#include "code\game\objects\structures\stairs.dm" -#include "code\game\objects\structures\statues.dm" -#include "code\game\objects\structures\table_frames.dm" -#include "code\game\objects\structures\tables_racks.dm" -#include "code\game\objects\structures\tank_dispenser.dm" -#include "code\game\objects\structures\target_stake.dm" -#include "code\game\objects\structures\traps.dm" -#include "code\game\objects\structures\watercloset.dm" -#include "code\game\objects\structures\windoor_assembly.dm" -#include "code\game\objects\structures\window.dm" -#include "code\game\objects\structures\beds_chairs\alien_nest.dm" -#include "code\game\objects\structures\beds_chairs\bed.dm" -#include "code\game\objects\structures\beds_chairs\chair.dm" -#include "code\game\objects\structures\beds_chairs\pew.dm" -#include "code\game\objects\structures\beds_chairs\sofa.dm" -#include "code\game\objects\structures\crates_lockers\closets.dm" -#include "code\game\objects\structures\crates_lockers\crates.dm" -#include "code\game\objects\structures\crates_lockers\closets\bodybag.dm" -#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" -#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" -#include "code\game\objects\structures\crates_lockers\closets\genpop.dm" -#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" -#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" -#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" -#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\misc.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" -#include "code\game\objects\structures\crates_lockers\crates\bins.dm" -#include "code\game\objects\structures\crates_lockers\crates\critter.dm" -#include "code\game\objects\structures\crates_lockers\crates\large.dm" -#include "code\game\objects\structures\crates_lockers\crates\secure.dm" -#include "code\game\objects\structures\crates_lockers\crates\wooden.dm" -#include "code\game\objects\structures\icemoon\cave_entrance.dm" -#include "code\game\objects\structures\lavaland\geyser.dm" -#include "code\game\objects\structures\lavaland\necropolis_tendril.dm" -#include "code\game\objects\structures\signs\_signs.dm" -#include "code\game\objects\structures\signs\signs_departments.dm" -#include "code\game\objects\structures\signs\signs_maps.dm" -#include "code\game\objects\structures\signs\signs_plaques.dm" -#include "code\game\objects\structures\signs\signs_warning.dm" -#include "code\game\objects\structures\transit_tubes\station.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" -#include "code\game\turfs\baseturf_skipover.dm" -#include "code\game\turfs\change_turf.dm" -#include "code\game\turfs\closed.dm" -#include "code\game\turfs\open.dm" -#include "code\game\turfs\turf.dm" -#include "code\game\turfs\simulated\chasm.dm" -#include "code\game\turfs\simulated\dirtystation.dm" -#include "code\game\turfs\simulated\floor.dm" -#include "code\game\turfs\simulated\glass.dm" -#include "code\game\turfs\simulated\lava.dm" -#include "code\game\turfs\simulated\minerals.dm" -#include "code\game\turfs\simulated\openspace.dm" -#include "code\game\turfs\simulated\reebe_void.dm" -#include "code\game\turfs\simulated\river.dm" -#include "code\game\turfs\simulated\walls.dm" -#include "code\game\turfs\simulated\water.dm" -#include "code\game\turfs\simulated\floor\fancy_floor.dm" -#include "code\game\turfs\simulated\floor\light_floor.dm" -#include "code\game\turfs\simulated\floor\mineral_floor.dm" -#include "code\game\turfs\simulated\floor\misc_floor.dm" -#include "code\game\turfs\simulated\floor\plasteel_floor.dm" -#include "code\game\turfs\simulated\floor\plating.dm" -#include "code\game\turfs\simulated\floor\reinf_floor.dm" -#include "code\game\turfs\simulated\floor\plating\asteroid.dm" -#include "code\game\turfs\simulated\floor\plating\dirt.dm" -#include "code\game\turfs\simulated\floor\plating\misc_plating.dm" -#include "code\game\turfs\simulated\wall\material_walls.dm" -#include "code\game\turfs\simulated\wall\mineral_walls.dm" -#include "code\game\turfs\simulated\wall\misc_walls.dm" -#include "code\game\turfs\simulated\wall\reinf_walls.dm" -#include "code\game\turfs\space\space.dm" -#include "code\game\turfs\space\transit.dm" -#include "code\modules\actionspeed\_actionspeed_modifier.dm" -#include "code\modules\actionspeed\modifiers\base.dm" -#include "code\modules\actionspeed\modifiers\mood.dm" -#include "code\modules\actionspeed\modifiers\status_effects.dm" -#include "code\modules\admin\admin.dm" -#include "code\modules\admin\admin_investigate.dm" -#include "code\modules\admin\admin_ranks.dm" -#include "code\modules\admin\admin_verbs.dm" -#include "code\modules\admin\adminmenu.dm" -#include "code\modules\admin\antag_panel.dm" -#include "code\modules\admin\banjob.dm" -#include "code\modules\admin\chat_commands.dm" -#include "code\modules\admin\check_antagonists.dm" -#include "code\modules\admin\create_mob.dm" -#include "code\modules\admin\create_object.dm" -#include "code\modules\admin\create_poll.dm" -#include "code\modules\admin\create_turf.dm" -#include "code\modules\admin\fun_balloon.dm" -#include "code\modules\admin\holder2.dm" -#include "code\modules\admin\ipintel.dm" -#include "code\modules\admin\IsBanned.dm" -#include "code\modules\admin\NewBan.dm" -#include "code\modules\admin\outfit_editor.dm" -#include "code\modules\admin\outfit_manager.dm" -#include "code\modules\admin\outfits.dm" -#include "code\modules\admin\permissionedit.dm" -#include "code\modules\admin\player_panel.dm" -#include "code\modules\admin\sound_emitter.dm" -#include "code\modules\admin\sql_message_system.dm" -#include "code\modules\admin\stickyban.dm" -#include "code\modules\admin\topic.dm" -#include "code\modules\admin\whitelist.dm" -#include "code\modules\admin\callproc\callproc.dm" -#include "code\modules\admin\DB_ban\functions.dm" -#include "code\modules\admin\verbs\adminhelp.dm" -#include "code\modules\admin\verbs\adminjump.dm" -#include "code\modules\admin\verbs\adminpm.dm" -#include "code\modules\admin\verbs\adminsay.dm" -#include "code\modules\admin\verbs\ak47s.dm" -#include "code\modules\admin\verbs\atmosdebug.dm" -#include "code\modules\admin\verbs\bluespacearty.dm" -#include "code\modules\admin\verbs\borgpanel.dm" -#include "code\modules\admin\verbs\BrokenInhands.dm" -#include "code\modules\admin\verbs\cinematic.dm" -#include "code\modules\admin\verbs\deadsay.dm" -#include "code\modules\admin\verbs\debug.dm" -#include "code\modules\admin\verbs\diagnostics.dm" -#include "code\modules\admin\verbs\dice.dm" -#include "code\modules\admin\verbs\fps.dm" -#include "code\modules\admin\verbs\getlogs.dm" -#include "code\modules\admin\verbs\individual_logging.dm" -#include "code\modules\admin\verbs\machine_upgrade.dm" -#include "code\modules\admin\verbs\manipulate_organs.dm" -#include "code\modules\admin\verbs\map_template_loadverb.dm" -#include "code\modules\admin\verbs\mapping.dm" -#include "code\modules\admin\verbs\maprotation.dm" -#include "code\modules\admin\verbs\one_click_antag.dm" -#include "code\modules\admin\verbs\onlyone.dm" -#include "code\modules\admin\verbs\panicbunker.dm" -#include "code\modules\admin\verbs\playsound.dm" -#include "code\modules\admin\verbs\possess.dm" -#include "code\modules\admin\verbs\pray.dm" -#include "code\modules\admin\verbs\randomverbs.dm" -#include "code\modules\admin\verbs\reestablish_db_connection.dm" -#include "code\modules\admin\verbs\secrets.dm" -#include "code\modules\admin\verbs\selectequipment.dm" -#include "code\modules\admin\verbs\shuttlepanel.dm" -#include "code\modules\admin\verbs\spawnobjasmob.dm" -#include "code\modules\admin\verbs\tripAI.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" -#include "code\modules\admin\view_variables\admin_delete.dm" -#include "code\modules\admin\view_variables\debug_variables.dm" -#include "code\modules\admin\view_variables\filterrific.dm" -#include "code\modules\admin\view_variables\get_variables.dm" -#include "code\modules\admin\view_variables\mark_datum.dm" -#include "code\modules\admin\view_variables\mass_edit_variables.dm" -#include "code\modules\admin\view_variables\modify_variables.dm" -#include "code\modules\admin\view_variables\reference_tracking.dm" -#include "code\modules\admin\view_variables\topic.dm" -#include "code\modules\admin\view_variables\topic_basic.dm" -#include "code\modules\admin\view_variables\topic_list.dm" -#include "code\modules\admin\view_variables\view_variables.dm" -#include "code\modules\antagonists\_common\antag_datum.dm" -#include "code\modules\antagonists\_common\antag_helpers.dm" -#include "code\modules\antagonists\_common\antag_hud.dm" -#include "code\modules\antagonists\_common\antag_spawner.dm" -#include "code\modules\antagonists\_common\antag_team.dm" -#include "code\modules\antagonists\abductor\abductor.dm" -#include "code\modules\antagonists\abductor\ice_abductor.dm" -#include "code\modules\antagonists\abductor\abductee\abductee.dm" -#include "code\modules\antagonists\abductor\abductee\abductee_objectives.dm" -#include "code\modules\antagonists\abductor\abductee\trauma.dm" -#include "code\modules\antagonists\abductor\equipment\abduction_gear.dm" -#include "code\modules\antagonists\abductor\equipment\abduction_outfits.dm" -#include "code\modules\antagonists\abductor\equipment\abduction_surgery.dm" -#include "code\modules\antagonists\abductor\equipment\gland.dm" -#include "code\modules\antagonists\abductor\equipment\orderable_gear.dm" -#include "code\modules\antagonists\abductor\equipment\glands\access.dm" -#include "code\modules\antagonists\abductor\equipment\glands\blood.dm" -#include "code\modules\antagonists\abductor\equipment\glands\chem.dm" -#include "code\modules\antagonists\abductor\equipment\glands\egg.dm" -#include "code\modules\antagonists\abductor\equipment\glands\electric.dm" -#include "code\modules\antagonists\abductor\equipment\glands\heal.dm" -#include "code\modules\antagonists\abductor\equipment\glands\mindshock.dm" -#include "code\modules\antagonists\abductor\equipment\glands\plasma.dm" -#include "code\modules\antagonists\abductor\equipment\glands\quantum.dm" -#include "code\modules\antagonists\abductor\equipment\glands\slime.dm" -#include "code\modules\antagonists\abductor\equipment\glands\spider.dm" -#include "code\modules\antagonists\abductor\equipment\glands\transform.dm" -#include "code\modules\antagonists\abductor\equipment\glands\trauma.dm" -#include "code\modules\antagonists\abductor\equipment\glands\ventcrawl.dm" -#include "code\modules\antagonists\abductor\equipment\glands\viral.dm" -#include "code\modules\antagonists\abductor\machinery\camera.dm" -#include "code\modules\antagonists\abductor\machinery\console.dm" -#include "code\modules\antagonists\abductor\machinery\dispenser.dm" -#include "code\modules\antagonists\abductor\machinery\experiment.dm" -#include "code\modules\antagonists\abductor\machinery\pad.dm" -#include "code\modules\antagonists\blob\blob.dm" -#include "code\modules\antagonists\blob\blob\blob_report.dm" -#include "code\modules\antagonists\blob\blob\overmind.dm" -#include "code\modules\antagonists\blob\blob\powers.dm" -#include "code\modules\antagonists\blob\blob\theblob.dm" -#include "code\modules\antagonists\blob\blob\blobs\blob_mobs.dm" -#include "code\modules\antagonists\blob\blob\blobs\core.dm" -#include "code\modules\antagonists\blob\blob\blobs\factory.dm" -#include "code\modules\antagonists\blob\blob\blobs\node.dm" -#include "code\modules\antagonists\blob\blob\blobs\resource.dm" -#include "code\modules\antagonists\blob\blob\blobs\shield.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\_blobstrain.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\_reagent.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\blazing_oil.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\cryogenic_poison.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\electromagnetic_web.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\energized_jelly.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\explosive_lattice.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\multiplex.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\networked_fibers.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\pressurized_slime.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\reactive_spines.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\regenerative_materia.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\replicating_foam.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\shifting_fragments.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\synchronous_mesh.dm" -#include "code\modules\antagonists\blob\blob\blobstrains\zombifying_pods.dm" -#include "code\modules\antagonists\blood_contract\blood_contract.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_flaws.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_integration.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_life.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_objectives.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_powers.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_sunlight.dm" -#include "code\modules\antagonists\bloodsucker\bloodsucker_ui.dm" -#include "code\modules\antagonists\bloodsucker\datum_bloodsucker.dm" -#include "code\modules\antagonists\bloodsucker\datum_hunter.dm" -#include "code\modules\antagonists\bloodsucker\datum_vassal.dm" -#include "code\modules\antagonists\bloodsucker\items\bloodsucker_organs.dm" -#include "code\modules\antagonists\bloodsucker\items\bloodsucker_stake.dm" -#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_coffin.dm" -#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_crypt.dm" -#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_lair.dm" -#include "code\modules\antagonists\bloodsucker\powers\brawn.dm" -#include "code\modules\antagonists\bloodsucker\powers\cloak.dm" -#include "code\modules\antagonists\bloodsucker\powers\feed.dm" -#include "code\modules\antagonists\bloodsucker\powers\fortitude.dm" -#include "code\modules\antagonists\bloodsucker\powers\go_home.dm" -#include "code\modules\antagonists\bloodsucker\powers\haste.dm" -#include "code\modules\antagonists\bloodsucker\powers\lunge.dm" -#include "code\modules\antagonists\bloodsucker\powers\masquerade.dm" -#include "code\modules\antagonists\bloodsucker\powers\mesmerize.dm" -#include "code\modules\antagonists\bloodsucker\powers\recuperate.dm" -#include "code\modules\antagonists\bloodsucker\powers\trespass.dm" -#include "code\modules\antagonists\bloodsucker\powers\veil.dm" -#include "code\modules\antagonists\brainwashing\brainwashing.dm" -#include "code\modules\antagonists\brother\brother.dm" -#include "code\modules\antagonists\changeling\cellular_emporium.dm" -#include "code\modules\antagonists\changeling\changeling.dm" -#include "code\modules\antagonists\changeling\changeling_power.dm" -#include "code\modules\antagonists\changeling\powers\absorb.dm" -#include "code\modules\antagonists\changeling\powers\adrenaline.dm" -#include "code\modules\antagonists\changeling\powers\augmented_eyesight.dm" -#include "code\modules\antagonists\changeling\powers\biodegrade.dm" -#include "code\modules\antagonists\changeling\powers\chameleon_skin.dm" -#include "code\modules\antagonists\changeling\powers\digitalcamo.dm" -#include "code\modules\antagonists\changeling\powers\fakedeath.dm" -#include "code\modules\antagonists\changeling\powers\fleshmend.dm" -#include "code\modules\antagonists\changeling\powers\headcrab.dm" -#include "code\modules\antagonists\changeling\powers\hivemind.dm" -#include "code\modules\antagonists\changeling\powers\humanform.dm" -#include "code\modules\antagonists\changeling\powers\lesserform.dm" -#include "code\modules\antagonists\changeling\powers\linglink.dm" -#include "code\modules\antagonists\changeling\powers\mimic_voice.dm" -#include "code\modules\antagonists\changeling\powers\mutations.dm" -#include "code\modules\antagonists\changeling\powers\panacea.dm" -#include "code\modules\antagonists\changeling\powers\pheromone_receptors.dm" -#include "code\modules\antagonists\changeling\powers\regenerate.dm" -#include "code\modules\antagonists\changeling\powers\revive.dm" -#include "code\modules\antagonists\changeling\powers\shriek.dm" -#include "code\modules\antagonists\changeling\powers\spiders.dm" -#include "code\modules\antagonists\changeling\powers\strained_muscles.dm" -#include "code\modules\antagonists\changeling\powers\tiny_prick.dm" -#include "code\modules\antagonists\changeling\powers\transform.dm" -#include "code\modules\antagonists\clockcult\clock_effect.dm" -#include "code\modules\antagonists\clockcult\clock_item.dm" -#include "code\modules\antagonists\clockcult\clock_mobs.dm" -#include "code\modules\antagonists\clockcult\clock_scripture.dm" -#include "code\modules\antagonists\clockcult\clock_structure.dm" -#include "code\modules\antagonists\clockcult\clockcult.dm" -#include "code\modules\antagonists\clockcult\clock_effects\city_of_cogs_rift.dm" -#include "code\modules\antagonists\clockcult\clock_effects\clock_overlay.dm" -#include "code\modules\antagonists\clockcult\clock_effects\clock_sigils.dm" -#include "code\modules\antagonists\clockcult\clock_effects\general_markers.dm" -#include "code\modules\antagonists\clockcult\clock_effects\servant_blocker.dm" -#include "code\modules\antagonists\clockcult\clock_effects\spatial_gateway.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\clock_powerdrain.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\clock_rites.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\component_helpers.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\fabrication_helpers.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\hierophant_network.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\power_helpers.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\ratvarian_language.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\scripture_checks.dm" -#include "code\modules\antagonists\clockcult\clock_helpers\slab_abilities.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_augments.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_components.dm" -#include "code\modules\antagonists\clockcult\clock_items\clockwork_armor.dm" -#include "code\modules\antagonists\clockcult\clock_items\clockwork_slab.dm" -#include "code\modules\antagonists\clockcult\clock_items\clockwork_weaponry.dm" -#include "code\modules\antagonists\clockcult\clock_items\construct_chassis.dm" -#include "code\modules\antagonists\clockcult\clock_items\integration_cog.dm" -#include "code\modules\antagonists\clockcult\clock_items\judicial_visor.dm" -#include "code\modules\antagonists\clockcult\clock_items\replica_fabricator.dm" -#include "code\modules\antagonists\clockcult\clock_items\soul_vessel.dm" -#include "code\modules\antagonists\clockcult\clock_items\wraith_spectacles.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\_call_weapon.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\brass_claw.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_shield.dm" -#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_spear.dm" -#include "code\modules\antagonists\clockcult\clock_mobs\_eminence.dm" -#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_guardian.dm" -#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_marauder.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_applications.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_cyborg.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_drivers.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_judgement.dm" -#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_scripts.dm" -#include "code\modules\antagonists\clockcult\clock_structures\_trap_object.dm" -#include "code\modules\antagonists\clockcult\clock_structures\ark_of_the_clockwork_justicar.dm" -#include "code\modules\antagonists\clockcult\clock_structures\clockwork_obelisk.dm" -#include "code\modules\antagonists\clockcult\clock_structures\eminence_spire.dm" -#include "code\modules\antagonists\clockcult\clock_structures\heralds_beacon.dm" -#include "code\modules\antagonists\clockcult\clock_structures\mania_motor.dm" -#include "code\modules\antagonists\clockcult\clock_structures\ocular_warden.dm" -#include "code\modules\antagonists\clockcult\clock_structures\prolonging_prism.dm" -#include "code\modules\antagonists\clockcult\clock_structures\ratvar_the_clockwork_justicar.dm" -#include "code\modules\antagonists\clockcult\clock_structures\reflector.dm" -#include "code\modules\antagonists\clockcult\clock_structures\stargazer.dm" -#include "code\modules\antagonists\clockcult\clock_structures\taunting_trail.dm" -#include "code\modules\antagonists\clockcult\clock_structures\wall_gear.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\lever.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor_mech.dm" -#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\repeater.dm" -#include "code\modules\antagonists\clockcult\clock_structures\traps\brass_skewer.dm" -#include "code\modules\antagonists\clockcult\clock_structures\traps\power_null.dm" -#include "code\modules\antagonists\clockcult\clock_structures\traps\steam_vent.dm" -#include "code\modules\antagonists\collector\collector.dm" -#include "code\modules\antagonists\cult\blood_magic.dm" -#include "code\modules\antagonists\cult\cult.dm" -#include "code\modules\antagonists\cult\cult_comms.dm" -#include "code\modules\antagonists\cult\cult_items.dm" -#include "code\modules\antagonists\cult\cult_structures.dm" -#include "code\modules\antagonists\cult\ritual.dm" -#include "code\modules\antagonists\cult\rune_spawn_action.dm" -#include "code\modules\antagonists\cult\runes.dm" -#include "code\modules\antagonists\devil\devil.dm" -#include "code\modules\antagonists\devil\devil_helpers.dm" -#include "code\modules\antagonists\devil\imp\imp.dm" -#include "code\modules\antagonists\devil\sintouched\objectives.dm" -#include "code\modules\antagonists\devil\sintouched\sintouched.dm" -#include "code\modules\antagonists\devil\true_devil\_true_devil.dm" -#include "code\modules\antagonists\devil\true_devil\inventory.dm" -#include "code\modules\antagonists\disease\disease_abilities.dm" -#include "code\modules\antagonists\disease\disease_datum.dm" -#include "code\modules\antagonists\disease\disease_disease.dm" -#include "code\modules\antagonists\disease\disease_event.dm" -#include "code\modules\antagonists\disease\disease_mob.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_antag.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_book.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_effects.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_items.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_knowledge.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_magic.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_monster_antag.dm" -#include "code\modules\antagonists\eldritch_cult\eldritch_structures.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\ash_lore.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\flesh_lore.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\rust_lore.dm" -#include "code\modules\antagonists\eldritch_cult\knowledge\void_lore.dm" -#include "code\modules\antagonists\ert\ert.dm" -#include "code\modules\antagonists\fugitive\fugitive.dm" -#include "code\modules\antagonists\fugitive\fugitive_outfits.dm" -#include "code\modules\antagonists\fugitive\fugitive_ship.dm" -#include "code\modules\antagonists\fugitive\hunter.dm" -#include "code\modules\antagonists\greentext\greentext.dm" -#include "code\modules\antagonists\greybois\greybois.dm" -#include "code\modules\antagonists\highlander\highlander.dm" -#include "code\modules\antagonists\magic_servant\magic_servant.dm" -#include "code\modules\antagonists\monkey\monkey.dm" -#include "code\modules\antagonists\morph\morph.dm" -#include "code\modules\antagonists\morph\morph_antag.dm" -#include "code\modules\antagonists\nightmare\nightmare.dm" -#include "code\modules\antagonists\ninja\ninja.dm" -#include "code\modules\antagonists\nukeop\clownop.dm" -#include "code\modules\antagonists\nukeop\nukeop.dm" -#include "code\modules\antagonists\nukeop\equipment\borgchameleon.dm" -#include "code\modules\antagonists\nukeop\equipment\nuclear_challenge.dm" -#include "code\modules\antagonists\nukeop\equipment\nuclearbomb.dm" -#include "code\modules\antagonists\nukeop\equipment\pinpointer.dm" -#include "code\modules\antagonists\official\official.dm" -#include "code\modules\antagonists\overthrow\overthrow.dm" -#include "code\modules\antagonists\overthrow\overthrow_converter.dm" -#include "code\modules\antagonists\overthrow\overthrow_team.dm" -#include "code\modules\antagonists\pirate\pirate.dm" -#include "code\modules\antagonists\revenant\revenant.dm" -#include "code\modules\antagonists\revenant\revenant_abilities.dm" -#include "code\modules\antagonists\revenant\revenant_antag.dm" -#include "code\modules\antagonists\revenant\revenant_blight.dm" -#include "code\modules\antagonists\revenant\revenant_spawn_event.dm" -#include "code\modules\antagonists\revolution\revolution.dm" -#include "code\modules\antagonists\santa\santa.dm" -#include "code\modules\antagonists\separatist\separatist.dm" -#include "code\modules\antagonists\slaughter\slaughter.dm" -#include "code\modules\antagonists\slaughter\slaughter_antag.dm" -#include "code\modules\antagonists\slaughter\slaughterevent.dm" -#include "code\modules\antagonists\survivalist\survivalist.dm" -#include "code\modules\antagonists\swarmer\swarmer.dm" -#include "code\modules\antagonists\swarmer\swarmer_event.dm" -#include "code\modules\antagonists\traitor\datum_traitor.dm" -#include "code\modules\antagonists\traitor\syndicate_contract.dm" -#include "code\modules\antagonists\traitor\classes\ai.dm" -#include "code\modules\antagonists\traitor\classes\assassin.dm" -#include "code\modules\antagonists\traitor\classes\freeform.dm" -#include "code\modules\antagonists\traitor\classes\hijack.dm" -#include "code\modules\antagonists\traitor\classes\human.dm" -#include "code\modules\antagonists\traitor\classes\martyr.dm" -#include "code\modules\antagonists\traitor\classes\subterfuge.dm" -#include "code\modules\antagonists\traitor\classes\traitor_class.dm" -#include "code\modules\antagonists\traitor\equipment\contractor.dm" -#include "code\modules\antagonists\traitor\equipment\Malf_Modules.dm" -#include "code\modules\antagonists\traitor\IAA\internal_affairs.dm" -#include "code\modules\antagonists\valentines\heartbreaker.dm" -#include "code\modules\antagonists\valentines\valentine.dm" -#include "code\modules\antagonists\wishgranter\wishgranter.dm" -#include "code\modules\antagonists\wizard\wizard.dm" -#include "code\modules\antagonists\wizard\equipment\artefact.dm" -#include "code\modules\antagonists\wizard\equipment\soulstone.dm" -#include "code\modules\antagonists\wizard\equipment\spellbook.dm" -#include "code\modules\antagonists\xeno\xeno.dm" -#include "code\modules\arousal\arousal.dm" -#include "code\modules\arousal\genitals.dm" -#include "code\modules\arousal\genitals_sprite_accessories.dm" -#include "code\modules\arousal\organs\breasts.dm" -#include "code\modules\arousal\organs\penis.dm" -#include "code\modules\arousal\organs\testicles.dm" -#include "code\modules\arousal\organs\vagina.dm" -#include "code\modules\arousal\organs\womb.dm" -#include "code\modules\arousal\toys\dildos.dm" -#include "code\modules\assembly\assembly.dm" -#include "code\modules\assembly\bomb.dm" -#include "code\modules\assembly\doorcontrol.dm" -#include "code\modules\assembly\flash.dm" -#include "code\modules\assembly\health.dm" -#include "code\modules\assembly\helpers.dm" -#include "code\modules\assembly\holder.dm" -#include "code\modules\assembly\igniter.dm" -#include "code\modules\assembly\infrared.dm" -#include "code\modules\assembly\mousetrap.dm" -#include "code\modules\assembly\playback.dm" -#include "code\modules\assembly\proximity.dm" -#include "code\modules\assembly\shock_kit.dm" -#include "code\modules\assembly\signaler.dm" -#include "code\modules\assembly\timer.dm" -#include "code\modules\assembly\voice.dm" -#include "code\modules\asset_cache\asset_cache_client.dm" -#include "code\modules\asset_cache\asset_cache_item.dm" -#include "code\modules\asset_cache\asset_list.dm" -#include "code\modules\asset_cache\asset_list_items.dm" -#include "code\modules\asset_cache\transports\asset_transport.dm" -#include "code\modules\asset_cache\transports\webroot_transport.dm" -#include "code\modules\atmospherics\multiz.dm" -#include "code\modules\atmospherics\environmental\LINDA_fire.dm" -#include "code\modules\atmospherics\environmental\LINDA_system.dm" -#include "code\modules\atmospherics\environmental\LINDA_turf_tile.dm" -#include "code\modules\atmospherics\gasmixtures\gas_mixture.dm" -#include "code\modules\atmospherics\gasmixtures\gas_types.dm" -#include "code\modules\atmospherics\gasmixtures\immutable_mixtures.dm" -#include "code\modules\atmospherics\gasmixtures\reactions.dm" -#include "code\modules\atmospherics\machinery\airalarm.dm" -#include "code\modules\atmospherics\machinery\atmosmachinery.dm" -#include "code\modules\atmospherics\machinery\datum_pipeline.dm" -#include "code\modules\atmospherics\machinery\components\components_base.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\binary_devices.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\circulator.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\dp_vent_pump.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\passive_gate.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\pump.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\relief_valve.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\valve.dm" -#include "code\modules\atmospherics\machinery\components\binary_devices\volume_pump.dm" -#include "code\modules\atmospherics\machinery\components\trinary_devices\filter.dm" -#include "code\modules\atmospherics\machinery\components\trinary_devices\mixer.dm" -#include "code\modules\atmospherics\machinery\components\trinary_devices\trinary_devices.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\cryo.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\heat_exchanger.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\outlet_injector.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\passive_vent.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\portables_connector.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\relief_valve.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\tank.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\thermomachine.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\unary_devices.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\vent_pump.dm" -#include "code\modules\atmospherics\machinery\components\unary_devices\vent_scrubber.dm" -#include "code\modules\atmospherics\machinery\other\meter.dm" -#include "code\modules\atmospherics\machinery\other\miner.dm" -#include "code\modules\atmospherics\machinery\pipes\bluespace.dm" -#include "code\modules\atmospherics\machinery\pipes\layermanifold.dm" -#include "code\modules\atmospherics\machinery\pipes\manifold.dm" -#include "code\modules\atmospherics\machinery\pipes\manifold4w.dm" -#include "code\modules\atmospherics\machinery\pipes\mapping.dm" -#include "code\modules\atmospherics\machinery\pipes\pipes.dm" -#include "code\modules\atmospherics\machinery\pipes\simple.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\he_pipes.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\junction.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold4w.dm" -#include "code\modules\atmospherics\machinery\pipes\heat_exchange\simple.dm" -#include "code\modules\atmospherics\machinery\portable\canister.dm" -#include "code\modules\atmospherics\machinery\portable\portable_atmospherics.dm" -#include "code\modules\atmospherics\machinery\portable\pump.dm" -#include "code\modules\atmospherics\machinery\portable\scrubber.dm" -#include "code\modules\awaymissions\away_props.dm" -#include "code\modules\awaymissions\bluespaceartillery.dm" -#include "code\modules\awaymissions\capture_the_flag.dm" -#include "code\modules\awaymissions\corpse.dm" -#include "code\modules\awaymissions\exile.dm" -#include "code\modules\awaymissions\gateway.dm" -#include "code\modules\awaymissions\pamphlet.dm" -#include "code\modules\awaymissions\signpost.dm" -#include "code\modules\awaymissions\super_secret_room.dm" -#include "code\modules\awaymissions\zlevel.dm" -#include "code\modules\awaymissions\mission_code\Academy.dm" -#include "code\modules\awaymissions\mission_code\Cabin.dm" -#include "code\modules\awaymissions\mission_code\caves.dm" -#include "code\modules\awaymissions\mission_code\centcomAway.dm" -#include "code\modules\awaymissions\mission_code\challenge.dm" -#include "code\modules\awaymissions\mission_code\jungleresort.dm" -#include "code\modules\awaymissions\mission_code\moonoutpost19.dm" -#include "code\modules\awaymissions\mission_code\murderdome.dm" -#include "code\modules\awaymissions\mission_code\research.dm" -#include "code\modules\awaymissions\mission_code\snowdin.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" -#include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" -#include "code\modules\awaymissions\mission_code\wildwest.dm" -#include "code\modules\buildmode\bm_mode.dm" -#include "code\modules\buildmode\buildmode.dm" -#include "code\modules\buildmode\buttons.dm" -#include "code\modules\buildmode\effects\line.dm" -#include "code\modules\buildmode\submodes\advanced.dm" -#include "code\modules\buildmode\submodes\area_edit.dm" -#include "code\modules\buildmode\submodes\basic.dm" -#include "code\modules\buildmode\submodes\boom.dm" -#include "code\modules\buildmode\submodes\copy.dm" -#include "code\modules\buildmode\submodes\fill.dm" -#include "code\modules\buildmode\submodes\mapgen.dm" -#include "code\modules\buildmode\submodes\throwing.dm" -#include "code\modules\buildmode\submodes\variable_edit.dm" -#include "code\modules\cargo\bounty.dm" -#include "code\modules\cargo\bounty_console.dm" -#include "code\modules\cargo\centcom_podlauncher.dm" -#include "code\modules\cargo\console.dm" -#include "code\modules\cargo\coupon.dm" -#include "code\modules\cargo\export_scanner.dm" -#include "code\modules\cargo\exports.dm" -#include "code\modules\cargo\expressconsole.dm" -#include "code\modules\cargo\gondolapod.dm" -#include "code\modules\cargo\order.dm" -#include "code\modules\cargo\packs.dm" -#include "code\modules\cargo\supplypod.dm" -#include "code\modules\cargo\supplypod_beacon.dm" -#include "code\modules\cargo\blackmarket\blackmarket_item.dm" -#include "code\modules\cargo\blackmarket\blackmarket_market.dm" -#include "code\modules\cargo\blackmarket\blackmarket_telepad.dm" -#include "code\modules\cargo\blackmarket\blackmarket_uplink.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\clothing.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\consumables.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\misc.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\tools.dm" -#include "code\modules\cargo\blackmarket\blackmarket_items\weapons.dm" -#include "code\modules\cargo\bounties\assistant.dm" -#include "code\modules\cargo\bounties\botany.dm" -#include "code\modules\cargo\bounties\chef.dm" -#include "code\modules\cargo\bounties\engineering.dm" -#include "code\modules\cargo\bounties\gardencook.dm" -#include "code\modules\cargo\bounties\item.dm" -#include "code\modules\cargo\bounties\mech.dm" -#include "code\modules\cargo\bounties\medical.dm" -#include "code\modules\cargo\bounties\mining.dm" -#include "code\modules\cargo\bounties\reagent.dm" -#include "code\modules\cargo\bounties\science.dm" -#include "code\modules\cargo\bounties\security.dm" -#include "code\modules\cargo\bounties\silly.dm" -#include "code\modules\cargo\bounties\slime.dm" -#include "code\modules\cargo\bounties\special.dm" -#include "code\modules\cargo\bounties\virus.dm" -#include "code\modules\cargo\exports\food_wine.dm" -#include "code\modules\cargo\exports\gear.dm" -#include "code\modules\cargo\exports\large_objects.dm" -#include "code\modules\cargo\exports\manifest.dm" -#include "code\modules\cargo\exports\materials.dm" -#include "code\modules\cargo\exports\organs_robotics.dm" -#include "code\modules\cargo\exports\parts.dm" -#include "code\modules\cargo\exports\seeds.dm" -#include "code\modules\cargo\exports\sheets.dm" -#include "code\modules\cargo\exports\tools.dm" -#include "code\modules\cargo\exports\weapons.dm" -#include "code\modules\cargo\packs\armory.dm" -#include "code\modules\cargo\packs\costumes_toys.dm" -#include "code\modules\cargo\packs\emergency.dm" -#include "code\modules\cargo\packs\engine.dm" -#include "code\modules\cargo\packs\engineering.dm" -#include "code\modules\cargo\packs\goodies.dm" -#include "code\modules\cargo\packs\livestock.dm" -#include "code\modules\cargo\packs\materials.dm" -#include "code\modules\cargo\packs\medical.dm" -#include "code\modules\cargo\packs\misc.dm" -#include "code\modules\cargo\packs\organic.dm" -#include "code\modules\cargo\packs\science.dm" -#include "code\modules\cargo\packs\security.dm" -#include "code\modules\cargo\packs\service.dm" -#include "code\modules\cargo\packs\vending.dm" -#include "code\modules\chatter\chatter.dm" -#include "code\modules\client\client_colour.dm" -#include "code\modules\client\client_defines.dm" -#include "code\modules\client\client_procs.dm" -#include "code\modules\client\message.dm" -#include "code\modules\client\player_details.dm" -#include "code\modules\client\preferences.dm" -#include "code\modules\client\preferences_savefile.dm" -#include "code\modules\client\preferences_toggles.dm" -#include "code\modules\client\preferences_vr.dm" -#include "code\modules\client\verbs\aooc.dm" -#include "code\modules\client\verbs\autobunker.dm" -#include "code\modules\client\verbs\etips.dm" -#include "code\modules\client\verbs\looc.dm" -#include "code\modules\client\verbs\minimap.dm" -#include "code\modules\client\verbs\ooc.dm" -#include "code\modules\client\verbs\ping.dm" -#include "code\modules\client\verbs\suicide.dm" -#include "code\modules\client\verbs\who.dm" -#include "code\modules\clothing\chameleon.dm" -#include "code\modules\clothing\clothing.dm" -#include "code\modules\clothing\ears\_ears.dm" -#include "code\modules\clothing\glasses\_glasses.dm" -#include "code\modules\clothing\glasses\disablerglasses.dm" -#include "code\modules\clothing\glasses\engine_goggles.dm" -#include "code\modules\clothing\glasses\hud.dm" -#include "code\modules\clothing\glasses\phantomthief.dm" -#include "code\modules\clothing\gloves\_gloves.dm" -#include "code\modules\clothing\gloves\boxing.dm" -#include "code\modules\clothing\gloves\color.dm" -#include "code\modules\clothing\gloves\miscellaneous.dm" -#include "code\modules\clothing\gloves\ring.dm" -#include "code\modules\clothing\gloves\tacklers.dm" -#include "code\modules\clothing\head\_head.dm" -#include "code\modules\clothing\head\beanie.dm" -#include "code\modules\clothing\head\collectable.dm" -#include "code\modules\clothing\head\hardhat.dm" -#include "code\modules\clothing\head\helmet.dm" -#include "code\modules\clothing\head\jobs.dm" -#include "code\modules\clothing\head\misc.dm" -#include "code\modules\clothing\head\misc_special.dm" -#include "code\modules\clothing\head\soft_caps.dm" -#include "code\modules\clothing\masks\_masks.dm" -#include "code\modules\clothing\masks\boxing.dm" -#include "code\modules\clothing\masks\breath.dm" -#include "code\modules\clothing\masks\cluwne.dm" -#include "code\modules\clothing\masks\gasmask.dm" -#include "code\modules\clothing\masks\hailer.dm" -#include "code\modules\clothing\masks\miscellaneous.dm" -#include "code\modules\clothing\neck\_neck.dm" -#include "code\modules\clothing\outfits\ert.dm" -#include "code\modules\clothing\outfits\event.dm" -#include "code\modules\clothing\outfits\plasmaman.dm" -#include "code\modules\clothing\outfits\standard.dm" -#include "code\modules\clothing\outfits\vr.dm" -#include "code\modules\clothing\outfits\vv_outfit.dm" -#include "code\modules\clothing\shoes\_shoes.dm" -#include "code\modules\clothing\shoes\bananashoes.dm" -#include "code\modules\clothing\shoes\cluwne.dm" -#include "code\modules\clothing\shoes\colour.dm" -#include "code\modules\clothing\shoes\magboots.dm" -#include "code\modules\clothing\shoes\miscellaneous.dm" -#include "code\modules\clothing\shoes\taeclowndo.dm" -#include "code\modules\clothing\spacesuits\_spacesuits.dm" -#include "code\modules\clothing\spacesuits\chronosuit.dm" -#include "code\modules\clothing\spacesuits\hardsuit.dm" -#include "code\modules\clothing\spacesuits\miscellaneous.dm" -#include "code\modules\clothing\spacesuits\plasmamen.dm" -#include "code\modules\clothing\spacesuits\syndi.dm" -#include "code\modules\clothing\suits\_suits.dm" -#include "code\modules\clothing\suits\armor.dm" -#include "code\modules\clothing\suits\bio.dm" -#include "code\modules\clothing\suits\cloaks.dm" -#include "code\modules\clothing\suits\jobs.dm" -#include "code\modules\clothing\suits\labcoat.dm" -#include "code\modules\clothing\suits\miscellaneous.dm" -#include "code\modules\clothing\suits\reactive_armour.dm" -#include "code\modules\clothing\suits\toggles.dm" -#include "code\modules\clothing\suits\utility.dm" -#include "code\modules\clothing\suits\wiz_robe.dm" -#include "code\modules\clothing\under\_under.dm" -#include "code\modules\clothing\under\accessories.dm" -#include "code\modules\clothing\under\cluwne.dm" -#include "code\modules\clothing\under\color.dm" -#include "code\modules\clothing\under\costume.dm" -#include "code\modules\clothing\under\miscellaneous.dm" -#include "code\modules\clothing\under\pants.dm" -#include "code\modules\clothing\under\shorts.dm" -#include "code\modules\clothing\under\skirt_dress.dm" -#include "code\modules\clothing\under\suits.dm" -#include "code\modules\clothing\under\sweaters.dm" -#include "code\modules\clothing\under\syndicate.dm" -#include "code\modules\clothing\under\trek.dm" -#include "code\modules\clothing\under\jobs\cargo.dm" -#include "code\modules\clothing\under\jobs\centcom.dm" -#include "code\modules\clothing\under\jobs\command.dm" -#include "code\modules\clothing\under\jobs\engineering.dm" -#include "code\modules\clothing\under\jobs\medical.dm" -#include "code\modules\clothing\under\jobs\rnd.dm" -#include "code\modules\clothing\under\jobs\security.dm" -#include "code\modules\clothing\under\jobs\civilian\civilian.dm" -#include "code\modules\clothing\under\jobs\civilian\clown_mime.dm" -#include "code\modules\clothing\under\jobs\civilian\curator.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\civilian_service.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\engineering.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\medsci.dm" -#include "code\modules\clothing\under\jobs\Plasmaman\security.dm" -#include "code\modules\detectivework\detective_work.dm" -#include "code\modules\detectivework\evidence.dm" -#include "code\modules\detectivework\scanner.dm" -#include "code\modules\economy\_economy.dm" -#include "code\modules\economy\account.dm" -#include "code\modules\economy\paystand.dm" -#include "code\modules\emoji\emoji_parse.dm" -#include "code\modules\error_handler\error_handler.dm" -#include "code\modules\error_handler\error_viewer.dm" -#include "code\modules\events\_event.dm" -#include "code\modules\events\abductor.dm" -#include "code\modules\events\alien_infestation.dm" -#include "code\modules\events\anomaly.dm" -#include "code\modules\events\anomaly_bluespace.dm" -#include "code\modules\events\anomaly_flux.dm" -#include "code\modules\events\anomaly_grav.dm" -#include "code\modules\events\anomaly_pyro.dm" -#include "code\modules\events\anomaly_vortex.dm" -#include "code\modules\events\aurora_caelus.dm" -#include "code\modules\events\blob.dm" -#include "code\modules\events\brain_trauma.dm" -#include "code\modules\events\brand_intelligence.dm" -#include "code\modules\events\bureaucratic_error.dm" -#include "code\modules\events\camerafailure.dm" -#include "code\modules\events\carp_migration.dm" -#include "code\modules\events\cat_surgeon.dm" -#include "code\modules\events\communications_blackout.dm" -#include "code\modules\events\devil.dm" -#include "code\modules\events\disease_outbreak.dm" -#include "code\modules\events\dust.dm" -#include "code\modules\events\electrical_storm.dm" -#include "code\modules\events\fake_virus.dm" -#include "code\modules\events\false_alarm.dm" -#include "code\modules\events\floorcluwne.dm" -#include "code\modules\events\fugitive_spawning.dm" -#include "code\modules\events\ghost_role.dm" -#include "code\modules\events\grid_check.dm" -#include "code\modules\events\heart_attack.dm" -#include "code\modules\events\high_priority_bounty.dm" -#include "code\modules\events\immovable_rod.dm" -#include "code\modules\events\ion_storm.dm" -#include "code\modules\events\major_dust.dm" -#include "code\modules\events\mass_hallucination.dm" -#include "code\modules\events\meateor_wave.dm" -#include "code\modules\events\meteor_wave.dm" -#include "code\modules\events\mice_migration.dm" -#include "code\modules\events\nightmare.dm" -#include "code\modules\events\operative.dm" -#include "code\modules\events\pirates.dm" -#include "code\modules\events\portal_storm.dm" -#include "code\modules\events\prison_break.dm" -#include "code\modules\events\processor_overload.dm" -#include "code\modules\events\radiation_storm.dm" -#include "code\modules\events\sentience.dm" -#include "code\modules\events\shuttle_loan.dm" -#include "code\modules\events\spacevine.dm" -#include "code\modules\events\spider_infestation.dm" -#include "code\modules\events\spontaneous_appendicitis.dm" -#include "code\modules\events\stray_cargo.dm" -#include "code\modules\events\supermatter_surge.dm" -#include "code\modules\events\supernova.dm" -#include "code\modules\events\travelling_trader.dm" -#include "code\modules\events\vent_clog.dm" -#include "code\modules\events\wisdomcow.dm" -#include "code\modules\events\wormholes.dm" -#include "code\modules\events\holiday\halloween.dm" -#include "code\modules\events\holiday\vday.dm" -#include "code\modules\events\holiday\xmas.dm" -#include "code\modules\events\wizard\aid.dm" -#include "code\modules\events\wizard\blobies.dm" -#include "code\modules\events\wizard\curseditems.dm" -#include "code\modules\events\wizard\departmentrevolt.dm" -#include "code\modules\events\wizard\embeddies.dm" -#include "code\modules\events\wizard\fakeexplosion.dm" -#include "code\modules\events\wizard\ghost.dm" -#include "code\modules\events\wizard\greentext.dm" -#include "code\modules\events\wizard\imposter.dm" -#include "code\modules\events\wizard\invincible.dm" -#include "code\modules\events\wizard\lava.dm" -#include "code\modules\events\wizard\madness.dm" -#include "code\modules\events\wizard\magicarp.dm" -#include "code\modules\events\wizard\petsplosion.dm" -#include "code\modules\events\wizard\race.dm" -#include "code\modules\events\wizard\rpgloot.dm" -#include "code\modules\events\wizard\shuffle.dm" -#include "code\modules\events\wizard\summons.dm" -#include "code\modules\fields\fields.dm" -#include "code\modules\fields\gravity.dm" -#include "code\modules\fields\infinite_void.dm" -#include "code\modules\fields\peaceborg_dampener.dm" -#include "code\modules\fields\timestop.dm" -#include "code\modules\fields\turf_objects.dm" -#include "code\modules\flufftext\Dreaming.dm" -#include "code\modules\flufftext\Hallucination.dm" -#include "code\modules\food_and_drinks\autobottler.dm" -#include "code\modules\food_and_drinks\food.dm" -#include "code\modules\food_and_drinks\pizzabox.dm" -#include "code\modules\food_and_drinks\drinks\drinks.dm" -#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" -#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" -#include "code\modules\food_and_drinks\food\condiment.dm" -#include "code\modules\food_and_drinks\food\customizables.dm" -#include "code\modules\food_and_drinks\food\snacks.dm" -#include "code\modules\food_and_drinks\food\snacks_bread.dm" -#include "code\modules\food_and_drinks\food\snacks_burgers.dm" -#include "code\modules\food_and_drinks\food\snacks_cake.dm" -#include "code\modules\food_and_drinks\food\snacks_egg.dm" -#include "code\modules\food_and_drinks\food\snacks_frozen.dm" -#include "code\modules\food_and_drinks\food\snacks_meat.dm" -#include "code\modules\food_and_drinks\food\snacks_other.dm" -#include "code\modules\food_and_drinks\food\snacks_pastry.dm" -#include "code\modules\food_and_drinks\food\snacks_pie.dm" -#include "code\modules\food_and_drinks\food\snacks_pizza.dm" -#include "code\modules\food_and_drinks\food\snacks_salad.dm" -#include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm" -#include "code\modules\food_and_drinks\food\snacks_soup.dm" -#include "code\modules\food_and_drinks\food\snacks_spaghetti.dm" -#include "code\modules\food_and_drinks\food\snacks_sushi.dm" -#include "code\modules\food_and_drinks\food\snacks_vend.dm" -#include "code\modules\food_and_drinks\food\snacks\dough.dm" -#include "code\modules\food_and_drinks\food\snacks\meat.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\grill.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" -#include "code\modules\food_and_drinks\recipes\drinks_recipes.dm" -#include "code\modules\food_and_drinks\recipes\food_mixtures.dm" -#include "code\modules\food_and_drinks\recipes\processor_recipes.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_bread.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_burger.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_cake.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_donut.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_egg.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_frozen.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_meat.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_mexican.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_misc.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pastry.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pies_sweets.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pizza.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_salad.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_seafood.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" -#include "code\modules\games\cas.dm" -#include "code\modules\games\unum.dm" -#include "code\modules\holiday\easter.dm" -#include "code\modules\holiday\holidays.dm" -#include "code\modules\holiday\halloween\bartholomew.dm" -#include "code\modules\holiday\halloween\jacqueen.dm" -#include "code\modules\holodeck\area_copy.dm" -#include "code\modules\holodeck\computer.dm" -#include "code\modules\holodeck\holo_effect.dm" -#include "code\modules\holodeck\items.dm" -#include "code\modules\holodeck\mobs.dm" -#include "code\modules\holodeck\turfs.dm" -#include "code\modules\hydroponics\biogenerator.dm" -#include "code\modules\hydroponics\fermenting_barrel.dm" -#include "code\modules\hydroponics\gene_modder.dm" -#include "code\modules\hydroponics\grown.dm" -#include "code\modules\hydroponics\growninedible.dm" -#include "code\modules\hydroponics\hydroitemdefines.dm" -#include "code\modules\hydroponics\hydroponics.dm" -#include "code\modules\hydroponics\hydroponics_chemreact.dm" -#include "code\modules\hydroponics\plant_genes.dm" -#include "code\modules\hydroponics\sample.dm" -#include "code\modules\hydroponics\seed_extractor.dm" -#include "code\modules\hydroponics\seeds.dm" -#include "code\modules\hydroponics\beekeeping\beebox.dm" -#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" -#include "code\modules\hydroponics\beekeeping\honey_frame.dm" -#include "code\modules\hydroponics\beekeeping\honeycomb.dm" -#include "code\modules\hydroponics\grown\ambrosia.dm" -#include "code\modules\hydroponics\grown\apple.dm" -#include "code\modules\hydroponics\grown\banana.dm" -#include "code\modules\hydroponics\grown\beans.dm" -#include "code\modules\hydroponics\grown\berries.dm" -#include "code\modules\hydroponics\grown\cannabis.dm" -#include "code\modules\hydroponics\grown\cereals.dm" -#include "code\modules\hydroponics\grown\chili.dm" -#include "code\modules\hydroponics\grown\citrus.dm" -#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" -#include "code\modules\hydroponics\grown\corn.dm" -#include "code\modules\hydroponics\grown\cotton.dm" -#include "code\modules\hydroponics\grown\eggplant.dm" -#include "code\modules\hydroponics\grown\flowers.dm" -#include "code\modules\hydroponics\grown\garlic.dm" -#include "code\modules\hydroponics\grown\grass_carpet.dm" -#include "code\modules\hydroponics\grown\kudzu.dm" -#include "code\modules\hydroponics\grown\melon.dm" -#include "code\modules\hydroponics\grown\misc.dm" -#include "code\modules\hydroponics\grown\mushrooms.dm" -#include "code\modules\hydroponics\grown\nettle.dm" -#include "code\modules\hydroponics\grown\onion.dm" -#include "code\modules\hydroponics\grown\peach.dm" -#include "code\modules\hydroponics\grown\peanuts.dm" -#include "code\modules\hydroponics\grown\peas.dm" -#include "code\modules\hydroponics\grown\pineapple.dm" -#include "code\modules\hydroponics\grown\potato.dm" -#include "code\modules\hydroponics\grown\pumpkin.dm" -#include "code\modules\hydroponics\grown\random.dm" -#include "code\modules\hydroponics\grown\replicapod.dm" -#include "code\modules\hydroponics\grown\root.dm" -#include "code\modules\hydroponics\grown\tea_coffee.dm" -#include "code\modules\hydroponics\grown\tobacco.dm" -#include "code\modules\hydroponics\grown\tomato.dm" -#include "code\modules\hydroponics\grown\towercap.dm" -#include "code\modules\instruments\instrument_data\_instrument_data.dm" -#include "code\modules\instruments\instrument_data\_instrument_key.dm" -#include "code\modules\instruments\instrument_data\brass.dm" -#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" -#include "code\modules\instruments\instrument_data\fun.dm" -#include "code\modules\instruments\instrument_data\guitar.dm" -#include "code\modules\instruments\instrument_data\hardcoded.dm" -#include "code\modules\instruments\instrument_data\organ.dm" -#include "code\modules\instruments\instrument_data\piano.dm" -#include "code\modules\instruments\instrument_data\synth_tones.dm" -#include "code\modules\instruments\instruments\item.dm" -#include "code\modules\instruments\instruments\stationary.dm" -#include "code\modules\instruments\songs\_song.dm" -#include "code\modules\instruments\songs\editor.dm" -#include "code\modules\instruments\songs\play_legacy.dm" -#include "code\modules\instruments\songs\play_synthesized.dm" -#include "code\modules\integrated_electronics\_defines.dm" -#include "code\modules\integrated_electronics\core\analyzer.dm" -#include "code\modules\integrated_electronics\core\assemblies.dm" -#include "code\modules\integrated_electronics\core\debugger.dm" -#include "code\modules\integrated_electronics\core\detailer.dm" -#include "code\modules\integrated_electronics\core\helpers.dm" -#include "code\modules\integrated_electronics\core\integrated_circuit.dm" -#include "code\modules\integrated_electronics\core\pins.dm" -#include "code\modules\integrated_electronics\core\printer.dm" -#include "code\modules\integrated_electronics\core\saved_circuits.dm" -#include "code\modules\integrated_electronics\core\wirer.dm" -#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\index_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\selfref_pin.dm" -#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm" -#include "code\modules\integrated_electronics\passive\passive.dm" -#include "code\modules\integrated_electronics\passive\power.dm" -#include "code\modules\integrated_electronics\subtypes\access.dm" -#include "code\modules\integrated_electronics\subtypes\arithmetic.dm" -#include "code\modules\integrated_electronics\subtypes\atmospherics.dm" -#include "code\modules\integrated_electronics\subtypes\converters.dm" -#include "code\modules\integrated_electronics\subtypes\data_transfer.dm" -#include "code\modules\integrated_electronics\subtypes\input.dm" -#include "code\modules\integrated_electronics\subtypes\lists.dm" -#include "code\modules\integrated_electronics\subtypes\logic.dm" -#include "code\modules\integrated_electronics\subtypes\manipulation.dm" -#include "code\modules\integrated_electronics\subtypes\memory.dm" -#include "code\modules\integrated_electronics\subtypes\output.dm" -#include "code\modules\integrated_electronics\subtypes\power.dm" -#include "code\modules\integrated_electronics\subtypes\reagents.dm" -#include "code\modules\integrated_electronics\subtypes\smart.dm" -#include "code\modules\integrated_electronics\subtypes\text.dm" -#include "code\modules\integrated_electronics\subtypes\time.dm" -#include "code\modules\integrated_electronics\subtypes\trig.dm" -#include "code\modules\integrated_electronics\subtypes\weaponized.dm" -#include "code\modules\jobs\access.dm" -#include "code\modules\jobs\job_exp.dm" -#include "code\modules\jobs\job_report.dm" -#include "code\modules\jobs\jobs.dm" -#include "code\modules\jobs\job_types\_job.dm" -#include "code\modules\jobs\job_types\ai.dm" -#include "code\modules\jobs\job_types\assistant.dm" -#include "code\modules\jobs\job_types\atmospheric_technician.dm" -#include "code\modules\jobs\job_types\bartender.dm" -#include "code\modules\jobs\job_types\botanist.dm" -#include "code\modules\jobs\job_types\captain.dm" -#include "code\modules\jobs\job_types\cargo_technician.dm" -#include "code\modules\jobs\job_types\chaplain.dm" -#include "code\modules\jobs\job_types\chemist.dm" -#include "code\modules\jobs\job_types\chief_engineer.dm" -#include "code\modules\jobs\job_types\chief_medical_officer.dm" -#include "code\modules\jobs\job_types\clown.dm" -#include "code\modules\jobs\job_types\cook.dm" -#include "code\modules\jobs\job_types\curator.dm" -#include "code\modules\jobs\job_types\cyborg.dm" -#include "code\modules\jobs\job_types\detective.dm" -#include "code\modules\jobs\job_types\geneticist.dm" -#include "code\modules\jobs\job_types\head_of_personnel.dm" -#include "code\modules\jobs\job_types\head_of_security.dm" -#include "code\modules\jobs\job_types\janitor.dm" -#include "code\modules\jobs\job_types\lawyer.dm" -#include "code\modules\jobs\job_types\medical_doctor.dm" -#include "code\modules\jobs\job_types\mime.dm" -#include "code\modules\jobs\job_types\paramedic.dm" -#include "code\modules\jobs\job_types\quartermaster.dm" -#include "code\modules\jobs\job_types\research_director.dm" -#include "code\modules\jobs\job_types\roboticist.dm" -#include "code\modules\jobs\job_types\scientist.dm" -#include "code\modules\jobs\job_types\security_officer.dm" -#include "code\modules\jobs\job_types\shaft_miner.dm" -#include "code\modules\jobs\job_types\station_engineer.dm" -#include "code\modules\jobs\job_types\virologist.dm" -#include "code\modules\jobs\job_types\warden.dm" -#include "code\modules\keybindings\bindings_atom.dm" -#include "code\modules\keybindings\bindings_client.dm" -#include "code\modules\keybindings\focus.dm" -#include "code\modules\keybindings\setup.dm" -#include "code\modules\keybindings\keybind\__defines.dm" -#include "code\modules\keybindings\keybind\_keybind.dm" -#include "code\modules\keybindings\keybind\admin.dm" -#include "code\modules\keybindings\keybind\carbon.dm" -#include "code\modules\keybindings\keybind\client.dm" -#include "code\modules\keybindings\keybind\combat.dm" -#include "code\modules\keybindings\keybind\communication.dm" -#include "code\modules\keybindings\keybind\emote.dm" -#include "code\modules\keybindings\keybind\human.dm" -#include "code\modules\keybindings\keybind\living.dm" -#include "code\modules\keybindings\keybind\mob.dm" -#include "code\modules\keybindings\keybind\movement.dm" -#include "code\modules\keybindings\keybind\robot.dm" -#include "code\modules\keybindings\keybind\targeting.dm" -#include "code\modules\language\aphasia.dm" -#include "code\modules\language\arachnid.dm" -#include "code\modules\language\beachbum.dm" -#include "code\modules\language\codespeak.dm" -#include "code\modules\language\common.dm" -#include "code\modules\language\draconic.dm" -#include "code\modules\language\drone.dm" -#include "code\modules\language\dwarven.dm" -#include "code\modules\language\language.dm" -#include "code\modules\language\language_holder.dm" -#include "code\modules\language\language_menu.dm" -#include "code\modules\language\machine.dm" -#include "code\modules\language\monkey.dm" -#include "code\modules\language\mushroom.dm" -#include "code\modules\language\narsian.dm" -#include "code\modules\language\ratvarian.dm" -#include "code\modules\language\signlanguage.dm" -#include "code\modules\language\slime.dm" -#include "code\modules\language\swarmer.dm" -#include "code\modules\language\sylvan.dm" -#include "code\modules\language\vampiric.dm" -#include "code\modules\language\voltaic.dm" -#include "code\modules\language\xenocommon.dm" -#include "code\modules\library\lib_codex_gigas.dm" -#include "code\modules\library\lib_items.dm" -#include "code\modules\library\lib_machines.dm" -#include "code\modules\library\random_books.dm" -#include "code\modules\library\soapstone.dm" -#include "code\modules\lighting\emissive_blocker.dm" -#include "code\modules\lighting\lighting_area.dm" -#include "code\modules\lighting\lighting_atom.dm" -#include "code\modules\lighting\lighting_corner.dm" -#include "code\modules\lighting\lighting_object.dm" -#include "code\modules\lighting\lighting_setup.dm" -#include "code\modules\lighting\lighting_source.dm" -#include "code\modules\lighting\lighting_turf.dm" -#include "code\modules\mafia\_defines.dm" -#include "code\modules\mafia\controller.dm" -#include "code\modules\mafia\map_pieces.dm" -#include "code\modules\mafia\outfits.dm" -#include "code\modules\mafia\roles.dm" -#include "code\modules\mapping\map_config.dm" -#include "code\modules\mapping\map_orientation_pattern.dm" -#include "code\modules\mapping\map_template.dm" -#include "code\modules\mapping\minimaps.dm" -#include "code\modules\mapping\preloader.dm" -#include "code\modules\mapping\reader.dm" -#include "code\modules\mapping\ruins.dm" -#include "code\modules\mapping\verify.dm" -#include "code\modules\mapping\mapping_helpers\_mapping_helpers.dm" -#include "code\modules\mapping\mapping_helpers\baseturf.dm" -#include "code\modules\mapping\mapping_helpers\network_builder\_network_builder.dm" -#include "code\modules\mapping\mapping_helpers\network_builder\atmos_pipe.dm" -#include "code\modules\mapping\mapping_helpers\network_builder\power_cables.dm" -#include "code\modules\mapping\space_management\multiz_helpers.dm" -#include "code\modules\mapping\space_management\space_level.dm" -#include "code\modules\mapping\space_management\space_reservation.dm" -#include "code\modules\mapping\space_management\space_transition.dm" -#include "code\modules\mapping\space_management\traits.dm" -#include "code\modules\mapping\space_management\zlevel_manager.dm" -#include "code\modules\mining\abandoned_crates.dm" -#include "code\modules\mining\aux_base.dm" -#include "code\modules\mining\aux_base_camera.dm" -#include "code\modules\mining\fulton.dm" -#include "code\modules\mining\machine_processing.dm" -#include "code\modules\mining\machine_redemption.dm" -#include "code\modules\mining\machine_silo.dm" -#include "code\modules\mining\machine_stacking.dm" -#include "code\modules\mining\machine_unloading.dm" -#include "code\modules\mining\machine_vending.dm" -#include "code\modules\mining\mine_items.dm" -#include "code\modules\mining\minebot.dm" -#include "code\modules\mining\mint.dm" -#include "code\modules\mining\money_bag.dm" -#include "code\modules\mining\ores_coins.dm" -#include "code\modules\mining\point_bank.dm" -#include "code\modules\mining\satchel_ore_boxdm.dm" -#include "code\modules\mining\shelters.dm" -#include "code\modules\mining\equipment\explorer_gear.dm" -#include "code\modules\mining\equipment\goliath_hide.dm" -#include "code\modules\mining\equipment\kinetic_crusher.dm" -#include "code\modules\mining\equipment\lazarus_injector.dm" -#include "code\modules\mining\equipment\marker_beacons.dm" -#include "code\modules\mining\equipment\mineral_scanner.dm" -#include "code\modules\mining\equipment\mining_tools.dm" -#include "code\modules\mining\equipment\regenerative_core.dm" -#include "code\modules\mining\equipment\resonator.dm" -#include "code\modules\mining\equipment\survival_pod.dm" -#include "code\modules\mining\equipment\vendor_items.dm" -#include "code\modules\mining\equipment\wormhole_jaunter.dm" -#include "code\modules\mining\laborcamp\laborshuttle.dm" -#include "code\modules\mining\laborcamp\laborstacker.dm" -#include "code\modules\mining\lavaland\ash_flora.dm" -#include "code\modules\mining\lavaland\necropolis_chests.dm" -#include "code\modules\mining\lavaland\ruins\gym.dm" -#include "code\modules\mob\clickdelay.dm" -#include "code\modules\mob\death.dm" -#include "code\modules\mob\emote.dm" -#include "code\modules\mob\innate_abilities.dm" -#include "code\modules\mob\inventory.dm" -#include "code\modules\mob\login.dm" -#include "code\modules\mob\logout.dm" -#include "code\modules\mob\mob.dm" -#include "code\modules\mob\mob_defines.dm" -#include "code\modules\mob\mob_helpers.dm" -#include "code\modules\mob\mob_movement.dm" -#include "code\modules\mob\mob_transformation_simple.dm" -#include "code\modules\mob\say.dm" -#include "code\modules\mob\say_vr.dm" -#include "code\modules\mob\status_procs.dm" -#include "code\modules\mob\transform_procs.dm" -#include "code\modules\mob\typing_indicator.dm" -#include "code\modules\mob\update_icons.dm" -#include "code\modules\mob\camera\camera.dm" -#include "code\modules\mob\dead\dead.dm" -#include "code\modules\mob\dead\new_player\login.dm" -#include "code\modules\mob\dead\new_player\logout.dm" -#include "code\modules\mob\dead\new_player\new_player.dm" -#include "code\modules\mob\dead\new_player\poll.dm" -#include "code\modules\mob\dead\new_player\preferences_setup.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\_sprite_accessories.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\alienpeople.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\arachnid.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\body_markings.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\caps.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\Citadel_Snowflake.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\ears.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\frills.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\hair_head.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\horns.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\ipc_synths.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\spines.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\underwear.dm" -#include "code\modules\mob\dead\new_player\sprite_accessories\wings.dm" -#include "code\modules\mob\dead\observer\login.dm" -#include "code\modules\mob\dead\observer\logout.dm" -#include "code\modules\mob\dead\observer\notificationprefs.dm" -#include "code\modules\mob\dead\observer\observer.dm" -#include "code\modules\mob\dead\observer\observer_movement.dm" -#include "code\modules\mob\dead\observer\orbit.dm" -#include "code\modules\mob\dead\observer\respawn.dm" -#include "code\modules\mob\dead\observer\say.dm" -#include "code\modules\mob\living\blood.dm" -#include "code\modules\mob\living\bloodcrawl.dm" -#include "code\modules\mob\living\clickdelay.dm" -#include "code\modules\mob\living\damage_procs.dm" -#include "code\modules\mob\living\death.dm" -#include "code\modules\mob\living\emote.dm" -#include "code\modules\mob\living\life.dm" -#include "code\modules\mob\living\living.dm" -#include "code\modules\mob\living\living_active_block.dm" -#include "code\modules\mob\living\living_active_parry.dm" -#include "code\modules\mob\living\living_block.dm" -#include "code\modules\mob\living\living_blocking_parrying.dm" -#include "code\modules\mob\living\living_defense.dm" -#include "code\modules\mob\living\living_defines.dm" -#include "code\modules\mob\living\living_mobility.dm" -#include "code\modules\mob\living\living_movement.dm" -#include "code\modules\mob\living\living_signals.dm" -#include "code\modules\mob\living\living_sprint.dm" -#include "code\modules\mob\living\login.dm" -#include "code\modules\mob\living\logout.dm" -#include "code\modules\mob\living\say.dm" -#include "code\modules\mob\living\stamina_buffer.dm" -#include "code\modules\mob\living\status_procs.dm" -#include "code\modules\mob\living\taste.dm" -#include "code\modules\mob\living\update_icons.dm" -#include "code\modules\mob\living\ventcrawling.dm" -#include "code\modules\mob\living\brain\brain.dm" -#include "code\modules\mob\living\brain\brain_item.dm" -#include "code\modules\mob\living\brain\death.dm" -#include "code\modules\mob\living\brain\emote.dm" -#include "code\modules\mob\living\brain\life.dm" -#include "code\modules\mob\living\brain\MMI.dm" -#include "code\modules\mob\living\brain\posibrain.dm" -#include "code\modules\mob\living\brain\say.dm" -#include "code\modules\mob\living\brain\status_procs.dm" -#include "code\modules\mob\living\carbon\carbon.dm" -#include "code\modules\mob\living\carbon\carbon_active_parry.dm" -#include "code\modules\mob\living\carbon\carbon_defense.dm" -#include "code\modules\mob\living\carbon\carbon_defines.dm" -#include "code\modules\mob\living\carbon\carbon_movement.dm" -#include "code\modules\mob\living\carbon\carbon_sprint.dm" -#include "code\modules\mob\living\carbon\damage_procs.dm" -#include "code\modules\mob\living\carbon\death.dm" -#include "code\modules\mob\living\carbon\emote.dm" -#include "code\modules\mob\living\carbon\examine.dm" -#include "code\modules\mob\living\carbon\handle_corruption.dm" -#include "code\modules\mob\living\carbon\inventory.dm" -#include "code\modules\mob\living\carbon\life.dm" -#include "code\modules\mob\living\carbon\say.dm" -#include "code\modules\mob\living\carbon\status_procs.dm" -#include "code\modules\mob\living\carbon\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\alien.dm" -#include "code\modules\mob\living\carbon\alien\alien_defense.dm" -#include "code\modules\mob\living\carbon\alien\damage_procs.dm" -#include "code\modules\mob\living\carbon\alien\death.dm" -#include "code\modules\mob\living\carbon\alien\emote.dm" -#include "code\modules\mob\living\carbon\alien\life.dm" -#include "code\modules\mob\living\carbon\alien\login.dm" -#include "code\modules\mob\living\carbon\alien\logout.dm" -#include "code\modules\mob\living\carbon\alien\organs.dm" -#include "code\modules\mob\living\carbon\alien\say.dm" -#include "code\modules\mob\living\carbon\alien\screen.dm" -#include "code\modules\mob\living\carbon\alien\status_procs.dm" -#include "code\modules\mob\living\carbon\alien\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\death.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\praetorian.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" -#include "code\modules\mob\living\carbon\alien\larva\death.dm" -#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" -#include "code\modules\mob\living\carbon\alien\larva\life.dm" -#include "code\modules\mob\living\carbon\alien\larva\powers.dm" -#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" -#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" -#include "code\modules\mob\living\carbon\human\damage_procs.dm" -#include "code\modules\mob\living\carbon\human\death.dm" -#include "code\modules\mob\living\carbon\human\dummy.dm" -#include "code\modules\mob\living\carbon\human\emote.dm" -#include "code\modules\mob\living\carbon\human\examine.dm" -#include "code\modules\mob\living\carbon\human\human.dm" -#include "code\modules\mob\living\carbon\human\human_block.dm" -#include "code\modules\mob\living\carbon\human\human_defense.dm" -#include "code\modules\mob\living\carbon\human\human_defines.dm" -#include "code\modules\mob\living\carbon\human\human_helpers.dm" -#include "code\modules\mob\living\carbon\human\human_mobility.dm" -#include "code\modules\mob\living\carbon\human\human_movement.dm" -#include "code\modules\mob\living\carbon\human\inventory.dm" -#include "code\modules\mob\living\carbon\human\life.dm" -#include "code\modules\mob\living\carbon\human\login.dm" -#include "code\modules\mob\living\carbon\human\physiology.dm" -#include "code\modules\mob\living\carbon\human\say.dm" -#include "code\modules\mob\living\carbon\human\species.dm" -#include "code\modules\mob\living\carbon\human\status_procs.dm" -#include "code\modules\mob\living\carbon\human\typing_indicator.dm" -#include "code\modules\mob\living\carbon\human\update_icons.dm" -#include "code\modules\mob\living\carbon\human\innate_abilities\blobform.dm" -#include "code\modules\mob\living\carbon\human\innate_abilities\customization.dm" -#include "code\modules\mob\living\carbon\human\innate_abilities\limb_regeneration.dm" -#include "code\modules\mob\living\carbon\human\species_types\abductor.dm" -#include "code\modules\mob\living\carbon\human\species_types\android.dm" -#include "code\modules\mob\living\carbon\human\species_types\angel.dm" -#include "code\modules\mob\living\carbon\human\species_types\anthropomorph.dm" -#include "code\modules\mob\living\carbon\human\species_types\arachnid.dm" -#include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" -#include "code\modules\mob\living\carbon\human\species_types\corporate.dm" -#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" -#include "code\modules\mob\living\carbon\human\species_types\dwarves.dm" -#include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" -#include "code\modules\mob\living\carbon\human\species_types\felinid.dm" -#include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\golems.dm" -#include "code\modules\mob\living\carbon\human\species_types\humans.dm" -#include "code\modules\mob\living\carbon\human\species_types\ipc.dm" -#include "code\modules\mob\living\carbon\human\species_types\jellypeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\lizardpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\mushpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\plasmamen.dm" -#include "code\modules\mob\living\carbon\human\species_types\podpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\shadowpeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\skeletons.dm" -#include "code\modules\mob\living\carbon\human\species_types\synthliz.dm" -#include "code\modules\mob\living\carbon\human\species_types\synths.dm" -#include "code\modules\mob\living\carbon\human\species_types\vampire.dm" -#include "code\modules\mob\living\carbon\human\species_types\xeno.dm" -#include "code\modules\mob\living\carbon\human\species_types\zombies.dm" -#include "code\modules\mob\living\carbon\monkey\combat.dm" -#include "code\modules\mob\living\carbon\monkey\death.dm" -#include "code\modules\mob\living\carbon\monkey\inventory.dm" -#include "code\modules\mob\living\carbon\monkey\life.dm" -#include "code\modules\mob\living\carbon\monkey\monkey.dm" -#include "code\modules\mob\living\carbon\monkey\monkey_defense.dm" -#include "code\modules\mob\living\carbon\monkey\punpun.dm" -#include "code\modules\mob\living\carbon\monkey\update_icons.dm" -#include "code\modules\mob\living\silicon\custom_holoform.dm" -#include "code\modules\mob\living\silicon\damage_procs.dm" -#include "code\modules\mob\living\silicon\death.dm" -#include "code\modules\mob\living\silicon\examine.dm" -#include "code\modules\mob\living\silicon\laws.dm" -#include "code\modules\mob\living\silicon\login.dm" -#include "code\modules\mob\living\silicon\say.dm" -#include "code\modules\mob\living\silicon\silicon.dm" -#include "code\modules\mob\living\silicon\silicon_defense.dm" -#include "code\modules\mob\living\silicon\silicon_movement.dm" -#include "code\modules\mob\living\silicon\ai\ai.dm" -#include "code\modules\mob\living\silicon\ai\ai_defense.dm" -#include "code\modules\mob\living\silicon\ai\ai_portrait_picker.dm" -#include "code\modules\mob\living\silicon\ai\death.dm" -#include "code\modules\mob\living\silicon\ai\examine.dm" -#include "code\modules\mob\living\silicon\ai\laws.dm" -#include "code\modules\mob\living\silicon\ai\life.dm" -#include "code\modules\mob\living\silicon\ai\login.dm" -#include "code\modules\mob\living\silicon\ai\logout.dm" -#include "code\modules\mob\living\silicon\ai\multicam.dm" -#include "code\modules\mob\living\silicon\ai\say.dm" -#include "code\modules\mob\living\silicon\ai\vox_sounds.dm" -#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" -#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" -#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" -#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" -#include "code\modules\mob\living\silicon\pai\death.dm" -#include "code\modules\mob\living\silicon\pai\pai.dm" -#include "code\modules\mob\living\silicon\pai\pai_defense.dm" -#include "code\modules\mob\living\silicon\pai\pai_shell.dm" -#include "code\modules\mob\living\silicon\pai\personality.dm" -#include "code\modules\mob\living\silicon\pai\say.dm" -#include "code\modules\mob\living\silicon\pai\software.dm" -#include "code\modules\mob\living\silicon\pai\update_icon.dm" -#include "code\modules\mob\living\silicon\robot\death.dm" -#include "code\modules\mob\living\silicon\robot\emote.dm" -#include "code\modules\mob\living\silicon\robot\examine.dm" -#include "code\modules\mob\living\silicon\robot\inventory.dm" -#include "code\modules\mob\living\silicon\robot\laws.dm" -#include "code\modules\mob\living\silicon\robot\life.dm" -#include "code\modules\mob\living\silicon\robot\login.dm" -#include "code\modules\mob\living\silicon\robot\robot.dm" -#include "code\modules\mob\living\silicon\robot\robot_defense.dm" -#include "code\modules\mob\living\silicon\robot\robot_defines.dm" -#include "code\modules\mob\living\silicon\robot\robot_mobility.dm" -#include "code\modules\mob\living\silicon\robot\robot_modules.dm" -#include "code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "code\modules\mob\living\silicon\robot\robot_sprint.dm" -#include "code\modules\mob\living\silicon\robot\say.dm" -#include "code\modules\mob\living\silicon\robot\update_icons.dm" -#include "code\modules\mob\living\simple_animal\animal_defense.dm" -#include "code\modules\mob\living\simple_animal\astral.dm" -#include "code\modules\mob\living\simple_animal\constructs.dm" -#include "code\modules\mob\living\simple_animal\corpse.dm" -#include "code\modules\mob\living\simple_animal\damage_procs.dm" -#include "code\modules\mob\living\simple_animal\eldritch_demons.dm" -#include "code\modules\mob\living\simple_animal\parrot.dm" -#include "code\modules\mob\living\simple_animal\pickle.dm" -#include "code\modules\mob\living\simple_animal\shade.dm" -#include "code\modules\mob\living\simple_animal\simple_animal.dm" -#include "code\modules\mob\living\simple_animal\simple_animal_vr.dm" -#include "code\modules\mob\living\simple_animal\simplemob_vore_values.dm" -#include "code\modules\mob\living\simple_animal\status_procs.dm" -#include "code\modules\mob\living\simple_animal\bot\bot.dm" -#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" -#include "code\modules\mob\living\simple_animal\bot\construction.dm" -#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" -#include "code\modules\mob\living\simple_animal\bot\firebot.dm" -#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" -#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" -#include "code\modules\mob\living\simple_animal\bot\medbot.dm" -#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" -#include "code\modules\mob\living\simple_animal\bot\secbot.dm" -#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" -#include "code\modules\mob\living\simple_animal\friendly\bumbles.dm" -#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" -#include "code\modules\mob\living\simple_animal\friendly\cat.dm" -#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" -#include "code\modules\mob\living\simple_animal\friendly\crab.dm" -#include "code\modules\mob\living\simple_animal\friendly\dog.dm" -#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" -#include "code\modules\mob\living\simple_animal\friendly\fox.dm" -#include "code\modules\mob\living\simple_animal\friendly\gondola.dm" -#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" -#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" -#include "code\modules\mob\living\simple_animal\friendly\panda.dm" -#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" -#include "code\modules\mob\living\simple_animal\friendly\pet.dm" -#include "code\modules\mob\living\simple_animal\friendly\plushie.dm" -#include "code\modules\mob\living\simple_animal\friendly\possum.dm" -#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" -#include "code\modules\mob\living\simple_animal\friendly\snake.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\extra_drone_types.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\interaction.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\inventory.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\say.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\verbs.dm" -#include "code\modules\mob\living\simple_animal\friendly\drone\visuals_icons.dm" -#include "code\modules\mob\living\simple_animal\guardian\guardian.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\assassin.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\charger.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\dextrous.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\explosive.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\fire.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\gravitokinetic.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\lightning.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\protector.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\ranged.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\standard.dm" -#include "code\modules\mob\living\simple_animal\guardian\types\support.dm" -#include "code\modules\mob\living\simple_animal\hostile\alien.dm" -#include "code\modules\mob\living\simple_animal\hostile\banana_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\bear.dm" -#include "code\modules\mob\living\simple_animal\hostile\bees.dm" -#include "code\modules\mob\living\simple_animal\hostile\bread.dm" -#include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" -#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" -#include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" -#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" -#include "code\modules\mob\living\simple_animal\hostile\floor_cluwne.dm" -#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\goose.dm" -#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" -#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" -#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" -#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" -#include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" -#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" -#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" -#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" -#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" -#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" -#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" -#include "code\modules\mob\living\simple_animal\hostile\russian.dm" -#include "code\modules\mob\living\simple_animal\hostile\sharks.dm" -#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" -#include "code\modules\mob\living\simple_animal\hostile\statue.dm" -#include "code\modules\mob\living\simple_animal\hostile\stickman.dm" -#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" -#include "code\modules\mob\living\simple_animal\hostile\tree.dm" -#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" -#include "code\modules\mob\living\simple_animal\hostile\wizard.dm" -#include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" -#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" -#include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" -#include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" -#include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" -#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" -#include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\demonic_frost_miner.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon_vore.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\curse_blob.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobsterosity.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\wolf.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\elite.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\goliath_broodmother.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\herald.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\legionnaire.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\pandora.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\bat.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\frog.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\ghost.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\spaceman.dm" -#include "code\modules\mob\living\simple_animal\slime\death.dm" -#include "code\modules\mob\living\simple_animal\slime\emote.dm" -#include "code\modules\mob\living\simple_animal\slime\life.dm" -#include "code\modules\mob\living\simple_animal\slime\powers.dm" -#include "code\modules\mob\living\simple_animal\slime\say.dm" -#include "code\modules\mob\living\simple_animal\slime\slime.dm" -#include "code\modules\mob\living\simple_animal\slime\slime_mobility.dm" -#include "code\modules\mob\living\simple_animal\slime\subtypes.dm" -#include "code\modules\modular_computers\laptop_vendor.dm" -#include "code\modules\modular_computers\computers\_modular_computer_shared.dm" -#include "code\modules\modular_computers\computers\item\computer.dm" -#include "code\modules\modular_computers\computers\item\computer_components.dm" -#include "code\modules\modular_computers\computers\item\computer_damage.dm" -#include "code\modules\modular_computers\computers\item\computer_power.dm" -#include "code\modules\modular_computers\computers\item\computer_ui.dm" -#include "code\modules\modular_computers\computers\item\laptop.dm" -#include "code\modules\modular_computers\computers\item\laptop_presets.dm" -#include "code\modules\modular_computers\computers\item\processor.dm" -#include "code\modules\modular_computers\computers\item\tablet.dm" -#include "code\modules\modular_computers\computers\item\tablet_presets.dm" -#include "code\modules\modular_computers\computers\machinery\console_presets.dm" -#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" -#include "code\modules\modular_computers\computers\machinery\modular_console.dm" -#include "code\modules\modular_computers\file_system\computer_file.dm" -#include "code\modules\modular_computers\file_system\data.dm" -#include "code\modules\modular_computers\file_system\program.dm" -#include "code\modules\modular_computers\file_system\program_events.dm" -#include "code\modules\modular_computers\file_system\programs\airestorer.dm" -#include "code\modules\modular_computers\file_system\programs\alarm.dm" -#include "code\modules\modular_computers\file_system\programs\arcade.dm" -#include "code\modules\modular_computers\file_system\programs\atmosscan.dm" -#include "code\modules\modular_computers\file_system\programs\borg_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\budgetordering.dm" -#include "code\modules\modular_computers\file_system\programs\card.dm" -#include "code\modules\modular_computers\file_system\programs\cargobounty.dm" -#include "code\modules\modular_computers\file_system\programs\configurator.dm" -#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm" -#include "code\modules\modular_computers\file_system\programs\file_browser.dm" -#include "code\modules\modular_computers\file_system\programs\jobmanagement.dm" -#include "code\modules\modular_computers\file_system\programs\ntdownloader.dm" -#include "code\modules\modular_computers\file_system\programs\ntmonitor.dm" -#include "code\modules\modular_computers\file_system\programs\ntnrc_client.dm" -#include "code\modules\modular_computers\file_system\programs\powermonitor.dm" -#include "code\modules\modular_computers\file_system\programs\radar.dm" -#include "code\modules\modular_computers\file_system\programs\robocontrol.dm" -#include "code\modules\modular_computers\file_system\programs\robotact.dm" -#include "code\modules\modular_computers\file_system\programs\secureye.dm" -#include "code\modules\modular_computers\file_system\programs\sm_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\contract_uplink.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" -#include "code\modules\modular_computers\hardware\_hardware.dm" -#include "code\modules\modular_computers\hardware\ai_slot.dm" -#include "code\modules\modular_computers\hardware\battery_module.dm" -#include "code\modules\modular_computers\hardware\card_slot.dm" -#include "code\modules\modular_computers\hardware\CPU.dm" -#include "code\modules\modular_computers\hardware\hard_drive.dm" -#include "code\modules\modular_computers\hardware\network_card.dm" -#include "code\modules\modular_computers\hardware\portable_disk.dm" -#include "code\modules\modular_computers\hardware\printer.dm" -#include "code\modules\modular_computers\hardware\recharger.dm" -#include "code\modules\modular_computers\hardware\sensor_package.dm" -#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" -#include "code\modules\movespeed\_movespeed_modifier.dm" -#include "code\modules\movespeed\modifiers\components.dm" -#include "code\modules\movespeed\modifiers\innate.dm" -#include "code\modules\movespeed\modifiers\items.dm" -#include "code\modules\movespeed\modifiers\misc.dm" -#include "code\modules\movespeed\modifiers\mobs.dm" -#include "code\modules\movespeed\modifiers\reagents.dm" -#include "code\modules\movespeed\modifiers\status_effects.dm" -#include "code\modules\newscaster\_news.dm" -#include "code\modules\newscaster\feed_channel.dm" -#include "code\modules\newscaster\feed_comment.dm" -#include "code\modules\newscaster\feed_message.dm" -#include "code\modules\newscaster\ghostread.dm" -#include "code\modules\newscaster\news_network.dm" -#include "code\modules\newscaster\newscaster_machine.dm" -#include "code\modules\newscaster\newspaper.dm" -#include "code\modules\newscaster\wanted_message.dm" -#include "code\modules\ninja\__ninjaDefines.dm" -#include "code\modules\ninja\energy_katana.dm" -#include "code\modules\ninja\ninja_event.dm" -#include "code\modules\ninja\outfit.dm" -#include "code\modules\ninja\suit\gloves.dm" -#include "code\modules\ninja\suit\head.dm" -#include "code\modules\ninja\suit\mask.dm" -#include "code\modules\ninja\suit\ninjaDrainAct.dm" -#include "code\modules\ninja\suit\shoes.dm" -#include "code\modules\ninja\suit\suit.dm" -#include "code\modules\ninja\suit\suit_attackby.dm" -#include "code\modules\ninja\suit\suit_initialisation.dm" -#include "code\modules\ninja\suit\suit_process.dm" -#include "code\modules\ninja\suit\n_suit_verbs\energy_net_nets.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_adrenaline.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_cost_check.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_empulse.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_net.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_smoke.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_stars.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_stealth.dm" -#include "code\modules\ninja\suit\n_suit_verbs\ninja_sword_recall.dm" -#include "code\modules\NTNet\netdata.dm" -#include "code\modules\NTNet\network.dm" -#include "code\modules\NTNet\relays.dm" -#include "code\modules\NTNet\services\_service.dm" -#include "code\modules\paperwork\carbonpaper.dm" -#include "code\modules\paperwork\clipboard.dm" -#include "code\modules\paperwork\contract.dm" -#include "code\modules\paperwork\filingcabinet.dm" -#include "code\modules\paperwork\folders.dm" -#include "code\modules\paperwork\handlabeler.dm" -#include "code\modules\paperwork\paper.dm" -#include "code\modules\paperwork\paper_cutter.dm" -#include "code\modules\paperwork\paper_premade.dm" -#include "code\modules\paperwork\paperbin.dm" -#include "code\modules\paperwork\paperplane.dm" -#include "code\modules\paperwork\pen.dm" -#include "code\modules\paperwork\photocopier.dm" -#include "code\modules\paperwork\stamps.dm" -#include "code\modules\paperwork\ticketmachine.dm" -#include "code\modules\photography\_pictures.dm" -#include "code\modules\photography\camera\camera.dm" -#include "code\modules\photography\camera\camera_image_capturing.dm" -#include "code\modules\photography\camera\film.dm" -#include "code\modules\photography\camera\other.dm" -#include "code\modules\photography\camera\silicon_camera.dm" -#include "code\modules\photography\photos\album.dm" -#include "code\modules\photography\photos\frame.dm" -#include "code\modules\photography\photos\photo.dm" -#include "code\modules\plumbing\ducts.dm" -#include "code\modules\plumbing\plumbers\_plumb_machinery.dm" -#include "code\modules\plumbing\plumbers\acclimator.dm" -#include "code\modules\plumbing\plumbers\autohydro.dm" -#include "code\modules\plumbing\plumbers\bottler.dm" -#include "code\modules\plumbing\plumbers\destroyer.dm" -#include "code\modules\plumbing\plumbers\fermenter.dm" -#include "code\modules\plumbing\plumbers\filter.dm" -#include "code\modules\plumbing\plumbers\grinder_chemical.dm" -#include "code\modules\plumbing\plumbers\medipenrefill.dm" -#include "code\modules\plumbing\plumbers\pill_press.dm" -#include "code\modules\plumbing\plumbers\pumps.dm" -#include "code\modules\plumbing\plumbers\reaction_chamber.dm" -#include "code\modules\plumbing\plumbers\splitters.dm" -#include "code\modules\plumbing\plumbers\synthesizer.dm" -#include "code\modules\pool\pool_controller.dm" -#include "code\modules\pool\pool_drain.dm" -#include "code\modules\pool\pool_effects.dm" -#include "code\modules\pool\pool_main.dm" -#include "code\modules\pool\pool_noodles.dm" -#include "code\modules\pool\pool_structures.dm" -#include "code\modules\pool\pool_wires.dm" -#include "code\modules\power\apc.dm" -#include "code\modules\power\cable.dm" -#include "code\modules\power\cell.dm" -#include "code\modules\power\floodlight.dm" -#include "code\modules\power\generator.dm" -#include "code\modules\power\gravitygenerator.dm" -#include "code\modules\power\lighting.dm" -#include "code\modules\power\monitor.dm" -#include "code\modules\power\multiz.dm" -#include "code\modules\power\port_gen.dm" -#include "code\modules\power\power.dm" -#include "code\modules\power\powernet.dm" -#include "code\modules\power\rtg.dm" -#include "code\modules\power\smes.dm" -#include "code\modules\power\solar.dm" -#include "code\modules\power\terminal.dm" -#include "code\modules\power\tracker.dm" -#include "code\modules\power\turbine.dm" -#include "code\modules\power\antimatter\containment_jar.dm" -#include "code\modules\power\antimatter\control.dm" -#include "code\modules\power\antimatter\shielding.dm" -#include "code\modules\power\singularity\collector.dm" -#include "code\modules\power\singularity\containment_field.dm" -#include "code\modules\power\singularity\emitter.dm" -#include "code\modules\power\singularity\field_generator.dm" -#include "code\modules\power\singularity\generator.dm" -#include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" -#include "code\modules\power\singularity\singularity.dm" -#include "code\modules\power\singularity\particle_accelerator\particle.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" -#include "code\modules\power\supermatter\supermatter.dm" -#include "code\modules\power\tesla\coil.dm" -#include "code\modules\power\tesla\energy_ball.dm" -#include "code\modules\power\tesla\generator.dm" -#include "code\modules\procedural_mapping\mapGenerator.dm" -#include "code\modules\procedural_mapping\mapGeneratorModule.dm" -#include "code\modules\procedural_mapping\mapGeneratorObj.dm" -#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" -#include "code\modules\procedural_mapping\mapGenerators\cellular.dm" -#include "code\modules\procedural_mapping\mapGenerators\cult.dm" -#include "code\modules\procedural_mapping\mapGenerators\lava_river.dm" -#include "code\modules\procedural_mapping\mapGenerators\lavaland.dm" -#include "code\modules\procedural_mapping\mapGenerators\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\repair.dm" -#include "code\modules\procedural_mapping\mapGenerators\shuttle.dm" -#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" -#include "code\modules\projectiles\gun.dm" -#include "code\modules\projectiles\pins.dm" -#include "code\modules\projectiles\projectile.dm" -#include "code\modules\projectiles\ammunition\_ammunition.dm" -#include "code\modules\projectiles\ammunition\_firing.dm" -#include "code\modules\projectiles\ammunition\ballistic\lmg.dm" -#include "code\modules\projectiles\ammunition\ballistic\pistol.dm" -#include "code\modules\projectiles\ammunition\ballistic\revolver.dm" -#include "code\modules\projectiles\ammunition\ballistic\rifle.dm" -#include "code\modules\projectiles\ammunition\ballistic\shotgun.dm" -#include "code\modules\projectiles\ammunition\ballistic\smg.dm" -#include "code\modules\projectiles\ammunition\ballistic\sniper.dm" -#include "code\modules\projectiles\ammunition\caseless\_caseless.dm" -#include "code\modules\projectiles\ammunition\caseless\arrow.dm" -#include "code\modules\projectiles\ammunition\caseless\ferromagnetic.dm" -#include "code\modules\projectiles\ammunition\caseless\foam.dm" -#include "code\modules\projectiles\ammunition\caseless\misc.dm" -#include "code\modules\projectiles\ammunition\caseless\rocket.dm" -#include "code\modules\projectiles\ammunition\energy\_energy.dm" -#include "code\modules\projectiles\ammunition\energy\ebow.dm" -#include "code\modules\projectiles\ammunition\energy\gravity.dm" -#include "code\modules\projectiles\ammunition\energy\laser.dm" -#include "code\modules\projectiles\ammunition\energy\lmg.dm" -#include "code\modules\projectiles\ammunition\energy\plasma.dm" -#include "code\modules\projectiles\ammunition\energy\plasma_cit.dm" -#include "code\modules\projectiles\ammunition\energy\portal.dm" -#include "code\modules\projectiles\ammunition\energy\special.dm" -#include "code\modules\projectiles\ammunition\energy\stun.dm" -#include "code\modules\projectiles\ammunition\special\magic.dm" -#include "code\modules\projectiles\ammunition\special\syringe.dm" -#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm" -#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" -#include "code\modules\projectiles\boxes_magazines\external\grenade.dm" -#include "code\modules\projectiles\boxes_magazines\external\lmg.dm" -#include "code\modules\projectiles\boxes_magazines\external\magweapon.dm" -#include "code\modules\projectiles\boxes_magazines\external\pistol.dm" -#include "code\modules\projectiles\boxes_magazines\external\rechargable.dm" -#include "code\modules\projectiles\boxes_magazines\external\rifle.dm" -#include "code\modules\projectiles\boxes_magazines\external\shotgun.dm" -#include "code\modules\projectiles\boxes_magazines\external\smg.dm" -#include "code\modules\projectiles\boxes_magazines\external\sniper.dm" -#include "code\modules\projectiles\boxes_magazines\external\toy.dm" -#include "code\modules\projectiles\boxes_magazines\internal\_cylinder.dm" -#include "code\modules\projectiles\boxes_magazines\internal\_internal.dm" -#include "code\modules\projectiles\boxes_magazines\internal\bow.dm" -#include "code\modules\projectiles\boxes_magazines\internal\derringer.dm" -#include "code\modules\projectiles\boxes_magazines\internal\grenade.dm" -#include "code\modules\projectiles\boxes_magazines\internal\misc.dm" -#include "code\modules\projectiles\boxes_magazines\internal\revolver.dm" -#include "code\modules\projectiles\boxes_magazines\internal\rifle.dm" -#include "code\modules\projectiles\boxes_magazines\internal\shotgun.dm" -#include "code\modules\projectiles\boxes_magazines\internal\toy.dm" -#include "code\modules\projectiles\guns\ballistic.dm" -#include "code\modules\projectiles\guns\energy.dm" -#include "code\modules\projectiles\guns\magic.dm" -#include "code\modules\projectiles\guns\ballistic\automatic.dm" -#include "code\modules\projectiles\guns\ballistic\bow.dm" -#include "code\modules\projectiles\guns\ballistic\derringer.dm" -#include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" -#include "code\modules\projectiles\guns\ballistic\launchers.dm" -#include "code\modules\projectiles\guns\ballistic\magweapon.dm" -#include "code\modules\projectiles\guns\ballistic\pistol.dm" -#include "code\modules\projectiles\guns\ballistic\revolver.dm" -#include "code\modules\projectiles\guns\ballistic\shotgun.dm" -#include "code\modules\projectiles\guns\ballistic\toy.dm" -#include "code\modules\projectiles\guns\energy\dueling.dm" -#include "code\modules\projectiles\guns\energy\energy_gun.dm" -#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" -#include "code\modules\projectiles\guns\energy\laser.dm" -#include "code\modules\projectiles\guns\energy\megabuster.dm" -#include "code\modules\projectiles\guns\energy\mounted.dm" -#include "code\modules\projectiles\guns\energy\plasma_cit.dm" -#include "code\modules\projectiles\guns\energy\pulse.dm" -#include "code\modules\projectiles\guns\energy\special.dm" -#include "code\modules\projectiles\guns\energy\stun.dm" -#include "code\modules\projectiles\guns\magic\motivation.dm" -#include "code\modules\projectiles\guns\magic\spell_book.dm" -#include "code\modules\projectiles\guns\magic\staff.dm" -#include "code\modules\projectiles\guns\magic\wand.dm" -#include "code\modules\projectiles\guns\misc\beam_rifle.dm" -#include "code\modules\projectiles\guns\misc\blastcannon.dm" -#include "code\modules\projectiles\guns\misc\chameleon.dm" -#include "code\modules\projectiles\guns\misc\chem_gun.dm" -#include "code\modules\projectiles\guns\misc\grenade_launcher.dm" -#include "code\modules\projectiles\guns\misc\medbeam.dm" -#include "code\modules\projectiles\guns\misc\syringe_gun.dm" -#include "code\modules\projectiles\projectile\beams.dm" -#include "code\modules\projectiles\projectile\bullets.dm" -#include "code\modules\projectiles\projectile\magic.dm" -#include "code\modules\projectiles\projectile\megabuster.dm" -#include "code\modules\projectiles\projectile\plasma.dm" -#include "code\modules\projectiles\projectile\bullets\_incendiary.dm" -#include "code\modules\projectiles\projectile\bullets\dart_syringe.dm" -#include "code\modules\projectiles\projectile\bullets\dnainjector.dm" -#include "code\modules\projectiles\projectile\bullets\ferromagnetic.dm" -#include "code\modules\projectiles\projectile\bullets\grenade.dm" -#include "code\modules\projectiles\projectile\bullets\lmg.dm" -#include "code\modules\projectiles\projectile\bullets\pistol.dm" -#include "code\modules\projectiles\projectile\bullets\revolver.dm" -#include "code\modules\projectiles\projectile\bullets\rifle.dm" -#include "code\modules\projectiles\projectile\bullets\shotgun.dm" -#include "code\modules\projectiles\projectile\bullets\smg.dm" -#include "code\modules\projectiles\projectile\bullets\sniper.dm" -#include "code\modules\projectiles\projectile\bullets\special.dm" -#include "code\modules\projectiles\projectile\energy\_energy.dm" -#include "code\modules\projectiles\projectile\energy\ebow.dm" -#include "code\modules\projectiles\projectile\energy\misc.dm" -#include "code\modules\projectiles\projectile\energy\net_snare.dm" -#include "code\modules\projectiles\projectile\energy\nuclear_particle.dm" -#include "code\modules\projectiles\projectile\energy\stun.dm" -#include "code\modules\projectiles\projectile\energy\tesla.dm" -#include "code\modules\projectiles\projectile\magic\spellcard.dm" -#include "code\modules\projectiles\projectile\reusable\_reusable.dm" -#include "code\modules\projectiles\projectile\reusable\arrow.dm" -#include "code\modules\projectiles\projectile\reusable\foam_dart.dm" -#include "code\modules\projectiles\projectile\reusable\magspear.dm" -#include "code\modules\projectiles\projectile\special\curse.dm" -#include "code\modules\projectiles\projectile\special\floral.dm" -#include "code\modules\projectiles\projectile\special\gravity.dm" -#include "code\modules\projectiles\projectile\special\hallucination.dm" -#include "code\modules\projectiles\projectile\special\ion.dm" -#include "code\modules\projectiles\projectile\special\judgement_cut.dm" -#include "code\modules\projectiles\projectile\special\meteor.dm" -#include "code\modules\projectiles\projectile\special\mindflayer.dm" -#include "code\modules\projectiles\projectile\special\neurotoxin.dm" -#include "code\modules\projectiles\projectile\special\plasma.dm" -#include "code\modules\projectiles\projectile\special\rocket.dm" -#include "code\modules\projectiles\projectile\special\temperature.dm" -#include "code\modules\projectiles\projectile\special\wormhole.dm" -#include "code\modules\reagents\chem_splash.dm" -#include "code\modules\reagents\chem_wiki_render.dm" -#include "code\modules\reagents\reagent_containers.dm" -#include "code\modules\reagents\reagent_dispenser.dm" -#include "code\modules\reagents\chemistry\colors.dm" -#include "code\modules\reagents\chemistry\holder.dm" -#include "code\modules\reagents\chemistry\reagents.dm" -#include "code\modules\reagents\chemistry\recipes.dm" -#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" -#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" -#include "code\modules\reagents\chemistry\machinery\chem_master.dm" -#include "code\modules\reagents\chemistry\machinery\chem_synthesizer.dm" -#include "code\modules\reagents\chemistry\machinery\pandemic.dm" -#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" -#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm" -#include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\drink_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\drug_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\food_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\impure_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\medicine_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\other_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm" -#include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm" -#include "code\modules\reagents\chemistry\recipes\drugs.dm" -#include "code\modules\reagents\chemistry\recipes\medicine.dm" -#include "code\modules\reagents\chemistry\recipes\others.dm" -#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" -#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" -#include "code\modules\reagents\chemistry\recipes\special.dm" -#include "code\modules\reagents\chemistry\recipes\toxins.dm" -#include "code\modules\reagents\reagent_containers\blood_pack.dm" -#include "code\modules\reagents\reagent_containers\borghypo.dm" -#include "code\modules\reagents\reagent_containers\bottle.dm" -#include "code\modules\reagents\reagent_containers\chem_pack.dm" -#include "code\modules\reagents\reagent_containers\dropper.dm" -#include "code\modules\reagents\reagent_containers\glass.dm" -#include "code\modules\reagents\reagent_containers\hypospray.dm" -#include "code\modules\reagents\reagent_containers\hypovial.dm" -#include "code\modules\reagents\reagent_containers\maunamug.dm" -#include "code\modules\reagents\reagent_containers\medspray.dm" -#include "code\modules\reagents\reagent_containers\patch.dm" -#include "code\modules\reagents\reagent_containers\pill.dm" -#include "code\modules\reagents\reagent_containers\rags.dm" -#include "code\modules\reagents\reagent_containers\sleeper_buffer.dm" -#include "code\modules\reagents\reagent_containers\spray.dm" -#include "code\modules\reagents\reagent_containers\syringes.dm" -#include "code\modules\recycling\conveyor2.dm" -#include "code\modules\recycling\sortingmachinery.dm" -#include "code\modules\recycling\disposal\bin.dm" -#include "code\modules\recycling\disposal\construction.dm" -#include "code\modules\recycling\disposal\eject.dm" -#include "code\modules\recycling\disposal\holder.dm" -#include "code\modules\recycling\disposal\multiz.dm" -#include "code\modules\recycling\disposal\outlet.dm" -#include "code\modules\recycling\disposal\pipe.dm" -#include "code\modules\recycling\disposal\pipe_sorting.dm" -#include "code\modules\research\bepis.dm" -#include "code\modules\research\designs.dm" -#include "code\modules\research\destructive_analyzer.dm" -#include "code\modules\research\experimentor.dm" -#include "code\modules\research\rdconsole.dm" -#include "code\modules\research\rdmachines.dm" -#include "code\modules\research\research_disk.dm" -#include "code\modules\research\server.dm" -#include "code\modules\research\stock_parts.dm" -#include "code\modules\research\anomaly\anomaly_core.dm" -#include "code\modules\research\anomaly\explosive_compressor.dm" -#include "code\modules\research\anomaly\raw_anomaly.dm" -#include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autobotter_designs.dm" -#include "code\modules\research\designs\autoylathe_designs.dm" -#include "code\modules\research\designs\biogenerator_designs.dm" -#include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\computer_part_designs.dm" -#include "code\modules\research\designs\electronics_designs.dm" -#include "code\modules\research\designs\equipment_designs.dm" -#include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\mecha_designs.dm" -#include "code\modules\research\designs\mechfabricator_designs.dm" -#include "code\modules\research\designs\medical_designs.dm" -#include "code\modules\research\designs\mining_designs.dm" -#include "code\modules\research\designs\misc_designs.dm" -#include "code\modules\research\designs\nanite_designs.dm" -#include "code\modules\research\designs\power_designs.dm" -#include "code\modules\research\designs\smelting_designs.dm" -#include "code\modules\research\designs\stock_parts_designs.dm" -#include "code\modules\research\designs\telecomms_designs.dm" -#include "code\modules\research\designs\tool_designs.dm" -#include "code\modules\research\designs\weapon_designs.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" -#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" -#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" -#include "code\modules\research\machinery\_production.dm" -#include "code\modules\research\machinery\circuit_imprinter.dm" -#include "code\modules\research\machinery\departmental_circuit_imprinter.dm" -#include "code\modules\research\machinery\departmental_protolathe.dm" -#include "code\modules\research\machinery\departmental_techfab.dm" -#include "code\modules\research\machinery\protolathe.dm" -#include "code\modules\research\machinery\techfab.dm" -#include "code\modules\research\nanites\nanite_chamber.dm" -#include "code\modules\research\nanites\nanite_chamber_computer.dm" -#include "code\modules\research\nanites\nanite_cloud_controller.dm" -#include "code\modules\research\nanites\nanite_misc_items.dm" -#include "code\modules\research\nanites\nanite_program_hub.dm" -#include "code\modules\research\nanites\nanite_programmer.dm" -#include "code\modules\research\nanites\nanite_programs.dm" -#include "code\modules\research\nanites\nanite_remote.dm" -#include "code\modules\research\nanites\program_disks.dm" -#include "code\modules\research\nanites\public_chamber.dm" -#include "code\modules\research\nanites\rules.dm" -#include "code\modules\research\nanites\extra_settings\_extra_setting.dm" -#include "code\modules\research\nanites\extra_settings\boolean.dm" -#include "code\modules\research\nanites\extra_settings\number.dm" -#include "code\modules\research\nanites\extra_settings\text.dm" -#include "code\modules\research\nanites\extra_settings\type.dm" -#include "code\modules\research\nanites\nanite_programs\buffing.dm" -#include "code\modules\research\nanites\nanite_programs\healing.dm" -#include "code\modules\research\nanites\nanite_programs\protocols.dm" -#include "code\modules\research\nanites\nanite_programs\rogue.dm" -#include "code\modules\research\nanites\nanite_programs\sensor.dm" -#include "code\modules\research\nanites\nanite_programs\suppression.dm" -#include "code\modules\research\nanites\nanite_programs\utility.dm" -#include "code\modules\research\nanites\nanite_programs\weapon.dm" -#include "code\modules\research\techweb\__techweb_helpers.dm" -#include "code\modules\research\techweb\_techweb.dm" -#include "code\modules\research\techweb\_techweb_node.dm" -#include "code\modules\research\techweb\nodes\alien_nodes.dm" -#include "code\modules\research\techweb\nodes\bepis_nodes.dm" -#include "code\modules\research\techweb\nodes\biotech_nodes.dm" -#include "code\modules\research\techweb\nodes\bluespace_nodes.dm" -#include "code\modules\research\techweb\nodes\computer_hud_nodes.dm" -#include "code\modules\research\techweb\nodes\engineering_nodes.dm" -#include "code\modules\research\techweb\nodes\export_nodes.dm" -#include "code\modules\research\techweb\nodes\mecha_nodes.dm" -#include "code\modules\research\techweb\nodes\medical_nodes.dm" -#include "code\modules\research\techweb\nodes\misc_nodes.dm" -#include "code\modules\research\techweb\nodes\nanites_nodes.dm" -#include "code\modules\research\techweb\nodes\robotics_nodes.dm" -#include "code\modules\research\techweb\nodes\syndicate_nodes.dm" -#include "code\modules\research\techweb\nodes\tools_nodes.dm" -#include "code\modules\research\techweb\nodes\weaponry_nodes.dm" -#include "code\modules\research\xenobiology\xenobio_camera.dm" -#include "code\modules\research\xenobiology\xenobiology.dm" -#include "code\modules\research\xenobiology\crossbreeding\__corecross.dm" -#include "code\modules\research\xenobiology\crossbreeding\_clothing.dm" -#include "code\modules\research\xenobiology\crossbreeding\_misc.dm" -#include "code\modules\research\xenobiology\crossbreeding\_mobs.dm" -#include "code\modules\research\xenobiology\crossbreeding\_status_effects.dm" -#include "code\modules\research\xenobiology\crossbreeding\_weapons.dm" -#include "code\modules\research\xenobiology\crossbreeding\burning.dm" -#include "code\modules\research\xenobiology\crossbreeding\charged.dm" -#include "code\modules\research\xenobiology\crossbreeding\chilling.dm" -#include "code\modules\research\xenobiology\crossbreeding\consuming.dm" -#include "code\modules\research\xenobiology\crossbreeding\industrial.dm" -#include "code\modules\research\xenobiology\crossbreeding\prismatic.dm" -#include "code\modules\research\xenobiology\crossbreeding\recurring.dm" -#include "code\modules\research\xenobiology\crossbreeding\regenerative.dm" -#include "code\modules\research\xenobiology\crossbreeding\reproductive.dm" -#include "code\modules\research\xenobiology\crossbreeding\selfsustaining.dm" -#include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" -#include "code\modules\ruins\lavaland_ruin_code.dm" -#include "code\modules\ruins\icemoonruin_code\hotsprings.dm" -#include "code\modules\ruins\icemoonruin_code\library.dm" -#include "code\modules\ruins\lavalandruin_code\alien_nest.dm" -#include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" -#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" -#include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" -#include "code\modules\ruins\lavalandruin_code\puzzle.dm" -#include "code\modules\ruins\lavalandruin_code\sloth.dm" -#include "code\modules\ruins\lavalandruin_code\surface.dm" -#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" -#include "code\modules\ruins\objects_and_mobs\ash_walker_den.dm" -#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" -#include "code\modules\ruins\objects_and_mobs\sin_ruins.dm" -#include "code\modules\ruins\spaceruin_code\asteroid4.dm" -#include "code\modules\ruins\spaceruin_code\bigderelict1.dm" -#include "code\modules\ruins\spaceruin_code\caravanambush.dm" -#include "code\modules\ruins\spaceruin_code\clericsden.dm" -#include "code\modules\ruins\spaceruin_code\cloning_lab.dm" -#include "code\modules\ruins\spaceruin_code\crashedclownship.dm" -#include "code\modules\ruins\spaceruin_code\crashedship.dm" -#include "code\modules\ruins\spaceruin_code\deepstorage.dm" -#include "code\modules\ruins\spaceruin_code\DJstation.dm" -#include "code\modules\ruins\spaceruin_code\hilbertshotel.dm" -#include "code\modules\ruins\spaceruin_code\listeningstation.dm" -#include "code\modules\ruins\spaceruin_code\miracle.dm" -#include "code\modules\ruins\spaceruin_code\oldstation.dm" -#include "code\modules\ruins\spaceruin_code\originalcontent.dm" -#include "code\modules\ruins\spaceruin_code\skelter.dm" -#include "code\modules\ruins\spaceruin_code\spacehotel.dm" -#include "code\modules\ruins\spaceruin_code\TheDerelict.dm" -#include "code\modules\ruins\spaceruin_code\whiteshipruin_box.dm" -#include "code\modules\security_levels\keycard_authentication.dm" -#include "code\modules\security_levels\security_levels.dm" -#include "code\modules\shielding\helpers.dm" -#include "code\modules\shuttle\arrivals.dm" -#include "code\modules\shuttle\assault_pod.dm" -#include "code\modules\shuttle\computer.dm" -#include "code\modules\shuttle\custom_shuttle.dm" -#include "code\modules\shuttle\docking.dm" -#include "code\modules\shuttle\elevator.dm" -#include "code\modules\shuttle\emergency.dm" -#include "code\modules\shuttle\ferry.dm" -#include "code\modules\shuttle\manipulator.dm" -#include "code\modules\shuttle\monastery.dm" -#include "code\modules\shuttle\navigation_computer.dm" -#include "code\modules\shuttle\on_move.dm" -#include "code\modules\shuttle\ripple.dm" -#include "code\modules\shuttle\shuttle.dm" -#include "code\modules\shuttle\shuttle_rotate.dm" -#include "code\modules\shuttle\snaxi.dm" -#include "code\modules\shuttle\spaceship_navigation_beacon.dm" -#include "code\modules\shuttle\special.dm" -#include "code\modules\shuttle\supply.dm" -#include "code\modules\shuttle\syndicate.dm" -#include "code\modules\shuttle\white_ship.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_actions.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_console.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" -#include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" -#include "code\modules\smithing\anvil.dm" -#include "code\modules\smithing\finished_items.dm" -#include "code\modules\smithing\furnace.dm" -#include "code\modules\smithing\smithed_items.dm" -#include "code\modules\spells\spell.dm" -#include "code\modules\spells\spell_types\aimed.dm" -#include "code\modules\spells\spell_types\area_teleport.dm" -#include "code\modules\spells\spell_types\bloodcrawl.dm" -#include "code\modules\spells\spell_types\charge.dm" -#include "code\modules\spells\spell_types\cluwnecurse.dm" -#include "code\modules\spells\spell_types\cone_spells.dm" -#include "code\modules\spells\spell_types\conjure.dm" -#include "code\modules\spells\spell_types\construct_spells.dm" -#include "code\modules\spells\spell_types\curse.dm" -#include "code\modules\spells\spell_types\devil.dm" -#include "code\modules\spells\spell_types\devil_boons.dm" -#include "code\modules\spells\spell_types\dumbfire.dm" -#include "code\modules\spells\spell_types\emplosion.dm" -#include "code\modules\spells\spell_types\ethereal_jaunt.dm" -#include "code\modules\spells\spell_types\explosion.dm" -#include "code\modules\spells\spell_types\forcewall.dm" -#include "code\modules\spells\spell_types\genetic.dm" -#include "code\modules\spells\spell_types\godhand.dm" -#include "code\modules\spells\spell_types\infinite_guns.dm" -#include "code\modules\spells\spell_types\inflict_handler.dm" -#include "code\modules\spells\spell_types\knock.dm" -#include "code\modules\spells\spell_types\lichdom.dm" -#include "code\modules\spells\spell_types\lightning.dm" -#include "code\modules\spells\spell_types\mime.dm" -#include "code\modules\spells\spell_types\projectile.dm" -#include "code\modules\spells\spell_types\rightandwrong.dm" -#include "code\modules\spells\spell_types\rod_form.dm" -#include "code\modules\spells\spell_types\santa.dm" -#include "code\modules\spells\spell_types\shadow_walk.dm" -#include "code\modules\spells\spell_types\shapeshift.dm" -#include "code\modules\spells\spell_types\spacetime_distortion.dm" -#include "code\modules\spells\spell_types\summonitem.dm" -#include "code\modules\spells\spell_types\taeclowndo.dm" -#include "code\modules\spells\spell_types\telepathy.dm" -#include "code\modules\spells\spell_types\the_traps.dm" -#include "code\modules\spells\spell_types\togglebuff.dm" -#include "code\modules\spells\spell_types\touch_attacks.dm" -#include "code\modules\spells\spell_types\trigger.dm" -#include "code\modules\spells\spell_types\turf_teleport.dm" -#include "code\modules\spells\spell_types\voice_of_god.dm" -#include "code\modules\spells\spell_types\wizard.dm" -#include "code\modules\spells\spell_types\pointed\barnyard.dm" -#include "code\modules\spells\spell_types\pointed\blind.dm" -#include "code\modules\spells\spell_types\pointed\mind_transfer.dm" -#include "code\modules\spells\spell_types\pointed\pointed.dm" -#include "code\modules\station_goals\bsa.dm" -#include "code\modules\station_goals\dna_vault.dm" -#include "code\modules\station_goals\shield.dm" -#include "code\modules\station_goals\station_goal.dm" -#include "code\modules\surgery\amputation.dm" -#include "code\modules\surgery\bone_mending.dm" -#include "code\modules\surgery\brain_surgery.dm" -#include "code\modules\surgery\burn_dressing.dm" -#include "code\modules\surgery\cavity_implant.dm" -#include "code\modules\surgery\core_removal.dm" -#include "code\modules\surgery\coronary_bypass.dm" -#include "code\modules\surgery\dental_implant.dm" -#include "code\modules\surgery\embalming.dm" -#include "code\modules\surgery\emergency_cardioversion_recovery.dm" -#include "code\modules\surgery\emergency_reboot.dm" -#include "code\modules\surgery\experimental_dissection.dm" -#include "code\modules\surgery\eye_surgery.dm" -#include "code\modules\surgery\graft_synthtissue.dm" -#include "code\modules\surgery\healing.dm" -#include "code\modules\surgery\helpers.dm" -#include "code\modules\surgery\implant_removal.dm" -#include "code\modules\surgery\limb_augmentation.dm" -#include "code\modules\surgery\lipoplasty.dm" -#include "code\modules\surgery\lobectomy.dm" -#include "code\modules\surgery\mechanic_steps.dm" -#include "code\modules\surgery\nutcracker.dm" -#include "code\modules\surgery\organ_manipulation.dm" -#include "code\modules\surgery\organic_steps.dm" -#include "code\modules\surgery\plastic_surgery.dm" -#include "code\modules\surgery\prosthetic_replacement.dm" -#include "code\modules\surgery\purge_corruption.dm" -#include "code\modules\surgery\remove_embedded_object.dm" -#include "code\modules\surgery\repair_puncture.dm" -#include "code\modules\surgery\robot_brain_surgery.dm" -#include "code\modules\surgery\robot_healing.dm" -#include "code\modules\surgery\surgery.dm" -#include "code\modules\surgery\surgery_step.dm" -#include "code\modules\surgery\tools.dm" -#include "code\modules\surgery\advanced\brainwashing.dm" -#include "code\modules\surgery\advanced\lobotomy.dm" -#include "code\modules\surgery\advanced\necrotic_revival.dm" -#include "code\modules\surgery\advanced\pacification.dm" -#include "code\modules\surgery\advanced\revival.dm" -#include "code\modules\surgery\advanced\toxichealing.dm" -#include "code\modules\surgery\advanced\viral_bonding.dm" -#include "code\modules\surgery\advanced\bioware\bioware.dm" -#include "code\modules\surgery\advanced\bioware\bioware_surgery.dm" -#include "code\modules\surgery\advanced\bioware\ligament_hook.dm" -#include "code\modules\surgery\advanced\bioware\ligament_reinforcement.dm" -#include "code\modules\surgery\advanced\bioware\muscled_veins.dm" -#include "code\modules\surgery\advanced\bioware\nerve_grounding.dm" -#include "code\modules\surgery\advanced\bioware\nerve_splicing.dm" -#include "code\modules\surgery\advanced\bioware\vein_threading.dm" -#include "code\modules\surgery\bodyparts\_bodyparts.dm" -#include "code\modules\surgery\bodyparts\dismemberment.dm" -#include "code\modules\surgery\bodyparts\head.dm" -#include "code\modules\surgery\bodyparts\helpers.dm" -#include "code\modules\surgery\bodyparts\parts.dm" -#include "code\modules\surgery\bodyparts\robot_bodyparts.dm" -#include "code\modules\surgery\organs\appendix.dm" -#include "code\modules\surgery\organs\augments_arms.dm" -#include "code\modules\surgery\organs\augments_chest.dm" -#include "code\modules\surgery\organs\augments_eyes.dm" -#include "code\modules\surgery\organs\augments_internal.dm" -#include "code\modules\surgery\organs\autosurgeon.dm" -#include "code\modules\surgery\organs\ears.dm" -#include "code\modules\surgery\organs\eyes.dm" -#include "code\modules\surgery\organs\heart.dm" -#include "code\modules\surgery\organs\helpers.dm" -#include "code\modules\surgery\organs\liver.dm" -#include "code\modules\surgery\organs\lungs.dm" -#include "code\modules\surgery\organs\organ_internal.dm" -#include "code\modules\surgery\organs\stomach.dm" -#include "code\modules\surgery\organs\tails.dm" -#include "code\modules\surgery\organs\tongue.dm" -#include "code\modules\surgery\organs\vocal_cords.dm" -#include "code\modules\tcg\cards.dm" -#include "code\modules\tcg\pack_1.dm" -#include "code\modules\tcg\pack_nuclear.dm" -#include "code\modules\tcg\pack_star.dm" -#include "code\modules\tgchat\message.dm" -#include "code\modules\tgchat\to_chat.dm" -#include "code\modules\tgs\includes.dm" -#include "code\modules\tgui\external.dm" -#include "code\modules\tgui\states.dm" -#include "code\modules\tgui\tgui.dm" -#include "code\modules\tgui\tgui_alert.dm" -#include "code\modules\tgui\tgui_input_list.dm" -#include "code\modules\tgui\tgui_window.dm" -#include "code\modules\tgui\states\admin.dm" -#include "code\modules\tgui\states\always.dm" -#include "code\modules\tgui\states\conscious.dm" -#include "code\modules\tgui\states\contained.dm" -#include "code\modules\tgui\states\debug.dm" -#include "code\modules\tgui\states\deep_inventory.dm" -#include "code\modules\tgui\states\default.dm" -#include "code\modules\tgui\states\hands.dm" -#include "code\modules\tgui\states\human_adjacent.dm" -#include "code\modules\tgui\states\inventory.dm" -#include "code\modules\tgui\states\language_menu.dm" -#include "code\modules\tgui\states\new_player.dm" -#include "code\modules\tgui\states\not_incapacitated.dm" -#include "code\modules\tgui\states\notcontained.dm" -#include "code\modules\tgui\states\observer.dm" -#include "code\modules\tgui\states\physical.dm" -#include "code\modules\tgui\states\self.dm" -#include "code\modules\tgui\states\zlevel.dm" -#include "code\modules\tgui_panel\audio.dm" -#include "code\modules\tgui_panel\external.dm" -#include "code\modules\tgui_panel\telemetry.dm" -#include "code\modules\tgui_panel\tgui_panel.dm" -#include "code\modules\tooltip\tooltip.dm" -#include "code\modules\unit_tests\_unit_tests.dm" -#include "code\modules\uplink\uplink_devices.dm" -#include "code\modules\uplink\uplink_items.dm" -#include "code\modules\uplink\uplink_purchase_log.dm" -#include "code\modules\uplink\uplink_items\uplink_ammo.dm" -#include "code\modules\uplink\uplink_items\uplink_badass.dm" -#include "code\modules\uplink\uplink_items\uplink_bundles.dm" -#include "code\modules\uplink\uplink_items\uplink_clothing.dm" -#include "code\modules\uplink\uplink_items\uplink_dangerous.dm" -#include "code\modules\uplink\uplink_items\uplink_devices.dm" -#include "code\modules\uplink\uplink_items\uplink_explosives.dm" -#include "code\modules\uplink\uplink_items\uplink_implants.dm" -#include "code\modules\uplink\uplink_items\uplink_roles.dm" -#include "code\modules\uplink\uplink_items\uplink_stealth.dm" -#include "code\modules\uplink\uplink_items\uplink_stealthdevices.dm" -#include "code\modules\uplink\uplink_items\uplink_support.dm" -#include "code\modules\vehicles\_vehicle.dm" -#include "code\modules\vehicles\atv.dm" -#include "code\modules\vehicles\bicycle.dm" -#include "code\modules\vehicles\lavaboat.dm" -#include "code\modules\vehicles\motorized_wheelchair.dm" -#include "code\modules\vehicles\pimpin_ride.dm" -#include "code\modules\vehicles\ridden.dm" -#include "code\modules\vehicles\scooter.dm" -#include "code\modules\vehicles\sealed.dm" -#include "code\modules\vehicles\secway.dm" -#include "code\modules\vehicles\speedbike.dm" -#include "code\modules\vehicles\vehicle_actions.dm" -#include "code\modules\vehicles\vehicle_key.dm" -#include "code\modules\vehicles\wheelchair.dm" -#include "code\modules\vehicles\cars\car.dm" -#include "code\modules\vehicles\cars\clowncar.dm" -#include "code\modules\vending\_vending.dm" -#include "code\modules\vending\assist.dm" -#include "code\modules\vending\autodrobe.dm" -#include "code\modules\vending\barkbox.dm" -#include "code\modules\vending\boozeomat.dm" -#include "code\modules\vending\cartridge.dm" -#include "code\modules\vending\cigarette.dm" -#include "code\modules\vending\clothesmate.dm" -#include "code\modules\vending\coffee.dm" -#include "code\modules\vending\cola.dm" -#include "code\modules\vending\dinnerware.dm" -#include "code\modules\vending\engineering.dm" -#include "code\modules\vending\engivend.dm" -#include "code\modules\vending\games.dm" -#include "code\modules\vending\kinkmate.dm" -#include "code\modules\vending\liberation.dm" -#include "code\modules\vending\liberation_toy.dm" -#include "code\modules\vending\magivend.dm" -#include "code\modules\vending\medical.dm" -#include "code\modules\vending\medical_wall.dm" -#include "code\modules\vending\megaseed.dm" -#include "code\modules\vending\nutrimax.dm" -#include "code\modules\vending\plasmaresearch.dm" -#include "code\modules\vending\robotics.dm" -#include "code\modules\vending\security.dm" -#include "code\modules\vending\snack.dm" -#include "code\modules\vending\sovietsoda.dm" -#include "code\modules\vending\sovietvend.dm" -#include "code\modules\vending\sustenance.dm" -#include "code\modules\vending\toys.dm" -#include "code\modules\vending\wardrobes.dm" -#include "code\modules\vending\youtool.dm" -#include "code\modules\vore\hook-defs.dm" -#include "code\modules\vore\persistence.dm" -#include "code\modules\vore\trycatch.dm" -#include "code\modules\vore\eating\belly_dat_vr.dm" -#include "code\modules\vore\eating\belly_obj.dm" -#include "code\modules\vore\eating\bellymodes.dm" -#include "code\modules\vore\eating\digest_act.dm" -#include "code\modules\vore\eating\living.dm" -#include "code\modules\vore\eating\voreitems.dm" -#include "code\modules\vore\eating\vorepanel.dm" -#include "code\modules\VR\vr_mob.dm" -#include "code\modules\VR\vr_sleeper.dm" -#include "code\modules\zombie\items.dm" -#include "code\modules\zombie\organs.dm" -#include "interface\interface.dm" -#include "interface\menu.dm" -#include "interface\stylesheet.dm" -#include "interface\skin.dmf" -#include "modular_citadel\code\datums\components\souldeath.dm" -#include "modular_citadel\code\datums\status_effects\chems.dm" -#include "modular_citadel\code\game\objects\cit_screenshake.dm" -#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" -#include "modular_citadel\code\modules\admin\holder2.dm" -#include "modular_citadel\code\modules\admin\secrets.dm" -#include "modular_citadel\code\modules\client\client_procs.dm" -#include "modular_citadel\code\modules\client\preferences_savefile.dm" -#include "modular_citadel\code\modules\client\preferences_toggles.dm" -#include "modular_citadel\code\modules\client\loadout\__donator.dm" -#include "modular_citadel\code\modules\client\loadout\_loadout.dm" -#include "modular_citadel\code\modules\client\loadout\_medical.dm" -#include "modular_citadel\code\modules\client\loadout\_security.dm" -#include "modular_citadel\code\modules\client\loadout\_service.dm" -#include "modular_citadel\code\modules\client\loadout\backpack.dm" -#include "modular_citadel\code\modules\client\loadout\glasses.dm" -#include "modular_citadel\code\modules\client\loadout\gloves.dm" -#include "modular_citadel\code\modules\client\loadout\hands.dm" -#include "modular_citadel\code\modules\client\loadout\head.dm" -#include "modular_citadel\code\modules\client\loadout\mask.dm" -#include "modular_citadel\code\modules\client\loadout\neck.dm" -#include "modular_citadel\code\modules\client\loadout\shoes.dm" -#include "modular_citadel\code\modules\client\loadout\suit.dm" -#include "modular_citadel\code\modules\client\loadout\uniform.dm" -#include "modular_citadel\code\modules\client\loadout\unlockable.dm" -#include "modular_citadel\code\modules\client\verbs\who.dm" -#include "modular_citadel\code\modules\clothing\neck.dm" -#include "modular_citadel\code\modules\clothing\trek.dm" -#include "modular_citadel\code\modules\clothing\suits\suits.dm" -#include "modular_citadel\code\modules\custom_loadout\custom_items.dm" -#include "modular_citadel\code\modules\custom_loadout\load_to_mob.dm" -#include "modular_citadel\code\modules\custom_loadout\read_from_file.dm" -#include "modular_citadel\code\modules\mentor\dementor.dm" -#include "modular_citadel\code\modules\mentor\follow.dm" -#include "modular_citadel\code\modules\mentor\mentor.dm" -#include "modular_citadel\code\modules\mentor\mentor_memo.dm" -#include "modular_citadel\code\modules\mentor\mentor_verbs.dm" -#include "modular_citadel\code\modules\mentor\mentorhelp.dm" -#include "modular_citadel\code\modules\mentor\mentorpm.dm" -#include "modular_citadel\code\modules\mentor\mentorsay.dm" -#include "modular_citadel\code\modules\mob\cit_emotes.dm" -#include "modular_citadel\code\modules\mob\living\living.dm" -#include "modular_citadel\code\modules\mob\living\carbon\carbon.dm" -#include "modular_citadel\code\modules\mob\living\carbon\damage_procs.dm" -#include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" -#include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" -#include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" -#include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" -#include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm" -#include "modular_citadel\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" -#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\pistol.dm" -#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\smg\smg.dm" -#include "modular_citadel\code\modules\projectiles\bullets\bullets\smg.dm" -#include "modular_citadel\code\modules\projectiles\guns\pumpenergy.dm" -#include "modular_citadel\code\modules\projectiles\guns\toys.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" -#include "modular_citadel\code\modules\projectiles\guns\energy\energy_gun.dm" -#include "modular_citadel\code\modules\projectiles\projectiles\reusable.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\astrogen.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\eigentstasium.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\enlargement.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\fermi_reagents.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\healing.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\MKUltra.dm" -#include "modular_citadel\code\modules\reagents\chemistry\reagents\SDGF.dm" -#include "modular_citadel\code\modules\reagents\chemistry\recipes\fermi.dm" -#include "modular_citadel\code\modules\reagents\objects\clothes.dm" -#include "modular_citadel\code\modules\reagents\objects\items.dm" -// END_INCLUDE + +// DM Environment file for tgstation.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. +// New source code should be placed in .dm files: choose File/New --> Code File. +// BEGIN_INTERNALS +// END_INTERNALS + +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR + +// BEGIN_PREFERENCES +#define DEBUG +// END_PREFERENCES + +// BEGIN_INCLUDE +#include "_maps\_basemap.dm" +#include "code\_compile_options.dm" +#include "code\world.dm" +#include "code\__DEFINES\_extools.dm" +#include "code\__DEFINES\_globals.dm" +#include "code\__DEFINES\_protect.dm" +#include "code\__DEFINES\_tick.dm" +#include "code\__DEFINES\access.dm" +#include "code\__DEFINES\achievements.dm" +#include "code\__DEFINES\actionspeed_modifiers.dm" +#include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\antagonists.dm" +#include "code\__DEFINES\atmospherics.dm" +#include "code\__DEFINES\atom_hud.dm" +#include "code\__DEFINES\blackmarket.dm" +#include "code\__DEFINES\botany.dm" +#include "code\__DEFINES\callbacks.dm" +#include "code\__DEFINES\cargo.dm" +#include "code\__DEFINES\cinematics.dm" +#include "code\__DEFINES\citadel_defines.dm" +#include "code\__DEFINES\cleaning.dm" +#include "code\__DEFINES\clockcult.dm" +#include "code\__DEFINES\colors.dm" +#include "code\__DEFINES\combat.dm" +#include "code\__DEFINES\configuration.dm" +#include "code\__DEFINES\construction.dm" +#include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\cooldowns.dm" +#include "code\__DEFINES\cult.dm" +#include "code\__DEFINES\diseases.dm" +#include "code\__DEFINES\DNA.dm" +#include "code\__DEFINES\donator_groupings.dm" +#include "code\__DEFINES\dye_keys.dm" +#include "code\__DEFINES\dynamic.dm" +#include "code\__DEFINES\economy.dm" +#include "code\__DEFINES\events.dm" +#include "code\__DEFINES\exosuit_fabs.dm" +#include "code\__DEFINES\explosion.dm" +#include "code\__DEFINES\exports.dm" +#include "code\__DEFINES\fantasy_affixes.dm" +#include "code\__DEFINES\food.dm" +#include "code\__DEFINES\footsteps.dm" +#include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\instruments.dm" +#include "code\__DEFINES\integrated_electronics.dm" +#include "code\__DEFINES\interaction_flags.dm" +#include "code\__DEFINES\inventory.dm" +#include "code\__DEFINES\is_helpers.dm" +#include "code\__DEFINES\jobs.dm" +#include "code\__DEFINES\language.dm" +#include "code\__DEFINES\layers_planes.dm" +#include "code\__DEFINES\lighting.dm" +#include "code\__DEFINES\loadout.dm" +#include "code\__DEFINES\logging.dm" +#include "code\__DEFINES\machines.dm" +#include "code\__DEFINES\maps.dm" +#include "code\__DEFINES\materials.dm" +#include "code\__DEFINES\maths.dm" +#include "code\__DEFINES\MC.dm" +#include "code\__DEFINES\melee.dm" +#include "code\__DEFINES\menu.dm" +#include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mobs.dm" +#include "code\__DEFINES\monkeys.dm" +#include "code\__DEFINES\move_force.dm" +#include "code\__DEFINES\movement.dm" +#include "code\__DEFINES\movespeed_modification.dm" +#include "code\__DEFINES\nanites.dm" +#include "code\__DEFINES\networks.dm" +#include "code\__DEFINES\pinpointers.dm" +#include "code\__DEFINES\pipe_construction.dm" +#include "code\__DEFINES\plumbing.dm" +#include "code\__DEFINES\pool.dm" +#include "code\__DEFINES\power.dm" +#include "code\__DEFINES\preferences.dm" +#include "code\__DEFINES\procpath.dm" +#include "code\__DEFINES\profile.dm" +#include "code\__DEFINES\projectiles.dm" +#include "code\__DEFINES\qdel.dm" +#include "code\__DEFINES\radiation.dm" +#include "code\__DEFINES\radio.dm" +#include "code\__DEFINES\reactions.dm" +#include "code\__DEFINES\reagents.dm" +#include "code\__DEFINES\reagents_specific_heat.dm" +#include "code\__DEFINES\research.dm" +#include "code\__DEFINES\robots.dm" +#include "code\__DEFINES\rockpaperscissors.dm" +#include "code\__DEFINES\role_preferences.dm" +#include "code\__DEFINES\rust_g.dm" +#include "code\__DEFINES\say.dm" +#include "code\__DEFINES\security_levels.dm" +#include "code\__DEFINES\shuttles.dm" +#include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\sound.dm" +#include "code\__DEFINES\spaceman_dmm.dm" +#include "code\__DEFINES\species.dm" +#include "code\__DEFINES\stat.dm" +#include "code\__DEFINES\stat_tracking.dm" +#include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\subsystems.dm" +#include "code\__DEFINES\tgs.config.dm" +#include "code\__DEFINES\tgs.dm" +#include "code\__DEFINES\tgui.dm" +#include "code\__DEFINES\time.dm" +#include "code\__DEFINES\tools.dm" +#include "code\__DEFINES\traits.dm" +#include "code\__DEFINES\turf_flags.dm" +#include "code\__DEFINES\typeids.dm" +#include "code\__DEFINES\vehicles.dm" +#include "code\__DEFINES\voreconstants.dm" +#include "code\__DEFINES\vote.dm" +#include "code\__DEFINES\vv.dm" +#include "code\__DEFINES\wall_dents.dm" +#include "code\__DEFINES\wires.dm" +#include "code\__DEFINES\wounds.dm" +#include "code\__DEFINES\_flags\_flags.dm" +#include "code\__DEFINES\_flags\do_after.dm" +#include "code\__DEFINES\_flags\item_flags.dm" +#include "code\__DEFINES\_flags\obj_flags.dm" +#include "code\__DEFINES\_flags\return_values.dm" +#include "code\__DEFINES\_flags\shields.dm" +#include "code\__DEFINES\admin\keybindings.dm" +#include "code\__DEFINES\chemistry\reactions.dm" +#include "code\__DEFINES\combat\attack_types.dm" +#include "code\__DEFINES\combat\block.dm" +#include "code\__DEFINES\combat\block_parry.dm" +#include "code\__DEFINES\combat\stamina_combat.dm" +#include "code\__DEFINES\dcs\flags.dm" +#include "code\__DEFINES\dcs\helpers.dm" +#include "code\__DEFINES\dcs\signals.dm" +#include "code\__DEFINES\mapping\maploader.dm" +#include "code\__DEFINES\material\worth.dm" +#include "code\__DEFINES\mobs\innate_abilities.dm" +#include "code\__DEFINES\mobs\slowdowns.dm" +#include "code\__DEFINES\research\anomalies.dm" +#include "code\__DEFINES\research\stock_parts.dm" +#include "code\__DEFINES\skills\defines.dm" +#include "code\__DEFINES\skills\helpers.dm" +#include "code\__DEFINES\storage\_storage.dm" +#include "code\__DEFINES\storage\volumetrics.dm" +#include "code\__HELPERS\_cit_helpers.dm" +#include "code\__HELPERS\_lists.dm" +#include "code\__HELPERS\_logging.dm" +#include "code\__HELPERS\_string_lists.dm" +#include "code\__HELPERS\angles.dm" +#include "code\__HELPERS\areas.dm" +#include "code\__HELPERS\AStar.dm" +#include "code\__HELPERS\chat.dm" +#include "code\__HELPERS\cmp.dm" +#include "code\__HELPERS\custom_holoforms.dm" +#include "code\__HELPERS\dates.dm" +#include "code\__HELPERS\dna.dm" +#include "code\__HELPERS\do_after.dm" +#include "code\__HELPERS\donator_groupings.dm" +#include "code\__HELPERS\files.dm" +#include "code\__HELPERS\filters.dm" +#include "code\__HELPERS\game.dm" +#include "code\__HELPERS\global_lists.dm" +#include "code\__HELPERS\heap.dm" +#include "code\__HELPERS\icon_smoothing.dm" +#include "code\__HELPERS\icons.dm" +#include "code\__HELPERS\level_traits.dm" +#include "code\__HELPERS\matrices.dm" +#include "code\__HELPERS\mobs.dm" +#include "code\__HELPERS\mouse_control.dm" +#include "code\__HELPERS\names.dm" +#include "code\__HELPERS\priority_announce.dm" +#include "code\__HELPERS\pronouns.dm" +#include "code\__HELPERS\qdel.dm" +#include "code\__HELPERS\radiation.dm" +#include "code\__HELPERS\radio.dm" +#include "code\__HELPERS\reagents.dm" +#include "code\__HELPERS\roundend.dm" +#include "code\__HELPERS\sanitize_values.dm" +#include "code\__HELPERS\shell.dm" +#include "code\__HELPERS\stat_tracking.dm" +#include "code\__HELPERS\text.dm" +#include "code\__HELPERS\text_vr.dm" +#include "code\__HELPERS\time.dm" +#include "code\__HELPERS\type2type.dm" +#include "code\__HELPERS\type_processing.dm" +#include "code\__HELPERS\typelists.dm" +#include "code\__HELPERS\unsorted.dm" +#include "code\__HELPERS\vector.dm" +#include "code\__HELPERS\verbs.dm" +#include "code\__HELPERS\view.dm" +#include "code\__HELPERS\sorts\__main.dm" +#include "code\__HELPERS\sorts\InsertSort.dm" +#include "code\__HELPERS\sorts\MergeSort.dm" +#include "code\__HELPERS\sorts\TimSort.dm" +#include "code\_globalvars\admin.dm" +#include "code\_globalvars\bitfields.dm" +#include "code\_globalvars\configuration.dm" +#include "code\_globalvars\game_modes.dm" +#include "code\_globalvars\genetics.dm" +#include "code\_globalvars\logging.dm" +#include "code\_globalvars\misc.dm" +#include "code\_globalvars\regexes.dm" +#include "code\_globalvars\traits.dm" +#include "code\_globalvars\lists\achievements.dm" +#include "code\_globalvars\lists\client.dm" +#include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\keybindings.dm" +#include "code\_globalvars\lists\loadout_categories.dm" +#include "code\_globalvars\lists\maintenance_loot.dm" +#include "code\_globalvars\lists\mapping.dm" +#include "code\_globalvars\lists\misc.dm" +#include "code\_globalvars\lists\mobs.dm" +#include "code\_globalvars\lists\names.dm" +#include "code\_globalvars\lists\objects.dm" +#include "code\_globalvars\lists\poll_ignore.dm" +#include "code\_globalvars\lists\typecache.dm" +#include "code\_js\byjax.dm" +#include "code\_js\menus.dm" +#include "code\_onclick\adjacent.dm" +#include "code\_onclick\ai.dm" +#include "code\_onclick\click.dm" +#include "code\_onclick\cyborg.dm" +#include "code\_onclick\drag_drop.dm" +#include "code\_onclick\item_attack.dm" +#include "code\_onclick\observer.dm" +#include "code\_onclick\other_mobs.dm" +#include "code\_onclick\overmind.dm" +#include "code\_onclick\right_click.dm" +#include "code\_onclick\right_item_attack.dm" +#include "code\_onclick\right_other_mobs.dm" +#include "code\_onclick\telekinesis.dm" +#include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\action_button.dm" +#include "code\_onclick\hud\ai.dm" +#include "code\_onclick\hud\alert.dm" +#include "code\_onclick\hud\alien.dm" +#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\blob_overmind.dm" +#include "code\_onclick\hud\blobbernauthud.dm" +#include "code\_onclick\hud\clockwork_marauder.dm" +#include "code\_onclick\hud\constructs.dm" +#include "code\_onclick\hud\credits.dm" +#include "code\_onclick\hud\devil.dm" +#include "code\_onclick\hud\drones.dm" +#include "code\_onclick\hud\fullscreen.dm" +#include "code\_onclick\hud\generic_dextrous.dm" +#include "code\_onclick\hud\ghost.dm" +#include "code\_onclick\hud\guardian.dm" +#include "code\_onclick\hud\hud.dm" +#include "code\_onclick\hud\human.dm" +#include "code\_onclick\hud\lavaland_elite.dm" +#include "code\_onclick\hud\map_popups.dm" +#include "code\_onclick\hud\monkey.dm" +#include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\parallax.dm" +#include "code\_onclick\hud\picture_in_picture.dm" +#include "code\_onclick\hud\plane_master.dm" +#include "code\_onclick\hud\radial.dm" +#include "code\_onclick\hud\radial_persistent.dm" +#include "code\_onclick\hud\revenanthud.dm" +#include "code\_onclick\hud\robot.dm" +#include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\simple_animal.dm" +#include "code\_onclick\hud\swarmer.dm" +#include "code\_onclick\hud\screen_objects\clickdelay.dm" +#include "code\_onclick\hud\screen_objects\sprint.dm" +#include "code\_onclick\hud\screen_objects\stamina.dm" +#include "code\_onclick\hud\screen_objects\storage.dm" +#include "code\_onclick\hud\screen_objects\vore.dm" +#include "code\controllers\admin.dm" +#include "code\controllers\configuration_citadel.dm" +#include "code\controllers\controller.dm" +#include "code\controllers\failsafe.dm" +#include "code\controllers\globals.dm" +#include "code\controllers\hooks.dm" +#include "code\controllers\master.dm" +#include "code\controllers\subsystem.dm" +#include "code\controllers\configuration\config_entry.dm" +#include "code\controllers\configuration\configuration.dm" +#include "code\controllers\configuration\entries\comms.dm" +#include "code\controllers\configuration\entries\dbconfig.dm" +#include "code\controllers\configuration\entries\donator.dm" +#include "code\controllers\configuration\entries\dynamic.dm" +#include "code\controllers\configuration\entries\fail2topic.dm" +#include "code\controllers\configuration\entries\game_options.dm" +#include "code\controllers\configuration\entries\general.dm" +#include "code\controllers\configuration\entries\logging.dm" +#include "code\controllers\configuration\entries\persistence.dm" +#include "code\controllers\configuration\entries\plushies.dm" +#include "code\controllers\configuration\entries\policy.dm" +#include "code\controllers\configuration\entries\resources.dm" +#include "code\controllers\configuration\entries\respawns.dm" +#include "code\controllers\configuration\entries\stamina_combat.dm" +#include "code\controllers\subsystem\achievements.dm" +#include "code\controllers\subsystem\acid.dm" +#include "code\controllers\subsystem\activity.dm" +#include "code\controllers\subsystem\adjacent_air.dm" +#include "code\controllers\subsystem\air.dm" +#include "code\controllers\subsystem\air_turfs.dm" +#include "code\controllers\subsystem\assets.dm" +#include "code\controllers\subsystem\atoms.dm" +#include "code\controllers\subsystem\augury.dm" +#include "code\controllers\subsystem\autotransfer.dm" +#include "code\controllers\subsystem\blackbox.dm" +#include "code\controllers\subsystem\blackmarket.dm" +#include "code\controllers\subsystem\chat.dm" +#include "code\controllers\subsystem\communications.dm" +#include "code\controllers\subsystem\dbcore.dm" +#include "code\controllers\subsystem\dcs.dm" +#include "code\controllers\subsystem\disease.dm" +#include "code\controllers\subsystem\economy.dm" +#include "code\controllers\subsystem\events.dm" +#include "code\controllers\subsystem\explosions.dm" +#include "code\controllers\subsystem\fail2topic.dm" +#include "code\controllers\subsystem\fire_burning.dm" +#include "code\controllers\subsystem\fluid.dm" +#include "code\controllers\subsystem\garbage.dm" +#include "code\controllers\subsystem\holodeck.dm" +#include "code\controllers\subsystem\icon_smooth.dm" +#include "code\controllers\subsystem\idlenpcpool.dm" +#include "code\controllers\subsystem\input.dm" +#include "code\controllers\subsystem\ipintel.dm" +#include "code\controllers\subsystem\job.dm" +#include "code\controllers\subsystem\jukeboxes.dm" +#include "code\controllers\subsystem\language.dm" +#include "code\controllers\subsystem\lighting.dm" +#include "code\controllers\subsystem\machines.dm" +#include "code\controllers\subsystem\mapping.dm" +#include "code\controllers\subsystem\materials.dm" +#include "code\controllers\subsystem\minimaps.dm" +#include "code\controllers\subsystem\minimum_spawns.dm" +#include "code\controllers\subsystem\minor_mapping.dm" +#include "code\controllers\subsystem\mobs.dm" +#include "code\controllers\subsystem\nightshift.dm" +#include "code\controllers\subsystem\npcpool.dm" +#include "code\controllers\subsystem\overlays.dm" +#include "code\controllers\subsystem\pai.dm" +#include "code\controllers\subsystem\parallax.dm" +#include "code\controllers\subsystem\pathfinder.dm" +#include "code\controllers\subsystem\profiler.dm" +#include "code\controllers\subsystem\radiation.dm" +#include "code\controllers\subsystem\radio.dm" +#include "code\controllers\subsystem\research.dm" +#include "code\controllers\subsystem\runechat.dm" +#include "code\controllers\subsystem\server_maint.dm" +#include "code\controllers\subsystem\shuttle.dm" +#include "code\controllers\subsystem\sounds.dm" +#include "code\controllers\subsystem\spacedrift.dm" +#include "code\controllers\subsystem\statpanel.dm" +#include "code\controllers\subsystem\stickyban.dm" +#include "code\controllers\subsystem\sun.dm" +#include "code\controllers\subsystem\tgui.dm" +#include "code\controllers\subsystem\throwing.dm" +#include "code\controllers\subsystem\ticker.dm" +#include "code\controllers\subsystem\time_track.dm" +#include "code\controllers\subsystem\timer.dm" +#include "code\controllers\subsystem\title.dm" +#include "code\controllers\subsystem\traumas.dm" +#include "code\controllers\subsystem\vis_overlays.dm" +#include "code\controllers\subsystem\vore.dm" +#include "code\controllers\subsystem\vote.dm" +#include "code\controllers\subsystem\persistence\_persistence.dm" +#include "code\controllers\subsystem\persistence\cleanable_debris.dm" +#include "code\controllers\subsystem\persistence\panic_bunker.dm" +#include "code\controllers\subsystem\persistence\poly_parrot.dm" +#include "code\controllers\subsystem\persistence\recent_votes_etc.dm" +#include "code\controllers\subsystem\persistence\secret_satchels.dm" +#include "code\controllers\subsystem\persistence\trophies.dm" +#include "code\controllers\subsystem\processing\chemistry.dm" +#include "code\controllers\subsystem\processing\circuit.dm" +#include "code\controllers\subsystem\processing\fastprocess.dm" +#include "code\controllers\subsystem\processing\fields.dm" +#include "code\controllers\subsystem\processing\huds.dm" +#include "code\controllers\subsystem\processing\instruments.dm" +#include "code\controllers\subsystem\processing\nanites.dm" +#include "code\controllers\subsystem\processing\networks.dm" +#include "code\controllers\subsystem\processing\obj.dm" +#include "code\controllers\subsystem\processing\processing.dm" +#include "code\controllers\subsystem\processing\projectiles.dm" +#include "code\controllers\subsystem\processing\quirks.dm" +#include "code\controllers\subsystem\processing\status_effects.dm" +#include "code\controllers\subsystem\processing\weather.dm" +#include "code\controllers\subsystem\processing\wet_floors.dm" +#include "code\datums\accents.dm" +#include "code\datums\action.dm" +#include "code\datums\ai_laws.dm" +#include "code\datums\armor.dm" +#include "code\datums\beam.dm" +#include "code\datums\beepsky_fashion.dm" +#include "code\datums\browser.dm" +#include "code\datums\callback.dm" +#include "code\datums\chatmessage.dm" +#include "code\datums\cinematic.dm" +#include "code\datums\dash_weapon.dm" +#include "code\datums\datacore.dm" +#include "code\datums\datum.dm" +#include "code\datums\datumvars.dm" +#include "code\datums\dna.dm" +#include "code\datums\dog_fashion.dm" +#include "code\datums\ductnet.dm" +#include "code\datums\emotes.dm" +#include "code\datums\ert.dm" +#include "code\datums\explosion.dm" +#include "code\datums\explosion2.dm" +#include "code\datums\forced_movement.dm" +#include "code\datums\holocall.dm" +#include "code\datums\http.dm" +#include "code\datums\hud.dm" +#include "code\datums\mind.dm" +#include "code\datums\mutable_appearance.dm" +#include "code\datums\numbered_display.dm" +#include "code\datums\outfit.dm" +#include "code\datums\position_point_vector.dm" +#include "code\datums\profiling.dm" +#include "code\datums\progressbar.dm" +#include "code\datums\radiation_wave.dm" +#include "code\datums\recipe.dm" +#include "code\datums\ruins.dm" +#include "code\datums\saymode.dm" +#include "code\datums\shuttles.dm" +#include "code\datums\soullink.dm" +#include "code\datums\spawners_menu.dm" +#include "code\datums\tgs_event_handler.dm" +#include "code\datums\verbs.dm" +#include "code\datums\view.dm" +#include "code\datums\weakrefs.dm" +#include "code\datums\world_topic.dm" +#include "code\datums\achievements\_achievement_data.dm" +#include "code\datums\achievements\_awards.dm" +#include "code\datums\achievements\boss_achievements.dm" +#include "code\datums\achievements\boss_scores.dm" +#include "code\datums\achievements\mafia_achievements.dm" +#include "code\datums\achievements\misc_achievements.dm" +#include "code\datums\achievements\misc_scores.dm" +#include "code\datums\achievements\skill_achievements.dm" +#include "code\datums\actions\beam_rifle.dm" +#include "code\datums\actions\ninja.dm" +#include "code\datums\brain_damage\brain_trauma.dm" +#include "code\datums\brain_damage\hypnosis.dm" +#include "code\datums\brain_damage\imaginary_friend.dm" +#include "code\datums\brain_damage\magic.dm" +#include "code\datums\brain_damage\mild.dm" +#include "code\datums\brain_damage\phobia.dm" +#include "code\datums\brain_damage\severe.dm" +#include "code\datums\brain_damage\special.dm" +#include "code\datums\brain_damage\split_personality.dm" +#include "code\datums\components\_component.dm" +#include "code\datums\components\activity.dm" +#include "code\datums\components\anti_magic.dm" +#include "code\datums\components\armor_plate.dm" +#include "code\datums\components\bane.dm" +#include "code\datums\components\bouncy.dm" +#include "code\datums\components\butchering.dm" +#include "code\datums\components\caltrop.dm" +#include "code\datums\components\chasm.dm" +#include "code\datums\components\combat_mode.dm" +#include "code\datums\components\construction.dm" +#include "code\datums\components\dejavu.dm" +#include "code\datums\components\earprotection.dm" +#include "code\datums\components\edible.dm" +#include "code\datums\components\edit_complainer.dm" +#include "code\datums\components\embedded.dm" +#include "code\datums\components\explodable.dm" +#include "code\datums\components\field_of_vision.dm" +#include "code\datums\components\footstep.dm" +#include "code\datums\components\fried.dm" +#include "code\datums\components\gps.dm" +#include "code\datums\components\honkspam.dm" +#include "code\datums\components\identification.dm" +#include "code\datums\components\igniter.dm" +#include "code\datums\components\infective.dm" +#include "code\datums\components\jousting.dm" +#include "code\datums\components\killerqueen.dm" +#include "code\datums\components\knockback.dm" +#include "code\datums\components\knockoff.dm" +#include "code\datums\components\label.dm" +#include "code\datums\components\lifesteal.dm" +#include "code\datums\components\lockon_aiming.dm" +#include "code\datums\components\magnetic_catch.dm" +#include "code\datums\components\material_container.dm" +#include "code\datums\components\mirage_border.dm" +#include "code\datums\components\mirv.dm" +#include "code\datums\components\mood.dm" +#include "code\datums\components\nanites.dm" +#include "code\datums\components\ntnet_interface.dm" +#include "code\datums\components\omen.dm" +#include "code\datums\components\orbiter.dm" +#include "code\datums\components\paintable.dm" +#include "code\datums\components\pellet_cloud.dm" +#include "code\datums\components\phantomthief.dm" +#include "code\datums\components\rad_insulation.dm" +#include "code\datums\components\radioactive.dm" +#include "code\datums\components\remote_materials.dm" +#include "code\datums\components\riding.dm" +#include "code\datums\components\rotation.dm" +#include "code\datums\components\shielded.dm" +#include "code\datums\components\shrink.dm" +#include "code\datums\components\sizzle.dm" +#include "code\datums\components\slippery.dm" +#include "code\datums\components\spawner.dm" +#include "code\datums\components\spooky.dm" +#include "code\datums\components\squeak.dm" +#include "code\datums\components\stationloving.dm" +#include "code\datums\components\summoning.dm" +#include "code\datums\components\swarming.dm" +#include "code\datums\components\tackle.dm" +#include "code\datums\components\thermite.dm" +#include "code\datums\components\twitch_plays.dm" +#include "code\datums\components\twohanded.dm" +#include "code\datums\components\uplink.dm" +#include "code\datums\components\virtual_reality.dm" +#include "code\datums\components\waddling.dm" +#include "code\datums\components\wearertargeting.dm" +#include "code\datums\components\wet_floor.dm" +#include "code\datums\components\crafting\crafting.dm" +#include "code\datums\components\crafting\guncrafting.dm" +#include "code\datums\components\crafting\recipes.dm" +#include "code\datums\components\crafting\glassware\glassware.dm" +#include "code\datums\components\crafting\glassware\lens_crafting.dm" +#include "code\datums\components\crafting\recipes\recipes_clothing.dm" +#include "code\datums\components\crafting\recipes\recipes_misc.dm" +#include "code\datums\components\crafting\recipes\recipes_primal.dm" +#include "code\datums\components\crafting\recipes\recipes_robot.dm" +#include "code\datums\components\crafting\recipes\recipes_weapon_and_ammo.dm" +#include "code\datums\components\fantasy\_fantasy.dm" +#include "code\datums\components\fantasy\affix.dm" +#include "code\datums\components\fantasy\prefixes.dm" +#include "code\datums\components\fantasy\suffixes.dm" +#include "code\datums\components\plumbing\_plumbing.dm" +#include "code\datums\components\plumbing\chemical_acclimator.dm" +#include "code\datums\components\plumbing\filter.dm" +#include "code\datums\components\plumbing\reaction_chamber.dm" +#include "code\datums\components\plumbing\splitter.dm" +#include "code\datums\components\storage\storage.dm" +#include "code\datums\components\storage\ui.dm" +#include "code\datums\components\storage\concrete\_concrete.dm" +#include "code\datums\components\storage\concrete\bag_of_holding.dm" +#include "code\datums\components\storage\concrete\bluespace.dm" +#include "code\datums\components\storage\concrete\emergency.dm" +#include "code\datums\components\storage\concrete\implant.dm" +#include "code\datums\components\storage\concrete\pockets.dm" +#include "code\datums\components\storage\concrete\rped.dm" +#include "code\datums\components\storage\concrete\special.dm" +#include "code\datums\components\storage\concrete\stack.dm" +#include "code\datums\components\storage\concrete\tcg.dm" +#include "code\datums\diseases\_disease.dm" +#include "code\datums\diseases\_MobProcs.dm" +#include "code\datums\diseases\anxiety.dm" +#include "code\datums\diseases\appendicitis.dm" +#include "code\datums\diseases\beesease.dm" +#include "code\datums\diseases\brainrot.dm" +#include "code\datums\diseases\cold.dm" +#include "code\datums\diseases\cold9.dm" +#include "code\datums\diseases\dna_spread.dm" +#include "code\datums\diseases\fake_gbs.dm" +#include "code\datums\diseases\flu.dm" +#include "code\datums\diseases\fluspanish.dm" +#include "code\datums\diseases\gbs.dm" +#include "code\datums\diseases\heart_failure.dm" +#include "code\datums\diseases\magnitis.dm" +#include "code\datums\diseases\parrotpossession.dm" +#include "code\datums\diseases\pierrot_throat.dm" +#include "code\datums\diseases\retrovirus.dm" +#include "code\datums\diseases\rhumba_beat.dm" +#include "code\datums\diseases\transformation.dm" +#include "code\datums\diseases\tuberculosis.dm" +#include "code\datums\diseases\wizarditis.dm" +#include "code\datums\diseases\advance\advance.dm" +#include "code\datums\diseases\advance\presets.dm" +#include "code\datums\diseases\advance\symptoms\beard.dm" +#include "code\datums\diseases\advance\symptoms\choking.dm" +#include "code\datums\diseases\advance\symptoms\confusion.dm" +#include "code\datums\diseases\advance\symptoms\cough.dm" +#include "code\datums\diseases\advance\symptoms\deafness.dm" +#include "code\datums\diseases\advance\symptoms\disfiguration.dm" +#include "code\datums\diseases\advance\symptoms\dizzy.dm" +#include "code\datums\diseases\advance\symptoms\fever.dm" +#include "code\datums\diseases\advance\symptoms\fire.dm" +#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" +#include "code\datums\diseases\advance\symptoms\genetics.dm" +#include "code\datums\diseases\advance\symptoms\hallucigen.dm" +#include "code\datums\diseases\advance\symptoms\headache.dm" +#include "code\datums\diseases\advance\symptoms\heal.dm" +#include "code\datums\diseases\advance\symptoms\itching.dm" +#include "code\datums\diseases\advance\symptoms\nanites.dm" +#include "code\datums\diseases\advance\symptoms\narcolepsy.dm" +#include "code\datums\diseases\advance\symptoms\oxygen.dm" +#include "code\datums\diseases\advance\symptoms\sensory.dm" +#include "code\datums\diseases\advance\symptoms\shedding.dm" +#include "code\datums\diseases\advance\symptoms\shivering.dm" +#include "code\datums\diseases\advance\symptoms\skin.dm" +#include "code\datums\diseases\advance\symptoms\sneeze.dm" +#include "code\datums\diseases\advance\symptoms\species.dm" +#include "code\datums\diseases\advance\symptoms\symptoms.dm" +#include "code\datums\diseases\advance\symptoms\viral.dm" +#include "code\datums\diseases\advance\symptoms\vision.dm" +#include "code\datums\diseases\advance\symptoms\voice_change.dm" +#include "code\datums\diseases\advance\symptoms\vomit.dm" +#include "code\datums\diseases\advance\symptoms\weight.dm" +#include "code\datums\diseases\advance\symptoms\youth.dm" +#include "code\datums\elements\_element.dm" +#include "code\datums\elements\art.dm" +#include "code\datums\elements\beauty.dm" +#include "code\datums\elements\bed_tucking.dm" +#include "code\datums\elements\bsa_blocker.dm" +#include "code\datums\elements\cleaning.dm" +#include "code\datums\elements\decal.dm" +#include "code\datums\elements\dusts_on_catatonia.dm" +#include "code\datums\elements\dusts_on_leaving_area.dm" +#include "code\datums\elements\dwarfism.dm" +#include "code\datums\elements\earhealing.dm" +#include "code\datums\elements\embed.dm" +#include "code\datums\elements\empprotection.dm" +#include "code\datums\elements\firestacker.dm" +#include "code\datums\elements\flavor_text.dm" +#include "code\datums\elements\forced_gravity.dm" +#include "code\datums\elements\ghost_role_eligibility.dm" +#include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\photosynthesis.dm" +#include "code\datums\elements\polychromic.dm" +#include "code\datums\elements\scavenging.dm" +#include "code\datums\elements\snail_crawl.dm" +#include "code\datums\elements\spellcasting.dm" +#include "code\datums\elements\squish.dm" +#include "code\datums\elements\swimming.dm" +#include "code\datums\elements\sword_point.dm" +#include "code\datums\elements\tactical.dm" +#include "code\datums\elements\turf_transparency.dm" +#include "code\datums\elements\update_icon_blocker.dm" +#include "code\datums\elements\update_icon_updates_onmob.dm" +#include "code\datums\elements\ventcrawling.dm" +#include "code\datums\elements\wuv.dm" +#include "code\datums\helper_datums\events.dm" +#include "code\datums\helper_datums\getrev.dm" +#include "code\datums\helper_datums\icon_snapshot.dm" +#include "code\datums\helper_datums\teleport.dm" +#include "code\datums\looping_sounds\_looping_sound.dm" +#include "code\datums\looping_sounds\item_sounds.dm" +#include "code\datums\looping_sounds\machinery_sounds.dm" +#include "code\datums\looping_sounds\weather.dm" +#include "code\datums\mapgen\_MapGenerator.dm" +#include "code\datums\mapgen\CaveGenerator.dm" +#include "code\datums\mapgen\JungleGenerator.dm" +#include "code\datums\mapgen\biomes\_biome.dm" +#include "code\datums\mapgen\Cavegens\IcemoonCaves.dm" +#include "code\datums\mapgen\Cavegens\LavalandGenerator.dm" +#include "code\datums\martial\_martial.dm" +#include "code\datums\martial\boxing.dm" +#include "code\datums\martial\cqc.dm" +#include "code\datums\martial\krav_maga.dm" +#include "code\datums\martial\mushpunch.dm" +#include "code\datums\martial\plasma_fist.dm" +#include "code\datums\martial\psychotic_brawl.dm" +#include "code\datums\martial\rising_bass.dm" +#include "code\datums\martial\sleeping_carp.dm" +#include "code\datums\martial\wrestling.dm" +#include "code\datums\materials\_material.dm" +#include "code\datums\materials\basemats.dm" +#include "code\datums\materials\meat.dm" +#include "code\datums\materials\pizza.dm" +#include "code\datums\mood_events\beauty_events.dm" +#include "code\datums\mood_events\drink_events.dm" +#include "code\datums\mood_events\drug_events.dm" +#include "code\datums\mood_events\generic_negative_events.dm" +#include "code\datums\mood_events\generic_positive_events.dm" +#include "code\datums\mood_events\mood_event.dm" +#include "code\datums\mood_events\needs_events.dm" +#include "code\datums\mutations\_mutations.dm" +#include "code\datums\mutations\actions.dm" +#include "code\datums\mutations\antenna.dm" +#include "code\datums\mutations\body.dm" +#include "code\datums\mutations\chameleon.dm" +#include "code\datums\mutations\cluwne.dm" +#include "code\datums\mutations\cold.dm" +#include "code\datums\mutations\combined.dm" +#include "code\datums\mutations\hulk.dm" +#include "code\datums\mutations\radioactive.dm" +#include "code\datums\mutations\sight.dm" +#include "code\datums\mutations\space_adaptation.dm" +#include "code\datums\mutations\speech.dm" +#include "code\datums\mutations\telekinesis.dm" +#include "code\datums\ruins\icemoon.dm" +#include "code\datums\ruins\lavaland.dm" +#include "code\datums\ruins\space.dm" +#include "code\datums\ruins\station.dm" +#include "code\datums\skills\_check_skills.dm" +#include "code\datums\skills\_skill.dm" +#include "code\datums\skills\_skill_holder.dm" +#include "code\datums\skills\_skill_modifier.dm" +#include "code\datums\skills\blacksmithing.dm" +#include "code\datums\skills\engineering.dm" +#include "code\datums\skills\medical.dm" +#include "code\datums\skills\modifiers\job.dm" +#include "code\datums\skills\modifiers\mood.dm" +#include "code\datums\skills\modifiers\organs.dm" +#include "code\datums\status_effects\buffs.dm" +#include "code\datums\status_effects\debuffs.dm" +#include "code\datums\status_effects\gas.dm" +#include "code\datums\status_effects\neutral.dm" +#include "code\datums\status_effects\status_effect.dm" +#include "code\datums\status_effects\wound_effects.dm" +#include "code\datums\traits\_quirk.dm" +#include "code\datums\traits\good.dm" +#include "code\datums\traits\negative.dm" +#include "code\datums\traits\neutral.dm" +#include "code\datums\weather\weather.dm" +#include "code\datums\weather\weather_types\acid_rain.dm" +#include "code\datums\weather\weather_types\ash_storm.dm" +#include "code\datums\weather\weather_types\floor_is_lava.dm" +#include "code\datums\weather\weather_types\radiation_storm.dm" +#include "code\datums\weather\weather_types\snow_storm.dm" +#include "code\datums\weather\weather_types\void_storm.dm" +#include "code\datums\wires\_wires.dm" +#include "code\datums\wires\airalarm.dm" +#include "code\datums\wires\airlock.dm" +#include "code\datums\wires\apc.dm" +#include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\emitter.dm" +#include "code\datums\wires\explosive.dm" +#include "code\datums\wires\microwave.dm" +#include "code\datums\wires\mulebot.dm" +#include "code\datums\wires\particle_accelerator.dm" +#include "code\datums\wires\r_n_d.dm" +#include "code\datums\wires\radio.dm" +#include "code\datums\wires\robot.dm" +#include "code\datums\wires\suit_storage_unit.dm" +#include "code\datums\wires\syndicatebomb.dm" +#include "code\datums\wires\tesla_coil.dm" +#include "code\datums\wires\vending.dm" +#include "code\datums\wounds\_scars.dm" +#include "code\datums\wounds\_wounds.dm" +#include "code\datums\wounds\bones.dm" +#include "code\datums\wounds\burns.dm" +#include "code\datums\wounds\loss.dm" +#include "code\datums\wounds\pierce.dm" +#include "code\datums\wounds\slash.dm" +#include "code\game\alternate_appearance.dm" +#include "code\game\atoms.dm" +#include "code\game\atoms_movable.dm" +#include "code\game\atoms_movement.dm" +#include "code\game\communications.dm" +#include "code\game\data_huds.dm" +#include "code\game\say.dm" +#include "code\game\shuttle_engines.dm" +#include "code\game\sound.dm" +#include "code\game\world.dm" +#include "code\game\area\ai_monitored.dm" +#include "code\game\area\areas.dm" +#include "code\game\area\Space_Station_13_areas.dm" +#include "code\game\area\areas\away_content.dm" +#include "code\game\area\areas\centcom.dm" +#include "code\game\area\areas\holodeck.dm" +#include "code\game\area\areas\mining.dm" +#include "code\game\area\areas\shuttles.dm" +#include "code\game\area\areas\ruins\_ruins.dm" +#include "code\game\area\areas\ruins\icemoon.dm" +#include "code\game\area\areas\ruins\lavaland.dm" +#include "code\game\area\areas\ruins\space.dm" +#include "code\game\area\areas\ruins\templates.dm" +#include "code\game\gamemodes\events.dm" +#include "code\game\gamemodes\game_mode.dm" +#include "code\game\gamemodes\objective.dm" +#include "code\game\gamemodes\objective_items.dm" +#include "code\game\gamemodes\objective_sabotage.dm" +#include "code\game\gamemodes\bloodsucker\bloodsucker.dm" +#include "code\game\gamemodes\bloodsucker\hunter.dm" +#include "code\game\gamemodes\brother\traitor_bro.dm" +#include "code\game\gamemodes\changeling\changeling.dm" +#include "code\game\gamemodes\changeling\traitor_chan.dm" +#include "code\game\gamemodes\clock_cult\clock_cult.dm" +#include "code\game\gamemodes\clown_ops\bananium_bomb.dm" +#include "code\game\gamemodes\clown_ops\clown_ops.dm" +#include "code\game\gamemodes\clown_ops\clown_weapons.dm" +#include "code\game\gamemodes\cult\cult.dm" +#include "code\game\gamemodes\devil\devil_game_mode.dm" +#include "code\game\gamemodes\devil\game_mode.dm" +#include "code\game\gamemodes\devil\objectives.dm" +#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" +#include "code\game\gamemodes\dynamic\dynamic.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_minor.dm" +#include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" +#include "code\game\gamemodes\dynamic\dynamic_storytellers.dm" +#include "code\game\gamemodes\eldritch_cult\eldritch_cult.dm" +#include "code\game\gamemodes\extended\extended.dm" +#include "code\game\gamemodes\gangs\dominator.dm" +#include "code\game\gamemodes\gangs\dominator_countdown.dm" +#include "code\game\gamemodes\gangs\gang.dm" +#include "code\game\gamemodes\gangs\gang_datums.dm" +#include "code\game\gamemodes\gangs\gang_decals.dm" +#include "code\game\gamemodes\gangs\gang_hud.dm" +#include "code\game\gamemodes\gangs\gang_items.dm" +#include "code\game\gamemodes\gangs\gang_pen.dm" +#include "code\game\gamemodes\gangs\gangs.dm" +#include "code\game\gamemodes\gangs\gangtool.dm" +#include "code\game\gamemodes\gangs\implant_gang.dm" +#include "code\game\gamemodes\meteor\meteor.dm" +#include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\monkey\monkey.dm" +#include "code\game\gamemodes\nuclear\nuclear.dm" +#include "code\game\gamemodes\overthrow\objective.dm" +#include "code\game\gamemodes\overthrow\overthrow.dm" +#include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\sandbox\airlock_maker.dm" +#include "code\game\gamemodes\sandbox\h_sandbox.dm" +#include "code\game\gamemodes\sandbox\sandbox.dm" +#include "code\game\gamemodes\traitor\double_agents.dm" +#include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\machinery\_machinery.dm" +#include "code\game\machinery\ai_slipper.dm" +#include "code\game\machinery\airlock_control.dm" +#include "code\game\machinery\announcement_system.dm" +#include "code\game\machinery\aug_manipulator.dm" +#include "code\game\machinery\autolathe.dm" +#include "code\game\machinery\bank_machine.dm" +#include "code\game\machinery\Beacon.dm" +#include "code\game\machinery\bloodbankgen.dm" +#include "code\game\machinery\buttons.dm" +#include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\cloning.dm" +#include "code\game\machinery\colormate.dm" +#include "code\game\machinery\constructable_frame.dm" +#include "code\game\machinery\cryopod.dm" +#include "code\game\machinery\dance_machine.dm" +#include "code\game\machinery\defibrillator_mount.dm" +#include "code\game\machinery\deployable.dm" +#include "code\game\machinery\dish_drive.dm" +#include "code\game\machinery\dna_scanner.dm" +#include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\droneDispenser.dm" +#include "code\game\machinery\firealarm.dm" +#include "code\game\machinery\flasher.dm" +#include "code\game\machinery\gulag_item_reclaimer.dm" +#include "code\game\machinery\gulag_teleporter.dm" +#include "code\game\machinery\harvester.dm" +#include "code\game\machinery\hologram.dm" +#include "code\game\machinery\hypnochair.dm" +#include "code\game\machinery\igniter.dm" +#include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\launch_pad.dm" +#include "code\game\machinery\lightswitch.dm" +#include "code\game\machinery\limbgrower.dm" +#include "code\game\machinery\magnet.dm" +#include "code\game\machinery\mass_driver.dm" +#include "code\game\machinery\navbeacon.dm" +#include "code\game\machinery\PDApainter.dm" +#include "code\game\machinery\quantum_pad.dm" +#include "code\game\machinery\recharger.dm" +#include "code\game\machinery\rechargestation.dm" +#include "code\game\machinery\recycler.dm" +#include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\sheetifier.dm" +#include "code\game\machinery\shieldgen.dm" +#include "code\game\machinery\Sleeper.dm" +#include "code\game\machinery\slotmachine.dm" +#include "code\game\machinery\spaceheater.dm" +#include "code\game\machinery\status_display.dm" +#include "code\game\machinery\suit_storage_unit.dm" +#include "code\game\machinery\syndicatebeacon.dm" +#include "code\game\machinery\syndicatebomb.dm" +#include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\transformer.dm" +#include "code\game\machinery\turnstile.dm" +#include "code\game\machinery\washing_machine.dm" +#include "code\game\machinery\wishgranter.dm" +#include "code\game\machinery\camera\camera.dm" +#include "code\game\machinery\camera\camera_assembly.dm" +#include "code\game\machinery\camera\motion.dm" +#include "code\game\machinery\camera\presets.dm" +#include "code\game\machinery\camera\tracking.dm" +#include "code\game\machinery\computer\_computer.dm" +#include "code\game\machinery\computer\aifixer.dm" +#include "code\game\machinery\computer\apc_control.dm" +#include "code\game\machinery\computer\arcade.dm" +#include "code\game\machinery\computer\atmos_alert.dm" +#include "code\game\machinery\computer\atmos_control.dm" +#include "code\game\machinery\computer\buildandrepair.dm" +#include "code\game\machinery\computer\camera.dm" +#include "code\game\machinery\computer\camera_advanced.dm" +#include "code\game\machinery\computer\card.dm" +#include "code\game\machinery\computer\cloning.dm" +#include "code\game\machinery\computer\communications.dm" +#include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\dna_console.dm" +#include "code\game\machinery\computer\launchpad_control.dm" +#include "code\game\machinery\computer\law.dm" +#include "code\game\machinery\computer\medical.dm" +#include "code\game\machinery\computer\Operating.dm" +#include "code\game\machinery\computer\pod.dm" +#include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\security.dm" +#include "code\game\machinery\computer\station_alert.dm" +#include "code\game\machinery\computer\telecrystalconsoles.dm" +#include "code\game\machinery\computer\teleporter.dm" +#include "code\game\machinery\computer\arcade\battle.dm" +#include "code\game\machinery\computer\arcade\minesweeper.dm" +#include "code\game\machinery\computer\arcade\misc_arcade.dm" +#include "code\game\machinery\computer\arcade\orion_trail.dm" +#include "code\game\machinery\computer\prisoner\_prisoner.dm" +#include "code\game\machinery\computer\prisoner\gulag_teleporter.dm" +#include "code\game\machinery\computer\prisoner\management.dm" +#include "code\game\machinery\doors\airlock.dm" +#include "code\game\machinery\doors\airlock_electronics.dm" +#include "code\game\machinery\doors\airlock_types.dm" +#include "code\game\machinery\doors\alarmlock.dm" +#include "code\game\machinery\doors\brigdoors.dm" +#include "code\game\machinery\doors\checkForMultipleDoors.dm" +#include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\passworddoor.dm" +#include "code\game\machinery\doors\poddoor.dm" +#include "code\game\machinery\doors\shutters.dm" +#include "code\game\machinery\doors\unpowered.dm" +#include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\embedded_controller\access_controller.dm" +#include "code\game\machinery\embedded_controller\airlock_controller.dm" +#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" +#include "code\game\machinery\embedded_controller\simple_vent_controller.dm" +#include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\pipe_dispenser.dm" +#include "code\game\machinery\porta_turret\portable_turret.dm" +#include "code\game\machinery\porta_turret\portable_turret_construct.dm" +#include "code\game\machinery\porta_turret\portable_turret_cover.dm" +#include "code\game\machinery\poweredfans\fan_assembly.dm" +#include "code\game\machinery\poweredfans\poweredfans.dm" +#include "code\game\machinery\shuttle\custom_shuttle.dm" +#include "code\game\machinery\shuttle\shuttle_engine.dm" +#include "code\game\machinery\shuttle\shuttle_heater.dm" +#include "code\game\machinery\telecomms\broadcasting.dm" +#include "code\game\machinery\telecomms\machine_interactions.dm" +#include "code\game\machinery\telecomms\telecomunications.dm" +#include "code\game\machinery\telecomms\computers\logbrowser.dm" +#include "code\game\machinery\telecomms\computers\message.dm" +#include "code\game\machinery\telecomms\computers\telemonitor.dm" +#include "code\game\machinery\telecomms\machines\allinone.dm" +#include "code\game\machinery\telecomms\machines\broadcaster.dm" +#include "code\game\machinery\telecomms\machines\bus.dm" +#include "code\game\machinery\telecomms\machines\hub.dm" +#include "code\game\machinery\telecomms\machines\message_server.dm" +#include "code\game\machinery\telecomms\machines\processor.dm" +#include "code\game\machinery\telecomms\machines\receiver.dm" +#include "code\game\machinery\telecomms\machines\relay.dm" +#include "code\game\machinery\telecomms\machines\server.dm" +#include "code\game\mecha\mech_bay.dm" +#include "code\game\mecha\mech_fabricator.dm" +#include "code\game\mecha\mecha.dm" +#include "code\game\mecha\mecha_actions.dm" +#include "code\game\mecha\mecha_construction_paths.dm" +#include "code\game\mecha\mecha_control_console.dm" +#include "code\game\mecha\mecha_defense.dm" +#include "code\game\mecha\mecha_parts.dm" +#include "code\game\mecha\mecha_topic.dm" +#include "code\game\mecha\mecha_wreckage.dm" +#include "code\game\mecha\combat\combat.dm" +#include "code\game\mecha\combat\durand.dm" +#include "code\game\mecha\combat\gygax.dm" +#include "code\game\mecha\combat\honker.dm" +#include "code\game\mecha\combat\marauder.dm" +#include "code\game\mecha\combat\neovgre.dm" +#include "code\game\mecha\combat\phazon.dm" +#include "code\game\mecha\combat\reticence.dm" +#include "code\game\mecha\equipment\mecha_equipment.dm" +#include "code\game\mecha\equipment\tools\medical_tools.dm" +#include "code\game\mecha\equipment\tools\mining_tools.dm" +#include "code\game\mecha\equipment\tools\other_tools.dm" +#include "code\game\mecha\equipment\tools\work_tools.dm" +#include "code\game\mecha\equipment\weapons\mecha_ammo.dm" +#include "code\game\mecha\equipment\weapons\weapons.dm" +#include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\medigax.dm" +#include "code\game\mecha\medical\odysseus.dm" +#include "code\game\mecha\working\ripley.dm" +#include "code\game\mecha\working\working.dm" +#include "code\game\objects\buckling.dm" +#include "code\game\objects\empulse.dm" +#include "code\game\objects\items.dm" +#include "code\game\objects\obj_defense.dm" +#include "code\game\objects\objs.dm" +#include "code\game\objects\structures.dm" +#include "code\game\objects\effects\alien_acid.dm" +#include "code\game\objects\effects\anomalies.dm" +#include "code\game\objects\effects\arachnid_web.dm" +#include "code\game\objects\effects\blessing.dm" +#include "code\game\objects\effects\bump_teleporter.dm" +#include "code\game\objects\effects\contraband.dm" +#include "code\game\objects\effects\countdown.dm" +#include "code\game\objects\effects\effects.dm" +#include "code\game\objects\effects\forcefields.dm" +#include "code\game\objects\effects\glowshroom.dm" +#include "code\game\objects\effects\landmarks.dm" +#include "code\game\objects\effects\mines.dm" +#include "code\game\objects\effects\misc.dm" +#include "code\game\objects\effects\overlays.dm" +#include "code\game\objects\effects\portals.dm" +#include "code\game\objects\effects\proximity.dm" +#include "code\game\objects\effects\spiders.dm" +#include "code\game\objects\effects\step_triggers.dm" +#include "code\game\objects\effects\wanted_poster.dm" +#include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\crayon.dm" +#include "code\game\objects\effects\decals\decal.dm" +#include "code\game\objects\effects\decals\misc.dm" +#include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\vgdecals.dm" +#include "code\game\objects\effects\decals\cleanable\aliens.dm" +#include "code\game\objects\effects\decals\cleanable\gibs.dm" +#include "code\game\objects\effects\decals\cleanable\humans.dm" +#include "code\game\objects\effects\decals\cleanable\misc.dm" +#include "code\game\objects\effects\decals\cleanable\robots.dm" +#include "code\game\objects\effects\decals\turfdecal\dirt.dm" +#include "code\game\objects\effects\decals\turfdecal\markings.dm" +#include "code\game\objects\effects\decals\turfdecal\tilecoloring.dm" +#include "code\game\objects\effects\decals\turfdecal\weather.dm" +#include "code\game\objects\effects\effect_system\effect_system.dm" +#include "code\game\objects\effects\effect_system\effects_explosion.dm" +#include "code\game\objects\effects\effect_system\effects_foam.dm" +#include "code\game\objects\effects\effect_system\effects_other.dm" +#include "code\game\objects\effects\effect_system\effects_smoke.dm" +#include "code\game\objects\effects\effect_system\effects_sparks.dm" +#include "code\game\objects\effects\effect_system\effects_water.dm" +#include "code\game\objects\effects\spawners\bombspawner.dm" +#include "code\game\objects\effects\spawners\bundle.dm" +#include "code\game\objects\effects\spawners\gibspawner.dm" +#include "code\game\objects\effects\spawners\lootdrop.dm" +#include "code\game\objects\effects\spawners\structure.dm" +#include "code\game\objects\effects\spawners\traps.dm" +#include "code\game\objects\effects\spawners\vaultspawner.dm" +#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" +#include "code\game\objects\effects\temporary_visuals\clockcult.dm" +#include "code\game\objects\effects\temporary_visuals\cult.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" +#include "code\game\objects\items\AI_modules.dm" +#include "code\game\objects\items\airlock_painter.dm" +#include "code\game\objects\items\apc_frame.dm" +#include "code\game\objects\items\armor_kits.dm" +#include "code\game\objects\items\binoculars.dm" +#include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\body_egg.dm" +#include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\boombox.dm" +#include "code\game\objects\items\broom.dm" +#include "code\game\objects\items\candle.dm" +#include "code\game\objects\items\cardboard_cutouts.dm" +#include "code\game\objects\items\cards_ids.dm" +#include "code\game\objects\items\chainsaw.dm" +#include "code\game\objects\items\charter.dm" +#include "code\game\objects\items\chromosome.dm" +#include "code\game\objects\items\chrono_eraser.dm" +#include "code\game\objects\items\cigs_lighters.dm" +#include "code\game\objects\items\clown_items.dm" +#include "code\game\objects\items\control_wand.dm" +#include "code\game\objects\items\cosmetics.dm" +#include "code\game\objects\items\courtroom.dm" +#include "code\game\objects\items\crab17.dm" +#include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\credit_holochip.dm" +#include "code\game\objects\items\debug_items.dm" +#include "code\game\objects\items\defib.dm" +#include "code\game\objects\items\dehy_carp.dm" +#include "code\game\objects\items\dice.dm" +#include "code\game\objects\items\dna_injector.dm" +#include "code\game\objects\items\documents.dm" +#include "code\game\objects\items\dualsaber.dm" +#include "code\game\objects\items\eightball.dm" +#include "code\game\objects\items\electrostaff.dm" +#include "code\game\objects\items\extinguisher.dm" +#include "code\game\objects\items\fireaxe.dm" +#include "code\game\objects\items\flamethrower.dm" +#include "code\game\objects\items\fluff.dm" +#include "code\game\objects\items\gift.dm" +#include "code\game\objects\items\granters.dm" +#include "code\game\objects\items\handcuffs.dm" +#include "code\game\objects\items\his_grace.dm" +#include "code\game\objects\items\holosign_creator.dm" +#include "code\game\objects\items\holy_weapons.dm" +#include "code\game\objects\items\hot_potato.dm" +#include "code\game\objects\items\inducer.dm" +#include "code\game\objects\items\kitchen.dm" +#include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\manuals.dm" +#include "code\game\objects\items\miscellaneous.dm" +#include "code\game\objects\items\mop.dm" +#include "code\game\objects\items\paint.dm" +#include "code\game\objects\items\paiwire.dm" +#include "code\game\objects\items\pet_carrier.dm" +#include "code\game\objects\items\pinpointer.dm" +#include "code\game\objects\items\pitchfork.dm" +#include "code\game\objects\items\plushes.dm" +#include "code\game\objects\items\pneumaticCannon.dm" +#include "code\game\objects\items\powerfist.dm" +#include "code\game\objects\items\puzzle_pieces.dm" +#include "code\game\objects\items\RCD.dm" +#include "code\game\objects\items\RCL.dm" +#include "code\game\objects\items\religion.dm" +#include "code\game\objects\items\RPD.dm" +#include "code\game\objects\items\RSF.dm" +#include "code\game\objects\items\scrolls.dm" +#include "code\game\objects\items\sharpener.dm" +#include "code\game\objects\items\shields.dm" +#include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\shrapnel.dm" +#include "code\game\objects\items\signs.dm" +#include "code\game\objects\items\singularityhammer.dm" +#include "code\game\objects\items\spear.dm" +#include "code\game\objects\items\stunbaton.dm" +#include "code\game\objects\items\taster.dm" +#include "code\game\objects\items\teleportation.dm" +#include "code\game\objects\items\teleprod.dm" +#include "code\game\objects\items\telescopic_iv.dm" +#include "code\game\objects\items\theft_tools.dm" +#include "code\game\objects\items\toys.dm" +#include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\vending_items.dm" +#include "code\game\objects\items\weaponry.dm" +#include "code\game\objects\items\circuitboards\circuitboard.dm" +#include "code\game\objects\items\circuitboards\computer_circuitboards.dm" +#include "code\game\objects\items\circuitboards\machine_circuitboards.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\anomaly_neutralizer.dm" +#include "code\game\objects\items\devices\beacon.dm" +#include "code\game\objects\items\devices\camera_bug.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\compressionkit.dm" +#include "code\game\objects\items\devices\desynchronizer.dm" +#include "code\game\objects\items\devices\dogborg_sleeper.dm" +#include "code\game\objects\items\devices\doorCharge.dm" +#include "code\game\objects\items\devices\electroadaptive_pseudocircuit.dm" +#include "code\game\objects\items\devices\electrochromatic_kit.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\forcefieldprojector.dm" +#include "code\game\objects\items\devices\geiger_counter.dm" +#include "code\game\objects\items\devices\glue.dm" +#include "code\game\objects\items\devices\gps.dm" +#include "code\game\objects\items\devices\laserpointer.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\megaphone.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\polycircuit.dm" +#include "code\game\objects\items\devices\portable_chem_mixer.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\pressureplates.dm" +#include "code\game\objects\items\devices\quantum_keycard.dm" +#include "code\game\objects\items\devices\reverse_bear_trap.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\sensor_device.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\PDA\cart.dm" +#include "code\game\objects\items\devices\PDA\PDA.dm" +#include "code\game\objects\items\devices\PDA\PDA_types.dm" +#include "code\game\objects\items\devices\PDA\radio.dm" +#include "code\game\objects\items\devices\PDA\virus_cart.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\grenades\antigravity.dm" +#include "code\game\objects\items\grenades\chem_grenade.dm" +#include "code\game\objects\items\grenades\clusterbuster.dm" +#include "code\game\objects\items\grenades\emgrenade.dm" +#include "code\game\objects\items\grenades\flashbang.dm" +#include "code\game\objects\items\grenades\ghettobomb.dm" +#include "code\game\objects\items\grenades\grenade.dm" +#include "code\game\objects\items\grenades\plastic.dm" +#include "code\game\objects\items\grenades\smokebomb.dm" +#include "code\game\objects\items\grenades\spawnergrenade.dm" +#include "code\game\objects\items\grenades\syndieminibomb.dm" +#include "code\game\objects\items\implants\implant.dm" +#include "code\game\objects\items\implants\implant_abductor.dm" +#include "code\game\objects\items\implants\implant_chem.dm" +#include "code\game\objects\items\implants\implant_clown.dm" +#include "code\game\objects\items\implants\implant_deathrattle.dm" +#include "code\game\objects\items\implants\implant_exile.dm" +#include "code\game\objects\items\implants\implant_explosive.dm" +#include "code\game\objects\items\implants\implant_freedom.dm" +#include "code\game\objects\items\implants\implant_hijack.dm" +#include "code\game\objects\items\implants\implant_krav_maga.dm" +#include "code\game\objects\items\implants\implant_mindshield.dm" +#include "code\game\objects\items\implants\implant_misc.dm" +#include "code\game\objects\items\implants\implant_radio.dm" +#include "code\game\objects\items\implants\implant_spell.dm" +#include "code\game\objects\items\implants\implant_stealth.dm" +#include "code\game\objects\items\implants\implant_storage.dm" +#include "code\game\objects\items\implants\implant_track.dm" +#include "code\game\objects\items\implants\implant_uplink.dm" +#include "code\game\objects\items\implants\implantcase.dm" +#include "code\game\objects\items\implants\implantchair.dm" +#include "code\game\objects\items\implants\implanter.dm" +#include "code\game\objects\items\implants\implantpad.dm" +#include "code\game\objects\items\melee\energy.dm" +#include "code\game\objects\items\melee\misc.dm" +#include "code\game\objects\items\melee\transforming.dm" +#include "code\game\objects\items\robot\ai_upgrades.dm" +#include "code\game\objects\items\robot\robot_items.dm" +#include "code\game\objects\items\robot\robot_parts.dm" +#include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\stacks\bscrystal.dm" +#include "code\game\objects\items\stacks\cash.dm" +#include "code\game\objects\items\stacks\medical.dm" +#include "code\game\objects\items\stacks\rods.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\tape.dm" +#include "code\game\objects\items\stacks\telecrystal.dm" +#include "code\game\objects\items\stacks\tickets.dm" +#include "code\game\objects\items\stacks\wrap.dm" +#include "code\game\objects\items\stacks\sheets\glass.dm" +#include "code\game\objects\items\stacks\sheets\leather.dm" +#include "code\game\objects\items\stacks\sheets\light.dm" +#include "code\game\objects\items\stacks\sheets\mineral.dm" +#include "code\game\objects\items\stacks\sheets\sheet_types.dm" +#include "code\game\objects\items\stacks\sheets\sheets.dm" +#include "code\game\objects\items\stacks\tiles\light.dm" +#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" +#include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\storage\_storage.dm" +#include "code\game\objects\items\storage\backpack.dm" +#include "code\game\objects\items\storage\bags.dm" +#include "code\game\objects\items\storage\belt.dm" +#include "code\game\objects\items\storage\book.dm" +#include "code\game\objects\items\storage\boxes.dm" +#include "code\game\objects\items\storage\briefcase.dm" +#include "code\game\objects\items\storage\dakis.dm" +#include "code\game\objects\items\storage\fancy.dm" +#include "code\game\objects\items\storage\firstaid.dm" +#include "code\game\objects\items\storage\lockbox.dm" +#include "code\game\objects\items\storage\secure.dm" +#include "code\game\objects\items\storage\toolbox.dm" +#include "code\game\objects\items\storage\uplink_kits.dm" +#include "code\game\objects\items\storage\wallets.dm" +#include "code\game\objects\items\tanks\jetpack.dm" +#include "code\game\objects\items\tanks\tank_types.dm" +#include "code\game\objects\items\tanks\tanks.dm" +#include "code\game\objects\items\tanks\watertank.dm" +#include "code\game\objects\items\tools\crowbar.dm" +#include "code\game\objects\items\tools\screwdriver.dm" +#include "code\game\objects\items\tools\weldingtool.dm" +#include "code\game\objects\items\tools\wirecutters.dm" +#include "code\game\objects\items\tools\wrench.dm" +#include "code\game\objects\structures\ai_core.dm" +#include "code\game\objects\structures\aliens.dm" +#include "code\game\objects\structures\artstuff.dm" +#include "code\game\objects\structures\barsigns.dm" +#include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\chess.dm" +#include "code\game\objects\structures\destructible_structures.dm" +#include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\divine.dm" +#include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\door_assembly_types.dm" +#include "code\game\objects\structures\dresser.dm" +#include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\false_walls.dm" +#include "code\game\objects\structures\femur_breaker.dm" +#include "code\game\objects\structures\fence.dm" +#include "code\game\objects\structures\fireaxe.dm" +#include "code\game\objects\structures\fireplace.dm" +#include "code\game\objects\structures\flora.dm" +#include "code\game\objects\structures\fluff.dm" +#include "code\game\objects\structures\fugitive_role_spawners.dm" +#include "code\game\objects\structures\ghost_role_spawners.dm" +#include "code\game\objects\structures\girders.dm" +#include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\guillotine.dm" +#include "code\game\objects\structures\guncase.dm" +#include "code\game\objects\structures\headpike.dm" +#include "code\game\objects\structures\hivebot.dm" +#include "code\game\objects\structures\holosign.dm" +#include "code\game\objects\structures\janicart.dm" +#include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\ladders.dm" +#include "code\game\objects\structures\lattice.dm" +#include "code\game\objects\structures\life_candle.dm" +#include "code\game\objects\structures\loom.dm" +#include "code\game\objects\structures\loot_pile.dm" +#include "code\game\objects\structures\manned_turret.dm" +#include "code\game\objects\structures\memorial.dm" +#include "code\game\objects\structures\mineral_doors.dm" +#include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\mop_bucket.dm" +#include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\noticeboard.dm" +#include "code\game\objects\structures\petrified_statue.dm" +#include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\railings.dm" +#include "code\game\objects\structures\reflector.dm" +#include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\showcase.dm" +#include "code\game\objects\structures\spawner.dm" +#include "code\game\objects\structures\spirit_board.dm" +#include "code\game\objects\structures\stairs.dm" +#include "code\game\objects\structures\statues.dm" +#include "code\game\objects\structures\table_frames.dm" +#include "code\game\objects\structures\tables_racks.dm" +#include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\traps.dm" +#include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\windoor_assembly.dm" +#include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\beds_chairs\alien_nest.dm" +#include "code\game\objects\structures\beds_chairs\bed.dm" +#include "code\game\objects\structures\beds_chairs\chair.dm" +#include "code\game\objects\structures\beds_chairs\pew.dm" +#include "code\game\objects\structures\beds_chairs\sofa.dm" +#include "code\game\objects\structures\crates_lockers\closets.dm" +#include "code\game\objects\structures\crates_lockers\crates.dm" +#include "code\game\objects\structures\crates_lockers\closets\bodybag.dm" +#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" +#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\genpop.dm" +#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" +#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" +#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\misc.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\crates_lockers\crates\bins.dm" +#include "code\game\objects\structures\crates_lockers\crates\critter.dm" +#include "code\game\objects\structures\crates_lockers\crates\large.dm" +#include "code\game\objects\structures\crates_lockers\crates\secure.dm" +#include "code\game\objects\structures\crates_lockers\crates\wooden.dm" +#include "code\game\objects\structures\icemoon\cave_entrance.dm" +#include "code\game\objects\structures\lavaland\geyser.dm" +#include "code\game\objects\structures\lavaland\necropolis_tendril.dm" +#include "code\game\objects\structures\signs\_signs.dm" +#include "code\game\objects\structures\signs\signs_departments.dm" +#include "code\game\objects\structures\signs\signs_maps.dm" +#include "code\game\objects\structures\signs\signs_plaques.dm" +#include "code\game\objects\structures\signs\signs_warning.dm" +#include "code\game\objects\structures\transit_tubes\station.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_construction.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" +#include "code\game\turfs\baseturf_skipover.dm" +#include "code\game\turfs\change_turf.dm" +#include "code\game\turfs\closed.dm" +#include "code\game\turfs\open.dm" +#include "code\game\turfs\turf.dm" +#include "code\game\turfs\simulated\chasm.dm" +#include "code\game\turfs\simulated\dirtystation.dm" +#include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\glass.dm" +#include "code\game\turfs\simulated\lava.dm" +#include "code\game\turfs\simulated\minerals.dm" +#include "code\game\turfs\simulated\openspace.dm" +#include "code\game\turfs\simulated\reebe_void.dm" +#include "code\game\turfs\simulated\river.dm" +#include "code\game\turfs\simulated\walls.dm" +#include "code\game\turfs\simulated\water.dm" +#include "code\game\turfs\simulated\floor\fancy_floor.dm" +#include "code\game\turfs\simulated\floor\light_floor.dm" +#include "code\game\turfs\simulated\floor\mineral_floor.dm" +#include "code\game\turfs\simulated\floor\misc_floor.dm" +#include "code\game\turfs\simulated\floor\plasteel_floor.dm" +#include "code\game\turfs\simulated\floor\plating.dm" +#include "code\game\turfs\simulated\floor\reinf_floor.dm" +#include "code\game\turfs\simulated\floor\plating\asteroid.dm" +#include "code\game\turfs\simulated\floor\plating\dirt.dm" +#include "code\game\turfs\simulated\floor\plating\misc_plating.dm" +#include "code\game\turfs\simulated\wall\material_walls.dm" +#include "code\game\turfs\simulated\wall\mineral_walls.dm" +#include "code\game\turfs\simulated\wall\misc_walls.dm" +#include "code\game\turfs\simulated\wall\reinf_walls.dm" +#include "code\game\turfs\space\space.dm" +#include "code\game\turfs\space\transit.dm" +#include "code\modules\actionspeed\_actionspeed_modifier.dm" +#include "code\modules\actionspeed\modifiers\base.dm" +#include "code\modules\actionspeed\modifiers\mood.dm" +#include "code\modules\actionspeed\modifiers\status_effects.dm" +#include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_investigate.dm" +#include "code\modules\admin\admin_ranks.dm" +#include "code\modules\admin\admin_verbs.dm" +#include "code\modules\admin\adminmenu.dm" +#include "code\modules\admin\antag_panel.dm" +#include "code\modules\admin\banjob.dm" +#include "code\modules\admin\chat_commands.dm" +#include "code\modules\admin\check_antagonists.dm" +#include "code\modules\admin\create_mob.dm" +#include "code\modules\admin\create_object.dm" +#include "code\modules\admin\create_poll.dm" +#include "code\modules\admin\create_turf.dm" +#include "code\modules\admin\fun_balloon.dm" +#include "code\modules\admin\holder2.dm" +#include "code\modules\admin\ipintel.dm" +#include "code\modules\admin\IsBanned.dm" +#include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\outfit_editor.dm" +#include "code\modules\admin\outfit_manager.dm" +#include "code\modules\admin\outfits.dm" +#include "code\modules\admin\permissionedit.dm" +#include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\sound_emitter.dm" +#include "code\modules\admin\sql_message_system.dm" +#include "code\modules\admin\stickyban.dm" +#include "code\modules\admin\topic.dm" +#include "code\modules\admin\whitelist.dm" +#include "code\modules\admin\callproc\callproc.dm" +#include "code\modules\admin\DB_ban\functions.dm" +#include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminjump.dm" +#include "code\modules\admin\verbs\adminpm.dm" +#include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\ak47s.dm" +#include "code\modules\admin\verbs\atmosdebug.dm" +#include "code\modules\admin\verbs\bluespacearty.dm" +#include "code\modules\admin\verbs\borgpanel.dm" +#include "code\modules\admin\verbs\BrokenInhands.dm" +#include "code\modules\admin\verbs\cinematic.dm" +#include "code\modules\admin\verbs\deadsay.dm" +#include "code\modules\admin\verbs\debug.dm" +#include "code\modules\admin\verbs\diagnostics.dm" +#include "code\modules\admin\verbs\dice.dm" +#include "code\modules\admin\verbs\fps.dm" +#include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\individual_logging.dm" +#include "code\modules\admin\verbs\machine_upgrade.dm" +#include "code\modules\admin\verbs\manipulate_organs.dm" +#include "code\modules\admin\verbs\map_template_loadverb.dm" +#include "code\modules\admin\verbs\mapping.dm" +#include "code\modules\admin\verbs\maprotation.dm" +#include "code\modules\admin\verbs\one_click_antag.dm" +#include "code\modules\admin\verbs\onlyone.dm" +#include "code\modules\admin\verbs\panicbunker.dm" +#include "code\modules\admin\verbs\playsound.dm" +#include "code\modules\admin\verbs\possess.dm" +#include "code\modules\admin\verbs\pray.dm" +#include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\reestablish_db_connection.dm" +#include "code\modules\admin\verbs\secrets.dm" +#include "code\modules\admin\verbs\selectequipment.dm" +#include "code\modules\admin\verbs\shuttlepanel.dm" +#include "code\modules\admin\verbs\spawnobjasmob.dm" +#include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" +#include "code\modules\admin\view_variables\admin_delete.dm" +#include "code\modules\admin\view_variables\debug_variables.dm" +#include "code\modules\admin\view_variables\filterrific.dm" +#include "code\modules\admin\view_variables\get_variables.dm" +#include "code\modules\admin\view_variables\mark_datum.dm" +#include "code\modules\admin\view_variables\mass_edit_variables.dm" +#include "code\modules\admin\view_variables\modify_variables.dm" +#include "code\modules\admin\view_variables\reference_tracking.dm" +#include "code\modules\admin\view_variables\topic.dm" +#include "code\modules\admin\view_variables\topic_basic.dm" +#include "code\modules\admin\view_variables\topic_list.dm" +#include "code\modules\admin\view_variables\view_variables.dm" +#include "code\modules\antagonists\_common\antag_datum.dm" +#include "code\modules\antagonists\_common\antag_helpers.dm" +#include "code\modules\antagonists\_common\antag_hud.dm" +#include "code\modules\antagonists\_common\antag_spawner.dm" +#include "code\modules\antagonists\_common\antag_team.dm" +#include "code\modules\antagonists\abductor\abductor.dm" +#include "code\modules\antagonists\abductor\ice_abductor.dm" +#include "code\modules\antagonists\abductor\abductee\abductee.dm" +#include "code\modules\antagonists\abductor\abductee\abductee_objectives.dm" +#include "code\modules\antagonists\abductor\abductee\trauma.dm" +#include "code\modules\antagonists\abductor\equipment\abduction_gear.dm" +#include "code\modules\antagonists\abductor\equipment\abduction_outfits.dm" +#include "code\modules\antagonists\abductor\equipment\abduction_surgery.dm" +#include "code\modules\antagonists\abductor\equipment\gland.dm" +#include "code\modules\antagonists\abductor\equipment\orderable_gear.dm" +#include "code\modules\antagonists\abductor\equipment\glands\access.dm" +#include "code\modules\antagonists\abductor\equipment\glands\blood.dm" +#include "code\modules\antagonists\abductor\equipment\glands\chem.dm" +#include "code\modules\antagonists\abductor\equipment\glands\egg.dm" +#include "code\modules\antagonists\abductor\equipment\glands\electric.dm" +#include "code\modules\antagonists\abductor\equipment\glands\heal.dm" +#include "code\modules\antagonists\abductor\equipment\glands\mindshock.dm" +#include "code\modules\antagonists\abductor\equipment\glands\plasma.dm" +#include "code\modules\antagonists\abductor\equipment\glands\quantum.dm" +#include "code\modules\antagonists\abductor\equipment\glands\slime.dm" +#include "code\modules\antagonists\abductor\equipment\glands\spider.dm" +#include "code\modules\antagonists\abductor\equipment\glands\transform.dm" +#include "code\modules\antagonists\abductor\equipment\glands\trauma.dm" +#include "code\modules\antagonists\abductor\equipment\glands\ventcrawl.dm" +#include "code\modules\antagonists\abductor\equipment\glands\viral.dm" +#include "code\modules\antagonists\abductor\machinery\camera.dm" +#include "code\modules\antagonists\abductor\machinery\console.dm" +#include "code\modules\antagonists\abductor\machinery\dispenser.dm" +#include "code\modules\antagonists\abductor\machinery\experiment.dm" +#include "code\modules\antagonists\abductor\machinery\pad.dm" +#include "code\modules\antagonists\blob\blob.dm" +#include "code\modules\antagonists\blob\blob\blob_report.dm" +#include "code\modules\antagonists\blob\blob\overmind.dm" +#include "code\modules\antagonists\blob\blob\powers.dm" +#include "code\modules\antagonists\blob\blob\theblob.dm" +#include "code\modules\antagonists\blob\blob\blobs\blob_mobs.dm" +#include "code\modules\antagonists\blob\blob\blobs\core.dm" +#include "code\modules\antagonists\blob\blob\blobs\factory.dm" +#include "code\modules\antagonists\blob\blob\blobs\node.dm" +#include "code\modules\antagonists\blob\blob\blobs\resource.dm" +#include "code\modules\antagonists\blob\blob\blobs\shield.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\_blobstrain.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\_reagent.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\blazing_oil.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\cryogenic_poison.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\electromagnetic_web.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\energized_jelly.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\explosive_lattice.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\multiplex.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\networked_fibers.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\pressurized_slime.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\reactive_spines.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\regenerative_materia.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\replicating_foam.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\shifting_fragments.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\synchronous_mesh.dm" +#include "code\modules\antagonists\blob\blob\blobstrains\zombifying_pods.dm" +#include "code\modules\antagonists\blood_contract\blood_contract.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_flaws.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_integration.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_life.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_objectives.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_powers.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_sunlight.dm" +#include "code\modules\antagonists\bloodsucker\bloodsucker_ui.dm" +#include "code\modules\antagonists\bloodsucker\datum_bloodsucker.dm" +#include "code\modules\antagonists\bloodsucker\datum_hunter.dm" +#include "code\modules\antagonists\bloodsucker\datum_vassal.dm" +#include "code\modules\antagonists\bloodsucker\items\bloodsucker_organs.dm" +#include "code\modules\antagonists\bloodsucker\items\bloodsucker_stake.dm" +#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_coffin.dm" +#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_crypt.dm" +#include "code\modules\antagonists\bloodsucker\objects\bloodsucker_lair.dm" +#include "code\modules\antagonists\bloodsucker\powers\brawn.dm" +#include "code\modules\antagonists\bloodsucker\powers\cloak.dm" +#include "code\modules\antagonists\bloodsucker\powers\feed.dm" +#include "code\modules\antagonists\bloodsucker\powers\fortitude.dm" +#include "code\modules\antagonists\bloodsucker\powers\go_home.dm" +#include "code\modules\antagonists\bloodsucker\powers\haste.dm" +#include "code\modules\antagonists\bloodsucker\powers\lunge.dm" +#include "code\modules\antagonists\bloodsucker\powers\masquerade.dm" +#include "code\modules\antagonists\bloodsucker\powers\mesmerize.dm" +#include "code\modules\antagonists\bloodsucker\powers\recuperate.dm" +#include "code\modules\antagonists\bloodsucker\powers\trespass.dm" +#include "code\modules\antagonists\bloodsucker\powers\veil.dm" +#include "code\modules\antagonists\brainwashing\brainwashing.dm" +#include "code\modules\antagonists\brother\brother.dm" +#include "code\modules\antagonists\changeling\cellular_emporium.dm" +#include "code\modules\antagonists\changeling\changeling.dm" +#include "code\modules\antagonists\changeling\changeling_power.dm" +#include "code\modules\antagonists\changeling\powers\absorb.dm" +#include "code\modules\antagonists\changeling\powers\adrenaline.dm" +#include "code\modules\antagonists\changeling\powers\augmented_eyesight.dm" +#include "code\modules\antagonists\changeling\powers\biodegrade.dm" +#include "code\modules\antagonists\changeling\powers\chameleon_skin.dm" +#include "code\modules\antagonists\changeling\powers\digitalcamo.dm" +#include "code\modules\antagonists\changeling\powers\fakedeath.dm" +#include "code\modules\antagonists\changeling\powers\fleshmend.dm" +#include "code\modules\antagonists\changeling\powers\headcrab.dm" +#include "code\modules\antagonists\changeling\powers\hivemind.dm" +#include "code\modules\antagonists\changeling\powers\humanform.dm" +#include "code\modules\antagonists\changeling\powers\lesserform.dm" +#include "code\modules\antagonists\changeling\powers\linglink.dm" +#include "code\modules\antagonists\changeling\powers\mimic_voice.dm" +#include "code\modules\antagonists\changeling\powers\mutations.dm" +#include "code\modules\antagonists\changeling\powers\panacea.dm" +#include "code\modules\antagonists\changeling\powers\pheromone_receptors.dm" +#include "code\modules\antagonists\changeling\powers\regenerate.dm" +#include "code\modules\antagonists\changeling\powers\revive.dm" +#include "code\modules\antagonists\changeling\powers\shriek.dm" +#include "code\modules\antagonists\changeling\powers\spiders.dm" +#include "code\modules\antagonists\changeling\powers\strained_muscles.dm" +#include "code\modules\antagonists\changeling\powers\tiny_prick.dm" +#include "code\modules\antagonists\changeling\powers\transform.dm" +#include "code\modules\antagonists\clockcult\clock_effect.dm" +#include "code\modules\antagonists\clockcult\clock_item.dm" +#include "code\modules\antagonists\clockcult\clock_mobs.dm" +#include "code\modules\antagonists\clockcult\clock_scripture.dm" +#include "code\modules\antagonists\clockcult\clock_structure.dm" +#include "code\modules\antagonists\clockcult\clockcult.dm" +#include "code\modules\antagonists\clockcult\clock_effects\city_of_cogs_rift.dm" +#include "code\modules\antagonists\clockcult\clock_effects\clock_overlay.dm" +#include "code\modules\antagonists\clockcult\clock_effects\clock_sigils.dm" +#include "code\modules\antagonists\clockcult\clock_effects\general_markers.dm" +#include "code\modules\antagonists\clockcult\clock_effects\servant_blocker.dm" +#include "code\modules\antagonists\clockcult\clock_effects\spatial_gateway.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\clock_powerdrain.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\clock_rites.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\component_helpers.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\fabrication_helpers.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\hierophant_network.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\power_helpers.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\ratvarian_language.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\scripture_checks.dm" +#include "code\modules\antagonists\clockcult\clock_helpers\slab_abilities.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_augments.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_components.dm" +#include "code\modules\antagonists\clockcult\clock_items\clockwork_armor.dm" +#include "code\modules\antagonists\clockcult\clock_items\clockwork_slab.dm" +#include "code\modules\antagonists\clockcult\clock_items\clockwork_weaponry.dm" +#include "code\modules\antagonists\clockcult\clock_items\construct_chassis.dm" +#include "code\modules\antagonists\clockcult\clock_items\integration_cog.dm" +#include "code\modules\antagonists\clockcult\clock_items\judicial_visor.dm" +#include "code\modules\antagonists\clockcult\clock_items\replica_fabricator.dm" +#include "code\modules\antagonists\clockcult\clock_items\soul_vessel.dm" +#include "code\modules\antagonists\clockcult\clock_items\wraith_spectacles.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\_call_weapon.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\brass_claw.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_shield.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_spear.dm" +#include "code\modules\antagonists\clockcult\clock_mobs\_eminence.dm" +#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_guardian.dm" +#include "code\modules\antagonists\clockcult\clock_mobs\clockwork_marauder.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_applications.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_cyborg.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_drivers.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_judgement.dm" +#include "code\modules\antagonists\clockcult\clock_scriptures\scripture_scripts.dm" +#include "code\modules\antagonists\clockcult\clock_structures\_trap_object.dm" +#include "code\modules\antagonists\clockcult\clock_structures\ark_of_the_clockwork_justicar.dm" +#include "code\modules\antagonists\clockcult\clock_structures\clockwork_obelisk.dm" +#include "code\modules\antagonists\clockcult\clock_structures\eminence_spire.dm" +#include "code\modules\antagonists\clockcult\clock_structures\heralds_beacon.dm" +#include "code\modules\antagonists\clockcult\clock_structures\mania_motor.dm" +#include "code\modules\antagonists\clockcult\clock_structures\ocular_warden.dm" +#include "code\modules\antagonists\clockcult\clock_structures\prolonging_prism.dm" +#include "code\modules\antagonists\clockcult\clock_structures\ratvar_the_clockwork_justicar.dm" +#include "code\modules\antagonists\clockcult\clock_structures\reflector.dm" +#include "code\modules\antagonists\clockcult\clock_structures\stargazer.dm" +#include "code\modules\antagonists\clockcult\clock_structures\taunting_trail.dm" +#include "code\modules\antagonists\clockcult\clock_structures\wall_gear.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\lever.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\pressure_sensor_mech.dm" +#include "code\modules\antagonists\clockcult\clock_structures\trap_triggers\repeater.dm" +#include "code\modules\antagonists\clockcult\clock_structures\traps\brass_skewer.dm" +#include "code\modules\antagonists\clockcult\clock_structures\traps\power_null.dm" +#include "code\modules\antagonists\clockcult\clock_structures\traps\steam_vent.dm" +#include "code\modules\antagonists\collector\collector.dm" +#include "code\modules\antagonists\cult\blood_magic.dm" +#include "code\modules\antagonists\cult\cult.dm" +#include "code\modules\antagonists\cult\cult_comms.dm" +#include "code\modules\antagonists\cult\cult_items.dm" +#include "code\modules\antagonists\cult\cult_structures.dm" +#include "code\modules\antagonists\cult\ritual.dm" +#include "code\modules\antagonists\cult\rune_spawn_action.dm" +#include "code\modules\antagonists\cult\runes.dm" +#include "code\modules\antagonists\devil\devil.dm" +#include "code\modules\antagonists\devil\devil_helpers.dm" +#include "code\modules\antagonists\devil\imp\imp.dm" +#include "code\modules\antagonists\devil\sintouched\objectives.dm" +#include "code\modules\antagonists\devil\sintouched\sintouched.dm" +#include "code\modules\antagonists\devil\true_devil\_true_devil.dm" +#include "code\modules\antagonists\devil\true_devil\inventory.dm" +#include "code\modules\antagonists\disease\disease_abilities.dm" +#include "code\modules\antagonists\disease\disease_datum.dm" +#include "code\modules\antagonists\disease\disease_disease.dm" +#include "code\modules\antagonists\disease\disease_event.dm" +#include "code\modules\antagonists\disease\disease_mob.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_antag.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_book.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_effects.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_items.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_knowledge.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_magic.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_monster_antag.dm" +#include "code\modules\antagonists\eldritch_cult\eldritch_structures.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\ash_lore.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\flesh_lore.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\rust_lore.dm" +#include "code\modules\antagonists\eldritch_cult\knowledge\void_lore.dm" +#include "code\modules\antagonists\ert\ert.dm" +#include "code\modules\antagonists\fugitive\fugitive.dm" +#include "code\modules\antagonists\fugitive\fugitive_outfits.dm" +#include "code\modules\antagonists\fugitive\fugitive_ship.dm" +#include "code\modules\antagonists\fugitive\hunter.dm" +#include "code\modules\antagonists\greentext\greentext.dm" +#include "code\modules\antagonists\greybois\greybois.dm" +#include "code\modules\antagonists\highlander\highlander.dm" +#include "code\modules\antagonists\magic_servant\magic_servant.dm" +#include "code\modules\antagonists\monkey\monkey.dm" +#include "code\modules\antagonists\morph\morph.dm" +#include "code\modules\antagonists\morph\morph_antag.dm" +#include "code\modules\antagonists\nightmare\nightmare.dm" +#include "code\modules\antagonists\ninja\ninja.dm" +#include "code\modules\antagonists\nukeop\clownop.dm" +#include "code\modules\antagonists\nukeop\nukeop.dm" +#include "code\modules\antagonists\nukeop\equipment\borgchameleon.dm" +#include "code\modules\antagonists\nukeop\equipment\nuclear_challenge.dm" +#include "code\modules\antagonists\nukeop\equipment\nuclearbomb.dm" +#include "code\modules\antagonists\nukeop\equipment\pinpointer.dm" +#include "code\modules\antagonists\official\official.dm" +#include "code\modules\antagonists\overthrow\overthrow.dm" +#include "code\modules\antagonists\overthrow\overthrow_converter.dm" +#include "code\modules\antagonists\overthrow\overthrow_team.dm" +#include "code\modules\antagonists\pirate\pirate.dm" +#include "code\modules\antagonists\revenant\revenant.dm" +#include "code\modules\antagonists\revenant\revenant_abilities.dm" +#include "code\modules\antagonists\revenant\revenant_antag.dm" +#include "code\modules\antagonists\revenant\revenant_blight.dm" +#include "code\modules\antagonists\revenant\revenant_spawn_event.dm" +#include "code\modules\antagonists\revolution\revolution.dm" +#include "code\modules\antagonists\santa\santa.dm" +#include "code\modules\antagonists\separatist\separatist.dm" +#include "code\modules\antagonists\slaughter\slaughter.dm" +#include "code\modules\antagonists\slaughter\slaughter_antag.dm" +#include "code\modules\antagonists\slaughter\slaughterevent.dm" +#include "code\modules\antagonists\survivalist\survivalist.dm" +#include "code\modules\antagonists\swarmer\swarmer.dm" +#include "code\modules\antagonists\swarmer\swarmer_event.dm" +#include "code\modules\antagonists\traitor\datum_traitor.dm" +#include "code\modules\antagonists\traitor\syndicate_contract.dm" +#include "code\modules\antagonists\traitor\classes\ai.dm" +#include "code\modules\antagonists\traitor\classes\assassin.dm" +#include "code\modules\antagonists\traitor\classes\freeform.dm" +#include "code\modules\antagonists\traitor\classes\hijack.dm" +#include "code\modules\antagonists\traitor\classes\human.dm" +#include "code\modules\antagonists\traitor\classes\martyr.dm" +#include "code\modules\antagonists\traitor\classes\subterfuge.dm" +#include "code\modules\antagonists\traitor\classes\traitor_class.dm" +#include "code\modules\antagonists\traitor\equipment\contractor.dm" +#include "code\modules\antagonists\traitor\equipment\Malf_Modules.dm" +#include "code\modules\antagonists\traitor\IAA\internal_affairs.dm" +#include "code\modules\antagonists\valentines\heartbreaker.dm" +#include "code\modules\antagonists\valentines\valentine.dm" +#include "code\modules\antagonists\wishgranter\wishgranter.dm" +#include "code\modules\antagonists\wizard\wizard.dm" +#include "code\modules\antagonists\wizard\equipment\artefact.dm" +#include "code\modules\antagonists\wizard\equipment\soulstone.dm" +#include "code\modules\antagonists\wizard\equipment\spellbook.dm" +#include "code\modules\antagonists\xeno\xeno.dm" +#include "code\modules\arousal\arousal.dm" +#include "code\modules\arousal\genitals.dm" +#include "code\modules\arousal\genitals_sprite_accessories.dm" +#include "code\modules\arousal\organs\breasts.dm" +#include "code\modules\arousal\organs\penis.dm" +#include "code\modules\arousal\organs\testicles.dm" +#include "code\modules\arousal\organs\vagina.dm" +#include "code\modules\arousal\organs\womb.dm" +#include "code\modules\arousal\toys\dildos.dm" +#include "code\modules\assembly\assembly.dm" +#include "code\modules\assembly\bomb.dm" +#include "code\modules\assembly\doorcontrol.dm" +#include "code\modules\assembly\flash.dm" +#include "code\modules\assembly\health.dm" +#include "code\modules\assembly\helpers.dm" +#include "code\modules\assembly\holder.dm" +#include "code\modules\assembly\igniter.dm" +#include "code\modules\assembly\infrared.dm" +#include "code\modules\assembly\mousetrap.dm" +#include "code\modules\assembly\playback.dm" +#include "code\modules\assembly\proximity.dm" +#include "code\modules\assembly\shock_kit.dm" +#include "code\modules\assembly\signaler.dm" +#include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" +#include "code\modules\asset_cache\asset_cache_client.dm" +#include "code\modules\asset_cache\asset_cache_item.dm" +#include "code\modules\asset_cache\asset_list.dm" +#include "code\modules\asset_cache\asset_list_items.dm" +#include "code\modules\asset_cache\transports\asset_transport.dm" +#include "code\modules\asset_cache\transports\webroot_transport.dm" +#include "code\modules\atmospherics\multiz.dm" +#include "code\modules\atmospherics\environmental\LINDA_fire.dm" +#include "code\modules\atmospherics\environmental\LINDA_system.dm" +#include "code\modules\atmospherics\environmental\LINDA_turf_tile.dm" +#include "code\modules\atmospherics\gasmixtures\gas_mixture.dm" +#include "code\modules\atmospherics\gasmixtures\gas_types.dm" +#include "code\modules\atmospherics\gasmixtures\immutable_mixtures.dm" +#include "code\modules\atmospherics\gasmixtures\reactions.dm" +#include "code\modules\atmospherics\machinery\airalarm.dm" +#include "code\modules\atmospherics\machinery\atmosmachinery.dm" +#include "code\modules\atmospherics\machinery\datum_pipeline.dm" +#include "code\modules\atmospherics\machinery\components\components_base.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\binary_devices.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\circulator.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\dp_vent_pump.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\passive_gate.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\pump.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\relief_valve.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\valve.dm" +#include "code\modules\atmospherics\machinery\components\binary_devices\volume_pump.dm" +#include "code\modules\atmospherics\machinery\components\trinary_devices\filter.dm" +#include "code\modules\atmospherics\machinery\components\trinary_devices\mixer.dm" +#include "code\modules\atmospherics\machinery\components\trinary_devices\trinary_devices.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\cryo.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\heat_exchanger.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\outlet_injector.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\passive_vent.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\portables_connector.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\relief_valve.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\tank.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\thermomachine.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\unary_devices.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\vent_pump.dm" +#include "code\modules\atmospherics\machinery\components\unary_devices\vent_scrubber.dm" +#include "code\modules\atmospherics\machinery\other\meter.dm" +#include "code\modules\atmospherics\machinery\other\miner.dm" +#include "code\modules\atmospherics\machinery\pipes\bluespace.dm" +#include "code\modules\atmospherics\machinery\pipes\layermanifold.dm" +#include "code\modules\atmospherics\machinery\pipes\manifold.dm" +#include "code\modules\atmospherics\machinery\pipes\manifold4w.dm" +#include "code\modules\atmospherics\machinery\pipes\mapping.dm" +#include "code\modules\atmospherics\machinery\pipes\pipes.dm" +#include "code\modules\atmospherics\machinery\pipes\simple.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\he_pipes.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\junction.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\manifold4w.dm" +#include "code\modules\atmospherics\machinery\pipes\heat_exchange\simple.dm" +#include "code\modules\atmospherics\machinery\portable\canister.dm" +#include "code\modules\atmospherics\machinery\portable\portable_atmospherics.dm" +#include "code\modules\atmospherics\machinery\portable\pump.dm" +#include "code\modules\atmospherics\machinery\portable\scrubber.dm" +#include "code\modules\awaymissions\away_props.dm" +#include "code\modules\awaymissions\bluespaceartillery.dm" +#include "code\modules\awaymissions\capture_the_flag.dm" +#include "code\modules\awaymissions\corpse.dm" +#include "code\modules\awaymissions\exile.dm" +#include "code\modules\awaymissions\gateway.dm" +#include "code\modules\awaymissions\pamphlet.dm" +#include "code\modules\awaymissions\signpost.dm" +#include "code\modules\awaymissions\super_secret_room.dm" +#include "code\modules\awaymissions\zlevel.dm" +#include "code\modules\awaymissions\mission_code\Academy.dm" +#include "code\modules\awaymissions\mission_code\Cabin.dm" +#include "code\modules\awaymissions\mission_code\caves.dm" +#include "code\modules\awaymissions\mission_code\centcomAway.dm" +#include "code\modules\awaymissions\mission_code\challenge.dm" +#include "code\modules\awaymissions\mission_code\jungleresort.dm" +#include "code\modules\awaymissions\mission_code\moonoutpost19.dm" +#include "code\modules\awaymissions\mission_code\murderdome.dm" +#include "code\modules\awaymissions\mission_code\research.dm" +#include "code\modules\awaymissions\mission_code\snowdin.dm" +#include "code\modules\awaymissions\mission_code\stationCollision.dm" +#include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" +#include "code\modules\awaymissions\mission_code\wildwest.dm" +#include "code\modules\buildmode\bm_mode.dm" +#include "code\modules\buildmode\buildmode.dm" +#include "code\modules\buildmode\buttons.dm" +#include "code\modules\buildmode\effects\line.dm" +#include "code\modules\buildmode\submodes\advanced.dm" +#include "code\modules\buildmode\submodes\area_edit.dm" +#include "code\modules\buildmode\submodes\basic.dm" +#include "code\modules\buildmode\submodes\boom.dm" +#include "code\modules\buildmode\submodes\copy.dm" +#include "code\modules\buildmode\submodes\fill.dm" +#include "code\modules\buildmode\submodes\mapgen.dm" +#include "code\modules\buildmode\submodes\throwing.dm" +#include "code\modules\buildmode\submodes\variable_edit.dm" +#include "code\modules\cargo\bounty.dm" +#include "code\modules\cargo\bounty_console.dm" +#include "code\modules\cargo\centcom_podlauncher.dm" +#include "code\modules\cargo\console.dm" +#include "code\modules\cargo\coupon.dm" +#include "code\modules\cargo\export_scanner.dm" +#include "code\modules\cargo\exports.dm" +#include "code\modules\cargo\expressconsole.dm" +#include "code\modules\cargo\gondolapod.dm" +#include "code\modules\cargo\order.dm" +#include "code\modules\cargo\packs.dm" +#include "code\modules\cargo\supplypod.dm" +#include "code\modules\cargo\supplypod_beacon.dm" +#include "code\modules\cargo\blackmarket\blackmarket_item.dm" +#include "code\modules\cargo\blackmarket\blackmarket_market.dm" +#include "code\modules\cargo\blackmarket\blackmarket_telepad.dm" +#include "code\modules\cargo\blackmarket\blackmarket_uplink.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\clothing.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\consumables.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\misc.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\tools.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\weapons.dm" +#include "code\modules\cargo\bounties\assistant.dm" +#include "code\modules\cargo\bounties\botany.dm" +#include "code\modules\cargo\bounties\chef.dm" +#include "code\modules\cargo\bounties\engineering.dm" +#include "code\modules\cargo\bounties\gardencook.dm" +#include "code\modules\cargo\bounties\item.dm" +#include "code\modules\cargo\bounties\mech.dm" +#include "code\modules\cargo\bounties\medical.dm" +#include "code\modules\cargo\bounties\mining.dm" +#include "code\modules\cargo\bounties\reagent.dm" +#include "code\modules\cargo\bounties\science.dm" +#include "code\modules\cargo\bounties\security.dm" +#include "code\modules\cargo\bounties\silly.dm" +#include "code\modules\cargo\bounties\slime.dm" +#include "code\modules\cargo\bounties\special.dm" +#include "code\modules\cargo\bounties\virus.dm" +#include "code\modules\cargo\exports\food_wine.dm" +#include "code\modules\cargo\exports\gear.dm" +#include "code\modules\cargo\exports\large_objects.dm" +#include "code\modules\cargo\exports\manifest.dm" +#include "code\modules\cargo\exports\materials.dm" +#include "code\modules\cargo\exports\organs_robotics.dm" +#include "code\modules\cargo\exports\parts.dm" +#include "code\modules\cargo\exports\seeds.dm" +#include "code\modules\cargo\exports\sheets.dm" +#include "code\modules\cargo\exports\tools.dm" +#include "code\modules\cargo\exports\weapons.dm" +#include "code\modules\cargo\packs\armory.dm" +#include "code\modules\cargo\packs\costumes_toys.dm" +#include "code\modules\cargo\packs\emergency.dm" +#include "code\modules\cargo\packs\engine.dm" +#include "code\modules\cargo\packs\engineering.dm" +#include "code\modules\cargo\packs\goodies.dm" +#include "code\modules\cargo\packs\livestock.dm" +#include "code\modules\cargo\packs\materials.dm" +#include "code\modules\cargo\packs\medical.dm" +#include "code\modules\cargo\packs\misc.dm" +#include "code\modules\cargo\packs\organic.dm" +#include "code\modules\cargo\packs\science.dm" +#include "code\modules\cargo\packs\security.dm" +#include "code\modules\cargo\packs\service.dm" +#include "code\modules\cargo\packs\vending.dm" +#include "code\modules\chatter\chatter.dm" +#include "code\modules\client\client_colour.dm" +#include "code\modules\client\client_defines.dm" +#include "code\modules\client\client_procs.dm" +#include "code\modules\client\message.dm" +#include "code\modules\client\player_details.dm" +#include "code\modules\client\preferences.dm" +#include "code\modules\client\preferences_savefile.dm" +#include "code\modules\client\preferences_toggles.dm" +#include "code\modules\client\preferences_vr.dm" +#include "code\modules\client\verbs\aooc.dm" +#include "code\modules\client\verbs\autobunker.dm" +#include "code\modules\client\verbs\etips.dm" +#include "code\modules\client\verbs\looc.dm" +#include "code\modules\client\verbs\minimap.dm" +#include "code\modules\client\verbs\ooc.dm" +#include "code\modules\client\verbs\ping.dm" +#include "code\modules\client\verbs\suicide.dm" +#include "code\modules\client\verbs\who.dm" +#include "code\modules\clothing\chameleon.dm" +#include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\ears\_ears.dm" +#include "code\modules\clothing\glasses\_glasses.dm" +#include "code\modules\clothing\glasses\disablerglasses.dm" +#include "code\modules\clothing\glasses\engine_goggles.dm" +#include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\glasses\phantomthief.dm" +#include "code\modules\clothing\gloves\_gloves.dm" +#include "code\modules\clothing\gloves\boxing.dm" +#include "code\modules\clothing\gloves\color.dm" +#include "code\modules\clothing\gloves\miscellaneous.dm" +#include "code\modules\clothing\gloves\ring.dm" +#include "code\modules\clothing\gloves\tacklers.dm" +#include "code\modules\clothing\head\_head.dm" +#include "code\modules\clothing\head\beanie.dm" +#include "code\modules\clothing\head\collectable.dm" +#include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\helmet.dm" +#include "code\modules\clothing\head\jobs.dm" +#include "code\modules\clothing\head\misc.dm" +#include "code\modules\clothing\head\misc_special.dm" +#include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\masks\_masks.dm" +#include "code\modules\clothing\masks\boxing.dm" +#include "code\modules\clothing\masks\breath.dm" +#include "code\modules\clothing\masks\cluwne.dm" +#include "code\modules\clothing\masks\gasmask.dm" +#include "code\modules\clothing\masks\hailer.dm" +#include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\neck\_neck.dm" +#include "code\modules\clothing\outfits\ert.dm" +#include "code\modules\clothing\outfits\event.dm" +#include "code\modules\clothing\outfits\plasmaman.dm" +#include "code\modules\clothing\outfits\standard.dm" +#include "code\modules\clothing\outfits\vr.dm" +#include "code\modules\clothing\outfits\vv_outfit.dm" +#include "code\modules\clothing\shoes\_shoes.dm" +#include "code\modules\clothing\shoes\bananashoes.dm" +#include "code\modules\clothing\shoes\cluwne.dm" +#include "code\modules\clothing\shoes\colour.dm" +#include "code\modules\clothing\shoes\magboots.dm" +#include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\shoes\taeclowndo.dm" +#include "code\modules\clothing\spacesuits\_spacesuits.dm" +#include "code\modules\clothing\spacesuits\chronosuit.dm" +#include "code\modules\clothing\spacesuits\hardsuit.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\plasmamen.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\suits\_suits.dm" +#include "code\modules\clothing\suits\armor.dm" +#include "code\modules\clothing\suits\bio.dm" +#include "code\modules\clothing\suits\cloaks.dm" +#include "code\modules\clothing\suits\jobs.dm" +#include "code\modules\clothing\suits\labcoat.dm" +#include "code\modules\clothing\suits\miscellaneous.dm" +#include "code\modules\clothing\suits\reactive_armour.dm" +#include "code\modules\clothing\suits\toggles.dm" +#include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\under\_under.dm" +#include "code\modules\clothing\under\accessories.dm" +#include "code\modules\clothing\under\cluwne.dm" +#include "code\modules\clothing\under\color.dm" +#include "code\modules\clothing\under\costume.dm" +#include "code\modules\clothing\under\miscellaneous.dm" +#include "code\modules\clothing\under\pants.dm" +#include "code\modules\clothing\under\shorts.dm" +#include "code\modules\clothing\under\skirt_dress.dm" +#include "code\modules\clothing\under\suits.dm" +#include "code\modules\clothing\under\sweaters.dm" +#include "code\modules\clothing\under\syndicate.dm" +#include "code\modules\clothing\under\trek.dm" +#include "code\modules\clothing\under\jobs\cargo.dm" +#include "code\modules\clothing\under\jobs\centcom.dm" +#include "code\modules\clothing\under\jobs\command.dm" +#include "code\modules\clothing\under\jobs\engineering.dm" +#include "code\modules\clothing\under\jobs\medical.dm" +#include "code\modules\clothing\under\jobs\rnd.dm" +#include "code\modules\clothing\under\jobs\security.dm" +#include "code\modules\clothing\under\jobs\civilian\civilian.dm" +#include "code\modules\clothing\under\jobs\civilian\clown_mime.dm" +#include "code\modules\clothing\under\jobs\civilian\curator.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\civilian_service.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\engineering.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\medsci.dm" +#include "code\modules\clothing\under\jobs\Plasmaman\security.dm" +#include "code\modules\detectivework\detective_work.dm" +#include "code\modules\detectivework\evidence.dm" +#include "code\modules\detectivework\scanner.dm" +#include "code\modules\economy\_economy.dm" +#include "code\modules\economy\account.dm" +#include "code\modules\economy\paystand.dm" +#include "code\modules\emoji\emoji_parse.dm" +#include "code\modules\error_handler\error_handler.dm" +#include "code\modules\error_handler\error_viewer.dm" +#include "code\modules\events\_event.dm" +#include "code\modules\events\abductor.dm" +#include "code\modules\events\alien_infestation.dm" +#include "code\modules\events\anomaly.dm" +#include "code\modules\events\anomaly_bluespace.dm" +#include "code\modules\events\anomaly_flux.dm" +#include "code\modules\events\anomaly_grav.dm" +#include "code\modules\events\anomaly_pyro.dm" +#include "code\modules\events\anomaly_vortex.dm" +#include "code\modules\events\aurora_caelus.dm" +#include "code\modules\events\blob.dm" +#include "code\modules\events\brain_trauma.dm" +#include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\bureaucratic_error.dm" +#include "code\modules\events\camerafailure.dm" +#include "code\modules\events\carp_migration.dm" +#include "code\modules\events\cat_surgeon.dm" +#include "code\modules\events\communications_blackout.dm" +#include "code\modules\events\devil.dm" +#include "code\modules\events\disease_outbreak.dm" +#include "code\modules\events\dust.dm" +#include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\fake_virus.dm" +#include "code\modules\events\false_alarm.dm" +#include "code\modules\events\floorcluwne.dm" +#include "code\modules\events\fugitive_spawning.dm" +#include "code\modules\events\ghost_role.dm" +#include "code\modules\events\grid_check.dm" +#include "code\modules\events\heart_attack.dm" +#include "code\modules\events\high_priority_bounty.dm" +#include "code\modules\events\immovable_rod.dm" +#include "code\modules\events\ion_storm.dm" +#include "code\modules\events\major_dust.dm" +#include "code\modules\events\mass_hallucination.dm" +#include "code\modules\events\meateor_wave.dm" +#include "code\modules\events\meteor_wave.dm" +#include "code\modules\events\mice_migration.dm" +#include "code\modules\events\nightmare.dm" +#include "code\modules\events\operative.dm" +#include "code\modules\events\pirates.dm" +#include "code\modules\events\portal_storm.dm" +#include "code\modules\events\prison_break.dm" +#include "code\modules\events\processor_overload.dm" +#include "code\modules\events\radiation_storm.dm" +#include "code\modules\events\sentience.dm" +#include "code\modules\events\shuttle_loan.dm" +#include "code\modules\events\spacevine.dm" +#include "code\modules\events\spider_infestation.dm" +#include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\stray_cargo.dm" +#include "code\modules\events\supermatter_surge.dm" +#include "code\modules\events\supernova.dm" +#include "code\modules\events\travelling_trader.dm" +#include "code\modules\events\vent_clog.dm" +#include "code\modules\events\wisdomcow.dm" +#include "code\modules\events\wormholes.dm" +#include "code\modules\events\holiday\halloween.dm" +#include "code\modules\events\holiday\vday.dm" +#include "code\modules\events\holiday\xmas.dm" +#include "code\modules\events\wizard\aid.dm" +#include "code\modules\events\wizard\blobies.dm" +#include "code\modules\events\wizard\curseditems.dm" +#include "code\modules\events\wizard\departmentrevolt.dm" +#include "code\modules\events\wizard\embeddies.dm" +#include "code\modules\events\wizard\fakeexplosion.dm" +#include "code\modules\events\wizard\ghost.dm" +#include "code\modules\events\wizard\greentext.dm" +#include "code\modules\events\wizard\imposter.dm" +#include "code\modules\events\wizard\invincible.dm" +#include "code\modules\events\wizard\lava.dm" +#include "code\modules\events\wizard\madness.dm" +#include "code\modules\events\wizard\magicarp.dm" +#include "code\modules\events\wizard\petsplosion.dm" +#include "code\modules\events\wizard\race.dm" +#include "code\modules\events\wizard\rpgloot.dm" +#include "code\modules\events\wizard\shuffle.dm" +#include "code\modules\events\wizard\summons.dm" +#include "code\modules\fields\fields.dm" +#include "code\modules\fields\gravity.dm" +#include "code\modules\fields\infinite_void.dm" +#include "code\modules\fields\peaceborg_dampener.dm" +#include "code\modules\fields\timestop.dm" +#include "code\modules\fields\turf_objects.dm" +#include "code\modules\flufftext\Dreaming.dm" +#include "code\modules\flufftext\Hallucination.dm" +#include "code\modules\food_and_drinks\autobottler.dm" +#include "code\modules\food_and_drinks\food.dm" +#include "code\modules\food_and_drinks\pizzabox.dm" +#include "code\modules\food_and_drinks\drinks\drinks.dm" +#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" +#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" +#include "code\modules\food_and_drinks\food\condiment.dm" +#include "code\modules\food_and_drinks\food\customizables.dm" +#include "code\modules\food_and_drinks\food\snacks.dm" +#include "code\modules\food_and_drinks\food\snacks_bread.dm" +#include "code\modules\food_and_drinks\food\snacks_burgers.dm" +#include "code\modules\food_and_drinks\food\snacks_cake.dm" +#include "code\modules\food_and_drinks\food\snacks_egg.dm" +#include "code\modules\food_and_drinks\food\snacks_frozen.dm" +#include "code\modules\food_and_drinks\food\snacks_meat.dm" +#include "code\modules\food_and_drinks\food\snacks_other.dm" +#include "code\modules\food_and_drinks\food\snacks_pastry.dm" +#include "code\modules\food_and_drinks\food\snacks_pie.dm" +#include "code\modules\food_and_drinks\food\snacks_pizza.dm" +#include "code\modules\food_and_drinks\food\snacks_salad.dm" +#include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm" +#include "code\modules\food_and_drinks\food\snacks_soup.dm" +#include "code\modules\food_and_drinks\food\snacks_spaghetti.dm" +#include "code\modules\food_and_drinks\food\snacks_sushi.dm" +#include "code\modules\food_and_drinks\food\snacks_vend.dm" +#include "code\modules\food_and_drinks\food\snacks\dough.dm" +#include "code\modules\food_and_drinks\food\snacks\meat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\grill.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" +#include "code\modules\food_and_drinks\recipes\drinks_recipes.dm" +#include "code\modules\food_and_drinks\recipes\food_mixtures.dm" +#include "code\modules\food_and_drinks\recipes\processor_recipes.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_bread.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_burger.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_cake.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_donut.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_egg.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_frozen.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_meat.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_mexican.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_misc.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pastry.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pies_sweets.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pizza.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_salad.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_seafood.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" +#include "code\modules\games\cas.dm" +#include "code\modules\games\unum.dm" +#include "code\modules\holiday\easter.dm" +#include "code\modules\holiday\holidays.dm" +#include "code\modules\holiday\halloween\bartholomew.dm" +#include "code\modules\holiday\halloween\jacqueen.dm" +#include "code\modules\holodeck\area_copy.dm" +#include "code\modules\holodeck\computer.dm" +#include "code\modules\holodeck\holo_effect.dm" +#include "code\modules\holodeck\items.dm" +#include "code\modules\holodeck\mobs.dm" +#include "code\modules\holodeck\turfs.dm" +#include "code\modules\hydroponics\biogenerator.dm" +#include "code\modules\hydroponics\fermenting_barrel.dm" +#include "code\modules\hydroponics\gene_modder.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\growninedible.dm" +#include "code\modules\hydroponics\hydroitemdefines.dm" +#include "code\modules\hydroponics\hydroponics.dm" +#include "code\modules\hydroponics\hydroponics_chemreact.dm" +#include "code\modules\hydroponics\plant_genes.dm" +#include "code\modules\hydroponics\sample.dm" +#include "code\modules\hydroponics\seed_extractor.dm" +#include "code\modules\hydroponics\seeds.dm" +#include "code\modules\hydroponics\beekeeping\beebox.dm" +#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" +#include "code\modules\hydroponics\beekeeping\honey_frame.dm" +#include "code\modules\hydroponics\beekeeping\honeycomb.dm" +#include "code\modules\hydroponics\grown\ambrosia.dm" +#include "code\modules\hydroponics\grown\apple.dm" +#include "code\modules\hydroponics\grown\banana.dm" +#include "code\modules\hydroponics\grown\beans.dm" +#include "code\modules\hydroponics\grown\berries.dm" +#include "code\modules\hydroponics\grown\cannabis.dm" +#include "code\modules\hydroponics\grown\cereals.dm" +#include "code\modules\hydroponics\grown\chili.dm" +#include "code\modules\hydroponics\grown\citrus.dm" +#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" +#include "code\modules\hydroponics\grown\corn.dm" +#include "code\modules\hydroponics\grown\cotton.dm" +#include "code\modules\hydroponics\grown\eggplant.dm" +#include "code\modules\hydroponics\grown\flowers.dm" +#include "code\modules\hydroponics\grown\garlic.dm" +#include "code\modules\hydroponics\grown\grass_carpet.dm" +#include "code\modules\hydroponics\grown\kudzu.dm" +#include "code\modules\hydroponics\grown\melon.dm" +#include "code\modules\hydroponics\grown\misc.dm" +#include "code\modules\hydroponics\grown\mushrooms.dm" +#include "code\modules\hydroponics\grown\nettle.dm" +#include "code\modules\hydroponics\grown\onion.dm" +#include "code\modules\hydroponics\grown\peach.dm" +#include "code\modules\hydroponics\grown\peanuts.dm" +#include "code\modules\hydroponics\grown\peas.dm" +#include "code\modules\hydroponics\grown\pineapple.dm" +#include "code\modules\hydroponics\grown\potato.dm" +#include "code\modules\hydroponics\grown\pumpkin.dm" +#include "code\modules\hydroponics\grown\random.dm" +#include "code\modules\hydroponics\grown\replicapod.dm" +#include "code\modules\hydroponics\grown\root.dm" +#include "code\modules\hydroponics\grown\tea_coffee.dm" +#include "code\modules\hydroponics\grown\tobacco.dm" +#include "code\modules\hydroponics\grown\tomato.dm" +#include "code\modules\hydroponics\grown\towercap.dm" +#include "code\modules\instruments\instrument_data\_instrument_data.dm" +#include "code\modules\instruments\instrument_data\_instrument_key.dm" +#include "code\modules\instruments\instrument_data\brass.dm" +#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" +#include "code\modules\instruments\instrument_data\fun.dm" +#include "code\modules\instruments\instrument_data\guitar.dm" +#include "code\modules\instruments\instrument_data\hardcoded.dm" +#include "code\modules\instruments\instrument_data\organ.dm" +#include "code\modules\instruments\instrument_data\piano.dm" +#include "code\modules\instruments\instrument_data\synth_tones.dm" +#include "code\modules\instruments\instruments\item.dm" +#include "code\modules\instruments\instruments\stationary.dm" +#include "code\modules\instruments\songs\_song.dm" +#include "code\modules\instruments\songs\editor.dm" +#include "code\modules\instruments\songs\play_legacy.dm" +#include "code\modules\instruments\songs\play_synthesized.dm" +#include "code\modules\integrated_electronics\_defines.dm" +#include "code\modules\integrated_electronics\core\analyzer.dm" +#include "code\modules\integrated_electronics\core\assemblies.dm" +#include "code\modules\integrated_electronics\core\debugger.dm" +#include "code\modules\integrated_electronics\core\detailer.dm" +#include "code\modules\integrated_electronics\core\helpers.dm" +#include "code\modules\integrated_electronics\core\integrated_circuit.dm" +#include "code\modules\integrated_electronics\core\pins.dm" +#include "code\modules\integrated_electronics\core\printer.dm" +#include "code\modules\integrated_electronics\core\saved_circuits.dm" +#include "code\modules\integrated_electronics\core\wirer.dm" +#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\index_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\selfref_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm" +#include "code\modules\integrated_electronics\passive\passive.dm" +#include "code\modules\integrated_electronics\passive\power.dm" +#include "code\modules\integrated_electronics\subtypes\access.dm" +#include "code\modules\integrated_electronics\subtypes\arithmetic.dm" +#include "code\modules\integrated_electronics\subtypes\atmospherics.dm" +#include "code\modules\integrated_electronics\subtypes\converters.dm" +#include "code\modules\integrated_electronics\subtypes\data_transfer.dm" +#include "code\modules\integrated_electronics\subtypes\input.dm" +#include "code\modules\integrated_electronics\subtypes\lists.dm" +#include "code\modules\integrated_electronics\subtypes\logic.dm" +#include "code\modules\integrated_electronics\subtypes\manipulation.dm" +#include "code\modules\integrated_electronics\subtypes\memory.dm" +#include "code\modules\integrated_electronics\subtypes\output.dm" +#include "code\modules\integrated_electronics\subtypes\power.dm" +#include "code\modules\integrated_electronics\subtypes\reagents.dm" +#include "code\modules\integrated_electronics\subtypes\smart.dm" +#include "code\modules\integrated_electronics\subtypes\text.dm" +#include "code\modules\integrated_electronics\subtypes\time.dm" +#include "code\modules\integrated_electronics\subtypes\trig.dm" +#include "code\modules\integrated_electronics\subtypes\weaponized.dm" +#include "code\modules\jobs\access.dm" +#include "code\modules\jobs\job_exp.dm" +#include "code\modules\jobs\job_report.dm" +#include "code\modules\jobs\jobs.dm" +#include "code\modules\jobs\job_types\_job.dm" +#include "code\modules\jobs\job_types\ai.dm" +#include "code\modules\jobs\job_types\assistant.dm" +#include "code\modules\jobs\job_types\atmospheric_technician.dm" +#include "code\modules\jobs\job_types\bartender.dm" +#include "code\modules\jobs\job_types\botanist.dm" +#include "code\modules\jobs\job_types\captain.dm" +#include "code\modules\jobs\job_types\cargo_technician.dm" +#include "code\modules\jobs\job_types\chaplain.dm" +#include "code\modules\jobs\job_types\chemist.dm" +#include "code\modules\jobs\job_types\chief_engineer.dm" +#include "code\modules\jobs\job_types\chief_medical_officer.dm" +#include "code\modules\jobs\job_types\clown.dm" +#include "code\modules\jobs\job_types\cook.dm" +#include "code\modules\jobs\job_types\curator.dm" +#include "code\modules\jobs\job_types\cyborg.dm" +#include "code\modules\jobs\job_types\detective.dm" +#include "code\modules\jobs\job_types\geneticist.dm" +#include "code\modules\jobs\job_types\head_of_personnel.dm" +#include "code\modules\jobs\job_types\head_of_security.dm" +#include "code\modules\jobs\job_types\janitor.dm" +#include "code\modules\jobs\job_types\lawyer.dm" +#include "code\modules\jobs\job_types\medical_doctor.dm" +#include "code\modules\jobs\job_types\mime.dm" +#include "code\modules\jobs\job_types\paramedic.dm" +#include "code\modules\jobs\job_types\quartermaster.dm" +#include "code\modules\jobs\job_types\research_director.dm" +#include "code\modules\jobs\job_types\roboticist.dm" +#include "code\modules\jobs\job_types\scientist.dm" +#include "code\modules\jobs\job_types\security_officer.dm" +#include "code\modules\jobs\job_types\shaft_miner.dm" +#include "code\modules\jobs\job_types\station_engineer.dm" +#include "code\modules\jobs\job_types\virologist.dm" +#include "code\modules\jobs\job_types\warden.dm" +#include "code\modules\keybindings\bindings_atom.dm" +#include "code\modules\keybindings\bindings_client.dm" +#include "code\modules\keybindings\focus.dm" +#include "code\modules\keybindings\setup.dm" +#include "code\modules\keybindings\keybind\__defines.dm" +#include "code\modules\keybindings\keybind\_keybind.dm" +#include "code\modules\keybindings\keybind\admin.dm" +#include "code\modules\keybindings\keybind\carbon.dm" +#include "code\modules\keybindings\keybind\client.dm" +#include "code\modules\keybindings\keybind\combat.dm" +#include "code\modules\keybindings\keybind\communication.dm" +#include "code\modules\keybindings\keybind\emote.dm" +#include "code\modules\keybindings\keybind\human.dm" +#include "code\modules\keybindings\keybind\living.dm" +#include "code\modules\keybindings\keybind\mob.dm" +#include "code\modules\keybindings\keybind\movement.dm" +#include "code\modules\keybindings\keybind\robot.dm" +#include "code\modules\keybindings\keybind\targeting.dm" +#include "code\modules\language\aphasia.dm" +#include "code\modules\language\arachnid.dm" +#include "code\modules\language\beachbum.dm" +#include "code\modules\language\codespeak.dm" +#include "code\modules\language\common.dm" +#include "code\modules\language\draconic.dm" +#include "code\modules\language\drone.dm" +#include "code\modules\language\dwarven.dm" +#include "code\modules\language\language.dm" +#include "code\modules\language\language_holder.dm" +#include "code\modules\language\language_menu.dm" +#include "code\modules\language\machine.dm" +#include "code\modules\language\monkey.dm" +#include "code\modules\language\mushroom.dm" +#include "code\modules\language\narsian.dm" +#include "code\modules\language\ratvarian.dm" +#include "code\modules\language\signlanguage.dm" +#include "code\modules\language\slime.dm" +#include "code\modules\language\swarmer.dm" +#include "code\modules\language\sylvan.dm" +#include "code\modules\language\vampiric.dm" +#include "code\modules\language\voltaic.dm" +#include "code\modules\language\xenocommon.dm" +#include "code\modules\library\lib_codex_gigas.dm" +#include "code\modules\library\lib_items.dm" +#include "code\modules\library\lib_machines.dm" +#include "code\modules\library\random_books.dm" +#include "code\modules\library\soapstone.dm" +#include "code\modules\lighting\emissive_blocker.dm" +#include "code\modules\lighting\lighting_area.dm" +#include "code\modules\lighting\lighting_atom.dm" +#include "code\modules\lighting\lighting_corner.dm" +#include "code\modules\lighting\lighting_object.dm" +#include "code\modules\lighting\lighting_setup.dm" +#include "code\modules\lighting\lighting_source.dm" +#include "code\modules\lighting\lighting_turf.dm" +#include "code\modules\mafia\_defines.dm" +#include "code\modules\mafia\controller.dm" +#include "code\modules\mafia\map_pieces.dm" +#include "code\modules\mafia\outfits.dm" +#include "code\modules\mafia\roles.dm" +#include "code\modules\mapping\map_config.dm" +#include "code\modules\mapping\map_orientation_pattern.dm" +#include "code\modules\mapping\map_template.dm" +#include "code\modules\mapping\minimaps.dm" +#include "code\modules\mapping\preloader.dm" +#include "code\modules\mapping\reader.dm" +#include "code\modules\mapping\ruins.dm" +#include "code\modules\mapping\verify.dm" +#include "code\modules\mapping\mapping_helpers\_mapping_helpers.dm" +#include "code\modules\mapping\mapping_helpers\baseturf.dm" +#include "code\modules\mapping\mapping_helpers\network_builder\_network_builder.dm" +#include "code\modules\mapping\mapping_helpers\network_builder\atmos_pipe.dm" +#include "code\modules\mapping\mapping_helpers\network_builder\power_cables.dm" +#include "code\modules\mapping\space_management\multiz_helpers.dm" +#include "code\modules\mapping\space_management\space_level.dm" +#include "code\modules\mapping\space_management\space_reservation.dm" +#include "code\modules\mapping\space_management\space_transition.dm" +#include "code\modules\mapping\space_management\traits.dm" +#include "code\modules\mapping\space_management\zlevel_manager.dm" +#include "code\modules\mining\abandoned_crates.dm" +#include "code\modules\mining\aux_base.dm" +#include "code\modules\mining\aux_base_camera.dm" +#include "code\modules\mining\fulton.dm" +#include "code\modules\mining\machine_processing.dm" +#include "code\modules\mining\machine_redemption.dm" +#include "code\modules\mining\machine_silo.dm" +#include "code\modules\mining\machine_stacking.dm" +#include "code\modules\mining\machine_unloading.dm" +#include "code\modules\mining\machine_vending.dm" +#include "code\modules\mining\mine_items.dm" +#include "code\modules\mining\minebot.dm" +#include "code\modules\mining\mint.dm" +#include "code\modules\mining\money_bag.dm" +#include "code\modules\mining\ores_coins.dm" +#include "code\modules\mining\point_bank.dm" +#include "code\modules\mining\satchel_ore_boxdm.dm" +#include "code\modules\mining\shelters.dm" +#include "code\modules\mining\equipment\explorer_gear.dm" +#include "code\modules\mining\equipment\goliath_hide.dm" +#include "code\modules\mining\equipment\kinetic_crusher.dm" +#include "code\modules\mining\equipment\lazarus_injector.dm" +#include "code\modules\mining\equipment\marker_beacons.dm" +#include "code\modules\mining\equipment\mineral_scanner.dm" +#include "code\modules\mining\equipment\mining_tools.dm" +#include "code\modules\mining\equipment\regenerative_core.dm" +#include "code\modules\mining\equipment\resonator.dm" +#include "code\modules\mining\equipment\survival_pod.dm" +#include "code\modules\mining\equipment\vendor_items.dm" +#include "code\modules\mining\equipment\wormhole_jaunter.dm" +#include "code\modules\mining\laborcamp\laborshuttle.dm" +#include "code\modules\mining\laborcamp\laborstacker.dm" +#include "code\modules\mining\lavaland\ash_flora.dm" +#include "code\modules\mining\lavaland\necropolis_chests.dm" +#include "code\modules\mining\lavaland\ruins\gym.dm" +#include "code\modules\mob\clickdelay.dm" +#include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" +#include "code\modules\mob\innate_abilities.dm" +#include "code\modules\mob\inventory.dm" +#include "code\modules\mob\login.dm" +#include "code\modules\mob\logout.dm" +#include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" +#include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_transformation_simple.dm" +#include "code\modules\mob\say.dm" +#include "code\modules\mob\say_vr.dm" +#include "code\modules\mob\status_procs.dm" +#include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" +#include "code\modules\mob\update_icons.dm" +#include "code\modules\mob\camera\camera.dm" +#include "code\modules\mob\dead\dead.dm" +#include "code\modules\mob\dead\new_player\login.dm" +#include "code\modules\mob\dead\new_player\logout.dm" +#include "code\modules\mob\dead\new_player\new_player.dm" +#include "code\modules\mob\dead\new_player\poll.dm" +#include "code\modules\mob\dead\new_player\preferences_setup.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\_sprite_accessories.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\alienpeople.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\arachnid.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\body_markings.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\caps.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\Citadel_Snowflake.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\ears.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\frills.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\hair_head.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\horns.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\ipc_synths.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\legs_and_taurs.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\spines.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\underwear.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\wings.dm" +#include "code\modules\mob\dead\observer\login.dm" +#include "code\modules\mob\dead\observer\logout.dm" +#include "code\modules\mob\dead\observer\notificationprefs.dm" +#include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\observer_movement.dm" +#include "code\modules\mob\dead\observer\orbit.dm" +#include "code\modules\mob\dead\observer\respawn.dm" +#include "code\modules\mob\dead\observer\say.dm" +#include "code\modules\mob\living\blood.dm" +#include "code\modules\mob\living\bloodcrawl.dm" +#include "code\modules\mob\living\clickdelay.dm" +#include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\death.dm" +#include "code\modules\mob\living\emote.dm" +#include "code\modules\mob\living\life.dm" +#include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_active_block.dm" +#include "code\modules\mob\living\living_active_parry.dm" +#include "code\modules\mob\living\living_block.dm" +#include "code\modules\mob\living\living_blocking_parrying.dm" +#include "code\modules\mob\living\living_defense.dm" +#include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\living_mobility.dm" +#include "code\modules\mob\living\living_movement.dm" +#include "code\modules\mob\living\living_signals.dm" +#include "code\modules\mob\living\living_sprint.dm" +#include "code\modules\mob\living\login.dm" +#include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\stamina_buffer.dm" +#include "code\modules\mob\living\status_procs.dm" +#include "code\modules\mob\living\taste.dm" +#include "code\modules\mob\living\update_icons.dm" +#include "code\modules\mob\living\ventcrawling.dm" +#include "code\modules\mob\living\brain\brain.dm" +#include "code\modules\mob\living\brain\brain_item.dm" +#include "code\modules\mob\living\brain\death.dm" +#include "code\modules\mob\living\brain\emote.dm" +#include "code\modules\mob\living\brain\life.dm" +#include "code\modules\mob\living\brain\MMI.dm" +#include "code\modules\mob\living\brain\posibrain.dm" +#include "code\modules\mob\living\brain\say.dm" +#include "code\modules\mob\living\brain\status_procs.dm" +#include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_active_parry.dm" +#include "code\modules\mob\living\carbon\carbon_defense.dm" +#include "code\modules\mob\living\carbon\carbon_defines.dm" +#include "code\modules\mob\living\carbon\carbon_movement.dm" +#include "code\modules\mob\living\carbon\carbon_sprint.dm" +#include "code\modules\mob\living\carbon\damage_procs.dm" +#include "code\modules\mob\living\carbon\death.dm" +#include "code\modules\mob\living\carbon\emote.dm" +#include "code\modules\mob\living\carbon\examine.dm" +#include "code\modules\mob\living\carbon\handle_corruption.dm" +#include "code\modules\mob\living\carbon\inventory.dm" +#include "code\modules\mob\living\carbon\life.dm" +#include "code\modules\mob\living\carbon\say.dm" +#include "code\modules\mob\living\carbon\status_procs.dm" +#include "code\modules\mob\living\carbon\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" +#include "code\modules\mob\living\carbon\alien\alien_defense.dm" +#include "code\modules\mob\living\carbon\alien\damage_procs.dm" +#include "code\modules\mob\living\carbon\alien\death.dm" +#include "code\modules\mob\living\carbon\alien\emote.dm" +#include "code\modules\mob\living\carbon\alien\life.dm" +#include "code\modules\mob\living\carbon\alien\login.dm" +#include "code\modules\mob\living\carbon\alien\logout.dm" +#include "code\modules\mob\living\carbon\alien\organs.dm" +#include "code\modules\mob\living\carbon\alien\say.dm" +#include "code\modules\mob\living\carbon\alien\screen.dm" +#include "code\modules\mob\living\carbon\alien\status_procs.dm" +#include "code\modules\mob\living\carbon\alien\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\death.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\praetorian.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" +#include "code\modules\mob\living\carbon\alien\larva\death.dm" +#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" +#include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\powers.dm" +#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" +#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" +#include "code\modules\mob\living\carbon\human\damage_procs.dm" +#include "code\modules\mob\living\carbon\human\death.dm" +#include "code\modules\mob\living\carbon\human\dummy.dm" +#include "code\modules\mob\living\carbon\human\emote.dm" +#include "code\modules\mob\living\carbon\human\examine.dm" +#include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_block.dm" +#include "code\modules\mob\living\carbon\human\human_defense.dm" +#include "code\modules\mob\living\carbon\human\human_defines.dm" +#include "code\modules\mob\living\carbon\human\human_helpers.dm" +#include "code\modules\mob\living\carbon\human\human_mobility.dm" +#include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\inventory.dm" +#include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\login.dm" +#include "code\modules\mob\living\carbon\human\physiology.dm" +#include "code\modules\mob\living\carbon\human\say.dm" +#include "code\modules\mob\living\carbon\human\species.dm" +#include "code\modules\mob\living\carbon\human\status_procs.dm" +#include "code\modules\mob\living\carbon\human\typing_indicator.dm" +#include "code\modules\mob\living\carbon\human\update_icons.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\blobform.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\customization.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\limb_regeneration.dm" +#include "code\modules\mob\living\carbon\human\species_types\abductor.dm" +#include "code\modules\mob\living\carbon\human\species_types\android.dm" +#include "code\modules\mob\living\carbon\human\species_types\angel.dm" +#include "code\modules\mob\living\carbon\human\species_types\anthropomorph.dm" +#include "code\modules\mob\living\carbon\human\species_types\arachnid.dm" +#include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" +#include "code\modules\mob\living\carbon\human\species_types\corporate.dm" +#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" +#include "code\modules\mob\living\carbon\human\species_types\dwarves.dm" +#include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" +#include "code\modules\mob\living\carbon\human\species_types\felinid.dm" +#include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\golems.dm" +#include "code\modules\mob\living\carbon\human\species_types\humans.dm" +#include "code\modules\mob\living\carbon\human\species_types\ipc.dm" +#include "code\modules\mob\living\carbon\human\species_types\jellypeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\lizardpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\mushpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\plasmamen.dm" +#include "code\modules\mob\living\carbon\human\species_types\podpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\shadowpeople.dm" +#include "code\modules\mob\living\carbon\human\species_types\skeletons.dm" +#include "code\modules\mob\living\carbon\human\species_types\synthliz.dm" +#include "code\modules\mob\living\carbon\human\species_types\synths.dm" +#include "code\modules\mob\living\carbon\human\species_types\vampire.dm" +#include "code\modules\mob\living\carbon\human\species_types\xeno.dm" +#include "code\modules\mob\living\carbon\human\species_types\zombies.dm" +#include "code\modules\mob\living\carbon\monkey\combat.dm" +#include "code\modules\mob\living\carbon\monkey\death.dm" +#include "code\modules\mob\living\carbon\monkey\inventory.dm" +#include "code\modules\mob\living\carbon\monkey\life.dm" +#include "code\modules\mob\living\carbon\monkey\monkey.dm" +#include "code\modules\mob\living\carbon\monkey\monkey_defense.dm" +#include "code\modules\mob\living\carbon\monkey\punpun.dm" +#include "code\modules\mob\living\carbon\monkey\update_icons.dm" +#include "code\modules\mob\living\silicon\custom_holoform.dm" +#include "code\modules\mob\living\silicon\damage_procs.dm" +#include "code\modules\mob\living\silicon\death.dm" +#include "code\modules\mob\living\silicon\examine.dm" +#include "code\modules\mob\living\silicon\laws.dm" +#include "code\modules\mob\living\silicon\login.dm" +#include "code\modules\mob\living\silicon\say.dm" +#include "code\modules\mob\living\silicon\silicon.dm" +#include "code\modules\mob\living\silicon\silicon_defense.dm" +#include "code\modules\mob\living\silicon\silicon_movement.dm" +#include "code\modules\mob\living\silicon\ai\ai.dm" +#include "code\modules\mob\living\silicon\ai\ai_defense.dm" +#include "code\modules\mob\living\silicon\ai\ai_portrait_picker.dm" +#include "code\modules\mob\living\silicon\ai\death.dm" +#include "code\modules\mob\living\silicon\ai\examine.dm" +#include "code\modules\mob\living\silicon\ai\laws.dm" +#include "code\modules\mob\living\silicon\ai\life.dm" +#include "code\modules\mob\living\silicon\ai\login.dm" +#include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" +#include "code\modules\mob\living\silicon\ai\say.dm" +#include "code\modules\mob\living\silicon\ai\vox_sounds.dm" +#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" +#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" +#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" +#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" +#include "code\modules\mob\living\silicon\pai\death.dm" +#include "code\modules\mob\living\silicon\pai\pai.dm" +#include "code\modules\mob\living\silicon\pai\pai_defense.dm" +#include "code\modules\mob\living\silicon\pai\pai_shell.dm" +#include "code\modules\mob\living\silicon\pai\personality.dm" +#include "code\modules\mob\living\silicon\pai\say.dm" +#include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\pai\update_icon.dm" +#include "code\modules\mob\living\silicon\robot\death.dm" +#include "code\modules\mob\living\silicon\robot\emote.dm" +#include "code\modules\mob\living\silicon\robot\examine.dm" +#include "code\modules\mob\living\silicon\robot\inventory.dm" +#include "code\modules\mob\living\silicon\robot\laws.dm" +#include "code\modules\mob\living\silicon\robot\life.dm" +#include "code\modules\mob\living\silicon\robot\login.dm" +#include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_defense.dm" +#include "code\modules\mob\living\silicon\robot\robot_defines.dm" +#include "code\modules\mob\living\silicon\robot\robot_mobility.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules.dm" +#include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\robot_sprint.dm" +#include "code\modules\mob\living\silicon\robot\say.dm" +#include "code\modules\mob\living\silicon\robot\update_icons.dm" +#include "code\modules\mob\living\simple_animal\animal_defense.dm" +#include "code\modules\mob\living\simple_animal\astral.dm" +#include "code\modules\mob\living\simple_animal\constructs.dm" +#include "code\modules\mob\living\simple_animal\corpse.dm" +#include "code\modules\mob\living\simple_animal\damage_procs.dm" +#include "code\modules\mob\living\simple_animal\eldritch_demons.dm" +#include "code\modules\mob\living\simple_animal\parrot.dm" +#include "code\modules\mob\living\simple_animal\pickle.dm" +#include "code\modules\mob\living\simple_animal\shade.dm" +#include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\simple_animal_vr.dm" +#include "code\modules\mob\living\simple_animal\simplemob_vore_values.dm" +#include "code\modules\mob\living\simple_animal\status_procs.dm" +#include "code\modules\mob\living\simple_animal\bot\bot.dm" +#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" +#include "code\modules\mob\living\simple_animal\bot\construction.dm" +#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" +#include "code\modules\mob\living\simple_animal\bot\firebot.dm" +#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" +#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" +#include "code\modules\mob\living\simple_animal\bot\medbot.dm" +#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" +#include "code\modules\mob\living\simple_animal\bot\secbot.dm" +#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" +#include "code\modules\mob\living\simple_animal\friendly\bumbles.dm" +#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" +#include "code\modules\mob\living\simple_animal\friendly\cat.dm" +#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" +#include "code\modules\mob\living\simple_animal\friendly\crab.dm" +#include "code\modules\mob\living\simple_animal\friendly\dog.dm" +#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" +#include "code\modules\mob\living\simple_animal\friendly\fox.dm" +#include "code\modules\mob\living\simple_animal\friendly\gondola.dm" +#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" +#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" +#include "code\modules\mob\living\simple_animal\friendly\panda.dm" +#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" +#include "code\modules\mob\living\simple_animal\friendly\pet.dm" +#include "code\modules\mob\living\simple_animal\friendly\plushie.dm" +#include "code\modules\mob\living\simple_animal\friendly\possum.dm" +#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" +#include "code\modules\mob\living\simple_animal\friendly\snake.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\extra_drone_types.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\interaction.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\inventory.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\say.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\verbs.dm" +#include "code\modules\mob\living\simple_animal\friendly\drone\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\guardian\guardian.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\assassin.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\charger.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\dextrous.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\explosive.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\fire.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\gravitokinetic.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\lightning.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\protector.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\ranged.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\standard.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\support.dm" +#include "code\modules\mob\living\simple_animal\hostile\alien.dm" +#include "code\modules\mob\living\simple_animal\hostile\banana_spider.dm" +#include "code\modules\mob\living\simple_animal\hostile\bear.dm" +#include "code\modules\mob\living\simple_animal\hostile\bees.dm" +#include "code\modules\mob\living\simple_animal\hostile\bread.dm" +#include "code\modules\mob\living\simple_animal\hostile\carp.dm" +#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" +#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" +#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" +#include "code\modules\mob\living\simple_animal\hostile\floor_cluwne.dm" +#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" +#include "code\modules\mob\living\simple_animal\hostile\goose.dm" +#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" +#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" +#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" +#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" +#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" +#include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" +#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" +#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" +#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" +#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" +#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" +#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" +#include "code\modules\mob\living\simple_animal\hostile\russian.dm" +#include "code\modules\mob\living\simple_animal\hostile\sharks.dm" +#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" +#include "code\modules\mob\living\simple_animal\hostile\statue.dm" +#include "code\modules\mob\living\simple_animal\hostile\stickman.dm" +#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" +#include "code\modules\mob\living\simple_animal\hostile\tree.dm" +#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" +#include "code\modules\mob\living\simple_animal\hostile\wizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" +#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" +#include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" +#include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\demonic_frost_miner.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\dragon_vore.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\curse_blob.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobsterosity.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\wolf.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\elite.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\goliath_broodmother.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\herald.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\legionnaire.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\pandora.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\bat.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\frog.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\ghost.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\spaceman.dm" +#include "code\modules\mob\living\simple_animal\slime\death.dm" +#include "code\modules\mob\living\simple_animal\slime\emote.dm" +#include "code\modules\mob\living\simple_animal\slime\life.dm" +#include "code\modules\mob\living\simple_animal\slime\powers.dm" +#include "code\modules\mob\living\simple_animal\slime\say.dm" +#include "code\modules\mob\living\simple_animal\slime\slime.dm" +#include "code\modules\mob\living\simple_animal\slime\slime_mobility.dm" +#include "code\modules\mob\living\simple_animal\slime\subtypes.dm" +#include "code\modules\modular_computers\laptop_vendor.dm" +#include "code\modules\modular_computers\computers\_modular_computer_shared.dm" +#include "code\modules\modular_computers\computers\item\computer.dm" +#include "code\modules\modular_computers\computers\item\computer_components.dm" +#include "code\modules\modular_computers\computers\item\computer_damage.dm" +#include "code\modules\modular_computers\computers\item\computer_power.dm" +#include "code\modules\modular_computers\computers\item\computer_ui.dm" +#include "code\modules\modular_computers\computers\item\laptop.dm" +#include "code\modules\modular_computers\computers\item\laptop_presets.dm" +#include "code\modules\modular_computers\computers\item\processor.dm" +#include "code\modules\modular_computers\computers\item\tablet.dm" +#include "code\modules\modular_computers\computers\item\tablet_presets.dm" +#include "code\modules\modular_computers\computers\machinery\console_presets.dm" +#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" +#include "code\modules\modular_computers\computers\machinery\modular_console.dm" +#include "code\modules\modular_computers\file_system\computer_file.dm" +#include "code\modules\modular_computers\file_system\data.dm" +#include "code\modules\modular_computers\file_system\program.dm" +#include "code\modules\modular_computers\file_system\program_events.dm" +#include "code\modules\modular_computers\file_system\programs\airestorer.dm" +#include "code\modules\modular_computers\file_system\programs\alarm.dm" +#include "code\modules\modular_computers\file_system\programs\arcade.dm" +#include "code\modules\modular_computers\file_system\programs\atmosscan.dm" +#include "code\modules\modular_computers\file_system\programs\borg_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\budgetordering.dm" +#include "code\modules\modular_computers\file_system\programs\card.dm" +#include "code\modules\modular_computers\file_system\programs\cargobounty.dm" +#include "code\modules\modular_computers\file_system\programs\configurator.dm" +#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm" +#include "code\modules\modular_computers\file_system\programs\file_browser.dm" +#include "code\modules\modular_computers\file_system\programs\jobmanagement.dm" +#include "code\modules\modular_computers\file_system\programs\ntdownloader.dm" +#include "code\modules\modular_computers\file_system\programs\ntmonitor.dm" +#include "code\modules\modular_computers\file_system\programs\ntnrc_client.dm" +#include "code\modules\modular_computers\file_system\programs\powermonitor.dm" +#include "code\modules\modular_computers\file_system\programs\radar.dm" +#include "code\modules\modular_computers\file_system\programs\robocontrol.dm" +#include "code\modules\modular_computers\file_system\programs\robotact.dm" +#include "code\modules\modular_computers\file_system\programs\secureye.dm" +#include "code\modules\modular_computers\file_system\programs\sm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\contract_uplink.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\hardware\_hardware.dm" +#include "code\modules\modular_computers\hardware\ai_slot.dm" +#include "code\modules\modular_computers\hardware\battery_module.dm" +#include "code\modules\modular_computers\hardware\card_slot.dm" +#include "code\modules\modular_computers\hardware\CPU.dm" +#include "code\modules\modular_computers\hardware\hard_drive.dm" +#include "code\modules\modular_computers\hardware\network_card.dm" +#include "code\modules\modular_computers\hardware\portable_disk.dm" +#include "code\modules\modular_computers\hardware\printer.dm" +#include "code\modules\modular_computers\hardware\recharger.dm" +#include "code\modules\modular_computers\hardware\sensor_package.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\movespeed\_movespeed_modifier.dm" +#include "code\modules\movespeed\modifiers\components.dm" +#include "code\modules\movespeed\modifiers\innate.dm" +#include "code\modules\movespeed\modifiers\items.dm" +#include "code\modules\movespeed\modifiers\misc.dm" +#include "code\modules\movespeed\modifiers\mobs.dm" +#include "code\modules\movespeed\modifiers\reagents.dm" +#include "code\modules\movespeed\modifiers\status_effects.dm" +#include "code\modules\newscaster\_news.dm" +#include "code\modules\newscaster\feed_channel.dm" +#include "code\modules\newscaster\feed_comment.dm" +#include "code\modules\newscaster\feed_message.dm" +#include "code\modules\newscaster\ghostread.dm" +#include "code\modules\newscaster\news_network.dm" +#include "code\modules\newscaster\newscaster_machine.dm" +#include "code\modules\newscaster\newspaper.dm" +#include "code\modules\newscaster\wanted_message.dm" +#include "code\modules\ninja\__ninjaDefines.dm" +#include "code\modules\ninja\energy_katana.dm" +#include "code\modules\ninja\ninja_event.dm" +#include "code\modules\ninja\outfit.dm" +#include "code\modules\ninja\suit\gloves.dm" +#include "code\modules\ninja\suit\head.dm" +#include "code\modules\ninja\suit\mask.dm" +#include "code\modules\ninja\suit\ninjaDrainAct.dm" +#include "code\modules\ninja\suit\shoes.dm" +#include "code\modules\ninja\suit\suit.dm" +#include "code\modules\ninja\suit\suit_attackby.dm" +#include "code\modules\ninja\suit\suit_initialisation.dm" +#include "code\modules\ninja\suit\suit_process.dm" +#include "code\modules\ninja\suit\n_suit_verbs\energy_net_nets.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_adrenaline.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_cost_check.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_empulse.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_net.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_smoke.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_stars.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_stealth.dm" +#include "code\modules\ninja\suit\n_suit_verbs\ninja_sword_recall.dm" +#include "code\modules\NTNet\netdata.dm" +#include "code\modules\NTNet\network.dm" +#include "code\modules\NTNet\relays.dm" +#include "code\modules\NTNet\services\_service.dm" +#include "code\modules\paperwork\carbonpaper.dm" +#include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\contract.dm" +#include "code\modules\paperwork\filingcabinet.dm" +#include "code\modules\paperwork\folders.dm" +#include "code\modules\paperwork\handlabeler.dm" +#include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_cutter.dm" +#include "code\modules\paperwork\paper_premade.dm" +#include "code\modules\paperwork\paperbin.dm" +#include "code\modules\paperwork\paperplane.dm" +#include "code\modules\paperwork\pen.dm" +#include "code\modules\paperwork\photocopier.dm" +#include "code\modules\paperwork\stamps.dm" +#include "code\modules\paperwork\ticketmachine.dm" +#include "code\modules\photography\_pictures.dm" +#include "code\modules\photography\camera\camera.dm" +#include "code\modules\photography\camera\camera_image_capturing.dm" +#include "code\modules\photography\camera\film.dm" +#include "code\modules\photography\camera\other.dm" +#include "code\modules\photography\camera\silicon_camera.dm" +#include "code\modules\photography\photos\album.dm" +#include "code\modules\photography\photos\frame.dm" +#include "code\modules\photography\photos\photo.dm" +#include "code\modules\plumbing\ducts.dm" +#include "code\modules\plumbing\plumbers\_plumb_machinery.dm" +#include "code\modules\plumbing\plumbers\acclimator.dm" +#include "code\modules\plumbing\plumbers\autohydro.dm" +#include "code\modules\plumbing\plumbers\bottler.dm" +#include "code\modules\plumbing\plumbers\destroyer.dm" +#include "code\modules\plumbing\plumbers\fermenter.dm" +#include "code\modules\plumbing\plumbers\filter.dm" +#include "code\modules\plumbing\plumbers\grinder_chemical.dm" +#include "code\modules\plumbing\plumbers\medipenrefill.dm" +#include "code\modules\plumbing\plumbers\pill_press.dm" +#include "code\modules\plumbing\plumbers\pumps.dm" +#include "code\modules\plumbing\plumbers\reaction_chamber.dm" +#include "code\modules\plumbing\plumbers\splitters.dm" +#include "code\modules\plumbing\plumbers\synthesizer.dm" +#include "code\modules\pool\pool_controller.dm" +#include "code\modules\pool\pool_drain.dm" +#include "code\modules\pool\pool_effects.dm" +#include "code\modules\pool\pool_main.dm" +#include "code\modules\pool\pool_noodles.dm" +#include "code\modules\pool\pool_structures.dm" +#include "code\modules\pool\pool_wires.dm" +#include "code\modules\power\apc.dm" +#include "code\modules\power\cable.dm" +#include "code\modules\power\cell.dm" +#include "code\modules\power\floodlight.dm" +#include "code\modules\power\generator.dm" +#include "code\modules\power\gravitygenerator.dm" +#include "code\modules\power\lighting.dm" +#include "code\modules\power\monitor.dm" +#include "code\modules\power\multiz.dm" +#include "code\modules\power\port_gen.dm" +#include "code\modules\power\power.dm" +#include "code\modules\power\powernet.dm" +#include "code\modules\power\rtg.dm" +#include "code\modules\power\smes.dm" +#include "code\modules\power\solar.dm" +#include "code\modules\power\terminal.dm" +#include "code\modules\power\tracker.dm" +#include "code\modules\power\turbine.dm" +#include "code\modules\power\antimatter\containment_jar.dm" +#include "code\modules\power\antimatter\control.dm" +#include "code\modules\power\antimatter\shielding.dm" +#include "code\modules\power\singularity\collector.dm" +#include "code\modules\power\singularity\containment_field.dm" +#include "code\modules\power\singularity\emitter.dm" +#include "code\modules\power\singularity\field_generator.dm" +#include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" +#include "code\modules\power\singularity\narsie.dm" +#include "code\modules\power\singularity\singularity.dm" +#include "code\modules\power\singularity\particle_accelerator\particle.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" +#include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" +#include "code\modules\procedural_mapping\mapGenerator.dm" +#include "code\modules\procedural_mapping\mapGeneratorModule.dm" +#include "code\modules\procedural_mapping\mapGeneratorObj.dm" +#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" +#include "code\modules\procedural_mapping\mapGenerators\cellular.dm" +#include "code\modules\procedural_mapping\mapGenerators\cult.dm" +#include "code\modules\procedural_mapping\mapGenerators\lava_river.dm" +#include "code\modules\procedural_mapping\mapGenerators\lavaland.dm" +#include "code\modules\procedural_mapping\mapGenerators\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\repair.dm" +#include "code\modules\procedural_mapping\mapGenerators\shuttle.dm" +#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" +#include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\pins.dm" +#include "code\modules\projectiles\projectile.dm" +#include "code\modules\projectiles\ammunition\_ammunition.dm" +#include "code\modules\projectiles\ammunition\_firing.dm" +#include "code\modules\projectiles\ammunition\ballistic\lmg.dm" +#include "code\modules\projectiles\ammunition\ballistic\pistol.dm" +#include "code\modules\projectiles\ammunition\ballistic\revolver.dm" +#include "code\modules\projectiles\ammunition\ballistic\rifle.dm" +#include "code\modules\projectiles\ammunition\ballistic\shotgun.dm" +#include "code\modules\projectiles\ammunition\ballistic\smg.dm" +#include "code\modules\projectiles\ammunition\ballistic\sniper.dm" +#include "code\modules\projectiles\ammunition\caseless\_caseless.dm" +#include "code\modules\projectiles\ammunition\caseless\arrow.dm" +#include "code\modules\projectiles\ammunition\caseless\ferromagnetic.dm" +#include "code\modules\projectiles\ammunition\caseless\foam.dm" +#include "code\modules\projectiles\ammunition\caseless\misc.dm" +#include "code\modules\projectiles\ammunition\caseless\rocket.dm" +#include "code\modules\projectiles\ammunition\energy\_energy.dm" +#include "code\modules\projectiles\ammunition\energy\ebow.dm" +#include "code\modules\projectiles\ammunition\energy\gravity.dm" +#include "code\modules\projectiles\ammunition\energy\laser.dm" +#include "code\modules\projectiles\ammunition\energy\lmg.dm" +#include "code\modules\projectiles\ammunition\energy\plasma.dm" +#include "code\modules\projectiles\ammunition\energy\plasma_cit.dm" +#include "code\modules\projectiles\ammunition\energy\portal.dm" +#include "code\modules\projectiles\ammunition\energy\special.dm" +#include "code\modules\projectiles\ammunition\energy\stun.dm" +#include "code\modules\projectiles\ammunition\special\magic.dm" +#include "code\modules\projectiles\ammunition\special\syringe.dm" +#include "code\modules\projectiles\boxes_magazines\_box_magazine.dm" +#include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "code\modules\projectiles\boxes_magazines\external\grenade.dm" +#include "code\modules\projectiles\boxes_magazines\external\lmg.dm" +#include "code\modules\projectiles\boxes_magazines\external\magweapon.dm" +#include "code\modules\projectiles\boxes_magazines\external\pistol.dm" +#include "code\modules\projectiles\boxes_magazines\external\rechargable.dm" +#include "code\modules\projectiles\boxes_magazines\external\rifle.dm" +#include "code\modules\projectiles\boxes_magazines\external\shotgun.dm" +#include "code\modules\projectiles\boxes_magazines\external\smg.dm" +#include "code\modules\projectiles\boxes_magazines\external\sniper.dm" +#include "code\modules\projectiles\boxes_magazines\external\toy.dm" +#include "code\modules\projectiles\boxes_magazines\internal\_cylinder.dm" +#include "code\modules\projectiles\boxes_magazines\internal\_internal.dm" +#include "code\modules\projectiles\boxes_magazines\internal\bow.dm" +#include "code\modules\projectiles\boxes_magazines\internal\derringer.dm" +#include "code\modules\projectiles\boxes_magazines\internal\grenade.dm" +#include "code\modules\projectiles\boxes_magazines\internal\misc.dm" +#include "code\modules\projectiles\boxes_magazines\internal\revolver.dm" +#include "code\modules\projectiles\boxes_magazines\internal\rifle.dm" +#include "code\modules\projectiles\boxes_magazines\internal\shotgun.dm" +#include "code\modules\projectiles\boxes_magazines\internal\toy.dm" +#include "code\modules\projectiles\guns\ballistic.dm" +#include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\magic.dm" +#include "code\modules\projectiles\guns\ballistic\automatic.dm" +#include "code\modules\projectiles\guns\ballistic\bow.dm" +#include "code\modules\projectiles\guns\ballistic\derringer.dm" +#include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" +#include "code\modules\projectiles\guns\ballistic\launchers.dm" +#include "code\modules\projectiles\guns\ballistic\magweapon.dm" +#include "code\modules\projectiles\guns\ballistic\pistol.dm" +#include "code\modules\projectiles\guns\ballistic\revolver.dm" +#include "code\modules\projectiles\guns\ballistic\shotgun.dm" +#include "code\modules\projectiles\guns\ballistic\toy.dm" +#include "code\modules\projectiles\guns\energy\dueling.dm" +#include "code\modules\projectiles\guns\energy\energy_gun.dm" +#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" +#include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\megabuster.dm" +#include "code\modules\projectiles\guns\energy\mounted.dm" +#include "code\modules\projectiles\guns\energy\plasma_cit.dm" +#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\special.dm" +#include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\magic\motivation.dm" +#include "code\modules\projectiles\guns\magic\spell_book.dm" +#include "code\modules\projectiles\guns\magic\staff.dm" +#include "code\modules\projectiles\guns\magic\wand.dm" +#include "code\modules\projectiles\guns\misc\beam_rifle.dm" +#include "code\modules\projectiles\guns\misc\blastcannon.dm" +#include "code\modules\projectiles\guns\misc\chameleon.dm" +#include "code\modules\projectiles\guns\misc\chem_gun.dm" +#include "code\modules\projectiles\guns\misc\grenade_launcher.dm" +#include "code\modules\projectiles\guns\misc\medbeam.dm" +#include "code\modules\projectiles\guns\misc\syringe_gun.dm" +#include "code\modules\projectiles\projectile\beams.dm" +#include "code\modules\projectiles\projectile\bullets.dm" +#include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\megabuster.dm" +#include "code\modules\projectiles\projectile\plasma.dm" +#include "code\modules\projectiles\projectile\bullets\_incendiary.dm" +#include "code\modules\projectiles\projectile\bullets\dart_syringe.dm" +#include "code\modules\projectiles\projectile\bullets\dnainjector.dm" +#include "code\modules\projectiles\projectile\bullets\ferromagnetic.dm" +#include "code\modules\projectiles\projectile\bullets\grenade.dm" +#include "code\modules\projectiles\projectile\bullets\lmg.dm" +#include "code\modules\projectiles\projectile\bullets\pistol.dm" +#include "code\modules\projectiles\projectile\bullets\revolver.dm" +#include "code\modules\projectiles\projectile\bullets\rifle.dm" +#include "code\modules\projectiles\projectile\bullets\shotgun.dm" +#include "code\modules\projectiles\projectile\bullets\smg.dm" +#include "code\modules\projectiles\projectile\bullets\sniper.dm" +#include "code\modules\projectiles\projectile\bullets\special.dm" +#include "code\modules\projectiles\projectile\energy\_energy.dm" +#include "code\modules\projectiles\projectile\energy\ebow.dm" +#include "code\modules\projectiles\projectile\energy\misc.dm" +#include "code\modules\projectiles\projectile\energy\net_snare.dm" +#include "code\modules\projectiles\projectile\energy\nuclear_particle.dm" +#include "code\modules\projectiles\projectile\energy\stun.dm" +#include "code\modules\projectiles\projectile\energy\tesla.dm" +#include "code\modules\projectiles\projectile\magic\spellcard.dm" +#include "code\modules\projectiles\projectile\reusable\_reusable.dm" +#include "code\modules\projectiles\projectile\reusable\arrow.dm" +#include "code\modules\projectiles\projectile\reusable\foam_dart.dm" +#include "code\modules\projectiles\projectile\reusable\magspear.dm" +#include "code\modules\projectiles\projectile\special\curse.dm" +#include "code\modules\projectiles\projectile\special\floral.dm" +#include "code\modules\projectiles\projectile\special\gravity.dm" +#include "code\modules\projectiles\projectile\special\hallucination.dm" +#include "code\modules\projectiles\projectile\special\ion.dm" +#include "code\modules\projectiles\projectile\special\judgement_cut.dm" +#include "code\modules\projectiles\projectile\special\meteor.dm" +#include "code\modules\projectiles\projectile\special\mindflayer.dm" +#include "code\modules\projectiles\projectile\special\neurotoxin.dm" +#include "code\modules\projectiles\projectile\special\plasma.dm" +#include "code\modules\projectiles\projectile\special\rocket.dm" +#include "code\modules\projectiles\projectile\special\temperature.dm" +#include "code\modules\projectiles\projectile\special\wormhole.dm" +#include "code\modules\reagents\chem_splash.dm" +#include "code\modules\reagents\chem_wiki_render.dm" +#include "code\modules\reagents\reagent_containers.dm" +#include "code\modules\reagents\reagent_dispenser.dm" +#include "code\modules\reagents\chemistry\colors.dm" +#include "code\modules\reagents\chemistry\holder.dm" +#include "code\modules\reagents\chemistry\reagents.dm" +#include "code\modules\reagents\chemistry\recipes.dm" +#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" +#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" +#include "code\modules\reagents\chemistry\machinery\chem_master.dm" +#include "code\modules\reagents\chemistry\machinery\chem_synthesizer.dm" +#include "code\modules\reagents\chemistry\machinery\pandemic.dm" +#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" +#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm" +#include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\drink_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\drug_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\food_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\impure_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\medicine_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\other_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm" +#include "code\modules\reagents\chemistry\recipes\drugs.dm" +#include "code\modules\reagents\chemistry\recipes\medicine.dm" +#include "code\modules\reagents\chemistry\recipes\others.dm" +#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" +#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" +#include "code\modules\reagents\chemistry\recipes\special.dm" +#include "code\modules\reagents\chemistry\recipes\toxins.dm" +#include "code\modules\reagents\reagent_containers\blood_pack.dm" +#include "code\modules\reagents\reagent_containers\borghypo.dm" +#include "code\modules\reagents\reagent_containers\bottle.dm" +#include "code\modules\reagents\reagent_containers\chem_pack.dm" +#include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\glass.dm" +#include "code\modules\reagents\reagent_containers\hypospray.dm" +#include "code\modules\reagents\reagent_containers\hypovial.dm" +#include "code\modules\reagents\reagent_containers\maunamug.dm" +#include "code\modules\reagents\reagent_containers\medspray.dm" +#include "code\modules\reagents\reagent_containers\patch.dm" +#include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\rags.dm" +#include "code\modules\reagents\reagent_containers\sleeper_buffer.dm" +#include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\recycling\conveyor2.dm" +#include "code\modules\recycling\sortingmachinery.dm" +#include "code\modules\recycling\disposal\bin.dm" +#include "code\modules\recycling\disposal\construction.dm" +#include "code\modules\recycling\disposal\eject.dm" +#include "code\modules\recycling\disposal\holder.dm" +#include "code\modules\recycling\disposal\multiz.dm" +#include "code\modules\recycling\disposal\outlet.dm" +#include "code\modules\recycling\disposal\pipe.dm" +#include "code\modules\recycling\disposal\pipe_sorting.dm" +#include "code\modules\research\bepis.dm" +#include "code\modules\research\designs.dm" +#include "code\modules\research\destructive_analyzer.dm" +#include "code\modules\research\experimentor.dm" +#include "code\modules\research\rdconsole.dm" +#include "code\modules\research\rdmachines.dm" +#include "code\modules\research\research_disk.dm" +#include "code\modules\research\server.dm" +#include "code\modules\research\stock_parts.dm" +#include "code\modules\research\anomaly\anomaly_core.dm" +#include "code\modules\research\anomaly\explosive_compressor.dm" +#include "code\modules\research\anomaly\raw_anomaly.dm" +#include "code\modules\research\designs\AI_module_designs.dm" +#include "code\modules\research\designs\autobotter_designs.dm" +#include "code\modules\research\designs\autoylathe_designs.dm" +#include "code\modules\research\designs\biogenerator_designs.dm" +#include "code\modules\research\designs\bluespace_designs.dm" +#include "code\modules\research\designs\computer_part_designs.dm" +#include "code\modules\research\designs\electronics_designs.dm" +#include "code\modules\research\designs\equipment_designs.dm" +#include "code\modules\research\designs\limbgrower_designs.dm" +#include "code\modules\research\designs\mecha_designs.dm" +#include "code\modules\research\designs\mechfabricator_designs.dm" +#include "code\modules\research\designs\medical_designs.dm" +#include "code\modules\research\designs\mining_designs.dm" +#include "code\modules\research\designs\misc_designs.dm" +#include "code\modules\research\designs\nanite_designs.dm" +#include "code\modules\research\designs\power_designs.dm" +#include "code\modules\research\designs\smelting_designs.dm" +#include "code\modules\research\designs\stock_parts_designs.dm" +#include "code\modules\research\designs\telecomms_designs.dm" +#include "code\modules\research\designs\tool_designs.dm" +#include "code\modules\research\designs\weapon_designs.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" +#include "code\modules\research\machinery\_production.dm" +#include "code\modules\research\machinery\circuit_imprinter.dm" +#include "code\modules\research\machinery\departmental_circuit_imprinter.dm" +#include "code\modules\research\machinery\departmental_protolathe.dm" +#include "code\modules\research\machinery\departmental_techfab.dm" +#include "code\modules\research\machinery\protolathe.dm" +#include "code\modules\research\machinery\techfab.dm" +#include "code\modules\research\nanites\nanite_chamber.dm" +#include "code\modules\research\nanites\nanite_chamber_computer.dm" +#include "code\modules\research\nanites\nanite_cloud_controller.dm" +#include "code\modules\research\nanites\nanite_misc_items.dm" +#include "code\modules\research\nanites\nanite_program_hub.dm" +#include "code\modules\research\nanites\nanite_programmer.dm" +#include "code\modules\research\nanites\nanite_programs.dm" +#include "code\modules\research\nanites\nanite_remote.dm" +#include "code\modules\research\nanites\program_disks.dm" +#include "code\modules\research\nanites\public_chamber.dm" +#include "code\modules\research\nanites\rules.dm" +#include "code\modules\research\nanites\extra_settings\_extra_setting.dm" +#include "code\modules\research\nanites\extra_settings\boolean.dm" +#include "code\modules\research\nanites\extra_settings\number.dm" +#include "code\modules\research\nanites\extra_settings\text.dm" +#include "code\modules\research\nanites\extra_settings\type.dm" +#include "code\modules\research\nanites\nanite_programs\buffing.dm" +#include "code\modules\research\nanites\nanite_programs\healing.dm" +#include "code\modules\research\nanites\nanite_programs\protocols.dm" +#include "code\modules\research\nanites\nanite_programs\rogue.dm" +#include "code\modules\research\nanites\nanite_programs\sensor.dm" +#include "code\modules\research\nanites\nanite_programs\suppression.dm" +#include "code\modules\research\nanites\nanite_programs\utility.dm" +#include "code\modules\research\nanites\nanite_programs\weapon.dm" +#include "code\modules\research\techweb\__techweb_helpers.dm" +#include "code\modules\research\techweb\_techweb.dm" +#include "code\modules\research\techweb\_techweb_node.dm" +#include "code\modules\research\techweb\nodes\alien_nodes.dm" +#include "code\modules\research\techweb\nodes\bepis_nodes.dm" +#include "code\modules\research\techweb\nodes\biotech_nodes.dm" +#include "code\modules\research\techweb\nodes\bluespace_nodes.dm" +#include "code\modules\research\techweb\nodes\computer_hud_nodes.dm" +#include "code\modules\research\techweb\nodes\engineering_nodes.dm" +#include "code\modules\research\techweb\nodes\export_nodes.dm" +#include "code\modules\research\techweb\nodes\mecha_nodes.dm" +#include "code\modules\research\techweb\nodes\medical_nodes.dm" +#include "code\modules\research\techweb\nodes\misc_nodes.dm" +#include "code\modules\research\techweb\nodes\nanites_nodes.dm" +#include "code\modules\research\techweb\nodes\robotics_nodes.dm" +#include "code\modules\research\techweb\nodes\syndicate_nodes.dm" +#include "code\modules\research\techweb\nodes\tools_nodes.dm" +#include "code\modules\research\techweb\nodes\weaponry_nodes.dm" +#include "code\modules\research\xenobiology\xenobio_camera.dm" +#include "code\modules\research\xenobiology\xenobiology.dm" +#include "code\modules\research\xenobiology\crossbreeding\__corecross.dm" +#include "code\modules\research\xenobiology\crossbreeding\_clothing.dm" +#include "code\modules\research\xenobiology\crossbreeding\_misc.dm" +#include "code\modules\research\xenobiology\crossbreeding\_mobs.dm" +#include "code\modules\research\xenobiology\crossbreeding\_status_effects.dm" +#include "code\modules\research\xenobiology\crossbreeding\_weapons.dm" +#include "code\modules\research\xenobiology\crossbreeding\burning.dm" +#include "code\modules\research\xenobiology\crossbreeding\charged.dm" +#include "code\modules\research\xenobiology\crossbreeding\chilling.dm" +#include "code\modules\research\xenobiology\crossbreeding\consuming.dm" +#include "code\modules\research\xenobiology\crossbreeding\industrial.dm" +#include "code\modules\research\xenobiology\crossbreeding\prismatic.dm" +#include "code\modules\research\xenobiology\crossbreeding\recurring.dm" +#include "code\modules\research\xenobiology\crossbreeding\regenerative.dm" +#include "code\modules\research\xenobiology\crossbreeding\reproductive.dm" +#include "code\modules\research\xenobiology\crossbreeding\selfsustaining.dm" +#include "code\modules\research\xenobiology\crossbreeding\stabilized.dm" +#include "code\modules\ruins\lavaland_ruin_code.dm" +#include "code\modules\ruins\icemoonruin_code\hotsprings.dm" +#include "code\modules\ruins\icemoonruin_code\library.dm" +#include "code\modules\ruins\lavalandruin_code\alien_nest.dm" +#include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" +#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" +#include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" +#include "code\modules\ruins\lavalandruin_code\puzzle.dm" +#include "code\modules\ruins\lavalandruin_code\sloth.dm" +#include "code\modules\ruins\lavalandruin_code\surface.dm" +#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" +#include "code\modules\ruins\objects_and_mobs\ash_walker_den.dm" +#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" +#include "code\modules\ruins\objects_and_mobs\sin_ruins.dm" +#include "code\modules\ruins\spaceruin_code\asteroid4.dm" +#include "code\modules\ruins\spaceruin_code\bigderelict1.dm" +#include "code\modules\ruins\spaceruin_code\caravanambush.dm" +#include "code\modules\ruins\spaceruin_code\clericsden.dm" +#include "code\modules\ruins\spaceruin_code\cloning_lab.dm" +#include "code\modules\ruins\spaceruin_code\crashedclownship.dm" +#include "code\modules\ruins\spaceruin_code\crashedship.dm" +#include "code\modules\ruins\spaceruin_code\deepstorage.dm" +#include "code\modules\ruins\spaceruin_code\DJstation.dm" +#include "code\modules\ruins\spaceruin_code\hilbertshotel.dm" +#include "code\modules\ruins\spaceruin_code\listeningstation.dm" +#include "code\modules\ruins\spaceruin_code\miracle.dm" +#include "code\modules\ruins\spaceruin_code\oldstation.dm" +#include "code\modules\ruins\spaceruin_code\originalcontent.dm" +#include "code\modules\ruins\spaceruin_code\skelter.dm" +#include "code\modules\ruins\spaceruin_code\spacehotel.dm" +#include "code\modules\ruins\spaceruin_code\TheDerelict.dm" +#include "code\modules\ruins\spaceruin_code\whiteshipruin_box.dm" +#include "code\modules\security_levels\keycard_authentication.dm" +#include "code\modules\security_levels\security_levels.dm" +#include "code\modules\shielding\helpers.dm" +#include "code\modules\shuttle\arrivals.dm" +#include "code\modules\shuttle\assault_pod.dm" +#include "code\modules\shuttle\computer.dm" +#include "code\modules\shuttle\custom_shuttle.dm" +#include "code\modules\shuttle\docking.dm" +#include "code\modules\shuttle\elevator.dm" +#include "code\modules\shuttle\emergency.dm" +#include "code\modules\shuttle\ferry.dm" +#include "code\modules\shuttle\manipulator.dm" +#include "code\modules\shuttle\monastery.dm" +#include "code\modules\shuttle\navigation_computer.dm" +#include "code\modules\shuttle\on_move.dm" +#include "code\modules\shuttle\ripple.dm" +#include "code\modules\shuttle\shuttle.dm" +#include "code\modules\shuttle\shuttle_rotate.dm" +#include "code\modules\shuttle\snaxi.dm" +#include "code\modules\shuttle\spaceship_navigation_beacon.dm" +#include "code\modules\shuttle\special.dm" +#include "code\modules\shuttle\supply.dm" +#include "code\modules\shuttle\syndicate.dm" +#include "code\modules\shuttle\white_ship.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_actions.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_console.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" +#include "code\modules\smithing\anvil.dm" +#include "code\modules\smithing\finished_items.dm" +#include "code\modules\smithing\furnace.dm" +#include "code\modules\smithing\smithed_items.dm" +#include "code\modules\spells\spell.dm" +#include "code\modules\spells\spell_types\aimed.dm" +#include "code\modules\spells\spell_types\area_teleport.dm" +#include "code\modules\spells\spell_types\bloodcrawl.dm" +#include "code\modules\spells\spell_types\charge.dm" +#include "code\modules\spells\spell_types\cluwnecurse.dm" +#include "code\modules\spells\spell_types\cone_spells.dm" +#include "code\modules\spells\spell_types\conjure.dm" +#include "code\modules\spells\spell_types\construct_spells.dm" +#include "code\modules\spells\spell_types\curse.dm" +#include "code\modules\spells\spell_types\devil.dm" +#include "code\modules\spells\spell_types\devil_boons.dm" +#include "code\modules\spells\spell_types\dumbfire.dm" +#include "code\modules\spells\spell_types\emplosion.dm" +#include "code\modules\spells\spell_types\ethereal_jaunt.dm" +#include "code\modules\spells\spell_types\explosion.dm" +#include "code\modules\spells\spell_types\forcewall.dm" +#include "code\modules\spells\spell_types\genetic.dm" +#include "code\modules\spells\spell_types\godhand.dm" +#include "code\modules\spells\spell_types\infinite_guns.dm" +#include "code\modules\spells\spell_types\inflict_handler.dm" +#include "code\modules\spells\spell_types\knock.dm" +#include "code\modules\spells\spell_types\lichdom.dm" +#include "code\modules\spells\spell_types\lightning.dm" +#include "code\modules\spells\spell_types\mime.dm" +#include "code\modules\spells\spell_types\projectile.dm" +#include "code\modules\spells\spell_types\rightandwrong.dm" +#include "code\modules\spells\spell_types\rod_form.dm" +#include "code\modules\spells\spell_types\santa.dm" +#include "code\modules\spells\spell_types\shadow_walk.dm" +#include "code\modules\spells\spell_types\shapeshift.dm" +#include "code\modules\spells\spell_types\spacetime_distortion.dm" +#include "code\modules\spells\spell_types\summonitem.dm" +#include "code\modules\spells\spell_types\taeclowndo.dm" +#include "code\modules\spells\spell_types\telepathy.dm" +#include "code\modules\spells\spell_types\the_traps.dm" +#include "code\modules\spells\spell_types\togglebuff.dm" +#include "code\modules\spells\spell_types\touch_attacks.dm" +#include "code\modules\spells\spell_types\trigger.dm" +#include "code\modules\spells\spell_types\turf_teleport.dm" +#include "code\modules\spells\spell_types\voice_of_god.dm" +#include "code\modules\spells\spell_types\wizard.dm" +#include "code\modules\spells\spell_types\pointed\barnyard.dm" +#include "code\modules\spells\spell_types\pointed\blind.dm" +#include "code\modules\spells\spell_types\pointed\mind_transfer.dm" +#include "code\modules\spells\spell_types\pointed\pointed.dm" +#include "code\modules\station_goals\bsa.dm" +#include "code\modules\station_goals\dna_vault.dm" +#include "code\modules\station_goals\shield.dm" +#include "code\modules\station_goals\station_goal.dm" +#include "code\modules\surgery\amputation.dm" +#include "code\modules\surgery\bone_mending.dm" +#include "code\modules\surgery\brain_surgery.dm" +#include "code\modules\surgery\burn_dressing.dm" +#include "code\modules\surgery\cavity_implant.dm" +#include "code\modules\surgery\core_removal.dm" +#include "code\modules\surgery\coronary_bypass.dm" +#include "code\modules\surgery\dental_implant.dm" +#include "code\modules\surgery\embalming.dm" +#include "code\modules\surgery\emergency_cardioversion_recovery.dm" +#include "code\modules\surgery\emergency_reboot.dm" +#include "code\modules\surgery\experimental_dissection.dm" +#include "code\modules\surgery\eye_surgery.dm" +#include "code\modules\surgery\graft_synthtissue.dm" +#include "code\modules\surgery\healing.dm" +#include "code\modules\surgery\helpers.dm" +#include "code\modules\surgery\implant_removal.dm" +#include "code\modules\surgery\limb_augmentation.dm" +#include "code\modules\surgery\lipoplasty.dm" +#include "code\modules\surgery\lobectomy.dm" +#include "code\modules\surgery\mechanic_steps.dm" +#include "code\modules\surgery\nutcracker.dm" +#include "code\modules\surgery\organ_manipulation.dm" +#include "code\modules\surgery\organic_steps.dm" +#include "code\modules\surgery\plastic_surgery.dm" +#include "code\modules\surgery\prosthetic_replacement.dm" +#include "code\modules\surgery\purge_corruption.dm" +#include "code\modules\surgery\remove_embedded_object.dm" +#include "code\modules\surgery\repair_puncture.dm" +#include "code\modules\surgery\robot_brain_surgery.dm" +#include "code\modules\surgery\robot_healing.dm" +#include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\surgery_step.dm" +#include "code\modules\surgery\tools.dm" +#include "code\modules\surgery\advanced\brainwashing.dm" +#include "code\modules\surgery\advanced\lobotomy.dm" +#include "code\modules\surgery\advanced\necrotic_revival.dm" +#include "code\modules\surgery\advanced\pacification.dm" +#include "code\modules\surgery\advanced\revival.dm" +#include "code\modules\surgery\advanced\toxichealing.dm" +#include "code\modules\surgery\advanced\viral_bonding.dm" +#include "code\modules\surgery\advanced\bioware\bioware.dm" +#include "code\modules\surgery\advanced\bioware\bioware_surgery.dm" +#include "code\modules\surgery\advanced\bioware\ligament_hook.dm" +#include "code\modules\surgery\advanced\bioware\ligament_reinforcement.dm" +#include "code\modules\surgery\advanced\bioware\muscled_veins.dm" +#include "code\modules\surgery\advanced\bioware\nerve_grounding.dm" +#include "code\modules\surgery\advanced\bioware\nerve_splicing.dm" +#include "code\modules\surgery\advanced\bioware\vein_threading.dm" +#include "code\modules\surgery\bodyparts\_bodyparts.dm" +#include "code\modules\surgery\bodyparts\dismemberment.dm" +#include "code\modules\surgery\bodyparts\head.dm" +#include "code\modules\surgery\bodyparts\helpers.dm" +#include "code\modules\surgery\bodyparts\parts.dm" +#include "code\modules\surgery\bodyparts\robot_bodyparts.dm" +#include "code\modules\surgery\organs\appendix.dm" +#include "code\modules\surgery\organs\augments_arms.dm" +#include "code\modules\surgery\organs\augments_chest.dm" +#include "code\modules\surgery\organs\augments_eyes.dm" +#include "code\modules\surgery\organs\augments_internal.dm" +#include "code\modules\surgery\organs\autosurgeon.dm" +#include "code\modules\surgery\organs\ears.dm" +#include "code\modules\surgery\organs\eyes.dm" +#include "code\modules\surgery\organs\heart.dm" +#include "code\modules\surgery\organs\helpers.dm" +#include "code\modules\surgery\organs\liver.dm" +#include "code\modules\surgery\organs\lungs.dm" +#include "code\modules\surgery\organs\organ_internal.dm" +#include "code\modules\surgery\organs\stomach.dm" +#include "code\modules\surgery\organs\tails.dm" +#include "code\modules\surgery\organs\tongue.dm" +#include "code\modules\surgery\organs\vocal_cords.dm" +#include "code\modules\tcg\cards.dm" +#include "code\modules\tcg\pack_1.dm" +#include "code\modules\tcg\pack_nuclear.dm" +#include "code\modules\tcg\pack_star.dm" +#include "code\modules\tgchat\message.dm" +#include "code\modules\tgchat\to_chat.dm" +#include "code\modules\tgs\includes.dm" +#include "code\modules\tgui\external.dm" +#include "code\modules\tgui\states.dm" +#include "code\modules\tgui\tgui.dm" +#include "code\modules\tgui\tgui_alert.dm" +#include "code\modules\tgui\tgui_input_list.dm" +#include "code\modules\tgui\tgui_window.dm" +#include "code\modules\tgui\states\admin.dm" +#include "code\modules\tgui\states\always.dm" +#include "code\modules\tgui\states\conscious.dm" +#include "code\modules\tgui\states\contained.dm" +#include "code\modules\tgui\states\debug.dm" +#include "code\modules\tgui\states\deep_inventory.dm" +#include "code\modules\tgui\states\default.dm" +#include "code\modules\tgui\states\hands.dm" +#include "code\modules\tgui\states\human_adjacent.dm" +#include "code\modules\tgui\states\inventory.dm" +#include "code\modules\tgui\states\language_menu.dm" +#include "code\modules\tgui\states\new_player.dm" +#include "code\modules\tgui\states\not_incapacitated.dm" +#include "code\modules\tgui\states\notcontained.dm" +#include "code\modules\tgui\states\observer.dm" +#include "code\modules\tgui\states\physical.dm" +#include "code\modules\tgui\states\self.dm" +#include "code\modules\tgui\states\zlevel.dm" +#include "code\modules\tgui_panel\audio.dm" +#include "code\modules\tgui_panel\external.dm" +#include "code\modules\tgui_panel\telemetry.dm" +#include "code\modules\tgui_panel\tgui_panel.dm" +#include "code\modules\tooltip\tooltip.dm" +#include "code\modules\unit_tests\_unit_tests.dm" +#include "code\modules\uplink\uplink_devices.dm" +#include "code\modules\uplink\uplink_items.dm" +#include "code\modules\uplink\uplink_purchase_log.dm" +#include "code\modules\uplink\uplink_items\uplink_ammo.dm" +#include "code\modules\uplink\uplink_items\uplink_badass.dm" +#include "code\modules\uplink\uplink_items\uplink_bundles.dm" +#include "code\modules\uplink\uplink_items\uplink_clothing.dm" +#include "code\modules\uplink\uplink_items\uplink_dangerous.dm" +#include "code\modules\uplink\uplink_items\uplink_devices.dm" +#include "code\modules\uplink\uplink_items\uplink_explosives.dm" +#include "code\modules\uplink\uplink_items\uplink_implants.dm" +#include "code\modules\uplink\uplink_items\uplink_roles.dm" +#include "code\modules\uplink\uplink_items\uplink_stealth.dm" +#include "code\modules\uplink\uplink_items\uplink_stealthdevices.dm" +#include "code\modules\uplink\uplink_items\uplink_support.dm" +#include "code\modules\vehicles\_vehicle.dm" +#include "code\modules\vehicles\atv.dm" +#include "code\modules\vehicles\bicycle.dm" +#include "code\modules\vehicles\lavaboat.dm" +#include "code\modules\vehicles\pimpin_ride.dm" +#include "code\modules\vehicles\ridden.dm" +#include "code\modules\vehicles\scooter.dm" +#include "code\modules\vehicles\sealed.dm" +#include "code\modules\vehicles\secway.dm" +#include "code\modules\vehicles\speedbike.dm" +#include "code\modules\vehicles\vehicle_actions.dm" +#include "code\modules\vehicles\vehicle_key.dm" +#include "code\modules\vehicles\wheelchair.dm" +#include "code\modules\vehicles\cars\car.dm" +#include "code\modules\vehicles\cars\clowncar.dm" +#include "code\modules\vending\_vending.dm" +#include "code\modules\vending\assist.dm" +#include "code\modules\vending\autodrobe.dm" +#include "code\modules\vending\barkbox.dm" +#include "code\modules\vending\boozeomat.dm" +#include "code\modules\vending\cartridge.dm" +#include "code\modules\vending\cigarette.dm" +#include "code\modules\vending\clothesmate.dm" +#include "code\modules\vending\coffee.dm" +#include "code\modules\vending\cola.dm" +#include "code\modules\vending\dinnerware.dm" +#include "code\modules\vending\engineering.dm" +#include "code\modules\vending\engivend.dm" +#include "code\modules\vending\games.dm" +#include "code\modules\vending\kinkmate.dm" +#include "code\modules\vending\liberation.dm" +#include "code\modules\vending\liberation_toy.dm" +#include "code\modules\vending\magivend.dm" +#include "code\modules\vending\medical.dm" +#include "code\modules\vending\medical_wall.dm" +#include "code\modules\vending\megaseed.dm" +#include "code\modules\vending\nutrimax.dm" +#include "code\modules\vending\plasmaresearch.dm" +#include "code\modules\vending\robotics.dm" +#include "code\modules\vending\security.dm" +#include "code\modules\vending\snack.dm" +#include "code\modules\vending\sovietsoda.dm" +#include "code\modules\vending\sovietvend.dm" +#include "code\modules\vending\sustenance.dm" +#include "code\modules\vending\toys.dm" +#include "code\modules\vending\wardrobes.dm" +#include "code\modules\vending\youtool.dm" +#include "code\modules\vore\hook-defs.dm" +#include "code\modules\vore\persistence.dm" +#include "code\modules\vore\trycatch.dm" +#include "code\modules\vore\eating\belly_dat_vr.dm" +#include "code\modules\vore\eating\belly_obj.dm" +#include "code\modules\vore\eating\bellymodes.dm" +#include "code\modules\vore\eating\digest_act.dm" +#include "code\modules\vore\eating\living.dm" +#include "code\modules\vore\eating\voreitems.dm" +#include "code\modules\vore\eating\vorepanel.dm" +#include "code\modules\VR\vr_mob.dm" +#include "code\modules\VR\vr_sleeper.dm" +#include "code\modules\zombie\items.dm" +#include "code\modules\zombie\organs.dm" +#include "interface\interface.dm" +#include "interface\menu.dm" +#include "interface\stylesheet.dm" +#include "interface\skin.dmf" +#include "modular_citadel\code\datums\components\souldeath.dm" +#include "modular_citadel\code\datums\status_effects\chems.dm" +#include "modular_citadel\code\game\objects\cit_screenshake.dm" +#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" +#include "modular_citadel\code\modules\admin\holder2.dm" +#include "modular_citadel\code\modules\admin\secrets.dm" +#include "modular_citadel\code\modules\client\client_procs.dm" +#include "modular_citadel\code\modules\client\preferences_savefile.dm" +#include "modular_citadel\code\modules\client\preferences_toggles.dm" +#include "modular_citadel\code\modules\client\loadout\__donator.dm" +#include "modular_citadel\code\modules\client\loadout\_loadout.dm" +#include "modular_citadel\code\modules\client\loadout\_medical.dm" +#include "modular_citadel\code\modules\client\loadout\_security.dm" +#include "modular_citadel\code\modules\client\loadout\_service.dm" +#include "modular_citadel\code\modules\client\loadout\backpack.dm" +#include "modular_citadel\code\modules\client\loadout\glasses.dm" +#include "modular_citadel\code\modules\client\loadout\gloves.dm" +#include "modular_citadel\code\modules\client\loadout\hands.dm" +#include "modular_citadel\code\modules\client\loadout\head.dm" +#include "modular_citadel\code\modules\client\loadout\mask.dm" +#include "modular_citadel\code\modules\client\loadout\neck.dm" +#include "modular_citadel\code\modules\client\loadout\shoes.dm" +#include "modular_citadel\code\modules\client\loadout\suit.dm" +#include "modular_citadel\code\modules\client\loadout\uniform.dm" +#include "modular_citadel\code\modules\client\loadout\unlockable.dm" +#include "modular_citadel\code\modules\client\verbs\who.dm" +#include "modular_citadel\code\modules\clothing\neck.dm" +#include "modular_citadel\code\modules\clothing\trek.dm" +#include "modular_citadel\code\modules\clothing\suits\suits.dm" +#include "modular_citadel\code\modules\custom_loadout\custom_items.dm" +#include "modular_citadel\code\modules\custom_loadout\load_to_mob.dm" +#include "modular_citadel\code\modules\custom_loadout\read_from_file.dm" +#include "modular_citadel\code\modules\mentor\dementor.dm" +#include "modular_citadel\code\modules\mentor\follow.dm" +#include "modular_citadel\code\modules\mentor\mentor.dm" +#include "modular_citadel\code\modules\mentor\mentor_memo.dm" +#include "modular_citadel\code\modules\mentor\mentor_verbs.dm" +#include "modular_citadel\code\modules\mentor\mentorhelp.dm" +#include "modular_citadel\code\modules\mentor\mentorpm.dm" +#include "modular_citadel\code\modules\mentor\mentorsay.dm" +#include "modular_citadel\code\modules\mob\cit_emotes.dm" +#include "modular_citadel\code\modules\mob\living\living.dm" +#include "modular_citadel\code\modules\mob\living\carbon\carbon.dm" +#include "modular_citadel\code\modules\mob\living\carbon\damage_procs.dm" +#include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" +#include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" +#include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" +#include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" +#include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm" +#include "modular_citadel\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\pistol.dm" +#include "modular_citadel\code\modules\projectiles\boxes_magazines\external\smg\smg.dm" +#include "modular_citadel\code\modules\projectiles\bullets\bullets\smg.dm" +#include "modular_citadel\code\modules\projectiles\guns\pumpenergy.dm" +#include "modular_citadel\code\modules\projectiles\guns\toys.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" +#include "modular_citadel\code\modules\projectiles\guns\energy\energy_gun.dm" +#include "modular_citadel\code\modules\projectiles\projectiles\reusable.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\astrogen.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\eigentstasium.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\enlargement.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\fermi_reagents.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\healing.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\MKUltra.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\SDGF.dm" +#include "modular_citadel\code\modules\reagents\chemistry\recipes\fermi.dm" +#include "modular_citadel\code\modules\reagents\objects\clothes.dm" +#include "modular_citadel\code\modules\reagents\objects\items.dm" +// END_INCLUDE From 8d641a8a4ab0f3ab73a8cbab895c5bda29c56227 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon, 14 Jun 2021 22:25:58 +0200 Subject: [PATCH 008/173] Hopefully this looks better? --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index bf6cf98d56..50814a7652 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3623,6 +3623,7 @@ #include "code\modules\vehicles\wheelchair.dm" #include "code\modules\vehicles\cars\car.dm" #include "code\modules\vehicles\cars\clowncar.dm" +#include "code\modules\vehicles\motorized_wheelchair.dm" #include "code\modules\vending\_vending.dm" #include "code\modules\vending\assist.dm" #include "code\modules\vending\autodrobe.dm" From 48a993d0c0a06e8a07b9d02024ca407417b1d087 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Mon, 14 Jun 2021 22:40:11 +0200 Subject: [PATCH 009/173] Oh yeah, forgot the new noise, whoops --- sound/effects/chairwhoosh.ogg | Bin 0 -> 8334 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sound/effects/chairwhoosh.ogg diff --git a/sound/effects/chairwhoosh.ogg b/sound/effects/chairwhoosh.ogg new file mode 100644 index 0000000000000000000000000000000000000000..907659f7cb2dafd8d2f3d3e3b1ccafd8430e3802 GIT binary patch literal 8334 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 Date: Mon, 14 Jun 2021 23:11:30 +0200 Subject: [PATCH 010/173] Proper Overlay for the Hoverchair This is the last fix for now, I promise. --- icons/obj/vehicles.dmi | Bin 45461 -> 45935 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 3c03d663b29264eee653f2a87474060f168766f7..14b19caef80c802d96a65d3831be20f603550a54 100644 GIT binary patch delta 4435 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 T2&&+05dMQgo~wUSwTk#3Xr8KL delta 3957 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 E2Lg_qX#fBK From 5f4a07ce1293e769dc3f8c6300ea206dddbfe346 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed, 16 Jun 2021 13:41:15 +0200 Subject: [PATCH 011/173] Also I'm a dork and forgot the recipe. --- .../components/crafting/recipes/recipes_misc.dm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 032dd0ea90..ad74af798c 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -374,6 +374,19 @@ subcategory = CAT_MISCELLANEOUS category = CAT_MISC +/datum/crafting_recipe/motorized_wheelchair + name = "Hoverchair" + result = /obj/vehicle/ridden/wheelchair/motorized + reqs = list(/obj/item/stack/sheet/plasteel = 10, + /obj/item/stack/rods = 8, + /obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/capacitor = 1) + parts = list(/obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/capacitor = 1) + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) + time = 200 + category = CAT_MISC + /datum/crafting_recipe/skateboard name = "Skateboard" result = /obj/vehicle/ridden/scooter/skateboard From 02bbe70810d6860f3690b9fb2cf42f6e8d68d13d Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed, 16 Jun 2021 23:23:38 +0200 Subject: [PATCH 012/173] This is so the crafting menu doesn't break. My bad. --- code/datums/components/crafting/recipes/recipes_misc.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index ad74af798c..625e850212 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -385,6 +385,7 @@ /obj/item/stock_parts/capacitor = 1) tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) time = 200 + subcategory = CAT_MISCELLANEOUS category = CAT_MISC /datum/crafting_recipe/skateboard From 54d114ce02b63e88598f9eda1136ae26b157c02b Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 20 Jun 2021 11:06:40 -0700 Subject: [PATCH 013/173] Update stunbaton.dm --- code/game/objects/items/stunbaton.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 7721de42ad..062b7a0b49 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -16,14 +16,14 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) attack_speed = CLICK_CD_MELEE - var/stamina_loss_amount = 35 + var/stamina_loss_amount = 40 var/turned_on = FALSE var/knockdown = TRUE var/obj/item/stock_parts/cell/cell var/hitcost = 750 var/throw_hit_chance = 35 var/preload_cell_type //if not empty the baton starts with this type of cell - var/cooldown_duration = 5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown + var/cooldown_duration = 4 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown var/status_duration = 5 SECONDS //how long our status effects last for otherwise COOLDOWN_DECLARE(shove_cooldown) From d704fec03914a671f055fcae60ad0aa5dfc75199 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 20 Jun 2021 11:08:46 -0700 Subject: [PATCH 014/173] Update stunbaton.dm --- code/game/objects/items/stunbaton.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 062b7a0b49..acbbd14a03 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -23,7 +23,7 @@ var/hitcost = 750 var/throw_hit_chance = 35 var/preload_cell_type //if not empty the baton starts with this type of cell - var/cooldown_duration = 4 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown + var/cooldown_duration = 3.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown var/status_duration = 5 SECONDS //how long our status effects last for otherwise COOLDOWN_DECLARE(shove_cooldown) From e6345dd32a56ca7601bdf7b5998bcd32cced07ee Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 07:55:44 -0700 Subject: [PATCH 015/173] Hopefully fixes whatever requires SHOULD_NOT_SLEEP to be commented out --- code/controllers/subsystem/processing/processing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index f5a423b353..661eafc2a5 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -47,5 +47,5 @@ SUBSYSTEM_DEF(processing) * If you override this do not call parent, as it will return PROCESS_KILL. This is done to prevent objects that dont override process() from staying in the processing list */ /datum/proc/process(delta_time) - // SHOULD_NOT_SLEEP(TRUE) + SHOULD_NOT_SLEEP(TRUE) return PROCESS_KILL From 0bf383a90b6170c75bd72d4d7654bcc3c91c1133 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 09:18:06 -0700 Subject: [PATCH 016/173] does this fix it --- code/datums/components/lockon_aiming.dm | 1 + code/datums/dna.dm | 2 +- code/game/machinery/cloning.dm | 12 ++++--- .../machinery/porta_turret/portable_turret.dm | 1 + code/game/objects/items/pneumaticCannon.dm | 1 + .../ark_of_the_clockwork_justicar.dm | 1 + .../ratvar_the_clockwork_justicar.dm | 1 + .../antagonists/cult/cult_structures.dm | 35 +++++++++++-------- code/modules/antagonists/devil/devil.dm | 1 - .../simple_animal/hostile/bosses/boss.dm | 1 + .../chemistry/recipes/pyrotechnics.dm | 2 ++ .../chemistry/recipes/slime_extracts.dm | 1 + code/modules/vore/eating/living.dm | 3 +- 13 files changed, 40 insertions(+), 22 deletions(-) diff --git a/code/datums/components/lockon_aiming.dm b/code/datums/components/lockon_aiming.dm index 2f4401862d..4acdece7e5 100644 --- a/code/datums/components/lockon_aiming.dm +++ b/code/datums/components/lockon_aiming.dm @@ -158,6 +158,7 @@ autolock() /datum/component/lockon_aiming/proc/autolock() + set waitfor = FALSE var/mob/M = parent if(!M.client) return FALSE diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 248b669ab1..a2982a3caf 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -405,7 +405,7 @@ /mob/living/carbon/human/proc/hardset_dna(ui, list/mutation_index, newreal_name, newblood_type, datum/species/mrace, newfeatures, list/default_mutation_genes) - + set waitfor = FALSE if(newreal_name) real_name = newreal_name dna.generate_unique_enzymes() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index e95543cffb..a3bdfe4243 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -173,10 +173,7 @@ clonemind.transfer_to(H) else if(get_clone_mind == CLONEPOD_POLL_MIND) - var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone? (Don't ERP without permission from the original)", null, null, null, 100, H, POLL_IGNORE_CLONE) - if(LAZYLEN(candidates)) - var/mob/C = pick(candidates) - H.key = C.key + poll_for_mind(H, clonename) if(grab_ghost_when == CLONER_FRESH_CLONE) H.grab_ghost() @@ -206,6 +203,13 @@ attempting = FALSE return TRUE +/obj/machinery/clonepod/proc/poll_for_mind(mob/living/carbon/human/H, clonename) + set waitfor = FALSE + var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone? (Don't ERP without permission from the original)", null, null, null, 100, H, POLL_IGNORE_CLONE) + if(LAZYLEN(candidates)) + var/mob/C = pick(candidates) + H.key = C.key + //Grow clones to maturity then kick them out. FREELOADERS /obj/machinery/clonepod/process() var/mob/living/mob_occupant = occupant diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index aad64df6d9..c4e40b6cf3 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -521,6 +521,7 @@ layer = MOB_LAYER /obj/machinery/porta_turret/proc/popDown() //pops the turret down + set waitfor = FALSE if(raising || !raised) return if(stat & BROKEN) diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index e62208f848..42e345b502 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -266,6 +266,7 @@ . += tank.icon_state /obj/item/pneumatic_cannon/proc/fill_with_type(type, amount) + set waitfor = FALSE if(!ispath(type, /obj) && !ispath(type, /mob)) return FALSE var/loaded = 0 diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 025306dae4..7ed275bd4e 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -168,6 +168,7 @@ . = ..() /obj/structure/destructible/clockwork/massive/celestial_gateway/deconstruct(disassembled = TRUE) + set waitfor = FALSE if(!(flags_1 & NODECONSTRUCT_1)) if(!disassembled) resistance_flags |= INDESTRUCTIBLE diff --git a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm index 24ad1af88a..51f8dc7101 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -110,6 +110,7 @@ //Put me in Reebe, will you? Ratvar has found and is going to do a hecking murder on Nar'Sie /obj/structure/destructible/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie) + set waitfor = FALSE var/winner = "Undeclared" var/base_victory_chance = 1 while(src && narsie) diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 25fd446b06..a0093e4da1 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -204,26 +204,31 @@ STOP_PROCESSING(SSfastprocess, src) return ..() +/obj/structure/destructible/cult/pylon/proc/heal_friends() + set waitfor = FALSE + for(var/mob/living/L in range(5, src)) + if(iscultist(L) || isshade(L) || isconstruct(L)) + if(L.health != L.maxHealth) + new /obj/effect/temp_visual/heal(get_turf(src), "#960000") + if(ishuman(L)) + L.adjustBruteLoss(-1, 0, only_organic = FALSE) + L.adjustFireLoss(-1, 0, only_organic = FALSE) + L.updatehealth() + if(isshade(L) || isconstruct(L)) + var/mob/living/simple_animal/M = L + if(M.health < M.maxHealth) + M.adjustHealth(-3) + if(ishuman(L) && L.blood_volume < (BLOOD_VOLUME_NORMAL * L.blood_ratio)) + L.blood_volume += 1.0 + CHECK_TICK + + /obj/structure/destructible/cult/pylon/process() if(!anchored) return if(last_heal <= world.time) last_heal = world.time + heal_delay - for(var/mob/living/L in range(5, src)) - if(iscultist(L) || isshade(L) || isconstruct(L)) - if(L.health != L.maxHealth) - new /obj/effect/temp_visual/heal(get_turf(src), "#960000") - if(ishuman(L)) - L.adjustBruteLoss(-1, 0, only_organic = FALSE) - L.adjustFireLoss(-1, 0, only_organic = FALSE) - L.updatehealth() - if(isshade(L) || isconstruct(L)) - var/mob/living/simple_animal/M = L - if(M.health < M.maxHealth) - M.adjustHealth(-3) - if(ishuman(L) && L.blood_volume < (BLOOD_VOLUME_NORMAL * L.blood_ratio)) - L.blood_volume += 1.0 - CHECK_TICK + heal_friends() if(last_corrupt <= world.time) var/list/validturfs = list() var/list/cultturfs = list() diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 3b6dc68986..65ce89d33f 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -515,7 +515,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", var/mob/living/silicon/robot_devil = owner.current var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.") robot_devil.set_law_sixsixsix(laws) - sleep(10) if(owner.assigned_role == "Clown" && ishuman(owner.current)) var/mob/living/carbon/human/S = owner.current to_chat(S, "Your infernal nature has allowed you to overcome your clownishness.") diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm index 98700ffaf0..d6eab5b1fc 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm @@ -124,6 +124,7 @@ points = min(points+cost, max_points) /datum/boss_active_timed_battle/process() + SHOULD_NOT_SLEEP(FALSE) // it doesn't actually call anything that sleeps if(world.time >= next_point_time && points < max_points) next_point_time = world.time + point_regen_delay points = min(max_points, points + point_regen_amount) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 070d5cb269..3a21a3aa8c 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -58,6 +58,7 @@ required_reagents = list(/datum/reagent/water/holywater = 1, /datum/reagent/potassium = 1) /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/on_reaction(datum/reagents/holder, multiplier) + set waitfor = FALSE var/turf/T = get_turf(holder.my_atom) if(multiplier >= 150) playsound(get_turf(holder.my_atom), 'sound/effects/pray.ogg', 80, 0, round(multiplier/48)) @@ -430,6 +431,7 @@ var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN /datum/chemical_reaction/reagent_explosion/teslium_lightning/on_reaction(datum/reagents/holder, multiplier) + set waitfor = FALSE var/T1 = multiplier * 20 //100 units : Zap 3 times, with powers 2000/5000/12000. Tesla revolvers have a power of 10000 for comparison. var/T2 = multiplier * 50 var/T3 = multiplier * 120 diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 1e78d81f24..3e9820a2ff 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -570,6 +570,7 @@ required_other = TRUE /datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder) + set waitfor = FALSE sleep(50) var/obj/item/slime_extract/sepia/extract = holder.my_atom var/turf/T = get_turf(holder.my_atom) diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index 41d7da16a1..ca5ee0f476 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -59,13 +59,14 @@ // Critical adjustments due to TG grab changes - Poojawa /mob/living/proc/vore_attack(var/mob/living/user, var/mob/living/prey, var/mob/living/pred) - lazy_init_belly() + set waitfor = FALSE if(!user || !prey || !pred) return if(!isliving(pred)) //no badmin, you can't feed people to ghosts or objects. return + lazy_init_belly() if(pred == prey) //you click your target if(!CHECK_BITFIELD(pred.vore_flags,FEEDING)) to_chat(user, "They aren't able to be fed.") From c06983ce093cca6e202a5c77a60e6f3c27b4f1f9 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 09:27:32 -0700 Subject: [PATCH 017/173] uh... does this? --- code/game/machinery/porta_turret/portable_turret.dm | 1 + code/modules/reagents/chemistry/recipes.dm | 1 + code/modules/reagents/chemistry/recipes/pyrotechnics.dm | 2 -- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index c4e40b6cf3..db8f666368 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -503,6 +503,7 @@ return 1 /obj/machinery/porta_turret/proc/popUp() //pops the turret up + set waitfor = FALSE if(!anchored) return if(raising || raised) diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 7df061c8aa..41c0ed717e 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -40,6 +40,7 @@ /datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, multiplier, specialreact) + set waitfor = FALSE return //I recommend you set the result amount to the total volume of all components. diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 3a21a3aa8c..070d5cb269 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -58,7 +58,6 @@ required_reagents = list(/datum/reagent/water/holywater = 1, /datum/reagent/potassium = 1) /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/on_reaction(datum/reagents/holder, multiplier) - set waitfor = FALSE var/turf/T = get_turf(holder.my_atom) if(multiplier >= 150) playsound(get_turf(holder.my_atom), 'sound/effects/pray.ogg', 80, 0, round(multiplier/48)) @@ -431,7 +430,6 @@ var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN /datum/chemical_reaction/reagent_explosion/teslium_lightning/on_reaction(datum/reagents/holder, multiplier) - set waitfor = FALSE var/T1 = multiplier * 20 //100 units : Zap 3 times, with powers 2000/5000/12000. Tesla revolvers have a power of 10000 for comparison. var/T2 = multiplier * 50 var/T3 = multiplier * 120 From c253a2de86ed1d5ec0936536f9f3318ffd23e22c Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 09:52:54 -0700 Subject: [PATCH 018/173] alright how about these --- code/datums/components/embedded.dm | 1 + code/datums/elements/earhealing.dm | 1 + code/datums/wires/airlock.dm | 15 ++++---- code/game/machinery/computer/pod.dm | 1 + .../ark_of_the_clockwork_justicar.dm | 36 ++++++++++--------- .../clock_structures/prolonging_prism.dm | 16 +++++---- code/modules/arousal/arousal.dm | 1 + code/modules/mining/mint.dm | 5 +-- .../computers/item/computer.dm | 1 + code/modules/zombie/organs.dm | 2 +- .../reagents/chemistry/recipes/fermi.dm | 1 + 11 files changed, 49 insertions(+), 31 deletions(-) diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index ec5ec19a6b..eca38fee34 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -265,6 +265,7 @@ /// Items embedded/stuck to carbons both check whether they randomly fall out (if applicable), as well as if the target mob and limb still exists. /// Items harmfully embedded in carbons have an additional check for random pain (if applicable) /datum/component/embedded/proc/processCarbon() + set waitfor = FALSE var/mob/living/carbon/victim = parent if(!victim || !limb) // in case the victim and/or their limbs exploded (say, due to a sticky bomb) diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index 91c2120fc2..bcbc4020d9 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -25,6 +25,7 @@ user_by_item -= source /datum/element/earhealing/process() + set waitfor = FALSE for(var/i in user_by_item) var/mob/living/carbon/user = user_by_item[i] if(HAS_TRAIT(user, TRAIT_DEAF)) diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 9af78b0090..04c26b8045 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -106,12 +106,7 @@ A.aiControlDisabled = 1 else if(A.aiControlDisabled == -1) A.aiControlDisabled = 2 - sleep(10) - if(A) - if(A.aiControlDisabled == 1) - A.aiControlDisabled = 0 - else if(A.aiControlDisabled == 2) - A.aiControlDisabled = -1 + addtimer(CALLBACK(src, .proc/reenable_ai_control), 10) if(WIRE_SHOCK) // Pulse to shock the door for 10 ticks. if(!A.secondsElectrified) A.set_electrified(30, usr) @@ -125,6 +120,14 @@ A.lights = !A.lights A.update_icon() +/datum/wires/airlock/proc/reenable_ai_control() + var/obj/machinery/door/airlock/A = holder + if(A) + if(A.aiControlDisabled == 1) + A.aiControlDisabled = 0 + else if(A.aiControlDisabled == 2) + A.aiControlDisabled = -1 + /datum/wires/airlock/on_cut(wire, mend) var/obj/machinery/door/airlock/A = holder if(usr && !A.hasSiliconAccessInArea(usr) && A.isElectrified() && A.shock(usr, 100)) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 97e2d4ea0a..f1cf187ff9 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -34,6 +34,7 @@ * Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors */ /obj/machinery/computer/pod/proc/alarm() + set waitfor = FALSE if(stat & (NOPOWER|BROKEN)) return diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 7ed275bd4e..0fe78f146e 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -168,23 +168,27 @@ . = ..() /obj/structure/destructible/clockwork/massive/celestial_gateway/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1) && !disassembled) + finalize_destruction() + else + qdel(src) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/finalize_destruction() set waitfor = FALSE - if(!(flags_1 & NODECONSTRUCT_1)) - if(!disassembled) - resistance_flags |= INDESTRUCTIBLE - countdown.stop() - visible_message("[src] begins to pulse uncontrollably... you might want to run!") - sound_to_playing_players(volume = 50, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_disrupted.ogg')) - for(var/mob/M in GLOB.player_list) - var/turf/T = get_turf(M) - if((T && T.z == z) || is_servant_of_ratvar(M)) - M.playsound_local(M, 'sound/machines/clockcult/ark_deathrattle.ogg', 100, FALSE, pressure_affected = FALSE) - make_glow() - glow.icon_state = "clockwork_gateway_disrupted" - resistance_flags |= INDESTRUCTIBLE - sleep(27) - explosion(src, 1, 3, 8, 8) - sound_to_playing_players('sound/effects/explosion_distant.ogg', volume = 50) + resistance_flags |= INDESTRUCTIBLE + countdown.stop() + visible_message("[src] begins to pulse uncontrollably... you might want to run!") + sound_to_playing_players(volume = 50, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_disrupted.ogg')) + for(var/mob/M in GLOB.player_list) + var/turf/T = get_turf(M) + if((T && T.z == z) || is_servant_of_ratvar(M)) + M.playsound_local(M, 'sound/machines/clockcult/ark_deathrattle.ogg', 100, FALSE, pressure_affected = FALSE) + make_glow() + glow.icon_state = "clockwork_gateway_disrupted" + resistance_flags |= INDESTRUCTIBLE + sleep(27) + explosion(src, 1, 3, 8, 8) + sound_to_playing_players('sound/effects/explosion_distant.ogg', volume = 50) qdel(src) /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/make_glow() diff --git a/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm b/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm index 73488d736a..ededd0174c 100644 --- a/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm +++ b/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm @@ -60,12 +60,8 @@ delay_remaining += PRISM_DELAY_DURATION toggle(0, user) -/obj/structure/destructible/clockwork/powered/prolonging_prism/process() - var/turf/own_turf = get_turf(src) - if(SSshuttle.emergency.mode != SHUTTLE_CALL || delay_remaining <= 0 || !own_turf || !is_station_level(own_turf.z)) - forced_disable(FALSE) - return - . = ..() +/obj/structure/destructible/clockwork/powered/prolonging_prism/proc/do_process() + set waitfor = FALSE var/delay_amount = 40 delay_remaining -= delay_amount var/efficiency = get_efficiency_mod() @@ -114,6 +110,14 @@ new /obj/effect/temp_visual/ratvar/prolonging_prism(T) CHECK_TICK //we may be going over a hell of a lot of turfs +/obj/structure/destructible/clockwork/powered/prolonging_prism/process() + var/turf/own_turf = get_turf(src) + if(SSshuttle.emergency.mode != SHUTTLE_CALL || delay_remaining <= 0 || !own_turf || !is_station_level(own_turf.z)) + forced_disable(FALSE) + return + . = ..() + do_process() + /obj/structure/destructible/clockwork/powered/prolonging_prism/proc/get_delay_cost() return FLOOR(delay_cost, MIN_CLOCKCULT_POWER) diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index bd8b5dbf7a..36da6c73ba 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -197,6 +197,7 @@ //Here's the main proc itself /mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE,cause = "") //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints + set waitfor = FALSE if(mb_cd_timer > world.time) if(!forced_climax) //Don't spam the message to the victim if forced to come too fast to_chat(src, "You need to wait [DisplayTimeText((mb_cd_timer - world.time), TRUE)] before you can do that again!") diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index 2a8e0f2516..f8a4ba4a72 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -64,8 +64,6 @@ if(materials.use_amount_mat(coin_mat, chosen)) for(var/coin_to_make in 1 to 5) create_coins() - produced_coins++ - CHECK_TICK else var/found_new = FALSE for(var/datum/material/inserted_material in materials.materials) @@ -131,6 +129,7 @@ return TRUE /obj/machinery/mineral/mint/proc/create_coins() + set waitfor = FALSE var/turf/T = get_step(src,output_dir) var/temp_list = list() temp_list[chosen] = 400 @@ -143,3 +142,5 @@ O.forceMove(bag_to_use) //don't bother sending the signal, the new bag is empty and all that. SSblackbox.record_feedback("amount", "coins_minted", 1) + produced_coins++ + CHECK_TICK diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 131a098258..64c99e01bf 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -349,6 +349,7 @@ // Relays kill program request to currently active program. Use this to quit current program. /obj/item/modular_computer/proc/kill_program(forced = FALSE) + set waitfor = FALSE if(active_program) active_program.kill_program(forced) active_program = null diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 2681f781a9..a724d26314 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -45,7 +45,7 @@ if(!owner) return if(!(src in owner.internal_organs)) - Remove(owner) + INVOKE_ASYNC(src,.proc/Remove,owner) if(owner.mob_biotypes & MOB_MINERAL)//does not process in inorganic things return if (causes_damage && !iszombie(owner) && owner.stat != DEAD) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index ab39e6f4a7..edaaeb19b2 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -28,6 +28,7 @@ //Called when temperature is above a certain threshold, or if purity is too low. /datum/chemical_reaction/proc/FermiExplode(datum/reagents/R0, var/atom/my_atom, volume, temp, pH, Exploding = FALSE) + set waitfor = FALSE if (Exploding == TRUE) return From fbbae7052735b1e89ea58cfd34e6b8b51020b4d3 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 10:14:50 -0700 Subject: [PATCH 019/173] i need to go to bed and this is a LOT --- code/controllers/subsystem/nightshift.dm | 1 + code/datums/elements/earhealing.dm | 5 ++++- code/datums/wires/_wires.dm | 1 + code/game/gamemodes/gangs/dominator.dm | 12 ++++++++---- code/game/machinery/syndicatebomb.dm | 1 + code/game/mecha/combat/neovgre.dm | 2 -- .../game/objects/structures/transit_tubes/station.dm | 1 + .../clockcult/clock_effects/clock_sigils.dm | 6 +++++- .../antagonists/traitor/equipment/Malf_Modules.dm | 1 + code/modules/assembly/infrared.dm | 1 + code/modules/events/portal_storm.dm | 5 ++++- code/modules/events/wizard/fakeexplosion.dm | 3 +-- code/modules/mining/machine_redemption.dm | 8 ++++++-- code/modules/mob/living/silicon/ai/ai.dm | 1 + 14 files changed, 35 insertions(+), 13 deletions(-) diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm index 78b2e63cf2..c45bd64702 100644 --- a/code/controllers/subsystem/nightshift.dm +++ b/code/controllers/subsystem/nightshift.dm @@ -42,6 +42,7 @@ SUBSYSTEM_DEF(nightshift) update_nightshift(night_time, announcing) /datum/controller/subsystem/nightshift/proc/update_nightshift(active, announce = TRUE, max_level_override) + set waitfor = FALSE nightshift_active = active if(announce) if (active) diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index bcbc4020d9..7045da4327 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -24,7 +24,7 @@ else user_by_item -= source -/datum/element/earhealing/process() +/datum/element/earhealing/do_process() set waitfor = FALSE for(var/i in user_by_item) var/mob/living/carbon/user = user_by_item[i] @@ -36,3 +36,6 @@ ears.deaf = max(ears.deaf - 0.25, (ears.damage < ears.maxHealth ? 0 : 1)) // Do not clear deafness if our ears are too damaged ears.damage = max(ears.damage - 0.025, 0) CHECK_TICK + +/datum/element/earhealing/process() + do_process() diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 1c9c14ee3e..81f99cfa69 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -166,6 +166,7 @@ on_pulse(wire, user) /datum/wires/proc/pulse_color(color, mob/living/user) + set waitfor = FALSE LAZYINITLIST(current_users) if(current_users[user]) return FALSE diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm index ed17d830ba..a253aa906c 100644 --- a/code/game/gamemodes/gangs/dominator.dm +++ b/code/game/gamemodes/gangs/dominator.dm @@ -105,14 +105,18 @@ if(tempgang != gang) tempgang.message_gangtools("WARNING: [gang.name] Gang takeover imminent. Their dominator at [domloc.map_name] must be destroyed!",1,1) else - Cinematic(CINEMATIC_MALF,world) //Here is the gang victory trigger on the dominator ending. - gang.winner = TRUE - SSticker.news_report = GANG_VICTORY - SSticker.force_ending = TRUE + endgame() if(!.) STOP_PROCESSING(SSmachines, src) +/obj/machinery/dominator/proc/endgame() + set waitfor = FALSE + Cinematic(CINEMATIC_MALF,world) //Here is the gang victory trigger on the dominator ending. + gang.winner = TRUE + SSticker.news_report = GANG_VICTORY + SSticker.force_ending = TRUE + /obj/machinery/dominator/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 561daf433d..4009b1b56b 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -288,6 +288,7 @@ qdel(src) /obj/item/bombcore/proc/defuse() + set waitfor = FALSE //Note: Because of how var/defused is used you shouldn't override this UNLESS you intend to set the var to 0 or // otherwise remove the core/reset the wires before the end of defuse(). It will repeatedly be called otherwise. diff --git a/code/game/mecha/combat/neovgre.dm b/code/game/mecha/combat/neovgre.dm index 584a2d007e..75470abe88 100644 --- a/code/game/mecha/combat/neovgre.dm +++ b/code/game/mecha/combat/neovgre.dm @@ -70,7 +70,6 @@ cell.charge = INFINITY max_integrity = INFINITY obj_integrity = max_integrity - CHECK_TICK //Just to be on the safe side lag wise else if(cell.charge < cell.maxcharge) for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src)) @@ -80,7 +79,6 @@ adjust_clockwork_power(-delta) if(obj_integrity < max_integrity && istype(loc, /turf/open/floor/clockwork)) obj_integrity += min(max_integrity - obj_integrity, max_integrity / 200) - CHECK_TICK /obj/mecha/combat/neovgre/Initialize() .=..() diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index a5b6b0c9e1..d81c707aaf 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -121,6 +121,7 @@ /obj/structure/transit_tube/station/proc/launch_pod() + set waitfor = FALSE if(launch_cooldown >= world.time) return for(var/obj/structure/transit_tube_pod/pod in loc) diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm index 34370faa0a..d45593858c 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -225,7 +225,11 @@ return ..() /obj/effect/clockwork/sigil/transmission/process() - var/power_drained = 0 + do_process() + +/obj/effect/clockwork/sigil/transmission/proc/do_process() + set waitfor = FALSE + var/power_drained = 0 var/power_mod = 0.005 for(var/t in spiral_range_turfs(SIGIL_ACCESS_RANGE, src)) var/turf/T = t diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 0659655da5..fcc8bcade8 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -401,6 +401,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( next_announce += DOOMSDAY_ANNOUNCE_INTERVAL /obj/machinery/doomsday_device/proc/detonate() + set waitfor = FALSE sound_to_playing_players('sound/machines/alarm.ogg') sleep(100) for(var/i in GLOB.mob_living_list) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 899eb12511..d0ed0f2436 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -81,6 +81,7 @@ return /obj/item/assembly/infra/proc/refreshBeam() + set waitfor = FALSE QDEL_LIST(beams) if(throwing || !on || !secured) return diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 5ef30d0030..1a07ebbae5 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -56,7 +56,10 @@ next_boss_spawn = startWhen + CEILING(2 * number_of_hostiles / number_of_bosses, 1) /datum/round_event/portal_storm/announce(fake) - set waitfor = 0 + do_announce() + +/datum/round_event/portal_storm/do_announce() + set waitfor = FALSE sound_to_playing_players('sound/magic/lightning_chargeup.ogg') sleep(80) priority_announce("Massive bluespace anomaly detected en route to [station_name()]. Brace for impact.") diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm index 5858064819..3ba20f4768 100644 --- a/code/modules/events/wizard/fakeexplosion.dm +++ b/code/modules/events/wizard/fakeexplosion.dm @@ -7,5 +7,4 @@ /datum/round_event/wizard/fake_explosion/start() sound_to_playing_players('sound/machines/alarm.ogg') - sleep(100) - Cinematic(CINEMATIC_NUKE_FAKE,world) + addtimer(CALLBACK(GLOBAL_PROC,.proc/Cinematic, CINEMATIC_NUKE_FAKE, world), 100) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 6cba540ca0..1adc951447 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -145,8 +145,11 @@ D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) /obj/machinery/mineral/ore_redemption/process() - if(!materials.mat_container || panel_open || !powered()) - return + if(materials.mat_container && !panel_open && powered()) + process_all_ores() + +/obj/machinery/mineral/ore_redemption/proc/process_all_ores() + set waitfor = FALSE var/atom/input = get_step(src, input_dir) var/obj/structure/ore_box/OB = locate() in input if(OB) @@ -165,6 +168,7 @@ else if(!message_sent) send_console_message() + /obj/machinery/mineral/ore_redemption/attackby(obj/item/W, mob/user, params) if(default_unfasten_wrench(user, W)) return diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index ce6a5dcda1..1f582b68bf 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -182,6 +182,7 @@ . = ..() /mob/living/silicon/ai/proc/set_core_display_icon(input, client/C) + set waitfor = FALSE if(client && !C) C = client if(!input && !C?.prefs?.preferred_ai_core_display) From 630098c8aab19449904e9b7a1e4d05adae0e22d3 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 20:03:27 -0700 Subject: [PATCH 020/173] that might be all --- code/game/gamemodes/dynamic/dynamic.dm | 13 +++-- .../antagonists/_common/antag_datum.dm | 1 + .../clockcult/clock_effects/clock_sigils.dm | 20 +++---- .../ark_of_the_clockwork_justicar.dm | 58 ++++++++++--------- code/modules/fields/fields.dm | 8 ++- code/modules/hydroponics/hydroponics.dm | 1 + code/modules/mining/machine_unloading.dm | 33 ++++++----- .../simple_animal/hostile/bosses/boss.dm | 5 +- code/modules/recycling/conveyor2.dm | 13 +++-- 9 files changed, 88 insertions(+), 64 deletions(-) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 55f91ba3d3..c7fee7df96 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -711,10 +711,15 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) update_playercounts() if (storyteller.should_inject_antag()) SSblackbox.record_feedback("tally","dynamic",1,"Attempted midround injections") - var/list/drafted_rules = storyteller.midround_draft() - if (drafted_rules.len > 0) - SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections") - picking_midround_latejoin_rule(drafted_rules) + do_midround_injection() + +/datum/game_mode/dynamic/proc/do_midround_injection() + set waitfor = FALSE + var/list/drafted_rules = storyteller.midround_draft() + if (drafted_rules.len > 0) + SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections") + picking_midround_latejoin_rule(drafted_rules) + /// Updates current_players. /datum/game_mode/dynamic/proc/update_playercounts() diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index b92b659183..4082a48e71 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -96,6 +96,7 @@ GLOBAL_LIST_EMPTY(antagonists) //Proc called when the datum is given to a mind. /datum/antagonist/proc/on_gain() + set waitfor = FALSE if(!(owner?.current)) return if(!silent) diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm index d45593858c..4b88d203d6 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -225,22 +225,22 @@ return ..() /obj/effect/clockwork/sigil/transmission/process() - do_process() + do_process() /obj/effect/clockwork/sigil/transmission/proc/do_process() set waitfor = FALSE var/power_drained = 0 - var/power_mod = 0.005 - for(var/t in spiral_range_turfs(SIGIL_ACCESS_RANGE, src)) - var/turf/T = t - for(var/M in T) - var/atom/movable/A = M - power_drained += A.power_drain(TRUE) + var/power_mod = 0.005 + for(var/t in spiral_range_turfs(SIGIL_ACCESS_RANGE, src)) + var/turf/T = t + for(var/M in T) + var/atom/movable/A = M + power_drained += A.power_drain(TRUE) - CHECK_TICK + CHECK_TICK - adjust_clockwork_power(power_drained * power_mod * 15) - new /obj/effect/temp_visual/ratvar/sigil/transmission(loc, 1 + (power_drained * 0.0035)) + adjust_clockwork_power(power_drained * power_mod * 15) + new /obj/effect/temp_visual/ratvar/sigil/transmission(loc, 1 + (power_drained * 0.0035)) /obj/effect/clockwork/sigil/transmission/proc/charge_cyborg(mob/living/silicon/robot/cyborg) if(!cyborg_checks(cyborg)) diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 0fe78f146e..febcf9a6fb 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -245,6 +245,36 @@ if(GATEWAY_RATVAR_COMING to INFINITY) . += "The anomaly is stable! Something is coming through!" +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/fulfill_purpose() + set waitfor = FALSE + countdown.stop() + resistance_flags |= INDESTRUCTIBLE + purpose_fulfilled = TRUE + make_glow() + animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125) + sound_to_playing_players(volume = 100, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/ratvar_rises.ogg')) //End the sounds + sleep(125) + make_glow() + animate(glow, transform = matrix() * 3, alpha = 0, time = 5) + QDEL_IN(src, 3) + sleep(3) + GLOB.clockwork_gateway_activated = TRUE + var/turf/T = SSmapping.get_station_center() + new /obj/structure/destructible/clockwork/massive/ratvar(T) + var/x0 = T.x + var/y0 = T.y + for(var/I in spiral_range_turfs(255, T, tick_checked = TRUE)) + var/turf/T2 = I + if(!T2) + continue + var/dist = cheap_hypotenuse(T2.x, T2.y, x0, y0) + if(dist < 100) + dist = TRUE + else + dist = FALSE + T.ratvar_act(dist) + CHECK_TICK + /obj/structure/destructible/clockwork/massive/celestial_gateway/process() adjust_clockwork_power(2.5) //Provides weak power generation on its own if(seconds_until_activation) @@ -305,33 +335,7 @@ glow.icon_state = "clockwork_gateway_closing" if(GATEWAY_RATVAR_ARRIVAL to INFINITY) if(!purpose_fulfilled) - countdown.stop() - resistance_flags |= INDESTRUCTIBLE - purpose_fulfilled = TRUE - make_glow() - animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125) - sound_to_playing_players(volume = 100, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/ratvar_rises.ogg')) //End the sounds - sleep(125) - make_glow() - animate(glow, transform = matrix() * 3, alpha = 0, time = 5) - QDEL_IN(src, 3) - sleep(3) - GLOB.clockwork_gateway_activated = TRUE - var/turf/T = SSmapping.get_station_center() - new /obj/structure/destructible/clockwork/massive/ratvar(T) - var/x0 = T.x - var/y0 = T.y - for(var/I in spiral_range_turfs(255, T, tick_checked = TRUE)) - var/turf/T2 = I - if(!T2) - continue - var/dist = cheap_hypotenuse(T2.x, T2.y, x0, y0) - if(dist < 100) - dist = TRUE - else - dist = FALSE - T.ratvar_act(dist) - CHECK_TICK + fulfill_purpose() //Converts nearby turfs into their clockwork equivalent, with ever-increasing range the closer the ark is to summoning Ratvar /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/conversion_pulse() diff --git a/code/modules/fields/fields.dm b/code/modules/fields/fields.dm index cb8d3e8dcf..8c7b414996 100644 --- a/code/modules/fields/fields.dm +++ b/code/modules/fields/fields.dm @@ -64,7 +64,8 @@ pass = FALSE return pass -/datum/proximity_monitor/advanced/process() +/datum/proximity_monitor/advanced/proc/lag_checked_process() + set waitfor = FALSE if(process_inner_turfs) for(var/turf/T in field_turfs) process_inner_turf(T) @@ -72,7 +73,10 @@ if(process_edge_turfs) for(var/turf/T in edge_turfs) process_edge_turf(T) - CHECK_TICK //Same here. + CHECK_TICK //Same here. + +/datum/proximity_monitor/advanced/process() + lag_checked_process() /datum/proximity_monitor/advanced/proc/process_inner_turf(turf/T) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index aca727ad8d..fa7decc437 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -391,6 +391,7 @@ mutate(4, 10, 2, 4, 50, 4, 10, 3) /obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! + set waitfor = FALSE if(!myseed || dead) return diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index dc7caa12c8..b39b0df6ab 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -10,22 +10,25 @@ output_dir = EAST speed_process = TRUE -/obj/machinery/mineral/unloading_machine/process() - var/turf/T = get_step(src,input_dir) - if(T) - var/limit - for(var/obj/structure/ore_box/B in T) - for (var/obj/item/stack/ore/O in B) - B.contents -= O - unload_mineral(O) - limit++ - if (limit>=10) - return - CHECK_TICK - CHECK_TICK - for(var/obj/item/I in T) - unload_mineral(I) +/obj/machinery/mineral/unloading_machine/proc/horrible_quadratic_monster(var/turf/T) + set waitfor = FALSE + var/limit = 0 + for(var/obj/structure/ore_box/B in T) + for (var/obj/item/stack/ore/O in B) + B.contents -= O + unload_mineral(O) limit++ if (limit>=10) return CHECK_TICK + for(var/obj/item/I in T) + unload_mineral(I) + limit++ + if (limit>=10) + return + CHECK_TICK + +/obj/machinery/mineral/unloading_machine/process() + var/turf/T = get_step(src,input_dir) + if(T) + horrible_quadratic_monster(T) diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm index d6eab5b1fc..1b0d210d9c 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm @@ -124,7 +124,6 @@ points = min(points+cost, max_points) /datum/boss_active_timed_battle/process() - SHOULD_NOT_SLEEP(FALSE) // it doesn't actually call anything that sleeps if(world.time >= next_point_time && points < max_points) next_point_time = world.time + point_regen_delay points = min(max_points, points + point_regen_amount) @@ -134,6 +133,10 @@ chance_to_hold_onto_points = highest_cost*0.5 if(points != max_points && prob(chance_to_hold_onto_points)) return //Let's save our points for a better ability (unless we're at max points, in which case we can't save anymore!) + do_ability() + +/datum/boss_active_timed_battle/proc/do_ability() + set waitfor = FALSE if(!boss.client) abilities = shuffle(abilities) for(var/ab in abilities) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index aefb670dd3..1bab7e44b8 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -268,16 +268,19 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) // timed process // if the switch changed, update the linked conveyors -/obj/machinery/conveyor_switch/process() - if(!operated) - return - operated = 0 - +/obj/machienry/conveyor_switch/proc/do_process() + set waitfor = FALSE for(var/obj/machinery/conveyor/C in GLOB.conveyors_by_id[id]) C.operating = position C.update_move_direction() CHECK_TICK +/obj/machinery/conveyor_switch/process() + if(!operated) + return + operated = 0 + do_process() + // attack with hand, switch position /obj/machinery/conveyor_switch/interact(mob/user) add_fingerprint(user) From 3627f5b0eb2c864a0f38b63a23a807b916afb231 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 20:08:36 -0700 Subject: [PATCH 021/173] machienry --- code/modules/recycling/conveyor2.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 1bab7e44b8..e9c17ecc28 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -268,7 +268,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) // timed process // if the switch changed, update the linked conveyors -/obj/machienry/conveyor_switch/proc/do_process() +/obj/machinery/conveyor_switch/proc/do_process() set waitfor = FALSE for(var/obj/machinery/conveyor/C in GLOB.conveyors_by_id[id]) C.operating = position From 0f229495d0534426300c5aa5ed450008f34e5f03 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 21 Jun 2021 20:32:55 -0700 Subject: [PATCH 022/173] aaand i forgot some /proc/s --- code/datums/elements/earhealing.dm | 2 +- code/modules/events/portal_storm.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index 7045da4327..1c74777845 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -24,7 +24,7 @@ else user_by_item -= source -/datum/element/earhealing/do_process() +/datum/element/earhealing/proc/do_process() set waitfor = FALSE for(var/i in user_by_item) var/mob/living/carbon/user = user_by_item[i] diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 1a07ebbae5..59bb22e9af 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -58,7 +58,7 @@ /datum/round_event/portal_storm/announce(fake) do_announce() -/datum/round_event/portal_storm/do_announce() +/datum/round_event/portal_storm/proc/do_announce() set waitfor = FALSE sound_to_playing_players('sound/magic/lightning_chargeup.ogg') sleep(80) From b23daf752ed9a3dedd0a40af5cf1a8da29a9bf80 Mon Sep 17 00:00:00 2001 From: zerothebigboy Date: Tue, 22 Jun 2021 03:58:45 -0400 Subject: [PATCH 023/173] sigh --- icons/obj/device.dmi | Bin 55511 -> 55514 bytes icons/obj/nuke_tools.dmi | Bin 5056 -> 5095 bytes icons/obj/tools.dmi | Bin 33669 -> 33266 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index c7f447c9bb44c1d7c3f8a5b8b4f9d9f27b3df440..b507b3bcdd48eaaaa82de825583afc883c1f7b01 100644 GIT binary patch delta 52467 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%0Dlt5GIQ;wN>41hzqf;zu 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 delta 52432 zcmY&<1y~ee*Y+$W0*Z)$Qi~$ejdY2WAR!_tARs9%&9Z|cBHbY!(%rqFfW#8g(n>eN zQVR=w!~1^M_5a^quFlRi<2+}c=bYz0_kGS(1^z?@e)%UtL9^tqj~Yw_p2ng%O!!gJ zqqko6SfD&OA|qA zZD&`Uu@qeYfQLsN^SnXi^TFXJ;sNwwi7lk~CGNJdmIP-s?kU3refjbwRm@AgioQ4E*W) zDmYx}e~p|vmM7EfFDZH1ry0yd&g`GRk9T0eQd+A+ZSgRR<}L!zYgscg9U*0B-?zc{ z@C`n|zqSDTlRyFg2FU)(7v8I3wgrG#F0~?>7EW-qqPw+XbL0fN2mm6eSIaC>9N74u z;S8K_-@XNa2h7ZbK%$5vqr+@tz|}yxGUer$LUo(|uxg}n{XWw&TV7fgeE6_qOZCp} z+aC*G6)i-_T*!KQ)(goM5_n-r%bX)76O?h-BRJlVc20KhtjIZRmhah->F7Dk(gXk_ z1wiR6gIb|vYM1$Q;)Y#hGk!hoJUheS0K+{q%~HxMBcp4o{pkRNSB`JMs5g7OUA(=*~-9^>u3 zcd~t#n@!A?BNDp33Hu&(bk@B%rq5WCRdmqu%W4ZWwUGVHUEo%#8v`iI%~cx98>bom z$(DEOw?3buG32;R?b*t#z8?-|Ignnc)obfKKQqn{YJCh5W z_!8NtpVb|TBl+P*9AFSA;c>J`mYbg>V`CCNCLm}q@q!x;%o#OL@wsma{%H2Xe6u;+ z9E(BmN;^Mb1R~1`vXvs@!|`83OY8}krtM0$=%wjOQ8c+;!eDzV?m^t(AbDzA`2zU& zvPUw|G0mY&`BB5}y1%dA8ozhh=Y{by6W%ZL=4NI>yubUbq%mOJpa^Hi-rnBLKt2DD zAA!V#!NCv>B3j@NW?`A=F4^x2^S}oz)%Mf1o;t!L9K7iZ+tg_@6(L091`*D2$M_0o zA6#VB!`)y6e&z~iLrmpVN3UOrTn3zvqlL8i=e3c~yKq5GMhRTTp?wRB=D~lpP@Ue&ue*kmyRn93o>WQG?&aSUS6^bP?W~8WVr+7?KqHwwHy4 zW%9g9$g=OQ|8iygNUsa39z7&n~3jD+t~Fo;G+ zK9YT{loKD0+zRqEG3#nUl0$G3EL~Yl}TZh=g-RXr8!`Vp^w0&B;jRr365M)u;1a`SD6Y!5&D^wpdh%bp#5csLwBF# z7l+wLg_Vr)SR(nq&~0~JvVQHnc_c8Bt=$u6h(a{{Y6U@j5a?EVvotc+fmjhVX+cz} zFoz?MJijk|1b80GPi;#Be&ytR)r|fyO5^XVY;!kc{!$%ih_u~eQDzZhV^f~;-7STt zI%B$k{*H9fJh64vJWqxN>$#%rVINJ2aSN>#DT!0h&u3PEow}|I!7m+DGqLU0blYrz zwbU?AAB6y$I^ABpJ5y3Oe(Py&4S&LwX;^FbePDaqJ{*r#J^AxMCu<%%3p@LDAkq-A zrn+-u(h&=ca&;% z$s$TRI@EZ0cz60QZ7XdgZk#q@@`v4dMEeMa&`B8K#TIJ)gNa zKjWnMe)UT75KZQ`_+&(~xBM1fJSWEcXn_g%OT=aJ5Ws_00)B7;0~4`qtfs)cD&))x zf2&Tz{TO|$Wo}tZw?HR;S6M~48un9Y8e-vf0y2!+&>`>}S*9qjK{m{NjI zGWgOMK`TT{>-LZK_Mtot_}_@E2hCq2|Gc2s55VbHS;7G6lRx;9Q>6^vKRW49XvMv3~3Q4&4Vq zH&>^VP_FA*3cddg1(@yKQ7WY;+o7M4sU&224-Iv=iuuAm>8KEvcdwK+E<-!I<;3}D zlHL|q5KWuobS?Mz&Z%Mzg|ZKJ9%qj<+@|<-lR^A9PXD3I6Hq~0B8wa8I!L*irJgF@ z-P03=B2P3E2e;7UbW4%PI2rQ8A0)1I}w?>H3EZ-Y6-7c~tjbi>2L zWMX1smg(-_ay$}B1-2T*JBxqo8z*SL7V%Mdv5t%2e$X*(yChNRd*;5b$|VyY%OTTu z+=AfdQdTF@)UxF?LWQa%@EUUKI!CR8joF4ZvGJ+WpuIuCpp5qtagvDRjyn=sffZGr z9W!(o$FDqRuejNW4d=MTw&X7`i#4jKGGiL{l6MPV>skhA#tL3u860eKvt;sY}P6u68j>=BpyNzWW#2wf0l|g86x6Rsi;zE$96W*#!U^=(nEB`QAN@=HhvG$M(*-n%&(lp5>eM7XiZ2Teq5iw_?{A?6xEYro7ss+~=J8mDlan-}_FdkZx8#L- zqqZa*?7}^iY|mnoJPJPy@>1#U?TzN~t+VO9RZ#6hBc{xyR1HA=(Sc!hsi3Bp=>N@1xVRRyjnwpXQ8qYb@!l~j?0vxb1fHNwo>rF6L zf&k$5!&F{Ux{flLJlruLU`k~uSth2(9QK1=Ynp8fclDxh-rsC*DP1lpY(a)5#cH(d zCtpo53gI=i?Y*w=s>6 z9wp6=Ghg2H;|QU7mj+tRh`QG3!MQQ8k)s4vW!boe%SfBACOr4Qv!-2E#yjfBMlebR z=cOZQl_D73PE=cQ`ysADEQTFgwDfl3_66nTx7gX)gXv>5Jy&mj>;=6Ju4ftB-1RRmzl%kSnc@P{j7j6^MmCopu6Z9Y0qly$YlaW?&Dsu}P% z!a&`-H<(BgNJuL{misES*qMFH*hx0)PKBp1z}NfjpW(W9FyN)!+`hPp>vAs@mvQr5 z-NIK-<2pl}p`TS)?lV{Zv(hEvNd1dA&U~#L63k&AIr#*O42vYauI1o3c!t(PjV@_v zX^}x7>_<3*1pS4arsgeL5rL_8FUs0u^wo}*X{OEO zf*UC5wf|634EB>|AA-c3qa}tk&`#6^1!#REukXee&_SjbW<^kq1wg-_Wg?2EPMP}H*9|T?6X2%~!Sb!Rekgmm&&PL5 zK|x_oaWdBDLj1?O8UJe=uPVhZk0~cKFO2as)SGv(({+wY(CYX%^L%6nZn(USjf35hl;L*@rWL_-?8b6a z4X@8~ZyZs@Cpr3ApZvY?ZHojTo-pG4atc7 zZI@q4Qc7V-HzV%NR9t3Fx>)d=NGCn^I;2iOD$Sgq?JSHLmr+7-rtWPKLC6Rnm-@P> z0x1G9fFlgKz&s?W?lQtfR1y6Cl1lzD67t_1e|N*{kHqm)5+cQ+sB_k~gqY_$VFf1#ZW z#0oGR@ycsx7uO>IfSOCs@8H0dORpRN%H8{EQw9dF0fAO;1zQhR(Dw5vhVPk~mL@K? zMjs(!p_kf!$a>U=AwTw(4EfBx8pYPcGDlSXO$pU_uI~^e=J(ov`#fEm0Yb*i7xR}t zmwICM_R+lW4`RN2Nil=5Jg5`p_`#J9W$7f;npfn-@STX5LBVGr`%=39g3)QQdySCI z^pgn$IFEerz=eU7?ZrKc@$!bbq72TfQygcH9&+6oMxDM&j4anoxOC$DYN8%Q_25B< z+-!W`aSZO{#Pe^O&(4!Lj#qs4Q$qfh-#ZmU@7^aMAYfu*0t7Al-biE4Ip$4Lx28-I z8*Ca(<$lPSu2h2*pJR;9NZmxZC${!<#pfYxgX9gRI&I<8aXP3Co|oLM~e|>=pwF~E_eOAb?=!o!( z*I&ZJsk5@P1D2NFR_)p@VGU3@>M`+paV?F>@pR&923a;er}2$oSQv%^b@**8r z+e1Ls)wK|i&3TaTfqK?m+eKh^I#i5%9D(R7CK#Wsp1D=I&Hwj#9-PXA{4vIe7Dh$t zCox`pLG*&ZK|c{%y~Z+3P+UvH#-EaV57{QP!`-IuXIRk8h?d_wPMcv-GeK=JuOviW z&1sC#J!Vi`+<@(#{fw^UE*zK|TXkvOi8-m8X5&{C+!td{AFpwF}KFJ(vNu+QgE z{7N$YK3uA%J4QzOvp0$A)>#MT$2t~2Y~O^SN$F(FpTuI2p#m3(8_as}JINpuR)yO|-e$?g1^Sb^Q6Qe&( zC1@EYB=u%XPc0lKgbw7Akvqf9?3g?oNf+g(fD+abVNmTj8aJVC4JFx&;QBC&jrZHP z-&C*#m5bbJ%w-|JXxncQ;!{6E|Gv#|-tfowdi6k8`FPs{fCx?T;_<%fm*w5PE_j_7 zc(gUCqF|G>J8qFEd`toWuKGUs$v%W&26~F_M5+#0-5*dvk3z2%|8FK^2^kct&{*If z8ZM$HgNup~^r>6?U1P3;7Rnz5?%Ru7M}v*ghhOBk-`!7IHX&=Zt$BVp(`(^=2K%!a zEb->V!)X1e&k-fB^r;};%A%h(G;Tgc@S636dJ_))j?cZ23+$u^rk2ar!3(Oaw?4AG zd8li4@5+oWl6Kn4qp6fZ_|>(D7Wk#A2zv2vAUxgyF6pV6^Kg@*+w_YZ$8bq}m1Wai z@8k#t;Ikobo;q@JRR>nGueew7YTFj}yow&!=H}sK-m+n#5ahOrzvZ1*9_FYDZy1FC= zQ(6h{YnA~)`@2#RJm=zuYV(z55^~xa*Mc|Ze_}KaE0a+Bn_)>yn>FVevj_r{!MeM! zPM&M6ndNgW{9R@QcbbIy%BJYvuOvpaJ!#+GZTV}nl=YUN8r%p9O0vM0-JPS0>gE4$j&YS20TyTzx@)sPt53ojf>V!t%d(zI1Fk#2 zpBa#s5X|R?gJmX{KWx3v&uDFEIpF9Dffrk$t5+|j88f~hZY>wwPG=n1JM|alDwbaXJJ)w`(etmmJX^-g_ zHVH(`!ol|&%ZA|(r)cf9s}9yv$+?UgM{_pqc#Img!Mg%)zbp*4CSe_@G_iCjoE4U? zwb_qN>U4<>^N+3Njbp*_v_y;SXpBQ zgb@4eYTnQUPv6NjLXA%k#zaC9-u`ZwqQB>m$DU{Jnu#IlU1_p$h4Pv$tLg069PW8| zJ*X|Ki;(Pkv-{H0`xr|@-G8p#C{;cvTdaQ`mPLcddjq?)sEWy%Za?QYSzet_ zt9Q+0c z6tfR~NecYNwB1zF=dgg&QSmx`;AEA6m4xJ^((6*8I+YNg6FlOL{8o|IDRCqq1!VIp&UUueLxk;1Ss zT*|pmRNNl(oafV2G+)8j-EkgIRTk!#*NSs}-nT-#mreIzV%6_0_p09sLNU{f44};z z(fp&9&`$*~D=xL{fwr0H?LC#E)b8Gs7u%k%_FFhI{G`(x`k~D#4%{eTR1L>v>&K2* zB${|*f|Qlo17Yp1%^gt#*y}Iz%%(;Q*2FBYugp0_^q!;5clM9+1M^fZP!oi)-6mWn zM^WF$yJW@B7*-O(5D$hEhD6(L+1mSMOt=Xj4$OlE!rtNfcz|aPPQA})jr`4Q^=zph@ZZHC4DqZgE0~#dbu63pv|047z=45-GOS#dTiRHY}HA~b;ZcS z<(K`4{{_2 zJf=kd1|WxYpiR8W6wPlpSBno_nWf6|1zWnTbWF>&Je|DzOqzlsin>AcNK)TZt5fCJW(&K(zDk#ac}+^L1Fa7*ty=79soM$P(h2p?&KN_kNPL`VqR ze55f!PX0M$Xe@ZYI-vDouFRah747!^t3ck?n<=i;$s+ik9Tapu9~@ z($5Tks`E1x6##`0O(Wvg)*r4y>Tq; zIDNnW^0=EO$HuP!w>9Slm_0E=?XF1dFQ9qpjL!!_f|lOF@e;!usS+O42W;uUzw}F7 zSGn_|;**H|>uZ-MloaeeZ-i)PPXqoJjEOvlW~wg*6#l_9r(<=9(0Khi&uiP7FG$u+7)C6h6j9Y~zJa)KdjA{S6HtavGEXiemp#wpxjlE3L zWKh_CUt9))AF`u-tE9Pk25MRhd#n$%{0#}KN4~NAsJ)ka=^H{g>e5JkK>s0Bn3hly z=hX9Qw#hU!eB6#9tIUMvSBYWIr!YFx=2ga5`<=I|eO6&JqIFcM>9qb;goJApl+0m$ zK^0;{yB^3ZW2iApon1PGsP5@e(MSkdi+ZbyH@ zOat>g^gW()Gk3%M@w=Z@TQhKxc4aEo6QxE01~s-~Mx|OgDwcI+Moph_I0P^k_iJr0 zo%C*P_qxjq>bemalbdK{TJLQYdFh^IqkpVTM>KD&zP+CgO?XUqy@nnJ%{%2V2$5z( zLqi|aKx?!as$N3R7->1EEPvcZ2LRC0e#AYUGs3(!yiO6CEJS$rX6l9{_+8034!$yt z25%AJ!u*?7@BoK%H}W(u9HZ-cY`!&W=7KfL$hdZlToI71BB8Pm5B7er6C%s1S{;K_ z@hMe~dfxEsmu5l&HyfL#BnU5PXBbdVn7>8(ZuCKNb{6E`Z8>}H3xFd@7IvWqPpg<)SKSx*GU5;zzY(f`?uw(w8M;O=8O!j*-AA9(PMNT z8#nh2XeD>l+E0J8fgD6fVw@M#Syj-bmh_R4pMUsZ@1@Mo#>361R9|Y~%15eZe@K~` zT^+4=+;en)BGC)pw;~7L%$(LHt?(N0QLuA@N9L!FT`<6zd`Ah3?EXV;y9(-da2-VM!S`A(s#`)i)a9V33w*|L>q_Ygz~(l$3$p8=VJi?tlGa0 zOio(mP@4Z#OEPmqWYJ>bGL_e224>p6M9}?RR65E}llj)=uZ8RlKG!=OTwF7Dx-nE_ zYd$6u!EDiqWCxWau2BubXG(4@K2m!U&{Sr=F(cWxLHKFO=t)@Ev6&9<8|Z{~{h2uQ zfREp2NvH<%hL>|bTh#d)p#FlJFMxx-2_K)J*aa6D724|jv|qCoDF{R&sa4tHjFRiN zBL^y}732w+A3XTIBcMY41byZ(T0-F-cBAbFO?cLeI>o|OUZZ0=ok38carYOi?c%Xb z+?y>Q+Dwhn_b>(a(3*@&uhXH0MPC-PmZ;oE=Q&a+{i*T35v*^q?54TFBY!#P zvuo3cPR6oy>{HRx+PX_V1p1Vd9BV_Tuo9dP@ml->yyRl93JA2`%X;C@C zA^+e|q;c7#5kpR}9)GiAY5vFU)sTXfRlyCbld~O1L*|OEu&OPt61%jMs^!f?1Q_n?64?zZknL&AeRdy~J=7X}#9?mv=#eHzXIaxQo8?QBM2%CXhr@VPSm zi_d{@B4e+dw?B4f^Ua;Lq6@KQ&3I@u-`KsK6EgjrFJ0cX;i1(W-X$R#-V_P!XzcMs z#P@-gmF10#Q~tu0iB@sS_qDDoMZDpyI2*c z0>3M?3iySmrp3Frg7pUs%|c6RK-=D8U}WdkAY|H4_L)?-5g+=X5lv`^-QY%i6CUhHYzK5=Jdor*7>Yr5%pLQwDO`zWU0nKW- z_V+^jWxiUBDVNMRp&v;Co=bbdi;dJ9JHfWg7o(3`p}L61l_Ia((Pd#BSUhfz@2A5% zx+N2VWp$M~quU?LTJICpxy}&I`5rsak2`gYaDY3n>Bp@*UN+y%@qBcIT39y{m-=W5 zYDoEi`9ciHy1NT&wO-tY##_$I{IpT;G{m>@NBs~6Er+$eh-4&R=;>PQ-*26c&hox+ zafJb7)-C{d`WZe2g>DGuvh4%!%{ODU<9f*A5HqZ{cgrXr!_#6OjWROy@ZVhv+0E_a zJD)f(iwmXZcq0=rst%apS9T5rX)R5Px%6o0z&pv+NZwDB&gdJf)Ji>w8pWFwZPDuoTOWt#j?y1cnYOew6=W4hqL>AHhc@x;Cf-udWdg*gU_2-vHQ zn8=xanmBm$4ZGP5S25js@O_lm<8W9_V|O$D@H6H00)U7u+R-a&9pW7d88K^IChz*{ z26Qor8mc-pUK9Untb#EuU9HutO*Nz_^&;UD;dP6L&r^fX6P_oeef4RQGPbFq)W0Xg z(c++Puh$BjHE(>E#_8?ZPPDaCYI1RUgYH(g7E~GJfvIJH1Og^7j!9n8Z1(iuV+St8}P(?l`eY(r<5i}^9mw8#Mi7biGusDu+BO1`t*^FsA=I8Xo zRS3LaHPH7Ph``H5Gs4<%gm4(2?|`VLOX@RcF=r7^d3nB%PoL&cy3d@;GeV*UFDv}J zozC|f3aJWD4*pYpq;l>0qL38Mh-GPYmD5Fr@tFppRv_$!!;Y4Q#+c=wx;U3T%w~s=?<0Ad4LZO(c<&RVwK9VhpL^}eb$X`VsfuFz)H?GD7mzWsUWZLIJFyZF?ihS(35K7C}_^488 zP8CSA)8HQ&?wwU!Dt{hBcwN7(w2)Z#8VO}HKdwD(dZY9cSv;o;K{A#W)zI54!*nXK z%8qO25Ew7`zD%LnCPZRD%-weSK9_fvIOZC6r%-Q0mDBm@A)yr-qWNe3U^n>Ev3+`zIf>}N^gvXYXAa5N9YeG9RKd@j=~4p=W_-@zaP7QEb{&8=75z{B(~wgQ1UJ{HJ0JUTmDRFnTkK&_djrHs6N3(MQ0XzpusC-I9)%rs9E=(5B0 zx)tgBeNvz+0xsf-67Tb1m9cZYyFazG{$Ioe{Ysp)H-D9FiycbH?%(G&IrF=ey11$y z`C8_NglZtZtz+L!c&7|f{L)fEEY@)W@&=W!@X#(i6j3rU2^xlVv)}OyNc8_d(D7@(6hVVJ;N-J~{X(xelE8(8d8#qK}HHrk~=R*l)NQ!46$1GWK&a>zM@DvRpA zx&Z7&90WcSCbvrz4=>K$!Wp9l*m$+W{d!5$OQvoAW7+wKlZe4_8My}~zd1fwh)w8z zncm%vz+YD_JBFin*|W7{bOoF>N5lQbH^x*sK6>97#?`#bdEG)%P=?!^P%SAp{y(#M zc~W>D`1@+VhbAu;LN61mCc9nf*mrK{XJr#dn=RM0dZd_gV(tpE!wO>L1jS)FF}{MV zRJNq~t&0|##D6T5aa6qiiU99Z#hjQ1K_?KhlGM8l+GZ%?q_657eFOvrQ{$7Vxee}C z>(M~MaWItkt5BwMWte5sN_kgL9!T)H<-6SCbDWc`T3B`@L|3|oGfGWu?L|?-IYFP$ zE1E#$UZ`UB+$K|nuB3v;n>Hz;mko{Fn|hG8kN-!8WpsQ|8|8^EBPA-r139!#odvc( zYIKe3E4F&hK-_@xJ?Zyk`4DbRjMxgw_FdS8l$fa;qoEulOUqm)sPODU?>A?#=- z%wp_Kc?I_Ox)5owB!bBG!((ZRS`O$Pw*M~FYqfifcDYW4&f}gS^qXXi%_@p^>?KLQYujD%ImFA!&n{$d~jnRKZ~_f!?<**%L^|&!p8M2 zqyh#rY~~*wHAV0CbmwGu4Noqbi)D%V9ND$kJ1>5M;KW-itHsPf#ve-haQqi9Joj|o z(@T2Z+McfKf?{Nj1vfaqeWN_v*1h^y{=6R9J!b~WESm52q)G97;2^7g=gqrpu84(a zDg9_Suzsc@Tj|z|U1W-c&x;|E`&ZIppDy$KI&nT{mu2vhRj!Xg$7_ycB03N5L}Xch zJ~04A)WGU$p)w`8nmME)*4f#4*qxAwD9KXPlWfcR=(j=mn_ki!L<2O?t6}jR_lxQ$)zC+3mcDt6uL8tX9GI!A zstR^=c3!u!u}QLT9mo3A(!F5Gi0=3Dn14wDXtsE};gAb=3~*kA%!^8-q*^QNwbDCF z6U4>2+FTe_Q`B6U%*wkMuwv~tkYTC(r3-tLG+$y_6_t{ga6Z}O!3+GU{q+;v64k7l z?W+x@@hdLoT8C1?`VW8pywNV!8!AGR+q9h5?sMuCe}NR~#jVLINL7_h7Pbd~e*5!} z-aH1hgv0AdQ z*0X5%>UwZno2=bj^F63mCe+n%sfRz)+paYm;Y@IV=4}P#6L^eXqu}Tl8cNF}RFjjF zkpJ=}>u75FK_tS~Ov6agnY$wWIlkXl!6JMB3Jw)^lX}2=Z8+h#ciAUhnw~1dR zR-t2+;LcJLg1Wg#;n)7Yaw)wGdpxIM?-M7RIz+0t+rME|-YX6M!>ghsMf{M~SWyY% z{_VPlaT=4t1Ue;GhBY4ytLDGV3m-XiI;x-a?(2-wP-2c-;Lm_8v7SdsP1QL@Y;Do>ct3r5pW*D|MiFYNrvH{gK~VGp){J-Tk7&0V-gv+ufUdXXVzj8!Jhk z8og>dT3eE|y7`RWcWbJKGfCK&k{QKi#S4SmqO`ewq zG{H+$$!Dr>X7qMw)yG!P+~oB-{cW%lPotWT=oqO)1P2I;OzeF?&*je)z<@u4OI3vy zqFSg@6it*hZ3a@&%q$DtxdHKm`A{j{WHtNCTsG+khGoW5fUI$vbf@7Uj#`b*tasWm z)2fV7c-876o1}3D6*iWB3F^j0IqB{TmM)pr(EjaoQOA8Yy65BC<47|}{c;XT8syj# z<{Wd=IxYQlU0^BYmBx| zd8Z9;@!40UE}AMpl|n>sIMU)HN|?>Q6Q~5|l)M;%;t5nRJihgi*;yYgXX_;pEds4a zXI)kc5B~b(2#3Z_WK2j+f|a6XX597p_%n5{IaIET>nPdH@r58 z-*GzmXPSpD=zIa9sBh1E(-oxiREh1DP1o&t)}`GQ^A0V4V;s%lDCfOW7h)IE*WNmn zTIP=2$V30C(j{*qRNlUNp;-zepRH*o$1P#|ajPcWrP7zS&WBjtkfOm>;~C#`G5Q}A zq#1cfJCEb|bd_M8w>hX;+kWP!#t61B#8oaFI-wRitHC*>GsAXt>RW=gb@Tg-FFASl z2YU0Q%rdJzQu0KNj3wLK+o|9%sYbJ#@!WJFPyF}4MGab@f0R2FXYs3J(&5?yY7w|6 z{^CVR>4}MK%@?Pe#`A-lWvx4I*BLI~#hKpytg!e}t;t8Yc=yJ)V`0Nw_4IX1bb-Dc zE0hVQN`M|_kN`R?R6?@8tO~wajPK8X$$6)hz7mN~Qmk{MVN&T8+N8mSMc`->i5YtU z&V1Xm)+{TXb<>o%On7?j--O#4__W3ocQ}KTzPvccNh~^`Ucsn5U?I!b%W+Hh&vKMd zDfOfVNSV@5>0rVFC@R&zuHnGj=C&?E=x^16wMneR>gWvPX-D_rsIc4IVM_+_n%E=-(s!eiICuGb2x4zN?F;q8Cxn5JwjZ6u{S_Z3Z{_;hT``tOfSBfZ+5{l{&X|*$UbpTaM?Rs;C6_uZKTR5v2$S2sqhk+HHpFcZ>eUjnK*aoX&Uf}`a`mwi$`yFW}#%zO$7JeihGZZ!)-_4=ypm%oEz zl2*HZ{(OM>S9Vv}>DEs*+A>vXpeftQc6Bg~U)6i(&=ZHnogHI#Lz}Sf8gkJQlED_e zlRdJv@szt=V}iY%Lyc&tr2?4<1}7}j09BN(-*|uXq~G+gn9iIy3ZZuh^tZ3WHNtbd zZaewPi!imhI{k%;Y3v5-Ua_TyAvnZtdz)0bTh?_7w%081Vj=4QKPauQ;839^cVQ zXsER8v#>ou)sSQng~*c>-Zv1+(`g#O$H!*~m+p;#*^lJjz%y+XMUnlvc8%`vlfPH# zu=knK9=>0r`^qFZZRxyJUAT2yH(XJ!leBx94i=Z3f}zSn^?s*`V##@lGe#l2Y#Jc> zU~Is{oh)MtI}i@jmVi55;L^q3E0$O%fd9uj!TDFEsEa;DS@3k7b^WDB zhxs+gjvVvr+wo-!HVZEMF`qlmqTmxYA-LbqvDXFDoV3*$hTfm0?ztw*Q%@+kHR2#$ zs5p0$jv@}--`_b_)NA}{g1Q0`5ExjLwj6 z)vWpY*I4%l{seVh1ii>+)$314C(xwEbZ*f;-dv03wcL#3wM_4pXkSeqY+b?nU+YX> zHf}JJp4!-Xrm4f60hOsits;qIUsp@hhPZiHsTr~7SDQX`UZ+dWee3tozwNsDMx0-R z)=#9L74sDa5VW;(1fiNchLw<}zY0)KKxM;gZ*B2^9^YIIL-w!Ba+uf}uk=88%;rD< z>YVx#5m6`3_=-nb+PLO+zQ;vD4C}4){O#5!5Nr`?D*5@0_&+J%F55&5q6n`M^4s;1 zPkoA~DXG2=JwJIiAZm{Z+RUN4zFjDFL40FvsWl-57tA-e-agcIZ?AKlXM7qmsNlWR zu)4(q{gQs&hWLM8oo95wHBOEb(mgLSYAR^N3CwFo^Dcq3XJ=6S@3MisPR=UY{SpW48- zwrHc8N=n1x0aUHq4Hf6K)R+(Pza@O8KUU4|&g}%(cInp6(+wy-ffmB7IOPRYZCvlV zej93tdZb3_(T>gw%65v+PCq-^e!4vmc2z742EF?60slTw9N{eH#6-Y-#!lUi(~=v6 zUTD?67dY!(4>ca_;26K2mDlb)1p&Xv$Xjf_H_e}1@V@n0-U|}I4f@g_c3EU`N3e^Ordhp&ivv88g$<8%Gm?{}j(U~`1 zX@aJQhw3H-Uh7}h+uLv6ZnHCzYPrbCNMfYl#EH?%Jmx{r&f5J?1kNLa22x z9WHO(e?*YK@HrcMXfB%To*lsa_nP1PLpVV&Z-C4BidsMBWzj6*%tZ(m znN)VX8G+4-Igx{d@$sLbDoCJnqWBJhf;9dt6{`GPg;GhT6V1E4w8X^C-CuHc%cC7X z_qHuof8NjL;JwcXU2Yll=OzrMe2TS7LH>a`iuiwdGqrp;u|2Ib-&qzy!#mYlE_l@) zv~s408Y8w=R}Z%lsg4<>t@Dslv0CX*4qQzK=QhIALGZ$>-74Mp(H$zPX9_ax0;#5xm-26w-y$e5Lj|XkuEW(XWa}88BF56cogm@>@ah8 zeSLkdg92LKSAELWPU&c4haN9c?AZC9pluq7f z0-!*4#1Zr5xeoH8pfu3ve{}92o>2!--UO_` z;RPK#o<20D#{t_O%XoV{tC>p`lyFd0WA_sBo#9eXbjVN$E8I<#{>>=~@f++zh-eP% zbDs?9EP{+Ks>BYyjqPi}AC}N9BLd^W?c;+*G5csK9q2UQ zG_|fr>tLGHbYyC(y>Nf!7ieue&eT^-Ca_6K84X4Jf&TZb;XykZ5Z4{Wd?P3*=m)fm zP?3rfwlQ(KLVY`~dWv{Zgg5#t`|Lv{y_oB=sHUM+wgiW_wL($WCFORgqmBSbERb!}0BTtt;W^nKlvoXJ zRHpv=uP_Hb(N6p9*m|y0PR~t7Mkb$B-a6+A!|GcPw{mG|@ z=z-VrrKd6ss(rxIlMQ-1$0+^U^WD&cWKcnHr>9hI$|G4%4&qpvJB0ro2Z__a_ z+=$oQcXK3%^VGY9t_E$z@XTAy#25wm6eX3m^e!qv4^d&`$Fqf)Xg|M4eBd8tE`VB- z<500vdUKdRBik&U3K}v2wsOFImlA5zrBsN3J^n*XCYrTmbQ?>6C0@_}Z58mMVsJ{5 z+Esh2N^ZaR@*Y>nhG7Wxy@j-`|2`q3k9e(j;e|S&cYV6+<87>vZp7ss(%ch4%}O65 z>A`q!3O6dfk=qbM0pbDQa&p!MDtrIqBi_p|*H;gT^M|YvUDiUvPo1%`yWzZyH;mTp ziK3>WbuR|rIBHXt8)?QshfJ3(GCVZ;+|0-0Sqe7=XDA>>`FUD1ZJv5b{2X!h!{xGZ z{??ziDM`iV$N}4wja)0FNJ?Sm>f-#3JeS7xv(u5oLonU{WuA*G`V!i8oHj<;XZHhd z-uqZ;)U*+;Vd1X|?-XOlk`d1MkF!}4!1(aZAri9Dk3$ecd(n+6>4`#({N z`feM1yv@o~VuX>2F#glxEmPEe*?0Q<;zu@aY$W~V!%I-(Vk8@9)p}<9759~KMMLuu z*efID171+JdhB8+HpJ77mqzjY>g($z(f4S>tJ&N zj`eD={%d&=OoirmT*@|Hz7+C|qnj#^7-oXRotE{nRo&YL%TRC%-21dH`(y-dKqB2B6l%i9G#CZX9vi3|T zL0!OWd?&)TS9hIAsbH^Ly$ItV3@s<0dbW2wFS2KsZrnE85M2D$*qDdMSZEv1ekv=c z-J%XzN95(zKuk)i`;ZRU$GE)Ev+mWPrCxWMT%ErlfnHO7&Ku-W04ZC&7bWn^Zk9R_ zjhrtOyLwL@zQ^nd;3*ynPtv}jnh!9NmW7T((9XbVhA`1=eG zqONkTt=`|+o@p&Oh>Q3)S$u52LPJf>VIaGlG*%jrpx6>Td#`EF#u?e`vwM9(h+gL7 z$7B(TOcn88)u!BJbOMYL!^dwX19zDZ7axC)ZMeDy{6kE_Gbb-^@3y}=Vf#6=?B>(c zo%E>Fi@Xz8wL;SYANG%;Hg9KA4J)1#DyWHMPpPA-CaB)0?~c=+(3 zEkBAmhk}^u>#EGFlvde1+?4og`k2IJ!2*s@Tq43m%yWUps4?5)H)uVJ6d#PSX#Xi!?1)Mt2J zd~JSjJzmLd44%oH=nf+DH78?v(;qFT>qyI7&fKfs_sC!e+RlG|O#%ky<@%|ERt>uz=6^N_yUX=+jebLDoX{?1; z_CmuZ9fEVLCLtw_N=XTg1!M0(BB1KL{WE3dwrZOZAW$|E+4q9bImk*le8PJag%wkKenNrDoB@cJGwO8yH>y^ z?na02Lr(d*1r*jy(lPmPQWr?Bdnl^8Hxf1TYJbJ*RP6qf%>QBQt;3?~qW0l4bc2GT zG@^tcAqWyOgn|MR0)lj?AR#CzF=vocRN?`oq?MGGjv*8jkdV%yQ@UZ|w|SoTeZPM` zuM0UdXE?LZUhC|=;$HVUw=G3Yx7+HbZc1!DncOLQ(O|52 z4IT_LRz&nkq-rE8yebv@CXV zdh)%$ZycVPIy}=^_-MlY(mxutPgI&6Z0^?bQBl{TTlw-xnbbKVpqsBp`0|ppZ_DLq zqrfK97zM}a&8tw^e z5L-ituZ2%wV2sVdEg+#5P(wrx@UG_9VqkLeEH~2cZc^Vmiy$82_MLIQ3!8TH?NB6m z_43au2qCD|6>1QE`1S2$>kP;YUbodwpZgVhQaf#4#e`RmQN7vhXw=#itgcIDMTiN! zNjv334p~E&pdeE76)YvoCzUmg-w2jzg{xIHT-t_3TtU~c2?UUuJbIbb@y#9{B>SoG zW@VuM1RHq`aCL}3zdp}xVl9t()W@#`g62e-r<(RZ!i?)TAZY5%i~QeD68mAMpB<{; z&Gtp3qBli@cJbRrqrY5sd0fRA(+6U^iylg_Bwg1kS{17tC44IgVU%u4SLiF9WQsuC zit;}@86K47U-?V?>i(m2wE>vN+g0nCA|&PHJ^$rd-=KedWKSl!6^iatdoA|wB3z)4 za(F>_mb??_(Jm&6rf#xajpjD=qg#5GyzK$w-?gDB98<8BMSBuyCVx?s=vZMRHXBe* z_^`kP0qt*Ki!@Lm*vJcFBd(RYS3T%*0_T^0 z8d`Ofh3MM@auDpya=J6{n~wSmn(;Fjn`Zs_MXb`e!c|*1GcT&@1MwrzP38=;KV2 zAG&|#aHOL*{7DJ~Ca(WY(o?Q-FN27F`8Crgm0~m)f+rb0x6>tjxJ--!;#c39ZX4-I zvh?{R##3jT``5;p(T?9+W0irQtX_yBi+U6L(QiV4n&ZoI!sO(F<)AEg@h!p6j|k_w zUz*o2`B#&}Wn?^L**hdqe-oBUMqQ->hAZT$WQxR_B7&>jSOfIHS2c zF(odc5LBJ5xnB@6#2{(fI;h}Mgt*F9KV^qNk6eVUtrw0e7GC+%>-OpdQc^>%3tGQ! zh^eZmbbc(k(LLsf);Q`==sehFOUsy3M!t&KSch*YId5$yCR-2->Hl~@NjDrRl*N&H zdL64w*H10*T0baj6`dEG`stGhhrA~ph$D@7Pv)PCW`6hhv7>s2;CZ_{xtErOzJz^lJEA#vPe(}a zG93H(k;p*9b9;$rLt#8rz|2&&u;3ajf+-~=T=F>9c!-#`Cvuhn9{w_@r=zHIsWABi&_2R2Z>+MAW+!v zE;u4BleVAz|Npl!gpr=_Q*Nl3@4If9yDcOG*0sR-H)A<^nRE`1Pk~c$YD#Z$k51jg zzsXI6{mp5O^`~A}K|tpe`2&KjKON+D5@2A$#try=5yOA?!|#~OQN+B_`Yt(oC)~4M z*pE)|Oq8W@y-)cj{s5b_M)Gmv>{HapPdmhw?Z_&23sf%ui_a{Z$A7&pUBbiy0dY2b zesW~f;CUpHcH1J%w>00?WdKkk73csb8q)$WIpAO7%zwocpN0M{kcc)Dy8`RwN`cW^ zAMY-|-njzw_|oNO9W>R?OgoB&dpDME-viTbrY%XoVC4adQspEpxM^*FSN+v(O!Z)=`=3^f*V z-MYL5_Z6^rB08&ljn2XVMhIE`9WMFj@XI9pnkTW<)`LnB77=+rorOVhTWyQo+K$Ft zISKBO^@c=5hPmGgQt0v|nEPne6L%K7<96M&QQOF8gtiJ2HV=8IJ2DkF7sn#h-2^a8 zp&vfbudJ+G-g5D93k1hJQ7~a`?5pJ^z;AMSPqUs#rY!ZLEsrEIDd`oYc@(v2sa2Zu?7Ct_1wjGUKYUs<>k!;S*yc4W=`Rw(7iE@% zFCmXiOH+AFu2V8{JqGLcW61UIutdno%()71kvSI*3i6&G?^q?FVz))@XusUxkdW(9 z_hivng9_ed)<#FVlf%IXC2U;4t})q7Rz4mcrRD0BloZz&FO===1^eJ(vFXzpDJ@4b z!4#XXqMWr97zJq>Lr-!50duS0}y8ZGO#igiJ zT`9v%u_lOgRnzW||O{_$g0w5dgu z9`?qo{2RqV*cyeXBFuRQ2Z#4HsO@M=2O_8*O905AWwXLue~<~!z_q9Y zZC*yfU!a<&zuEYaNN#Iu>)~oQf%9S(ojNzReo=DUthI3iwi>GS+U->8NKv`jZhbBhuI&zHyb7o*e3oDe3F)@6S51jVR?UvV*3Es~hUG z!svqziV*ekY~3!;e}#18q@?{`-t^7$xDf_pb7`%te>V(vr8HV%NlCL2!HiI7m(z{G z);B2NM$wNeAiRY|Z%#Us$%ORxSlPDc~@a!>KHL|3M40sd1 zdN&S);zMVZMW$9d9@ZB)k8BDx3K9_d!$L+|bzT>X9lIO2Z=K6lzp#T}RLQERWmj|~ zK8+xYVJ%(rDEBkUtS6e}6c$R?1cDXo5BAkAwzK!0q9Cxpl%< zS&F#N30pOLGuHVXNR7G5Fd+9YM6AgZlp@yuZg<2<@8H$LO+r{(-+I{SAO)TLZ*I>HQuivb4}v%!>F}c{h2wzbYf_c)@LV z$5+#dixG@z?9xt=fRQEyahk}!DJy&9@UbxTD&Y}?Zhw6VVj_y;z`_=GHZ9NyZ+$R! zMycBlU89~i3ZVsbCZiBJBjm_;T*PgM z^ctVuuVe94oaOJyl!Ut`0RGhW2`2G;>J47sz%(JAumQJEZ__&Jk zJfs6;NiofKCMIl!oQf@Cm=H;g?rK=dthc6y*Izu z6^iwyQt24SS$g5Gmm={v+EFlA*ROUw7_(;wCB13gm{Hj@PzM!r&7v;8cX6g6>n5dC zS~fEz0Lh>ktn%-t6rfkI2+hrDW?flI?X4%{k1-iF|ACdG_($;cHPcb6dC%W}= zU9aYatGu7tc-m%k$kv<#pJ3UP9HTg&my1(tO9d7E z*nV$3Z1eeaPI28U?Hqc2UunQF^SE43PcPu%*~#D#+?-4-wyR5f(a*-_QeA!h(X$Ay z8N;;14@k==ll>^poog*(al^ny7DAP)ZUV@%ou8i{69E`6FWMY+FBVjmX{2949{nmJ&0TK-hECESY?+--a>obr0AK;68esnLdKaz; zDX_-SCZArz2K~=36?=R89Ie!M&NAN^PK}EheN$86XH>vq`LO1)l!^ftZSL*WdvTA4 z`Km6fjRi?4ZVvtjPccC)q^LOAUYM{n8|vjzCBa|39Tmy2?=zp3c-tk%4f-x4Gayz z27hf(hv{}-j}L>OGEi3QXmBlckJ^;Q=Nn)oXDflWxS7e-C-6 zY?Y$7tc0RBt*(L}TKIg3`y_W#w^YAfcxrU-dWUd%>ggY8{SKjL?{7F6{QAhYbVF`i za}|EjD~xV!YZJEcGm7_Er!4a{??3LJpH!a+O!Bh?j3m929JzQhWhOFSajA*Ae?lvrozv6H)Nd&L~=6mXgUd&NCCt@6wt-!sigG-MWcEh`5J72;+k=y zcYrQq_d6xKc>nL`pPpJNv!XC0zoiM z#s}3RH>HV*iKw_ZN@%kH&wi`ptdurl6aW3T1F+l4l;h9dpUzH8g8(`qFg2AMJTE1l zdk&D(4FeitnSc(7Ret(|Lje&v5_Ca`#x%0ph6k!(yIO&{V$~y?2I)R}MD6J4Xz=i1 zb5j!nV2p5n`40=;mwfo$uERtID>G$ffolVV34{g^O9)+ADFZdu>kFJtnpVW~iDK7j zl}v-#Z%1O#1q$h)h0agUUJ`{M)Wo$Ho9|v|y=`HMJ_*2}EyQ?vb_JehnZAt1yG>F* zfvkve>GvlYpPQ?&nG^}(eK=pkgrmi%`1m((nFXW;6><+F?slren-7kum#Ks+X0RBm zldI9h(2Eb9esJ?rRTSk(0#$hP@vXyN0T>|UN+kG0N`Nk{fpF~jy|uM@Y>b^4e~W!R zS&sJ>AE`}{t}1@acduC-GC}|%8u~rB{HqwQ#`My@#f|S&=^@9y*XSsH>d7t>gR+8p z(5zXKyu#Q}IMosvgxZ#9*T2*|)={Q+!gORL3rZk^($bdw#+m{{quj+FIaW!PTW-)S zf#MU1g*A~c6|cWyq;``ULzN_=Ms?yD?rcgK0kJYabTTAGOWa{HB-0Uwq+eIiK!z;0 zsey(pE!ih`2n!1XirQblycd(b;w|cZ-kQ)m{e&$)$7{@Y3l&E9M}*4U-V)&F-;BUo zUVM$hXLv5=*=}^eeaZ88$w33_IKza5^>+Txc5igX%vpl0 z^V(QrxxU?}W9*qvCp%m|2M;Z>D`mzaZqeUDn$!<8(&;6b5OfpJ@u`o_j@7F8a0Pal86ZZ8u+tpH!CoeoE}H%n1?N}lwGqi%RJI+=Z4%ZCD( zs}M*M-vlMt6hLxAH9DWLf7)rXFI}4QmMkp(mc;;nbeqH*^G7EP4NAn`@I{($%veQO z)_Py~?PC2TSQ42Us;{ygsKIVJeBbgLwz;!2E32?j1?4@&q3%Y3akm$!A@0gpO0FkQ zSld1c;Il)u#yU!9pz2G-%Z#Y z8o`6%)-2(0{~KJ8tHa4ztyd@C6!RtF3+99^<`7bdB)hYDSs!!50iQ?`pPbCerQnSQ zQ`_R(?gXY;C`Ildj?rdVeXanYq;WSn>kt&Pk zEHiT~O7C2#P`rd~>l7d?ZUP5A`9@;>gM;lsgpN2-Res69&T)>X;;NICrs@YvBORTN zQ}!cQXlY|U#<35;!DFzdaQvf3nS$E_NEt>(O&!Lfnxuz=g2FOg1Z+(*#4b#0R<#}a zXEhbSmBfrY*=sUd-iGyy%E`ktJ6y9rQ*;d$Ae5ZjUkD#@J-wH#;)ik$}p?I8$Om?u#0!YxLxOS#P(G zhUPGzZgEVsQp|3+S+ivyXcsE?{B+2~5!Ob^LZh}1urV+UgCO>i2ci)Wr^nzvz1yK# zq~BZ30F<+US&kkMV_H3Z`ZUHWr-nFovSCHij4y8>Y{(ZhBSpKKD>E_riPHOfGBK$z z;UdJu!t%LX2ZXG^6@NVV2YVYON|x1n1?oE{h0NqV)NE8pMn^04@|Dh?i)*a)a{2CH z#@^o4HGwa_5fewvgVN5Ll)B;B{8JpGy}ZbX|}-bI=-cq#Ch(VZ6&- zm2M>)yx>iz&)k1k2{4s}2$zHP2?SIQmzU#Srl(q8U^&Oq*xbdXs-|5OSbdReLM%tw zoHL9i*46eHk#-ZwI=FVNH?vLuMzNH-p684E=7v|ocHBP9==^S1!z%8ziEY1ohk(km z>*%53QD$bQom*p~jvvN;%)6F6-7J2PC4EjYwdL0&m*i`spOBRr_kM&%u2pqbH;e@{ z&%}obRfcSauZ5b4s$1NrM+ph`$dR)V8PSTUtV^^PWs2;R!{!%J#0r+tx;ORMSp`?M z6)cey`+)?i3q2NVD8!U`+22zR`?Gs?*rOad$_31yL%?a9M(<2SzZ~NkXPid;ntxfa z6Y>`$3V7gpE1XRMgf88#8&0A3aA66-;o*sS`L9KEKUPK4jZ?oU_zS#BeUH3n^6c9i6SYRIoDK$Smfe>ir8!N> z1axZi6Cx|icM-)LMf#qDJ9;CEU1E}zO4x`>`9Myx$F%#BCL?wRL>uTwylnY!Jj&R( z(QZwx+)c^%upx;Q=3$o1R%9B(xDjPaf4EuL2JPheFHApy8sj8cB{qUK{#j0R@M#eJ z=1;J(soJDWlOH3bWl<1?g?eS3SCCK*&SRT0=kBcnHxql_aBgV9bS~u?(woecP&kJn zx_HQbsaTK8K4^>3U!|nhdScO1-N&k{z{?CpmffOMCicM=xxMp76PBurvTUQU`FM@T zJJ{(flvhKHy4PM5u(`3ZDo{guNP$)AGpNH`mOcHTwf8^?KZ+dU?0DE-n zS9WSMuo+P-I6zl^3b6Sk>z37<*+{=-8GrLki!PF8vY((|YY}YerHNvx%f&Oxlnx>0 z)tX?L!EW9N4ci=C{(nhehevuDxN(M-p`+Tx|G&w{1#FlsTSp}t&E$B9Uo zUhF|uWNO3F!oarGOIMgbei!_l=o;+horymt7yo#)vnXi>o9o*i*^-c4DEfIfq2k#C zC3F)Z zuVzloHb*3~w-mY9`w95Pb)o354FxHtV(LQ*cd56!Q<14c3UC;b(x4qnl(g#--&U>M zT7j`2Igb{N=w#?ishXP-1F68TTxM3LidDBqn;8cQ#pbCUuNUjO>#A1oB*SC2Ke62U z%oi@$?>g&Ez$4%9j#yla`y}0Z;v&evz_2u2!UqWkcdJ)dd;3o+05J9Mc%Lg6alc85 zsWRWnd-&$fBcAN@ffgfAA7CCFifFX0Cp^zMDZ9?KxoDA>5;!v0Ko6s`u9`8;F~Dw% zo?Wj5VkG7+?R?m?Bu-yCwuKY5F_QnvQtifQl***xM9QJK;87>Yu!ooxXC3Hc;h73@Z{+T;4 zjZ3X%RA`)}1yO)?#ZAap%v=AY`lONcZ~fGdZJpG!jdhsoWKi)uMrM~SSX8(!G!oud zS5dj-$z2!zBAS0Iv!@cb>V`_GZLBMV95gVK=XwBu#AfF95XDJ~!mB@m=X8beLCd;k zvt`m>hw~U|fDeEGnWctxz?=R?^ExoQYvsPj|WUv5i^AK(^= z3tl@mqkzhspGw{&p~;9iGoC)BgT%+U$b-iK$+YmU8@Y(>0MMEDH#|M<_XsEaTL%bs zg)iG)Wsd{14Nz8OmsCmL&*lp&$u-wLg( zW}?cW6L;W80Y0(y^>t`?%#>!MzR*X^lai9MsN#>L-Cq-+ zdhPuw-dQq9R#(}u>!TXjcB4OjZ0!cnvUhCFKV3|SyF!Q$ax-3s#{PzKQ^Cs`t36UA z7C;`AGwzdK0)z5-td7&?eP%Lc1qP0s93)P3uYxIS7UXR$BT!u7uW8@jq1R_zh?TK4AA>(?a*!1 zGkgRs1-b62U(b^$W_B2Ll`P8Agg6_N(9f=P`cX3FZz6(d5CS=U!5_@f1V+vDojIsK z6#k_Xirot!0l|>dv(^umm=yl^aJPZ!)_=#mw_F5{BrRXvxwt1zd`(UZA8J~HMj`6% ztcD;vclxzdDde>0#X;R9$pIf-rp^BaQ6ODzMFbBYAL+%57wHx4IzC>bpfsRK`)?!> z7ZH}n?<`_j{)vhT03@qW&m;2r=InIdnEx5iciY>Y5sf@Dv%WriE98Z2d2g?oR*2(| z;XP6a064qTm^1<-|BKMvemZmbqVrdu-5t)lGQXpj(o-JCn$J)G?Uvzl{rdHo*LG@Z zYJsFtr{%8-2jgx~Bd}4Wt8Sg97yq5NpS^pUF?n!V>I$y|m3f1oY#->*04X_%jup#R2phMcAJ2pbzQcC+}I!_SzELM{m6|=`q;Zb3($Sdx(*PET^=(()#_;opbGLm;UVbf_d8_fTG`1xyr*>&| z$=a1_KK~O9X!>&*^ofw2U0!|*+GcE~N6!KX`vqyI3*0I<;9D4p6DhX^Erp#ctd&8qlra<=jsSRr|~?L_Nxf)eXNZ+FBTUql&w*Kw{OAPSh(~JWs4tDE^kObS9fL zBgajiJ{FA+Kibb}Cak9}LYGj0%c9HcX#An7zL4y{Z_(WbkN{w4>)4tDKM0B)~#s3;DPFR^MO!5yy_QPel& z@hy0mH{|vPM*cN>{fi^L7dVfA8z!Hm|; z`o)I!yK#8C(h2ELFkM(Jdi%M6Hoi>Kd~;{OxQ;k@NkM)~0ZLOS8lUo5W@oBqGVyXw zGdXlxsX<>TyIh-c`uz zaS!$aaa2-`c;zzks0~amtA6IRp;7p2BoS?7F53{#_F=09XVOZD#ymM$-oe^f!jSQ9 zgwXqy?kwbvgiHnt{9N1f&~H`r@j}OR{Sq5)@Vm9yp=yl5VAz7r{riTF9iZR>GOPD7 zWN9nH5ZYa*-9Vkfo3Jp4%}cu=wb?e`5f?iuYT59fQSlJeHZkSxaP-Wux5Z;5htHOt zRNwv_vG>p`6yt^((hP`2m9<-oDXR3UYGtp9XdCX6(6h4zWG2n^i!Sz3#4? zYSoHBnwi6(yZz*a_jJeX6Sw3Yoh)xn4toynsCRa(tOcT^5{SB;*XU94ox~F#4`QD( z|8B>Zt;%aTKUg=gKUOsM-kpVy6~%47dBgVQ64#ep{^oc6>3Lo=WVwPx=1#(sVq1%r zd067Y_E8*++Y#tJ5!+ks=6q^2KmVee1Okpufb-p&%x}0%OG(%5iIAc0@Z{D!Q4s?|2(iEp2sd|z52M3BMpnjv<)l648IzLOI zM-Ngjt%lfY?KNmF+1gR&1nJ7i$UJ^N*{QuZ`WWZ|wXe%M7tAroLLZ_{iJ)CaFC`1o}7_h#46HDw$udM!r~`A55=Fp-^uc z12@&ta>b%_HWahDAWRy7v$@TELq8h%R1Qm3}E(m@Ym8K$1eoluG=qJ*bj<-*lI9zLKG@N{xr3% z{e|PM)PkcjWeHoYs(vRftmRLL-m|=gc9m+Tna`EoUg2+4B9}MdvMtTs6Re*iF>x$) z_rNl52nOr;`=n@2R0G?)=}pvDPvT$Z<;5(_&&MjEO1A5wfWwd`A}IJ~ zYk4BcrK770R`c|%cz{9SkEeSx)laQmfS9--p_=2G*1Ife$CO#B(9;sgnA=K|?wl$w zq2+ostqlX9kkCcbe%M znZ75jm2QW41OoA- zrd?F-0m!9{>7)|R?;X4G_W%CHkiWS9T-;CFyt4k@bl;e1eLJ1f;;WR==In;dx$^V^ z8n&}%FU>MEwf*>!uAi+9TAa)>cDTjrnlGJGN|tf?I4@$_8Y(X)CN?}WV%^5r?$HQ> zf9!im9x&RQvSo{@EOU$b*JN7L`0m4B&8p8D6xH`k68lJ>$~k8{*X7E$^sCt` zFGU{%<#wb^NmThd8E5@+vhI;*@i&89=bkiWXn5+`-_4_inIG>#tCeE7q*MhIenwg9 zqVZ#@Nk2H5KBG_OS0@LO|8MJL4>;XA%WC4%I_w#p@EFmM?Lu zeD?5`qikQd{kb7_x$0-Yx)ix~?I`v2Ym(EYdy(o8IIKV2>GPi3SMySB2)Xp|9xjhn zc8H3Y!9OowxzhCeH+^AYVTMy=gDYwH`sFKI&g0Wwwwc{G6z_WoW#O?Y&1(V}9RZ|1sn>@uwan{Ff0Y7RBeT`O)O&t zbBtciQ2Eo>r)Oe9L-`{&%!cXWNH78oKPu~@9!-l0mbykuRn?8*8l|{?(T~^1)=2I~ zlOgij*RMT&9kg52)co?}UFkl&KKDTr5#w3^nIErfnOwiScr5*in!t;4K6!Ik(Dj-1 z690cjQ8e-1zT0$PTfTq=*MZ2S&w(PeUwqQQ>ZJEj@53^ZC5%fEkrUi~H5OK$Qb=#l zR{ogB@#Q&P^Sf4cHBalof}QX0FRoMIznU)oqBP=dUJfli<80ZZ+Ihol>Cd&uqsCX;}DhDPBHdHlXBIpt-`rCOufRmvWt0jDDY^#w!}p2sf#N# z0XV^(rkjJ`3o$lzJpO%Ppraq!U6b+d&G9>BFmVvt(7N0kwywHZ<6bk|DEYtQ6u^iM zYhEi^^lO+Kqjst92+;|zKJ&#`vH#w#=C#}hdV1-e!^y(msmH1iYIy_QU}!k=v5TBh zPQ|{1U)|y*TFh+^=fWcLK$us=TTV&BBdA<4J0weEQC$1`mnW{HH&ZQH?hk@;)mG(=pVqx zm0DgcA|K}QS<83c+FpHVMK###D}G zruOoL>wf<_W!4-9q=J-QzV~fIbGt0WtgC))AzC-@`Cb>=ojmJZy1sC<{>+7;KljOCYFEQ+Td z&diqGO3hm7hE$NQZR$?0SRx3IFeCr*PpjhA{_(ft!V9a*J_qX`;x7!ahpx7Pi%+kv z=J&Un(;668v4rSOSIElAZ7&8nWcDJyU4d1tqfect6s;#qt2{S)gcd0ucRjt4AbQ|YUl9qetV@=_9;1(g2hn=?k5 zf_wV=4FXeS?0eGGf_1`MLgnB17zy2@{SzG%^r%t!e=>N}0)`DR^ zqyOCA4A3;`6fe;8GipjKp0CL=Cz&y;Aeo0s#d7Jo7I1Te*w_~ft+a8!ExyZDZICSt z6dydU83hud3%GiE13_w@9g`3gG$BWB{X^eW9=y|_3!TCaq)Nq)v3|q-+5cY6p5@dp zPmlWGW+Y_{Pneas@NvEtplY`I&#yNbx#>mDTtSdR634_$58LjX>_Cu3l%!D5Su$%T zDXO>sj3A&^LJt;-Lg-*x z)=NS>bS=B7^pv2Y*$z9JdMeSgtpevF~cWq0TGPq6}c zEJnx#uNlF~M`T{d68DS?2(mj}QACNo{D(+4$#qhwRQM|dHLbSJ!r!AVTsE(I%gX2% zG*O29-W*I@;tR-7sR_-3LloxV%OE9ei?X1I$lMq$Ep3V8km$nTE@;=f7OtoEYT|U! ze78CzjDE>$Hx_X4q`9$${L>3j&FLqKy34Zn%3*5|*}5p9!nCNRk;ouc)Z*u>xr42P zDeyIQ_AimFFX4||^8CycT%uE7U0*hDt~h*I#65lX_Je+wxJ?kxBs_9)Ol>gLW$+J9 z-OWv+++05Tq&ia4Zc;WueA5-N_*+SaZaEA0$q^=%Z{X^9bEf&`;>?KX@T)0a?BpNZ z3BmMjHSwEtb?WT+#O(>rVaGncdMWl(JsNkGSNY0Q1A{4ji)m5}$0#x=rv66AM96gU z*bJZ=O?xXbNWT5JVj-L+jXP4u5=p|g$b&q(zvi;Zg!?m+DmiQRkp$96(XfW3H{ZKG z0!;<4bH6D_aEnFNby9Bov%OqeE&7%~Dui!iaei=A(7i5GeJYqv8UX>Qv5!Da*GQ3a z4%XJjl}--~#G5?G*p;lSN!;N3h{eiNKR8a^w-C)Go=8gbA8ZhPM0TF0u|ti-XZv_q zvWMP`k05ufW6iDn8FD1X*(zTd;d$^j-}pn0-rTCI5zv6%9swYQ>~d5oK;aCJg|vG?*^v z7?3?kK!+=%EO%<-j+8$6SJ6ND=;gXUE!{w@Al>NrDnB=~{9@gY%7G>iwHk*1=Q#Ve z@&jaOF5b*z?cn?UsRfyZ#o3xbQt5@o9ef;+bS<`A_!9}~5!2-?Gpd9PY-kpkkcP#!%ztHR~I)RTh;_wXE9 z+m5r}qhwrX?)s;H7FkVSK!q`lvcxo8pxo6nk;aWv(II72j;O;FZGv_65BH9@WqOKe z2b=*o>C5&iT^e&GgHa-q-y0quc+O;Eba30KR$0Tp0k^IB2<)1H?CFeosN47c9>fj8 zo!<%0wXvikMxcvrwn=$2x>-eGATRb8j!}PIbH!_U^v(m~XI2>#b()(0#S$d-V|FJk+V`yY;B>HE_|aH(M!cOMhR0mi@A@VFxy zrz#pJj8yJXU#|W=EcUk&bR%9%A5g+vZT6r|1^{>iR5Bta-5|q8R)t{n9~;-++51S zp(eMHIQIG)db>EmpJ2H<7;J_|ztB$l%qv!SF25F@pO2qRCuPXaCWQ)P;>tSO1{uAl zj^8eGTXSB@wOqk-J2^Z15NSM<<&o|!GZEKIc2s3ooT%Xk(3`4S&;Q+_MX+T>_*=q5)68>vsXQh)mzQwr5L z!l8xPs|}*-`tuBXkU0}1uWd?M&dJ#g`cQs@!k3@dq;OK*U2Cel^Ktj`z+vz$O(Z<- zwLJYOW zS$AG_XIb{Jm*TS{`)_KRA1*hH-X*k+6upIGH~i@j6h#}wrdk$xM82=bPuR=1UA$-7 zz-sy{J}lZuyD!wNs0v>(+29y;|om;@IVsc$^jWi%1gl%+^k zLe+BSh}#lVOyi?CYw7C#7h+L(?aR%|!C?9uOR7kLR(K#Pe?umbnz5D&iXZWkdiZxt z@cH36zav9K!}N^Ov(kfuIeB@1hSgyp7S<3<>q%yRN{yoItESW8E-eq$6+c6LT^-2h zt?$85IzeY!FxgQk$UFBf;g(Y7z9na01A%|51NbrQo-@+0dd!@}n?9&quuZ{K@=n(!Rn z9P8SvMzL4bosUviP5efmwMol4z1kS6W4(6I!hfQtO868`r+$%yg z>CT#(ng;n6s}H|#KD&zfM>W9VaCWF5!jcqsEajBMk5NmUTI}t{KuRCQaW`6vyq|xZ zu?s+eIlFfo_CIHsID~0PEZhuTf)lD(6Iy$N<4|#!M zVlz8_E@S+|8{%t)Z>i2yw71bNh`juK>u1m2LRbqVQ9M ze*G2H+T&+q(gBvXdu2i>WhT?KY|BFhi33Y+B!>Rd$q4?>3}d$};UDTrSQK|n*ZE_6 z(U2_suj!xu4oGME`PiA|FC#M+sJFJQ96TaS`lOxKwiDFZ+GW|~S{IO9`eTMO_QpKE zg5rNaA3kS3~Bdn(UJuSrDX!wkQ+hkQ9Wp2{ldoNZ{Bw&{;e0?yoMU)10Q+dLN(a_3ZQd1dGIL0Ivig8px|$r%AXT zKW?0u-~^dd@5rbC5UMDSy}-v;4)3p8Txf7Ox4pgXdimxB_1A$>ad2GdbpAtYaOS=R zrnNo$E+J&_x1ol|p5s@`R1eKHqhcj-L)x&AV{*l5A9g=67O4>|(|?&RJ^Ljlf7`bT zY?oAxdA4_U5YW-l(J<&OV+i+7$lx1433o|}%bw2Rg2jG;v=DBSPl%exfL&pvN z?qT)@O*>Cf>Gb6nX>;+W;T+Z~7XF5Vy6m7I2*#?vYS7`CEk1!jC|WfslE63bk?dK2 z`q$m!Wouya<>T21%e8(xPYb~AC@0NQcm6>jn_9RDw=a0wW(7Q$8{rg;1 z!zWiVL@l0g-tA3#ht1K{(o(Aa$|jk0-%7*^5h`8b`n>PF=F|Hsp}b|u{Z~+A00j-)LmFwn{fp6YCwDhCk7jxl zJ!(FB6_H8?qffdb=XKB;yM&y6W*R!q zMqA~%^8=95Z8qy7hv(xi`sV`=luIVj1EQy*vifeU141X68ce4VnlC#^iRIj=Mg^ak z0*_ZkqJJF7hvvWO6A}t^I+0~``A@)YNzn7M@OVetGK}-@efiO** zk@0jr%18dQ)t>Lhb!c;$m8ecMV7kp`zmNC^unmHuqH0b~BE%m8Ukji`nu0PC4K< z5XjH{&fb@OX~BfTWb1{p~~twK=VSLE*+x z_58ER6DD@~gSVrw5N`DJ4tJ&#vU@Vwi@kdlN}^vUS`^INqu9i*XAaXVB4<>fhr`Kn3nY*n6r?U$~4y!1;I z&QcUxxw^-H)nOq;+Eb!db1v|5K3b!i$f{ZY|> z`8)=5X5OaG1p4fEBlzUyY(r;|b5~cF(_JMzYdWZP$jHbz-1)<{x@ZQuf`Z)olp#=K z^CQj`FUPhT=R-`&x4b~rXHukYGGmr`6l>;lc&mMo_y3jkAK+B~?;kjR>`i23rN~~% z%9e~G30c{MA}c$Gmx{=&WRGK1X7(n>$R0-_na3vEIo5HE-_!f^{r|7)cm2BJdO7EK zdA^?Wz908}KOO^t;P;l5>G9&D_|o?deTfnYOs=!TWC8*Lvy(FJGa{GYp&l9=cjp)0 z5`aQMg)xt89<^(61{;$y!R);I*ubm0`VkFu-Rs!clKjG=x2#XgKBQz`nsZ`#oEA4)+yUVzq>Ppu&Ibss?$@_-*ZRIKWFR}l2hz~9d74t{ni?Bom|E5 z3O29lIp#2UeAn=a-ugJl?bg-F;m1e=m?Z=dmQ~8QU0KHA^@UmNI7jeR_w+kI3r}H( zbhaVBws&cD$&n{@;>xztd_eH+>eZ_!EZH7Ap;yQ)cWd3(H`a&q;_}_Hfr0N%8>|eH zoj-zk4Wpw|j(ERmLWy9wsN4oYP}Ta1=dSi|K|tiGqXPj=7TT!x`TtwxQc6f3#knLDmb3jRc{n`ocqf3DSCLmuPx`cD-P zxQ4_AW3L?S>G0uBg~WRx`!_5i9f}>^k%%)pO$P0F=Rv{9G14U)Q3{W=jyNP^k4=b4;e_kX?-buU^c z6kIw7MZf2UYeGa3!AC3g&tSg_UymdUv^hzItWKFb)+&@Gl{}To@$l_`r zIMQP-F4wkISc5{)V3u9U6XV=*I&kQJ6)dKl(L_ntxoGnTyYVYeCfK$7@Gq@?tv#4< z{qq5UP3i3Hh1(NFcR^;9d9OJ8Xa|$z*mvV&)={V<0U%Duh1JF!`~Xa;ogYU1sAP*q zMV7D~6*Dxhb@^TBBifSVHl>4|oe;1fPfku|=jO7#pFP^}8cZcJ*hccHG#!>R$z8_P z-^}l$+YVZU+Gfr-UK~uMPhIx|5${F8t1OI+Sv3u8)uW@j2chARu!8RvHwHsBur;F# zNgrK;Yii3E>hyguSP9L&A694h`1MuSr~Z#kXBJ%-$Z2UELsdYe0iO1Z0V7;~{KGG0 zbo)nNlSGYlMTzS?(Ml4#?Cvm^xP@kTs=&poX!MmyZgPbG(TbeMa5$7Hd7qpqRBv%c zp2#gVa6S6I+OyvYKK*+Ml?1TTyzkI_o(dW7wST?xxxu7F7KR@(>m%vXE2E5ehAZ#7 zw^na45?XYyd*fzXiAZ7AmJjUy3VTMc%|~WfyWcHxNh-&#yTZ>eW~kCF!=1sQGdMZp z@HTIncmtXmHgB@I!VdBpb53<17r6BCjg5XTh;orsC;uSe z_lH;K38dLoR&;R{J{!2$?_(|-JTlsEL#mFdV;%vV_v6~BiudY=4U9Wdu-d`NiAVYR zoqt-?Li%riwUdqP`pN%}zqqKbseu_9Mjb`J*mFZOyA9HI*KS7C9QYpD7?ERJ3okk1 zD!#^?eWC{4N=nNS@fso`vpX_W8VQc(Bs9-Kux}0;$&@bQVEJ?iwK|8d7>4K?-OzG1 z0g#XM^$iu`8(&QsS;+BD!SfUeIqOcx7h-VdCw$C6`_CYCh431zF7_4c(p}9qpOHT8 zAV3!jmh#S9{Sylq^Kj{bbuggDJGdm2@7DSM2b7>kg_+I;A#NaxKv0~eltJ~9df(ho z_T7r3P-3uEU6&N5ilwD3^ToVzFgF3oK=*uChpvD1ipks@E7iYh?xizTmob&UBHvKo zR_Mx}oMb$=-KNGkHZm8i$!B0-@FDTz+xZH4MrI~i=V=(emK6r5)y1DWEZO{e1MR4o znL%-0H{V9uMp| zM-XlmD}5B5p!t!5D^CL6i5Ad!2~YoZ3Y}j0Dgi%BuzZ6IesTOyQ?0JW?_Y4@1rCRs zowZ5%cJS>uZZvXx>^7y93%SF@7+HTAqOZL2P~td%&L--k_68vqAS;m(%vc!>+AocV0Uq$K6s!e<#!`k zmFs6v-WlQ^$W`5&c8~G*_ut`pQSUVvYVAD*@@Zn)64(k3t>Y0?^3VA&P#*6f3ENIP zd2UOO_$eNFaVqBNae+*g9-M&bu9->TkH=CklSTbY z4JY(#u;?yc1o{e)29=8FG>W9>gDi^#Dw-`!|L$uY$cn7R7}z39<++}DUx*<~q}#|W zt82A@$V`}AjVMJ+v`pv(LJaf4QGqJndQLT}!TJR-o!uVy~Kdk1uU-s`A0;J*+nKJOyGVE34j zG>)n3aNG&e<5+t3fgnU$p}B+f9I_dRb>D5zczh&sP7H<$WQoF1iSi z#_d~e*51fJl&i-e|I`$Atxr^FjS)utqIrOvu6)weJU7RHch?#j19CBTxI!=7ewf7= zw7*u}HFRlhd%M(^Q>}zD_n*!~)1WyqiuUih5@o2c-*Sn^ZI(Zq|6M?z0XUo&o%B)I zsLJk%*T-)!2Xuo@o_`-Bdhdk@IZfI+H3?%6_2w6R?~Y$ar+ser4!vF_F^BCe&*qIG-@)fMZ+1AUO@>{#e-W23F@!gi_~4Bgq2c%cb9B1 zC16n_m`!Njcm0Nm3-nE;KF4JW=I5)6!(wIryh!^vUS%7;F(R&YrSbZ~m6uQfRYhUn z5bNfg^EeyMC``Fi8_~c?rhIx&CUE}=X`c$96dCcH)2mCT3RCV=X{GZsphrFz zrG+2s$JccI4X%a>kt5c~+nkJyn1qCcZS7rSgfyzNo8yjI2EkYW7*A(qP=?qfj6lko zJdG>EMLpUxLoetfu%F*TDx#iZfpsRljNG1Lu!YCx-PYSl^QS9?2;Q$>R{>{g&T+uK zb*`FDVm%l+`arz1b%G<&_~38QH4b;zzwaj4sEBm~>$hePRZw?x} zp9o0H%D#1VAzNfwB>K?WG02RWkT;!}$l;cy(@4B!YIY?UTMy>{Vec{uQ9AaV07$)D zsyx;@d$mT_MI^4MKx!O$kn_n|-Qp;0+n%~s=v(tv-v50gPftz0xok9!k#@iJ7E!|G zu?NFNoGEGU?ew&UH9dS#ZLni#IXK|5Hf(XaVck9z-?E?G5~5r<=S3HibX31yJ02ou zPwVzBLwyV?d4W53bo9IC|1byvlSW+)p~;pU6Fy$dB)*j6wGbHxvwjIg-V!_xljMGRiqnj z#_QkOB5+r>N<4e}o5*rCCLGOMs$`2xMy~vsa4C`jGjY_|h>;W!GQ!LM-Kkea(>%C;{|@lR69#z=e<)CqnIz0@sbqZO9@Mb4w-1M1 zd1ES?%O$tgMJzpKV*OHwoitfzquS1)jxSOV_^PWR3q?K0}eYDFH;$2to8}Y z&Z)m&W+lM#sG#NdHnwX=DZRe6|0Y(c1wK>CQko*SLXGeueX1Oca)8xo`pNsOeNp7P z>4#6*7DgXB#O65RN0*8650gG8E4v8-BeKY4UKiMRGXcl4{{ z=NqO~wi3GOSck|RF@rrD@f}43cVJRvjYH!kQ7RAp9@>mT?>g~@t9*!J+XL8 z`PL9YfV?5N%A=&C()dMWQuY@^o-K(&w449neuwt@c3uK zj~{sUpjLKOxHdcDjEw4FuVucQ&yAhpZO%=;uKrnIx$V!l_^A>9Pa| z(1s}N0Cb9r?QQtq8tcX_A=U?-zeWYdLc?YY5 z48MK^`qg&P#chmpmsl%!E%%2+?l<_Xb65Q6r-PKK1W43lPmKIFd*R$Ud_Msda*L^& zu2pqeGALIyZSV$mGC;kr$i2K#(uC25E+nhF_Mg8T_ei?Ati^{QsbVb~U!lmeuYV5R zE8O%gZ@0VS`$D9mvNEAmt7_#kJ;_>i)yJcS)Qsy&V^(;s&FgndDF5NWURmJR+&(vp z*85!^B15E`4ga>d_-wqOfLmJH2uQ;I%A|u86co5MD#Mr9lPC_4B>CpZ*Q*$;9iVyys6TJBVc-DR&lHA+)9#J%&ZJ@M0?7*ZHx|V%5epG zF|a~`cS3VRH3FMcc(MfLffJwlP>2RX7o2QpF?kb1*gs)#21?hH? zygG@YO`B&JJn-k`Yb^>k*2T;7P=WL)u9~15z2`w}64iaYqi%uJS#bQ4>-lx0QO#*H zX6bv13Y36^Fo%{U;Z4#DD~QKB)7qXv5JnvK`qySJK?)W5M|@*!0o(m;rXHMk(JJ2Hzehi9T^9g=U= z{NTUn6 z5T|jF6dwnCDR5bvBB;dZ6JluP31ZT%^MHNq&gcQYSJnj|^LV*Wv9cC@#HK#KvK=+G zxfL}vE!O9BTdeDIT739ax}taFdPMD?W;&R^%O<{ipa=V;rg+2rsS}bAc275hu*FE7 zM;asNjlV=at^BhJBkkRNiJG(Rq;qi$QXo7og-&%~EipeDY^6im=Xtxk;G<(0`V8es>|b&96_IjJ7>nfy5Y1m=r@g99&E zr~6&ZQ5xd5h}+7)^8BiOI|}9vSDk6L$LDF5`Yd>KK6PLx)o&o{>i!BVFib*F;SuA{ z2)gNS>}cYs-w(6bKmCnpqUb&ONj+vSN60%i2j-Ed>78azypqm`!p+0#P1t95q$ej# zdU9LX`WAMj6my6=l9Y{n+B`Buo?klo=%O>uXLha!%Wl>_8*Y#uJl~5~cHbyY^E}H# z?BO&!=TlPUH6RW*Aa;@pwQm&%Nx=YRlQ!A&`T2RN@Jbm7hP^vbS{rh<8wdTYKs66> zAwB1KVMqd)ccUlu!#^`@0~rb?=H+%_s)sY##d<$*6|mF98+2HA^_H|dI`ODQiBPJHum ziO%qmgdI+AV$PN<=l5}%nH`48w0WM^Us`Pa=0gV#sA0f*+C~JvqIG*)nVt8JUxk;1 zHt(|Uq~dD`-lAV^k*458>*iHBPz!e68$^Rk%ZrnnG6cn8?Z3nqPhL^wi@+~72i0lv zFL03nlI&B-a5X8!l=+qm1mak?5{Yb$&5-D-(S^({|GC(#j4f;F1FxDam5 zQ)b*KErL^>mUuS5y&v7e$k>|tj7G;Q2nT7p@sv?wE=O6!1;w@q%>Wq^KGYOzncuzvd|N z=pUvkRI*dixL_?CrX}{Cu`IAP>wmeXvb8QgU7~hv?9S4ph`w>%pk7~TZJvQbDeE9MbQ$oeOpW=+)?r&d{G zGc#5|I-w7lnhGpu`dS|M7~LE7=tCH$AwS`=op%6Rz2biI#lw5BXA@nj&Dk@Mo(r0;;M_g-A%{ensftNdmku3{)AU+nW8B8Lo3gJ_tgiLC zZt&Wy^&R#bWw`f?zI-~igouF$Yb+6@1775sY0UnkAE#C-kjA9-!tU`{@)1@RyC1i> zjeKlr`F-2LIbyevBZifLQ*ycHLnfIjk}+N+Cv&MXTTh#^bC4a#j?i*aPS#S3L6C`S zv)ryIw@TJ}Nbe_~uSY%K{R0M*;(|nnul&kHGXeo?7tAL$cD>OU88Nd8^`e?djTfOR zcA{)pS+}YD0ISX()8LrszOW+i3q5LCajtwN)?Tl;V3Dc34z|SaOl#z;e&~!pDij6# z?I;*5_|;zUQ-^v@_2Jqc&z!f8WN^8ja@Ee02I!LVe zX;7gBNQl>lK`u&Y>szw*IAEF!x9#%vg9dpu-{^A!n%8BZRsmFo1&GFf_z*JJ9=-nX16_8D#gX7C-BKmII>jn612e(PWC)eOgN;{ooRY#wtSmd;&Wm1-Janzpa`1VP22OS!?#-YMhRmF2KX^u$|ydLz6>{HyqTF<@VVpH zyu9%J!&=_ua3A6-5TogW;<)HmYF`-Ob~6+fUZYhu{LU`>Gm=F{!eG8>r?rw+8QG}H z$ql5>ZBDLt3f4EMp5anWf^Qs62G`T>FKIdBWBMn8t#O6HXJ;6m>z{BHa6Uf1dC&{r z{mgva+N|-V9m(wtE%LmM-zvdgYcx)SKSr82x1|jF|KiztH}FOkKf3g zZ8{>Mki41QU{DS0r&6a==~qUfm0&0-%mv%vd_j0<&E_-7C9IdvqEOm9N1B6G0 zpZxQmm@z4ZM1CUL(yVnH@u>*^$(+%3_cPwaALn|ouk<~#C2uP>OM^Cfagsabr)1nU zr@C`1+q?4lXE^p+B@P@Y{Pf2T$Pzut(^a#n_?CV8Tco&g`)bf}KTCMcYNBB;6I8n)tr<(dtj8bp-Z#dVuHdd)(38ngP z-TeTCE(7P(QwQ7&>IN;9=jd(z|^m1(LC&0#Ba6ojcmOGL;j$5EQ^=wM<}39 zZOlj>xnu_04)#c@*>#tV0v!N#6}s~8;rwE@XD3hwu~Y$hr$w@C8?HKh8McerWK zv7@a!ND8*TJdC*b#)ON)y|N(1OV1ENLkA{TcZ?M1H-nVDPFirDo~3sneIjZ1|O|9f@Q z1_p@R5`twa*G|B)pZC@v$@JgWM|QPjl;l53IwuTK;#)#q+D`ngh!ku(>yLYO_EeWB z6y~fYah;ff8rzYabv zNqLug-e5*K;Kcl#m^hz6!+x?w@mZ+1Pr_kB3h<*70sZZEzyPQY`0DQQ)_q+Gf2`W| z^-If~cbnt(H4MRHxx%V?ujN@8Gjg5>sM>Lo57c>H0Y9;jc>PbGfisMx)1%Yu3=DCQYqQh;BKE}tso4+ti+Gd&Bz5J0xxHJi+!$DywF$Gj3+o$`=<|y z$r9Y7C%pfbG&}16TGa#>*EPsb>xMpzEey((d6TA7sLb`L!D_8y#L>P=gEKfzA=F+= zQihH#`>$zf^elL9VNP18d9ouBz&_ST&CHjfET38aU<3yZv;ph#y-W)t8k$`s*rV zTRR@wyP%>wP#T0y2vqwVrwXtk(c4JCH(a9da&LG+=WG&D{QNJm&FeVK`-y*P&PnTN zqzVuX4+^$3xNG(5AMdHk-y*KH*u`4=vg7Mxo(=^(r6FG{*Dds%w)9M)(?@^`9y_2G z{5?2dA-!IOBxC#wR);ht4UJXu!eSo;pXv_A1x+n(>KUhr2W@zh{t;g!w@D6I#*2nT zVooWqBlVqHx2LLsfN8!2`itCBpDg+*EIb=d9Et09@4*3L;VZIk9Fc5wiL2Rn!}oMV zaNJ|u*IRui3<3h=jG(SBCDKaPWirS})f`i;OvKPa{zzR1hD|}M zVF4Y&_km0$^NpDwjWbK2D}Mq0qR)T?3mn*lJx2o(rnk?0z+Jatq3tm2}5UW&5R49)&%)<33 ztcyWJp9fAH5r~wO0-%I@Z*Oaw9asvqL_j?Sog8Pkc;JN}=uZMRq5!OpNeATu2i#xl z!%GXG%!@eP^+4;+Ed*D`eciZ|5roYbV9RVS+%$I%9%`I*l}R(F_zc&LBCf+6eI&6vFln=N>TZquLQc_ zgv&`+mn*#uhT}6cOMtaRR;{3rj!+#jz_uTo?TC(++jm{CqQXjKt$MImZo~46i-{lk z)v4argpyGw&jw{Dz)fp>){Oz12;Eah$F*T4D!^Aos;#3VVcSN`%*O3p<-sh!+(>Mp zI`-W>4;o09GjwkOWIR@V-OuM{PG=Y~1Y^~7F^$)QVqhIzT?;L*iH-nAI>EJK_vU`5 zV5t?N5D`TCJDOo;-jkW_^X~9{!7*6Gck^1x#7EpY-}qZ?h zV??r>%is+3(yl;WXr#CdSoPA7A_V}#6O7&te^A_cLS2M8pKClngv8a)&cr1MvNLD^ z0qVyNdf+K=a~lY)qTcXdTsc$6&;I6tava-&{jF5F$XnsgYd}{R_zeVU17aMfi7pkP z18IJy&sn1m;FRM3IU0^F|Gb~cq)iujk8fZ@2d?5iwmw7U?acFEr>EDieB@diWg6aI z6=x!?fPOa9)NY5v1g8!t>)qz;ODHw0S}|NG2kq6b{NPw^mpiu$%8E~+*jJ)v6*o4% z{@j4KNK*ZKG;MieJoJy~}qXHm`!jOrT@lgAEe42}~ zaU$CK&EDQ#S@WZQr)E~1Oq%Y9i6U=(^nl}Kk!vub^|(5=)3Z99!soLef+8Y}#zjU*6`K~=SKPW+RL416P|^C? zL2XAg{U7GjLtkKYOt8B*{mSX(zqDw!v+yd`FEBkJfftbG?x28BaI@RGFj=;ZGS+B? zy)SRnSqYFqJ)x7?OK%USv$jN+9D5{7I>p`$*0@!a4VSDO=svUvf7Wl}5Z>`dKOy0s zt}auafsm)Otu$ya$*hq7OO_*mmbzJs@}gPHl*z0{nTSf)BCmQ%`+KD{{CZ@j4Cv{j zfM?MLAjYys)6Z6qr|fp`cTMiPJ*S@$6>Z~(INiIBrxF#|8i3ZJEeAouVcMrWM6mo9 zAIeuOO{KE??9G4aJ`-BQ%ecOdwy@w2b4SYHx3$`UZmlH7VK@5y`}ziJWUz9Q9Q??` z-k$K5(;&z0>|455y5{vSzkWLB3|vl2`7VzhlUFxy*8cwn2p|w4xaj*)XYgMG0IWZK z1JW|K`#^_R$tJ}xoO_zd!c?DYkUWkJp}lfbRTvBba34r6$}8?Jk*`M68`IQ_N1?5N zmesX`zNB9UTB@=jo19NK^$S6WC-KPb=@;V7M>!zQ`deo;MgSaXSzJTiO zrG%W90RKySh45!wze&cn+%fCr%a^;|{7-`c{SocEK$E6YLO!LlqlE}>`rRaV$C|>E z<3HD*U18wT10ICp=mp z7l3gny?XqdB7rCC{vRb+$eVfFx;e?WF0D0{AC=BfOb1rG(h>H=fQ?q&;-y) z;Pjwy^&sBc?Yeq7L*B0w(7%JzGtxxng{lP{{sUDYAl~))`S1|fR{=i<&0A6$2A~OX z{f8--?I^0P6fT`k^(RYMv}kce0n(Zsq(C_vr%Hxhm*#eFK9W^jQ~lLI!Iwxntz{ zhiqQSd>6h_4?atU`g+-}qfk)4ynowa>==>ENzvUV2mrn6;4lFF3;+}mlE^sn{J zpR(f&!t7bTl)~$29hU=bn;TA^a-n6^aEqd{vL@$|d=(+=1tPPKD`|H!_jvly=?c*H zuc!<#^TBpkDlW+3lmjMz+){;G*+}dg%``H%;+E|aws&YtX`m`|#dMq^Ofh8-Y{*QQ zzT49v+O*K*fq=_{GxR&4WHc?ad3^y7xwgI`c>9x(#brvZm@z=QK?mGND!pj7(;6p5 zSp_E~$Rs&09~J~Nb3uB#D0HxJfX0hrCuv*5wi(6nO#q#|c_8_y>Ga#_2{x<I4|&^Woh$`1T?+&FdK2yB*% zQ%w5sxtcRsC_wbDxGWBzpH*-_`yufwxTiuQ7+(0dMzqQ4FA&w#)KfaETE!Px=V+m> zT4B!`M5qo2^bS+4o)|>tU4@>6R)(_0eU-{IYX&+cwF~r0h|48$ZBh#8)xCeiN2B=; zN6uYvSWBs4#EMzna%-RJ;zJ# zZ{(<0JuFFAF0A!^;!8kpz4#>HaE5=&a_H{UUM!LU))ge- zF{_Hi9&V%KfJyo)Cgg0Vo$iih)bN8lmSiKvE~=on9T!oJhsvI2aK&#^axCrd&=E?F zDs5$Rvd5NIgXl^;PZMUI@}#jTo#b<>C=QRP-HysaDEJTg(Bn^0_wUo^QuBPm}(`>L)?~cXPxAnXP5vm`!I#{>V=taONM^DAQRMGVGlmH28p_NXkhG{}oI9$=$Onb!V0$T&$gAcWC z>le^=kSuTr8$W*jOx!pv)@GzeMM=4L5*?vEq39)C&vcvL<)TP~sJQ7D|1 zFDKD$vgU>ER`4DiD=j20-gSto)&hPupKcuo1iO8Ff8Z)~o<=H%S@F1Cb=;f4v73I= z_KghuXs4_+ygw=TW9L5Lzq&Mc)ssfbd{q9?5s5S~rCn=W`~Gys>CwEBB}c;xcxShv zVFT-W1N|lr+Hk(O`w2YdFGnPPQf%ZU&kH- zqOR@N;{sd-yWpB>Sr64NTodU<&#X-T*%7VGh|4rQZ#E}=7}4h*B^vJbI>3kr!HWT) zN@1>{Q@3bPWkwg44Lc4P2*){1oy)0_m-ndWcCD_CKXs$5YKP3*M@F z;lNElWi9tp-Tz!KKU*cz$BC$N`-KmXa;>=4Ssc*z{MTbR*~y|DuEDNtoe4drUd=)Y3z!myx6?NMaDbFWLHp@(EQy2-J#H+p*}65M zsbIV+ERNtWZ1%=HWs%3aBp^-w@+FLXg&*kpSm$mZJY>u0G|&NeAEB0l8baJECOhn_ z4`n&z-e@F$L&bMo_Sg(Y^`Cqx_k^uQI)&FrSPh%1Up!rE4S=Nu4ZlT2)<-8Y8;$uKd@!fQbKIEZIq&u=Cm zoHrTVtUFECRBem^%2&6A*Man?ENb!t73R!c;+){3ef z(%0JWxJC`}HeZ&nit(Hjntsel{?-@h;Xo6Tiw9b{m)-wpMyK;z;wmq;eZBHnDeg#Kt(oHG;COTYbE zA)agj2s_1$N5AU9m>C(7!0JGaP>>jZo{5oBdFaJl8qL)wsmjSAT&wGRe%ClAHG^2j^#*s*SYFF z%_U`1tDIUVwBj|DfN{w>5y4nNY%mYPmfGsBkaqy51zoMhF6kJ3+iwdH=V-H8Gy@~; z7~58V^`dh`HSUp&R6_8paxVdQzVGG}S0Jm_<~T`^ciAH&v8r|ZkV3l|-(JY&5`wAR z0=o8FZ<3adr|P|elQu8(2UZ(rdGyu7nf{(`O`zi$aqC5F*vY3i7T}K4becZR{L5PI z!D-P?f$z_g>0XJt+=&jzeHMHQ5?hzGOoAW0Q`L2}d@2Cp?rgu2O+*cXp$R(5R$i-p zKFnuZJ4wTnP1ibig}H`>S8jYi95NbQF-^eA6$TgoLM~R_`_KhxItOr5>Vm&edQPtK z8`lq4ijRm;V;LdOcfu(eno+<&0aGg$rBcc=0Qz=phMhSv!TYi3*aqkF`$hOz+5_NV z0sHeVS#hr?G;G%B>#BZ6_6VKtbUTqQp;vb1TXzxh?GdL`+;Q3|Htr8R<@v$EW&J%2 z$Lkldgko9Ey(`FAE-jEjWEHTK5P_tu2(=1pc$t)*9u3MNBbf9GK&|;Ph30E9E}H&e ztaK&Fw|^=1aK@w~`hj(h5+b5oWKIA{0BycGG*MQ;Z%Fbk8NPg6AG<3LKPt18g`V>A z@#TPO{`?i7iE25|VtWXrJ~c^rH*P>yjNNabzt+m3ac zZqR@ed-o?xs9jxP>o?m0W~<`miz(F|{)+0Ep(p}#y7Lhcr)};Fmlo1V%mcpYqYaa(;UuSpWbg?3)uN@ify zHw$H>_}moG7ho-Tz{Ov+{&A ztOpU=?1B$*Q@)v$$m(S1#h9s>sS_|?h=J$WNFDuOV(J{@5YR#gf0aIrDjqqa6yH1| z3w?hR)K*5=xFhSX_vx<7)Y?sC{c_h+^4lDP5i1~9Nk9Id0$-{%bP;veXIi~(NRcHJGv0*zW8Gf2hb16LNmcs7K;#bfN7*D+1hgF~xHI-1kSP&9F{J)!YH6*m?ikVIft2>*1XD7{Q)?j~5Vtv13j)Bl)=_Kc_x8oOjYB0Op=%jT6qu^3A}YyU=6g zu51{*vUa@N^v&avB-WJXs!$NU1z@XWvKcI9T~&SgBX7Pgo93BT^_Il z@L;MZ@r88r#PUE|y>MnkJ^=?XpfGnb$Il?(*W);TodEP~rV`Bh~|MgXe1-9jo5D~HF0TF+WAa4Q7xZ}bV zs?$`8iO$WoZ18Rc)~>#>G3m#R)N^Cyn>7c`iF81f#0FUCM+cMc1V>yHOXLFd8p2nJ zwAJ<94>raLVW5mTKS`6v{(8caBw5M4nXy8UtMUifH8NFgGggq75d$zu&EO>fn_s^G zwqX}p1JHkI1I9NRHRY{|ZwlADHHc)F;7Xi9I+*nZzp|9KBFG<+nv=*nF7O%KD@e)1BbWsKt9J4n>P(29@uQl)69Q5Z=ePCIjn@(&=d~g!1;H;c( zQo8S4i{u-wrZu=-tJ1ab#}JQHE{%it<_IMP38SSE5fLW~pvx&!MS?pC^FN6+cM@_u z6wGHoeXyI%AC>p9G-u64j+^_XEdg&%mVe^IQQnbC?{|%%%|?y*X|%v9^!Mp(HOW8! z8-hJ6Sg!lpZ7x*5_xo-Et6BDO2L6gbMxY z0k&|b$o=rureeS!2!0X!E43Ps{1g#E{om&5VHw?={ZShyw+-k7OZ3##ZUswnGshw= zY4MzS9|Nt$KFkXtIvr|XjJN5jadY3Y0dtwM1sHB5vsP*sv$5-CYPuK~UKjzR0y9MX zzm)+qyAhP|VBx#sa(q`113j+m;)Ef5%E3MWlC5A(y^cY-nd<64!J=YhNPNJZGvvvl g7~eV~#eB|H_daE%G4+iy4E(#V@ld@)&F0Pj1J8$yegFUf diff --git a/icons/obj/nuke_tools.dmi b/icons/obj/nuke_tools.dmi index 0806ef56711163b1ab9081922fa08a58521b668b..7f5c730fe5ad92ca5a0c336a58ae4e2c7c5b0f4a 100644 GIT binary patch delta 4789 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 delta 4750 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 diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index 38f7fa719960490422c495c4c0f17e8c977d9a1b..a720aff62c73a8cf4e95e4e02cfbf38bfd1c23c7 100644 GIT binary patch literal 33266 zcmb5V1yCJrw8?HH+*T_}T+aIBfZe~NFJRO4K=B*SY8hsbt|KLZ$lNe!!nlOxx z!~HfreZtvg{L4GV8bUN2Ycc4Y?&E`R)ZT{0^TB?w2Sc=&ZBDoD0h0u z__Y&mxn~)YRcde=cqjstJk!DHIy#2#4ELUk>EJf(L2Vqt>X*1KdQyI^T`6{E6G7Bc z(P`dS*$FIyRdGWmVXffyUuK!(^N(n4COdS7b05|7W}Zt&aYB}k3VAo=eb8YWp#Oe= z`IQ+#BqxgatDs+Koj-!tcROui4AhY@!;tEqO@N0Fa9F1VF)D;}q{Vba`TH2H7lg12 z;{i}4Uxa;oI5Gv9lH^T;4{~ycK0#MD6x*sdywI(Bed9$+M84{vOdq}%D)64eV| zy-o?0Pp%0av}6@_^8W_AQ@8hF_tj2PWYu*~bzqb9s^`K&Z~7n_UQpWs8r@=VaPPoX z!!92)WlYs>E#u|^ykzq0&7k2Zq0TSJsCs59Z_Vg=laTz%TR6LUTdC4X>Ck_ANx4cRF#*0LD3;^VS>=^$w|m&iDIUE-+iXSa5EFvqjNR(;&3*; z$FGOGrp+cY=c+-UtntvFwHgWsNlG2%o3YWkgoUrrgc9!HYlER&SlBnO3 z?wWQ&B`GZpBZL7XL_jR}O&jndNASadW)%c~chJ0srbO@~56AlNm(h_jsm%Ic-gjC* zSD5_jD(ik7QWLC9b?`Gb!A1Pgo&ej|*B1qN|NgT3cVWCzvj{Ahu6G8P)Ew3(5=>6csyox$dnLj?e4oZP?zveVf(N+f&38*DvR(UGTwy#l;-T2ZS@PRBBPR$&CAr!tgl7t3NrRxpEhVB5cUG&&8{~ThV)@DiAHG!x3{IVDV9`#~X*DVaY0%?cn zAH}~*NlEk4ixFN3In~4xMk4`s1gw;}lBAU|o&uGXInuV~uY8m#hbKx%2nhO$3<$co z8|`|tZ1C-=<_L;}@CHgZ^?u7PooVOf06w(vXi=D0QtakFncaH{P;iaq!ITIcQKtu_1vUtt8IyuH`^B1XwRc90y}Td4!U3u*D09{W zmUOY856HjMXh>O~J_L^u52qn3PnMPn<>u;5 z{sJ8^C}{tcFc~{HejX<)qwZGCyl<}OXI)az4|%YeMn+sVGzRj_(}hOq`(0|WUK&(X1HG* z^z;W6vl_?*6ASpYEWV6$W`u4mO3%0}+B*txRpdd3#Y$E6*UOxrL-fNSDsV;+8GrW= z5QJPoMf{J5@c#jb|GG3gbMt`_+C_g-=fWd87sCh&d?VDJKxR~O^9WnM`Oy6r)bpW}lfqOJg9)L{gTey3IO#HZFOn}6?Mq&QH%@Q>nq^Av zCC{6<{sej;8sb85(GhNu!+og zHr3E*8A^$@0u-ZI#nr8ZNxYCQtkXy9H;Zm*RYgn%IkXERgm1qt)grH55wr38F{{$R z(vdHEcqU@#wh_MuJbeAdeY+iCW`ntW9CdF>JR>AE9y|-_duluJSaogYKjK;)6$6x=2G+mPH$1bMw1OahPBQZRjD8PyJVd)*K3hKl7iRM3ze z=#OvizS1vB!=|J%7zbrT3BC$Kkra&%F562zw4}vOA%Z8zm8_hqhK7bF1b5ZE)Ls5w zo^~rSJ{eVw3%&aMCVwjAbP*j87wDH(^|p-Yi?m7vn`G> z9H5vHpp#cbC$1`sR+}1gg|mc-p1?)w1ZEZa^UVVa4g$ef1sn-v87UPg zC@4ni=k&C+N*|c+oL)1|&TJ^kpt6z*h>dp!myvwH+B0hu0g|BNmZD8`OF^RUfS(On=J*Ei7L4leH7y;}|g{9XIu8!(;d-X~e;*Z7?q90?2%{IWW*?F*gKGg zT&qpf8Yyru{!N|8&r~1^g7pEL!y4;cYiH!tiKX+Fqc$o=6?T$^xL$c_PS-1=Dg{XR zN*1nB=&;udCsc*C4=c3`W8vj-vn@^#IYM{h-XC{#scGGTA4I-@Y2@=U=5%;;u^R;( zB+e0HUtD3m)IEDKq0lb8lrL6PhFZ}tR1#CLbKV{V?GHhdYTxXgy+c*KM`<%=f+Jix^sm zuHl6t8lmU{{;v^wFaQE56bME!RdE=_p#RA9|h9nQt zFcH>19)BWZ0ZzB%2KM+S@YQr_YHsgXU$^*h&7t%u=$*Z4zg$NpU&e2-&@~JgYQqR% z>@#BhC@RVVZdqPIf$(S=pT4niU|*jEAeheYd66rcss}j!g?fk9g8pnh3cVW{#;2)z zYc93udE5G(sHR%EDVwRJMZT&VB_sou9D#&}fgvzB7~bCAp4n`I(#XUF8VEusL%UyT z{$aZjuu>K7#hnd$E?Z5_jCmZjdl3lqEBu}E9yf_prI*2vOj7p^RYL!<00uvQ|HOg< zx{-&_urPgdb0lYH=eg_S2+WoiHw$=nH)t3lI(`0!fm+%*2hGpx(f`^F$(NCo{?lP5 zMn>5R+jU_$;Gri18fZ==&k@YrwQn`rv(K5XMc$gNXS^*w`XO;=rI}71QUksEV8lx3 zbh0uG`26}sfhC(FC@2Vw%=x_*FPS}vW7&Zx~)dD3g6O;J( zaB?0EQ*cgPoFe61v_&+8(-+j@C0quX4<8!hu0`#|-Y6cw64BEmuLK|Y?PMAS2LF%2 z&PXbjr&34ZP7)*O0;OEol+czCTIWbR?R|7u80NGuUkHrMLsxaZwW9{& zFS@6x5rla!%>1Sha})C--wwJw5Ts?>u!92%8I2_2p%fAlLJ2~L2RN{&s%4_yw5e`P zD=e*IWXrX#BXkgqi&IL#%}If1PUT54^YW1p2p^pLb7}&N5f_W!TgvVJ zT2gIp-Eyfr>9e2zB{hB<3kgpu}zm;!_(&2xQnlz3KrOteBCwaJ6?Cw{_=FW|nSeh1Ji? z&nwI#Q+1LkfCp|y-eI{Ju2O}qM&V`Y6Gq>~@g!lS4rASqAEjq0Tz8H=YWhk9fO^BY zn%(L8Z|T5(tnpTN4{WVE+e{dMQL8TF(jy6}81Wwky~oKyrv^g7>YN_xn0tcSubrId zT=n)j_XPZ`pG7dhkgH)uUixUL%0XRUcT-{hgu^2*?)Bs&ArH#gL-LIMU(`GnuhD*J z;KI(i+xJ&I1fUi}TTipe_W}nyqz37%w=fR{RJfnkAi!GvNNT;IDta7GF!yyO0A%mX zvJ)|Q;c^CQG>qe$pnrMux?JkWRUol`f#r(#$w9lwjV{&DSQ`zny|DMi5F^CF=|Um- z5X;sI?v8y>Uoc7(IYOk>GyhQC#n8>&biaG(A+$o*Q zutJ|&)!U8Rz2%o1G&q(GmD$-SppMIw_e#CDpfB52I$wiWuQYv2=CaA!Zil{!ApVUP zS1saH|%dwYBM@88rqF6*!!XWjUD zAi-xO*lA|`)z`75p>Q8bU#u;!>;XLrCakM#MlChD)H!|Rea&+u%?~{g5YP91r@x`6 zM_#P8v2i%^@;IlZXApIgMFZM8mq}(gIhhZZ2ob4e3Eq*=*0j(W{7&ndGNE66dR#u8 z%uI&>4+A#~)moIK--BOM{0LymrC)Acb-#!8d{&A7I^CzRI3Wwto8-ZBr z`P^dm{s4}@J~ky&;>O?un^6%*kIad` z-Q>MqpSnfr_S_WyVFBJ|(7fRiv%5=U!XA5XKL6P4eJiUAql3#=f@?MR4_YT%YHWhj zu_ktQEXOO&$N&N&qL8I!QOjUP&nG3SELv>y(L0;szoJT1G;mb?`8QNFD5;ze$e-wt z%DM|Eek$XT*Im4pj#d(-#m-oMP#$I598M{6**#c$I1?38z<~87>)DFnrh#;VvZuqVtp$M|7*Af zq9vHi%coM5v_TIHqsZGZOBU}R40tw)i0Oor88+Bc1dxG$MGI&|(kgLT8`TvR!bV1v zUeAxt7kiW9>BjP#;P%!vG&)eRGrf<{Qqe z;#VubQ`Gi5RcW&YSL`)kt5^zD-dOA{!;2%?I*XsIG^0j){YhSZ3;gEggPm3j)P+3$ z^gt6Jxg(q{*@6P@uASNH5K~i53rz1kHn-GT3U-$1TFjU!jD|k$6#<3`>KCi1gw`YMxg+SN!T4tsPJe}k^)KZzHTxaYl zQ=goioYT`&K@}BTDw(7%5^rvDz^3JvYG456nm*L#o#jGTdplvt@v)0*56W9?^Y3>a zh6gV*6yPdlblDuXCc@9hiN1v&DNI~FgGaw;cokN%i*;L0E5R}}I(AnOl6q%IfzEQF z5}~WPmF&Vx3dXgREM3qN_HG4m?hhM9j&ckX!#x^6)DVG)os>Tqr#DUbBo(Y zGyD3+AO1ZE{Vjd(6n4p)Q7klx{Y}pW+&!C~$$G8g{s^#$7TSblQSN1!Nl|9G!Ouea_&$;g#N$7 zZV452<9f2vLA(mjRPuhPT72xLKilz#zsY?P|B-oFowKYwx=A*9eI1{EWi@ul}FP3lji(IKxHKb642CYnY(bl zdc@y;u|J6{BIeeH7PSOTaK&+kUxY!%bQL z^K;o(w3SLV2*~E%Hlgv<9+pFJ zjPOEEy81(FNaILAw zGg9WARrLSddy9>S!fovr2R*F)w^Pr%v-j+y)+!`TEs`=psY8#zdAZ4Vh3t!LY05kh9yRclAkLH z%{noOO-z5FSI#Ys|t z?)Z3^EIgfuR*Ggg@F`3|-WGZ*r`vqTyXF@X8BAhl(J4X2xwYY9jqVR{hVhl>aaWHy zRHun75%-0BBqKwKjXsFq)jOw?hd*Pc6?<@6E+GIeeA@&|Pwyj6TJB{}458@H(sM~Qpx?Zn*h!6a?4G4`^7(>T083ae9YaLM&;skN50h8hwmZ1 z7M(MgSQb^Ug;STE1?U?6M3{h+*#3>O`al%+fCAeJHMLXft&MTN0x>?fc=wkL$K#)0 zFn14!7IMLC{A{@ppuk}hGkWV=qxYXpRdXV^m0ctoFs)r5Ry)+SP{y~^(mDlm%)f0u zJJr>6s!3Dr2rE!w`4a;5;-csFg21s$Qx^$aEFzTr0ZUI!fB85$F(Hw8R58_Kk`U^( zwFEXy#*AUO6*g~;?%AimprnA|5OQitFD|amco}N=9NZY*P-*c;FC(ww`$KearNLZ| zsO)FlpURhAGkwbv1CqUw(CO>qX4Mn*+-52va&95rnmAT|)AeV4l9SDbdVS7vbw^g3 zzmjcyd@2x+kvvI#-n=!Z!T!Sra)2v{jwKAftDH1l(%3~_3Zvso&Ej57!px5^L}1gD zFA=qKPY~|pa)i< zZO{zE>D3L&47`2p$TN9gO4yycNJ?uTp7!#?bjh%Z)f}m`PJ?KE5d*7WMmx;BBaNO1 zRh_jljaR9(y(=z~SJ08Anv<20U&SQ%p4bJIHk41sHbo78 zMvE8eSXodK2HaSJ*DO;_mHWApb}Kp%z%DR-c@K1d#Ga|)yjd#`%-HVrehz#(49r%s z@+o*pquD<_xZ*4~eGC0-zeMxy<7gV+TajQijwDW@@{4X$><2o%x|NddboLKC)Z(__ zpwqjjmr0mp68o%>NghonZBDj(SwZm$g@>|U6Bzl>q&fm95?|iLle7tU2Ute%ln0BegP~alOJ~W2U*vb(9POI zdS}y|-^Lt#YfQ3!ib{dfFe*OAA7oNQ9muyFCa0;vjq4S!{^=%h2|kS=?0awgreT|x zylbR@i_gUaQOZrRM43}<&0p~4LT?1|T3+O${1{iX_Jl+cx{{?Q=U>C$GV~>WI<0+{ zFbINW^@0(wPZ#b6%7ViC=f7m19$E}kTORh{yVae-TlI=FTh*-29`UjKi8AI0lti-- zMZA8{g4ttar*Shp!+eiLq#iK(vw)^VLB9VKH}u_V%ZS#p)dg1c+`S zIiU{X7h;EJZEFSAF)iv?KD2atjt#F5;%V=kF~IeC#+#KOf??`zkYnwIVV6E^5TGal z%O$j@*-FJ*cX?u$3Lox&QLKyI2lEXanI3Tv2kGiMzwOCEc*+56aZ7IM7H*eVe?q(} zrPK|Pk3qN5lV7y(F1FhjiN|yaM^a`qf(^J=-sC#35roD2fJF=sHYlQScmNLddL!~# zW4_`*U|Pj*$=n9miHp2PyB=4E%e+8*jAExZ+u~T#vg5x;`BLhla*AU*Q5&xaulQfR z0Gp52$4_b8sWAbBt6~Zl;#IDnEq%_ngIK9jrOS;6;qKm+!fy|0w>8~td^FnnlSwXs zJi_=G6&Dk{=!|n@#XXB$chvvnZBZV{K}vrVACKoi1utmpDcqV;%;%eh#`SUX+2+U) zhwsv{uoU}hlp{Q%6&q+{6go>jOiPDJzW{S`cR^rgOQ7jP_*r}s02r|0&?5%AX#4CX zM7T}cltX^T#dj_YNFCi&nXwT9H)p+kM&WQ@+)_xc;8&I0lttsw=&56vLJH*a*o+6U z8L_@6%Od~?Pu-BZbo3S)kdsY$CVR+F2mp^-;+E}=RX2ud!fEi6y>gv%w0O%{HxrKDZ}^Xu|Uh@P7^ z60p{JZVdQvT+Ppso$_`F6KBQbn#vf28LiZ#mxbR?o(vT`>5p%iECsPdffxCGyq^J8IE72<>6_y z@PJ0+^M(NlQ03%<(4Z8stbD&#;JK>z{v2ccNsi}tIg0RJ?a#OvDi#|s2nXO2lMK|% zXo0nzBqD!{gHPV=ey~zUt!3`mKerJ3MlU+Qrh5Q_USF8%!mm1G84%42UAUOB%Pd0H z969L0xoutTl-QV+>RCOcMsZ})UpfD^`kOTTOVMrV%`f}wKiHOATKuVts)nCTloLX8qZ(-)3INnRst|y`OJ3TW8}=SLtydgA zQvWUhr+9V`FYOx-G5kz=q5IpHdP}9Tx(CAPCpswLk7l_Hd#NFvQ@cqId-l;I=5ffZ zTSO^mtlra`#XE=UWWAWd*X0&1<+Njs{`+g&)388Y)$e^nP>eNI58(g4((MT)OXM6U zy-^DRlKmq3au;>2?YKW1@*5l!c5tPC|NiR7$B$k^U;(kSV+rYS6D<9qUU3r(ziiA< zhLFF!ib|l;^ky6HW*{~)(F7m=GbwbuuV8;7O!cg)I_(D?CplMG;57Jz|9ENpqo2VZ zlX{s?z9M2$v!~b^=&%ZDHu~p1#RNR&G&4;p5!UO8@-m&qGP_8??)4`Q{`}JHd5NuG z(7j30y)UJUq=B^~HmKJ+_+$E7D8B`!4e?tR-6?5kLRi??{PXK6K)?3~(UR8~0%L`` zv2aclcKS4M=W$-YHzwZicvs&@K~F8td_GyrFYt!G%3WzVAoq8K5I9AN<1aMLk*+<+ zxT;>eX@8NPZkz-fS~;4#speEKWONR{!_N-tZ=Q6ibZ~#S$q@fSD#f53r!#xWK%FC% zu)MO`kFTGpS-wR^wy)hP?%eItyXftRr{&!SgUriw#|W%VC7MJXvnZe5?-+*Mr*r;c zrL#fvX`KpS6N>+91O|Om7qhbUzl{72oxqxO5$d9U|EJo#y@OaN745ToFo27wg3#zu z2#snq&|omEw?lWwk4`PsU8qnnJvrC}GZ>BhP74mK$6Z0w?DJ?gj#-fz8@n4H9}pnQ zEs-$n5#>sdzq`=1eGl#O=qj=ImCzaTiRMk|u}!m|fX6k*{mO!$7yM+JmdU$^9iky# z-2Cgo9kx^18?B+LX9xoP63+*Nhx1i(4%|8=PITDSfpPRusRUij;BFh0Fx87pfr4Pv zr|K>D>|CgFP2Emd-^*1p-H@{(WGr702O6Dl6L zRGyNh4C8nh0`|O|7UT<^u0D_CT~+-N*Y}vQz-Q3%;i<`cQtJ{s+eO_7jx3yXzuz$q5jd~%C}oyi ze@9PsIg#w;YQ{35LdVPh%pwCO>w5;rDcI2Cv8W6+sdbB9-M>ytNL&y5rjHeN@|`W+ zvt&0#-*{3fpOq`%X~WIa0rTSf!-?@w$!zOlKg#%c$7(D8>T~V@^P1N?fSiBt^~Ba! ziIC&K66?{8>TipuT|+1p+~2UmHYXF}TivrNy$VsH$RJo76?Tuo(R-K{1ew1CJ@+bm zcJ}uANg5sZumJIt!FOwsm)8~IvI=yy0^>s{VEwR8SqWN>tuknKX6l9Nq>BW8&VRf` zPpRtz1l1gn|7>sDj;DW>Bhb?2*l6(3$ca&Se1Q776&gv6NB^Mr?Op88pIKF2eXz+j zj!@%L zIu~k|SNWAEjhwNoLIB#`d|k^KO#rBxW>w+BR@5-l*?kt}z+g1bW=Dh<3^w)uPVD0C z)xLxMEU<{oLmWQW`6{H96O5O>fED3yLqpOiuii(w!}uuWZ%OTt-rZtA?f)wM_T`Jq zat~ai)TjF1bPMycMV%jb8^n|8I#&c&wJl3uv6>I-kD#d;Su0p5qC75unNm&K`5Hqe zHfqx#qs7SPp<+dF{?)@W*h*^Ic2veHtGC%>$1<^v41OxdaL2sKT^}XcV`Z$yGKAF2 z^dP@v#4SCw2ikLcRuI#}Kq#_hy@i_HzK|T!3J5IGuX)%MK`b0iR~A+S#lU0FK-+9> z>8!5DF5Jup8khn9R;{l;^e0C%sd#k*p{#sYF3p`xkpEq9^~L^2hq6)6c!b*sC{C;B3fts>QjViwaXFvX$7V9pmB!~DOIl015Fq+Vk;QleXT*c|AY#Yfioq%F zXUF7FIJi6-qM`|=UvhDLN$xc2J9{$I(O>H==~cV0C$FYt5Jq#KFqs5Q&Gxj@kVT{~ zPT>+0B^kkDG3o)9^v8=3HyaH@qDn` zOO4yUEbhshQF1q|gZcE5!YgXwAh2;per@>F*0DopYj*ukVIe)7@P5ge@TxSq6SvG; zPQ&LudDi>2)6lYSOd;0z@H*1ryHZ=Rsh=0uM~l>8ziro|O)DxeS80L{tW}QkLj%%@ z?_t4BV+LpW%J#A&Cy7X_qJf&8Tm6dE-tg80xK>qP75cONhb5Ma}_Z* zMY_c&LxYLp4R0vV3I*GDVn>pz(I6+&X$e1pVY0nivPVZ(60Y6H)BUn92M6qEQKR2~ zC=q}edM$B$;C=Not3BH>J!+Kmg}o41%$17R$82$Rbg1hfnf>aT1;#h(0|?MKHu5-#J5_yWwd!5`iLR{HtXCTQLXJ2&9aPC{s4W53$*+P8Zq(G3!hm?It`0 zr$SNO8!=U*ZLy4{o$x}TnV1idGX_pUL48NT&IAD<1#toc;ZZ;Ro>6HglY-YR$D#Ko z*P&GSdh6R~R@_AOyCOm-JH<2ydh$|z0F0YBqUziLc@%*>2?6*|Czt?ECqY7!<*}AF zb?z4vNBw-ZN=)U}`j@%n)pX}i~Z4wje3r-#YFEMfw_7cvwR4U)?6W}kj9MUxYFqD0S3t7&`s~%n zOYGYIs{QL-*o$+uQfDwge*dEQ=OC%YId9J$LW||VdNj>v4vaJmQmapB-N(|Mm)7T1 zEwZ{V`6IA7tc4uIu@P>T;Q0Pa;0OobT zrVl@6nE&*YO&libf!PMI)m0Ggzc-uxzg%X0WgP1)>?8n_b^tl2NV%|6$SiF2Wh_cy z`2jZA!A8%T7+zjm3lG$-6am1W%bKo{RG!Pv&*mJ0;8#4pNJ9fnY{#yEj~W+s_7SQ{ z05imJc2>-($zYfs9o0e;(f3`o-)(~tQWu^7JN{%}EA$W*I1O`H|L8@GLX^YDFcr9` z$1nxB>3jSJl%!+bK33C4@5}-6PlX1yCqKokJb$*YtdLfkjKTro@2ijjTkC-X1hC5y z?4tR+162%W_R9tb$%ed00A^6*H#FQDf*IekaRsHSsdwSptt@V_eF@phb~4O^t}jC< z3X5&;?*!jm;m$|!-c_)OwXZ>fu&?s9Dq-C{em;uSHIp#m)Uoawt7(%rWH96M=~6xD zKaIVB-a~gG;G+wV?vrlGu3D;t%K5=EGzbki@!<=T9-Sj%PZN2HW7G7|Z}qc!b3 z@9nSB-HbOw3AxOWE(_cza}h)^uM%qIQwD=swt@?5Wr-VW?v2a+Zzl*?=w0t zSZ4PtOUu<362xx{rFK`+Z^R;h>R%nsN94*(qnt`wu}n;cLV#!5Bfusd6XC4E2W``! z%ym<>j0z+D0z)uv!eTyzmbw@TEIIs<&f=yT)ADR=35A<*pJfmopS^zk$0i=`X6L_R zG=YIx$NaB3gK12#+F?tjuB@DW^_kP)U94{JM9wGf7|S6Tjv5G~`dAsTU-dd(!PNl( z-7E#ME|!`?TPIlYliJ1Z69CxWe;<)D>jcYF*2z{}$xV)7vTzxNPdy!4e>)hsi! zC^YjaZoY3r%jHv0fmWUd7G+U4B6a!GeVsdY44&R-y6}AM7|Z0mx$L9$sCd8$LaT1y z5Lu3j$qfm;5i8@gMDLNQD>x_42zwe*BQ@x_`P}rO8KJ~8lv&?{!K;B9Q+jnV9~;~Q z%nwYYo$$T0zhy2Ro+n5Fomg>+1xrwxz z-8jIlF`H8SLew(tN;cGgxtU}a50 z4bzy=Rsaupv5URGA1FUw3xmO96Q>>V-FyCsObDoLpQR0To{kZLwt-yg8?Il-!{g6i zeo$C8rIcCUvS_`xiI^XMQNSI0^vBN{FW)S>bo^(5qzo@@QX&j?H53#uAC|Pw)(ACk z`h(UFTTaeE-8`=8EcI?Bp~sP3;bTO@RI53hsdcVbwCG7;h#XPd(eJ?nV5-*PHR+0M zYTZ?_Uk6qK`hH*mQTH&8;CLZ5uK{W$sIg_lgobD1f0eYsjgODN**m!Y*KA}iOPiaU z6@TLkIEyaof=zx{SiY6qu3Gmx4hOo$(CaGtB9owbZ2Y}NdC?Poe#GiLTWBE8DINS_ zF)7J<9pkX>M{F7aA!vL7@A9nTr)D(|To9mC5B_9XJQkiC&4G^mlBRgm@r&8C4!Q_I_f zvefTOb9l%p&9O^EQzY?)C)hti-IhzK0VehGI7~U=|APZn)2&{|B}*C3iPAHNcWOI0 zG=n|EJc;GMf;No)!h-JBscY^x>ZH8xPkw&azMce@kHG(SkNM1?AaFT(f+S)XsQXO1 zbd7p=bhK_ggUHSCl?cAK@}|D=&2O=BXMX|mmU*~7yp9}R!gKujtiogguu{nac1iFf zuBIKUF%n45;HajldaTR;Y3ll@`I?zo-hx^L z{&x!zd}qwRonGHYngw6Zi)8T${lCy3*tP%P`n3P2%PRT?shro^ITKO2BL_4e^; zlu;3m8eIfr)8k9MwLcJWXa{eM$w!0Kjn|HKvsr1DTM>-q8@+u8GtQo1-}%qn&x#P1 zXw_%cc4#11qLRR+W?N(DZS5prHLWfq97qLrPEhwg2iHAg#!ArwbR1b+~o_;{P@m)C!x5( z5(L4amFA2_Mnu#%Ff@FtR-&a}QBh&LHGmsLMp%PWjbIDrIi*!(I$LT-5wzaB<7gIr z*a#cK;+?H$^CIB|S(>sS2QnX$4|eUbA#y5CaA2|iJLCWXOChg&NfZkod`7Lci7Z-L zT3biQfYj8~2@5hlw}8-4q^X&ij;SdeV5&yf^HQbyPR)>b%?}p&eS1X(D-JF$sF2dw zd?|C0Ko9_%0z|(bqXR(g^KMZrC&#z}fW&BNyF0Yi z*_b^7)(EA6&MxzV#o#rVy)&q72|~t)%aAW&hO}T7=@d)A?}wJ$orquex;(!D^L^WR z+wVQa)F1Op!#i(wT7}H%Y=2woH0vDvyEo480whR+W`{aDI%yN!U^GbZ>fRd_ej8$J zjM~Wdg?4`hT%ab-O8v&HEMXbBe{~v&&NO+eCJ{bw`C8!uIl)4D?*%nI# z(%HE6&IPHWAG$juwFle)36I9+Xv=+~_QBWmP<5!MD6_ z2832oduw8w!>Q|h4tI=`N`E`j0|Uq_E5isltMR(@;E6PeZGw!bZ~Y}`x0vTGo{hBO zha`1qpvcnA&xWdD?A2q@JNS$J%(0h*6pynQa>4We!J{AL{-OMEW$L%xk&kCF1Ykz) z(96aI#V3Ks`FL$SM*NiMFfgIikN_SYeyP=)Y-?*vsub+vg96(~G(06tt*nMqu?Y$D z@dEM)GwKuF+CgAbP*(0by052SXhGVV{Sk$bGTgtpP>Y20Nsm7dzrY;liy|OeI`C52 z1WW#$gs_DFkR*%4(E>;DDBoqQ!JT1oLjTA}P(%bOc<|#b3k!?%b3HKta9xYO zW@lHv*2e%Dn@H}9lK)A-Xg4T^-Y0rMoM5>?XbPE+z=)hsJ74*_hbni?^o$On5DaB!B^vdFbBB|!J^OW<{_=o*q1 zF^?3Nk%^dSDXhfSN=;2_su_VJc#_Td19C0Qup1$mc3H9m_t1K*R+?&)&ShGnAY(1) zb8z(be+V+PpgkW86Z7@Dc(5z1{hw)Z--yhwjPh2NOHDC^pm30-(rs(^Tx|mbpW`p7 zQA$d`r(|$+v*jWD_$-da>qIvSAdq0Qn{8MmxTT zqYxi_X|oIHV%zno#Q-UN>4r;Y*Fp^EpRbdDmJ36{094^djj`-w;c39?h43W-nY+7t zv&z%Ij8zqhN1QWKI`wx{x>Y##6;eO;#bh}H);Bitv@&)YwI_mU4 zQRx3Z2=)K#uO!`!z{}C?-GN1YWU%tOQxtT=0H#=}n3g9FyWuX(eO}mjKRbJ_MA0nd z;VOpUg~SSDq75$d$7A_{vIT&=ivPJ~{#r!BbJ|e&pwi7!BVgwF@5ZkL5HlDC?&UCg zeE3oGa?}$v+n0k|Z)8=%N`7%chgTAGuWe8?(Z|`tvC~}{py**@ueMIC*`O2(6z?dR zj==@Ycsqmr%P-8IlC6l~`uvvEFd=$Tj`@7;EoCqY+T-61itb0v@KD4OX*}swNjg{n zq4>mm*sr}hY^k~OIrx+S+c4QP>1XDf3o%V*pnN;Cv_Wso((qwZEmlA&IvA0qAttBJ@9D5efvr;Sc4_g|VEVd3{ipc*OVm9Q5*}X-UcQ_PBnmtLM{2S0$Kn>Tu*h zNP>g+lOlF|)hbxvX(FkK$_L}>M-m;9+^-CZB4@0X_%>;GFfTuYk?IHx=!28>dED6F zli1D}T7o{qxPUBJ%~g?|9k5uEm)G{EKW5r%FCj5869mHGsjz%U`>$SrC~#z2cWS1Oe=tO0`daV}JfCXjf4^mLeg0M>r}?ez0@JrD zwg$tu9F7tX*KkQsqg6Y`wm@`No~_Lv9(`lpBz^i0>eHuBuRv%~C=M_;H)l^PJ*wke z@OxT#eq_4XiKFLGO|g1>Qt^f%NN%AUo~BO9Wgx&H^r?eG+3ofD?9adA%>m8JeZ*E& zEcf>8dvHJib9s4rG`(60vxbI7o&6S4=d*DM`ittLF4YLhMF%XNuUp3y%JB_1aujoz zD&?f?2SOiXS99Z`#%)G0qOss0H(!S>x!HzLLo#k{H^%EqV5)| z0;gtY9Mto!)3=Vw0>i;l9gtB`@aj3`5{JL}Sx!0J4m#szgK6(Cdd}=F8x$6J+$tP4 z2O+9B;7a-u20W73YqQ+YZ8bYR4FS9^bfL0^&+y@IL_K`aNIqnIif2@R)`0plw2v(A zF78po4=Ej1wtPPAM3+{Ileh0%lfONpW~l+x5Rr0pQ)6)&P4*KAYVfHwF_FP~w(j&! zK*RInPRZJGyZ>|~a^}lN4k+X3+`fMfS7bGK{rn7wI!=x*lK^0EhyP8sdtQE+%}uo{ z73tvqyD}~*ZYTpK|0367-P#J#An-Va5CO6jrd~=njhGTlnSLkSaq`tpx_6d4cqmP$ zYQN@A?GY@+_rhYsN-m68w?kQC{Vkd{=sK_sM+ z6gVLvuhNPjAl=>FAl;21t#k<-I_@0b?_2BM|GIar%i?f2@jSC<&&;0R&XN7lnS{); z6cU;ZMBCjgWnNQ%M?-e7z|*NGFeXCoaDM`+b(SM(^5nI~|42u@7(G6556=Dr9urj_ zLG-;$F->+Hz+Bvk>u?Kp^Kzs7d5PV9uA{4RGJPp8FP`|B`qTRyd-NEa>Pu^dS?D}p zpkMC}nc1~@d@%F;jtL??A!MPEmr%WL-Sj!O1y@cb2K=Ch4V|-5jaVC`m+(3Gcec2w z;C)aKPH$h|7gHOn%+s{8uD;%02%4On{3#k06{U7f`v5jdrNyWj(ZYHRCjwTx82Z;r z;)DA4MyTIiS)L>V@tVCKF^72ha<5B7=k?UKcE;c4Y`+n#&Q#hPn(dEkeN2fmi$kxj z|L={v!oW;=lnus*YMw7sZmY`9{q(u>*t25M5euk{%fKP~b(-#94NTT!-Mh{o&i(~< z(N6z(4EWKAqMaEv9Eaa)*SKv-?cw`Zmwx3eu~pc}9`0eM zTYz;$>jJlDfLwZDZEYQvlrFY7J@JE}Xi%M-muBNL+-StCPX6F^f&1&+pY7hhA=G%@|h zXgQNLts!(2L}hk6jicorU^_5zQ~$KJImaHEe>Clbq{;3`xQ9GaULZYp*i-G8mKaz? z=Z38C3Zj$7MOJw%oxT>18c~9{519(#ai4eO*r`O#vLAzLb<%U?Cy~G&A?x8JabzL= za*G0FDC-8Y;nOcFnuYyA_rl{l=2hA6?%pW#tGeS<4bmMlkX~#Xh&J|t@dDP69f8XaE2b;HA zOHtJT?Q<HZEpYH0JDT6sbg*fL*w0=k4>eH zqt3J+LCP7^47J1Wy{)YQ`aWK+&cplhEG=Ns$0MJ0Jr@SOiKD-2|slVXo_?xRo&KSpQ4QzvJ$hHl;| zZ`kEOu?p}mN4*o;e=pl!f?K#D95_g!<5#cP9Z9Yh16X~P4^Tf8)y^jxacNbP8~3t~ zz(qwJ=YN^z82P8m?0fMLz5J5uZ>unSAtHr=_pK1r^8vxMumOvvG7acS&U|!MPH7#& zlh&|LJNk*j{J`enNnJn$BbKI6VAc`+vB=BIKU9^QYvPU0kFMI{g!i}H6cff{znunu zx?a@D72EQ{MgkA3&}Mhg4d+@Fy=lpERk0Q2hC56A=_5aKs`rygLYFmUI;Wg=c(}NP zMa>`?)^HSzZK24v>-W<*-n_V$@mMwt$Z3J&`z@ZB8lIcGdP!yPex!v!$SyOH*4|Vp zDf698X*F^75pV84jVGBX9)LEWUk@#Q*3^^?=jgAfu`TF*qskJ)}bSzYQo+-sD& zB|=dEAdGjIy{VJ%ik#R_SpUe6(MtJq8n#hU3UrkO>!GB9C&J6aJl_)1&aTXpXPaQ+ zcfVCE)F(SsbWXwTHi#hhXfrm7`}j{;;%8b_uepMT*rf`Kl~vRsDANt_xWuySpQ5Cm ztBZx&Eg@^^&a?$GO}RJCCbdPVwxC!#qWwR&gD}u8ZZFl(1Vs^ZnSTu9Lxli}{Rum$ z*tBN`{~{xM}+pR`#Szv=ff^qd|; zo8rv()E+M5#sO4dC!-rq#co2L4ddE3T2y^uIgpl+#TsIusH=SA)uJ?Qu?>3Rw zpp;FV`46&N>WKf@w;f;*w;fhRH6EG;N9Dz)Z6#!uMj6G=eBi_&W*Yh>yRtH^%PA0U z_p3K;16{R8K7qjYG0`NYHnDtcRdsXPH7`kKBkR}ub9Nt^Ojj|jIQ!Bsn%YAEIpBFk zRT@R6xhp+J`EknNr88x~pFKVE%ZrxcWFx!rn=@-s*5jt&4w6OM-5~nd6E8svToxF|SFZ=TEt&zF7CZ_Mh)n2kGi5x$dTJX^eLqpMNn$nIvHy zM9`_;#0HO=Li;nq2lFyA>d(%zV&*jM#qse}c+#tu!$-GNx$6aUdC?&U@nMRzFqZoH zjb2ARul&`j`UJg2zs2zV#%@;_UI;(`O z9VF8U@5(o>Q#b}BAja2^5Z>q7nAWO@+&Ne$8(Tx(*cIb{$?PK+R~onQ&7bx5n%g^u zWicQmT%`BT^G?jF*KcZe)akA}9O*W%EB~xM*tqX`(X*x=jA6dm@(x0Rpci*Pjc_0Y zUAy%2>cga`#MdI@;y$2@22At0INTo}7m-LjVmy-WLOTCBZ84&rKC7BXA>N+e?4XOK z{l4y!>cSy&!IBY@mv7+tLa}R#aKYv~%=@tFQTyvtoYnkzcg5}yvOyT7r(31}Ix{P7 z)n6q(rbWqEmY-JDMTXKr`jt+Uyz$^(#FFSY8teCQ7D8Y5E>Q7PqThDh1}z59`cK|A z4IKua?>0ev_hj=HdMD^NI@Hsyk%NLYW~p|k^WY6(lYrq;=35)th{;@D1?0?Qej3De zei44fmP#J8=0L$nXPIqo@bg)F>oB1^mG{4ns*bOBkH6Zw?w^=*2(J8pDZ~%;Z?dqa{x1{v3j*rjgB)6Ittr z61?8-o7fTRiBL-GMs&B5h4o&rU6;#=$J5tMyQ7H@?MbLTuBy+E$kxP_rY20Ai!6hx z9rHcjc1P`nUN`kWp%Y8B7y1WNTK&9yy4snMRU^r`T4urE_g>Oyomx{M4Z zN{?rv&Md}qTjxLI*G-Ny10O`*!CU)>%40JGmt8|N=y2oN5&fbW!l%ASJg({C?y`i+ zwztiW(a*Bq&V*cqh9&z}t<&u5FAPOJFEu~JY1EA;Y_=Jn$IE{r(9sbi4lmT=_+s4% zZ>!3<{PypBV^V8o-&>#R!>#4EGY{9+itH|ut-Mp6 zcQrcpI3}#onmRZ%+8=b!m1reNuOlu}>5xuhRebWvG)A&f3(Tg7LbYK?FLCRb2k~s! z%73QlW;f{8vL9W~8v_lh?v#th@pP{%&mKKqE0(uE7jP_9BjX~dH4v;zI@(M~>qW1Kn(^$%o6(a5h-A{K5pC+CcLONrC zD!mKCvk0bt?n-JRKHiX#@Dw)NYyCKVMS`0jJ0>{sUi6b1^$QAZOk|nyh36-a)p0h5 zKG0V;GspSKMP4l<8b%iD-*0%FCJbfV7@)6waKz%H>q~w`$7Wt3cyC9cA?Nzz)S3+0 zZ%sM4kYQk0#n+f@?vJwiroHC>gXIah>{1e@sNO^UCB=C$_MZ=kl;|pgJWB z6O@^mXa0R?hy*xbxq+WzT~%GKcv2xcwIycWr( zI9sRqIEPffVu0Z?U0n#cCR?<>Pwi+F_nw|1Mo1nhC?sT$-0U(KH+VnKhBq!nW<(Js zY}y@m%zP}h4Zb37`Q`IS5qR}2--1;UL`Bu8J>=aqefsd^=OHhlnZu>_CC_F^TYMfI z-C6!-B$Hl7qV|)3^gDa2gS%fJ=Jaa>tuCxGS&w5ct#sc*g+|2XRWuDxvy%>+;t5;# zQ)A=eGK-4RP<1i1nuUkAAN=l{IM(`kj4Xf=SP#Toz45Jme-vR{!+FP}D84Vj#7vKV z@hhL@aQYB*_bOd({ATJKpUbK?hF0Zb;H}>~!`UXHNy$%4vf)p#jKQQ&h1G|@46qsK z9G*#IaBJG8H%Ts`pZR3|0Xbz54;=p}8U$2)M>QTz0k z1KBPQ1!P$gkACcP|NSb*j^nx+X6X&Mp~fhrubY04CMC4QI?9hWVNs z#@iRL7@W-lmRl9)x~ZlxTGCji6mbHDa`oZjkPtOuO+&mKk^vu)j$%SU+EILR)qUy# zvDSDPC1?)5y4M%>o|H;8|6`nB_OxJwF42PauaNPZejsJLnGdyPPnZMyM3nW5YjYAP;3n_KZc}##ySvayive) z^N3M_=I@otpV?BFZZwR~4#l7p8$HIv!}%tYQpCc&@cx+rt^7AF%1n@np#OD*`7_r+nLNS`}I@z zQkp*?eBWNAmPp^MGaP4W=u;&cq_n^9(L653tbDk#y+0r#?pHo@`9-RjMNsD+T>m*K zEW!V1Y(MQamNJLZ?RUB#xlH%6Jg|y()%SX@+J8zdTo5u2LdvKbrQ^+0s)AI3`pfijv2lpX;xtk%HDebA` z6tf%PuClv9*qh!+_4esZIm^OSu5Kz@`-?R8<_%+;%a6H34+qg z=VNX3g=uah9AZ>7H=FOmO)i+d<*1>FfM%|H?~Gz1TXulw42nd3ry#y&eyrVWvs-^> zWbfQjcm&&HqdK{fbc019B`Zk$jZuYW<0XS+#SE%hQZ`(}nhV|x31cF5G$ z4W=@OP>bP4XswUcdp$YC(tbak?d7chnATyTh$S#8q7`(+aOxHdqwIwzy_#f`z~)Ob z%JeJ=GdH(HZ!m?7PNa?ddO9n=IRu1tPoB?+xUWYpZfcM^<%5J?+{ZO4mr6bso?ll_)hO}cs#pe%pE5gc*mnoKA z?$7VFEkp`q*u2Jd*ielLe9Qsm8s9H|P`?OgW`KrSo!%K@PjAQwK}_%) z2IHo$uRk>jypyw&4#Ii6e{dY2C2p43!ybR}7z>kWkm}Aai#0ua_oReEl%Ob}_Yv&e z9UBMdo|qUd@cg&WH~L~g6s)Qx-cQPeu7EGUy{iik($vzj9C5Q%YBp|Tak@l!Gv9m3CnzAboNpH0?x^GiY4fC1*6yjAiCI2|p`DzmF6H>JCt9==6o<_I z7M2gNeBU)(`SaU-Z5?#z_$g}TgtQq!l9hdf4NZ$OVZJ7ljr`e;Rn18Fh|A^$y`zV1 z|08{)2J%cyhU>?w2v7OOn+WSDE3L69IsWsF=~5O})vql&+S(8V{xR2We1Bwcben-8 ze0|-vz^M8k!l1MzECbDCc?566KISxxFUAK~#D0=X<`5&6Cqd9Yh6yGkuxXWICHhxl zZ?U9!VZY(cRaN94wd|xC7H^9lav=kZu6vFVXh}C!eI#>zfwSY7hJFy`i9ZG(F#VyDy`;o=5aHvG5B3oHkSGRl= z)Vy&dkxKFD{voy@F{?P$Di|RMAk?cTe*#nTcLV-z4sO@MB<=pOZ3w1qGKWV4#Za;+5u-CNB^6aV@C~!`@VpZ zqKNBNj)R`2+J0Iq{Lq>%Q-WtU+prqElYaK*5vr99b}=~=_Ti7)udV9$k|`Yimw+gx z5NiLxz!m-SYyJX*8=6k_#E|{Qtv_8_pCdJOCa4M8hkh?x-Mu;`Mn8VqZ4p6{+27hu ztRroRyH%nI(Lz@6_Zd5T?x^TQ@VMW!03fJROw4x-Pn&E31lvY^`4Z%@HHluux&zna z<2MI=yh|%90rpcx7N9Pk&{RZtxPrI0NM{&b@Q~z1|10`*#Q^hWII%LWxh*RuHh}Ss z6bw9HUobvBN1@uqJ)S-_i0e3#Eidn|OGMVxNaQxfCeSfB&e0-%)(5wVdyO9-zHyUX zN)#WszBW?1*&+Fdz>CB|&U>~h66OBfD7)sx2LMhg-fq5aDEpkSfQaV z-IyC7a9&m^X+d`+6lepKwLIOd$6&UmB5tlBWN0W+#mB*pD-R6wK5DOq_icsy(Wj%{ z*;V4~(mHovalGGDsdf&9udgL2xu6NN_JRa$J6r+L|o zUuC5P#Am6xB1p!w_I9_4vN`p%&w+o-dQm!BR}TyNnV3j+w1`n=SmkhVVn!j0%A8G5 zLG(m)JvxmtJ>}RZtNi_-&$R1PlW?#-44{-9bk1!zi`ikK4 za{h0#BI%iAJHOpq`-26aK#+4p6~v@qTwuZwGXAxc^3Jc^%6iKW+;eq!%c^!|ttfaE z*o71W`ULt`dL;&DE9oo9hOVg=tpOcnKeKDTXH{jG*(1 zyPo8`Lw=pY8(1Q>?^j>EUT+M{D6eC3CrY`#m+Hkgn$WZFcwGm8Z^!A^(Gue45f@9ma$xoplic5X>|r;G+K zO)coda?fb;%?wS#xNK~`KRKob!zl;mvfA!B4Z3rxj0)>mEj3NBj<;H_eN}i7RMA5QWjM>o~g9+7)&bAb~EvkQ`DA!u~45w0) zd=qUUpOz(Oip(P!Jjzg8);9W#ElZoqe`Pw9*>=;8c&WTc?0r2qRRC}uVVuno|D`dMX}X@(Z)$U zr=c+fiP@j~2>XkTffh>i`ACCH--R9X>nVEFf&JYHb;P^#Ggqg1YG>B_eAcK;T!j2W=VG_Fh|DQgSu1h(QzuXaTO;Q3*!(h( zEzK$YIgS|wF+`xx2)GUR6JAVlhuu`+)aZ+YV4$*pP1`HvE* zKHkjDMX?4`%?QL7_{}x7q+iVpyxkSE#l`P@Bb#-rJoXVJ2jQRoQLNnJ-ACa#%{_fr z%xi7Gp1d`NmxO`QBD|olD#gSEiTK{Zz`#HiHG>*t6asPxV6@B0Eu4K*hhSVgKY9m- zh>+X+DyHcM*^7;_Xg@x*y}i&Z<#OFHxwr6Psh#hx?f8jCZ;Y2^t!Qy4A>KcXEf@I< zx<+2gXLLLd5$)gu?mJd~O-r)jVW%m@^vh*b*Y{|T78QMDlHT;Dtdy@0N!gZApDBk> z7_9yV*n7llctI}R;(464uY|S4`{S0E_OP~d{U^67N+aPbWzuS`-waa1IvDnv1yM9^ zreQi`)fs*CTna`oFm2nd=#+ot=bp+_4X*W0;lxw9*R0V+>A;fc40(z_{H{(MUHAa4+D`^TXfPRTCBg2W0t?*pT}>;SJHm)u?SSEEys<&f;cE>1i0k3gzCsu zOyMgmGKLYh&yK7>-^Io`F(-~W^%t<5cZ0wEMG5q`2X?zNI@9v=AG=xW%ov){J&sca z`C=8PC9(i?RsK_wdQPk&b@Ug5X^@7SOCF~74jP;^cmBfUeA8>p ziF8p#-`dtwX`oo38TVrYVf5-$N<|`D9Miq0^1xHM{_0G?RNzA!hxwsQ?Hm=o9e=aV zY=j$V_SR!)9~Br}sPU=f*7iJPX40sqX??}v`8dDW?1{=ztBpO(zeG^B&Py8D0R7yU z7~R9x!J9rk6X!Vv0BaTKu_C<8ukcb{+l^(4m8X@Pf3{c}V`#_UyQ; zygg8+OP6u&`}?sU7)@q{ZliB&@6{tJZ;Dek%BiW3b6V{jM52rPLBUo-X<)DH{h9K^ zf#TAR4KmMv=V%wvDz8I|GOx3g>#(w;Tqq5v(iBj01>b`EP}%Ly1v3|8Li?M`4BlQ> zI&{g;VMM^VIAVP?`qCopwPiK#I->wJSK7<*=r#MWHr&v7UZ=kPuD;pg=g+?uq6ped z_3KpzdoGQa7MgC)n;>o%^Xyt|X}xIIJT#&aG>kl}Wwu3fdNMwA7-ot)8%XTF)t5a1 zd+)v{%{r}G(kIsPFP|lj&~(Pb*=LHbP9H&Zz^!Q&*iKR1d1Ecb+ty|n=lIY1h&GOi zGOsDK$^BTrSnWK()%9~RnF?b1M-)O5A21gBIK6<`+i#_};_rh(IsWphu<`0uQ2`KLGWk}75X^y=-kcFk{`NmG@qf2EPj-+7OG!DkUJKT1 zZ1V9tuWd`$@^-pJWm%*^T@zlGj^F*4U}VuBDgWtC@_HLYsDFl99D1HTXnm7sbwG~pj^K)#xog3^f?o*qn(f7MLymr4>2zlmO zTVMRy7H+U{TO`r#R<@hdhgCf2f&9t$p`4C-QQv=8TS8Y8;r2@GCJtKR;S8YlXJ{>=GuD>m9$X!dL|}qB}vQu!J&6=>MVZeSKu% zug1V*ba}I*++6!YALrX(ZBScYUH6{*Aa}vsgS8lqm7p=v>PM4P6tCHwKgOk0u@g>A zjkg**NV2a9s9mr3Fo)7FJ&b2eF*SA=a*uNU1(^o~tj9js_m3c9f~gq~{R-NIZ{F}G zlBE=xEi5f9iM;uR517fOfY#{zf2bStr<3RKCj<5C!84rE&q4rJXT{|HFg~J*KWVn? z3I`-&>OFtn3Uox57$GUy>zk@c4JD<1i=GJNs2O|GLMNWIW# z3DD*3U8Tz}W1p0sS@r~&Q(%WOqFuXc%f(hM#g2;8+WkW#>?(^vi{@X>Om^t|n^V-Eo5lT$+Hu4t=yO}`r@1F8YM`X9eg`<`*=lNP zAZXg%>sZyexhU_3!s}p!0cTU7g@A(91%zA6>FVB@EHnz{ZN4Ozl$5OT+@VFk1o}Ey z8kRq6Tu-;lhx*^bm`&&5>|EWlA6~q}NM8l!9Y&l7I(Awn|D(0qjg=^ejBl=Q8<-tl zJI_`PFYgMgi!kG!ISU}okLn($Cb@E7<3f1ZFPDk}O^ zT|FGQ9v{B4wkDKL{Nb_tlV-H}NAyU#Dk@Rpt>8yX5C0dI74;adES;gZB`&RiX_YB) zGvKzyv(K6tus4{SYIH}pWo8VMOSrX|S%N;5Jx2TGgm9P!_rfBwZ|Jp0hEAL4fe^$d z8Jc8&SQorVMqm0$C&nPG_0x}}&JsUbUP|3uW+@?@9EM?X3BOZK^NzUp>LDQ^TinUC zHCU38(k_p*$re$(kukb@0)*4G7?`BKdKMjF^WaDuQ<)E&+0jdM{ znU`64jiiM*5uZrX8jf}Jo40fAN3hV{<>o)G1BW<0@r0p@c!eJRVSF<70v?Z|2k>+T zq$MPbSeUwR_eX=~BM#^U$^vU$TwP_XtTKDFbSLhcG>QANBI%*c1V-~CC%;60X`Pq@Wwn?CDn1L7Nu;ris?TFXu1PeOz)#f%p#rvi5|+U*G02* zj6UQw$j-g1NTfoVOwEW6s?tQ;o!B!va_z>hPBo&vOFTzDBP4H*{qh3H-?Z|_x zFs_s!N7(F9SI&0TBwN8P&g*aFG!MIfzX@M^`)=Z-)MI7k*I(BmztqVAbF}nrvc~}` zhEh6U-r|8bfO}0o5JP78wSNK4yJWAqvIhUUw^f%5bUJGX%|nMzP2XK*tk^5~XPybJ zKk}v!ZraoGm!$Ysb_@mo)*vW|P;0sFkGOZ}R*8B@YW;ne$mP786I=JBD~(qTh@~{B zX0X#&>$!eov~Vju4+ z1p)~)m*13ge6Mngk9T7`Xk&STQ9LNUyixbtLRK3gHA+!q@RP82_Jj|>mD9Ia##Wr( zm6Z`uG{6P>sH1swbgdmusD+Y*|3q3lhA4lL_(CDIk0gp>&*FM+q3A3w9jD3)q*q#2 zR;QhrCRz!giLR^T;J1m%1V-8ECV@ZlGv8(Ek_uPentBUr!y1dYhLfB1P-c0& zx5mHXlWN8>>E+VqOqy<`=|}AXf%WM8HLp8$Ll4i87UQUl^Se6y$gocq?OH7TNOi0V zRNv4@DeB5g4t8g0!yb>Fo8gO-O}Hmgt?{3dS|;v;yW&q9PviTG-&&ji_-?^1kRYlQ ztLz&va)&-XJuJCYp))k{kyJr9zqgzsXywDL7C(#}X|SbMNeZ@wu5S|=rE0odoukTo zyBFkO4zL^g=Vtr|V-vS&m#D#ZtN>u7)0LQ6_ds6DE=!Q7$uCuE5_u%{JsBf+MUgx9 zUb%IW;sEym$d}_7kMX$KS}7pWqP&j!cQ4JpVeOaeGu_U~lZ6rBcC&4op0fopl|Tt1 z-nNtTM!WbP1x-)Ah2MC>Kk!}rS2W*qpqBF5Qi$Wv zkGj^I;ST!c=oJIaLo;`tpc{RD+HqVOU`P0FHJkP7Rtr1b)=62W~18c4-=L{Tg4!}kE0oq z^~vp>5sbZh!^NdMCC0xsMHj-6LB)95S6b3nHyNj8M&*99aXofbEm2y0*l@|jNC$2Q zG3`G2-h+7eGvrpn{TrNvniEnyh_9GQ0km)B5ddi#N#s#HZec~1nhChU`A|>RSEuKZ zD;s{p1Er1khOe?OG)@-Y%xLcwpgb_!m_mYjsO;yEw><)PIn`l$uwgtnr+;YyZ zzRl(g^*tYn*WYhRtsE6~ea`6n%-i?7Jz43lRd_7q`!!f9YMS$`Oah>YH-*<$#8=x( z8uyPMPpKexrO*tms=YY~@NUf*v(9hZ@CWRXa1_X0$wgG4a(@fgE^!n_uSgH+-~~4RKBKFU!p z7i?*3d)oTrhr#;KTK?&-cvk(Gl*dmP8IiD1L75_)Y~9p;_?2A$zVvb&#~%v5b}S7p z+X$0OBG=i;AI=2EA)QtaKTB?a-`S^9V1W!)F779*g^?%64MF~#W!GNA+ ze)`<=>Zz-1>BLbVxp%5AgPwR#E!mT*TT^3AkIqGeRh+S;Y+4GvYg>p-IIo4xB6MGN zW&cJJAu+$6rIA|%%wXCQK;Dt(@h;;0cveRxs3?~4Zr<-8)C9W$9 z7Au`$o_t6raQr~@vj=!NxOyI-VLM9itGeDxXz|ws`(QMC$rh)S3uty_@a(RHDoo9> zIsT6{DtKsd*Bb?6$Y^5KHtp^h7=42+$M||&10DK5%67F{;QRvH8-QbUc^+i1t+BDO zrh&mjbz!HU>=HMZheBJKt$lqV^`1NN!-Yn|sdaVnSWHO?g6ot#Yej7P{v_V1b!Lvv z1d>A-Q(+O9^-Tv@c+hX7ECQa0^N)RrO?XVRxPg#&snbR8ty)`Q8>*?VW~OK<0-S9r z&cohFfO0XR5ov+!0`KQ_KVxw5b3V${du+W2j+Brnb8wJA5YQU{oDQH#&tzB0$-l9T zTEw?8t$~}|rvKP!i_JB*0cPv{q+IgYU}C!vMa6Rqdv}bip61GFkEp-nD9i>c#68_# zl9h@5At+C=Jz1DQjbU2vIk3FiWzI@{mxvEjRfT`xl6tV2`!*quPFhZhs`2W^1VNW% zv*QRaBYG};hP#dF1?Qrm3x~n+BK%l7MvirGV;KA++3% z;&nN7S?P~J3v5PE4xwN}@HU02ii+&BXM_z64Fyh;iEY1)4QX9YOYG+Fc5!iV$$lpy z!REdW5Ba*3dTifK8~GpYcrZaME^hAMdHMOZo11n;AUV|-WU`2W^xnaNfw04agJp2P zn%%j2H;}Bl26WCY)Yeo4oq#Q=uAO(5}M9}rCB}v4AfaT@1v@{VTssKz5 zii)5!KCz%aQMWk86_jn}%=pazwCZtXJxkhDTW&skPhAXTqoAh>Yz0VPe{UZTOz7vO z=R2mWgujb1`H1-MfiwPS3tR&A1lGb@gKz$)(CLbtl75bd-T#gCfbv4h`~5%|^EXo- z7um^~45FmJS2yQwX<<(Xx*oXvZz~l46VpP@f%yQWDc&Xj8~2YN9Qc1X^Wg`7&%kgc zIBY#^DAafd5~1($*<;uIdSH6|NBnYZRU(V8KYST0hWB^y%rkT%sI3^a1M-jAVaSim zPqE%{s{+^d@IQFT-M2$xdO%*YW}TU(K3$ho&#H~$AB_01O4rNJM%8_8Q%$^54+Ld4 zz%g>9*sZoD`0hO_4F!5$M}`%uP1h@4r`fz~iwEfYsF*HW4XJmPgXiY+MT%NXr2o#! z6b>BPM-v2EnG#;bM&EosY2Wms=`#4Y%2_IoJo|K=Ns_quM_|gsOt)72ql|79<5wB% zr+6DZgr>g;W_B%W2@Zf_`gipM2z#i+tx|M5iy^-Jwx~#UIaCXhtfy8Me$;j+m1{Q1 z*Qs4jT`qSUaEy(663ONWmT1NIS?cbmKB-IXT0JRwI}`HNGaX-ed9qtWsoDVaxK={J zDt;#1f=GNaLWgeLYjrvO8{Za6#shr}UR7((`+Xy!eYaOv_vnU6u&Q=DCtDzF>osQI zW9@$RA-OtcEJ8IF;{$Tu{4i2FwSGcLffhy#jB9))b@?|`8t%2v1L^LylYYvVb1EXQ zjaLu>J$epH|>~a#i?k z!>Yx_oxvrA9;|JZ0{?1pHg$^XCl3J@sp2gqbTC-1Vhh3}!IA41Y7jwZ?v^n4gh-?5 z>PIj;9A;U5K=t>ZRcE#h-(GXE8(_&{IF+O)AgmZG8`=3l^O@K0IQ_Arx?j2sRJRpJg6`wHx z)RGs2{n#eeuMafnwkAbZ^|lWe9{!MRGV*L=EW(II>Q85u-1W|x#lhFxemM`%UmRi$ zr<}c>RXC&uGb!*YrTU+etc>l?c{JJ6?SYI^gzt>}GC9 zW*bf}3Sa}X;)lChM=M~81IX|$7lk~NKXFYz!f=Yt3%^O0zqZ>-yh_(B{8>~L>eznV z$6M$85uEmmZGq#?+UmFe!T5QT6|Lmk2iqsU5Z<`F85zICzE8!ApPnc>yO=?>zAL zkJPTY@u0%;1@f9ZS!)P~Ii4Zzg~!BT%-=YqGLrwqHTh{YIk_duQk+6vAEBpGrLX0j z{NVXD#K0`N!;=;6DWl{!<=w*~GS35Sae&){thCRs7;XPI1l8 z4PU6tQ5qjfwN+Kz5E=II*t;c{D<5ehWiO8mX~zSuq%*0;8FG5Vz@$|#TrBZ+#i ziO|gK*LO#BEtreW#Xr#Oz>kh4FrU*|uApBQS>N5;a4S2&i^w}>DKmqZ(=U?qpDaha z)}H!+B4>-aa}1D>IsEjgpW88~1IIxNW%S2c^ig8RVb8IabxHh^-L4&T7r}0B5wIEK z>*LWjxsF+aO{rpGf7MKsKn&@7WzaeOx??fcT(z{2umDbM^Dbo3v{Uu~^t65Z>LLAe zm5_5X)V7fZme#CzRAawRzDQ7gywee}T7~8?%<>b)o!c?@UcSfkzk}$K2f*^VMO^Jr z9}nur?+1m66jxivcp>O5_S8ec7Sg-t z0n2CxPj>ynA0{(rwcTu5m1IP7%a7U-`FH;>)y~0PoSVg&(0q`o`Wa#Kg{r9%)zb}x zYCIe3gVquZ+kA$cx(h->2l~TuDs(xcw2iSGPoz3S(W+PkYc42#B_m*xb58=WXem;l u7uv&VdOen=XoRkCN2*5k{|*U$-C*E}3%fFIYPmz;M_FE7uIQ<`|NjNLP#B>A literal 33669 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 VnUQ;IkpVsd$Ve(ml!+Sz{y(ZW?oa># From a73ca4be464d5b41f57290155a4966cfcb48a966 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 12:29:18 -0700 Subject: [PATCH 024/173] scope creep lmao --- code/__DEFINES/spans.dm | 114 ++++++++++++++ code/__DEFINES/subsystems.dm | 6 + code/datums/diseases/advance/symptoms/heal.dm | 4 +- code/modules/mob/living/carbon/life.dm | 22 +-- code/modules/movespeed/modifiers/reagents.dm | 34 ++++- code/modules/reagents/chemistry/holder.dm | 142 +++++++++++------- .../chemistry/reagents/drug_reagents.dm | 61 ++++---- code/modules/surgery/bodyparts/_bodyparts.dm | 2 +- code/modules/surgery/organs/liver.dm | 4 +- code/modules/surgery/organs/organ_internal.dm | 8 +- code/modules/unit_tests/metabolizing.dm | 2 +- tgstation.dme | 1 + 12 files changed, 281 insertions(+), 119 deletions(-) create mode 100644 code/__DEFINES/spans.dm diff --git a/code/__DEFINES/spans.dm b/code/__DEFINES/spans.dm new file mode 100644 index 0000000000..45eae3ce76 --- /dev/null +++ b/code/__DEFINES/spans.dm @@ -0,0 +1,114 @@ +// Sorted alphabetically +#define span_abductor(str) ("" + str + "") +#define span_admin(str) ("" + str + "") +#define span_adminhelp(str) ("" + str + "") +#define span_adminnotice(str) ("" + str + "") +#define span_adminobserverooc(str) ("" + str + "") +#define span_adminooc(str) ("" + str + "") +#define span_adminsay(str) ("" + str + "") +#define span_aiprivradio(str) ("" + str + "") +#define span_alert(str) ("" + str + "") +#define span_alertalien(str) ("" + str + "") +#define span_alertsyndie(str) ("" + str + "") +#define span_alertwarning(str) ("" + str + "") +#define span_alien(str) ("" + str + "") +#define span_announce(str) ("" + str + "") +#define span_big(str) ("" + str + "") +#define span_bigicon(str) ("" + str + "") +#define span_binarysay(str) ("" + str + "") +#define span_blue(str) ("" + str + "") +#define span_blueteamradio(str) ("" + str + "") +#define span_bold(str) ("" + str + "") +#define span_boldannounce(str) ("" + str + "") +#define span_boldnotice(str) ("" + str + "") +#define span_boldwarning(str) ("" + str + "") +#define span_centcomradio(str) ("" + str + "") +#define span_changeling(str) ("" + str + "") +#define span_clown(str) ("" + str + "") +#define span_colossus(str) ("" + str + "") +#define span_command_headset(str) ("" + str + "") +#define span_comradio(str) ("" + str + "") +#define span_cult(str) ("" + str + "") +#define span_cultbold(str) ("" + str + "") +#define span_cultboldtalic(str) ("" + str + "") +#define span_cultitalic(str) ("" + str + "") +#define span_cultlarge(str) ("" + str + "") +#define span_danger(str) ("" + str + "") +#define span_deadsay(str) ("" + str + "") +#define span_deconversion_message(str) ("" + str + "") +#define span_drone(str) ("" + str + "") +#define span_engradio(str) ("" + str + "") +#define span_extremelybig(str) ("" + str + "") +#define span_ghostalert(str) ("" + str + "") +#define span_green(str) ("" + str + "") +#define span_greenannounce(str) ("" + str + "") +#define span_greenteamradio(str) ("" + str + "") +#define span_greentext(str) ("" + str + "") +#define span_hear(str) ("" + str + "") +#define span_hidden(str) ("") +#define span_hierophant(str) ("" + str + "") +#define span_hierophant_warning(str) ("" + str + "") +#define span_highlight(str) ("" + str + "") +#define span_his_grace(str) ("" + str + "") +#define span_holoparasite(str) ("" + str + "") +#define span_hypnophrase(str) ("" + str + "") +#define span_icon(str) ("" + str + "") +#define span_info(str) ("" + str + "") +#define span_interface(str) ("" + str + "") +#define span_looc(str) ("" + str + "") +#define span_medal(str) ("" + str + "") +#define span_medradio(str) ("" + str + "") +#define span_memo(str) ("" + str + "") +#define span_memoedit(str) ("" + str + "") +#define span_mind_control(str) ("" + str + "") +#define span_minorannounce(str) ("" + str + "") +#define span_monkey(str) ("" + str + "") +#define span_monkeyhive(str) ("" + str + "") +#define span_monkeylead(str) ("" + str + "") +#define span_name(str) ("" + str + "") +#define span_narsie(str) ("" + str + "") +#define span_narsiesmall(str) ("" + str + "") +#define span_nicegreen(str) ("" + str + "") +#define span_notice(str) ("" + str + "") +#define span_noticealien(str) ("" + str + "") +#define span_ooc(str) ("" + str + "") +#define span_papyrus(str) ("" + str + "") +#define span_phobia(str) ("" + str + "") +#define span_prefix(str) ("" + str + "") +#define span_purple(str) ("" + str + "") +#define span_radio(str) ("" + str + "") +#define span_reallybig(str) ("" + str + "") +#define span_red(str) ("" + str + "") +#define span_redteamradio(str) ("" + str + "") +#define span_redtext(str) ("" + str + "") +#define span_resonate(str) ("" + str + "") +#define span_revenbignotice(str) ("" + str + "") +#define span_revenboldnotice(str) ("" + str + "") +#define span_revendanger(str) ("" + str + "") +#define span_revenminor(str) ("" + str + "") +#define span_revennotice(str) ("" + str + "") +#define span_revenwarning(str) ("" + str + "") +#define span_robot(str) ("" + str + "") +#define span_rose(str) ("" + str + "") +#define span_sans(str) ("" + str + "") +#define span_sciradio(str) ("" + str + "") +#define span_secradio(str) ("" + str + "") +#define span_servradio(str) ("" + str + "") +#define span_singing(str) ("" + str + "") +#define span_slime(str) ("" + str + "") +#define span_small(str) ("" + str + "") +#define span_smallnotice(str) ("" + str + "") +#define span_smallnoticeital(str) ("" + str + "") +#define span_spider(str) ("" + str + "") +#define span_suicide(str) ("" + str + "") +#define span_suppradio(str) ("" + str + "") +#define span_swarmer(str) ("" + str + "") +#define span_syndradio(str) ("" + str + "") +#define span_tape_recorder(str) ("" + str + "") +#define span_tinynotice(str) ("" + str + "") +#define span_tinynoticeital(str) ("" + str + "") +#define span_unconscious(str) ("" + str + "") +#define span_userdanger(str) ("" + str + "") +#define span_warning(str) ("" + str + "") +#define span_yell(str) ("" + str + "") +#define span_yellowteamradio(str) ("" + str + "") diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index fb0ec3d39c..30899c0ca2 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -215,6 +215,12 @@ #define SSAIR_ATMOSMACHINERY_AIR 12 #define SSAIR_DEFERRED_AIRS 13 +// Subsystem delta times or tickrates, in seconds. I.e, how many seconds in between each process() call for objects being processed by that subsystem. +// Only use these defines if you want to access some other objects processing delta_time, otherwise use the delta_time that is sent as a parameter to process() +#define SSFLUIDS_DT (SSfluids.wait/10) +#define SSMACHINES_DT (SSmachines.wait/10) +#define SSMOBS_DT (SSmobs.wait/10) +#define SSOBJ_DT (SSobj.wait/10) //! ## Overlays subsystem diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 2439ef4d53..0b4b3ef2dd 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -159,9 +159,9 @@ /datum/symptom/heal/metabolism/Heal(mob/living/carbon/C, datum/disease/advance/A, actual_power) if(!istype(C)) return - C.reagents.metabolize(C, can_overdose=TRUE) //this works even without a liver; it's intentional since the virus is metabolizing by itself + C.reagents.metabolize(C, SSMOBS_DT, 0, can_overdose=TRUE) //this works even without a liver; it's intentional since the virus is metabolizing by itself if(triple_metabolism) - C.reagents.metabolize(C, can_overdose=TRUE) + C.reagents.metabolize(C, SSMOBS_DT, 0, can_overdose=TRUE) C.overeatduration = max(C.overeatduration - 2, 0) var/lost_nutrition = 9 - (reduced_hunger * 5) C.adjust_nutrition(-lost_nutrition * HUNGER_FACTOR) //Hunger depletes at 10x the normal speed diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 0b12f3884e..f42661ca47 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -1,6 +1,6 @@ /mob/living/carbon/BiologicalLife(seconds, times_fired) //Reagent processing needs to come before breathing, to prevent edge cases. - handle_organs() + handle_organs(seconds, times_fired) . = ..() // if . is false, we are dead. if(stat == DEAD) stop_sound_channel(CHANNEL_HEARTBEAT) @@ -23,7 +23,7 @@ handle_brain_damage() if(stat != DEAD) - handle_liver() + handle_liver(seconds, times_fired) if(stat != DEAD) handle_corruption() @@ -378,25 +378,25 @@ /mob/living/carbon/proc/handle_blood() return -/mob/living/carbon/proc/handle_bodyparts() +/mob/living/carbon/proc/handle_bodyparts(seconds, times_fired) for(var/I in bodyparts) var/obj/item/bodypart/BP = I if(BP.needs_processing) - . |= BP.on_life() + . |= BP.on_life(seconds, times_fired) -/mob/living/carbon/proc/handle_organs() +/mob/living/carbon/proc/handle_organs(seconds, times_fired) if(stat != DEAD) for(var/V in internal_organs) var/obj/item/organ/O = V if(O) - O.on_life() + O.on_life(seconds, times_fired) else if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || reagents.has_reagent(/datum/reagent/preservahyde, 1)) // No organ decay if the body contains formaldehyde. Or preservahyde. return for(var/V in internal_organs) var/obj/item/organ/O = V if(O) - O.on_death() //Needed so organs decay while inside the body. + O.on_death(seconds, times_fired) //Needed so organs decay while inside the body. /mob/living/carbon/handle_diseases() for(var/thing in diseases) @@ -687,16 +687,16 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put //LIVER// ///////// -/mob/living/carbon/proc/handle_liver() +/mob/living/carbon/proc/handle_liver(seconds, times_fired) var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) if((!dna && !liver) || (NOLIVER in dna.species.species_traits)) return if(!liver || liver.organ_flags & ORGAN_FAILING) - liver_failure() + liver_failure(seconds, times_fired) -/mob/living/carbon/proc/liver_failure() +/mob/living/carbon/proc/liver_failure(seconds, times_fired) reagents.end_metabolization(src, keep_liverless = TRUE) //Stops trait-based effects on reagents, to prevent permanent buffs - reagents.metabolize(src, can_overdose=FALSE, liverless = TRUE) + reagents.metabolize(src, seconds, times_fired, can_overdose=FALSE, liverless = TRUE) if(HAS_TRAIT(src, TRAIT_STABLELIVER)) return adjustToxLoss(4, TRUE, TRUE) diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm index 1a03e8a602..b7108582d9 100644 --- a/code/modules/movespeed/modifiers/reagents.dm +++ b/code/modules/movespeed/modifiers/reagents.dm @@ -2,17 +2,37 @@ blacklisted_movetypes = (FLYING|FLOATING) /datum/movespeed_modifier/reagent/stimulants + multiplicative_slowdown = -0.55 + +/datum/movespeed_modifier/reagent/ephedrine multiplicative_slowdown = -0.5 +/datum/movespeed_modifier/reagent/pepperspray + multiplicative_slowdown = 0.25 + +/datum/movespeed_modifier/reagent/monkey_energy + multiplicative_slowdown = -0.35 + /datum/movespeed_modifier/reagent/changelinghaste - multiplicative_slowdown = -2 + multiplicative_slowdown = -0.8 -/datum/movespeed_modifier/reagent/skooma - multiplicative_slowdown = -1 +/datum/movespeed_modifier/reagent/methamphetamine + multiplicative_slowdown = -0.65 /datum/movespeed_modifier/reagent/nitryl - multiplicative_slowdown = -1 + multiplicative_slowdown = -0.65 -/datum/movespeed_modifier/reagent/meth - multiplicative_slowdown = -0.5 - absolute_max_tiles_per_second = 11 +/datum/movespeed_modifier/reagent/freon + multiplicative_slowdown = 1.6 + +/datum/movespeed_modifier/reagent/halon + multiplicative_slowdown = 1.8 + +/datum/movespeed_modifier/reagent/lenturi + multiplicative_slowdown = 1.5 + +/datum/movespeed_modifier/reagent/nuka_cola + multiplicative_slowdown = -0.35 + +/datum/movespeed_modifier/reagent/nooartrium + multiplicative_slowdown = 2 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index fd6204a8e3..f9af19512c 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -280,45 +280,23 @@ R.handle_reactions() return amount -/datum/reagents/proc/metabolize(mob/living/carbon/C, can_overdose = FALSE, liverless = FALSE) +/** + * Triggers metabolizing for all the reagents in this holder + * + * Arguments: + * * mob/living/carbon/carbon - The mob to metabolize in, if null it uses [/datum/reagents/var/my_atom] + * * delta_time - the time in server seconds between proc calls (when performing normally it will be 2) + * * times_fired - the number of times the owner's life() tick has been called aka The number of times SSmobs has fired + * * can_overdose - Allows overdosing + * * liverless - Stops reagents that aren't set as [/datum/reagent/var/self_consuming] from metabolizing + */ +/datum/reagents/proc/metabolize(mob/living/carbon/owner, delta_time, times_fired, can_overdose = FALSE, liverless = FALSE) var/list/cached_reagents = reagent_list - var/list/cached_addictions = addiction_list - if(C) - expose_temperature(C.bodytemperature, 0.25) - var/need_mob_update = 0 - for(var/reagent in cached_reagents) - var/datum/reagent/R = reagent - if(QDELETED(R.holder)) - continue - if(liverless && !R.self_consuming) //need to be metabolized - continue - if(!C) - C = R.holder.my_atom - if(!R.metabolizing) - R.metabolizing = TRUE - R.on_mob_metabolize(C) - if(C && R) - if(C.reagent_check(R) != 1) - if(can_overdose) - if(R.overdose_threshold) - if(R.volume > R.overdose_threshold && !R.overdosed) - R.overdosed = 1 - var/turf/CT = get_turf(C) - log_reagent("OVERDOSE START: [key_name(C)] at [AREACOORD(CT)] started overdosing on [R.volume] units of [R].") - need_mob_update += R.overdose_start(C) - if(R.addiction_threshold) - if(R.volume > R.addiction_threshold && !is_type_in_list(R, cached_addictions)) - var/datum/reagent/new_reagent = new R.type() - cached_addictions.Add(new_reagent) - if(R.overdosed) - need_mob_update += R.overdose_process(C) - if(is_type_in_list(R,cached_addictions)) - for(var/addiction in cached_addictions) - var/datum/reagent/A = addiction - if(istype(R, A)) - A.addiction_stage = -15 // you're satisfied for a good while. - need_mob_update += R.on_mob_life(C) - + if(owner) + expose_temperature(owner.bodytemperature, 0.25) + var/need_mob_update = FALSE + for(var/datum/reagent/reagent as anything in cached_reagents) + need_mob_update += metabolize_reagent(owner, reagent, delta_time, times_fired, can_overdose, liverless) if(can_overdose) if(addiction_tick == 6) addiction_tick = 1 @@ -339,12 +317,77 @@ else SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") addiction_tick++ - if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. - C.updatehealth() - C.update_mobility() - C.update_stamina() + if(owner && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. + owner.updatehealth() + owner.update_mobility + owner.update_stamina() update_total() +/* + * Metabolises a single reagent for a target owner carbon mob. See above. + * + * Arguments: + * * mob/living/carbon/owner - The mob to metabolize in, if null it uses [/datum/reagents/var/my_atom] + * * delta_time - the time in server seconds between proc calls (when performing normally it will be 2) + * * times_fired - the number of times the owner's life() tick has been called aka The number of times SSmobs has fired + * * can_overdose - Allows overdosing + * * liverless - Stops reagents that aren't set as [/datum/reagent/var/self_consuming] from metabolizing + */ +/datum/reagents/proc/metabolize_reagent(mob/living/carbon/owner, datum/reagent/reagent, delta_time, times_fired, can_overdose = FALSE, liverless = FALSE) + var/need_mob_update = FALSE + if(QDELETED(reagent.holder)) + return FALSE + + if(!owner) + owner = reagent.holder.my_atom + + if(owner && reagent) + if(!owner.reagent_check(reagent, delta_time, times_fired) != TRUE) + return + if(liverless && !reagent.self_consuming) //need to be metabolized + return + if(!reagent.metabolizing) + reagent.metabolizing = TRUE + reagent.on_mob_metabolize(owner) + if(can_overdose) + if(reagent.overdose_threshold) + if(reagent.volume >= reagent.overdose_threshold && !reagent.overdosed) + reagent.overdosed = TRUE + need_mob_update += reagent.overdose_start(owner) + log_game("[key_name(owner)] has started overdosing on [reagent.name] at [reagent.volume] units.") + + // for(var/addiction in reagent.addiction_types) + // owner.mind?.add_addiction_points(addiction, reagent.addiction_types[addiction] * REAGENTS_METABOLISM) + if(R.addiction_threshold) + if(R.volume > R.addiction_threshold && !is_type_in_list(R, cached_addictions)) + var/datum/reagent/new_reagent = new R.type() + cached_addictions.Add(new_reagent) + if(is_type_in_list(R,cached_addictions)) + for(var/addiction in cached_addictions) + var/datum/reagent/A = addiction + if(istype(R, A)) + A.addiction_stage = -15 // you're satisfied for a good while. + + if(reagent.overdosed) + need_mob_update += reagent.overdose_process(owner, delta_time, times_fired) + + need_mob_update += reagent.on_mob_life(owner, delta_time, times_fired) + return need_mob_update + +/// Signals that metabolization has stopped, triggering the end of trait-based effects +/datum/reagents/proc/end_metabolization(mob/living/carbon/C, keep_liverless = TRUE) + var/list/cached_reagents = reagent_list + for(var/datum/reagent/reagent as anything in cached_reagents) + if(QDELETED(reagent.holder)) + continue + if(keep_liverless && reagent.self_consuming) //Will keep working without a liver + continue + if(!C) + C = reagent.holder.my_atom + if(reagent.metabolizing) + reagent.metabolizing = FALSE + reagent.on_mob_end_metabolize(C) + /datum/reagents/proc/remove_addiction(datum/reagent/R) to_chat(my_atom, "You feel like you've gotten over your need for [R.name].") SEND_SIGNAL(my_atom, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") @@ -354,21 +397,6 @@ addiction_list.Remove(R) qdel(R) -//Signals that metabolization has stopped, triggering the end of trait-based effects -/datum/reagents/proc/end_metabolization(mob/living/carbon/C, keep_liverless = TRUE) - var/list/cached_reagents = reagent_list - for(var/reagent in cached_reagents) - var/datum/reagent/R = reagent - if(QDELETED(R.holder)) - continue - if(keep_liverless && R.self_consuming) //Will keep working without a liver - continue - if(!C) - C = R.holder.my_atom - if(R.metabolizing) - R.metabolizing = FALSE - R.on_mob_end_metabolize(C) - /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 96985514b5..485ef9ce82 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -164,62 +164,55 @@ /datum/reagent/drug/methamphetamine name = "Methamphetamine" - description = "Reduces stun times by about 300%, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage." + description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage." reagent_state = LIQUID color = "#FAFAFA" overdose_threshold = 20 - addiction_threshold = 10 metabolization_rate = 0.75 * REAGENTS_METABOLISM - var/brain_damage = TRUE - var/jitter = TRUE - var/confusion = TRUE - pH = 5 + ph = 5 + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + addiction_threshold = 10 value = REAGENT_VALUE_UNCOMMON /datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_IGNOREDAMAGESLOWDOWN, type) - L.update_movespeed() - ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type) L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) /datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_IGNOREDAMAGESLOWDOWN, type) - L.update_movespeed() - REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type) L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) ..() -/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M) +/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M, delta_time, times_fired) var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.") - if(prob(5)) - to_chat(M, "[high_message]") - M.AdjustAllImmobility(-40, 0) - M.AdjustUnconscious(-40, 0) - M.adjustStaminaLoss(-7.5 * REM, 0) - if(jitter) - M.Jitter(2) - if(brain_damage) - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4)) - M.heal_overall_damage(2, 2) - if(prob(5)) + if(DT_PROB(2.5, delta_time)) + to_chat(M, span_notice("[high_message]")) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name) + M.AdjustStun(-40 * REM * delta_time) + M.AdjustKnockdown(-40 * REM * delta_time) + M.AdjustUnconscious(-40 * REM * delta_time) + M.AdjustParalyzed(-40 * REM * delta_time) + M.AdjustImmobilized(-40 * REM * delta_time) + M.adjustStaminaLoss(-2 * REM * delta_time, 0) + M.Jitter(2 * REM * delta_time) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * delta_time) + if(DT_PROB(2.5, delta_time)) M.emote(pick("twitch", "shiver")) ..() - . = 1 + . = TRUE -/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M) - if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) - for(var/i in 1 to 4) +/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M, delta_time, times_fired) + if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc)) + for(var/i in 1 to round(4 * REM * delta_time, 1)) step(M, pick(GLOB.cardinals)) - if(prob(20)) + if(DT_PROB(10, delta_time)) M.emote("laugh") - if(prob(33)) - M.visible_message("[M]'s hands flip out and flail everywhere!") + if(DT_PROB(18, delta_time)) + M.visible_message(span_danger("[M]'s hands flip out and flail everywhere!")) M.drop_all_held_items() ..() - M.adjustToxLoss(1, 0) - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, pick(0.5, 0.6, 0.7, 0.8, 0.9, 1)) - . = 1 + M.adjustToxLoss(1 * REM * delta_time, 0) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, (rand(5, 10) / 10) * REM * delta_time) + . = TRUE /datum/reagent/drug/methamphetamine/addiction_act_stage1(mob/living/M) M.Jitter(5) diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index e24268cc45..e929641367 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -188,7 +188,7 @@ needs_processing = . //Return TRUE to get whatever mob this is in to update health. -/obj/item/bodypart/proc/on_life() +/obj/item/bodypart/proc/on_life(seconds, times_fired) if(stam_heal_tick && stamina_dam > DAMAGE_PRECISION) //DO NOT update health here, it'll be done in the carbon's life. if(heal_damage(brute = 0, burn = 0, stamina = (stam_heal_tick * (disabled ? 2 : 1)), only_robotic = FALSE, only_organic = FALSE, updating_health = FALSE)) . |= BODYPART_LIFE_UPDATE_HEALTH diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 2037547d36..5c6b66f702 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -25,7 +25,7 @@ var/cachedmoveCalc = 1 food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/iron = 5) -/obj/item/organ/liver/on_life() +/obj/item/organ/liver/on_life(seconds, times_fired) . = ..() if(!. || !owner)//can't process reagents with a failing liver return @@ -40,7 +40,7 @@ damage += (thisamount*toxLethality) //metabolize reagents - owner.reagents.metabolize(owner, can_overdose=TRUE) + owner.reagents.metabolize(owner, seconds, times_fired, can_overdose=TRUE) if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability to_chat(owner, "You feel a dull pain in your abdomen.") diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 6cdeadcbb3..f0f2a7ef19 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -92,18 +92,18 @@ on_death() //Kinda hate doing it like this, but I really don't want to call process directly. //Sources; life.dm process_organs -/obj/item/organ/proc/on_death() //Runs when outside AND inside. +/obj/item/organ/proc/on_death(seconds, times_fired) //Runs when outside AND inside. decay() //Applys the slow damage over time decay -/obj/item/organ/proc/decay() +/obj/item/organ/proc/decay(seconds, times_fired) if(!can_decay()) STOP_PROCESSING(SSobj, src) return is_cold() if(organ_flags & ORGAN_FROZEN) return - applyOrganDamage(maxHealth * decay_factor) + applyOrganDamage(maxHealth * decay_factor * (seconds * 0.5)) /obj/item/organ/proc/can_decay() if(CHECK_BITFIELD(organ_flags, ORGAN_NO_SPOIL | ORGAN_SYNTHETIC | ORGAN_FAILING)) @@ -151,7 +151,7 @@ organ_flags &= ~ORGAN_FROZEN return FALSE -/obj/item/organ/proc/on_life() //repair organ damage if the organ is not failing or synthetic +/obj/item/organ/proc/on_life(seconds, times_fired) //repair organ damage if the organ is not failing or synthetic if(organ_flags & ORGAN_FAILING || !owner) return FALSE if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing. diff --git a/code/modules/unit_tests/metabolizing.dm b/code/modules/unit_tests/metabolizing.dm index b7f8fc4f6a..6c0a635b13 100644 --- a/code/modules/unit_tests/metabolizing.dm +++ b/code/modules/unit_tests/metabolizing.dm @@ -11,7 +11,7 @@ /datum/unit_test/metabolization/proc/test_reagent(mob/living/carbon/C, reagent_type) C.reagents.add_reagent(reagent_type, 10) - C.reagents.metabolize(C, can_overdose = TRUE) + C.reagents.metabolize(C, SSMOBS_DT, 1, can_overdose = TRUE) C.reagents.clear_reagents() /datum/unit_test/metabolization/Destroy() diff --git a/tgstation.dme b/tgstation.dme index ed85c32cc4..7e70fa06d5 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -109,6 +109,7 @@ #include "code\__DEFINES\sight.dm" #include "code\__DEFINES\sound.dm" #include "code\__DEFINES\spaceman_dmm.dm" +#include "code\__DEFINES\spans.dm" #include "code\__DEFINES\species.dm" #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\stat_tracking.dm" From 4653deddecf57740477dc5aee3794ae6ed772a8a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 12:55:22 -0700 Subject: [PATCH 025/173] updates --- code/modules/movespeed/modifiers/reagents.dm | 19 ++++- .../movespeed/modifiers/status_effects.dm | 8 ++ code/modules/ninja/suit/suit.dm | 15 ++-- .../chemistry/reagents/food_reagents.dm | 4 + .../chemistry/reagents/medicine_reagents.dm | 85 +++++++++++++------ .../crossbreeding/_status_effects.dm | 22 +++-- 6 files changed, 108 insertions(+), 45 deletions(-) diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm index b7108582d9..0be4230cfe 100644 --- a/code/modules/movespeed/modifiers/reagents.dm +++ b/code/modules/movespeed/modifiers/reagents.dm @@ -5,7 +5,11 @@ multiplicative_slowdown = -0.55 /datum/movespeed_modifier/reagent/ephedrine - multiplicative_slowdown = -0.5 + // strong painkiller effect that caps out at slightly above runspeed + multiplicative_slowdown = -1.5 + priority = -100 + complex_calculation = TRUE + absolute_max_tiles_per_second = 7 /datum/movespeed_modifier/reagent/pepperspray multiplicative_slowdown = 0.25 @@ -14,10 +18,19 @@ multiplicative_slowdown = -0.35 /datum/movespeed_modifier/reagent/changelinghaste - multiplicative_slowdown = -0.8 + // extremely strong painkiller effect: allows user to run at old sprint speeds but not over by cancelling out slowdowns. + // however, will not make user go faster than that + multiplicative_slowdown = -4 + priority = -100 + complex_calculation = TRUE + absolute_max_tiles_per_second = 8 /datum/movespeed_modifier/reagent/methamphetamine - multiplicative_slowdown = -0.65 + // very strong painkiller effect that caps out at slightly above runspeed + multiplicative_slowdown = -2.5 + priority = -100 + complex_calculation = TRUE + absolute_max_tiles_per_second = 7.5 /datum/movespeed_modifier/reagent/nitryl multiplicative_slowdown = -0.65 diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index 1adfe8b4be..260ee17c21 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -51,3 +51,11 @@ /datum/movespeed_modifier/status_effect/off_balance variable = TRUE + +/datum/movespeed_modifier/status_effect/slime/light_pink + // decently good painkiller + speedup effect + blacklisted_movetypes = FLYING | FLOATING + priority = -150 // someday we really need to make these defines lmao + multiplicative_slowdown = -2 + complex_calculation = TRUE + absolute_max_tiles_per_second = 7 diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index ed711771bf..15071a186f 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -77,6 +77,11 @@ Contents: cell.name = "black power cell" cell.icon_state = "bscell" +/obj/item/clothing/suit/space/space_ninja/Destroy() + if(affecting) + unlock_suit() + return ..() + //Simply deletes all the attachments and self, killing all related procs. /obj/item/clothing/suit/space/space_ninja/proc/terminate() qdel(n_hood) @@ -84,7 +89,6 @@ Contents: qdel(n_shoes) qdel(src) - //Randomizes suit parameters. /obj/item/clothing/suit/space/space_ninja/proc/randomize_param() s_cost = rand(1,20) @@ -93,7 +97,6 @@ Contents: s_bombs = rand(5,20) a_boost = rand(1,7) - //This proc prevents the suit from being taken off. /obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/human/H) if(!istype(H)) @@ -113,14 +116,14 @@ Contents: return FALSE affecting = H ADD_TRAIT(src, TRAIT_NODROP, NINJA_SUIT_TRAIT) //colons make me go all |= - slowdown = 0 n_hood = H.head ADD_TRAIT(n_hood, TRAIT_NODROP, NINJA_SUIT_TRAIT) n_shoes = H.shoes ADD_TRAIT(n_shoes, TRAIT_NODROP, NINJA_SUIT_TRAIT) - n_shoes.slowdown -= 0.5 + n_shoes.slowdown = -0.25 n_gloves = H.gloves ADD_TRAIT(n_gloves, TRAIT_NODROP, NINJA_SUIT_TRAIT) + ADD_TRAIT(affecting, TRAIT_TASED_RESISTANCE, NINJA_SUIT_TRAIT) return TRUE /obj/item/clothing/suit/space/space_ninja/proc/lockIcons(mob/living/carbon/human/H) @@ -133,19 +136,19 @@ Contents: /obj/item/clothing/suit/space/space_ninja/proc/unlock_suit() affecting = null REMOVE_TRAIT(src, TRAIT_NODROP, NINJA_SUIT_TRAIT) - slowdown = 1 icon_state = "s-ninja" if(n_hood)//Should be attached, might not be attached. REMOVE_TRAIT(n_hood, TRAIT_NODROP, NINJA_SUIT_TRAIT) if(n_shoes) REMOVE_TRAIT(n_shoes, TRAIT_NODROP, NINJA_SUIT_TRAIT) - n_shoes.slowdown += 0.5 + n_shoes.slowdown = 0.25 if(n_gloves) n_gloves.icon_state = "s-ninja" n_gloves.item_state = "s-ninja" REMOVE_TRAIT(n_gloves, TRAIT_NODROP, NINJA_SUIT_TRAIT) n_gloves.candrain=0 n_gloves.draining=0 + REMOVE_TRAIT(affecting, TRAIT_TASED_RESISTANCE, NINJA_SUIT_TRAIT) /obj/item/clothing/suit/space/space_ninja/examine(mob/user) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 90082c464b..a9bdff64b2 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -345,6 +345,8 @@ victim.confused = max(M.confused, 3) victim.damageoverlaytemp = 60 victim.DefaultCombatKnockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 3, 15)) + victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) + addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) return else if ( eyes_covered ) // Eye cover is better than mouth cover victim.blur_eyes(3) @@ -358,6 +360,8 @@ victim.confused = max(M.confused, 6) victim.damageoverlaytemp = 75 victim.DefaultCombatKnockdown(80, override_hardstun = 0.1, override_stamdmg = min(reac_volume * 5, 25)) + victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) + addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) victim.update_damage_hud() /datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 65443b65c7..2bda4a97bd 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -706,21 +706,42 @@ addiction_threshold = 30 pH = 12 -/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M) - M.AdjustAllImmobility(-20, FALSE) - M.AdjustUnconscious(-20, FALSE) - M.adjustStaminaLoss(-4.5*REM, FALSE) - M.Jitter(10) - if(prob(50)) - M.confused = max(M.confused, 1) +/datum/reagent/medicine/ephedrine/on_mob_metabolize(mob/living/L) + ..() + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) + ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type) + +/datum/reagent/medicine/ephedrine/on_mob_end_metabolize(mob/living/L) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/ephedrine) + REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type) + ..() + +/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M, delta_time, times_fired) + // if(DT_PROB(10 * (1-creation_purity), delta_time) && iscarbon(M)) + // var/obj/item/I = M.get_active_held_item() + // if(I && M.dropItemToGround(I)) + // to_chat(M, span_notice("Your hands spaz out and you drop what you were holding!")) + // M.Jitter(10) + + M.AdjustAllImmobility(-20 * REM * delta_time * normalise_creation_purity()) + M.adjustStaminaLoss(-1 * REM * delta_time * normalise_creation_purity(), FALSE) ..() return TRUE -/datum/reagent/medicine/ephedrine/overdose_process(mob/living/M) - if(prob(33)) - M.adjustToxLoss(0.5*REM, 0) +/datum/reagent/medicine/ephedrine/overdose_process(mob/living/M, delta_time, times_fired) + if(DT_PROB(1 * normalise_creation_purity(), delta_time) && iscarbon(M)) + var/datum/disease/D = new /datum/disease/heart_failure + M.ForceContractDisease(D) + to_chat(M, span_userdanger("You're pretty sure you just felt your heart stop for a second there..")) + M.playsound_local(M, 'sound/effects/singlebeat.ogg', 100, 0) + + if(DT_PROB(3.5 * normalise_creation_purity(), delta_time)) + to_chat(M, span_notice("[pick("Your head pounds.", "You feel a tight pain in your chest.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]")) + + if(DT_PROB(18 * normalise_creation_purity(), delta_time)) + M.adjustToxLoss(1, 0) M.losebreath++ - . = 1 + . = TRUE return TRUE /datum/reagent/medicine/ephedrine/addiction_act_stage1(mob/living/M) @@ -1415,37 +1436,44 @@ /datum/reagent/medicine/changelingadrenaline name = "Changeling Adrenaline" description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed." - color = "#918e53" + color = "#C1151D" overdose_threshold = 30 + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED value = REAGENT_VALUE_VERY_RARE +/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired) + ..() + metabolizer.AdjustAllImmobility(-20 * REM * delta_time) + metabolizer.adjustStaminaLoss(-10 * REM * delta_time, 0) + metabolizer.Jitter(10 * REM * delta_time) + metabolizer.Dizzy(10 * REM * delta_time) + return TRUE + /datum/reagent/medicine/changelingadrenaline/on_mob_metabolize(mob/living/L) ..() + ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type) ADD_TRAIT(L, TRAIT_TASED_RESISTANCE, type) + L.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) /datum/reagent/medicine/changelingadrenaline/on_mob_end_metabolize(mob/living/L) + ..() + REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type) REMOVE_TRAIT(L, TRAIT_TASED_RESISTANCE, type) - ..() + L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) + L.Dizzy(0) + L.Jitter(0) -/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/M as mob) - M.AdjustUnconscious(-20, 0) - M.AdjustAllImmobility(-20, 0) - M.AdjustSleeping(-20, 0) - M.adjustStaminaLoss(-30, 0) - ..() - return TRUE - -/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/M as mob) - M.adjustToxLoss(5, 0) //let's make this mildly more toxic because of the stamina buff +/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/metabolizer, delta_time, times_fired) + metabolizer.adjustToxLoss(1 * REM * delta_time, 0) ..() return TRUE /datum/reagent/medicine/changelinghaste name = "Changeling Haste" description = "Drastically increases movement speed, but deals toxin damage." - color = "#669153" - metabolization_rate = 1 - value = REAGENT_VALUE_VERY_RARE + color = "#AE151D" + metabolization_rate = 2.5 * REAGENTS_METABOLISM + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() @@ -1455,11 +1483,12 @@ L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste) ..() -/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M) - M.adjustToxLoss(2, 0) +/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired) + metabolizer.adjustToxLoss(2 * REM * delta_time, 0) ..() return TRUE + /datum/reagent/medicine/corazone // Heart attack code will not do damage if corazone is present // because it's SPACE MAGIC ASPIRIN diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index f3e14993ed..9d074fc90d 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -702,16 +702,20 @@ /datum/status_effect/stabilized/sepia id = "stabilizedsepia" colour = "sepia" - var/mod = 0 + var/list/possible = list( + -0.5, + -0.25, + 0, + 0.5, + 1 + ) + +/datum/status_effect/stabilized/sepia/New(list/arguments) + . = ..() + possible = typelist(NAMEOF(src, possible), possible) /datum/status_effect/stabilized/sepia/tick() - if(prob(50) && mod > -1) - mod-- - owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 1) - else if(mod < 1) - mod++ - // yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly - owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 0) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = safepick(possible)) return ..() /datum/status_effect/stabilized/sepia/on_remove() @@ -932,6 +936,7 @@ /datum/status_effect/stabilized/lightpink/on_apply() ADD_TRAIT(owner, TRAIT_FREESPRINT, "stabilized_slime") + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/slime/light_pink) return ..() /datum/status_effect/stabilized/lightpink/tick() @@ -943,6 +948,7 @@ /datum/status_effect/stabilized/lightpink/on_remove() REMOVE_TRAIT(owner, TRAIT_FREESPRINT, "stabilized_slime") + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/slime/light_pink) return ..() /datum/status_effect/stabilized/adamantine From a5a476f457ce7b95b29e5036fab8a29f1b6a498a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 13:10:40 -0700 Subject: [PATCH 026/173] cyborg shovies --- code/datums/status_effects/debuffs.dm | 17 +++++++++++++++++ code/datums/status_effects/status_effect.dm | 2 ++ code/game/objects/items/robot/robot_upgrades.dm | 10 +++++----- .../mob/living/silicon/robot/robot_defense.dm | 8 ++++++++ .../mob/living/silicon/robot/robot_defines.dm | 4 +++- .../mob/living/silicon/robot/robot_movement.dm | 2 +- .../mob/living/silicon/silicon_defense.dm | 5 +++++ .../projectiles/projectile/energy/stun.dm | 5 +++++ 8 files changed, 46 insertions(+), 7 deletions(-) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 7fc7da2ef7..18d5129fb4 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -199,6 +199,23 @@ movespeed_mod = /datum/movespeed_modifier/status_effect/tased/no_combat_mode stamdmg_per_ds = 1 +/datum/status_effect/vtec_disabled + id = "vtec_disable" + tick = FALSE + +/datum/status_effect/vtec_disabled/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + duration = set_duration + . = ..() + if(iscyborg(owner)) + var/mob/living/silicon/robot/R = owner + R.vtec_disabled = TRUE + +/datum/status_effect/vtec_disabled/on_remove() + if(iscyborg(owner)) + var/mob/living/silicon/robot/R = owner + R.vtecs_disabled = FALSE + return ..() //OTHER DEBUFFS /datum/status_effect/his_wrath //does minor damage over time unless holding His Grace diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index b38b755f28..6d0c62a8b2 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -5,6 +5,8 @@ /datum/status_effect var/id = "effect" //Used for screen alerts. var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means. + /// do we tick()? + var/tick = TRUE var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. var/next_tick //The scheduled time for the next tick. var/mob/living/owner //The mob affected by the status effect. diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ed92623a37..88648bcbb7 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -90,7 +90,7 @@ as performing this in action() will cause the upgrade to end up in the borg inst to_chat(user, "There's no room for another VTEC unit!") return FALSE - //R.speed = -2 // Gotta go fast. + //R.vtec = -2 // Gotta go fast. //Citadel change - makes vtecs give an ability rather than reducing the borg's speed instantly VC = new /obj/effect/proc_holder/silicon/cyborg/vtecControl R.AddAbility(VC) @@ -100,7 +100,7 @@ as performing this in action() will cause the upgrade to end up in the borg inst . = ..() if (.) R.RemoveAbility(VC) - R.speed = initial(R.speed) + R.vtec = initial(R.vtec) R.cansprint = 1 /obj/item/borg/upgrade/disablercooler @@ -690,11 +690,11 @@ as performing this in action() will cause the upgrade to end up in the borg inst if(istype(user)) switch(currentState) if (0) - user.speed = initial(user.speed) + user.vtec = initial(user.vtec) if (1) - user.speed = initial(user.speed) - maxReduction * 0.5 + user.vtec = initial(user.vtec) - maxReduction * 0.5 if (2) - user.speed = initial(user.speed) - maxReduction * 1 + user.vtec = initial(user.vtec) - maxReduction * 1 action.button_icon_state = "Chevron_State_[currentState]" action.UpdateButtonIcon() diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 36f291bf36..c1dd0c9c81 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -82,6 +82,14 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real if(!opened) return ..() +/mob/living/silicon/robot/shove_act(mob/living/carbon/human/H) + visible_message(span_danger("[src]'s motors grind as they are shoved by [H]!")) + vtec_disable(10 SECONDS) + +/mob/living/silicon/robot/proc/vtec_disable(time) + apply_status_effect(/datum/status_effect/vtec_disabled, time) + update_movespeed() + /mob/living/silicon/robot/fire_act() if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them IgniteMob() diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm index fe22ec1236..bf3bdcf707 100644 --- a/code/modules/mob/living/silicon/robot/robot_defines.dm +++ b/code/modules/mob/living/silicon/robot/robot_defines.dm @@ -61,7 +61,9 @@ var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) - var/speed = 0 // VTEC speed boost. + var/vtec = 0 // VTEC speed boost. + /// vtec shorted out + var/vtec_disabled = FALSE var/magpulse = FALSE // Magboot-like effect. var/ionpulse = FALSE // Jetpack-like effect. var/ionpulse_on = FALSE // Jetpack-like effect. diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index e3a640bca0..23500688ae 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -23,4 +23,4 @@ . = ..() if(!resting && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)) . += 1 - . += speed + . += vtec_disabled? 0 : vtec diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 3377bf9601..39d1d38ba7 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -79,6 +79,8 @@ M.visible_message("[M] pets [src].", \ "You pet [src].", target = src, target_message = "[M] pets you.") + if(INTENT_DISARM) + shove_act(M) if(INTENT_GRAB) grabbedby(M) else @@ -88,6 +90,9 @@ "[M] punches you, but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE, null, M, "You punch [src], but don't leave a dent.") +/mob/living/silicon/proc/shove_act(mob/living/carbon/human/H) + visible_message(span_danger("[M] shoves [src], but doesn't manage to make much of an effect.")) + /mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M) if(M.a_intent == INTENT_HARM) return diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index 6f272dab40..acec1ef94f 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -31,6 +31,11 @@ else if(tase_duration && (C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE) && !HAS_TRAIT(C, TRAIT_TASED_RESISTANCE)) C.apply_status_effect(strong_tase? STATUS_EFFECT_TASED : STATUS_EFFECT_TASED_WEAK, tase_duration) addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5) + else if(iscyborg(target)) + target.visible_message(span_danger("A shower of sparks emit from [target] on impact from [src]!")) + do_sparks(1, TRUE, target) + var/mob/living/silicon/robot/R = target + R.vtec_disable(10 SECONDS) /obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet do_sparks(1, TRUE, src) From 0069f12c6f5289da478456b90781f5fdffa31a38 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 13:17:14 -0700 Subject: [PATCH 027/173] errors --- code/datums/status_effects/debuffs.dm | 2 +- .../changeling/powers/adrenaline.dm | 2 +- .../machinery/portable/canister.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 3 +- code/modules/movespeed/modifiers/reagents.dm | 3 ++ code/modules/reagents/chemistry/holder.dm | 30 +++++++++---------- .../chemistry/reagents/drink_reagents.dm | 4 +-- .../chemistry/reagents/drug_reagents.dm | 15 ++-------- .../chemistry/reagents/medicine_reagents.dm | 10 +++---- 9 files changed, 32 insertions(+), 39 deletions(-) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 18d5129fb4..ba5f2e1e18 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -214,7 +214,7 @@ /datum/status_effect/vtec_disabled/on_remove() if(iscyborg(owner)) var/mob/living/silicon/robot/R = owner - R.vtecs_disabled = FALSE + R.vtec_disabled = FALSE return ..() //OTHER DEBUFFS diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 32171a036a..643458d05a 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -13,5 +13,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/drug/methamphetamine/changeling = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us.", 0, 0.75, 0) + user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/medicine/changelinghaste = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us.", 0, 0.75, 0) return TRUE diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index cf4456789a..15c6475033 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -433,7 +433,7 @@ var/list/danger = list() for(var/id in air_contents.get_gases()) var/gas = air_contents.get_moles(id) - if(!GLOB.gas_data.flags[id] & GAS_FLAG_DANGEROUS) + if(!(GLOB.gas_data.flags[id] & GAS_FLAG_DANGEROUS)) continue if(gas > (GLOB.gas_data.visibility[id] || MOLES_GAS_VISIBLE)) //if moles_visible is undefined, default to default visibility danger[GLOB.gas_data.names[id]] = gas //ex. "plasma" = 20 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 47f9a794cf..8a400ad02d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -966,7 +966,8 @@ upgrades.Cut() - speed = 0 + vtec = 0 + vtec_disabled = FALSE ionpulse = FALSE revert_shell() diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm index 0be4230cfe..ca0a74d749 100644 --- a/code/modules/movespeed/modifiers/reagents.dm +++ b/code/modules/movespeed/modifiers/reagents.dm @@ -49,3 +49,6 @@ /datum/movespeed_modifier/reagent/nooartrium multiplicative_slowdown = 2 + +/datum/movespeed_modifier/reagent/skooma + multiplicative_slowdown = -1 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f9af19512c..afad323a27 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -300,26 +300,26 @@ if(can_overdose) if(addiction_tick == 6) addiction_tick = 1 - for(var/addiction in cached_addictions) + for(var/addiction in addiction_list) var/datum/reagent/R = addiction - if(C && R) + if(owner && R) R.addiction_stage++ if(1 <= R.addiction_stage && R.addiction_stage <= R.addiction_stage1_end) - need_mob_update += R.addiction_act_stage1(C) + need_mob_update += R.addiction_act_stage1(owner) else if(R.addiction_stage1_end < R.addiction_stage && R.addiction_stage <= R.addiction_stage2_end) - need_mob_update += R.addiction_act_stage2(C) + need_mob_update += R.addiction_act_stage2(owner) else if(R.addiction_stage2_end < R.addiction_stage && R.addiction_stage <= R.addiction_stage3_end) - need_mob_update += R.addiction_act_stage3(C) + need_mob_update += R.addiction_act_stage3(owner) else if(R.addiction_stage3_end < R.addiction_stage && R.addiction_stage <= R.addiction_stage4_end) - need_mob_update += R.addiction_act_stage4(C) + need_mob_update += R.addiction_act_stage4(owner) else if(R.addiction_stage4_end < R.addiction_stage) remove_addiction(R) else - SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") + SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") addiction_tick++ if(owner && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. owner.updatehealth() - owner.update_mobility + owner.update_mobility() owner.update_stamina() update_total() @@ -358,14 +358,14 @@ // for(var/addiction in reagent.addiction_types) // owner.mind?.add_addiction_points(addiction, reagent.addiction_types[addiction] * REAGENTS_METABOLISM) - if(R.addiction_threshold) - if(R.volume > R.addiction_threshold && !is_type_in_list(R, cached_addictions)) - var/datum/reagent/new_reagent = new R.type() - cached_addictions.Add(new_reagent) - if(is_type_in_list(R,cached_addictions)) - for(var/addiction in cached_addictions) + if(reagent.addiction_threshold) + if(reagent.volume > reagent.addiction_threshold && !is_type_in_list(reagent, addiction_list)) + var/datum/reagent/new_reagent = new reagent.type() + addiction_list.Add(new_reagent) + if(is_type_in_list(reagent, addiction_list)) + for(var/addiction in addiction_list) var/datum/reagent/A = addiction - if(istype(R, A)) + if(istype(reagent, A)) A.addiction_stage = -15 // you're satisfied for a good while. if(reagent.overdosed) diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index f4f5b90398..1f47de797a 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -505,11 +505,11 @@ value = REAGENT_VALUE_COMMON /datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/carbon/M) - M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) + M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) return ..() /datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/carbon/M) - M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) + M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) return ..() /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 485ef9ce82..1f92b3c3ee 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -170,16 +170,15 @@ overdose_threshold = 20 metabolization_rate = 0.75 * REAGENTS_METABOLISM ph = 5 - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED addiction_threshold = 10 value = REAGENT_VALUE_UNCOMMON /datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) + L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) /datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/meth) + L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) ..() /datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M, delta_time, times_fired) @@ -201,7 +200,7 @@ . = TRUE /datum/reagent/drug/methamphetamine/overdose_process(mob/living/M, delta_time, times_fired) - if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc)) + if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc)) for(var/i in 1 to round(4 * REM * delta_time, 1)) step(M, pick(GLOB.cardinals)) if(DT_PROB(10, delta_time)) @@ -249,14 +248,6 @@ ..() . = 1 -/datum/reagent/drug/methamphetamine/changeling - name = "Changeling Adrenaline" - addiction_threshold = 35 - overdose_threshold = 35 - jitter = FALSE - brain_damage = FALSE - value = REAGENT_VALUE_RARE - /datum/reagent/drug/bath_salts name = "Bath Salts" description = "Makes you impervious to stuns and grants a stamina regeneration buff, but you will be a nearly uncontrollable tramp-bearded raving lunatic." diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 2bda4a97bd..6ce9b0c9bb 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -723,8 +723,8 @@ // to_chat(M, span_notice("Your hands spaz out and you drop what you were holding!")) // M.Jitter(10) - M.AdjustAllImmobility(-20 * REM * delta_time * normalise_creation_purity()) - M.adjustStaminaLoss(-1 * REM * delta_time * normalise_creation_purity(), FALSE) + M.AdjustAllImmobility(-20 * REM * delta_time) + M.adjustStaminaLoss(-1 * REM * delta_time, FALSE) ..() return TRUE @@ -735,10 +735,10 @@ to_chat(M, span_userdanger("You're pretty sure you just felt your heart stop for a second there..")) M.playsound_local(M, 'sound/effects/singlebeat.ogg', 100, 0) - if(DT_PROB(3.5 * normalise_creation_purity(), delta_time)) + if(DT_PROB(3.5, delta_time)) to_chat(M, span_notice("[pick("Your head pounds.", "You feel a tight pain in your chest.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]")) - if(DT_PROB(18 * normalise_creation_purity(), delta_time)) + if(DT_PROB(18, delta_time)) M.adjustToxLoss(1, 0) M.losebreath++ . = TRUE @@ -1438,7 +1438,6 @@ description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed." color = "#C1151D" overdose_threshold = 30 - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED value = REAGENT_VALUE_VERY_RARE /datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired) @@ -1473,7 +1472,6 @@ description = "Drastically increases movement speed, but deals toxin damage." color = "#AE151D" metabolization_rate = 2.5 * REAGENTS_METABOLISM - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() From 7c87f6c7b7e1fbee5a519feb9441ecf41b4cf370 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 13:17:55 -0700 Subject: [PATCH 028/173] sigh --- code/modules/mob/living/silicon/silicon_defense.dm | 2 +- code/modules/reagents/chemistry/reagents/drug_reagents.dm | 4 ++-- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 39d1d38ba7..3c55432b23 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -91,7 +91,7 @@ "You punch [src], but don't leave a dent.") /mob/living/silicon/proc/shove_act(mob/living/carbon/human/H) - visible_message(span_danger("[M] shoves [src], but doesn't manage to make much of an effect.")) + visible_message(span_danger("[H] shoves [src], but doesn't manage to make much of an effect.")) /mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M) if(M.a_intent == INTENT_HARM) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 1f92b3c3ee..6385532f44 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -169,7 +169,7 @@ color = "#FAFAFA" overdose_threshold = 20 metabolization_rate = 0.75 * REAGENTS_METABOLISM - ph = 5 + pH = = 5 addiction_threshold = 10 value = REAGENT_VALUE_UNCOMMON @@ -185,7 +185,7 @@ var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.") if(DT_PROB(2.5, delta_time)) to_chat(M, span_notice("[high_message]")) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name) + // SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name) M.AdjustStun(-40 * REM * delta_time) M.AdjustKnockdown(-40 * REM * delta_time) M.AdjustUnconscious(-40 * REM * delta_time) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 6ce9b0c9bb..71bc6ae607 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -729,7 +729,7 @@ return TRUE /datum/reagent/medicine/ephedrine/overdose_process(mob/living/M, delta_time, times_fired) - if(DT_PROB(1 * normalise_creation_purity(), delta_time) && iscarbon(M)) + if(DT_PROB(1, delta_time) && iscarbon(M)) var/datum/disease/D = new /datum/disease/heart_failure M.ForceContractDisease(D) to_chat(M, span_userdanger("You're pretty sure you just felt your heart stop for a second there..")) From 833a7b958fe34c708806d8bc33a7f3e9943c244b Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 13:24:12 -0700 Subject: [PATCH 029/173] fix --- code/datums/components/orbiter.dm | 2 +- code/modules/reagents/chemistry/reagents/drug_reagents.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 26f52f6ba5..c34d56982a 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -90,7 +90,7 @@ return SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_END, orbiter, refreshing) UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED) - orbiter.SpinAnimation(0, 0) + orbiter.SpinAnimation(0, 0, parallel = FALSE) if(istype(orbiters[orbiter],/matrix)) //This is ugly. orbiter.transform = orbiters[orbiter] orbiters -= orbiter diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 6385532f44..ed80804f28 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -169,7 +169,7 @@ color = "#FAFAFA" overdose_threshold = 20 metabolization_rate = 0.75 * REAGENTS_METABOLISM - pH = = 5 + pH = 5 addiction_threshold = 10 value = REAGENT_VALUE_UNCOMMON From 805b931fb8455fedce66e863f32034db8ef9e96f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 13:35:52 -0700 Subject: [PATCH 030/173] config reorganize start --- .../configuration/entries/antag_rep.dm | 17 + .../configuration/entries/game_options.dm | 26 - .../configuration/entries/threat.dm | 7 + .../mob/living/silicon/robot/robot_defense.dm | 2 +- .../mob/living/silicon/silicon_defense.dm | 4 +- config/config.txt | 557 +----------------- config/{ => entries}/antag_rep.txt | 0 config/{ => entries}/comms.txt | 0 config/{ => entries}/dbconfig.txt | 0 .../donator.txt} | 0 .../dyanmic.txt} | 0 config/entries/fail2topic.txt | 0 config/{ => entries}/game_options.txt | 0 config/entries/general.txt | 529 +++++++++++++++++ config/entries/logging.txt | 0 config/{ => entries}/persistence.txt | 0 config/{ => entries}/policy.txt | 0 config/entries/resources.txt | 4 + config/{ => entries}/respawns.txt | 0 config/entries/stamina_combat.txt | 0 .../{job_threats.txt => entries/threat.txt} | 0 21 files changed, 576 insertions(+), 570 deletions(-) create mode 100644 code/controllers/configuration/entries/antag_rep.dm create mode 100644 code/controllers/configuration/entries/threat.dm rename config/{ => entries}/antag_rep.txt (100%) rename config/{ => entries}/comms.txt (100%) rename config/{ => entries}/dbconfig.txt (100%) rename config/{donator_groupings.txt => entries/donator.txt} (100%) rename config/{dynamic_config.txt => entries/dyanmic.txt} (100%) create mode 100644 config/entries/fail2topic.txt rename config/{ => entries}/game_options.txt (100%) create mode 100644 config/entries/general.txt create mode 100644 config/entries/logging.txt rename config/{ => entries}/persistence.txt (100%) rename config/{ => entries}/policy.txt (100%) create mode 100644 config/entries/resources.txt rename config/{ => entries}/respawns.txt (100%) create mode 100644 config/entries/stamina_combat.txt rename config/{job_threats.txt => entries/threat.txt} (100%) diff --git a/code/controllers/configuration/entries/antag_rep.dm b/code/controllers/configuration/entries/antag_rep.dm new file mode 100644 index 0000000000..c34eef4159 --- /dev/null +++ b/code/controllers/configuration/entries/antag_rep.dm @@ -0,0 +1,17 @@ +/datum/config_entry/flag/use_antag_rep // see game_options.txt for details + +/datum/config_entry/number/antag_rep_maximum + config_entry_value = 200 + min_val = 0 + +/datum/config_entry/number/default_antag_tickets + config_entry_value = 100 + min_val = 0 + +/datum/config_entry/number/max_tickets_per_roll + config_entry_value = 100 + min_val = 0 + +/datum/config_entry/keyed_list/antag_rep + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 08989469f5..7558dc69c0 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -136,20 +136,6 @@ /datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling -/datum/config_entry/flag/use_antag_rep // see game_options.txt for details - -/datum/config_entry/number/antag_rep_maximum - config_entry_value = 200 - min_val = 0 - -/datum/config_entry/number/default_antag_tickets - config_entry_value = 100 - min_val = 0 - -/datum/config_entry/number/max_tickets_per_roll - config_entry_value = 100 - min_val = 0 - /datum/config_entry/number/midround_antag_time_check // How late (in minutes you want the midround antag system to stay on, setting this to 0 will disable the system) config_entry_value = 60 min_val = 0 @@ -472,18 +458,6 @@ /datum/config_entry/flag/shift_time_realtime -/datum/config_entry/keyed_list/antag_rep - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - -/datum/config_entry/keyed_list/job_threat - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - -/datum/config_entry/keyed_list/antag_threat - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - /datum/config_entry/number/monkeycap config_entry_value = 64 min_val = 0 diff --git a/code/controllers/configuration/entries/threat.dm b/code/controllers/configuration/entries/threat.dm new file mode 100644 index 0000000000..3a3e03e149 --- /dev/null +++ b/code/controllers/configuration/entries/threat.dm @@ -0,0 +1,7 @@ +/datum/config_entry/keyed_list/job_threat + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + +/datum/config_entry/keyed_list/antag_threat + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index c1dd0c9c81..e7e05fd6d8 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -82,7 +82,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real if(!opened) return ..() -/mob/living/silicon/robot/shove_act(mob/living/carbon/human/H) +/mob/living/silicon/robot/disarm_shove(mob/living/carbon/human/H) visible_message(span_danger("[src]'s motors grind as they are shoved by [H]!")) vtec_disable(10 SECONDS) diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 3c55432b23..fbd4daa1d3 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -80,7 +80,7 @@ "You pet [src].", target = src, target_message = "[M] pets you.") if(INTENT_DISARM) - shove_act(M) + disarm_shove(M) if(INTENT_GRAB) grabbedby(M) else @@ -90,7 +90,7 @@ "[M] punches you, but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE, null, M, "You punch [src], but don't leave a dent.") -/mob/living/silicon/proc/shove_act(mob/living/carbon/human/H) +/mob/living/silicon/proc/disarm_shove(mob/living/carbon/human/H) visible_message(span_danger("[H] shoves [src], but doesn't manage to make much of an effect.")) /mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M) diff --git a/config/config.txt b/config/config.txt index 611d63cb24..99f07abe78 100644 --- a/config/config.txt +++ b/config/config.txt @@ -1,544 +1,19 @@ # You can use the "$include" directive to split your configs however you want -$include game_options.txt -$include dbconfig.txt -$include comms.txt -$include antag_rep.txt -$include resources.txt -# Cit-specific imports -$include donator_groupings.txt -$include dynamic_config.txt +$include entries/antag_rep.txt +$include entries/comms.txt +$include entries/dbconfig.txt +$include entries/donator.txt +$include entries/dynamic.txt +$include entries/fail2topic.txt +$include entries/game_options.txt +$include entries/general.txt +$include entries/logging.txt +$include entries/persistence.txt +$include entries/policy.txt +$include entries/resources.txt +$include entries/respawns.txt +$include entries/stamina_combat.txt +$include entries/threat.txt + $include plushies/defines.txt -$include job_threats.txt -$include policy.txt -$include persistence.txt -$include respawns.txt - -# You can use the @ character at the beginning of a config option to lock it from being edited in-game -# Example usage: -# @SERVERNAME tgstation -# Which sets the SERVERNAME, and disallows admins from being able to change it using View Variables. -# @LOG_TWITTER 0 -# Which explicitly disables LOG_TWITTER, as well as locking it. -# There are various options which are hard-locked for security reasons. - -## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice. -# SERVERNAME tgstation - -## Server tagline: This will appear right below the server's title. -# SERVERTAGLINE A generic TG-based server - -## Server SQL name: This is the name used to identify the server to the SQL DB, distinct from SERVERNAME as it must be at most 32 characters. -# SERVERSQLNAME tgstation - -## Station name: The name of the station as it is referred to in-game. If commented out, the game will generate a random name instead. -STATIONNAME Space Station 13 - -## Put on byond hub: Uncomment this to put your server on the byond hub. -#HUB - -## Lobby time: This is the amount of time between rounds that players have to setup their characters and be ready. -LOBBY_COUNTDOWN 120 - -## Round End Time: This is the amount of time after the round ends that players have to murder death kill each other. -ROUND_END_COUNTDOWN 90 - -## Comment this out if you want to use the SQL based admin system, the legacy system uses admins.txt. -## You need to set up your database to use the SQL based system. -## This flag is automatically enabled if SQL_ENABLED isn't -ADMIN_LEGACY_SYSTEM - -##Uncomment this to stop any admins loaded by the legacy system from having their rank edited by the permissions panel -#PROTECT_LEGACY_ADMINS - -##Uncomment this to stop any ranks loaded by the legacy system from having their flags edited by the permissions panel -#PROTECT_LEGACY_RANKS - -##Uncomment this to have admin ranks only loaded from the legacy admin_ranks.txt -##If enabled, each time admins are loaded ranks the database will be updated with the current ranks and their flags -#LOAD_LEGACY_RANKS_ONLY - -## Comment this out if you want to use the SQL based banning system. The legacy systems use the files in the data folder. You need to set up your database to use the SQL based system. -BAN_LEGACY_SYSTEM - -## Comment this out to stop locally connected clients from being given the almost full access !localhost! admin rank -ENABLE_LOCALHOST_RANK - -## Comment this out if you want to use the SQL based mentor system, the legacy system uses mentors.txt. -## You need to set up your database to use the SQL based system. -## This flag is automatically enabled if SQL_ENABLED isn't -MENTOR_LEGACY_SYSTEM - -#Mentors only see ckeys by default. Uncomment to have them only see mob name -#MENTORS_MOBNAME_ONLY - -## Uncomment this entry to have certain jobs require your account to be at least a certain number of days old to select. You can configure the exact age requirement for different jobs by editing -## the minimal_player_age variable in the files in folder /code/game/jobs/job/.. for the job you want to edit. Set minimal_player_age to 0 to disable age requirement for that job. -## REQUIRES the database set up to work. Keep it hashed if you don't have a database set up. -## NOTE: If you have just set-up the database keep this DISABLED, as player age is determined from the first time they connect to the server with the database up. If you just set it up, it means -## you have noone older than 0 days, since noone has been logged yet. Only turn this on once you have had the database up for 30 days. -#USE_AGE_RESTRICTION_FOR_JOBS - -## Uncomment this to have the job system use the player's account creation date, rather than the when they first joined the server for job timers. -#USE_ACCOUNT_AGE_FOR_JOBS - -## Unhash this to track player playtime in the database. Requires database to be enabled. -#USE_EXP_TRACKING -## Unhash this to enable playtime requirements for head jobs. -#USE_EXP_RESTRICTIONS_HEADS -## Unhash this to override head jobs' playtime requirements with this number of hours. -## Leave this commented out to use the values defined in the job datums. Values in the datums are stored as minutes. -#USE_EXP_RESTRICTIONS_HEADS_HOURS 3 -## Unhash this to change head jobs' playtime requirements so that they're based on department playtime, rather than crew playtime. -#USE_EXP_RESTRICTIONS_HEADS_DEPARTMENT -## Unhash this to enable playtime requirements for certain non-head jobs, like Engineer and Scientist. -#USE_EXP_RESTRICTIONS_OTHER -## Allows admins to bypass job playtime requirements. -#USE_EXP_RESTRICTIONS_ADMIN_BYPASS - -## log OOC channel -LOG_OOC - -## log client Say -LOG_SAY - -## log admin actions -LOG_ADMIN - -## log admin chat -LOG_ADMINCHAT - -## log client access (logon/logoff) -LOG_ACCESS - -## log game actions (start of round, results, etc.) -LOG_GAME - -## log player votes -LOG_VOTE - -## log player crafting -LOG_CRAFT - -## log client Whisper -LOG_WHISPER - -## log emotes -LOG_EMOTE - -## log attack messages -LOG_ATTACK - -## log pda messages -LOG_PDA - -## log telecomms messages -LOG_TELECOMMS - -## log prayers -LOG_PRAYER - -## log lawchanges -LOG_LAW - -## log crew manifest to seperate file -LOG_MANIFEST - -## log job divide debugging information -#LOG_JOB_DEBUG - -## log all world.Topic() calls -# LOG_WORLD_TOPIC - -## enables use of the proc twitterize() that lets you take a large list of strings and turn it into a JSON file of tweet sized strings. -## As an example of how this could be """useful""" look towards Poly (https://twitter.com/Poly_the_Parrot) -# LOG_TWITTER - -## Enable logging pictures -# LOG_PICTURES - -## log virus and actions -LOG_VIRUS - -##Log camera pictures - Must have picture logging enabled -PICTURE_LOGGING_CAMERA - -## period of time in seconds for players to be considered inactive -# INACTIVITY_PERIOD 300 - -## period of time in seconds for players to be considered afk and kickable -# AFK_PERIOD 600 - -## disconnect players who are considered afk -# KICK_INACTIVE - -## Comment this out to stop admins being able to choose their personal ooccolor -ALLOW_ADMIN_OOCCOLOR - -## Job slot open/close by identification consoles delay in seconds -ID_CONSOLE_JOBSLOT_DELAY 30 - -## allow players to initiate a restart vote -#ALLOW_VOTE_RESTART - -## allow players to initate a mode-change start -#ALLOW_VOTE_MODE - -## min delay (deciseconds) between voting sessions (default 10 minutes) -VOTE_DELAY 6000 - -## time period (deciseconds) which voting session will last (default 1 minute) -VOTE_PERIOD 600 - -## autovote initial delay (deciseconds) before first automatic transfer vote call (default 120 minutes) -## Set to 0 to disable the subsystem altogether. -VOTE_AUTOTRANSFER_INITIAL 72000 - -## autovote delay (deciseconds) before sequential automatic transfer votes are called (default 30 minutes) -VOTE_AUTOTRANSFER_INTERVAL 18000 - -## autovote maximum votes until automatic transfer call. (default 4) -## Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed. -## Set to -1 to disable the maximum votes cap. -VOTE_AUTOTRANSFER_MAXIMUM 4 - -## prevents dead players from voting or starting votes -# NO_DEAD_VOTE - -## players' votes default to "No vote" (otherwise, default to "No change") -# DEFAULT_NO_VOTE - -## disables calling del(src) on newmobs if they logout before spawnin in -# DONT_DEL_NEWMOB - -## set a hosted by name for unix platforms -HOSTEDBY Yournamehere - -## Set to jobban "Guest-" accounts from Captain, HoS, HoP, CE, RD, CMO, Warden, Security, Detective, and AI positions. -## Set to 1 to jobban them from those positions, set to 0 to allow them. -# GUEST_JOBBAN - -## Uncomment this to stop people connecting to your server without a registered ckey. (i.e. guest-* are all blocked from connecting) -GUEST_BAN - -## Comment this out to disable checking for the cid randomizer dll. (disabled if database isn't enabled or connected) -CHECK_RANDOMIZER - -## IPINTEL: -## This allows you to detect likely proxies by checking ips against getipintel.net -## Rating to warn at: (0.9 is good, 1 is 100% likely to be a spammer/proxy, 0.8 is 80%, etc) anything equal to or higher then this number triggers an admin warning -#IPINTEL_RATING_BAD 0.9 -## Contact email, (required to use the service, leaving blank or default disables IPINTEL) -#IPINTEL_EMAIL ch@nge.me -## How long to save good matches (ipintel rate limits to 15 per minute and 500 per day. so this shouldn't be too low, getipintel.net suggests 6 hours, time is in hours) (Your ip will get banned if you go over 500 a day too many times) -#IPINTEL_SAVE_GOOD 12 -## How long to save bad matches (these numbers can change as ips change hands, best not to save these for too long in case somebody gets a new ip used by a spammer/proxy before.) -#IPINTEL_SAVE_BAD 3 -## Domain name to query (leave commented out for the default, only needed if you pay getipintel.net for more querys) -#IPINTEL_DOMAIN check.getipintel.net - -## Uncomment to allow web client connections -#ALLOW_WEBCLIENT - -## Uncomment to restrict web client connections to byond members -## This makes for a nice pay gate to cut down on ban evading, as the webclient's cid system isn't that great -## byond membership starts at $10 for 3 months, so to use the webclient to evade, they would have sink 10 bucks in each evade. -#WEBCLIENT_ONLY_BYOND_MEMBERS - -## Set to prevent anyone but those ckeys listed in config/whitelist.txt and config/admins.txt from joining your server -#USEWHITELIST - -## set a server location for world reboot. Don't include the byond://, just give the address and port. -## Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. -# SERVER ss13.example.com:2506 - -## forum address -# FORUMURL https://citadel-station.net/forum/ - -## Wiki address -# WIKIURL https://katlin.dog/citadel-wiki - -## Rules address -# RULESURL https://katlin.dog/citadel-rules/main - -## Github address -# GITHUBURL https://github.com/Citadel-Station-13/Citadel-Station-13 - -## Round specific stats address -## Link to round specific parsed logs; IE statbus. It is appended with the RoundID automatically by ticker/Reboot() -## This will take priority over the game logs address during reboot. -## Example: https://atlantaned.space/statbus/round.php?round= -# ROUNDSTATSURL http://citadel-station.net/slimbus/ - -## Game Logs address -## Incase you don't have a fancy parsing system, but still want players to be able to find where you keep your server's logs. -## Example: https://tgstation13.org/parsed-logs/basil/data/logs/ -# GAMELOGURL - -## Github repo id -##This can be found by going to https://api.github.com/users//repos -##Or https://api.github.com/orgs//repos if the repo owner is an organization -# GITHUBREPOID 62485194 - -## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. -# BANAPPEALS https://citadel-station.net/forum/viewforum.php?f=8&sid=a0ce5331d5594ef6d49661609c6f4ff9 - -## System command that invokes youtube-dl, used by Play Internet Sound. -## You can install youtube-dl with -## "pip install youtube-dl" if you have pip installed -## from https://github.com/rg3/youtube-dl/releases -## or your package manager -## The default value assumes youtube-dl is in your system PATH -# INVOKE_YOUTUBEDL youtube-dl - -## In-game features -##Toggle for having jobs load up from the .txt -# LOAD_JOBS_FROM_TXT - -## Uncomment this to forbid admins from possessing the singularity. -#FORBID_SINGULO_POSSESSION - -## Uncomment to show a popup 'reply to' window to every non-admin that receives an adminPM. -## The intention is to make adminPMs more visible. (although I fnd popups annoying so this defaults to off) -#POPUP_ADMIN_PM - -## Uncomment to allow special 'Easter-egg' events on special holidays such as seasonal holidays and stuff like 'Talk Like a Pirate Day' :3 YAARRR -ALLOW_HOLIDAYS - -## Uncomment to show the names of the admin sending a pm from IRC instead of showing as a stealthmin. -#SHOW_IRC_NAME - -## Defines the ticklimit for subsystem initialization (In percents of a byond tick). Lower makes world start smoother. Higher makes it faster. -##This is currently a testing optimized setting. A good value for production would be 98. -TICK_LIMIT_MC_INIT 500 - -##Defines the ticklag for the world. Ticklag is the amount of time between game ticks (aka byond ticks) (in 1/10ths of a second). -## This also controls the client network update rate, as well as the default client fps -TICKLAG 0.5 - -##Can also be set as per-second value, the following value is identical to the above. -#FPS 20 - -## Comment this out to disable automuting -#AUTOMUTE_ON - -## Uncomment this to let players see their own notes (they can still be set by admins only) -#SEE_OWN_NOTES - -### Comment these two out to prevent notes fading out over time for admins. -## Notes older then this will start fading out. -NOTE_FRESH_DAYS 91.31055 -## Notes older then this will be completely faded out. -NOTE_STALE_DAYS 365.2422 - -##Note: all population caps can be used with each other if desired. - -## Uncomment for 'soft' population caps, players will be warned while joining if the living crew exceeds the listed number. -#SOFT_POPCAP 100 - -## Message for soft cap -SOFT_POPCAP_MESSAGE Be warned that the server is currently serving a high number of users, consider using alternative game servers. - -## Uncomment for 'hard' population caps, players will not be allowed to spawn if the living crew exceeds the listed number, though they may still observe or wait for the living crew to decrease in size. -#HARD_POPCAP 150 - -## Message for hard cap -HARD_POPCAP_MESSAGE The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers. - -## Uncomment for 'extreme' population caps, players will not be allowed to join the server if living crew exceeds the listed number. -#EXTREME_POPCAP 200 - -## Message for extreme cap -EXTREME_POPCAP_MESSAGE The server is currently serving a high number of users, find alternative servers. - -## Notify admins when a new player connects for the first x days a player's been around. (0 for first connection only, -1 for never) -## Requres database -NOTIFY_NEW_PLAYER_AGE 0 - -## Notify admins when a player connects if their byond account was created in the last X days -## Requires database -NOTIFY_NEW_PLAYER_ACCOUNT_AGE 1 - -## Notify the irc channel when a new player makes their first connection -## Requres database -#IRC_FIRST_CONNECTION_ALERT - -## Deny all new connections by ckeys we haven't seen before (exempts admins and only denies the connection if the database is enabled and connected) -## Requires database -#PANIC_BUNKER - -## If a player connects during a bunker with less then or this amount of living time (Minutes), we deny the connection -#PANIC_BUNKER_LIVING 90 - -## The message the Panic Bunker gives when someone is rejected by it -## %minutes% is replaced with PANIC_BUNKER_LIVING on runtime, remove it if you don't want this -#PANIC_BUNKER_MESSAGE Sorry, but the server is currently not accepting connections from players with less than %minutes% minutes of living time. - -## If panic bunker is on and a player is rejected (see above), attempt to send them to this connected server (see below) instead. -## You probably want this to be the same as CROSS_SERVER_ADDRESS -#PANIC_SERVER_ADDRESS byond://address:port - -##Name of the place to send people rejected by the bunker -#PANIC_SERVER_NAME [Put the name here] - -##Automated age verification, comment this out to not ask new users if they are 18+ -#AGE_VERIFICATION - -## Uncomment to have the changelog file automatically open when a user connects and hasn't seen the latest changelog -#AGGRESSIVE_CHANGELOG - -## Comment this out if you've used the mass conversion sql proc for notes or want to stop converting notes -AUTOCONVERT_NOTES - -## Comment this out to stop admin messages sent anytime an admin disconnects from a round in play, you can edit the messages in admin.dm -ANNOUNCE_ADMIN_LOGOUT - -## Uncomment to have an admin message sent anytime an admin connects to a round in play, you can edit the messages in admin.dm -#ANNOUNCE_ADMIN_LOGIN - -## Map rotation -## You should edit maps.txt to match your configuration when you enable this. -MAPROTATION - -## TG-style map rotation -## By default, Citadel uses a more traditional method of map voting, where at the end of a round, players are given a full upfront vote. -## This PR will disable that, and will make the server use TG's map rotation instead. -#TGSTYLE_MAPROTATION - -## Map voting -## Allows players to vote for their preffered map -## When it's set to zero, the map will be randomly picked each round -ALLOW_MAP_VOTING 1 - -## Map voting type -## Determines what kind of vote the map vote is -## Options are: -## PLURALITY (default, only vote for one option) -## APPROVAL (can vote for as many as you want), I -## IRV (vote by ranked choice, winner determined by instant runoff algorithm) -## SCORE (give individual rankings of each choice, winner determined by majority judgement algorithm) -MAP_VOTE_TYPE APPROVAL - -## Map rotate chance delta -## This is the chance of map rotation factored to the round length. -## A value of 1 would mean the map rotation chance is the round length in minutes (hour long round == 60% rotation chance) -## A value of 0.5 would mean the map rotation chance is half of the round length in minutes (hour long round == 30% rotation chance) -#MAPROTATIONCHANCEDELTA 0.75 - -## AUTOADMIN -## The default admin rank -AUTOADMIN_RANK Game Master - -## Uncomment to automatically give that admin rank to all players -#AUTOADMIN - -## CLIENT VERSION CONTROL -## This allows you to configure the minimum required client version, as well as a warning version, and message for both. -## These trigger for any version below (non-inclusive) the given version, so 510 triggers on 509 or lower. -## These messages will be followed by one stating the clients current version and the required version for clarity. -## If CLIENT_WARN_POPUP is uncommented a popup window with the message will be displayed instead -#CLIENT_WARN_VERSION 511 -#CLIENT_WARN_POPUP -#CLIENT_WARN_MESSAGE Byond released 511 as the stable release. You can set the framerate your client runs at, which makes the game feel very different and cool. Shortly after its release we will end up using 511 client features and you will be forced to update. -CLIENT_ERROR_VERSION 511 -CLIENT_ERROR_MESSAGE Your version of byond is not supported. Please upgrade. -## The minimum build needed for joining the server, if using 512, a good minimum build would be 1421 as that disables the Middle Mouse Button exploit. -CLIENT_ERROR_BUILD 1421 - -## TOPIC RATE LIMITING -## This allows you to limit how many topic calls (clicking on an interface window) the client can do in any given game second and/or game minute. -## Admins are exempt from these limits. -## Hitting the minute limit notifies admins. -## Set to 0 or comment out to disable. -SECOND_TOPIC_LIMIT 10 - -MINUTE_TOPIC_LIMIT 100 - - -## CLICK RATE LIMITING -## Same as above, but applies to clicking on objects in the game window. -## This should be a higher then the interface limit to allow for the spam clickly nature of most battles. -## Admins are exempt from these limits. -## Hitting the minute limit notifies admins. -## Set to 0 to disable. -SECOND_CLICK_LIMIT 15 - -MINUTE_CLICK_LIMIT 400 - -##Error handling related options -## The "cooldown" time for each occurence of a unique error -#ERROR_COOLDOWN 600 -## How many occurences before the next will silence them -#ERROR_LIMIT 90 -## How long a unique error will be silenced for -#ERROR_SILENCE_TIME 6000 -##How long to wait between messaging admins about occurences of a unique error -#ERROR_MSG_DELAY 50 - -## Chat Announce Options -## Various messages to be sent to game chats -## Uncommenting these will enable them, by default they will be broadcast to Game chat channels on TGS3 or non-admin channels on TGS4 -## If using TGS4, the string option can be set as a chat channel tag to limit the message to channels of that tag type (case-sensitive) -## i.e. CHAT_ANNOUNCE_NEW_GAME chat_channel_tag - -## Send a message with the station name starting a new game -#CHAT_ANNOUNCE_NEW_GAME - -## Allow admin hrefs that don't use the new token system, will eventually be removed -DEBUG_ADMIN_HREFS - -###Master Controller High Pop Mode### - -##The Master Controller(MC) is the primary system controlling timed tasks and events in SS13 (lobby timer, game checks, lighting updates, atmos, etc) -##Default base MC tick rate (1 = process every "byond tick" (see: tick_lag/fps config settings), 2 = process every 2 byond ticks, etc) -## Setting this to 0 will prevent the Master Controller from ticking -BASE_MC_TICK_RATE 1 - -##High population MC tick rate -## Byond rounds timer values UP, but the tick rate is modified with heuristics during lag spites so setting this to something like 2 -## will make it run every 2 byond ticks, but will also double the effect of anti-lag heuristics. You can instead set it to something like -## 1.1 to make it run every 2 byond ticks, but only increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%. -## (As an aside, you could in theory also reduce the effect of anti-lag heuristics in the base tick rate by setting it to something like 0.5) -HIGH_POP_MC_TICK_RATE 1.1 - -##Engage high pop mode if player count raises above this (Player in this context means any connected user. Lobby, ghost or in-game all count) -HIGH_POP_MC_MODE_AMOUNT 65 - -##Disengage high pop mode if player count drops below this -DISABLE_HIGH_POP_MC_MODE_AMOUNT 60 - -## Uncomment to prevent the world from sleeping while no players are connected after initializations -#RESUME_AFTER_INITIALIZATIONS - -## Uncomment to set the number of /world/Reboot()s before the DreamDaemon restarts itself. 0 means restart every round. Requires tgstation server tools. -#ROUNDS_UNTIL_HARD_RESTART 10 - -## Number of days for an individual panic bunker passthrough entry to be wiped. Note that they're also wiped as soon as a player is in the database. -#MAX_BUNKER_DAYS 7 - -##Default screen resolution, in tiles. -## By default, this is 15x15, which gets simplified to 7 by BYOND, as it is a 1:1 screen ratio. -## For reference, Goonstation uses a resolution of 21x15 for it's widescreen mode. -## Do note that changing this value will affect the title screen. The title screen will have to be updated manually if this is changed. -DEFAULT_VIEW 21x15 - -### FAIL2TOPIC: -### Automated IP bans for world/Topic() spammers -### NOTE FOR WINDOWS HOSTS: This requires you to be running dreamdaemon as an administrator for it to work at all. TGS3 handles this automatically, and honestly there's no reason not to be using TGS3 if you're hosting on Windows. -### NOTE FOR LINUX HOSTS: This requires manual setup of iptables. Beware that improper configuration of this can and will irreversibly fuck up a server, so please don't tinker with it if you don't know what you're doing. -## Enabled -#FAIL2TOPIC_ENABLED -## Minimum wait time in deciseconds between valid requests -FAIL2TOPIC_RATE_LIMIT 10 -## Number of requests after breaching rate limit that triggers a ban -FAIL2TOPIC_MAX_FAILS 5 -## Firewall rule name used on physical server -## FOR LINUX HOSTS: This is used as the chain name. The iptables chain doesn't get created or hooked up to INPUT automatically, so you'll have to get that set up yourself. Recommended name: BYOND -FAIL2TOPIC_RULE_NAME _dd_fail2topic - -## Enable automatic profiling - Byond 513.1506 and newer only. -#AUTO_PROFILE - -## Uncomment to enable global ban DB using the provided URL. The API should expect to receive a ckey at the end of the URL. -## More API details can be found here: https://centcom.melonmesa.com -CENTCOM_BAN_DB https://centcom.melonmesa.com/ban/search diff --git a/config/antag_rep.txt b/config/entries/antag_rep.txt similarity index 100% rename from config/antag_rep.txt rename to config/entries/antag_rep.txt diff --git a/config/comms.txt b/config/entries/comms.txt similarity index 100% rename from config/comms.txt rename to config/entries/comms.txt diff --git a/config/dbconfig.txt b/config/entries/dbconfig.txt similarity index 100% rename from config/dbconfig.txt rename to config/entries/dbconfig.txt diff --git a/config/donator_groupings.txt b/config/entries/donator.txt similarity index 100% rename from config/donator_groupings.txt rename to config/entries/donator.txt diff --git a/config/dynamic_config.txt b/config/entries/dyanmic.txt similarity index 100% rename from config/dynamic_config.txt rename to config/entries/dyanmic.txt diff --git a/config/entries/fail2topic.txt b/config/entries/fail2topic.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/game_options.txt b/config/entries/game_options.txt similarity index 100% rename from config/game_options.txt rename to config/entries/game_options.txt diff --git a/config/entries/general.txt b/config/entries/general.txt new file mode 100644 index 0000000000..e3a2743071 --- /dev/null +++ b/config/entries/general.txt @@ -0,0 +1,529 @@ + +# You can use the @ character at the beginning of a config option to lock it from being edited in-game +# Example usage: +# @SERVERNAME tgstation +# Which sets the SERVERNAME, and disallows admins from being able to change it using View Variables. +# @LOG_TWITTER 0 +# Which explicitly disables LOG_TWITTER, as well as locking it. +# There are various options which are hard-locked for security reasons. + +## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice. +# SERVERNAME tgstation + +## Server tagline: This will appear right below the server's title. +# SERVERTAGLINE A generic TG-based server + +## Server SQL name: This is the name used to identify the server to the SQL DB, distinct from SERVERNAME as it must be at most 32 characters. +# SERVERSQLNAME tgstation + +## Station name: The name of the station as it is referred to in-game. If commented out, the game will generate a random name instead. +STATIONNAME Space Station 13 + +## Put on byond hub: Uncomment this to put your server on the byond hub. +#HUB + +## Lobby time: This is the amount of time between rounds that players have to setup their characters and be ready. +LOBBY_COUNTDOWN 120 + +## Round End Time: This is the amount of time after the round ends that players have to murder death kill each other. +ROUND_END_COUNTDOWN 90 + +## Comment this out if you want to use the SQL based admin system, the legacy system uses admins.txt. +## You need to set up your database to use the SQL based system. +## This flag is automatically enabled if SQL_ENABLED isn't +ADMIN_LEGACY_SYSTEM + +##Uncomment this to stop any admins loaded by the legacy system from having their rank edited by the permissions panel +#PROTECT_LEGACY_ADMINS + +##Uncomment this to stop any ranks loaded by the legacy system from having their flags edited by the permissions panel +#PROTECT_LEGACY_RANKS + +##Uncomment this to have admin ranks only loaded from the legacy admin_ranks.txt +##If enabled, each time admins are loaded ranks the database will be updated with the current ranks and their flags +#LOAD_LEGACY_RANKS_ONLY + +## Comment this out if you want to use the SQL based banning system. The legacy systems use the files in the data folder. You need to set up your database to use the SQL based system. +BAN_LEGACY_SYSTEM + +## Comment this out to stop locally connected clients from being given the almost full access !localhost! admin rank +ENABLE_LOCALHOST_RANK + +## Comment this out if you want to use the SQL based mentor system, the legacy system uses mentors.txt. +## You need to set up your database to use the SQL based system. +## This flag is automatically enabled if SQL_ENABLED isn't +MENTOR_LEGACY_SYSTEM + +#Mentors only see ckeys by default. Uncomment to have them only see mob name +#MENTORS_MOBNAME_ONLY + +## Uncomment this entry to have certain jobs require your account to be at least a certain number of days old to select. You can configure the exact age requirement for different jobs by editing +## the minimal_player_age variable in the files in folder /code/game/jobs/job/.. for the job you want to edit. Set minimal_player_age to 0 to disable age requirement for that job. +## REQUIRES the database set up to work. Keep it hashed if you don't have a database set up. +## NOTE: If you have just set-up the database keep this DISABLED, as player age is determined from the first time they connect to the server with the database up. If you just set it up, it means +## you have noone older than 0 days, since noone has been logged yet. Only turn this on once you have had the database up for 30 days. +#USE_AGE_RESTRICTION_FOR_JOBS + +## Uncomment this to have the job system use the player's account creation date, rather than the when they first joined the server for job timers. +#USE_ACCOUNT_AGE_FOR_JOBS + +## Unhash this to track player playtime in the database. Requires database to be enabled. +#USE_EXP_TRACKING +## Unhash this to enable playtime requirements for head jobs. +#USE_EXP_RESTRICTIONS_HEADS +## Unhash this to override head jobs' playtime requirements with this number of hours. +## Leave this commented out to use the values defined in the job datums. Values in the datums are stored as minutes. +#USE_EXP_RESTRICTIONS_HEADS_HOURS 3 +## Unhash this to change head jobs' playtime requirements so that they're based on department playtime, rather than crew playtime. +#USE_EXP_RESTRICTIONS_HEADS_DEPARTMENT +## Unhash this to enable playtime requirements for certain non-head jobs, like Engineer and Scientist. +#USE_EXP_RESTRICTIONS_OTHER +## Allows admins to bypass job playtime requirements. +#USE_EXP_RESTRICTIONS_ADMIN_BYPASS + +## log OOC channel +LOG_OOC + +## log client Say +LOG_SAY + +## log admin actions +LOG_ADMIN + +## log admin chat +LOG_ADMINCHAT + +## log client access (logon/logoff) +LOG_ACCESS + +## log game actions (start of round, results, etc.) +LOG_GAME + +## log player votes +LOG_VOTE + +## log player crafting +LOG_CRAFT + +## log client Whisper +LOG_WHISPER + +## log emotes +LOG_EMOTE + +## log attack messages +LOG_ATTACK + +## log pda messages +LOG_PDA + +## log telecomms messages +LOG_TELECOMMS + +## log prayers +LOG_PRAYER + +## log lawchanges +LOG_LAW + +## log crew manifest to seperate file +LOG_MANIFEST + +## log job divide debugging information +#LOG_JOB_DEBUG + +## log all world.Topic() calls +# LOG_WORLD_TOPIC + +## enables use of the proc twitterize() that lets you take a large list of strings and turn it into a JSON file of tweet sized strings. +## As an example of how this could be """useful""" look towards Poly (https://twitter.com/Poly_the_Parrot) +# LOG_TWITTER + +## Enable logging pictures +# LOG_PICTURES + +## log virus and actions +LOG_VIRUS + +##Log camera pictures - Must have picture logging enabled +PICTURE_LOGGING_CAMERA + +## period of time in seconds for players to be considered inactive +# INACTIVITY_PERIOD 300 + +## period of time in seconds for players to be considered afk and kickable +# AFK_PERIOD 600 + +## disconnect players who are considered afk +# KICK_INACTIVE + +## Comment this out to stop admins being able to choose their personal ooccolor +ALLOW_ADMIN_OOCCOLOR + +## Job slot open/close by identification consoles delay in seconds +ID_CONSOLE_JOBSLOT_DELAY 30 + +## allow players to initiate a restart vote +#ALLOW_VOTE_RESTART + +## allow players to initate a mode-change start +#ALLOW_VOTE_MODE + +## min delay (deciseconds) between voting sessions (default 10 minutes) +VOTE_DELAY 6000 + +## time period (deciseconds) which voting session will last (default 1 minute) +VOTE_PERIOD 600 + +## autovote initial delay (deciseconds) before first automatic transfer vote call (default 120 minutes) +## Set to 0 to disable the subsystem altogether. +VOTE_AUTOTRANSFER_INITIAL 72000 + +## autovote delay (deciseconds) before sequential automatic transfer votes are called (default 30 minutes) +VOTE_AUTOTRANSFER_INTERVAL 18000 + +## autovote maximum votes until automatic transfer call. (default 4) +## Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed. +## Set to -1 to disable the maximum votes cap. +VOTE_AUTOTRANSFER_MAXIMUM 4 + +## prevents dead players from voting or starting votes +# NO_DEAD_VOTE + +## players' votes default to "No vote" (otherwise, default to "No change") +# DEFAULT_NO_VOTE + +## disables calling del(src) on newmobs if they logout before spawnin in +# DONT_DEL_NEWMOB + +## set a hosted by name for unix platforms +HOSTEDBY Yournamehere + +## Set to jobban "Guest-" accounts from Captain, HoS, HoP, CE, RD, CMO, Warden, Security, Detective, and AI positions. +## Set to 1 to jobban them from those positions, set to 0 to allow them. +# GUEST_JOBBAN + +## Uncomment this to stop people connecting to your server without a registered ckey. (i.e. guest-* are all blocked from connecting) +GUEST_BAN + +## Comment this out to disable checking for the cid randomizer dll. (disabled if database isn't enabled or connected) +CHECK_RANDOMIZER + +## IPINTEL: +## This allows you to detect likely proxies by checking ips against getipintel.net +## Rating to warn at: (0.9 is good, 1 is 100% likely to be a spammer/proxy, 0.8 is 80%, etc) anything equal to or higher then this number triggers an admin warning +#IPINTEL_RATING_BAD 0.9 +## Contact email, (required to use the service, leaving blank or default disables IPINTEL) +#IPINTEL_EMAIL ch@nge.me +## How long to save good matches (ipintel rate limits to 15 per minute and 500 per day. so this shouldn't be too low, getipintel.net suggests 6 hours, time is in hours) (Your ip will get banned if you go over 500 a day too many times) +#IPINTEL_SAVE_GOOD 12 +## How long to save bad matches (these numbers can change as ips change hands, best not to save these for too long in case somebody gets a new ip used by a spammer/proxy before.) +#IPINTEL_SAVE_BAD 3 +## Domain name to query (leave commented out for the default, only needed if you pay getipintel.net for more querys) +#IPINTEL_DOMAIN check.getipintel.net + +## Uncomment to allow web client connections +#ALLOW_WEBCLIENT + +## Uncomment to restrict web client connections to byond members +## This makes for a nice pay gate to cut down on ban evading, as the webclient's cid system isn't that great +## byond membership starts at $10 for 3 months, so to use the webclient to evade, they would have sink 10 bucks in each evade. +#WEBCLIENT_ONLY_BYOND_MEMBERS + +## Set to prevent anyone but those ckeys listed in config/whitelist.txt and config/admins.txt from joining your server +#USEWHITELIST + +## set a server location for world reboot. Don't include the byond://, just give the address and port. +## Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. +# SERVER ss13.example.com:2506 + +## forum address +# FORUMURL https://citadel-station.net/forum/ + +## Wiki address +# WIKIURL https://katlin.dog/citadel-wiki + +## Rules address +# RULESURL https://katlin.dog/citadel-rules/main + +## Github address +# GITHUBURL https://github.com/Citadel-Station-13/Citadel-Station-13 + +## Round specific stats address +## Link to round specific parsed logs; IE statbus. It is appended with the RoundID automatically by ticker/Reboot() +## This will take priority over the game logs address during reboot. +## Example: https://atlantaned.space/statbus/round.php?round= +# ROUNDSTATSURL http://citadel-station.net/slimbus/ + +## Game Logs address +## Incase you don't have a fancy parsing system, but still want players to be able to find where you keep your server's logs. +## Example: https://tgstation13.org/parsed-logs/basil/data/logs/ +# GAMELOGURL + +## Github repo id +##This can be found by going to https://api.github.com/users//repos +##Or https://api.github.com/orgs//repos if the repo owner is an organization +# GITHUBREPOID 62485194 + +## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. +# BANAPPEALS https://citadel-station.net/forum/viewforum.php?f=8&sid=a0ce5331d5594ef6d49661609c6f4ff9 + +## System command that invokes youtube-dl, used by Play Internet Sound. +## You can install youtube-dl with +## "pip install youtube-dl" if you have pip installed +## from https://github.com/rg3/youtube-dl/releases +## or your package manager +## The default value assumes youtube-dl is in your system PATH +# INVOKE_YOUTUBEDL youtube-dl + +## In-game features +##Toggle for having jobs load up from the .txt +# LOAD_JOBS_FROM_TXT + +## Uncomment this to forbid admins from possessing the singularity. +#FORBID_SINGULO_POSSESSION + +## Uncomment to show a popup 'reply to' window to every non-admin that receives an adminPM. +## The intention is to make adminPMs more visible. (although I fnd popups annoying so this defaults to off) +#POPUP_ADMIN_PM + +## Uncomment to allow special 'Easter-egg' events on special holidays such as seasonal holidays and stuff like 'Talk Like a Pirate Day' :3 YAARRR +ALLOW_HOLIDAYS + +## Uncomment to show the names of the admin sending a pm from IRC instead of showing as a stealthmin. +#SHOW_IRC_NAME + +## Defines the ticklimit for subsystem initialization (In percents of a byond tick). Lower makes world start smoother. Higher makes it faster. +##This is currently a testing optimized setting. A good value for production would be 98. +TICK_LIMIT_MC_INIT 500 + +##Defines the ticklag for the world. Ticklag is the amount of time between game ticks (aka byond ticks) (in 1/10ths of a second). +## This also controls the client network update rate, as well as the default client fps +TICKLAG 0.5 + +##Can also be set as per-second value, the following value is identical to the above. +#FPS 20 + +## Comment this out to disable automuting +#AUTOMUTE_ON + +## Uncomment this to let players see their own notes (they can still be set by admins only) +#SEE_OWN_NOTES + +### Comment these two out to prevent notes fading out over time for admins. +## Notes older then this will start fading out. +NOTE_FRESH_DAYS 91.31055 +## Notes older then this will be completely faded out. +NOTE_STALE_DAYS 365.2422 + +##Note: all population caps can be used with each other if desired. + +## Uncomment for 'soft' population caps, players will be warned while joining if the living crew exceeds the listed number. +#SOFT_POPCAP 100 + +## Message for soft cap +SOFT_POPCAP_MESSAGE Be warned that the server is currently serving a high number of users, consider using alternative game servers. + +## Uncomment for 'hard' population caps, players will not be allowed to spawn if the living crew exceeds the listed number, though they may still observe or wait for the living crew to decrease in size. +#HARD_POPCAP 150 + +## Message for hard cap +HARD_POPCAP_MESSAGE The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers. + +## Uncomment for 'extreme' population caps, players will not be allowed to join the server if living crew exceeds the listed number. +#EXTREME_POPCAP 200 + +## Message for extreme cap +EXTREME_POPCAP_MESSAGE The server is currently serving a high number of users, find alternative servers. + +## Notify admins when a new player connects for the first x days a player's been around. (0 for first connection only, -1 for never) +## Requres database +NOTIFY_NEW_PLAYER_AGE 0 + +## Notify admins when a player connects if their byond account was created in the last X days +## Requires database +NOTIFY_NEW_PLAYER_ACCOUNT_AGE 1 + +## Notify the irc channel when a new player makes their first connection +## Requres database +#IRC_FIRST_CONNECTION_ALERT + +## Deny all new connections by ckeys we haven't seen before (exempts admins and only denies the connection if the database is enabled and connected) +## Requires database +#PANIC_BUNKER + +## If a player connects during a bunker with less then or this amount of living time (Minutes), we deny the connection +#PANIC_BUNKER_LIVING 90 + +## The message the Panic Bunker gives when someone is rejected by it +## %minutes% is replaced with PANIC_BUNKER_LIVING on runtime, remove it if you don't want this +#PANIC_BUNKER_MESSAGE Sorry, but the server is currently not accepting connections from players with less than %minutes% minutes of living time. + +## If panic bunker is on and a player is rejected (see above), attempt to send them to this connected server (see below) instead. +## You probably want this to be the same as CROSS_SERVER_ADDRESS +#PANIC_SERVER_ADDRESS byond://address:port + +##Name of the place to send people rejected by the bunker +#PANIC_SERVER_NAME [Put the name here] + +##Automated age verification, comment this out to not ask new users if they are 18+ +#AGE_VERIFICATION + +## Uncomment to have the changelog file automatically open when a user connects and hasn't seen the latest changelog +#AGGRESSIVE_CHANGELOG + +## Comment this out if you've used the mass conversion sql proc for notes or want to stop converting notes +AUTOCONVERT_NOTES + +## Comment this out to stop admin messages sent anytime an admin disconnects from a round in play, you can edit the messages in admin.dm +ANNOUNCE_ADMIN_LOGOUT + +## Uncomment to have an admin message sent anytime an admin connects to a round in play, you can edit the messages in admin.dm +#ANNOUNCE_ADMIN_LOGIN + +## Map rotation +## You should edit maps.txt to match your configuration when you enable this. +MAPROTATION + +## TG-style map rotation +## By default, Citadel uses a more traditional method of map voting, where at the end of a round, players are given a full upfront vote. +## This PR will disable that, and will make the server use TG's map rotation instead. +#TGSTYLE_MAPROTATION + +## Map voting +## Allows players to vote for their preffered map +## When it's set to zero, the map will be randomly picked each round +ALLOW_MAP_VOTING 1 + +## Map voting type +## Determines what kind of vote the map vote is +## Options are: +## PLURALITY (default, only vote for one option) +## APPROVAL (can vote for as many as you want), I +## IRV (vote by ranked choice, winner determined by instant runoff algorithm) +## SCORE (give individual rankings of each choice, winner determined by majority judgement algorithm) +MAP_VOTE_TYPE APPROVAL + +## Map rotate chance delta +## This is the chance of map rotation factored to the round length. +## A value of 1 would mean the map rotation chance is the round length in minutes (hour long round == 60% rotation chance) +## A value of 0.5 would mean the map rotation chance is half of the round length in minutes (hour long round == 30% rotation chance) +#MAPROTATIONCHANCEDELTA 0.75 + +## AUTOADMIN +## The default admin rank +AUTOADMIN_RANK Game Master + +## Uncomment to automatically give that admin rank to all players +#AUTOADMIN + +## CLIENT VERSION CONTROL +## This allows you to configure the minimum required client version, as well as a warning version, and message for both. +## These trigger for any version below (non-inclusive) the given version, so 510 triggers on 509 or lower. +## These messages will be followed by one stating the clients current version and the required version for clarity. +## If CLIENT_WARN_POPUP is uncommented a popup window with the message will be displayed instead +#CLIENT_WARN_VERSION 511 +#CLIENT_WARN_POPUP +#CLIENT_WARN_MESSAGE Byond released 511 as the stable release. You can set the framerate your client runs at, which makes the game feel very different and cool. Shortly after its release we will end up using 511 client features and you will be forced to update. +CLIENT_ERROR_VERSION 511 +CLIENT_ERROR_MESSAGE Your version of byond is not supported. Please upgrade. +## The minimum build needed for joining the server, if using 512, a good minimum build would be 1421 as that disables the Middle Mouse Button exploit. +CLIENT_ERROR_BUILD 1421 + +## TOPIC RATE LIMITING +## This allows you to limit how many topic calls (clicking on an interface window) the client can do in any given game second and/or game minute. +## Admins are exempt from these limits. +## Hitting the minute limit notifies admins. +## Set to 0 or comment out to disable. +SECOND_TOPIC_LIMIT 10 + +MINUTE_TOPIC_LIMIT 100 + + +## CLICK RATE LIMITING +## Same as above, but applies to clicking on objects in the game window. +## This should be a higher then the interface limit to allow for the spam clickly nature of most battles. +## Admins are exempt from these limits. +## Hitting the minute limit notifies admins. +## Set to 0 to disable. +SECOND_CLICK_LIMIT 15 + +MINUTE_CLICK_LIMIT 400 + +##Error handling related options +## The "cooldown" time for each occurence of a unique error +#ERROR_COOLDOWN 600 +## How many occurences before the next will silence them +#ERROR_LIMIT 90 +## How long a unique error will be silenced for +#ERROR_SILENCE_TIME 6000 +##How long to wait between messaging admins about occurences of a unique error +#ERROR_MSG_DELAY 50 + +## Chat Announce Options +## Various messages to be sent to game chats +## Uncommenting these will enable them, by default they will be broadcast to Game chat channels on TGS3 or non-admin channels on TGS4 +## If using TGS4, the string option can be set as a chat channel tag to limit the message to channels of that tag type (case-sensitive) +## i.e. CHAT_ANNOUNCE_NEW_GAME chat_channel_tag + +## Send a message with the station name starting a new game +#CHAT_ANNOUNCE_NEW_GAME + +## Allow admin hrefs that don't use the new token system, will eventually be removed +DEBUG_ADMIN_HREFS + +###Master Controller High Pop Mode### + +##The Master Controller(MC) is the primary system controlling timed tasks and events in SS13 (lobby timer, game checks, lighting updates, atmos, etc) +##Default base MC tick rate (1 = process every "byond tick" (see: tick_lag/fps config settings), 2 = process every 2 byond ticks, etc) +## Setting this to 0 will prevent the Master Controller from ticking +BASE_MC_TICK_RATE 1 + +##High population MC tick rate +## Byond rounds timer values UP, but the tick rate is modified with heuristics during lag spites so setting this to something like 2 +## will make it run every 2 byond ticks, but will also double the effect of anti-lag heuristics. You can instead set it to something like +## 1.1 to make it run every 2 byond ticks, but only increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%. +## (As an aside, you could in theory also reduce the effect of anti-lag heuristics in the base tick rate by setting it to something like 0.5) +HIGH_POP_MC_TICK_RATE 1.1 + +##Engage high pop mode if player count raises above this (Player in this context means any connected user. Lobby, ghost or in-game all count) +HIGH_POP_MC_MODE_AMOUNT 65 + +##Disengage high pop mode if player count drops below this +DISABLE_HIGH_POP_MC_MODE_AMOUNT 60 + +## Uncomment to prevent the world from sleeping while no players are connected after initializations +#RESUME_AFTER_INITIALIZATIONS + +## Uncomment to set the number of /world/Reboot()s before the DreamDaemon restarts itself. 0 means restart every round. Requires tgstation server tools. +#ROUNDS_UNTIL_HARD_RESTART 10 + +## Number of days for an individual panic bunker passthrough entry to be wiped. Note that they're also wiped as soon as a player is in the database. +#MAX_BUNKER_DAYS 7 + +##Default screen resolution, in tiles. +## By default, this is 15x15, which gets simplified to 7 by BYOND, as it is a 1:1 screen ratio. +## For reference, Goonstation uses a resolution of 21x15 for it's widescreen mode. +## Do note that changing this value will affect the title screen. The title screen will have to be updated manually if this is changed. +DEFAULT_VIEW 21x15 + +### FAIL2TOPIC: +### Automated IP bans for world/Topic() spammers +### NOTE FOR WINDOWS HOSTS: This requires you to be running dreamdaemon as an administrator for it to work at all. TGS3 handles this automatically, and honestly there's no reason not to be using TGS3 if you're hosting on Windows. +### NOTE FOR LINUX HOSTS: This requires manual setup of iptables. Beware that improper configuration of this can and will irreversibly fuck up a server, so please don't tinker with it if you don't know what you're doing. +## Enabled +#FAIL2TOPIC_ENABLED +## Minimum wait time in deciseconds between valid requests +FAIL2TOPIC_RATE_LIMIT 10 +## Number of requests after breaching rate limit that triggers a ban +FAIL2TOPIC_MAX_FAILS 5 +## Firewall rule name used on physical server +## FOR LINUX HOSTS: This is used as the chain name. The iptables chain doesn't get created or hooked up to INPUT automatically, so you'll have to get that set up yourself. Recommended name: BYOND +FAIL2TOPIC_RULE_NAME _dd_fail2topic + +## Enable automatic profiling - Byond 513.1506 and newer only. +#AUTO_PROFILE + +## Uncomment to enable global ban DB using the provided URL. The API should expect to receive a ckey at the end of the URL. +## More API details can be found here: https://centcom.melonmesa.com +CENTCOM_BAN_DB https://centcom.melonmesa.com/ban/search diff --git a/config/entries/logging.txt b/config/entries/logging.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/persistence.txt b/config/entries/persistence.txt similarity index 100% rename from config/persistence.txt rename to config/entries/persistence.txt diff --git a/config/policy.txt b/config/entries/policy.txt similarity index 100% rename from config/policy.txt rename to config/entries/policy.txt diff --git a/config/entries/resources.txt b/config/entries/resources.txt new file mode 100644 index 0000000000..4fc0f7c947 --- /dev/null +++ b/config/entries/resources.txt @@ -0,0 +1,4 @@ +## List of urls to external CDNs for the .rsc file. +## MUST BE HTTP, NOT HTTPS DUE TO BYOND LIMItATIONS + +# EXTERNAL_RSC_URLS http://www.citadel-station.net/example.rsc diff --git a/config/respawns.txt b/config/entries/respawns.txt similarity index 100% rename from config/respawns.txt rename to config/entries/respawns.txt diff --git a/config/entries/stamina_combat.txt b/config/entries/stamina_combat.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/job_threats.txt b/config/entries/threat.txt similarity index 100% rename from config/job_threats.txt rename to config/entries/threat.txt From 711e250e26dba001d83b5cce5f8d62e5d8227f52 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 14:18:56 -0700 Subject: [PATCH 031/173] AAAA --- .../configuration/entries/fail2topic.dm | 1 - .../configuration/entries/logging.dm | 1 + config/config.txt | 11 +++ config/entries/antag_rep.txt | 14 ++++ config/entries/comms.txt | 5 +- config/entries/dbconfig.txt | 3 + config/entries/donator.txt | 5 +- config/entries/dyanmic.txt | 9 +++ config/entries/fail2topic.txt | 20 ++++++ config/entries/general.txt | 70 ------------------ config/entries/logging.txt | 72 +++++++++++++++++++ config/entries/policy.txt | 10 ++- config/entries/resources.txt | 40 ++++++++++- config/entries/respawns.txt | 6 +- config/entries/stamina_combat.txt | 24 +++++++ config/entries/threat.txt | 2 +- config/external_rsc_urls.txt | 0 config/resources.txt | 38 ---------- tgstation.dme | 2 + 19 files changed, 214 insertions(+), 119 deletions(-) delete mode 100644 config/external_rsc_urls.txt delete mode 100644 config/resources.txt diff --git a/code/controllers/configuration/entries/fail2topic.dm b/code/controllers/configuration/entries/fail2topic.dm index 7ed09b378a..3187997c39 100644 --- a/code/controllers/configuration/entries/fail2topic.dm +++ b/code/controllers/configuration/entries/fail2topic.dm @@ -9,7 +9,6 @@ protection = CONFIG_ENTRY_LOCKED //affects physical server configuration, no touchies!! /datum/config_entry/flag/fail2topic_enabled - config_entry_value = TRUE /datum/config_entry/number/topic_max_size config_entry_value = 8192 diff --git a/code/controllers/configuration/entries/logging.dm b/code/controllers/configuration/entries/logging.dm index 1cb47d6ab7..81cd54cbb0 100644 --- a/code/controllers/configuration/entries/logging.dm +++ b/code/controllers/configuration/entries/logging.dm @@ -9,6 +9,7 @@ /datum/config_entry/flag/log_admin // log admin actions protection = CONFIG_ENTRY_LOCKED + config_entry_value = TRUE /datum/config_entry/flag/log_prayer // log prayers config_entry_value = TRUE diff --git a/config/config.txt b/config/config.txt index 99f07abe78..583e733f4d 100644 --- a/config/config.txt +++ b/config/config.txt @@ -1,5 +1,16 @@ # You can use the "$include" directive to split your configs however you want +# MAKE SURE ENTRIES ARE SORTED IN THE SAME FASHION THEY ARE IN THE .dm +# if you don't do this i will find you and put lemons on your eyes. + +# You can use the @ character at the beginning of a config option to lock it from being edited in-game +# Example usage: +# @SERVERNAME tgstation +# Which sets the SERVERNAME, and disallows admins from being able to change it using View Variables. +# @LOG_TWITTER 0 +# Which explicitly disables LOG_TWITTER, as well as locking it. +# There are various options which are hard-locked for security reasons. + $include entries/antag_rep.txt $include entries/comms.txt $include entries/dbconfig.txt diff --git a/config/entries/antag_rep.txt b/config/entries/antag_rep.txt index e8a7250686..6cd9315a0c 100644 --- a/config/entries/antag_rep.txt +++ b/config/entries/antag_rep.txt @@ -1,3 +1,17 @@ +## disclaimer: this is a confusing file. reading and understanding antag rep code is recommended for future headmins/server leads. + +## Use the antagonist reputation system +# ANTAG_REP + +## Maximum antag roll ticketts someone can have +# ANTAG_REP_MAXIMUM 200 + +## "Free" tickets someone gets on roll +# DEFAULT_ANTAG_TICKETS 100 + +## Maximum **STORED** tickets used ontop of default per roll +# MAX_TICKETS_PER_ROLL 100 + ## Custom antag reputation values ## List of job titles followed by antag rep value, all prefixed with ANTAG_REP. See code/modules/jobs/job_types for titles ## e.g. diff --git a/config/entries/comms.txt b/config/entries/comms.txt index ae336d484b..7af6a758d3 100644 --- a/config/entries/comms.txt +++ b/config/entries/comms.txt @@ -7,9 +7,12 @@ #CROSS_SERVER ServerName byond:\\address:port ## Name that the server calls itself in communications -#CROSS_COMMS_NAME +# CROSS_COMMS_NAME Citadel Main ## Network-name used for cross-server broadcasts made from communication consoles. ## Servers that do not match this network-name will have their messages discarded. ## Leaving this commented will allow all messages through, regardless of network. #CROSS_COMMS_NETWORK default_network + +## CITADEL CONFIG: List of cross server URLs, same as CROSS_SERVER, to send bunker override messages for +## Format is the same as CROSS_SERVER. diff --git a/config/entries/dbconfig.txt b/config/entries/dbconfig.txt index 3a058fe563..d5bc37bce7 100644 --- a/config/entries/dbconfig.txt +++ b/config/entries/dbconfig.txt @@ -43,3 +43,6 @@ BSQL_THREAD_LIMIT 50 ## Uncomment to enable verbose BSQL communication logs #BSQL_DEBUG + +## Time to wait before considering a query as lingering too long +@QUERY_DEBUG_LOG_TIMEOUT 70 diff --git a/config/entries/donator.txt b/config/entries/donator.txt index b26d1efe22..42c0461bf8 100644 --- a/config/entries/donator.txt +++ b/config/entries/donator.txt @@ -1,4 +1,7 @@ -#this is a bad system but I'm lazy so it piggybacks off config loader system. +## Citadel donator system +## this is a bad system but I'm lazy so it piggybacks off config loader system. +## File isn't properly documented because the donator system desperately needs a rewrite and I can't be arsed to right now. + #Specify group followed by ckey for each ckey. #TIER_1_DONATORS test_ckey diff --git a/config/entries/dyanmic.txt b/config/entries/dyanmic.txt index 480f6d8ed8..e08fb7634d 100644 --- a/config/entries/dyanmic.txt +++ b/config/entries/dyanmic.txt @@ -307,3 +307,12 @@ DYNAMIC_ASSASSINATE_COST 2 DYNAMIC_WAROPS_REQUIREMENT 60 DYNAMIC_WAROPS_COST 10 + +## Storyteller min players +# STORYTELLER_MIN_PLAYERS CHAOTIC 35 + +## Storyteller minimum chaos +# STORYTELLER_MIN_CHAOS CHAOTIC 75 + +## Storyteller maximum chaos +# STORYTELLER_MAX_CHAOS CHAOTIC 250 diff --git a/config/entries/fail2topic.txt b/config/entries/fail2topic.txt index e69de29bb2..77af89b5aa 100644 --- a/config/entries/fail2topic.txt +++ b/config/entries/fail2topic.txt @@ -0,0 +1,20 @@ +## Fail2topic +## Disclaimer: If you don't know what you're doing, don't touch this + +## Firewall rule name +@FAIL2TOPIC_RULE_NAME + +## Fail2topic enabled/disabled +FAIL2TOPIC_ENABLED + +## Topic max size before it's rejected, using BYOND length() +TOPIC_MAX_SIZE 8192 + +## Fail2topic rate limit whitelist. Using any external IPs is not recommended. +# TOPIC_RATE_LIMIT_WHITELIST 127.0.0.1:1337 + +## Max fails before something gets firewalled +FAIL2TOPIC_MAX_FAILS 5 + +## Fail2topic rate limit of 1 topic per this many deciseconds +FAIL2TOPIC_RATE_LIMIT 10 diff --git a/config/entries/general.txt b/config/entries/general.txt index e3a2743071..3a5e39e20d 100644 --- a/config/entries/general.txt +++ b/config/entries/general.txt @@ -1,12 +1,4 @@ -# You can use the @ character at the beginning of a config option to lock it from being edited in-game -# Example usage: -# @SERVERNAME tgstation -# Which sets the SERVERNAME, and disallows admins from being able to change it using View Variables. -# @LOG_TWITTER 0 -# Which explicitly disables LOG_TWITTER, as well as locking it. -# There are various options which are hard-locked for security reasons. - ## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice. # SERVERNAME tgstation @@ -81,69 +73,7 @@ MENTOR_LEGACY_SYSTEM ## Allows admins to bypass job playtime requirements. #USE_EXP_RESTRICTIONS_ADMIN_BYPASS -## log OOC channel -LOG_OOC -## log client Say -LOG_SAY - -## log admin actions -LOG_ADMIN - -## log admin chat -LOG_ADMINCHAT - -## log client access (logon/logoff) -LOG_ACCESS - -## log game actions (start of round, results, etc.) -LOG_GAME - -## log player votes -LOG_VOTE - -## log player crafting -LOG_CRAFT - -## log client Whisper -LOG_WHISPER - -## log emotes -LOG_EMOTE - -## log attack messages -LOG_ATTACK - -## log pda messages -LOG_PDA - -## log telecomms messages -LOG_TELECOMMS - -## log prayers -LOG_PRAYER - -## log lawchanges -LOG_LAW - -## log crew manifest to seperate file -LOG_MANIFEST - -## log job divide debugging information -#LOG_JOB_DEBUG - -## log all world.Topic() calls -# LOG_WORLD_TOPIC - -## enables use of the proc twitterize() that lets you take a large list of strings and turn it into a JSON file of tweet sized strings. -## As an example of how this could be """useful""" look towards Poly (https://twitter.com/Poly_the_Parrot) -# LOG_TWITTER - -## Enable logging pictures -# LOG_PICTURES - -## log virus and actions -LOG_VIRUS ##Log camera pictures - Must have picture logging enabled PICTURE_LOGGING_CAMERA diff --git a/config/entries/logging.txt b/config/entries/logging.txt index e69de29bb2..f0eb652b6a 100644 --- a/config/entries/logging.txt +++ b/config/entries/logging.txt @@ -0,0 +1,72 @@ +## log OOC channel +LOG_OOC + +## log client Say +LOG_SAY + +## log admin actions +@LOG_ADMIN + +## log admin chat +@LOG_ADMINCHAT + +## log client access (logon/logoff) +LOG_ACCESS + +## log game actions (start of round, results, etc.) +LOG_GAME + +## log player votes +LOG_VOTE + +## log player crafting +LOG_CRAFT + +## log client Whisper +LOG_WHISPER + +## log emotes +LOG_EMOTE + +## log attack messages +LOG_ATTACK + +## log pda messages +LOG_PDA + +## log telecomms messages +LOG_TELECOMMS + +## log prayers +LOG_PRAYER + +## log lawchanges +LOG_LAW + +## log crew manifest to seperate file +LOG_MANIFEST + +## log job divide debugging information +LOG_JOB_DEBUG + +## Log shuttle related actions +LOG_SHUTTLE + +## log all world.Topic() calls +LOG_WORLD_TOPIC + +## enables use of the proc twitterize() that lets you take a large list of strings and turn it into a JSON file of tweet sized strings. +## As an example of how this could be """useful""" look towards Poly (https://twitter.com/Poly_the_Parrot) +# LOG_TWITTER + +## Enable logging pictures +LOG_PICTURES + +## Log camera pictures +PICTURE_LOGGING_CAMERA + +## log virus and actions +LOG_VIRUS + +## Log all raw hrefs of tgui, rather than letting tgui logging handle it. KEEP THIS OFF UNLESS YOU KNOW WHAT YOU ARE DOING. +# EMERGENCY_TGUI_LOGGING diff --git a/config/entries/policy.txt b/config/entries/policy.txt index 502b525ad0..a763bc2b28 100644 --- a/config/entries/policy.txt +++ b/config/entries/policy.txt @@ -10,7 +10,15 @@ ## EXAMPLE: ## POLICYCONFIG ON_CLONE insert text here span classes are fully supported +POLICYCONFIG ON_CLONE Your thoughts are hazy as the cloning algorithms reboot your consciousness. Unfortunately for you, the imperfect nature of the process has left out your more recent, less entrenched memories.
You only remember vague details of your death, without clear recollection of who or what is specifically responsible for your demise.
(If you were murdered, you do not remember the exact name or appearance of your killer, only vague details of how they killed you rather than the exact murder weapon. (ex: drank something and blanked out, felt an impact in the back and bled out)
If you died to environmental hazards like ash storms or spacing, this is not as applicable -- however, keep in mind that if someone set you up to die to that, like being tossed forcefully into space, that the previous clause of not remembering killer name in a murder applies!
+ +POLICYCONFIG ON_DEFIB_LATE Your mind barely responds as first as you are forcefully returned to the world of the living after all too long in a state of decay. While medicine may restore your brain functions, you can't seem to remember your latest memories...
You only remember vague details of your death, without clear recollection of who or what is specifically responsible for your demise.
(If you were murdered, you do not remember the exact name or appearance of your killer, only vague details of how they killed you rather than the exact murder weapon. (ex: drank something and blanked out, felt an impact in the back and bled out)
If you died to environmental hazards like ash storms or spacing, this is not as applicable -- however, keep in mind that if someone set you up to die to that, like being tossed forcefully into space, that the previous clause of not remembering killer name in a murder applies!
+ +POLICYCONFIG ON_DEFIB_INTACT You barely miss a beat as you gasp, awakening from the slumber of the deceased. The rapid resuscitation has saved you from the worst effects of brain damage.
You recall all information leading up to your death and exact details on method of death and killer if applicable, as long as you were conscious to witness such. + +POLICYCONFIG PAI If you are given an ERP-related directive without OOC consent, ahelp immediately.w + ## Misc entries for above ## Defib time limit for "cloning memory disorder" memory loss in seconds -# DEFIB_CMD_TIME_LIMIT 300 +DEFIB_CMD_TIME_LIMIT 300 diff --git a/config/entries/resources.txt b/config/entries/resources.txt index 4fc0f7c947..909bef0809 100644 --- a/config/entries/resources.txt +++ b/config/entries/resources.txt @@ -1,4 +1,38 @@ -## List of urls to external CDNs for the .rsc file. -## MUST BE HTTP, NOT HTTPS DUE TO BYOND LIMItATIONS +# External resources +# Set this to the location of a .zip with the server's .rsc inside of it. +# If you set this mutiple times, the server will rotate between the links. +# To use this, the compile option PRELOAD_RSC must be set to 0 to keep byond from preloading resources -# EXTERNAL_RSC_URLS http://www.citadel-station.net/example.rsc +EXTERNAL_RSC_URLS http://tgstation13.download/byond/tgstationv2.zip + + +######################## +# Browser Asset Config # +######################## +# Browser assets are any file included in interfaces. css, images, javascript, etc. +# This handles configuring how we get these to the player so interfaces can access them. + +# Asset Transport +# The normal way of getting assets to clients is to use the internal byond system. This can be slow and delay the opening of interface windows. It also doesn't allow the internal IE windows byond uses to cache anything. +# You can instead have the server save them to a website via a folder within the game server that the web server can read. This could be a simple webserver or something backed by a CDN. +# Valid values: simple, webroot. Simple is the default. +#ASSET_TRANSPORT webroot + + +# Simple asset transport configurable values. + +# Uncomment this to have the server passively send all browser assets to each client in the background. (instead of waiting for them to be needed) +# This should be uncommented in production and commented in development +#ASSET_SIMPLE_PRELOAD + + +# Webroot asset transport configurable values. + +# Local folder to save assets to. +# Assets will be saved in the format of asset.MD5HASH.EXT or in namespaces/hash/ as ASSET_FILE_NAME or asset.MD5HASH.EXT +#ASSET_CDN_WEBROOT data/asset-store/ + +# URL the folder from above can be accessed from. +# for best results the webserver powering this should return a long cache validity time, as all assets sent via this transport use hash based urls +# if you want to test this locally, you simpily run the `localhost-asset-webroot-server.py` python3 script to host assets stored in `data/asset-store/` via http://localhost:58715/ +#ASSET_CDN_URL http://localhost:58715/ diff --git a/config/entries/respawns.txt b/config/entries/respawns.txt index 804a856a93..41c76eaabc 100644 --- a/config/entries/respawns.txt +++ b/config/entries/respawns.txt @@ -2,7 +2,7 @@ RESPAWNS_ENABLED ## Minutes delay before allowing respawns, either from death or observing. Not an integer. -RESPAWN_DELAY 15.0 +RESPAWN_DELAY 10.0 ## Minutes delay before allowing respawns, if the user cryo'd. Not an integer. RESPAWN_DELAY_CRYO 5.0 @@ -16,8 +16,8 @@ ALLOW_NON_ASSISTANT_RESPAWN ## Allow respawning as the same character # ALLOW_SAME_CHARACTER_RESPAWN -## Observing is considered a respawn for the purposes of role lockouts. Defaults to disabled. When disabled, only RESPAWNING rather than returning from observe locks you out. -# RESPAWN_PENALTY_INCLUDES_OBSERVE +## Observing is considered a respawn for the purposes of role lockouts. Defaults to disabled. When disabled, only RESPAWNING rather than returning from observer locks you out. +RESPAWN_PENALTY_INCLUDES_OBSERVE ## Time in minutes from round start before respawn is enabled RESPAWN_MINIMUM_DELAY_ROUNDSTART 30.0 diff --git a/config/entries/stamina_combat.txt b/config/entries/stamina_combat.txt index e69de29bb2..7268deb223 100644 --- a/config/entries/stamina_combat.txt +++ b/config/entries/stamina_combat.txt @@ -0,0 +1,24 @@ +## haha these keys are going to collide with other stuff for sure someday + +## OUT_OF_COMBAT_TIMER, PERCENT_REGENERATION_OUT_OF_COMBAT disabled - combat mode has been yanked from the codebase and made a UI toggle. + +## Maximum stamina buffer +BUFFER_MAX 25 + +## Seconds until out of combat regen kicks in +# OUT_OF_COMBAT_TIMER 15 + +## Base regen per second +BASE_REGENERATION 3.5 + +## Regenerate this % of total buffer when out of combat +# PERCENT_REGENERATION_OUT_OF_COMBAT + +## Seconds after an action for which regeneration is penalized +POST_ACTION_PENALTY_DELAY 5 + +## Factor to multiply by for penalizing post action regen +POST_ACTION_PENALTY_FACTOR 0.25 + +## Factor to multiply by for stamina usage past buffer into health +OVERDRAW_PENALTY_FACTOR 1.5 diff --git a/config/entries/threat.txt b/config/entries/threat.txt index e57edb66e4..fa7c5cffa5 100644 --- a/config/entries/threat.txt +++ b/config/entries/threat.txt @@ -6,4 +6,4 @@ ## Custom antag threat values, see above ## e.g. -## ANTAG_THREAT Traitor 5 \ No newline at end of file +## ANTAG_THREAT Traitor 5 diff --git a/config/external_rsc_urls.txt b/config/external_rsc_urls.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/config/resources.txt b/config/resources.txt deleted file mode 100644 index 909bef0809..0000000000 --- a/config/resources.txt +++ /dev/null @@ -1,38 +0,0 @@ -# External resources -# Set this to the location of a .zip with the server's .rsc inside of it. -# If you set this mutiple times, the server will rotate between the links. -# To use this, the compile option PRELOAD_RSC must be set to 0 to keep byond from preloading resources - -EXTERNAL_RSC_URLS http://tgstation13.download/byond/tgstationv2.zip - - -######################## -# Browser Asset Config # -######################## -# Browser assets are any file included in interfaces. css, images, javascript, etc. -# This handles configuring how we get these to the player so interfaces can access them. - -# Asset Transport -# The normal way of getting assets to clients is to use the internal byond system. This can be slow and delay the opening of interface windows. It also doesn't allow the internal IE windows byond uses to cache anything. -# You can instead have the server save them to a website via a folder within the game server that the web server can read. This could be a simple webserver or something backed by a CDN. -# Valid values: simple, webroot. Simple is the default. -#ASSET_TRANSPORT webroot - - -# Simple asset transport configurable values. - -# Uncomment this to have the server passively send all browser assets to each client in the background. (instead of waiting for them to be needed) -# This should be uncommented in production and commented in development -#ASSET_SIMPLE_PRELOAD - - -# Webroot asset transport configurable values. - -# Local folder to save assets to. -# Assets will be saved in the format of asset.MD5HASH.EXT or in namespaces/hash/ as ASSET_FILE_NAME or asset.MD5HASH.EXT -#ASSET_CDN_WEBROOT data/asset-store/ - -# URL the folder from above can be accessed from. -# for best results the webserver powering this should return a long cache validity time, as all assets sent via this transport use hash based urls -# if you want to test this locally, you simpily run the `localhost-asset-webroot-server.py` python3 script to host assets stored in `data/asset-store/` via http://localhost:58715/ -#ASSET_CDN_URL http://localhost:58715/ diff --git a/tgstation.dme b/tgstation.dme index 7e70fa06d5..3d7075466f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -292,6 +292,7 @@ #include "code\controllers\subsystem.dm" #include "code\controllers\configuration\config_entry.dm" #include "code\controllers\configuration\configuration.dm" +#include "code\controllers\configuration\entries\antag_rep.dm" #include "code\controllers\configuration\entries\comms.dm" #include "code\controllers\configuration\entries\dbconfig.dm" #include "code\controllers\configuration\entries\donator.dm" @@ -306,6 +307,7 @@ #include "code\controllers\configuration\entries\resources.dm" #include "code\controllers\configuration\entries\respawns.dm" #include "code\controllers\configuration\entries\stamina_combat.dm" +#include "code\controllers\configuration\entries\threat.dm" #include "code\controllers\subsystem\achievements.dm" #include "code\controllers\subsystem\acid.dm" #include "code\controllers\subsystem\activity.dm" From 5e1cb8da388c620f9a65339e2d7db785f155211e Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 14:27:38 -0700 Subject: [PATCH 032/173] more --- code/modules/mob/living/silicon/robot/robot_defense.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index e7e05fd6d8..5342638c03 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -87,7 +87,11 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real vtec_disable(10 SECONDS) /mob/living/silicon/robot/proc/vtec_disable(time) - apply_status_effect(/datum/status_effect/vtec_disabled, time) + var/datum/status_effect/vtec_disabled/V = has_status_effect(/datum/status_effect/vtec_disabled) + if(V) + V.duration = max(V.duration, world.time + time) + else + apply_status_effect(/datum/status_effect/vtec_disabled, time) update_movespeed() /mob/living/silicon/robot/fire_act() From 55608737fa1a7fd2123506435ddc420a9ee60d3c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 14:51:55 -0700 Subject: [PATCH 033/173] more.. --- .../configuration/entries/admin.dm | 64 ++ .../configuration/entries/alert.dm | 26 + .../configuration/entries/connections.dm | 106 +++ .../configuration/entries/debris.dm | 16 + .../configuration/entries/fetish_content.dm | 45 ++ .../configuration/entries/game_options.dm | 593 ---------------- .../configuration/entries/gamemodes.dm | 89 +++ .../configuration/entries/general.dm | 668 ++++++++---------- .../controllers/configuration/entries/jexp.dm | 17 + .../configuration/entries/logging.dm | 13 + .../configuration/entries/movespeed.dm | 124 ++++ .../configuration/entries/policy.dm | 4 +- .../entries/{fail2topic.dm => security.dm} | 16 + .../configuration/entries/server.dm | 90 +++ .../configuration/entries/stamina_combat.dm | 2 + .../controllers/configuration/entries/urls.dm | 26 + .../controllers/configuration/entries/vote.dm | 52 ++ .../chemistry/reagents/drink_reagents.dm | 4 +- config/entries/admin.txt | 0 config/entries/alert.txt | 0 config/entries/connections.txt | 0 config/entries/debris.txt | 0 config/entries/fetish_content.txt | 0 config/entries/gamemodes.txt | 0 config/entries/jexp.txt | 0 config/entries/logging.txt | 13 + config/entries/movespeed.txt | 127 ++++ config/entries/policy.txt | 10 +- .../entries/{fail2topic.txt => security.txt} | 0 config/entries/server.txt | 0 config/entries/stamina_combat.txt | 4 + config/entries/urls.txt | 0 config/entries/vote.txt | 0 tgstation.dme | 14 +- 34 files changed, 1136 insertions(+), 987 deletions(-) create mode 100644 code/controllers/configuration/entries/admin.dm create mode 100644 code/controllers/configuration/entries/alert.dm create mode 100644 code/controllers/configuration/entries/connections.dm create mode 100644 code/controllers/configuration/entries/debris.dm create mode 100644 code/controllers/configuration/entries/fetish_content.dm delete mode 100644 code/controllers/configuration/entries/game_options.dm create mode 100644 code/controllers/configuration/entries/gamemodes.dm create mode 100644 code/controllers/configuration/entries/jexp.dm create mode 100644 code/controllers/configuration/entries/movespeed.dm rename code/controllers/configuration/entries/{fail2topic.dm => security.dm} (62%) create mode 100644 code/controllers/configuration/entries/server.dm create mode 100644 code/controllers/configuration/entries/urls.dm create mode 100644 code/controllers/configuration/entries/vote.dm create mode 100644 config/entries/admin.txt create mode 100644 config/entries/alert.txt create mode 100644 config/entries/connections.txt create mode 100644 config/entries/debris.txt create mode 100644 config/entries/fetish_content.txt create mode 100644 config/entries/gamemodes.txt create mode 100644 config/entries/jexp.txt create mode 100644 config/entries/movespeed.txt rename config/entries/{fail2topic.txt => security.txt} (100%) create mode 100644 config/entries/server.txt create mode 100644 config/entries/urls.txt create mode 100644 config/entries/vote.txt diff --git a/code/controllers/configuration/entries/admin.dm b/code/controllers/configuration/entries/admin.dm new file mode 100644 index 0000000000..3b5b437742 --- /dev/null +++ b/code/controllers/configuration/entries/admin.dm @@ -0,0 +1,64 @@ +/datum/config_entry/flag/admin_legacy_system //Defines whether the server uses the legacy admin system with admins.txt or the SQL system + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/protect_legacy_admins //Stops any admins loaded by the legacy system from having their rank edited by the permissions panel + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/protect_legacy_ranks //Stops any ranks loaded by the legacy system from having their flags edited by the permissions panel + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/enable_localhost_rank //Gives the !localhost! rank to any client connecting from 127.0.0.1 or ::1 + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/load_legacy_ranks_only //Loads admin ranks only from legacy admin_ranks.txt, while enabled ranks are mirrored to the database + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/mentors_mobname_only + +/datum/config_entry/flag/mentor_legacy_system //Defines whether the server uses the legacy mentor system with mentors.txt or the SQL system + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/forbid_singulo_possession + +/datum/config_entry/flag/see_own_notes //Can players see their own admin notes + +/datum/config_entry/number/note_fresh_days + config_entry_value = null + min_val = 0 + integer = FALSE + +/datum/config_entry/number/note_stale_days + config_entry_value = null + min_val = 0 + integer = FALSE + +/datum/config_entry/flag/autoconvert_notes //if all connecting player's notes should attempt to be converted to the database + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/announce_admin_logout + +/datum/config_entry/flag/announce_admin_login + +/datum/config_entry/string/centcom_ban_db // URL for the CentCom Galactic Ban DB API + +/datum/config_entry/flag/autoadmin // if autoadmin is enabled + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/string/autoadmin_rank // the rank for autoadmins + config_entry_value = "Game Master" + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/allow_admin_ooccolor // Allows admins with relevant permissions to have their own ooc colour + +/datum/config_entry/flag/popup_admin_pm // adminPMs to non-admins show in a pop-up 'reply' window when set + +/datum/config_entry/flag/guest_jobban + +/datum/config_entry/flag/ban_legacy_system //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/flag/guest_ban + +/datum/config_entry/flag/automute_on //enables automuting/spam prevention + +/datum/config_entry/flag/debug_admin_hrefs diff --git a/code/controllers/configuration/entries/alert.dm b/code/controllers/configuration/entries/alert.dm new file mode 100644 index 0000000000..6177c602db --- /dev/null +++ b/code/controllers/configuration/entries/alert.dm @@ -0,0 +1,26 @@ +/datum/config_entry/string/alert_green + config_entry_value = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." + +/datum/config_entry/string/alert_blue_upto + config_entry_value = "The station has received reliable information about potential threats to the station. Security staff may have weapons visible, random searches are permitted." + +/datum/config_entry/string/alert_blue_downto + config_entry_value = "Significant confirmed threats have been neutralized. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still permitted." + +/datum/config_entry/string/alert_amber_upto + config_entry_value = "There are significant confirmed threats to the station. Security staff may have weapons unholstered at all times. Random searches are allowed and advised." + +/datum/config_entry/string/alert_amber_downto + config_entry_value = "The immediate threat has passed. Security is no longer authorized to use lethal force, but may continue to have weapons drawn. Access requirements have been restored." + +/datum/config_entry/string/alert_red_upto + config_entry_value = "There is an immediate serious threat to the station. Security is now authorized to use lethal force. Additionally, access requirements on some machines have been lifted." + +/datum/config_entry/string/alert_red_downto + config_entry_value = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security is still authorized to use lethal force." + +/datum/config_entry/string/alert_delta + config_entry_value = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + +/datum/config_entry/number/minimum_secborg_alert //Minimum alert level for secborgs to be chosen. + config_entry_value = 3 diff --git a/code/controllers/configuration/entries/connections.dm b/code/controllers/configuration/entries/connections.dm new file mode 100644 index 0000000000..acdf588e5a --- /dev/null +++ b/code/controllers/configuration/entries/connections.dm @@ -0,0 +1,106 @@ +/datum/config_entry/flag/panic_bunker // prevents people the server hasn't seen before from connecting + +/datum/config_entry/number/panic_bunker_living // living time in minutes that a player needs to pass the panic bunker + +/datum/config_entry/string/panic_bunker_message + config_entry_value = "Sorry but the server is currently not accepting connections from never before seen players." + +/datum/config_entry/string/panic_server_name + +/datum/config_entry/string/panic_server_name/ValidateAndSet(str_val) + return str_val != "\[Put the name here\]" && ..() + +/datum/config_entry/string/panic_server_address //Reconnect a player this linked server if this server isn't accepting new players + +/datum/config_entry/string/panic_server_address/ValidateAndSet(str_val) + return str_val != "byond://address:port" && ..() + +/datum/config_entry/number/max_bunker_days + config_entry_value = 7 + min_val = 1 + +/datum/config_entry/number/notify_new_player_age // how long do we notify admins of a new player + min_val = -1 + +/datum/config_entry/number/notify_new_player_account_age // how long do we notify admins of a new byond account + min_val = 0 + +/datum/config_entry/flag/age_verification //are we using the automated age verification which asks users if they're 18+? + config_entry_value = TRUE + +/datum/config_entry/flag/irc_first_connection_alert // do we notify the irc channel when somebody is connecting for the first time? + +/datum/config_entry/flag/check_randomizer + +/datum/config_entry/string/ipintel_email + +/datum/config_entry/string/ipintel_email/ValidateAndSet(str_val) + return str_val != "ch@nge.me" && ..() + +/datum/config_entry/number/ipintel_rating_bad + config_entry_value = 1 + integer = FALSE + min_val = 0 + max_val = 1 + +/datum/config_entry/number/ipintel_save_good + config_entry_value = 12 + min_val = 0 + +/datum/config_entry/number/ipintel_save_bad + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/string/ipintel_domain + config_entry_value = "check.getipintel.net" + +/datum/config_entry/flag/aggressive_changelog + +/datum/config_entry/flag/allow_webclient + +/datum/config_entry/flag/webclient_only_byond_members + +/datum/config_entry/number/client_warn_version + config_entry_value = null + min_val = 500 + +/datum/config_entry/number/client_warn_version + config_entry_value = null + min_val = 500 + +/datum/config_entry/string/client_warn_message + config_entry_value = "Your version of byond may have issues or be blocked from accessing this server in the future." + +/datum/config_entry/flag/client_warn_popup + +/datum/config_entry/number/client_error_version + config_entry_value = null + min_val = 500 + +/datum/config_entry/string/client_error_message + config_entry_value = "Your version of byond is too old, may have issues, and is blocked from accessing this server." + +/datum/config_entry/number/client_error_build + config_entry_value = null + min_val = 0 + +/datum/config_entry/number/soft_popcap + config_entry_value = null + min_val = 0 + +/datum/config_entry/number/hard_popcap + config_entry_value = null + min_val = 0 + +/datum/config_entry/number/extreme_popcap + config_entry_value = null + min_val = 0 + +/datum/config_entry/string/soft_popcap_message + config_entry_value = "Be warned that the server is currently serving a high number of users, consider using alternative game servers." + +/datum/config_entry/string/hard_popcap_message + config_entry_value = "The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers." + +/datum/config_entry/string/extreme_popcap_message + config_entry_value = "The server is currently serving a high number of users, find alternative servers." diff --git a/code/controllers/configuration/entries/debris.dm b/code/controllers/configuration/entries/debris.dm new file mode 100644 index 0000000000..1cc2c2d7b7 --- /dev/null +++ b/code/controllers/configuration/entries/debris.dm @@ -0,0 +1,16 @@ +/// Amount of dirtyness tiles need to spawn dirt. +/datum/config_entry/number/turf_dirt_threshold + config_entry_value = 100 + min_val = 1 + integer = TRUE + +/// Alpha dirt starts at +/datum/config_entry/number/dirt_alpha_starting + config_entry_value = 127 + max_val = 255 + min_val = 0 + integer = TRUE + +/// Dirtyness multiplier for making turfs dirty +/datum/config_entry/number/turf_dirty_multiplier + config_entry_value = 1 diff --git a/code/controllers/configuration/entries/fetish_content.dm b/code/controllers/configuration/entries/fetish_content.dm new file mode 100644 index 0000000000..1de796a11d --- /dev/null +++ b/code/controllers/configuration/entries/fetish_content.dm @@ -0,0 +1,45 @@ +/datum/config_entry/keyed_list/breasts_cups_prefs + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + config_entry_value = list("a", "b", "c", "d", "e") //keep these lowercase + +/datum/config_entry/number/penis_min_inches_prefs + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/penis_max_inches_prefs + config_entry_value = 20 + min_val = 0 + +/datum/config_entry/keyed_list/safe_visibility_toggles + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + config_entry_value = list(GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER) //refer to cit_helpers for all toggles. + +//Body size configs, the feature will be disabled if both min and max have the same value. +/datum/config_entry/number/body_size_min + config_entry_value = 0.9 + min_val = 0.1 //to avoid issues with zeros and negative values. + max_val = RESIZE_DEFAULT_SIZE + integer = FALSE + +/datum/config_entry/number/body_size_max + config_entry_value = 1.25 + min_val = RESIZE_DEFAULT_SIZE + integer = FALSE + +//Penalties given to characters with a body size smaller than this value, +//to compensate for their smaller hitbox. +//To disable, just make sure the value is lower than 'body_size_min' +/datum/config_entry/number/threshold_body_size_penalty + config_entry_value = RESIZE_DEFAULT_SIZE + min_val = 0 + max_val = RESIZE_DEFAULT_SIZE + integer = FALSE + +//multiplicative slowdown multiplier. See 'dna.update_body_size' for the operation. +//doesn't apply to floating or crawling mobs +/datum/config_entry/number/body_size_slowdown_multiplier + config_entry_value = 0 + min_val = 0 + integer = FALSE diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm deleted file mode 100644 index 7558dc69c0..0000000000 --- a/code/controllers/configuration/entries/game_options.dm +++ /dev/null @@ -1,593 +0,0 @@ -/datum/config_entry/number_list/repeated_mode_adjust - -/datum/config_entry/keyed_list/probability - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - -/datum/config_entry/keyed_list/probability/ValidateListEntry(key_name) - return key_name in config.modes - -/datum/config_entry/keyed_list/chaos_level - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - -/datum/config_entry/keyed_list/chaos_level/ValidateListEntry(key_name) - return key_name in config.modes - -/datum/config_entry/keyed_list/max_pop - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - -/datum/config_entry/keyed_list/max_pop/ValidateListEntry(key_name) - return key_name in config.modes - -/datum/config_entry/keyed_list/min_pop - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - -/datum/config_entry/keyed_list/min_pop/ValidateListEntry(key_name, key_value) - return key_name in config.modes - -/datum/config_entry/keyed_list/continuous // which roundtypes continue if all antagonists die - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - -/datum/config_entry/keyed_list/continuous/ValidateListEntry(key_name, key_value) - return key_name in config.modes - -/datum/config_entry/keyed_list/midround_antag // which roundtypes use the midround antagonist system - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - -/datum/config_entry/keyed_list/midround_antag/ValidateListEntry(key_name, key_value) - return key_name in config.modes - -/datum/config_entry/keyed_list/force_antag_count - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - -/datum/config_entry/keyed_list/force_antag_count/ValidateListEntry(key_name, key_value) - return key_name in config.modes - -/datum/config_entry/keyed_list/policy - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_TEXT - -/datum/config_entry/number/damage_multiplier - config_entry_value = 1 - integer = FALSE - -/datum/config_entry/number/minimal_access_threshold //If the number of players is larger than this threshold, minimal access will be turned on. - min_val = 0 - -/datum/config_entry/flag/jobs_have_minimal_access //determines whether jobs use minimal access or expanded access. - -/datum/config_entry/flag/assistants_have_maint_access - -/datum/config_entry/flag/security_has_maint_access - -/datum/config_entry/flag/everyone_has_maint_access - -/datum/config_entry/flag/sec_start_brig //makes sec start in brig instead of dept sec posts - -/datum/config_entry/flag/force_random_names - -/datum/config_entry/flag/humans_need_surnames - -/datum/config_entry/flag/allow_ai // allow ai job - -/datum/config_entry/flag/allow_ai_multicam //whether the AI can use their multicam - -/datum/config_entry/flag/disable_human_mood - -/datum/config_entry/flag/disable_borg_flash_knockdown //Should borg flashes be capable of knocking humanoid entities down? - -/datum/config_entry/flag/weaken_secborg //Brings secborgs and k9s back in-line with the other borg modules - -/datum/config_entry/flag/disable_secborg // disallow secborg module to be chosen. - -/datum/config_entry/flag/disable_peaceborg - -/datum/config_entry/flag/economy //money money money money money money money money money money money money - -/datum/config_entry/number/minimum_secborg_alert //Minimum alert level for secborgs to be chosen. - config_entry_value = 3 - -/datum/config_entry/number/traitor_scaling_coeff //how much does the amount of players get divided by to determine traitors - config_entry_value = 6 - min_val = 1 - -/datum/config_entry/number/brother_scaling_coeff //how many players per brother team - config_entry_value = 25 - min_val = 1 - -/datum/config_entry/number/changeling_scaling_coeff //how much does the amount of players get divided by to determine changelings - config_entry_value = 6 - min_val = 1 - -/datum/config_entry/number/ecult_scaling_coeff //how much does the amount of players get divided by to determine e_cult - config_entry_value = 6 - integer = FALSE - min_val = 1 - -/datum/config_entry/number/security_scaling_coeff //how much does the amount of players get divided by to determine open security officer positions - config_entry_value = 8 - min_val = 1 - -/datum/config_entry/number/abductor_scaling_coeff //how many players per abductor team - config_entry_value = 15 - min_val = 1 - -/datum/config_entry/number/traitor_objectives_amount - config_entry_value = 2 - min_val = 0 - -/datum/config_entry/number/brother_objectives_amount - config_entry_value = 2 - min_val = 0 - -/datum/config_entry/flag/reactionary_explosions //If we use reactionary explosions, explosions that react to walls and doors - -/datum/config_entry/flag/protect_roles_from_antagonist //If security and such can be traitor/cult/other - -/datum/config_entry/flag/protect_assistant_from_antagonist //If assistants can be traitor/cult/other - -/datum/config_entry/flag/enforce_human_authority //If non-human species are barred from joining as a head of staff - -/datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling - -/datum/config_entry/number/midround_antag_time_check // How late (in minutes you want the midround antag system to stay on, setting this to 0 will disable the system) - config_entry_value = 60 - min_val = 0 - -/datum/config_entry/number/midround_antag_life_check // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist - config_entry_value = 0.7 - integer = FALSE - min_val = 0 - max_val = 1 - -/datum/config_entry/number/suicide_reenter_round_timer - config_entry_value = 30 - min_val = 0 - -/datum/config_entry/number/roundstart_suicide_time_limit - config_entry_value = 30 - min_val = 0 - -/datum/config_entry/number/shuttle_refuel_delay - config_entry_value = 12000 - min_val = 0 - -/datum/config_entry/flag/show_game_type_odds //if set this allows players to see the odds of each roundtype on the get revision screen - -/datum/config_entry/keyed_list/roundstart_races //races you can play as from the get go. - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - -/datum/config_entry/flag/join_with_mutant_humans //players can pick mutant bodyparts for humans before joining the game - -/datum/config_entry/flag/no_summon_guns //No - -/datum/config_entry/flag/no_summon_magic //Fun - -/datum/config_entry/flag/no_summon_events //Allowed - -/datum/config_entry/flag/no_summon_traumas //! - -/datum/config_entry/flag/no_intercept_report //Whether or not to send a communications intercept report roundstart. This may be overridden by gamemodes. - -/datum/config_entry/number/arrivals_shuttle_dock_window //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station - config_entry_value = 55 - min_val = 30 - -/datum/config_entry/flag/arrivals_shuttle_require_undocked //Require the arrivals shuttle to be undocked before latejoiners can join - -/datum/config_entry/flag/arrivals_shuttle_require_safe_latejoin //Require the arrivals shuttle to be operational in order for latejoiners to join - -/datum/config_entry/string/alert_green - config_entry_value = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." - -/datum/config_entry/string/alert_blue_upto - config_entry_value = "The station has received reliable information about potential threats to the station. Security staff may have weapons visible, random searches are permitted." - -/datum/config_entry/string/alert_blue_downto - config_entry_value = "Significant confirmed threats have been neutralized. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still permitted." - -/datum/config_entry/string/alert_amber_upto - config_entry_value = "There are significant confirmed threats to the station. Security staff may have weapons unholstered at all times. Random searches are allowed and advised." - -/datum/config_entry/string/alert_amber_downto - config_entry_value = "The immediate threat has passed. Security is no longer authorized to use lethal force, but may continue to have weapons drawn. Access requirements have been restored." - -/datum/config_entry/string/alert_red_upto - config_entry_value = "There is an immediate serious threat to the station. Security is now authorized to use lethal force. Additionally, access requirements on some machines have been lifted." - -/datum/config_entry/string/alert_red_downto - config_entry_value = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security is still authorized to use lethal force." - -/datum/config_entry/string/alert_delta - config_entry_value = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." - -/datum/config_entry/flag/revival_pod_plants - -/datum/config_entry/flag/revival_cloning - -/datum/config_entry/number/revival_brain_life - config_entry_value = -1 - min_val = -1 - -/datum/config_entry/flag/ooc_during_round - -/datum/config_entry/flag/emojis - -/datum/config_entry/keyed_list/multiplicative_movespeed - key_mode = KEY_MODE_TYPE - value_mode = VALUE_MODE_NUM - abstract_type = /datum/config_entry/keyed_list/multiplicative_movespeed - -/datum/config_entry/keyed_list/multiplicative_movespeed/ValidateAndSet() - . = ..() - if(.) - update_config_movespeed_type_lookup(TRUE) - -/datum/config_entry/keyed_list/multiplicative_movespeed/vv_edit_var(var_name, var_value) - . = ..() - if(. && (var_name == NAMEOF(src, config_entry_value))) - update_config_movespeed_type_lookup(TRUE) - -/datum/config_entry/keyed_list/multiplicative_movespeed/normal - name = "multiplicative_movespeed" - config_entry_value = list( //DEFAULTS - /mob/living/simple_animal = 1, - /mob/living/silicon/pai = 1, - /mob/living/carbon/alien/humanoid/sentinel = 0.25, - /mob/living/carbon/alien/humanoid/drone = 0.5, - /mob/living/carbon/alien/humanoid/royal/praetorian = 1, - /mob/living/carbon/alien/humanoid/royal/queen = 3 - ) - -/datum/config_entry/keyed_list/multiplicative_movespeed/floating - name = "multiplicative_movespeed_floating" - config_entry_value = list( - /mob/living = 0, - /mob/living/carbon/alien/humanoid = 0, - /mob/living/carbon/alien/humanoid/royal/praetorian = 0, - /mob/living/carbon/alien/humanoid/royal/queen = 2 - ) - -/datum/config_entry/number/sprintless_stagger_slowdown - config_entry_value = 0 - -/datum/config_entry/number/melee_stagger_factor - config_entry_value = 1 - -/datum/config_entry/number/sprintless_off_balance_slowdown - config_entry_value = 0.85 - -/datum/config_entry/number/movedelay //Used for modifying movement speed for mobs. - abstract_type = /datum/config_entry/number/movedelay - integer = FALSE - -/datum/config_entry/number/movedelay/ValidateAndSet() - . = ..() - if(.) - update_mob_config_movespeeds() - -/datum/config_entry/number/movedelay/vv_edit_var(var_name, var_value) - . = ..() - if(. && (var_name == NAMEOF(src, config_entry_value))) - update_mob_config_movespeeds() - -/datum/config_entry/number/movedelay/run_delay - -/datum/config_entry/number/movedelay/run_delay/ValidateAndSet() - . = ..() - var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/run) - M.sync() - -/datum/config_entry/number/movedelay/walk_delay - -/datum/config_entry/number/movedelay/walk_delay/ValidateAndSet() - . = ..() - var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk) - M.sync() - -/datum/config_entry/flag/sprint_enabled - config_entry_value = TRUE - -/datum/config_entry/flag/sprint_enabled/ValidateAndSet(str_val) - . = ..() - for(var/datum/hud/human/H) - H.assert_move_intent_ui() - if(!config_entry_value) // disabled - for(var/mob/living/L in world) - L.disable_intentional_sprint_mode() - -/datum/config_entry/number/movedelay/sprint_speed_increase - config_entry_value = 1 - -/datum/config_entry/number/movedelay/sprint_max_tiles_increase - config_entry_value = 5 - -/datum/config_entry/number/movedelay/sprint_absolute_max_tiles - config_entry_value = 13 - -/datum/config_entry/number/movedelay/sprint_buffer_max - config_entry_value = 24 - -/datum/config_entry/number/movedelay/sprint_stamina_cost - config_entry_value = 1.4 - -/datum/config_entry/number/movedelay/sprint_buffer_regen_per_ds - config_entry_value = 0.4 - -/////////////////////////////////////////////////Outdated move delay -/datum/config_entry/number/outdated_movedelay - deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed/normal - abstract_type = /datum/config_entry/number/outdated_movedelay - - var/movedelay_type - -/datum/config_entry/number/outdated_movedelay/DeprecationUpdate(value) - return "[movedelay_type] [value]" - -/datum/config_entry/number/outdated_movedelay/human_delay - movedelay_type = /mob/living/carbon/human -/datum/config_entry/number/outdated_movedelay/robot_delay - movedelay_type = /mob/living/silicon/robot -/datum/config_entry/number/outdated_movedelay/monkey_delay - movedelay_type = /mob/living/carbon/monkey -/datum/config_entry/number/outdated_movedelay/alien_delay - movedelay_type = /mob/living/carbon/alien -/datum/config_entry/number/outdated_movedelay/slime_delay - movedelay_type = /mob/living/simple_animal/slime -/datum/config_entry/number/outdated_movedelay/animal_delay - movedelay_type = /mob/living/simple_animal -///////////////////////////////////////////////// - -/datum/config_entry/flag/roundstart_away //Will random away mission be loaded. - -/datum/config_entry/flag/roundstart_vr //Will virtual reality missions be loaded? - -/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled. - config_entry_value = 18000 - min_val = 0 - -/datum/config_entry/flag/ghost_interaction - -/datum/config_entry/flag/silent_ai -/datum/config_entry/flag/silent_borg - -/datum/config_entry/flag/sandbox_autoclose // close the sandbox panel after spawning an item, potentially reducing griff - -/datum/config_entry/number/default_laws //Controls what laws the AI spawns with. - config_entry_value = 0 - min_val = 0 - max_val = 3 - -/datum/config_entry/number/silicon_max_law_amount - config_entry_value = 12 - min_val = 0 - -/datum/config_entry/keyed_list/random_laws - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - -/datum/config_entry/keyed_list/law_weight - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - splitter = "," - -/datum/config_entry/number/overflow_cap - config_entry_value = -1 - min_val = -1 - -/datum/config_entry/string/overflow_job - config_entry_value = "Assistant" - -/datum/config_entry/flag/starlight -/datum/config_entry/flag/grey_assistants - -/datum/config_entry/number/lavaland_budget - config_entry_value = 60 - min_val = 0 - -/datum/config_entry/number/space_budget - config_entry_value = 16 - min_val = 0 - -/datum/config_entry/number/icemoon_budget - config_entry_value = 90 - integer = FALSE - min_val = 0 - -/datum/config_entry/number/station_space_budget - config_entry_value = 10 - min_val = 0 - -/datum/config_entry/flag/allow_random_events // Enables random events mid-round when set - -/datum/config_entry/number/events_min_time_mul // Multipliers for random events minimal starting time and minimal players amounts - config_entry_value = 1 - min_val = 0 - integer = FALSE - -/datum/config_entry/number/events_min_players_mul - config_entry_value = 1 - min_val = 0 - integer = FALSE - -/datum/config_entry/number/mice_roundstart - config_entry_value = 10 - min_val = 0 - -/datum/config_entry/number/bombcap - config_entry_value = 14 - min_val = 4 - -/datum/config_entry/number/bombcap/ValidateAndSet(str_val) - . = ..() - if(.) - GLOB.MAX_EX_DEVESTATION_RANGE = round(config_entry_value / 4) - GLOB.MAX_EX_HEAVY_RANGE = round(config_entry_value / 2) - GLOB.MAX_EX_LIGHT_RANGE = config_entry_value - GLOB.MAX_EX_FLASH_RANGE = config_entry_value - GLOB.MAX_EX_FLAME_RANGE = config_entry_value - -/datum/config_entry/number/emergency_shuttle_autocall_threshold - min_val = 0 - max_val = 1 - integer = FALSE - -/datum/config_entry/flag/ic_printing - -/datum/config_entry/flag/roundstart_traits - -/datum/config_entry/flag/enable_night_shifts - -/datum/config_entry/number/night_shift_public_areas_only - config_entry_value = NIGHTSHIFT_AREA_PUBLIC - -/datum/config_entry/flag/nightshift_toggle_requires_auth - config_entry_value = FALSE - -/datum/config_entry/flag/nightshift_toggle_public_requires_auth - config_entry_value = TRUE - -/datum/config_entry/flag/randomize_shift_time - -/datum/config_entry/flag/shift_time_realtime - -/datum/config_entry/number/monkeycap - config_entry_value = 64 - min_val = 0 - -/datum/config_entry/number/ratcap - config_entry_value = 64 - min_val = 0 - -/datum/config_entry/flag/disable_stambuffer - -/datum/config_entry/keyed_list/box_random_engine - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_NUM - lowercase = FALSE - splitter = "," - -/datum/config_entry/flag/pai_custom_holoforms - -/datum/config_entry/number/marauder_delay_non_reebe - config_entry_value = 1800 - min_val = 0 - -/datum/config_entry/flag/allow_clockwork_marauder_on_station - config_entry_value = TRUE - -/datum/config_entry/flag/modetier_voting - -/datum/config_entry/flag/must_be_readied_to_vote_gamemode - -/datum/config_entry/number/dropped_modes - config_entry_value = 3 - -/datum/config_entry/flag/suicide_allowed - -/datum/config_entry/keyed_list/breasts_cups_prefs - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - config_entry_value = list("a", "b", "c", "d", "e") //keep these lowercase - -/datum/config_entry/number/penis_min_inches_prefs - config_entry_value = 1 - min_val = 0 - -/datum/config_entry/number/penis_max_inches_prefs - config_entry_value = 20 - min_val = 0 - -/datum/config_entry/keyed_list/safe_visibility_toggles - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - config_entry_value = list(GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER) //refer to cit_helpers for all toggles. - -//Body size configs, the feature will be disabled if both min and max have the same value. -/datum/config_entry/number/body_size_min - config_entry_value = 0.9 - min_val = 0.1 //to avoid issues with zeros and negative values. - max_val = RESIZE_DEFAULT_SIZE - integer = FALSE - -/datum/config_entry/number/body_size_max - config_entry_value = 1.25 - min_val = RESIZE_DEFAULT_SIZE - integer = FALSE - -//Penalties given to characters with a body size smaller than this value, -//to compensate for their smaller hitbox. -//To disable, just make sure the value is lower than 'body_size_min' -/datum/config_entry/number/threshold_body_size_penalty - config_entry_value = RESIZE_DEFAULT_SIZE - min_val = 0 - max_val = RESIZE_DEFAULT_SIZE - integer = FALSE - -//multiplicative slowdown multiplier. See 'dna.update_body_size' for the operation. -//doesn't apply to floating or crawling mobs -/datum/config_entry/number/body_size_slowdown_multiplier - config_entry_value = 0 - min_val = 0 - integer = FALSE - -//Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. -/datum/config_entry/flag/allow_custom_skintones - -///Initial loadout points -/datum/config_entry/number/initial_gear_points - config_entry_value = 10 - -/** - * Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. - * Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. - */ -/datum/config_entry/flag/use_field_of_vision - -//Shuttle size limiter -/datum/config_entry/number/max_shuttle_count - config_entry_value = 6 - -/datum/config_entry/number/max_shuttle_size - config_entry_value = 500 - -//wound config stuff (increases the max injury roll, making injuries more likely) -/datum/config_entry/number/wound_exponent - config_entry_value = WOUND_DAMAGE_EXPONENT - min_val = 0 - integer = FALSE - -//adds a set amount to any injury rolls on a limb using get_damage() multiplied by this number -/datum/config_entry/number/wound_damage_multiplier - config_entry_value = 0.333 - min_val = 0 - integer = FALSE - -/// Amount of dirtyness tiles need to spawn dirt. -/datum/config_entry/number/turf_dirt_threshold - config_entry_value = 100 - min_val = 1 - integer = TRUE - -/// Alpha dirt starts at -/datum/config_entry/number/dirt_alpha_starting - config_entry_value = 127 - max_val = 255 - min_val = 0 - integer = TRUE - -/// Dirtyness multiplier for making turfs dirty -/datum/config_entry/number/turf_dirty_multiplier - config_entry_value = 1 - -/datum/config_entry/flag/weigh_by_recent_chaos - -/datum/config_entry/number/chaos_exponent - config_entry_value = 1 diff --git a/code/controllers/configuration/entries/gamemodes.dm b/code/controllers/configuration/entries/gamemodes.dm new file mode 100644 index 0000000000..6860422850 --- /dev/null +++ b/code/controllers/configuration/entries/gamemodes.dm @@ -0,0 +1,89 @@ +/datum/config_entry/number_list/repeated_mode_adjust + +/datum/config_entry/keyed_list/probability + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + +/datum/config_entry/keyed_list/probability/ValidateListEntry(key_name) + return key_name in config.modes + +/datum/config_entry/keyed_list/chaos_level + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + +/datum/config_entry/keyed_list/chaos_level/ValidateListEntry(key_name) + return key_name in config.modes + +/datum/config_entry/keyed_list/max_pop + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + +/datum/config_entry/keyed_list/max_pop/ValidateListEntry(key_name) + return key_name in config.modes + +/datum/config_entry/keyed_list/min_pop + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + +/datum/config_entry/keyed_list/min_pop/ValidateListEntry(key_name, key_value) + return key_name in config.modes + +/datum/config_entry/keyed_list/continuous // which roundtypes continue if all antagonists die + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/keyed_list/continuous/ValidateListEntry(key_name, key_value) + return key_name in config.modes + +/datum/config_entry/keyed_list/midround_antag // which roundtypes use the midround antagonist system + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/keyed_list/midround_antag/ValidateListEntry(key_name, key_value) + return key_name in config.modes + +/datum/config_entry/keyed_list/force_antag_count + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/keyed_list/force_antag_count/ValidateListEntry(key_name, key_value) + return key_name in config.modes + +/datum/config_entry/number/traitor_scaling_coeff //how much does the amount of players get divided by to determine traitors + config_entry_value = 6 + min_val = 1 + +/datum/config_entry/number/brother_scaling_coeff //how many players per brother team + config_entry_value = 25 + min_val = 1 + +/datum/config_entry/number/changeling_scaling_coeff //how much does the amount of players get divided by to determine changelings + config_entry_value = 6 + min_val = 1 + +/datum/config_entry/number/ecult_scaling_coeff //how much does the amount of players get divided by to determine e_cult + config_entry_value = 6 + integer = FALSE + min_val = 1 + +/datum/config_entry/number/security_scaling_coeff //how much does the amount of players get divided by to determine open security officer positions + config_entry_value = 8 + min_val = 1 + +/datum/config_entry/number/abductor_scaling_coeff //how many players per abductor team + config_entry_value = 15 + min_val = 1 + +/datum/config_entry/number/traitor_objectives_amount + config_entry_value = 2 + min_val = 0 + +/datum/config_entry/number/brother_objectives_amount + config_entry_value = 2 + min_val = 0 + +/datum/config_entry/flag/protect_roles_from_antagonist //If security and such can be traitor/cult/other + +/datum/config_entry/flag/protect_assistant_from_antagonist //If assistants can be traitor/cult/other + +/datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 63da60d7b5..a967bd3ef1 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -1,21 +1,3 @@ -/datum/config_entry/flag/auto_profile // Automatically start profiler on server start - -/datum/config_entry/flag/autoadmin // if autoadmin is enabled - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/string/autoadmin_rank // the rank for autoadmins - config_entry_value = "Game Master" - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/string/servername // server name (the name of the game window) - -/datum/config_entry/string/servertagline - config_entry_value = "We forgot to set the server's tagline in config.txt" - -/datum/config_entry/string/serversqlname // short form server name used for the DB - -/datum/config_entry/string/stationname // station name (the name of the station in-game) - /datum/config_entry/number/lobby_countdown // In between round countdown. config_entry_value = 120 min_val = 0 @@ -24,164 +6,11 @@ config_entry_value = 25 min_val = 0 -/datum/config_entry/flag/hub // if the game appears on the hub or not - -/datum/config_entry/flag/allow_admin_ooccolor // Allows admins with relevant permissions to have their own ooc colour - -/datum/config_entry/flag/allow_vote_restart // allow votes to restart - -/datum/config_entry/flag/allow_vote_mode // allow votes to change mode - -/datum/config_entry/number/vote_delay // minimum time between voting sessions (deciseconds, 10 minute default) - config_entry_value = 6000 - min_val = 0 - -/datum/config_entry/number/vote_period // length of voting period (deciseconds, default 1 minute) - config_entry_value = 600 - min_val = 0 - -/// Length of time before the first autotransfer vote is called (deciseconds, default 2 hours) -/// Set to 0 to disable the subsystem altogether. -/datum/config_entry/number/vote_autotransfer_initial - config_entry_value = 72000 - min_val = 0 - -///length of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes) -/datum/config_entry/number/vote_autotransfer_interval - config_entry_value = 18000 - min_val = 0 - -/// maximum extensions until the round autoends. -/// Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed. -/// Set to -1 to disable the maximum extensions cap. -/datum/config_entry/number/vote_autotransfer_maximum - config_entry_value = 4 - min_val = -1 - -/datum/config_entry/flag/default_no_vote // vote does not default to nochange/norestart - -/datum/config_entry/flag/no_dead_vote // dead people can't vote /datum/config_entry/flag/allow_metadata // Metadata is supported. -/datum/config_entry/flag/popup_admin_pm // adminPMs to non-admins show in a pop-up 'reply' window when set - -/datum/config_entry/number/fps - config_entry_value = 20 - min_val = 1 - max_val = 100 //byond will start crapping out at 50, so this is just ridic - var/sync_validate = FALSE - -/datum/config_entry/number/fps/ValidateAndSet(str_val) - . = ..() - if(.) - sync_validate = TRUE - var/datum/config_entry/number/ticklag/TL = config.entries_by_type[/datum/config_entry/number/ticklag] - if(!TL.sync_validate) - TL.ValidateAndSet(10 / config_entry_value) - sync_validate = FALSE - -/datum/config_entry/number/ticklag - integer = FALSE - var/sync_validate = FALSE - -/datum/config_entry/number/ticklag/New() //ticklag weirdly just mirrors fps - var/datum/config_entry/CE = /datum/config_entry/number/fps - config_entry_value = 10 / initial(CE.config_entry_value) - ..() - -/datum/config_entry/number/ticklag/ValidateAndSet(str_val) - . = text2num(str_val) > 0 && ..() - if(.) - sync_validate = TRUE - var/datum/config_entry/number/fps/FPS = config.entries_by_type[/datum/config_entry/number/fps] - if(!FPS.sync_validate) - FPS.ValidateAndSet(10 / config_entry_value) - sync_validate = FALSE - /datum/config_entry/flag/allow_holidays -/datum/config_entry/number/tick_limit_mc_init //SSinitialization throttling - config_entry_value = TICK_LIMIT_MC_INIT_DEFAULT - min_val = 0 //oranges warned us - integer = FALSE - -/datum/config_entry/flag/admin_legacy_system //Defines whether the server uses the legacy admin system with admins.txt or the SQL system - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/protect_legacy_admins //Stops any admins loaded by the legacy system from having their rank edited by the permissions panel - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/protect_legacy_ranks //Stops any ranks loaded by the legacy system from having their flags edited by the permissions panel - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/enable_localhost_rank //Gives the !localhost! rank to any client connecting from 127.0.0.1 or ::1 - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/load_legacy_ranks_only //Loads admin ranks only from legacy admin_ranks.txt, while enabled ranks are mirrored to the database - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/mentors_mobname_only - -/datum/config_entry/flag/mentor_legacy_system //Defines whether the server uses the legacy mentor system with mentors.txt or the SQL system - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/string/hostedby - -/datum/config_entry/flag/guest_jobban - -/datum/config_entry/flag/usewhitelist - -/datum/config_entry/flag/ban_legacy_system //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/use_age_restriction_for_jobs //Do jobs use account age restrictions? --requires database - -/datum/config_entry/flag/use_account_age_for_jobs //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. - -/datum/config_entry/flag/use_exp_tracking - -/datum/config_entry/flag/use_exp_restrictions_heads - -/datum/config_entry/number/use_exp_restrictions_heads_hours - config_entry_value = 0 - min_val = 0 - -/datum/config_entry/flag/use_exp_restrictions_heads_department - -/datum/config_entry/flag/use_exp_restrictions_other - -/datum/config_entry/flag/use_exp_restrictions_admin_bypass - -/datum/config_entry/string/server - -/datum/config_entry/string/banappeals - -/datum/config_entry/string/wikiurl - config_entry_value = "https://katlin.dog/citadel-wiki" - -/datum/config_entry/string/wikiurltg - config_entry_value = "http://www.tgstation13.org/wiki" - -/datum/config_entry/string/forumurl - config_entry_value = "http://tgstation13.org/phpBB/index.php" - -/datum/config_entry/string/rulesurl - config_entry_value = "http://www.tgstation13.org/wiki/Rules" - -/datum/config_entry/string/githuburl - config_entry_value = "https://www.github.com/tgstation/-tg-station" - -/datum/config_entry/string/roundstatsurl - -/datum/config_entry/string/gamelogurl - -/datum/config_entry/number/githubrepoid - config_entry_value = null - min_val = 0 - -/datum/config_entry/flag/guest_ban - /datum/config_entry/number/id_console_jobslot_delay config_entry_value = 30 min_val = 0 @@ -208,181 +37,8 @@ /datum/config_entry/flag/load_jobs_from_txt -/datum/config_entry/flag/forbid_singulo_possession - -/datum/config_entry/flag/automute_on //enables automuting/spam prevention - -/datum/config_entry/string/panic_server_name - -/datum/config_entry/string/panic_server_name/ValidateAndSet(str_val) - return str_val != "\[Put the name here\]" && ..() - -/datum/config_entry/string/panic_server_address //Reconnect a player this linked server if this server isn't accepting new players - -/datum/config_entry/string/panic_server_address/ValidateAndSet(str_val) - return str_val != "byond://address:port" && ..() - -/datum/config_entry/string/invoke_youtubedl - protection = CONFIG_ENTRY_LOCKED | CONFIG_ENTRY_HIDDEN - /datum/config_entry/flag/show_irc_name -/datum/config_entry/flag/see_own_notes //Can players see their own admin notes - -/datum/config_entry/number/note_fresh_days - config_entry_value = null - min_val = 0 - integer = FALSE - -/datum/config_entry/number/note_stale_days - config_entry_value = null - min_val = 0 - integer = FALSE - -/datum/config_entry/flag/maprotation - -/datum/config_entry/flag/tgstyle_maprotation - -/datum/config_entry/string/map_vote_type - config_entry_value = APPROVAL_VOTING - -/datum/config_entry/number/maprotatechancedelta - config_entry_value = 0.75 - min_val = 0 - max_val = 1 - integer = FALSE - -/datum/config_entry/number/soft_popcap - config_entry_value = null - min_val = 0 - -/datum/config_entry/number/hard_popcap - config_entry_value = null - min_val = 0 - -/datum/config_entry/number/extreme_popcap - config_entry_value = null - min_val = 0 - -/datum/config_entry/string/soft_popcap_message - config_entry_value = "Be warned that the server is currently serving a high number of users, consider using alternative game servers." - -/datum/config_entry/string/hard_popcap_message - config_entry_value = "The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers." - -/datum/config_entry/string/extreme_popcap_message - config_entry_value = "The server is currently serving a high number of users, find alternative servers." - -/datum/config_entry/flag/panic_bunker // prevents people the server hasn't seen before from connecting - -/datum/config_entry/number/panic_bunker_living // living time in minutes that a player needs to pass the panic bunker - -/datum/config_entry/string/panic_bunker_message - config_entry_value = "Sorry but the server is currently not accepting connections from never before seen players." - -/datum/config_entry/number/notify_new_player_age // how long do we notify admins of a new player - min_val = -1 - -/datum/config_entry/number/notify_new_player_account_age // how long do we notify admins of a new byond account - min_val = 0 - -/datum/config_entry/flag/age_verification //are we using the automated age verification which asks users if they're 18+? - config_entry_value = TRUE - -/datum/config_entry/flag/irc_first_connection_alert // do we notify the irc channel when somebody is connecting for the first time? - -/datum/config_entry/flag/check_randomizer - -/datum/config_entry/string/ipintel_email - -/datum/config_entry/string/ipintel_email/ValidateAndSet(str_val) - return str_val != "ch@nge.me" && ..() - -/datum/config_entry/number/ipintel_rating_bad - config_entry_value = 1 - integer = FALSE - min_val = 0 - max_val = 1 - -/datum/config_entry/number/ipintel_save_good - config_entry_value = 12 - min_val = 0 - -/datum/config_entry/number/ipintel_save_bad - config_entry_value = 1 - min_val = 0 - -/datum/config_entry/string/ipintel_domain - config_entry_value = "check.getipintel.net" - -/datum/config_entry/flag/aggressive_changelog - -/datum/config_entry/flag/autoconvert_notes //if all connecting player's notes should attempt to be converted to the database - protection = CONFIG_ENTRY_LOCKED - -/datum/config_entry/flag/allow_webclient - -/datum/config_entry/flag/webclient_only_byond_members - -/datum/config_entry/flag/announce_admin_logout - -/datum/config_entry/flag/announce_admin_login - -/datum/config_entry/flag/allow_map_voting - -/datum/config_entry/number/client_warn_version - config_entry_value = null - min_val = 500 - -/datum/config_entry/number/client_warn_version - config_entry_value = null - min_val = 500 - -/datum/config_entry/string/client_warn_message - config_entry_value = "Your version of byond may have issues or be blocked from accessing this server in the future." - -/datum/config_entry/flag/client_warn_popup - -/datum/config_entry/number/client_error_version - config_entry_value = null - min_val = 500 - -/datum/config_entry/string/client_error_message - config_entry_value = "Your version of byond is too old, may have issues, and is blocked from accessing this server." - -/datum/config_entry/number/client_error_build - config_entry_value = null - min_val = 0 - -/datum/config_entry/number/minute_topic_limit - config_entry_value = null - min_val = 0 - -/datum/config_entry/number/second_topic_limit - config_entry_value = null - min_val = 0 - -/datum/config_entry/number/minute_click_limit - config_entry_value = 400 - min_val = 0 - -/datum/config_entry/number/second_click_limit - config_entry_value = 15 - min_val = 0 - -/datum/config_entry/number/error_cooldown // The "cooldown" time for each occurrence of a unique error - config_entry_value = 600 - min_val = 0 - -/datum/config_entry/number/error_limit // How many occurrences before the next will silence them - config_entry_value = 50 - -/datum/config_entry/number/error_silence_time // How long a unique error will be silenced for - config_entry_value = 6000 - -/datum/config_entry/number/error_msg_delay // How long to wait between messaging admins about occurrences of a unique error - config_entry_value = 50 - /datum/config_entry/flag/irc_announce_new_game deprecated_by = /datum/config_entry/string/chat_announce_new_game @@ -390,54 +46,300 @@ return "" //default broadcast /datum/config_entry/string/chat_announce_new_game + config_entry_value = null -/datum/config_entry/flag/debug_admin_hrefs - -/datum/config_entry/number/mc_tick_rate/base_mc_tick_rate - integer = FALSE - config_entry_value = 1 - -/datum/config_entry/number/mc_tick_rate/high_pop_mc_tick_rate - integer = FALSE - config_entry_value = 1.1 - -/datum/config_entry/number/mc_tick_rate/high_pop_mc_mode_amount - config_entry_value = 65 - -/datum/config_entry/number/mc_tick_rate/disable_high_pop_mc_mode_amount - config_entry_value = 60 - -/datum/config_entry/number/mc_tick_rate - abstract_type = /datum/config_entry/number/mc_tick_rate - -/datum/config_entry/number/mc_tick_rate/ValidateAndSet(str_val) - . = ..() - if (.) - Master.UpdateTickRate() - -/datum/config_entry/flag/resume_after_initializations - -/datum/config_entry/flag/resume_after_initializations/ValidateAndSet(str_val) - . = ..() - if(. && Master.current_runlevel) - world.sleep_offline = !config_entry_value - -/datum/config_entry/number/rounds_until_hard_restart - config_entry_value = -1 - min_val = 0 - /datum/config_entry/string/default_view config_entry_value = "15x15" /datum/config_entry/string/default_view_square config_entry_value = "15x15" -/datum/config_entry/number/max_bunker_days - config_entry_value = 7 - min_val = 1 /datum/config_entry/flag/minimaps_enabled config_entry_value = TRUE -/datum/config_entry/string/centcom_ban_db // URL for the CentCom Galactic Ban DB API + + +/datum/config_entry/number/damage_multiplier + config_entry_value = 1 + integer = FALSE + +/datum/config_entry/number/minimal_access_threshold //If the number of players is larger than this threshold, minimal access will be turned on. + min_val = 0 + +/datum/config_entry/flag/jobs_have_minimal_access //determines whether jobs use minimal access or expanded access. + +/datum/config_entry/flag/assistants_have_maint_access + +/datum/config_entry/flag/security_has_maint_access + +/datum/config_entry/flag/everyone_has_maint_access + +/datum/config_entry/flag/sec_start_brig //makes sec start in brig instead of dept sec posts + +/datum/config_entry/flag/force_random_names + +/datum/config_entry/flag/humans_need_surnames + +/datum/config_entry/flag/allow_ai // allow ai job + +/datum/config_entry/flag/allow_ai_multicam //whether the AI can use their multicam + +/datum/config_entry/flag/disable_human_mood + +/datum/config_entry/flag/disable_borg_flash_knockdown //Should borg flashes be capable of knocking humanoid entities down? + +/datum/config_entry/flag/weaken_secborg //Brings secborgs and k9s back in-line with the other borg modules + +/datum/config_entry/flag/disable_secborg // disallow secborg module to be chosen. + +/datum/config_entry/flag/disable_peaceborg + +/datum/config_entry/flag/economy //money money money money money money money money money money money money + +/datum/config_entry/flag/reactionary_explosions //If we use reactionary explosions, explosions that react to walls and doors + +/datum/config_entry/flag/enforce_human_authority //If non-human species are barred from joining as a head of staff + +/datum/config_entry/number/midround_antag_time_check // How late (in minutes you want the midround antag system to stay on, setting this to 0 will disable the system) + config_entry_value = 60 + min_val = 0 + +/datum/config_entry/number/midround_antag_life_check // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist + config_entry_value = 0.7 + integer = FALSE + min_val = 0 + max_val = 1 + +/datum/config_entry/number/suicide_reenter_round_timer + config_entry_value = 30 + min_val = 0 + +/datum/config_entry/number/roundstart_suicide_time_limit + config_entry_value = 30 + min_val = 0 + +/datum/config_entry/number/shuttle_refuel_delay + config_entry_value = 12000 + min_val = 0 + +/datum/config_entry/flag/show_game_type_odds //if set this allows players to see the odds of each roundtype on the get revision screen + +/datum/config_entry/keyed_list/roundstart_races //races you can play as from the get go. + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/flag/join_with_mutant_humans //players can pick mutant bodyparts for humans before joining the game + +/datum/config_entry/flag/no_summon_guns //No + +/datum/config_entry/flag/no_summon_magic //Fun + +/datum/config_entry/flag/no_summon_events //Allowed + +/datum/config_entry/flag/no_summon_traumas //! + +/datum/config_entry/flag/no_intercept_report //Whether or not to send a communications intercept report roundstart. This may be overridden by gamemodes. + +/datum/config_entry/number/arrivals_shuttle_dock_window //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station + config_entry_value = 55 + min_val = 30 + +/datum/config_entry/flag/arrivals_shuttle_require_undocked //Require the arrivals shuttle to be undocked before latejoiners can join + +/datum/config_entry/flag/arrivals_shuttle_require_safe_latejoin //Require the arrivals shuttle to be operational in order for latejoiners to join + + +/datum/config_entry/flag/revival_pod_plants + +/datum/config_entry/flag/revival_cloning + +/datum/config_entry/number/revival_brain_life + config_entry_value = -1 + min_val = -1 + +/datum/config_entry/flag/ooc_during_round + +/datum/config_entry/flag/emojis + +/datum/config_entry/flag/roundstart_away //Will random away mission be loaded. + +/datum/config_entry/flag/roundstart_vr //Will virtual reality missions be loaded? + +/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled. + config_entry_value = 18000 + min_val = 0 + +/datum/config_entry/flag/ghost_interaction + +/datum/config_entry/flag/silent_ai +/datum/config_entry/flag/silent_borg + +/datum/config_entry/flag/sandbox_autoclose // close the sandbox panel after spawning an item, potentially reducing griff + +/datum/config_entry/number/default_laws //Controls what laws the AI spawns with. + config_entry_value = 0 + min_val = 0 + max_val = 3 + +/datum/config_entry/number/silicon_max_law_amount + config_entry_value = 12 + min_val = 0 + +/datum/config_entry/keyed_list/random_laws + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + +/datum/config_entry/keyed_list/law_weight + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + splitter = "," + +/datum/config_entry/number/overflow_cap + config_entry_value = -1 + min_val = -1 + +/datum/config_entry/string/overflow_job + config_entry_value = "Assistant" + +/datum/config_entry/flag/starlight +/datum/config_entry/flag/grey_assistants + +/datum/config_entry/number/lavaland_budget + config_entry_value = 60 + min_val = 0 + +/datum/config_entry/number/space_budget + config_entry_value = 16 + min_val = 0 + +/datum/config_entry/number/icemoon_budget + config_entry_value = 90 + integer = FALSE + min_val = 0 + +/datum/config_entry/number/station_space_budget + config_entry_value = 10 + min_val = 0 + +/datum/config_entry/flag/allow_random_events // Enables random events mid-round when set + +/datum/config_entry/number/events_min_time_mul // Multipliers for random events minimal starting time and minimal players amounts + config_entry_value = 1 + min_val = 0 + integer = FALSE + +/datum/config_entry/number/events_min_players_mul + config_entry_value = 1 + min_val = 0 + integer = FALSE + +/datum/config_entry/number/mice_roundstart + config_entry_value = 10 + min_val = 0 + +/datum/config_entry/number/bombcap + config_entry_value = 14 + min_val = 4 + +/datum/config_entry/number/bombcap/ValidateAndSet(str_val) + . = ..() + if(.) + GLOB.MAX_EX_DEVESTATION_RANGE = round(config_entry_value / 4) + GLOB.MAX_EX_HEAVY_RANGE = round(config_entry_value / 2) + GLOB.MAX_EX_LIGHT_RANGE = config_entry_value + GLOB.MAX_EX_FLASH_RANGE = config_entry_value + GLOB.MAX_EX_FLAME_RANGE = config_entry_value + +/datum/config_entry/number/emergency_shuttle_autocall_threshold + min_val = 0 + max_val = 1 + integer = FALSE + +/datum/config_entry/flag/ic_printing + +/datum/config_entry/flag/roundstart_traits + +/datum/config_entry/flag/enable_night_shifts + +/datum/config_entry/number/night_shift_public_areas_only + config_entry_value = NIGHTSHIFT_AREA_PUBLIC + +/datum/config_entry/flag/nightshift_toggle_requires_auth + config_entry_value = FALSE + +/datum/config_entry/flag/nightshift_toggle_public_requires_auth + config_entry_value = TRUE + +/datum/config_entry/flag/randomize_shift_time + +/datum/config_entry/flag/shift_time_realtime + +/datum/config_entry/number/monkeycap + config_entry_value = 64 + min_val = 0 + +/datum/config_entry/number/ratcap + config_entry_value = 64 + min_val = 0 + +/datum/config_entry/keyed_list/box_random_engine + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + lowercase = FALSE + splitter = "," + +/datum/config_entry/flag/pai_custom_holoforms + +/datum/config_entry/number/marauder_delay_non_reebe + config_entry_value = 1800 + min_val = 0 + +/datum/config_entry/flag/allow_clockwork_marauder_on_station + config_entry_value = TRUE + +/datum/config_entry/number/dropped_modes + config_entry_value = 3 + +/datum/config_entry/flag/suicide_allowed + + +//Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. +/datum/config_entry/flag/allow_custom_skintones + +///Initial loadout points +/datum/config_entry/number/initial_gear_points + config_entry_value = 10 + +/** + * Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. + * Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. + */ +/datum/config_entry/flag/use_field_of_vision + +//Shuttle size limiter +/datum/config_entry/number/max_shuttle_count + config_entry_value = 6 + +/datum/config_entry/number/max_shuttle_size + config_entry_value = 500 + +//wound config stuff (increases the max injury roll, making injuries more likely) +/datum/config_entry/number/wound_exponent + config_entry_value = WOUND_DAMAGE_EXPONENT + min_val = 0 + integer = FALSE + +//adds a set amount to any injury rolls on a limb using get_damage() multiplied by this number +/datum/config_entry/number/wound_damage_multiplier + config_entry_value = 0.333 + min_val = 0 + integer = FALSE + + + +/datum/config_entry/flag/weigh_by_recent_chaos + +/datum/config_entry/number/chaos_exponent + config_entry_value = 1 diff --git a/code/controllers/configuration/entries/jexp.dm b/code/controllers/configuration/entries/jexp.dm new file mode 100644 index 0000000000..3d9754b4a6 --- /dev/null +++ b/code/controllers/configuration/entries/jexp.dm @@ -0,0 +1,17 @@ +/datum/config_entry/flag/use_age_restriction_for_jobs //Do jobs use account age restrictions? --requires database + +/datum/config_entry/flag/use_account_age_for_jobs //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. + +/datum/config_entry/flag/use_exp_tracking + +/datum/config_entry/flag/use_exp_restrictions_heads + +/datum/config_entry/number/use_exp_restrictions_heads_hours + config_entry_value = 0 + min_val = 0 + +/datum/config_entry/flag/use_exp_restrictions_heads_department + +/datum/config_entry/flag/use_exp_restrictions_other + +/datum/config_entry/flag/use_exp_restrictions_admin_bypass diff --git a/code/controllers/configuration/entries/logging.dm b/code/controllers/configuration/entries/logging.dm index 81cd54cbb0..25ca145939 100644 --- a/code/controllers/configuration/entries/logging.dm +++ b/code/controllers/configuration/entries/logging.dm @@ -69,3 +69,16 @@ /// forces log_href for tgui /datum/config_entry/flag/emergency_tgui_logging config_entry_value = FALSE + +/datum/config_entry/number/error_cooldown // The "cooldown" time for each occurrence of a unique error + config_entry_value = 600 + min_val = 0 + +/datum/config_entry/number/error_limit // How many occurrences before the next will silence them + config_entry_value = 50 + +/datum/config_entry/number/error_silence_time // How long a unique error will be silenced for + config_entry_value = 6000 + +/datum/config_entry/number/error_msg_delay // How long to wait between messaging admins about occurrences of a unique error + config_entry_value = 50 diff --git a/code/controllers/configuration/entries/movespeed.dm b/code/controllers/configuration/entries/movespeed.dm new file mode 100644 index 0000000000..b1c3818cd3 --- /dev/null +++ b/code/controllers/configuration/entries/movespeed.dm @@ -0,0 +1,124 @@ +/datum/config_entry/keyed_list/multiplicative_movespeed + key_mode = KEY_MODE_TYPE + value_mode = VALUE_MODE_NUM + abstract_type = /datum/config_entry/keyed_list/multiplicative_movespeed + +/datum/config_entry/keyed_list/multiplicative_movespeed/ValidateAndSet() + . = ..() + if(.) + update_config_movespeed_type_lookup(TRUE) + +/datum/config_entry/keyed_list/multiplicative_movespeed/vv_edit_var(var_name, var_value) + . = ..() + if(. && (var_name == NAMEOF(src, config_entry_value))) + update_config_movespeed_type_lookup(TRUE) + +/datum/config_entry/keyed_list/multiplicative_movespeed/normal + name = "multiplicative_movespeed" + config_entry_value = list( //DEFAULTS + /mob/living/simple_animal = 1, + /mob/living/silicon/pai = 1, + /mob/living/carbon/alien/humanoid/sentinel = 0.25, + /mob/living/carbon/alien/humanoid/drone = 0.5, + /mob/living/carbon/alien/humanoid/royal/praetorian = 1, + /mob/living/carbon/alien/humanoid/royal/queen = 3 + ) + +/datum/config_entry/keyed_list/multiplicative_movespeed/floating + name = "multiplicative_movespeed_floating" + config_entry_value = list( + /mob/living = 0, + /mob/living/carbon/alien/humanoid = 0, + /mob/living/carbon/alien/humanoid/royal/praetorian = 0, + /mob/living/carbon/alien/humanoid/royal/queen = 2 + ) + +/datum/config_entry/number/movedelay //Used for modifying movement speed for mobs. + abstract_type = /datum/config_entry/number/movedelay + integer = FALSE + +/datum/config_entry/number/movedelay/ValidateAndSet() + . = ..() + if(.) + update_mob_config_movespeeds() + +/datum/config_entry/number/movedelay/vv_edit_var(var_name, var_value) + . = ..() + if(. && (var_name == NAMEOF(src, config_entry_value))) + update_mob_config_movespeeds() + +/datum/config_entry/number/movedelay/run_delay + +/datum/config_entry/number/movedelay/run_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/run) + M.sync() + +/datum/config_entry/number/movedelay/walk_delay + +/datum/config_entry/number/movedelay/walk_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk) + M.sync() + +/datum/config_entry/flag/sprint_enabled + config_entry_value = TRUE + +/datum/config_entry/flag/sprint_enabled/ValidateAndSet(str_val) + . = ..() + for(var/datum/hud/human/H) + H.assert_move_intent_ui() + if(!config_entry_value) // disabled + for(var/mob/living/L in world) + L.disable_intentional_sprint_mode() + +/datum/config_entry/number/sprintless_stagger_slowdown + config_entry_value = 0 + +/datum/config_entry/number/sprintless_off_balance_slowdown + config_entry_value = 0.85 + +/datum/config_entry/number/melee_stagger_factor + config_entry_value = 1 + +/datum/config_entry/number/movedelay/sprint_speed_increase + config_entry_value = 1 + +/datum/config_entry/number/movedelay/sprint_max_tiles_increase + config_entry_value = 5 + +/datum/config_entry/number/movedelay/sprint_absolute_max_tiles + config_entry_value = 13 + +/datum/config_entry/number/movedelay/sprint_buffer_max + config_entry_value = 24 + +/datum/config_entry/number/movedelay/sprint_stamina_cost + config_entry_value = 1.4 + +/datum/config_entry/number/movedelay/sprint_buffer_regen_per_ds + config_entry_value = 0.4 + +/////////////////////////////////////////////////Outdated move delay +/datum/config_entry/number/outdated_movedelay + deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed/normal + abstract_type = /datum/config_entry/number/outdated_movedelay + + var/movedelay_type + +/datum/config_entry/number/outdated_movedelay/DeprecationUpdate(value) + return "[movedelay_type] [value]" + +/datum/config_entry/number/outdated_movedelay/human_delay + movedelay_type = /mob/living/carbon/human +/datum/config_entry/number/outdated_movedelay/robot_delay + movedelay_type = /mob/living/silicon/robot +/datum/config_entry/number/outdated_movedelay/monkey_delay + movedelay_type = /mob/living/carbon/monkey +/datum/config_entry/number/outdated_movedelay/alien_delay + movedelay_type = /mob/living/carbon/alien +/datum/config_entry/number/outdated_movedelay/slime_delay + movedelay_type = /mob/living/simple_animal/slime +/datum/config_entry/number/outdated_movedelay/animal_delay + movedelay_type = /mob/living/simple_animal +///////////////////////////////////////////////// diff --git a/code/controllers/configuration/entries/policy.dm b/code/controllers/configuration/entries/policy.dm index de611e1813..ea8973a4ce 100644 --- a/code/controllers/configuration/entries/policy.dm +++ b/code/controllers/configuration/entries/policy.dm @@ -3,9 +3,9 @@ config_entry_value = 300 integer = TRUE -/datum/config_entry/keyed_list/policyconfig +/datum/config_entry/keyed_list/policy key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_TEXT -/datum/config_entry/keyed_list/policyconfig/preprocess_key(key) +/datum/config_entry/keyed_list/policy/preprocess_key(key) return uppertext(..()) diff --git a/code/controllers/configuration/entries/fail2topic.dm b/code/controllers/configuration/entries/security.dm similarity index 62% rename from code/controllers/configuration/entries/fail2topic.dm rename to code/controllers/configuration/entries/security.dm index 3187997c39..3a49c97d70 100644 --- a/code/controllers/configuration/entries/fail2topic.dm +++ b/code/controllers/configuration/entries/security.dm @@ -16,3 +16,19 @@ /datum/config_entry/keyed_list/topic_rate_limit_whitelist key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_FLAG + +/datum/config_entry/number/minute_topic_limit + config_entry_value = null + min_val = 0 + +/datum/config_entry/number/second_topic_limit + config_entry_value = null + min_val = 0 + +/datum/config_entry/number/minute_click_limit + config_entry_value = 400 + min_val = 0 + +/datum/config_entry/number/second_click_limit + config_entry_value = 15 + min_val = 0 diff --git a/code/controllers/configuration/entries/server.dm b/code/controllers/configuration/entries/server.dm new file mode 100644 index 0000000000..1acf8a11ca --- /dev/null +++ b/code/controllers/configuration/entries/server.dm @@ -0,0 +1,90 @@ +/datum/config_entry/flag/auto_profile // Automatically start profiler on server start + +/datum/config_entry/string/servername // server name (the name of the game window) + +/datum/config_entry/string/servertagline + config_entry_value = "We forgot to set the server's tagline in config.txt" + +/datum/config_entry/string/serversqlname // short form server name used for the DB + +/datum/config_entry/string/stationname // station name (the name of the station in-game) + +/datum/config_entry/number/fps + config_entry_value = 20 + min_val = 1 + max_val = 100 //byond will start crapping out at 50, so this is just ridic + var/sync_validate = FALSE + +/datum/config_entry/number/fps/ValidateAndSet(str_val) + . = ..() + if(.) + sync_validate = TRUE + var/datum/config_entry/number/ticklag/TL = config.entries_by_type[/datum/config_entry/number/ticklag] + if(!TL.sync_validate) + TL.ValidateAndSet(10 / config_entry_value) + sync_validate = FALSE + +/datum/config_entry/number/ticklag + integer = FALSE + var/sync_validate = FALSE + +/datum/config_entry/number/ticklag/New() //ticklag weirdly just mirrors fps + var/datum/config_entry/CE = /datum/config_entry/number/fps + config_entry_value = 10 / initial(CE.config_entry_value) + ..() + +/datum/config_entry/number/ticklag/ValidateAndSet(str_val) + . = text2num(str_val) > 0 && ..() + if(.) + sync_validate = TRUE + var/datum/config_entry/number/fps/FPS = config.entries_by_type[/datum/config_entry/number/fps] + if(!FPS.sync_validate) + FPS.ValidateAndSet(10 / config_entry_value) + sync_validate = FALSE + +/datum/config_entry/number/tick_limit_mc_init //SSinitialization throttling + config_entry_value = TICK_LIMIT_MC_INIT_DEFAULT + min_val = 0 //oranges warned us + integer = FALSE + +/datum/config_entry/flag/usewhitelist + +/datum/config_entry/string/hostedby + +/datum/config_entry/flag/hub // if the game appears on the hub or not + +/datum/config_entry/string/invoke_youtubedl + protection = CONFIG_ENTRY_LOCKED | CONFIG_ENTRY_HIDDEN + +/datum/config_entry/number/mc_tick_rate/base_mc_tick_rate + integer = FALSE + config_entry_value = 1 + +/datum/config_entry/number/mc_tick_rate/high_pop_mc_tick_rate + integer = FALSE + config_entry_value = 1.1 + +/datum/config_entry/number/mc_tick_rate/high_pop_mc_mode_amount + config_entry_value = 65 + +/datum/config_entry/number/mc_tick_rate/disable_high_pop_mc_mode_amount + config_entry_value = 60 + +/datum/config_entry/number/mc_tick_rate + abstract_type = /datum/config_entry/number/mc_tick_rate + +/datum/config_entry/number/mc_tick_rate/ValidateAndSet(str_val) + . = ..() + if (.) + Master.UpdateTickRate() + +/datum/config_entry/flag/resume_after_initializations + +/datum/config_entry/flag/resume_after_initializations/ValidateAndSet(str_val) + . = ..() + if(. && Master.current_runlevel) + world.sleep_offline = !config_entry_value + +/datum/config_entry/number/rounds_until_hard_restart + config_entry_value = -1 + min_val = 0 diff --git a/code/controllers/configuration/entries/stamina_combat.dm b/code/controllers/configuration/entries/stamina_combat.dm index 5c2c9d7ec5..681b903286 100644 --- a/code/controllers/configuration/entries/stamina_combat.dm +++ b/code/controllers/configuration/entries/stamina_combat.dm @@ -29,3 +29,5 @@ /// Factor to multiply by for stamina usage past buffer into health /datum/config_entry/number/stamina_combat/overdraw_penalty_factor config_entry_value = 1.5 + +/datum/config_entry/flag/disable_stambuffer diff --git a/code/controllers/configuration/entries/urls.dm b/code/controllers/configuration/entries/urls.dm new file mode 100644 index 0000000000..fe82574da0 --- /dev/null +++ b/code/controllers/configuration/entries/urls.dm @@ -0,0 +1,26 @@ +/datum/config_entry/string/server + +/datum/config_entry/string/banappeals + +/datum/config_entry/string/wikiurl + config_entry_value = "https://katlin.dog/citadel-wiki" + +/datum/config_entry/string/wikiurltg + config_entry_value = "http://www.tgstation13.org/wiki" + +/datum/config_entry/string/forumurl + config_entry_value = "http://tgstation13.org/phpBB/index.php" + +/datum/config_entry/string/rulesurl + config_entry_value = "http://www.tgstation13.org/wiki/Rules" + +/datum/config_entry/string/githuburl + config_entry_value = "https://www.github.com/tgstation/-tg-station" + +/datum/config_entry/string/roundstatsurl + +/datum/config_entry/string/gamelogurl + +/datum/config_entry/number/githubrepoid + config_entry_value = null + min_val = 0 diff --git a/code/controllers/configuration/entries/vote.dm b/code/controllers/configuration/entries/vote.dm new file mode 100644 index 0000000000..f42f0ac28a --- /dev/null +++ b/code/controllers/configuration/entries/vote.dm @@ -0,0 +1,52 @@ +/datum/config_entry/flag/allow_vote_restart // allow votes to restart + +/datum/config_entry/flag/allow_vote_mode // allow votes to change mode + +/datum/config_entry/number/vote_delay // minimum time between voting sessions (deciseconds, 10 minute default) + config_entry_value = 6000 + min_val = 0 + +/datum/config_entry/number/vote_period // length of voting period (deciseconds, default 1 minute) + config_entry_value = 600 + min_val = 0 + +/// Length of time before the first autotransfer vote is called (deciseconds, default 2 hours) +/// Set to 0 to disable the subsystem altogether. +/datum/config_entry/number/vote_autotransfer_initial + config_entry_value = 72000 + min_val = 0 + +///length of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes) +/datum/config_entry/number/vote_autotransfer_interval + config_entry_value = 18000 + min_val = 0 + +/// maximum extensions until the round autoends. +/// Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed. +/// Set to -1 to disable the maximum extensions cap. +/datum/config_entry/number/vote_autotransfer_maximum + config_entry_value = 4 + min_val = -1 + +/datum/config_entry/flag/default_no_vote // vote does not default to nochange/norestart + +/datum/config_entry/flag/no_dead_vote // dead people can't vote + +/datum/config_entry/flag/maprotation + +/datum/config_entry/flag/tgstyle_maprotation + +/datum/config_entry/string/map_vote_type + config_entry_value = APPROVAL_VOTING + +/datum/config_entry/number/maprotatechancedelta + config_entry_value = 0.75 + min_val = 0 + max_val = 1 + integer = FALSE + +/datum/config_entry/flag/allow_map_voting + +/datum/config_entry/flag/modetier_voting + +/datum/config_entry/flag/must_be_readied_to_vote_gamemode diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 1f47de797a..5059376954 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -505,11 +505,11 @@ value = REAGENT_VALUE_COMMON /datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/carbon/M) - M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) + M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) return ..() /datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/carbon/M) - M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/methamphetamine) + M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nuka_cola) return ..() /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) diff --git a/config/entries/admin.txt b/config/entries/admin.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/alert.txt b/config/entries/alert.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/connections.txt b/config/entries/connections.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/debris.txt b/config/entries/debris.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/fetish_content.txt b/config/entries/fetish_content.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/gamemodes.txt b/config/entries/gamemodes.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/jexp.txt b/config/entries/jexp.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/logging.txt b/config/entries/logging.txt index f0eb652b6a..1690dbfacf 100644 --- a/config/entries/logging.txt +++ b/config/entries/logging.txt @@ -70,3 +70,16 @@ LOG_VIRUS ## Log all raw hrefs of tgui, rather than letting tgui logging handle it. KEEP THIS OFF UNLESS YOU KNOW WHAT YOU ARE DOING. # EMERGENCY_TGUI_LOGGING + +## Cooldown time for each occurance of a unique runtime in deciseconds +ERROR_COOLDOWN 600 + +## Max runtimes of one type before silencing +ERROR_LIMIT 50 + +## How long an unique runtime will be silenced for when reaching limit in deciseconds +ERROR_SILENCE_TIME 6000 + +How long to wait between messaging admins about an unique runtime +ERROR_MSG_DELAY 50 + diff --git a/config/entries/movespeed.txt b/config/entries/movespeed.txt new file mode 100644 index 0000000000..a2cf247453 --- /dev/null +++ b/config/entries/movespeed.txt @@ -0,0 +1,127 @@ + +/datum/config_entry/keyed_list/multiplicative_movespeed + key_mode = KEY_MODE_TYPE + value_mode = VALUE_MODE_NUM + abstract_type = /datum/config_entry/keyed_list/multiplicative_movespeed + +/datum/config_entry/keyed_list/multiplicative_movespeed/ValidateAndSet() + . = ..() + if(.) + update_config_movespeed_type_lookup(TRUE) + +/datum/config_entry/keyed_list/multiplicative_movespeed/vv_edit_var(var_name, var_value) + . = ..() + if(. && (var_name == NAMEOF(src, config_entry_value))) + update_config_movespeed_type_lookup(TRUE) + +/datum/config_entry/keyed_list/multiplicative_movespeed/normal + name = "multiplicative_movespeed" + config_entry_value = list( //DEFAULTS + /mob/living/simple_animal = 1, + /mob/living/silicon/pai = 1, + /mob/living/carbon/alien/humanoid/sentinel = 0.25, + /mob/living/carbon/alien/humanoid/drone = 0.5, + /mob/living/carbon/alien/humanoid/royal/praetorian = 1, + /mob/living/carbon/alien/humanoid/royal/queen = 3 + ) + +/datum/config_entry/keyed_list/multiplicative_movespeed/floating + name = "multiplicative_movespeed_floating" + config_entry_value = list( + /mob/living = 0, + /mob/living/carbon/alien/humanoid = 0, + /mob/living/carbon/alien/humanoid/royal/praetorian = 0, + /mob/living/carbon/alien/humanoid/royal/queen = 2 + ) + +/datum/config_entry/number/movedelay //Used for modifying movement speed for mobs. + abstract_type = /datum/config_entry/number/movedelay + integer = FALSE + +/datum/config_entry/number/movedelay/ValidateAndSet() + . = ..() + if(.) + update_mob_config_movespeeds() + +/datum/config_entry/number/movedelay/vv_edit_var(var_name, var_value) + . = ..() + if(. && (var_name == NAMEOF(src, config_entry_value))) + update_mob_config_movespeeds() + +/datum/config_entry/number/movedelay/run_delay + +/datum/config_entry/number/movedelay/run_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/run) + M.sync() + +/datum/config_entry/number/movedelay/walk_delay + + + +/datum/config_entry/number/movedelay/walk_delay/ValidateAndSet() + . = ..() + var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk) + M.sync() + +/datum/config_entry/flag/sprint_enabled + config_entry_value = TRUE + +/datum/config_entry/flag/sprint_enabled/ValidateAndSet(str_val) + . = ..() + for(var/datum/hud/human/H) + H.assert_move_intent_ui() + if(!config_entry_value) // disabled + for(var/mob/living/L in world) + L.disable_intentional_sprint_mode() + +/datum/config_entry/number/sprintless_stagger_slowdown + config_entry_value = 0 + +/datum/config_entry/number/sprintless_off_balance_slowdown + config_entry_value = 0.85 + +/datum/config_entry/number/melee_stagger_factor + config_entry_value = 1 + +/datum/config_entry/number/movedelay/sprint_speed_increase + config_entry_value = 1 + +/datum/config_entry/number/movedelay/sprint_max_tiles_increase + config_entry_value = 5 + +/datum/config_entry/number/movedelay/sprint_absolute_max_tiles + config_entry_value = 13 + +/datum/config_entry/number/movedelay/sprint_buffer_max + config_entry_value = 24 + +/datum/config_entry/number/movedelay/sprint_stamina_cost + config_entry_value = 1.4 + +/datum/config_entry/number/movedelay/sprint_buffer_regen_per_ds + config_entry_value = 0.4 + +/////////////////////////////////////////////////Outdated move delay +/datum/config_entry/number/outdated_movedelay + deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed/normal + abstract_type = /datum/config_entry/number/outdated_movedelay + + var/movedelay_type + +/datum/config_entry/number/outdated_movedelay/DeprecationUpdate(value) + return "[movedelay_type] [value]" + +/datum/config_entry/number/outdated_movedelay/human_delay + movedelay_type = /mob/living/carbon/human +/datum/config_entry/number/outdated_movedelay/robot_delay + movedelay_type = /mob/living/silicon/robot +/datum/config_entry/number/outdated_movedelay/monkey_delay + movedelay_type = /mob/living/carbon/monkey +/datum/config_entry/number/outdated_movedelay/alien_delay + movedelay_type = /mob/living/carbon/alien +/datum/config_entry/number/outdated_movedelay/slime_delay + movedelay_type = /mob/living/simple_animal/slime +/datum/config_entry/number/outdated_movedelay/animal_delay + movedelay_type = /mob/living/simple_animal +///////////////////////////////////////////////// diff --git a/config/entries/policy.txt b/config/entries/policy.txt index a763bc2b28..07f64b5b2a 100644 --- a/config/entries/policy.txt +++ b/config/entries/policy.txt @@ -8,15 +8,15 @@ ## SDGF_BAD - displayed on SDGF clone spawning, if the clone is not loyal ## PAI - displayed on PAI personality being loaded ## EXAMPLE: -## POLICYCONFIG ON_CLONE insert text here span classes are fully supported +## POLICY ON_CLONE insert text here span classes are fully supported -POLICYCONFIG ON_CLONE Your thoughts are hazy as the cloning algorithms reboot your consciousness. Unfortunately for you, the imperfect nature of the process has left out your more recent, less entrenched memories.
You only remember vague details of your death, without clear recollection of who or what is specifically responsible for your demise.
(If you were murdered, you do not remember the exact name or appearance of your killer, only vague details of how they killed you rather than the exact murder weapon. (ex: drank something and blanked out, felt an impact in the back and bled out)
If you died to environmental hazards like ash storms or spacing, this is not as applicable -- however, keep in mind that if someone set you up to die to that, like being tossed forcefully into space, that the previous clause of not remembering killer name in a murder applies!
+POLICY ON_CLONE Your thoughts are hazy as the cloning algorithms reboot your consciousness. Unfortunately for you, the imperfect nature of the process has left out your more recent, less entrenched memories.
You only remember vague details of your death, without clear recollection of who or what is specifically responsible for your demise.
(If you were murdered, you do not remember the exact name or appearance of your killer, only vague details of how they killed you rather than the exact murder weapon. (ex: drank something and blanked out, felt an impact in the back and bled out)
If you died to environmental hazards like ash storms or spacing, this is not as applicable -- however, keep in mind that if someone set you up to die to that, like being tossed forcefully into space, that the previous clause of not remembering killer name in a murder applies!
-POLICYCONFIG ON_DEFIB_LATE Your mind barely responds as first as you are forcefully returned to the world of the living after all too long in a state of decay. While medicine may restore your brain functions, you can't seem to remember your latest memories...
You only remember vague details of your death, without clear recollection of who or what is specifically responsible for your demise.
(If you were murdered, you do not remember the exact name or appearance of your killer, only vague details of how they killed you rather than the exact murder weapon. (ex: drank something and blanked out, felt an impact in the back and bled out)
If you died to environmental hazards like ash storms or spacing, this is not as applicable -- however, keep in mind that if someone set you up to die to that, like being tossed forcefully into space, that the previous clause of not remembering killer name in a murder applies!
+POLICY ON_DEFIB_LATE Your mind barely responds as first as you are forcefully returned to the world of the living after all too long in a state of decay. While medicine may restore your brain functions, you can't seem to remember your latest memories...
You only remember vague details of your death, without clear recollection of who or what is specifically responsible for your demise.
(If you were murdered, you do not remember the exact name or appearance of your killer, only vague details of how they killed you rather than the exact murder weapon. (ex: drank something and blanked out, felt an impact in the back and bled out)
If you died to environmental hazards like ash storms or spacing, this is not as applicable -- however, keep in mind that if someone set you up to die to that, like being tossed forcefully into space, that the previous clause of not remembering killer name in a murder applies!
-POLICYCONFIG ON_DEFIB_INTACT You barely miss a beat as you gasp, awakening from the slumber of the deceased. The rapid resuscitation has saved you from the worst effects of brain damage.
You recall all information leading up to your death and exact details on method of death and killer if applicable, as long as you were conscious to witness such. +POLICY ON_DEFIB_INTACT You barely miss a beat as you gasp, awakening from the slumber of the deceased. The rapid resuscitation has saved you from the worst effects of brain damage.
You recall all information leading up to your death and exact details on method of death and killer if applicable, as long as you were conscious to witness such. -POLICYCONFIG PAI If you are given an ERP-related directive without OOC consent, ahelp immediately.w +POLICY PAI If you are given an ERP-related directive without OOC consent, ahelp immediately.w ## Misc entries for above diff --git a/config/entries/fail2topic.txt b/config/entries/security.txt similarity index 100% rename from config/entries/fail2topic.txt rename to config/entries/security.txt diff --git a/config/entries/server.txt b/config/entries/server.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/stamina_combat.txt b/config/entries/stamina_combat.txt index 7268deb223..5339502586 100644 --- a/config/entries/stamina_combat.txt +++ b/config/entries/stamina_combat.txt @@ -22,3 +22,7 @@ POST_ACTION_PENALTY_FACTOR 0.25 ## Factor to multiply by for stamina usage past buffer into health OVERDRAW_PENALTY_FACTOR 1.5 + +## Completely disable stamina combat by giving people infinite buffers. +## Has serious balance implications. +# DISABLE_STAMBUFFER diff --git a/config/entries/urls.txt b/config/entries/urls.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/entries/vote.txt b/config/entries/vote.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tgstation.dme b/tgstation.dme index 3d7075466f..d6d27251f6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -292,22 +292,32 @@ #include "code\controllers\subsystem.dm" #include "code\controllers\configuration\config_entry.dm" #include "code\controllers\configuration\configuration.dm" +#include "code\controllers\configuration\entries\admin.dm" +#include "code\controllers\configuration\entries\alert.dm" #include "code\controllers\configuration\entries\antag_rep.dm" #include "code\controllers\configuration\entries\comms.dm" +#include "code\controllers\configuration\entries\connections.dm" #include "code\controllers\configuration\entries\dbconfig.dm" +#include "code\controllers\configuration\entries\debris.dm" #include "code\controllers\configuration\entries\donator.dm" #include "code\controllers\configuration\entries\dynamic.dm" -#include "code\controllers\configuration\entries\fail2topic.dm" -#include "code\controllers\configuration\entries\game_options.dm" +#include "code\controllers\configuration\entries\fetish_content.dm" +#include "code\controllers\configuration\entries\gamemodes.dm" #include "code\controllers\configuration\entries\general.dm" +#include "code\controllers\configuration\entries\jexp.dm" #include "code\controllers\configuration\entries\logging.dm" +#include "code\controllers\configuration\entries\movespeed.dm" #include "code\controllers\configuration\entries\persistence.dm" #include "code\controllers\configuration\entries\plushies.dm" #include "code\controllers\configuration\entries\policy.dm" #include "code\controllers\configuration\entries\resources.dm" #include "code\controllers\configuration\entries\respawns.dm" +#include "code\controllers\configuration\entries\security.dm" +#include "code\controllers\configuration\entries\server.dm" #include "code\controllers\configuration\entries\stamina_combat.dm" #include "code\controllers\configuration\entries\threat.dm" +#include "code\controllers\configuration\entries\urls.dm" +#include "code\controllers\configuration\entries\vote.dm" #include "code\controllers\subsystem\achievements.dm" #include "code\controllers\subsystem\acid.dm" #include "code\controllers\subsystem\activity.dm" From bdad78147ca409e9632c9f1b3dd7c0a78192e66f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 18:20:44 -0700 Subject: [PATCH 034/173] changes --- config/entries/alert.txt | 13 ++++++ config/entries/fetish_content.txt | 33 ++++++++++++++++ config/entries/game_options.txt | 36 ----------------- config/entries/general.txt | 66 ------------------------------- config/entries/security.txt | 20 ++++++++++ config/entries/urls.txt | 37 +++++++++++++++++ 6 files changed, 103 insertions(+), 102 deletions(-) diff --git a/config/entries/alert.txt b/config/entries/alert.txt index e69de29bb2..5a03eadaec 100644 --- a/config/entries/alert.txt +++ b/config/entries/alert.txt @@ -0,0 +1,13 @@ +## ALERT LEVELS ### +ALERT_GREEN All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced. +ALERT_BLUE_UPTO The station has received reliable information about potential threats to the station. Security staff may have weapons visible, random searches are permitted. +ALERT_BLUE_DOWNTO Significant confirmed threats have been neutralized. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still permitted. +ALERT_AMBER_UPTO There are signficant confirmed threats to the station. Security staff may have weapons unholstered at all times. Random searches are allowed and advised. +ALERT_AMBER_DOWNTO The immediate threat has passed. Security is no longer authorized to use lethal force, but may continue to have weapons drawn. Access requirements have been restored. +ALERT_RED_UPTO There is an immediate serious threat to the station. Security is now authorized to use lethal force. Additionally, access requirements on some machines have been lifted. +ALERT_RED_DOWNTO The station's destruction has been averted. There is still however an immediate serious threat to the station. Security is still authorized to use lethal force. +ALERT_DELTA Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill. + +## Determines the minimum alert level for the security cyborg model to be chosen +## 0: Green, 1:Blue, 2:Amber, 3:Red, 4:Delta +MINIMUM_SECBORG_ALERT 3 diff --git a/config/entries/fetish_content.txt b/config/entries/fetish_content.txt index e69de29bb2..6fabd095d8 100644 --- a/config/entries/fetish_content.txt +++ b/config/entries/fetish_content.txt @@ -0,0 +1,33 @@ +## Breast cups selectable from the character creation menu. Keep em lowercase. +BREASTS_CUPS_PREFS a +BREASTS_CUPS_PREFS b +BREASTS_CUPS_PREFS c +BREASTS_CUPS_PREFS d +BREASTS_CUPS_PREFS e +BREASTS_CUPS_PREFS f +BREASTS_CUPS_PREFS g +BREASTS_CUPS_PREFS h + +## Minimum and maximum limits for penis length from the character creation menu. +PENIS_MIN_INCHES_PREFS 1 +PENIS_MAX_INCHES_PREFS 24 + +## Body size configs, the feature will be disabled if both min and max have the same value. +BODY_SIZE_MIN 0.9 +BODY_SIZE_MAX 1.25 + +## Allowed visibility toggles + +# SAFE_VISIBILITY_TOGGLES Always visible +SAFE_VISIBILITY_TOGGLES Hidden by clothes +SAFE_VISIBILITY_TOGGLES Hidden by underwear +SAFE_VISIBILITY_TOGGLES Always hidden + +## Pun-Pun movement slowdown given to characters with a body size smaller than this value, +## to compensate for their smaller hitbox. +## To disable, just make sure the value is lower than 'body_size_min' +THRESHOLD_BODY_SIZE_PENALTY 1 + +## Multiplier used in the smaller strides slowdown calculation. +## Doesn't apply to floating or crawling mobs. +BODY_SIZE_SLOWDOWN_MULTIPLIER 0 diff --git a/config/entries/game_options.txt b/config/entries/game_options.txt index b9d763e5b0..710f172a8d 100644 --- a/config/entries/game_options.txt +++ b/config/entries/game_options.txt @@ -55,15 +55,6 @@ MULTIPLICATIVE_MOVESPEED /mob/living/simple_animal 1 #FORCE_RANDOM_NAMES -## ALERT LEVELS ### -ALERT_GREEN All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced. -ALERT_BLUE_UPTO The station has received reliable information about potential threats to the station. Security staff may have weapons visible, random searches are permitted. -ALERT_BLUE_DOWNTO Significant confirmed threats have been neutralized. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still permitted. -ALERT_AMBER_UPTO There are signficant confirmed threats to the station. Security staff may have weapons unholstered at all times. Random searches are allowed and advised. -ALERT_AMBER_DOWNTO The immediate threat has passed. Security is no longer authorized to use lethal force, but may continue to have weapons drawn. Access requirements have been restored. -ALERT_RED_UPTO There is an immediate serious threat to the station. Security is now authorized to use lethal force. Additionally, access requirements on some machines have been lifted. -ALERT_RED_DOWNTO The station's destruction has been averted. There is still however an immediate serious threat to the station. Security is still authorized to use lethal force. -ALERT_DELTA Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill. @@ -303,9 +294,6 @@ ALLOW_AI_MULTICAM ## Uncomment to prevent the security cyborg module from being chosen #DISABLE_SECBORG -## Determines the minimum alert level for the security cyborg model to be chosen -## 0: Green, 1:Blue, 2:Amber, 3:Red, 4:Delta -MINIMUM_SECBORG_ALERT 3 ## Peacekeeper Borg ### ## Uncomment to prevent the peacekeeper cyborg module from being chosen @@ -652,30 +640,6 @@ DROPPED_MODES 3 ## Whether the suicide verb is allowed. # SUICIDE_ALLOWED -## Breast cups selectable from the character creation menu. Keep em lowercase. -BREASTS_CUPS_PREFS a -BREASTS_CUPS_PREFS b -BREASTS_CUPS_PREFS c -BREASTS_CUPS_PREFS d -BREASTS_CUPS_PREFS e - -## Minimum and maximum limits for penis length from the character creation menu. -PENIS_MIN_INCHES_PREFS 1 -PENIS_MAX_INCHES_PREFS 20 - -## Body size configs, the feature will be disabled if both min and max have the same value. -BODY_SIZE_MIN 0.9 -BODY_SIZE_MAX 1.25 - -## Pun-Pun movement slowdown given to characters with a body size smaller than this value, -## to compensate for their smaller hitbox. -## To disable, just make sure the value is lower than 'body_size_min' -THRESHOLD_BODY_SIZE_PENALTY 1 - -## Multiplier used in the smaller strides slowdown calculation. -## Doesn't apply to floating or crawling mobs. -BODY_SIZE_SLOWDOWN_MULTIPLIER 0 - ## Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. ALLOW_CUSTOM_SKINTONES diff --git a/config/entries/general.txt b/config/entries/general.txt index 3a5e39e20d..84be23553a 100644 --- a/config/entries/general.txt +++ b/config/entries/general.txt @@ -75,9 +75,6 @@ MENTOR_LEGACY_SYSTEM -##Log camera pictures - Must have picture logging enabled -PICTURE_LOGGING_CAMERA - ## period of time in seconds for players to be considered inactive # INACTIVITY_PERIOD 300 @@ -163,40 +160,6 @@ CHECK_RANDOMIZER ## Set to prevent anyone but those ckeys listed in config/whitelist.txt and config/admins.txt from joining your server #USEWHITELIST -## set a server location for world reboot. Don't include the byond://, just give the address and port. -## Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. -# SERVER ss13.example.com:2506 - -## forum address -# FORUMURL https://citadel-station.net/forum/ - -## Wiki address -# WIKIURL https://katlin.dog/citadel-wiki - -## Rules address -# RULESURL https://katlin.dog/citadel-rules/main - -## Github address -# GITHUBURL https://github.com/Citadel-Station-13/Citadel-Station-13 - -## Round specific stats address -## Link to round specific parsed logs; IE statbus. It is appended with the RoundID automatically by ticker/Reboot() -## This will take priority over the game logs address during reboot. -## Example: https://atlantaned.space/statbus/round.php?round= -# ROUNDSTATSURL http://citadel-station.net/slimbus/ - -## Game Logs address -## Incase you don't have a fancy parsing system, but still want players to be able to find where you keep your server's logs. -## Example: https://tgstation13.org/parsed-logs/basil/data/logs/ -# GAMELOGURL - -## Github repo id -##This can be found by going to https://api.github.com/users//repos -##Or https://api.github.com/orgs//repos if the repo owner is an organization -# GITHUBREPOID 62485194 - -## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. -# BANAPPEALS https://citadel-station.net/forum/viewforum.php?f=8&sid=a0ce5331d5594ef6d49661609c6f4ff9 ## System command that invokes youtube-dl, used by Play Internet Sound. ## You can install youtube-dl with @@ -360,35 +323,6 @@ CLIENT_ERROR_MESSAGE Your version of byond is not supported. Please upgrade. ## The minimum build needed for joining the server, if using 512, a good minimum build would be 1421 as that disables the Middle Mouse Button exploit. CLIENT_ERROR_BUILD 1421 -## TOPIC RATE LIMITING -## This allows you to limit how many topic calls (clicking on an interface window) the client can do in any given game second and/or game minute. -## Admins are exempt from these limits. -## Hitting the minute limit notifies admins. -## Set to 0 or comment out to disable. -SECOND_TOPIC_LIMIT 10 - -MINUTE_TOPIC_LIMIT 100 - - -## CLICK RATE LIMITING -## Same as above, but applies to clicking on objects in the game window. -## This should be a higher then the interface limit to allow for the spam clickly nature of most battles. -## Admins are exempt from these limits. -## Hitting the minute limit notifies admins. -## Set to 0 to disable. -SECOND_CLICK_LIMIT 15 - -MINUTE_CLICK_LIMIT 400 - -##Error handling related options -## The "cooldown" time for each occurence of a unique error -#ERROR_COOLDOWN 600 -## How many occurences before the next will silence them -#ERROR_LIMIT 90 -## How long a unique error will be silenced for -#ERROR_SILENCE_TIME 6000 -##How long to wait between messaging admins about occurences of a unique error -#ERROR_MSG_DELAY 50 ## Chat Announce Options ## Various messages to be sent to game chats diff --git a/config/entries/security.txt b/config/entries/security.txt index 77af89b5aa..892024b0c6 100644 --- a/config/entries/security.txt +++ b/config/entries/security.txt @@ -18,3 +18,23 @@ FAIL2TOPIC_MAX_FAILS 5 ## Fail2topic rate limit of 1 topic per this many deciseconds FAIL2TOPIC_RATE_LIMIT 10 + +## TOPIC RATE LIMITING +## This allows you to limit how many topic calls (clicking on an interface window) the client can do in any given game second and/or game minute. +## Admins are exempt from these limits. +## Hitting the minute limit notifies admins. +## Set to 0 or comment out to disable. +SECOND_TOPIC_LIMIT 10 + +MINUTE_TOPIC_LIMIT 100 + + +## CLICK RATE LIMITING +## Same as above, but applies to clicking on objects in the game window. +## This should be a higher then the interface limit to allow for the spam clickly nature of most battles. +## Admins are exempt from these limits. +## Hitting the minute limit notifies admins. +## Set to 0 to disable. +SECOND_CLICK_LIMIT 15 + +MINUTE_CLICK_LIMIT 400 diff --git a/config/entries/urls.txt b/config/entries/urls.txt index e69de29bb2..f307245055 100644 --- a/config/entries/urls.txt +++ b/config/entries/urls.txt @@ -0,0 +1,37 @@ +## set a server location for world reboot. Don't include the byond://, just give the address and port. +## Don't set this to the same server, BYOND will automatically restart players to the server when it has restarted. +# SERVER ss13.example.com:2506 + +## forum address +# FORUMURL https://citadel-station.net/forum/ + +## Wiki address +# WIKIURL https://citadel-station.net/wikimain/index.php + +## Wiki address of upstream +WIKIURLTG http://www.tgstation13.org/wiki + +## Rules address +# RULESURL https://citadel-station.net/wikimain/index.php?title=Rules_-_Main + +## Github address +# GITHUBURL https://github.com/Citadel-Station-13/Citadel-Station-13 + +## Round specific stats address +## Link to round specific parsed logs; IE statbus. It is appended with the RoundID automatically by ticker/Reboot() +## This will take priority over the game logs address during reboot. +## Example: https://atlantaned.space/statbus/round.php?round= +# ROUNDSTATSURL http://citadel-station.net/slimbus/ + +## Game Logs address +## Incase you don't have a fancy parsing system, but still want players to be able to find where you keep your server's logs. +## Example: https://tgstation13.org/parsed-logs/basil/data/logs/ +# GAMELOGURL + +## Github repo id +##This can be found by going to https://api.github.com/users//repos +##Or https://api.github.com/orgs//repos if the repo owner is an organization +# GITHUBREPOID 62485194 + +## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. +# BANAPPEALS https://citadel-station.net/forum/viewforum.php?f=8&sid=a0ce5331d5594ef6d49661609c6f4ff9 From 4ba260c352fd46e58a88ae95253a034b589930a0 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 18:26:21 -0700 Subject: [PATCH 035/173] fix --- code/modules/surgery/organs/vocal_cords.dm | 100 ++++++++++++--------- 1 file changed, 60 insertions(+), 40 deletions(-) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 12e282200c..a39d051b4d 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -1,8 +1,15 @@ -#define COOLDOWN_STUN 1200 -#define COOLDOWN_KNOCKDOWN 600 -#define COOLDOWN_DAMAGE 600 -#define COOLDOWN_MEME 300 -#define COOLDOWN_NONE 100 +#define COOLDOWN_STUN 300 +#define COOLDOWN_KNOCKDOWN 300 +#define COOLDOWN_DAMAGE 300 +#define COOLDOWN_MEME 150 +#define COOLDOWN_NONE 50 + +/// anything above this requires adminbus, to prevent a cultist from stacking chaplain + cult + specific listener = 8x, which is enough to instantly kill someone with damage. +#define VOG_MAX_STANDARD_POWER 3 +/// max damage we can do in one "blast" to a listener +#define VOG_MAX_BURST_DAMAGE 40 +/// max healing we can do in one "blast" to a listener +#define VOG_MAX_BURST_HEAL 40 /obj/item/organ/vocal_cords //organs that are activated through speech with the :x/MODE_KEY_VOCALCORDS channel name = "vocal cords" @@ -130,13 +137,11 @@ return 0 //no cooldown var/log_message = uppertext(message) - if(!span_list || !span_list.len) - if(iscultist(user)) - span_list = list("narsiesmall") - else if (is_servant_of_ratvar(user)) - span_list = list("ratvar") - else - span_list = list() + if(iscultist(user)) + span_list = list("narsiesmall") + else if (is_servant_of_ratvar(user)) + span_list = list("ratvar") + LAZYINITLIST(span_list) user.say(message, spans = span_list, sanitize = FALSE) @@ -156,25 +161,6 @@ cooldown = COOLDOWN_NONE return cooldown - var/power_multiplier = base_multiplier - - if(user.mind) - //Chaplains are very good at speaking with the voice of god - if(user.mind.assigned_role == "Chaplain") - power_multiplier *= 2 - //Command staff has authority - if(user.mind.assigned_role in GLOB.command_positions) - power_multiplier *= 1.4 - //Why are you speaking - if(user.mind.assigned_role == "Mime") - power_multiplier *= 0.5 - - //Cultists are closer to their gods and are more powerful, but they'll give themselves away - if(iscultist(user)) - power_multiplier *= 2 - else if (is_servant_of_ratvar(user)) - power_multiplier *= 2 - //Try to check if the speaker specified a name or a job to focus on var/list/specific_listeners = list() var/found_string = null @@ -182,6 +168,9 @@ //Get the proper job titles message = get_full_job_name(message) + // limitation: this only checks at the start of the message. + // if we wanted to check anywhere we'd have to make the user use delimiters to specify who they're talking to, + // as otherwise it'd be far too computationally and logically expensive to find out who we want. for(var/V in listeners) var/mob/living/L = V var/datum/antagonist/devil/devilinfo = is_devil(L) @@ -207,10 +196,12 @@ //Cut out the job so it doesn't trigger commands found_string = L.mind.assigned_role + var/power_multiplier = get_vog_multiplier(user, base_multiplier, specific_listeners) + var/adminbus = power_multiplier > VOG_MAX_STANDARD_POWER // an admin is being a dunce, bypass hard scaling limits on this message + if(specific_listeners.len) - listeners = specific_listeners - power_multiplier *= (1 + (1/specific_listeners.len)) //2x on a single guy, 1.5x on two and so on message = copytext(message, length(found_string) + 1) + listeners = specific_listeners.Copy() var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt") var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown") @@ -264,7 +255,7 @@ cooldown = COOLDOWN_STUN for(var/V in listeners) var/mob/living/L = V - L.Stagger(60 * power_multiplier) + L.Stagger(40 * power_multiplier) //KNOCKDOWN else if(findtext(message, knockdown_words)) @@ -272,6 +263,7 @@ for(var/V in listeners) var/mob/living/L = V L.DefaultCombatKnockdown() + L.Stagger(10 * power_multiplier) //VOMIT else if((findtext(message, vomit_words))) @@ -285,13 +277,13 @@ for(var/mob/living/carbon/C in listeners) if(user.mind && (user.mind.assigned_role == "Curator" || user.mind.assigned_role == "Mime")) power_multiplier *= 3 - C.silent += (10 * power_multiplier) + C.silent += (5 * power_multiplier) //HALLUCINATE else if((findtext(message, hallucinate_words))) cooldown = COOLDOWN_MEME for(var/mob/living/carbon/C in listeners) - new /datum/hallucination/delusion(C, TRUE, null,150 * power_multiplier,0) + new /datum/hallucination/delusion(C, TRUE, null, 150 * power_multiplier, 0) //WAKE UP else if((findtext(message, wakeup_words))) @@ -305,14 +297,14 @@ cooldown = COOLDOWN_DAMAGE for(var/V in listeners) var/mob/living/L = V - L.heal_overall_damage(10 * power_multiplier, 10 * power_multiplier, 0, FALSE, FALSE) + L.heal_overall_damage(min(17.5 * power_multiplier, adminbus? INFINITY : VOG_MAX_BURST_HEAL), min(17.5 * power_multiplier, VOG_MAX_BURST_HEAL), 0, FALSE, FALSE) //BRUTE DAMAGE else if((findtext(message, hurt_words))) cooldown = COOLDOWN_DAMAGE for(var/V in listeners) var/mob/living/L = V - L.apply_damage(15 * power_multiplier, def_zone = BODY_ZONE_CHEST, wound_bonus=CANT_WOUND) + L.apply_damage(min(20 * power_multiplier, adminbus? INFINTIY : VOG_MAX_BURST_DAMAGE), def_zone = BODY_ZONE_CHEST, wound_bonus = CANT_WOUND) //BLEED else if((findtext(message, bleed_words))) @@ -334,14 +326,14 @@ cooldown = COOLDOWN_DAMAGE for(var/V in listeners) var/mob/living/L = V - L.adjust_bodytemperature(50 * power_multiplier) + L.adjust_bodytemperature(75 * power_multiplier) //COLD else if((findtext(message, cold_words))) cooldown = COOLDOWN_DAMAGE for(var/V in listeners) var/mob/living/L = V - L.adjust_bodytemperature(-50 * power_multiplier) + L.adjust_bodytemperature(-75 * power_multiplier) //REPULSE else if((findtext(message, repulse_words))) @@ -596,6 +588,34 @@ return cooldown +/proc/get_vog_multiplier(mob/living/carbon/user, base_multiplier = 1, list/specific_listeners = list()) + if(base_multiplier >= VOG_MAX_STANDARD_POWER) + return base_multiplier // an admin bussed you and they probably didn't realize you were a chaplain/cultist. + + var/special_check = get_vog_special(user) + if(!special_check) + return 0 + + . = min(base_multiplier * special_check, VOG_MAX_STANDARD_POWER) // anything above should require conscious admin fuckery, as things are balanced around 3 multiplier tops (see: damage being 15*3) + if(!specific_listeners.len) + return + . = min(. * (1 + (1 / specific_listeners.len)), VOG_MAX_STANDARD_POWER) + +/// get special role multiplier for voice of god. No double dipping. +/proc/get_vog_special(mob/living/carbon/user) + if(iscultist(user) || is_servant_of_ratvar(user)) + return 2 // servant of god + if(user.mind) + // servant of god + if(user.mind.assigned_role == "Chaplain") + return 2 + // shut up you broke your vow + if(user.mind.assigned_role == "Mime") + return 0.5 + if(user.mind.assigned_role in GLOB.command_positions) + return 1.4 // heads are great at speaking with authority + return 1 + ////////////////////////////////////// ///////ENTHRAL VELVET CHORDS////////// ////////////////////////////////////// From e690cea147b9566c346cf3ce2eb8b339173380db Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 18:33:14 -0700 Subject: [PATCH 036/173] fix --- code/game/objects/effects/decals/misc.dm | 3 ++- code/modules/reagents/reagent_containers/spray.dm | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 6b90cfd62c..c734743af1 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -28,8 +28,9 @@ /obj/effect/decal/chempuff/blob_act(obj/structure/blob/B) return -/obj/effect/decal/chempuff/Initialize(mapload, stream_mode, speed, range, hits_left) +/obj/effect/decal/chempuff/Initialize(mapload, stream_mode, speed, range, hits_left, size) . = ..() + create_reagents(size, NONE, NO_REAGENTS_VALUE) stream = stream_mode src.speed = speed src.range = src.range_left = range diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index b90815d543..d9dde84a5e 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -74,17 +74,16 @@ return var/range = clamp(get_dist(src, A), 1, current_range) var/wait_step = CEILING(spray_delay * INVERSE(range), world.tick_lag) - var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src), stream_mode, wait_step, range, stream_mode? 1 : range) + var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src), stream_mode, wait_step, range, stream_mode? 1 : range, amount_per_transfer_from_this) var/turf/T = get_turf(src) if(!T) return log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_list()])") - D.create_reagents(amount_per_transfer_from_this, NONE, NO_REAGENTS_VALUE) if(stream_mode) reagents.trans_to(D, amount_per_transfer_from_this) else reagents.trans_to(D, amount_per_transfer_from_this, 1/range) - D.color = mix_color_from_reagents(D.reagents.reagent_list) + D.add_atom_colour(mix_color_from_reagents(D.reagents.reagent_list), TEMPORARY_COLOUR_PRIORITY) last_spray = world.time D.run_puff(A) From 5ef742ffc1c1b35507d581b83a8a0a835a73a02f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 18:46:25 -0700 Subject: [PATCH 037/173] logic --- code/game/objects/effects/decals/misc.dm | 22 ++++++++++++++----- .../reagents/reagent_containers/spray.dm | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index c734743af1..7843931511 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -24,6 +24,7 @@ var/range = 3 var/hits_left = 3 var/range_left = 3 + var/list/hit /obj/effect/decal/chempuff/blob_act(obj/structure/blob/B) return @@ -35,12 +36,23 @@ src.speed = speed src.range = src.range_left = range src.hits_left = hits_left + hit = list() + +/obj/effect/decal/chempuff/Destroy() + hit = null + return ..() /obj/effect/decal/chempuff/proc/hit_thing(atom/A) if(A == src || A.invisibility) return - if(!hits_left) + if(!hits_left || hit[A]) return + var/living = isliving(A) + if(!A.density && !living) + return + if(ismob(A) && !living) + return + hit[A] = TRUE if(stream) if(ismob(A)) var/mob/M = A @@ -60,7 +72,6 @@ hit_thing(AM) /obj/effect/decal/chempuff/proc/run_puff(atom/target) - set waitfor = FALSE for(var/i in 1 to range) range_left-- if(!isturf(loc)) @@ -69,11 +80,10 @@ hit_thing(T) if(!hits_left || !isturf(loc)) break - if(hits_left && isturf(loc) && (!stream || !range_left)) + if(isturf(loc) && (!stream || !range_left)) reagents.reaction(loc, VAPOR) - hits_left-- - if(!hits_left) - break + step_towards(target) + sleep(speed) qdel(src) /obj/effect/decal/fakelattice diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index d9dde84a5e..95e55cb29d 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -85,7 +85,7 @@ reagents.trans_to(D, amount_per_transfer_from_this, 1/range) D.add_atom_colour(mix_color_from_reagents(D.reagents.reagent_list), TEMPORARY_COLOUR_PRIORITY) last_spray = world.time - D.run_puff(A) + INVOKE_ASYNC(D, /obj/effect/decal/chempuff/proc/run_puff, A) /obj/item/reagent_containers/spray/attack_self(mob/user) stream_mode = !stream_mode From d59ced8f2854065750796309dd97fe9bcd4d2c5a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 19:15:29 -0700 Subject: [PATCH 038/173] changes --- code/game/objects/effects/decals/misc.dm | 18 +++++++++++++++--- .../reagents/reagent_containers/spray.dm | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 7843931511..e587f9efbf 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -24,6 +24,7 @@ var/range = 3 var/hits_left = 3 var/range_left = 3 + var/firstmove = TRUE var/list/hit /obj/effect/decal/chempuff/blob_act(obj/structure/blob/B) @@ -45,10 +46,12 @@ /obj/effect/decal/chempuff/proc/hit_thing(atom/A) if(A == src || A.invisibility) return + if(firstmove) + return if(!hits_left || hit[A]) return var/living = isliving(A) - if(!A.density && !living) + if(!A.density) return if(ismob(A) && !living) return @@ -71,8 +74,18 @@ . = ..() hit_thing(AM) +/obj/effect/decal/chempuff/Bump(atom/A) + . = ..() + hit_thing(A) + /obj/effect/decal/chempuff/proc/run_puff(atom/target) - for(var/i in 1 to range) + var/safety = 255 + while(range_left) + if(!safety--) + CRASH("Spray ran out of safety.") + step_towards(src, target) + if(firstmove) + firstmove = FALSE range_left-- if(!isturf(loc)) break @@ -82,7 +95,6 @@ break if(isturf(loc) && (!stream || !range_left)) reagents.reaction(loc, VAPOR) - step_towards(target) sleep(speed) qdel(src) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 95e55cb29d..02c8a9802c 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -16,7 +16,7 @@ var/stream_mode = 0 //whether we use the more focused mode var/current_range = 3 //the range of tiles the sprayer will reach. var/spray_range = 3 //the range of tiles the sprayer will reach when in spray mode. - var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. + var/stream_range = 3 //the range of tiles the sprayer will reach when in stream mode. var/stream_amount = 10 //the amount of reagents transfered when in stream mode. /// Amount of time it takes for a spray to completely travel. var/spray_delay = 8 From 07af6b755f30415458d41aa544286e6f14c79aed Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 19:17:15 -0700 Subject: [PATCH 039/173] that --- code/game/objects/effects/decals/misc.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index e587f9efbf..9d339562d6 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -43,10 +43,10 @@ hit = null return ..() -/obj/effect/decal/chempuff/proc/hit_thing(atom/A) +/obj/effect/decal/chempuff/proc/hit_thing(atom/A, ignore_firstmove) if(A == src || A.invisibility) return - if(firstmove) + if(firstmove && !ignore_firstmove) return if(!hits_left || hit[A]) return @@ -76,7 +76,7 @@ /obj/effect/decal/chempuff/Bump(atom/A) . = ..() - hit_thing(A) + hit_thing(A, TRUE) /obj/effect/decal/chempuff/proc/run_puff(atom/target) var/safety = 255 From 7091b0467d216728942fc978dd1c1fc9f83b2d06 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 19:30:00 -0700 Subject: [PATCH 040/173] cleaner --- code/game/objects/effects/decals/misc.dm | 41 +++++++++++++----------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 9d339562d6..c959fd9208 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -43,39 +43,38 @@ hit = null return ..() -/obj/effect/decal/chempuff/proc/hit_thing(atom/A, ignore_firstmove) +/// proc called to handle us hitting something +/obj/effect/decal/chempuff/proc/hit_thing(atom/A, bump_hit) + // if the thing is invisible it usually is abstract/underfloor. also, don't hit ourselves. if(A == src || A.invisibility) return - if(firstmove && !ignore_firstmove) + // don't hit anything on the first move unless overridden (see: we're colliding a wall blocking our move out of the first tile) + if(firstmove && !bump_hit) return + // we're out of hits or we already hit it if(!hits_left || hit[A]) return var/living = isliving(A) - if(!A.density) + // if it's not dense and we're a stream instead of a mist, and we're not out of range + if(!A.density && stream && range_left && !bump_hit) return + // non living mobs are effectively abstract if(ismob(A) && !living) return hit[A] = TRUE - if(stream) - if(ismob(A)) - var/mob/M = A - if(!M.lying || !range_left) - reagents.reaction(M, VAPOR) - hits_left-- - else - if(!range_left) - reagents.reaction(A, VAPOR) - else - reagents.reaction(A) - if(ismob(A)) - hits_left-- + reagents.reaction(A, VAPOR) + // mobs absorb enough to decrement hits_left, as well as stuff blocking us. + if(ismob(A) || bump_hit) + hits_left-- /obj/effect/decal/chempuff/Crossed(atom/movable/AM, oldloc) . = ..() + // bump things moving into us as long as we're not on our first move/moving out of origin tile hit_thing(AM) /obj/effect/decal/chempuff/Bump(atom/A) . = ..() + // if we hit something blocking our movement, collide it regardless even if we're still on our origin tile hit_thing(A, TRUE) /obj/effect/decal/chempuff/proc/run_puff(atom/target) @@ -83,18 +82,24 @@ while(range_left) if(!safety--) CRASH("Spray ran out of safety.") + // move towards new turf step_towards(src, target) if(firstmove) + // mark first movement so future Cross()es result in collisions firstmove = FALSE + // decrement range range_left-- + // if we got nullspaced, exit if(!isturf(loc)) break + // hit everything in it for(var/atom/T in loc) hit_thing(T) + // if we got deleted or ran out of hits, stop if(!hits_left || !isturf(loc)) break - if(isturf(loc) && (!stream || !range_left)) - reagents.reaction(loc, VAPOR) + // hit the turf + hit_thing(loc) sleep(speed) qdel(src) From 4a5ca2b851e1e8a76b063cb50e69ed90b5a3b70a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 28 Jun 2021 22:15:25 -0700 Subject: [PATCH 041/173] woo --- code/game/objects/effects/decals/misc.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index c959fd9208..752a5dff2c 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -98,6 +98,9 @@ // if we got deleted or ran out of hits, stop if(!hits_left || !isturf(loc)) break + if(!hits_left || !isturf(loc)) + // yeah yeah sue me it's copypasted code but I don't want to declare a var. + break // hit the turf hit_thing(loc) sleep(speed) From 9c1fa24331ad9586d91660cf1bdc7509242baf76 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Wed, 30 Jun 2021 01:07:23 +0200 Subject: [PATCH 042/173] Changed the name of the axolotl ear sprite cause it won't show up otherwise. --- modular_citadel/icons/mob/mam_ears.dmi | Bin 11044 -> 11042 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/mam_ears.dmi b/modular_citadel/icons/mob/mam_ears.dmi index 51541619d4e48c8407adbf3fb966ff4a6fb39381..30e70cbfc2feae53b978f893ed189977764fdd3e 100644 GIT binary patch delta 501 zcmVfFDZ*Bkpc$}q|O>f&U42I9~uMpb%u(ZAU zu)^t@0?mM7cZ05ION&fp`lyqCzk@ml+pr<8dol834LmwK*Wl0z+`+(f!@LYM&dKp6!wdRn!QdWcB)8S;Fty4zcaL;Uo0~Ii9+5z$w0w-L^v~8G&u}})pQ{s%XfC})Z1tf(HX+_ z%<;jHK$$)>kcp1o`2+>;7Xo>V53&Z^4j5}Z%m>y`J!u?RgGJ!75L$IJg9Vr-=o)8e z0xyjRA7dV&cohOG=6x1uAq4=-3%tQH_ynTV-fteayXImdi<}@u7CC`!EsLDUL5IrB rKqk%D157je)GKWrT+A8zuj^WEc8zMDx7AO)f4PX7xY(An3<4M_JVx&8 delta 523 zcmV+m0`&c&R-{&tB!Ay}R9JLGWpiV4X>fFDZ*Bkpc$}q|O;6k~5Qfj2Utz%=m6mG` zMOoUd#8yJRM-x1W-F3!We~{gO&%r1wKvesNW28KO?D34pzErpCADgXe?l;vFhiJX1 zTHRcIsaBKK$*5X=`&z9G+rgyr5fdd=wYnHvrV!iC4wH9%dw=)vd;902T4@`is?|-k z>I01&RjsZ+guXYwK*Wl0z+`+#fj+^%BJmk(3cE!@O<}h*Lb&vOlon6?L<6(OlL*bA z-XGB4q4_xKkntUL@c7OSCV`T|K&D4ZogEO*3jtYr7U4%|O9}y5#vH6hBn5yR@n5zf zutPL61DSlXjDJ{svJ9RB{KSx=09bzc2}&+MojtzsL1H^(>qal<3IcVVh3e{sz)nXd ztbZ_pohninIA($N?*uLA7mJK10*}ThPp#~@BjcH07*naRCt{2-M?=f NXPPJQ=d&IH1S!Kk_vios From a6fa046f2a19576a499009bfbe7f047787efd7b0 Mon Sep 17 00:00:00 2001 From: Cadyn Bombaci Date: Wed, 30 Jun 2021 01:43:50 -0700 Subject: [PATCH 043/173] Get TGS4 working first --- dependencies.sh | 2 +- tools/tgs4_scripts/PreCompile.sh | 36 ++++++++++++++------------------ 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/dependencies.sh b/dependencies.sh index 0fbad2153c..a56ad31dd4 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -8,7 +8,7 @@ export BYOND_MAJOR=513 export BYOND_MINOR=1536 #rust_g git tag -export RUST_G_VERSION=0.4.7 +export RUST_G_VERSION=0.4.8 #node version export NODE_VERSION=12 diff --git a/tools/tgs4_scripts/PreCompile.sh b/tools/tgs4_scripts/PreCompile.sh index f21036ab19..0056042c87 100755 --- a/tools/tgs4_scripts/PreCompile.sh +++ b/tools/tgs4_scripts/PreCompile.sh @@ -66,31 +66,27 @@ env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target=i686-un mv target/i686-unknown-linux-gnu/release/librust_g.so "$1/librust_g.so" cd .. -# get dependencies for extools -apt-get install -y cmake build-essential gcc-multilib g++-multilib cmake wget +# Auxtools dependencies +apt-get install build-essential g++-multilib libc6-i386 libstdc++6:i386 -# update extools -if [ ! -d "extools" ]; then - echo "Cloning extools..." - git clone https://github.com/MCHSL/extools - cd extools/byond-extools +# Update auxmos +if [ ! -d "auxmos" ]; then + echo "Cloning auxmos..." + git clone https://github.com/Putnam3145/auxmos + cd auxmos + ~/.cargo/bin/rustup target add i686-unknown-linux-gnu else - echo "Fetching extools..." - cd extools/byond-extools + echo "Fetching auxmos..." + cd auxmos git fetch + ~/.cargo/bin/rustup target add i686-unknown-linux-gnu fi -echo "Deploying extools..." -git checkout "$EXTOOLS_VERSION" -if [ -d "build" ]; then - rm -R build -fi -mkdir build -cd build -cmake .. -make -mv libbyond-extools.so "$1/libbyond-extools.so" -cd ../../.. +echo "Deploying auxmos..." +git pull origin master +env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target=i686-unknown-linux-gnu +mv -f target/i686-unknown-linux-gnu/release/libauxmos.so "$1/libauxmos.so" +cd .. # install or update youtube-dl when not present, or if it is present with pip3, # which we assume was used to install it From ee99bbee3ef1b168f96805a7f19fa4599f46e785 Mon Sep 17 00:00:00 2001 From: Cadyn Bombaci Date: Wed, 30 Jun 2021 05:03:54 -0700 Subject: [PATCH 044/173] Make Cit work on linux with and without TGS4 --- .gitignore | 4 + Build.sh | 4 + .../map_files/Deltastation/DeltaStation2.dmm | 4 +- _maps/map_files/MetaStation/MetaStation.dmm | 2 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 678 ++++++++++++------ .../recipes/recipes_weapon_and_ammo.dm | 10 + code/game/objects/items/melee/misc.dm | 12 + code/game/objects/items/plushes.dm | 162 +++-- .../jobs/job_types/head_of_personnel.dm | 8 +- code/modules/jobs/job_types/quartermaster.dm | 2 +- code/modules/mining/equipment/survival_pod.dm | 5 + .../mining/lavaland/necropolis_chests.dm | 92 +-- code/modules/mining/machine_vending.dm | 1 + code/modules/mining/shelters.dm | 11 + .../hostile/megafauna/blood_drunk_miner.dm | 6 +- .../hostile/megafauna/demonic_frost_miner.dm | 6 +- dependencies.sh | 3 + html/changelog.html | 23 + html/changelogs/.all_changelog.yml | 20 + libauxmos.so | Bin 10443068 -> 0 bytes tools/build/binaries/README.md | 1 + tools/build/build | 71 ++ 22 files changed, 810 insertions(+), 315 deletions(-) create mode 100755 Build.sh delete mode 100644 libauxmos.so create mode 100644 tools/build/binaries/README.md diff --git a/.gitignore b/.gitignore index dd20fecd22..91a0ef08eb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,10 @@ #Ignore byond config folder. /cfg/**/* +#Ignore rust-g and auxmos libraries which are compiled with scripts +*.so +/tools/build/binaries/**/* + #Ignore compiled files and other files generated during compilation. *.mdme *.dmb diff --git a/Build.sh b/Build.sh new file mode 100755 index 0000000000..f36de6e9d0 --- /dev/null +++ b/Build.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd "$(dirname "$(readlink -f "$0")")" +cd ./tools/build +sudo bash ./build diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 819d104c41..2108c61d32 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -111598,7 +111598,7 @@ icon_state = "4-8" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ +/obj/machinery/door/airlock/command{ name = "Quartermaster's Quarters"; req_access_txt = "41" }, @@ -127746,7 +127746,7 @@ icon_state = "4-8" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ +/obj/machinery/door/airlock/command{ name = "Quartermaster's Office"; req_access_txt = "41" }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 63a36acfd0..0f41cd3b1a 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -56562,7 +56562,7 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ +/obj/machinery/door/airlock/command{ name = "Quartermaster"; req_access_txt = "41" }, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 2c13790db7..d749c51798 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -4,8 +4,8 @@ /area/space) "aab" = ( /obj/effect/landmark/start/cyborg, -/mob/living/simple_animal/bot/secbot/pingsky, /obj/machinery/holopad/secure, +/mob/living/simple_animal/bot/secbot/pingsky, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "aac" = ( @@ -23298,7 +23298,7 @@ /turf/open/floor/plating, /area/cargo/qm) "bbG" = ( -/obj/machinery/door/airlock/mining/glass{ +/obj/machinery/door/airlock/command{ name = "Quartermaster"; req_access_txt = "41" }, @@ -28881,6 +28881,7 @@ dir = 1 }, /obj/structure/disposalpipe/trunk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bpt" = ( @@ -29492,6 +29493,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bqF" = ( @@ -29515,6 +29517,7 @@ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bqH" = ( @@ -29545,6 +29548,7 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bqJ" = ( @@ -29557,6 +29561,7 @@ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bqK" = ( @@ -29587,6 +29592,7 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bqO" = ( @@ -30149,23 +30155,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/sign/departments/xenobio{ - pixel_x = 32 - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"brV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 9 }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "brW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30180,13 +30179,15 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "brX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bsa" = ( @@ -30200,6 +30201,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "bsb" = ( @@ -30231,6 +30233,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "bsd" = ( @@ -30262,6 +30265,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "bsf" = ( @@ -30272,15 +30276,15 @@ /obj/structure/sign/departments/xenobio{ pixel_y = 32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bsl" = ( @@ -30828,7 +30832,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 + dir = 8 }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) @@ -30857,15 +30861,13 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "btA" = ( @@ -31421,6 +31423,9 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/structure/sign/departments/xenobio{ + pixel_x = 32 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "buL" = ( @@ -31442,8 +31447,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) @@ -31469,6 +31474,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "buQ" = ( @@ -32058,14 +32064,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) -"bwh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bwm" = ( @@ -32757,6 +32756,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "bxN" = ( @@ -32789,6 +32789,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "bxP" = ( @@ -32825,6 +32826,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "bxS" = ( @@ -32857,6 +32859,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "bxY" = ( @@ -33483,6 +33488,7 @@ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bzl" = ( @@ -33512,6 +33518,7 @@ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bzn" = ( @@ -33524,6 +33531,7 @@ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bzp" = ( @@ -33536,6 +33544,7 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bzq" = ( @@ -33548,6 +33557,7 @@ icon_state = "0-4" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bzr" = ( @@ -33577,8 +33587,15 @@ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) +"bzv" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/tcommsat/computer) "bzy" = ( /obj/structure/grille, /turf/open/space, @@ -34131,6 +34148,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "bAI" = ( @@ -41095,6 +41113,12 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"bPa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "bPd" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ dir = 8 @@ -43902,13 +43926,6 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/engineering/atmos) -"bVh" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engineering/atmos) "bVi" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/green/visible{ @@ -44900,7 +44917,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engineering/atmos) "bXx" = ( @@ -46687,6 +46704,12 @@ /obj/item/gps/engineering, /turf/open/floor/plating, /area/engineering/main) +"ccU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "ccW" = ( /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hazardvest, @@ -47179,12 +47202,12 @@ "ceT" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/engineering/main) -"ceU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, +/turf/open/floor/plating, +/area/engineering/main) +"ceU" = ( /obj/machinery/computer/security/telescreen{ desc = "Used for watching telecomms."; layer = 4; @@ -47192,6 +47215,9 @@ network = list("tcomms"); pixel_y = 28 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/engineering/main) "ceV" = ( @@ -48798,6 +48824,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/tcommsat/computer) "clR" = ( @@ -48845,8 +48872,8 @@ /turf/open/floor/plating, /area/tcommsat/computer) "clX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, /turf/open/floor/plasteel, /area/tcommsat/computer) @@ -50657,15 +50684,6 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/office) -"csu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) "csv" = ( /obj/machinery/light/small{ dir = 8 @@ -52853,6 +52871,7 @@ /area/engineering/main) "cBT" = ( /obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plating/airless, /area/maintenance/disposal/incinerator) "cBU" = ( @@ -53045,6 +53064,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/item/wrench, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cSJ" = ( @@ -53104,6 +53124,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/lab) +"cXP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) "cXW" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -53179,6 +53205,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "dgI" = ( @@ -53399,6 +53426,7 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "dye" = ( @@ -53441,6 +53469,19 @@ "dFJ" = ( /turf/open/floor/engine, /area/engineering/supermatter) +"dHo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "dHr" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible, /obj/machinery/button/door{ @@ -53476,9 +53517,7 @@ /area/medical/chemistry) "dJk" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engineering/atmos) "dJm" = ( @@ -53786,9 +53825,6 @@ "eAZ" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /turf/open/space, /area/space/nearstation) "eCw" = ( @@ -53855,6 +53891,11 @@ /obj/effect/turf_decal/tile/green{ dir = 1 }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "eLt" = ( @@ -53961,6 +54002,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/explab) +"eUB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "eVy" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -53968,6 +54015,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/engineering/main) "eWi" = ( @@ -53976,6 +54024,12 @@ }, /turf/open/floor/plating, /area/engineering/main) +"eWP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "eXo" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -54045,6 +54099,14 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"ffr" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "ffJ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -54347,6 +54409,12 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) +"fLz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "fLG" = ( /obj/effect/decal/remains/xeno, /turf/open/floor/plating, @@ -54375,6 +54443,13 @@ "fRs" = ( /turf/closed/wall, /area/command/heads_quarters/rd) +"fRT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "fTY" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -54452,6 +54527,16 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"geN" = ( +/obj/machinery/igniter{ + id = "xenoigniter"; + luminosity = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "geU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -54815,12 +54900,13 @@ icon_state = "1-8" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "gIG" = ( @@ -54830,6 +54916,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "gKz" = ( @@ -54969,7 +55059,7 @@ "hbl" = ( /obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, -/area/space) +/area/maintenance/disposal/incinerator) "heC" = ( /obj/machinery/power/apc/highcap/five_k{ dir = 8; @@ -54982,7 +55072,6 @@ }, /area/maintenance/department/science) "hfZ" = ( -/obj/structure/reagent_dispensers/watertank, /obj/machinery/requests_console{ department = "Science"; departmentType = 2; @@ -54990,6 +55079,10 @@ pixel_x = 32; receive_ore_updates = 1 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plasteel, /area/science/xenobiology) "hgD" = ( @@ -55113,6 +55206,7 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) "hwd" = ( @@ -55379,9 +55473,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "hVx" = ( @@ -55481,6 +55573,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "ihj" = ( @@ -55628,6 +55721,9 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ivO" = ( @@ -55883,8 +55979,8 @@ }, /area/maintenance/department/science) "iWV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -55976,6 +56072,10 @@ }, /turf/open/floor/wood, /area/service/lawoffice) +"jkv" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) "jrG" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -56053,6 +56153,10 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) +"jvO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "jwe" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -56075,6 +56179,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "jxK" = ( @@ -56742,6 +56847,19 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/engineering/main) +"kUE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "kWG" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 4 @@ -56955,6 +57073,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"lCN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/engine, +/area/science/xenobiology) "lEn" = ( /obj/structure/window/reinforced{ dir = 1 @@ -57139,6 +57261,12 @@ /obj/item/clothing/head/beret, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"lXt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "lXJ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -57268,12 +57396,16 @@ /turf/closed/wall/r_wall, /area/engineering/main) "mlr" = ( -/obj/structure/lattice, /obj/structure/disposalpipe/junction{ dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "inc_in" + }, +/turf/open/floor/plating, +/area/science/xenobiology) "mmv" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Supplies"; @@ -57369,6 +57501,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "mvm" = ( @@ -57576,6 +57711,7 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "mVM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, /area/space/nearstation) "mXq" = ( @@ -57594,6 +57730,9 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/engine, /area/science/xenobiology) "naS" = ( @@ -57603,7 +57742,7 @@ "nbu" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, -/area/space) +/area/maintenance/disposal/incinerator) "ncm" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -57632,6 +57771,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"nfc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) "nfi" = ( /obj/structure/sign/directions/evac{ dir = 1; @@ -57965,6 +58108,12 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"nNp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) "nNJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -57984,15 +58133,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "nPA" = ( @@ -58098,6 +58247,7 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ofN" = ( @@ -58193,6 +58343,16 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel, /area/science/xenobiology) +"osC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "ous" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/button/door{ @@ -58278,7 +58438,6 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "oBb" = ( -/obj/structure/sign/warning/biohazard, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -58424,6 +58583,10 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 3; + name = "Waste to Space" + }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "oPx" = ( @@ -58473,6 +58636,7 @@ id = "xenobio4"; name = "containment blast door" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/engine, /area/science/xenobiology) "oSL" = ( @@ -58485,9 +58649,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "oTl" = ( @@ -58669,6 +58831,8 @@ dir = 4; network = list("ss13","rd") }, +/obj/item/reagent_containers/glass/beaker, +/obj/item/reagent_containers/dropper, /turf/open/floor/plasteel, /area/science/xenobiology) "pgH" = ( @@ -58704,6 +58868,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, /area/space/nearstation) "pkM" = ( @@ -58716,6 +58881,12 @@ /obj/structure/musician/piano, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"pmf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) "pmB" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -58736,9 +58907,8 @@ /area/science/xenobiology) "poP" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 }, /turf/open/space, /area/space/nearstation) @@ -58937,17 +59107,12 @@ /turf/open/floor/plating, /area/engineering/main) "pMG" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 +/obj/effect/turf_decal/tile/green{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "pNy" = ( @@ -59016,6 +59181,9 @@ id = "misclab"; name = "test chamber blast door" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/science/xenobiology) "pWF" = ( @@ -59145,6 +59313,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/xenobiology) "qdj" = ( @@ -59253,6 +59422,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/department/engine) +"qAk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "qAx" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -59269,6 +59444,11 @@ /obj/item/clothing/head/ushanka, /turf/open/floor/plating, /area/maintenance/department/engine) +"qCu" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/space, +/area/space/nearstation) "qDJ" = ( /obj/structure/table/reinforced, /obj/item/integrated_circuit_printer, @@ -59468,6 +59648,15 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/maintenance/disposal/incinerator) +"qVn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "qVP" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -59564,6 +59753,13 @@ }, /turf/open/floor/plasteel/white, /area/medical/treatment_center) +"rbe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "rdB" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 @@ -59676,6 +59872,7 @@ /area/space/nearstation) "roc" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, /area/space/nearstation) "ros" = ( @@ -59862,6 +60059,12 @@ /obj/item/ammo_casing/shotgun/improvised, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"rMB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "rMV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59982,6 +60185,13 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) +"sgt" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/space, +/area/space/nearstation) "shH" = ( /turf/closed/wall/r_wall, /area/space/nearstation) @@ -60196,6 +60406,13 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"sNk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "sNz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -60353,15 +60570,13 @@ /turf/open/floor/plasteel/white, /area/science/explab) "tdB" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/dropper, /obj/effect/turf_decal/tile/purple{ dir = 1 }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plasteel/white, /area/science/xenobiology) "tdL" = ( @@ -60373,6 +60588,7 @@ icon_state = "0-2"; pixel_y = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, /area/space/nearstation) "tfx" = ( @@ -60527,6 +60743,7 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, /area/space/nearstation) "tuy" = ( @@ -60540,6 +60757,18 @@ }, /turf/open/floor/engine, /area/science/xenobiology) +"tuR" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "tvj" = ( /obj/structure/festivus{ anchored = 1; @@ -60580,6 +60809,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"tzj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "tzH" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "research_shutters_2"; @@ -60632,6 +60865,12 @@ }, /turf/open/floor/plasteel, /area/science/lab) +"tJW" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air Out" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) "tLP" = ( /obj/machinery/status_display/supply, /turf/closed/wall, @@ -60671,6 +60910,12 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"tUO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) "tXn" = ( /obj/structure/sink{ dir = 4; @@ -60686,6 +60931,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to Distro" + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "uaC" = ( @@ -60720,14 +60969,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/science/mixing) -"udl" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/space, -/area/space/nearstation) "uek" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -60766,6 +61007,7 @@ /turf/open/floor/plasteel, /area/engineering/main) "ufa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -60832,9 +61074,6 @@ /area/engineering/main) "ume" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -60844,6 +61083,15 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"uof" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "uoj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -60931,6 +61179,9 @@ id = "misclab"; name = "test chamber blast door" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/science/xenobiology) "uvq" = ( @@ -60966,6 +61217,10 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"uyJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine, +/area/science/xenobiology) "uzh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/engineering/glass/critical{ @@ -60989,6 +61244,12 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"uzB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) "uAU" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -61021,6 +61282,7 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, /area/space/nearstation) "uIn" = ( @@ -61050,6 +61312,10 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) +"uLP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) "uMe" = ( /obj/structure/cable{ icon_state = "0-2"; @@ -61487,9 +61753,6 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "vOw" = ( @@ -62042,6 +62305,9 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "wYu" = ( @@ -62195,6 +62461,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "xlg" = ( @@ -62326,6 +62593,11 @@ }, /turf/open/floor/engine, /area/engineering/main) +"xAy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/science/xenobiology) "xCV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -90746,10 +91018,10 @@ gnq bXk ceU eVy -bXk -bXk -bXk -bXk +ulY +ulY +ulY +ulY tue pjH pjH @@ -90774,9 +91046,9 @@ tfw pjH pjH uHG -clw -clw -clw +cme +cme +jkv clQ clX rsZ @@ -91544,7 +91816,7 @@ fon fon aht aht -ouv +bzv clw clw clw @@ -96904,15 +97176,15 @@ bJN bJN bJN bJN +bXk +bXk +bXk +bXk +bXk +bXk frj pYh pYh -pYh -pYh -pYh -pYh -pYh -pYh hUw nqu nsJ @@ -97161,13 +97433,13 @@ bUp bWI bXr bKQ -udl +acN bZK abI abI abI abI -aaa +pmf aaa aaa uaO @@ -97418,13 +97690,13 @@ bMf bWJ bXs bJN -cui -bJP -bJP -bJP -bJP -bJP abI +bJP +bJP +bJP +bJP +bJP +cui abI aht pBJ @@ -97681,7 +97953,7 @@ caz cbs cbs bJP -aaa +pmf aaa aaa uaO @@ -97932,13 +98204,13 @@ bMf bMf bXu bLW -cui +abI bMi caA cbt ccm bJP -aaa +pmf aaa aaa pBJ @@ -98188,14 +98460,14 @@ bMf bMf bWM bXv -bVh +bWc poP bZL caB cbs cbs bJP -aaa +pmf aaa aaa aht @@ -98446,13 +98718,13 @@ hjk pmB bXw dJk -cui +sgt bJP bJP bJP bJP bJP -aaa +pmf aaa aaa aht @@ -98709,7 +98981,7 @@ caC cbu cbu bJP -aht +fRT aht fon fon @@ -98960,13 +99232,13 @@ bVZ bOX bXx bVi -cui +abI bMi caD cbv ccn bJP -aaa +pmf aaa fon shH @@ -99217,13 +99489,13 @@ bVY bUs bVg bVm -poP +qCu bZL caE cbu cbu bJP -aht +fRT aht fon fon @@ -99474,13 +99746,13 @@ bVZ bOX kas bNm -cui +abI bJP bJP bJP bJP bJP -aaa +pmf aaa aaa aaa @@ -99731,13 +100003,13 @@ bVZ bWO bXA bQO -poP +qCu bZM caF cbw cby bJP -aaa +pmf aaa aaa fon @@ -99988,13 +100260,13 @@ bVZ bMf bXB bNm -cui +abI bMi caG cbx cco bJP -aht +fRT aht aht fon @@ -100245,13 +100517,13 @@ bVY bWP bXy bQO -poP +qCu bZN caH cby cby bJP -aaa +pmf aaa aaa fon @@ -100502,13 +100774,13 @@ bTR bUt bXC bYs -bVW -bYw -bYw +jvO +jvO +jvO cBT -bYw -bYw -bYw +jvO +jvO +bVW aht aht fon @@ -106121,8 +106393,8 @@ oTl vzP vzP iWV -aFi -bpq +tJW +rxa bnj brT bxF @@ -106375,14 +106647,14 @@ eCw aUC aUC qHI -aKq +bpq aEj wAI vzP vzP bqA brU -bxF +bPa buK dqw spz @@ -106638,7 +106910,7 @@ bkF bkF bkF bkF -brV +bkF ume bkF bkF @@ -106895,7 +107167,7 @@ lWH wfs pfP bqC -brW +qVn vMx ofN gdL @@ -107153,7 +107425,7 @@ hEX brO bzg brX -csu +buI xzp ugC gdJ @@ -107407,9 +107679,9 @@ bnd tdB bpn thW -bpn +tzj bqE -brW +kUE btu xpr ihk @@ -108433,17 +108705,17 @@ aKq gfi bkF blX -blX +uyJ bpr oSc bsa -btw -buI -bwe +dHo +sNk +ffr bxM bzk bAH -blX +eUB blX bkF kgR @@ -108947,8 +109219,8 @@ gfi aFi bkF bni -blX -blX +lCN +uLP hvW igE btx @@ -108956,8 +109228,8 @@ dxc bwf bxO bzm -blX -blX +uLP +uzB blX bkF hTl @@ -109461,17 +109733,17 @@ gfi ybX bkF blX -blX +uyJ bpr bqG bsa -btw +dHo buM -bwh +ffr bxM bzn bAH -blX +eUB blX bkF qIO @@ -109975,8 +110247,8 @@ gfi ybX bkF bni -blX -blX +lCN +uLP bqI bsc btx @@ -109984,8 +110256,8 @@ buO bwf bxR bzp -blX -blX +uLP +uzB blX bkF aaA @@ -110489,17 +110761,17 @@ gfi bfM bkF blX -blX +uyJ bpr bqJ bsa gIG -buN -bwe +osC +ffr bxM bzq bAH -blX +eUB blX bkF wfc @@ -110750,7 +111022,7 @@ blX blX bqK bsd -gIG +tuR buN bwe bxS @@ -111003,8 +111275,8 @@ ntj fNv bkF blX -blX -blX +lCN +uLP bqL bse xjT @@ -111012,8 +111284,8 @@ btE buW bxT bzs -blX -blX +uLP +uzB blX bkF ueV @@ -111264,10 +111536,10 @@ bkF bkF bkF bkF -bkF +tUO qdi -bkF -bkF +cXP +nNp bkF bkF bkF @@ -112550,11 +112822,11 @@ bnd kRK cPy dir -mTS +uof ufa oNE oep -bnd +xAy mlr sEB jEX @@ -112808,7 +113080,7 @@ qcD xxw lhA lFh -ufa +ccU taA qcH bnd @@ -113835,7 +114107,7 @@ bkF bkF bkF pbR -blX +rMB naq bkF bkF @@ -114090,11 +114362,11 @@ aed aht bkF blX -blX -blX -blX -blX -blX +lXt +nfc +eWP +rbe +fLz blX bkF aht @@ -114347,11 +114619,11 @@ aby aaa xKc blX -blX +qAk iPj tfP -iPj -blX +geN +qAk blX xKc aaa diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 95361c3da2..01ad269a8e 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -72,6 +72,16 @@ category = CAT_WEAPONRY subcategory = CAT_MELEE +/datum/crafting_recipe/newsbaton + name = "Newspaper Baton" + result = /obj/item/melee/classic_baton/telescopic/newspaper + reqs = list(/obj/item/melee/classic_baton/telescopic = 1, + /obj/item/newspaper = 1, + /obj/item/stack/sticky_tape = 2) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + /datum/crafting_recipe/bokken name = "Training Bokken" result = /obj/item/melee/bokken diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 8a9b6a5235..a04bfb365b 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -453,6 +453,18 @@ playsound(src.loc, on_sound, 50, 1) add_fingerprint(user) +/obj/item/melee/classic_baton/telescopic/newspaper + name = "The Daily Whiplash" + desc = "A newspaper wrapped around a telescopic baton in such a way that it looks like you're beating people with a rolled up newspaper." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "newspaper" + lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' + on_sound = 'sound/weapons/batonextend.ogg' + on_icon_state = "newspaper2" + off_icon_state = "newspaper" + on_item_state = "newspaper" + /obj/item/melee/classic_baton/telescopic/contractor_baton name = "contractor baton" desc = "A compact, specialised baton assigned to Syndicate contractors. Applies light electrical shocks to targets." diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index c213fa34df..31481f58cf 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -612,6 +612,12 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) icon_state = "kobold" item_state = "kobold" +/obj/item/toy/plush/lizardplushie/kobold + name = "spacelizard plushie" + desc = "An adorable stuffed toy that resembles a lizard in a suit." + icon_state = "plushie_spacelizard" + item_state = "plushie_spacelizard" + /obj/item/toy/plush/nukeplushie name = "operative plushie" desc = "A stuffed toy that resembles a syndicate nuclear operative. The tag claims operatives to be purely fictitious." @@ -643,17 +649,17 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) /obj/item/toy/plush/beeplushie name = "bee plushie" desc = "A cute toy that resembles an even cuter bee." - icon_state = "plushie_h" - item_state = "plushie_h" + icon_state = "plushie_bee" + item_state = "plushie_bee" attack_verb = list("stung") gender = FEMALE squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1) /obj/item/toy/plush/mothplushie - name = "insect plushie" + name = "moth plushie" desc = "An adorable stuffed toy that resembles some kind of insect." - icon_state = "bumble" - item_state = "bumble" + icon_state = "moff" + item_state = "moff" squeak_override = list('modular_citadel/sound/voice/mothsqueak.ogg' = 1) can_random_spawn = FALSE @@ -665,6 +671,20 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) attack_verb = list("lit", "flickered", "flashed") squeak_override = list('sound/weapons/magout.ogg' = 1) +/obj/item/toy/plush/drake + name = "drake plushie" + desc = "A large beast from lavaland turned into a marketable plushie!" + icon_state = "drake" + item_state = "drake" + attack_verb = list("bit", "devoured", "burned") + +/obj/item/toy/plush/deer + name = "deer plushie" + desc = "Oh deer, a plushie!" + icon_state = "deer" + item_state = "deer" + attack_verb = list("bleated", "rammed", "kicked") + /obj/item/toy/plush/box name = "cardboard plushie" desc = "A toy box plushie, it holds cotten. Only a baddie would place a bomb through the postal system..." @@ -694,7 +714,7 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) attack_verb = list("scanned", "beeped", "stared") /obj/item/toy/plush/borgplushie - name = "robot plushie" + name = "K9 plushie" desc = "An adorable stuffed toy of a robot." icon_state = "securityk9" item_state = "securityk9" @@ -702,25 +722,28 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) squeak_override = list('sound/machines/beep.ogg' = 1) /obj/item/toy/plush/borgplushie/medihound + name = "medihound plushie" icon_state = "medihound" item_state = "medihound" /obj/item/toy/plush/borgplushie/scrubpuppy + name = "scrubpuppy plushie" icon_state = "scrubpuppy" item_state = "scrubpuppy" +/obj/item/toy/plush/borgplushie/pupdozer + name = "pupdozer plushie" + icon_state = "pupdozer" + item_state = "pupdozer" + /obj/item/toy/plush/aiplush name = "AI plushie" desc = "A little stuffed toy AI core... it appears to be malfunctioning." - icon_state = "exo" - item_state = "exo" + icon_state = "malfai" + item_state = "malfai" attack_verb = list("hacked", "detonated", "overloaded") squeak_override = list('sound/machines/beep.ogg' = 9, 'sound/machines/buzz-two.ogg' = 1) -/obj/item/toy/plush/mammal/fox - icon_state = "fox" - item_state = "fox" - /obj/item/toy/plush/snakeplushie name = "snake plushie" desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing." @@ -732,6 +755,72 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) /obj/item/toy/plush/mammal name = "mammal plushie" desc = "An adorable stuffed toy resembling some sort of crew member." + icon_state = "ych" + item_state = "ych" + can_random_spawn = FALSE + +/obj/item/toy/plush/mammal/fox + name = "fox plushie" + desc = "An adorable stuffed toy resembling a fox." + icon_state = "fox" + item_state = "fox" + attack_verb = list("yipped", "geckered", "yapped") + +/obj/item/toy/plush/mammal/dog + name = "dog plushie" + icon_state = "corgi" + item_state = "corgi" + desc = "An adorable stuffed toy that resembles a dog." + attack_verb = list("barked", "boofed", "borked") + squeak_override = list( + 'modular_citadel/sound/voice/bark1.ogg' = 1, + 'modular_citadel/sound/voice/bark2.ogg' = 1 + ) + +/obj/item/toy/plush/mammal/dog/fcorgi + name = "corgi plushie" + icon_state = "girlycorgi" + item_state = "girlycorgi" + desc = "An adorable stuffed toy that resembles a dog. This one dons a pink ribbon." + +/obj/item/toy/plush/mammal/dog/borgi + name = "borgi plushie" + icon_state = "borgi" + item_state = "borgi" + desc = "An adorable stuffed toy that resembles a robot dog." + +/obj/item/toy/plush/xeno + name = "xenohybrid plushie" + desc = "An adorable stuffed toy that resembles a xenomorphic crewmember." + icon_state = "xeno" + item_state = "xeno" + squeak_override = list('sound/voice/hiss2.ogg' = 1) + can_random_spawn = FALSE + +/obj/item/toy/plush/bird + name = "bird plushie" + desc = "An adorable stuffed plushie that resembles an avian." + icon_state = "bird" + item_state = "bird" + attack_verb = list("peeped", "beeped", "poofed") + squeak_override = list('modular_citadel/sound/voice/peep.ogg' = 1) + can_random_spawn = FALSE + +/obj/item/toy/plush/sergal + name = "sergal plushie" + desc = "An adorable stuffed plushie that resembles a sagaru." + icon_state = "sergal" + item_state = "sergal" + squeak_override = list('modular_citadel/sound/voice/merp.ogg' = 1) + can_random_spawn = FALSE + +/obj/item/toy/plush/catgirl + name = "feline plushie" + desc = "An adorable stuffed toy that resembles a feline." + icon_state = "cat" + item_state = "cat" + attack_verb = list("headbutt", "scritched", "bit") + squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) can_random_spawn = FALSE /obj/item/toy/plush/catgirl/fermis @@ -742,40 +831,25 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) attack_verb = list("cuddled", "petpatted", "wigglepurred") squeak_override = list('modular_citadel/sound/voice/merowr.ogg' = 1) -/obj/item/toy/plush/xeno - name = "xenohybrid plushie" - desc = "An adorable stuffed toy that resmembles a xenomorphic crewmember." - squeak_override = list('sound/voice/hiss2.ogg' = 1) - can_random_spawn = FALSE +/obj/item/toy/plush/teddybear + name = "teddy" + desc = "It's a teddy bear!" + icon_state = "teddy" + item_state = "teddy" -/obj/item/toy/plush/bird - name = "bird plushie" - desc = "An adorable stuffed plushie that resembles an avian." - attack_verb = list("peeped", "beeped", "poofed") - squeak_override = list('modular_citadel/sound/voice/peep.ogg' = 1) - can_random_spawn = FALSE - -/obj/item/toy/plush/sergal - name = "sergal plushie" - desc = "An adorable stuffed plushie that resembles a sagaru." - squeak_override = list('modular_citadel/sound/voice/merp.ogg' = 1) - can_random_spawn = FALSE - -/obj/item/toy/plush/mammal/dog - desc = "An adorable stuffed toy that resembles a canine." - attack_verb = list("barked", "boofed", "borked") - squeak_override = list( - 'modular_citadel/sound/voice/bark1.ogg' = 1, - 'modular_citadel/sound/voice/bark2.ogg' = 1 - ) - -/obj/item/toy/plush/catgirl - name = "feline plushie" - desc = "An adorable stuffed toy that resembles a feline." - attack_verb = list("headbutt", "scritched", "bit") - squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) - can_random_spawn = FALSE +/obj/item/toy/plush/crab + name = "crab plushie" + desc = "Fewer pinches than a real one, but it still clicks." + icon_state = "crab" + item_state = "crab" + attack_verb = list("clicked", "clacked", "pinched") +/obj/item/toy/plush/gondola + name = "gondola plushie" + desc = "Just looking at it seems to calm you down. Please do not eat it though." + icon_state = "gondola" + item_state = "gondola" + attack_verb = list("calmed", "smiled", "peaced") /obj/item/toy/plush/hairball name = "Hairball" diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index f1b7d3e8c4..07c1a12ced 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -23,14 +23,14 @@ ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE, ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER, - ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, - ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) + ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT, + ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE, ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER, - ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, - ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) + ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT, + ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY) paycheck = PAYCHECK_COMMAND paycheck_department = ACCOUNT_SRV diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index 301acff5c4..ff811d30d1 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -25,7 +25,7 @@ minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_KEYCARD_AUTH, ACCESS_RC_ANNOUNCE, ACCESS_SEC_DOORS, ACCESS_HEADS) - paycheck = PAYCHECK_HARD //They can already buy stuff using cargo budget, don't give em a command-level paycheck. + paycheck = PAYCHECK_HARD //They can already buy stuff using cargo budget, don't give em a command-level paycheck. //alright i'll agree to that -qweq paycheck_department = ACCOUNT_CAR display_order = JOB_DISPLAY_ORDER_QUARTERMASTER diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 80dec5bc29..2452beb0e1 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -89,6 +89,11 @@ name = "large empty capsule" desc = "An extremly large capsule which requires power. Useful for projects all over." template_id = "shelter_delta" + +/obj/item/survivalcapsule/luxury/penthouse + name = "penthouse bluespace sheler capsule" + desc = "The absolute pinnacle of luxury in terms of survival capsules. While exuberantly expensive it has everything needed to make a small home in lavaland." + template_id = "shelter_epsilon" //Pod objects //Window diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index a915a89c73..e64505df7e 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -61,37 +61,32 @@ new /obj/item/guardiancreator(src) /obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents() - var/loot = rand(1,11) + var/loot = rand(1,10) switch(loot) if(1) new /obj/item/clothing/suit/space/hardsuit/cult(src) if(2) new /obj/item/katana/lavaland(src) if(3) - if(prob(50)) - new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src) - else - new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src) - if(4) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src) - if(5) + if(4) new /obj/item/nullrod/scythe/talking(src) - if(6) + if(5) new /obj/item/nullrod/armblade(src) - if(7) + if(6) new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) - if(8) + if(7) new /obj/item/grenade/clusterbuster/inferno(src) - if(9) + if(8) new /obj/item/gun/magic/wand/book/shock(src) - if(10) + if(9) new /obj/item/gun/magic/wand/book/page(src) - if(11) + if(10) new /obj/item/gun/magic/wand/book/spark(src) /obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents() - var/loot = rand(1,14) + var/loot = rand(1,12) switch(loot) if(1) new /obj/item/shared_storage/red(src) @@ -106,31 +101,21 @@ if(6) new /obj/item/jacobs_ladder(src) if(7) - if(prob(50)) - new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src) - else - new /obj/item/disk/design_disk/modkit_disc/bounty(src) - if(8) new /obj/item/wisp_lantern(src) - if(9) + if(8) new /obj/item/pickaxe/rosegold(src) - if(10) + if(9) new /obj/item/bedsheet/cosmos(src) new /obj/item/melee/skateboard/hoverboard(src) - if(11) + if(10) new /obj/item/disk/tech_disk/illegal(src) - if(12) + if(11) new /obj/item/clothing/suit/space/hardsuit/cult(src) - if(13) + if(12) new /obj/item/katana/lavaland(src) - if(14) - if(prob(50)) - new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src) - else - new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src) /obj/structure/closet/crate/necropolis/tendril/all/PopulateContents() - var/loot = rand(1,29) + var/loot = rand(1,28) switch(loot) if(1) new /obj/item/shared_storage/red(src) @@ -145,56 +130,51 @@ if(6) new /obj/item/jacobs_ladder(src) if(7) - if(prob(50)) - new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src) - else - new /obj/item/disk/design_disk/modkit_disc/bounty(src) - if(8) new /obj/item/wisp_lantern(src) - if(9) + if(8) new /obj/item/pickaxe/rosegold(src) - if(10) + if(9) new /obj/item/bedsheet/cosmos(src) new /obj/item/melee/skateboard/hoverboard(src) - if(11) + if(10) new /obj/item/disk/tech_disk/illegal(src) - if(12) + if(11) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src) - if(13) + if(12) new /obj/item/nullrod/scythe/talking(src) - if(14) + if(13) new /obj/item/nullrod/armblade(src) - if(15) + if(14) new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) - if(16) + if(15) new /obj/item/grenade/clusterbuster/inferno(src) - if(17) + if(16) new /obj/item/gun/magic/wand/book/shock(src) - if(18) + if(17) new /obj/item/gun/magic/wand/book/page(src) - if(19) + if(18) new /obj/item/gun/magic/wand/book/spark(src) - if(20) + if(19) new /obj/item/soulstone/anybody(src) - if(21) + if(20) new /obj/item/rod_of_asclepius(src) - if(22) + if(21) new /obj/item/organ/heart/cursed/wizard(src) - if(23) + if(22) new /obj/item/book/granter/spell/summonitem(src) - if(24) + if(23) new /obj/item/borg/upgrade/modkit/lifesteal(src) new /obj/item/bedsheet/cult(src) - if(25) + if(24) new /obj/item/clothing/neck/necklace/memento_mori(src) - if(26) + if(25) new /obj/item/warp_cube/red(src) - if(27) + if(26) new /obj/item/immortality_talisman(src) - if(28) + if(27) new /obj/item/gun/magic/wand/book/healing(src) - if(29) + if(28) new /obj/item/guardiancreator(src) //KA modkit design discs diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 8a7c3a81bd..7a3cd9140b 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -57,6 +57,7 @@ new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxury/elitebar, 10000), new /datum/data/mining_equipment("Empty Capsule", /obj/item/survivalcapsule/luxury/empty, 5000), + new /datum/data/mining_equipment("Penthouse Capsule", /obj/item/survivalcapsule/luxury/penthouse, 15000), new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800), new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400), new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400), diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm index 6bd04ffd6d..83a8412ca8 100644 --- a/code/modules/mining/shelters.dm +++ b/code/modules/mining/shelters.dm @@ -85,3 +85,14 @@ . = ..() whitelisted_turfs = typecacheof(/turf/closed/mineral) banned_objects = typecacheof(/obj/structure/stone_tile) + +/datum/map_template/shelter/epsilon + name = "Shelter Epsilon" + shelter_id = "shelter_epsilon" + description = "A small apartment in the palm of your hand." + mappath = "_maps/templates/shelter_5.dmm" + +/datum/map_template/shelter/epsilon/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) + banned_objects = typecacheof(/obj/structure/stone_tile) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index a60c5504e6..e6c5e7c22b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -40,8 +40,10 @@ Difficulty: Medium ranged = 1 ranged_cooldown_time = 16 pixel_x = -16 - crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka, /obj/item/crusher_trophy/miner_eye) - loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka) + crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka, /obj/item/crusher_trophy/miner_eye, /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe, + /obj/item/disk/design_disk/modkit_disc/bounty,/obj/item/disk/design_disk/modkit_disc/resonator_blast,/obj/item/disk/design_disk/modkit_disc/rapid_repeater) + loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka,/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe, + /obj/item/disk/design_disk/modkit_disc/bounty,/obj/item/disk/design_disk/modkit_disc/resonator_blast,/obj/item/disk/design_disk/modkit_disc/rapid_repeater) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL 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 2bcca74f30..64e1399e19 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 @@ -26,8 +26,10 @@ Difficulty: Extremely Hard speed = 20 move_to_delay = 20 ranged = TRUE - crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman) - loot = list(/obj/effect/decal/remains/plasma) + crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman, ,/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe, + /obj/item/disk/design_disk/modkit_disc/bounty,/obj/item/disk/design_disk/modkit_disc/resonator_blast,/obj/item/disk/design_disk/modkit_disc/rapid_repeater) + loot = list(/obj/effect/decal/remains/plasma, ,/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe, + /obj/item/disk/design_disk/modkit_disc/bounty,/obj/item/disk/design_disk/modkit_disc/resonator_blast,/obj/item/disk/design_disk/modkit_disc/rapid_repeater) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL diff --git a/dependencies.sh b/dependencies.sh index a56ad31dd4..bc7c499540 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -10,6 +10,9 @@ export BYOND_MINOR=1536 #rust_g git tag export RUST_G_VERSION=0.4.8 +#auxmos git tag +export AUXMOS_VERSION=0.2.0 + #node version export NODE_VERSION=12 export NODE_VERSION_PRECISE=12.20.0 diff --git a/html/changelog.html b/html/changelog.html index 831d711e2d..5e00eea3ab 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,29 @@ -->

+

30 June 2021

+

WanderingFox95 updated:

+
    +
  • More plushies in the code.
  • +
  • Nabbed some plushie sprites from Cit RP and TG and made some myself. Enjoy!
  • +
  • The Daily Whiplash (Newspaper Baton) is now available! (Using sticky tape to stick a newspaper onto a baton) Bap!
  • +
  • A rolled up newspaper sprite was provided.
  • +
  • Switched Gateway and Vault locations on Boxstation, bringing it more in line with other stations.
  • +
+

bunny232 updated:

+
    +
  • The pubby xenobiology air/scrubber network is now isolated from the rest of the station
  • +
+

qweq12yt updated:

+
    +
  • HoP's cargo access was removed...
  • +
+

shellspeed1 updated:

+
    +
  • NT has lost experimental KA tech to miners who were lost in the field. Make sure to try and recover it.
  • +
  • Adds an extremely expensive survival pod to mining for people to work towards. Get to work cracking rocks today.
  • +
+

28 June 2021

Putnam3145 updated:

GoonStation 13 Development Team From 8d7432b36f58afaacbcaaa090b5311641ede0246 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 3 Jul 2021 03:37:44 -0500 Subject: [PATCH 057/173] Automatic changelog generation for PR #14908 [ci skip] --- html/changelogs/AutoChangeLog-pr-14908.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14908.yml diff --git a/html/changelogs/AutoChangeLog-pr-14908.yml b/html/changelogs/AutoChangeLog-pr-14908.yml new file mode 100644 index 0000000000..500a970d92 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14908.yml @@ -0,0 +1,4 @@ +author: "cadyn" +delete-after: True +changes: + - server: "Updated server scripts for proper linux support" From 770bb9a4f12be6ca6ac2feee4b829be0e2dd00c1 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 02:36:34 -0700 Subject: [PATCH 058/173] Makes plumbing no longer SS_TICKER --- code/controllers/subsystem/fluid.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/fluid.dm b/code/controllers/subsystem/fluid.dm index c4fa13d693..70903e0088 100644 --- a/code/controllers/subsystem/fluid.dm +++ b/code/controllers/subsystem/fluid.dm @@ -1,5 +1,5 @@ PROCESSING_SUBSYSTEM_DEF(fluids) name = "Fluids" - wait = 20 + wait = 10 stat_tag = "FD" //its actually Fluid Ducts - flags = SS_NO_INIT | SS_TICKER + flags = SS_NO_INIT From 862de42e604f987e2866cead3f32ab6db38e8d66 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 03:15:55 -0700 Subject: [PATCH 059/173] tweaks to auxmos compile on linux --- dependencies.sh | 2 +- tools/build/build.sh | 2 +- tools/tgs4_scripts/PreCompile.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dependencies.sh b/dependencies.sh index bc7c499540..a86c58a5a2 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -11,7 +11,7 @@ export BYOND_MINOR=1536 export RUST_G_VERSION=0.4.8 #auxmos git tag -export AUXMOS_VERSION=0.2.0 +export AUXMOS_VERSION=v0.2.0 #node version export NODE_VERSION=12 diff --git a/tools/build/build.sh b/tools/build/build.sh index 9690ff068b..5d050764d1 100755 --- a/tools/build/build.sh +++ b/tools/build/build.sh @@ -58,7 +58,7 @@ fi #Compile and move auxmos binary to repo root echo "Deploying auxmos..." git checkout "$AUXMOS_VERSION" -env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target=i686-unknown-linux-gnu +env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo rustc --release --target=i686-unknown-linux-gnu --features "all_reaction_hooks" -- -C target-cpu=native mv target/i686-unknown-linux-gnu/release/libauxmos.so ../../../../libauxmos.so cd ../.. diff --git a/tools/tgs4_scripts/PreCompile.sh b/tools/tgs4_scripts/PreCompile.sh index 0056042c87..7018b8f2e9 100755 --- a/tools/tgs4_scripts/PreCompile.sh +++ b/tools/tgs4_scripts/PreCompile.sh @@ -83,8 +83,8 @@ else fi echo "Deploying auxmos..." -git pull origin master -env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --target=i686-unknown-linux-gnu +git checkout "$AUXMOS_VERSION" +env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo rustc --release --target=i686-unknown-linux-gnu --features "all_reaction_hooks" -- -C target-cpu=native mv -f target/i686-unknown-linux-gnu/release/libauxmos.so "$1/libauxmos.so" cd .. From e11cc190e726b1f0e9a5fac579c5448422af6f6b Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 03:40:34 -0700 Subject: [PATCH 060/173] Watcher optimization --- .../mob/living/simple_animal/hostile/mining_mobs/basilisk.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index f2ece50af2..3aa0fbcfaf 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -103,7 +103,7 @@ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/proc/consume_bait() var/list/L = list() - for(var/obj/O in view(src, 9)) + for(var/obj/O in view(1, src)) L += O var/obj/item/stack/ore/diamond/diamonds = locate(/obj/item/stack/ore/diamond) in L if(diamonds) From 15078f0f7129326df5c48f6fb2bd3c4c2fb2bdd8 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 03:50:43 -0700 Subject: [PATCH 061/173] Properly optimizes watchers --- .../hostile/mining_mobs/basilisk.dm | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 3aa0fbcfaf..9210d8a965 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -102,23 +102,13 @@ consume_bait() /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/proc/consume_bait() - var/list/L = list() for(var/obj/O in view(1, src)) - L += O - var/obj/item/stack/ore/diamond/diamonds = locate(/obj/item/stack/ore/diamond) in L - if(diamonds) - var/distanced = 0 - distanced = get_dist(loc,diamonds.loc) - if(distanced <= 1 && diamonds) - qdel(diamonds) - src.visible_message("[src] consumes [diamonds], and it disappears! ...At least, you think.") - var/obj/item/pen/survival/bait = locate(/obj/item/pen/survival) in L - if(bait) - var/distanceb = 0 - distanceb = get_dist(loc,bait.loc) - if(distanceb <= 1 && bait) - qdel(bait) - visible_message("[src] examines [bait] closer, and telekinetically shatters the pen.") + if(istype(O, /obj/item/stack/ore/diamond/diamonds)) + qdel(O) + src.visible_message("[src] consumes [O], and it disappears! ...At least, you think.") + else if(istype(O, /obj/item/pen/survival)) + qdel(O) + src.visible_message("[src] examines [O] closer, and telekinetically shatters the pen.") /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random/Initialize() . = ..() From 970e089fb03acf7abbc788d6beb9e54ac8215f44 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 03:52:07 -0700 Subject: [PATCH 062/173] glass houses --- .../mob/living/simple_animal/hostile/mining_mobs/basilisk.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 9210d8a965..24e595ef7e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -103,7 +103,7 @@ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/proc/consume_bait() for(var/obj/O in view(1, src)) - if(istype(O, /obj/item/stack/ore/diamond/diamonds)) + if(istype(O, /obj/item/stack/ore/diamond)) qdel(O) src.visible_message("[src] consumes [O], and it disappears! ...At least, you think.") else if(istype(O, /obj/item/pen/survival)) From e36448b9ed1adce10ee16ce071aeb75a562b3673 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sat, 3 Jul 2021 16:46:19 +0200 Subject: [PATCH 063/173] ONE PIXEL AAA --- modular_citadel/icons/mob/mam_ears.dmi | Bin 11042 -> 11042 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/mam_ears.dmi b/modular_citadel/icons/mob/mam_ears.dmi index 30e70cbfc2feae53b978f893ed189977764fdd3e..dd3ea5f82b28fa4f7587f278119a5678573d5003 100644 GIT binary patch delta 231 zcmVuZ<8_@BP5uJh{FX3nRWBW-aeG-S!3V2U%hVzjb|z4`w{Ub z+6h8!w!f2k7)mANh=~23`dSxtJWDCRtX@BiS;)9Qw@e*AA|hTker^{bsO|RGljs;( z5URY4SqNEn3#y(UOO_d8`;$=_KNBJ7NzUn6weHJ;MZHX{SZ0Xrual!0I}1at^D^Fj zW@qT_ZCEEOO_d84UvXD|Q& From f8f6dcae147a8b112a710fdcec91359b8dece4f9 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sat, 3 Jul 2021 22:17:06 +0200 Subject: [PATCH 064/173] Add files via upload --- code/modules/events/cat_surgeon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/cat_surgeon.dm b/code/modules/events/cat_surgeon.dm index ebcd55d8aa..2d5651b9b1 100644 --- a/code/modules/events/cat_surgeon.dm +++ b/code/modules/events/cat_surgeon.dm @@ -5,7 +5,7 @@ weight = 8 /datum/round_event/cat_surgeon/announce(fake) - priority_announce("One of our... ahem... 'special' cases has escaped. Our sensors now show their tracker implant on your station. On an unrelated note, has anyone seen our cats?", + priority_announce("One of our... ahem... 'special' cases has escaped. As it happens their last known location before their tracker went dead is your station so keep an eye out for them. On an unrelated note, has anyone seen our cats?", sender_override = "Nanotrasen Psych Ward") /datum/round_event/cat_surgeon/start() From 8e092394e1da70d001a49686cfc85ded6c8776c0 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sat, 3 Jul 2021 19:20:48 -0400 Subject: [PATCH 065/173] Update PubbyStation.dmm --- _maps/map_files/PubbyStation/PubbyStation.dmm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index d749c51798..8d14852bb0 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -9531,6 +9531,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/mirror{ + pixel_y = 30 + }, /turf/open/floor/plasteel/freezer, /area/command/heads_quarters/captain) "avJ" = ( From 081ef22adfdb921c63522b6a5d603fb08996aed8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 4 Jul 2021 00:22:20 +0000 Subject: [PATCH 066/173] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14908.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14908.yml diff --git a/html/changelog.html b/html/changelog.html index 076c9b6374..29d90d0b2d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

04 July 2021

+

cadyn updated:

+
    +
  • Updated server scripts for proper linux support
  • +
+

03 July 2021

DeltaFire15 updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 403deb29d0..4e3c204872 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29618,3 +29618,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. to call a proc with waitfor set to FALSE WanderingFox95: - bugfix: The axolotl ears in the .dmi file actually exist to the game now. +2021-07-04: + cadyn: + - server: Updated server scripts for proper linux support diff --git a/html/changelogs/AutoChangeLog-pr-14908.yml b/html/changelogs/AutoChangeLog-pr-14908.yml deleted file mode 100644 index 500a970d92..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14908.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "cadyn" -delete-after: True -changes: - - server: "Updated server scripts for proper linux support" From e437f6514ab3c10ae9dca87ce0b3ec17f7257733 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 21:09:27 -0700 Subject: [PATCH 067/173] Fixes a runtime in activity tracking --- code/datums/components/activity.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/activity.dm b/code/datums/components/activity.dm index ae18ca01a2..7c4c758d49 100644 --- a/code/datums/components/activity.dm +++ b/code/datums/components/activity.dm @@ -16,7 +16,7 @@ RegisterSignal(L, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_MOB_ATTACK_RANGED, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_THROW, COMSIG_MOVABLE_TELEPORTED, COMSIG_LIVING_GUN_PROCESS_FIRE, COMSIG_MOB_APPLY_DAMAGE), .proc/minor_activity) /datum/component/activity/proc/log_activity() - historical_activity_levels[world.time] = activity_level + historical_activity_levels["[world.time]"] = activity_level /datum/component/activity/proc/minor_activity(datum/source) activity_level += 1 From 899e74fc83fb01bfd4786b871dd1dd6303a31c03 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 22:10:44 -0700 Subject: [PATCH 068/173] Componentized acid --- code/controllers/subsystem/acid.dm | 37 ----------- code/datums/components/acid.dm | 65 +++++++++++++++++++ code/game/objects/effects/alien_acid.dm | 3 +- code/game/objects/items.dm | 9 --- code/game/objects/obj_defense.dm | 31 ++++----- code/game/objects/objs.dm | 4 -- code/game/objects/structures/watercloset.dm | 12 ++-- code/modules/mob/living/carbon/carbon.dm | 4 +- .../chemistry/reagents/other_reagents.dm | 4 +- .../crossbreeding/_status_effects.dm | 4 +- tgstation.dme | 2 +- 11 files changed, 95 insertions(+), 80 deletions(-) delete mode 100644 code/controllers/subsystem/acid.dm create mode 100644 code/datums/components/acid.dm diff --git a/code/controllers/subsystem/acid.dm b/code/controllers/subsystem/acid.dm deleted file mode 100644 index 25d080a1b1..0000000000 --- a/code/controllers/subsystem/acid.dm +++ /dev/null @@ -1,37 +0,0 @@ -SUBSYSTEM_DEF(acid) - name = "Acid" - priority = FIRE_PRIORITY_ACID - flags = SS_NO_INIT|SS_BACKGROUND - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME - - var/list/currentrun = list() - var/list/processing = list() - -/datum/controller/subsystem/acid/stat_entry(msg) - msg = "P:[length(processing)]" - return ..() - - -/datum/controller/subsystem/acid/fire(resumed = 0) - if (!resumed) - src.currentrun = processing.Copy() - - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while (currentrun.len) - var/obj/O = currentrun[currentrun.len] - currentrun.len-- - if (!O || QDELETED(O)) - processing -= O - if (MC_TICK_CHECK) - return - continue - - if(O.acid_level && O.acid_processing()) - else - O.update_icon() - processing -= O - - if (MC_TICK_CHECK) - return diff --git a/code/datums/components/acid.dm b/code/datums/components/acid.dm new file mode 100644 index 0000000000..2e3784dc97 --- /dev/null +++ b/code/datums/components/acid.dm @@ -0,0 +1,65 @@ +/datum/component/acid + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + var/level = 0 + +/datum/component/acid/Initialize(acidpwr, acid_volume) + if(!isobj(parent)) + return COMPONENT_INCOMPATIBLE + var/obj/O = parent + var/acid_cap = acidpwr * 300 + level = min(acidpwr * acid_volume, acid_cap) + START_PROCESSING(SSprocessing, src) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/add_acid_overlay) + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) + O.update_icon() + +/datum/component/acid/proc/on_attack_hand(datum/source, mob/user) + var/obj/item/I = parent + if(istype(I) && level > 20 && !ismob(I.loc))// so we can still remove the clothes on us that have acid. + var/mob/living/carbon/C = user + if(istype(C)) + if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) + to_chat(user, "The acid on [I] burns your hand!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + +/datum/component/acid/InheritComponent(datum/component/C, i_am_original, acidpwr, acid_volume) + if(!i_am_original) + return + var/acid_cap = acidpwr * 300 + if(level < acid_cap) + if(C) + var/datum/component/acid/other = C + level = min(level + other.level, acid_cap) + else + level = min(level + acidpwr * acid_volume, acid_cap) + +/datum/component/acid/Destroy() + STOP_PROCESSING(SSprocessing, src) + var/obj/O = parent + level = 0 + O.update_overlays() + return ..() + +/datum/component/acid/process() + var/obj/O = parent + if(!istype(O)) + qdel(src) + return PROCESS_KILL + if(!(O.resistance_flags & ACID_PROOF)) + if(prob(33)) + playsound(O.loc, 'sound/items/welder.ogg', 150, 1) + O.take_damage(min(1 + round(sqrt(level)*0.3), 300), BURN, "acid", 0) + + level = max(level - (5 + 3*round(sqrt(level))), 0) + if(level <= 0) + qdel(src) + return PROCESS_KILL + else + O.update_icon() + return TRUE + +/datum/component/acid/proc/add_acid_overlay(atom/source, list/overlay_list) + overlay_list += GLOB.acid_overlay diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm index 6496b392c3..40d950332c 100644 --- a/code/game/objects/effects/alien_acid.dm +++ b/code/game/objects/effects/alien_acid.dm @@ -9,6 +9,7 @@ resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF layer = ABOVE_NORMAL_TURF_LAYER var/turf/target + var/acid_level = 0 // Removed from obj, so it goes here now /obj/effect/acid/Initialize(mapload, acid_pwr, acid_amt) @@ -42,7 +43,7 @@ for(var/obj/O in target) if(prob(20) && !(resistance_flags & UNACIDABLE)) - if(O.acid_level < acid_level*0.3) + if(O.acid_level() < acid_level*0.3) var/acid_used = min(acid_level*0.05, 20) O.acid_act(10, acid_used) acid_level = max(0, acid_level - acid_used*10) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cbfd5ef5a0..cd486ccf6b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -352,15 +352,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb C.update_damage_overlays() return - if(acid_level > 20 && ismob(loc))// so we can still remove the clothes on us that have acid. - var/mob/living/carbon/C = user - if(istype(C)) - if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) - to_chat(user, "The acid on [src] burns your hand!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - if(!(interaction_flags_item & INTERACT_ITEM_ATTACK_HAND_PICKUP)) //See if we're supposed to auto pickup. return diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 02f2009667..cc2e6412eb 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -204,32 +204,23 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e //the obj's reaction when touched by acid /obj/acid_act(acidpwr, acid_volume) if(!(resistance_flags & UNACIDABLE) && acid_volume) - - if(!acid_level) - SSacid.processing[src] = src - update_icon() - var/acid_cap = acidpwr * 300 //so we cannot use huge amounts of weak acids to do as well as strong acids. - if(acid_level < acid_cap) - acid_level = min(acid_level + acidpwr * acid_volume, acid_cap) + AddComponent(/datum/component/acid, acidpwr, acid_volume) return 1 -//the proc called by the acid subsystem to process the acid that's on the obj -/obj/proc/acid_processing() - . = 1 - if(!(resistance_flags & ACID_PROOF)) - if(prob(33)) - playsound(loc, 'sound/items/welder.ogg', 150, 1) - take_damage(min(1 + round(sqrt(acid_level)*0.3), 300), BURN, "acid", 0) - - acid_level = max(acid_level - (5 + 3*round(sqrt(acid_level))), 0) - if(!acid_level) - return 0 - //called when the obj is destroyed by acid. /obj/proc/acid_melt() - SSacid.processing -= src + var/datum/component/acid/acid = GetComponent(/datum/component/acid) + if(acid) + acid.RemoveComponent() deconstruct(FALSE) +/obj/proc/acid_level() + var/datum/component/acid/acid = GetComponent(/datum/component/acid) + if(acid) + return acid.level + else + return 0 + //// FIRE /obj/fire_act(exposed_temperature, exposed_volume) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index a9a891464b..ca4428db57 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -22,8 +22,6 @@ var/resistance_flags = NONE // INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF - var/acid_level = 0 //how much acid is on that obj - var/persistence_replacement //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. var/current_skin //the item reskin var/list/unique_reskin //List of options to reskin. @@ -369,8 +367,6 @@ /obj/update_overlays() . = ..() - if(acid_level) - . += GLOB.acid_overlay if(resistance_flags & ON_FIRE) . += GLOB.fire_overlay diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 01c62a7901..9a2b4aab1a 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -354,10 +354,10 @@ . = SEND_SIGNAL(O, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK) . = O.clean_blood() O.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) - if(isitem(O)) - var/obj/item/I = O - I.acid_level = 0 - I.extinguish() + var/datum/component/acid/acid = O.GetComponent(/datum/component/acid) + if(acid) + acid.level = 0 + O.extinguish() /obj/machinery/shower/proc/wash_turf() if(isturf(loc)) @@ -601,7 +601,9 @@ busy = FALSE SEND_SIGNAL(O, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK) O.clean_blood() - O.acid_level = 0 + var/datum/component/acid/acid = O.GetComponent(/datum/component/acid) + if(acid) + acid.level = 0 create_reagents(5) reagents.add_reagent(dispensedreagent, 5) reagents.reaction(O, TOUCH) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e4d6f5253e..7aa6cbe736 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -961,7 +961,9 @@ /mob/living/carbon/ExtinguishMob() for(var/X in get_equipped_items()) var/obj/item/I = X - I.acid_level = 0 //washes off the acid on our clothes + var/datum/component/acid/acid = I.GetComponent(/datum/component/acid) + if(acid) + acid.level = 0 I.extinguish() //extinguishes our clothes ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 593d77f959..0c70f47c53 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -287,7 +287,9 @@ /datum/reagent/water/reaction_obj(obj/O, reac_volume) O.extinguish() - O.acid_level = 0 + var/datum/component/acid/acid = O.GetComponent(/datum/component/acid) + if(acid) + acid.level = 0 // cubes if(istype(O, /obj/item/reagent_containers/food/snacks/cube)) var/obj/item/reagent_containers/food/snacks/cube/cube = O diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index f3e14993ed..62e68e5b0e 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -622,7 +622,9 @@ var/obj/O = owner.get_active_held_item() if(O) O.extinguish() //All shamelessly copied from water's reaction_obj, since I didn't seem to be able to get it here for some reason. - O.acid_level = 0 + var/datum/component/acid/acid = O.GetComponent(/datum/component/acid) + if(acid) + acid.level = 0 // Monkey cube if(istype(O, /obj/item/reagent_containers/food/snacks/cube)) to_chat(owner, "[linked_extract] kept your hands wet! It makes [O] expand!") diff --git a/tgstation.dme b/tgstation.dme index ed85c32cc4..a581e97a59 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -306,7 +306,6 @@ #include "code\controllers\configuration\entries\respawns.dm" #include "code\controllers\configuration\entries\stamina_combat.dm" #include "code\controllers\subsystem\achievements.dm" -#include "code\controllers\subsystem\acid.dm" #include "code\controllers\subsystem\activity.dm" #include "code\controllers\subsystem\adjacent_air.dm" #include "code\controllers\subsystem\air.dm" @@ -459,6 +458,7 @@ #include "code\datums\brain_damage\special.dm" #include "code\datums\brain_damage\split_personality.dm" #include "code\datums\components\_component.dm" +#include "code\datums\components\acid.dm" #include "code\datums\components\activity.dm" #include "code\datums\components\anti_magic.dm" #include "code\datums\components\armor_plate.dm" From 2be56ab99228c78ca72ce62477bdbf1a1c91c82c Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 22:19:05 -0700 Subject: [PATCH 069/173] Removes causes_dirt_buildup_on_floor --- .../mob/living/carbon/human/human_defines.dm | 1 - .../mob/living/carbon/human/human_movement.dm | 18 +++++++++++++ code/modules/mob/living/living_defines.dm | 2 -- code/modules/mob/living/living_movement.dm | 25 ------------------- 4 files changed, 18 insertions(+), 28 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6f1fe57df3..ac456ead3f 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -15,7 +15,6 @@ block_parry_data = /datum/block_parry_data/unarmed/human default_block_parry_data = /datum/block_parry_data/unarmed/human - causes_dirt_buildup_on_floor = TRUE //Hair colour and style var/hair_color = "000" diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 1619d0f6de..6208b45b45 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -90,6 +90,24 @@ //End bloody footprints S.step_action() + if(movement_type & GROUNDED) + var/turf/open/T = loc + if(!istype(T) || !T.dirt_buildup_allowed) + return + var/area/A = T.loc + if(!A.dirt_buildup_allowed) + return + var/multiplier = CONFIG_GET(number/turf_dirty_multiplier) + strength *= multiplier + var/obj/effect/decal/cleanable/dirt/D = locate() in T + if(D) + D.dirty(strength) + else + T.dirtyness += strength + if(T.dirtyness >= (isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold)) + D = new /obj/effect/decal/cleanable/dirt(T) + D.dirty(T.dirt_spawn_threshold - T.dirtyness) + T.dirtyness = 0 // reset. /mob/living/carbon/human/Process_Spacemove(movement_dir = 0) //Temporary laziness thing. Will change to handles by species reee. if(dna.species.space_move(src)) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 3b53eec64f..a76fbe4c4e 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -67,8 +67,6 @@ //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = FALSE //FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas //and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt - /// Do we make floors dirty as we move? - var/causes_dirt_buildup_on_floor = FALSE var/list/roundstart_quirks = list() diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index bafa38ec5e..07b40b3ab1 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -102,31 +102,6 @@ if(lying && !buckled && prob(getBruteLoss()*200/maxHealth)) makeTrail(newloc, T, old_direction) - if(causes_dirt_buildup_on_floor && (movement_type & GROUND)) - dirt_buildup() - -/** - * Attempts to make the floor dirty. - */ -/mob/living/proc/dirt_buildup(strength = 1) - var/turf/open/T = loc - if(!istype(T) || !T.dirt_buildup_allowed) - return - var/area/A = T.loc - if(!A.dirt_buildup_allowed) - return - var/multiplier = CONFIG_GET(number/turf_dirty_multiplier) - strength *= multiplier - var/obj/effect/decal/cleanable/dirt/D = locate() in T - if(D) - D.dirty(strength) - else - T.dirtyness += strength - if(T.dirtyness >= (isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold)) - D = new /obj/effect/decal/cleanable/dirt(T) - D.dirty(T.dirt_spawn_threshold - T.dirtyness) - T.dirtyness = 0 // reset. - /mob/living/Move_Pulled(atom/A) . = ..() if(!. || !isliving(A)) From 21c77d25a2dc4adf80f7832801591fe94b00d8a2 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 3 Jul 2021 22:39:46 -0700 Subject: [PATCH 070/173] yeah yeah sure whatever --- .../mob/living/carbon/human/human_movement.dm | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 6208b45b45..4513769734 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -90,31 +90,31 @@ //End bloody footprints S.step_action() - if(movement_type & GROUNDED) - var/turf/open/T = loc - if(!istype(T) || !T.dirt_buildup_allowed) - return - var/area/A = T.loc - if(!A.dirt_buildup_allowed) - return - var/multiplier = CONFIG_GET(number/turf_dirty_multiplier) - strength *= multiplier - var/obj/effect/decal/cleanable/dirt/D = locate() in T - if(D) - D.dirty(strength) - else - T.dirtyness += strength - if(T.dirtyness >= (isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold)) - D = new /obj/effect/decal/cleanable/dirt(T) - D.dirty(T.dirt_spawn_threshold - T.dirtyness) - T.dirtyness = 0 // reset. + if(movement_type & GROUND) + dirt_buildup() /mob/living/carbon/human/Process_Spacemove(movement_dir = 0) //Temporary laziness thing. Will change to handles by species reee. if(dna.species.space_move(src)) return TRUE return ..() -/mob/living/carbon/human/dirt_buildup(strength) +/mob/living/carbon/human/proc/dirt_buildup(strength) if(!shoes || !(shoes.body_parts_covered & FEET)) return // barefoot advantage - return ..() + var/turf/open/T = loc + if(!istype(T) || !T.dirt_buildup_allowed) + return + var/area/A = T.loc + if(!A.dirt_buildup_allowed) + return + var/multiplier = CONFIG_GET(number/turf_dirty_multiplier) + strength *= multiplier + var/obj/effect/decal/cleanable/dirt/D = locate() in T + if(D) + D.dirty(strength) + else + T.dirtyness += strength + if(T.dirtyness >= (isnull(T.dirt_spawn_threshold)? CONFIG_GET(number/turf_dirt_threshold) : T.dirt_spawn_threshold)) + D = new /obj/effect/decal/cleanable/dirt(T) + D.dirty(T.dirt_spawn_threshold - T.dirtyness) + T.dirtyness = 0 // reset. From ea6b0a4ed990e376924bfff3909420621452879e Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 4 Jul 2021 10:50:49 -0700 Subject: [PATCH 071/173] Update do_after.dm --- code/__HELPERS/do_after.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__HELPERS/do_after.dm b/code/__HELPERS/do_after.dm index c0c07e3620..3ec1aa9b08 100644 --- a/code/__HELPERS/do_after.dm +++ b/code/__HELPERS/do_after.dm @@ -75,7 +75,7 @@ while(timeleft > 0) stoplag(1) var/timepassed = world.time - tick_time - timepassed = world.time + tick_time = world.time progbar?.update(TIMELEFT) if(QDELETED(user) || QDELETED(target) || (user.loc == null) || (target.loc == null)) . = FALSE From a419e6706c1e68557d8b5533832234ce6477af56 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 4 Jul 2021 10:51:39 -0700 Subject: [PATCH 072/173] Update handcuffs.dm --- code/game/objects/items/handcuffs.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 9ae8fb80db..aeeb88cf0f 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -1,6 +1,8 @@ /obj/item/restraints breakouttime = 600 var/demoralize_criminals = TRUE // checked on carbon/carbon.dm to decide wheter to apply the handcuffed negative moodlet or not. + /// allow movement at all during breakout + var/allow_breakout_movement = FALSE /obj/item/restraints/suicide_act(mob/living/carbon/user) user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") From 65f22d7e726510a7f9b1a5422d0f7b0aa34eed3a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 4 Jul 2021 10:52:47 -0700 Subject: [PATCH 073/173] Update handcuffs.dm --- code/game/objects/items/handcuffs.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index aeeb88cf0f..4bb8e5bdf8 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -245,6 +245,7 @@ throwforce = 0 w_class = WEIGHT_CLASS_NORMAL slowdown = 7 + allow_breakout_movement = TRUE breakouttime = 300 //Deciseconds = 30s = 0.5 minute /obj/item/restraints/legcuffs/proc/on_removed() @@ -314,7 +315,7 @@ trap_damage = 0 item_flags = DROPDEL flags_1 = NONE - breakouttime = 25 + breakouttime = 50 /obj/item/restraints/legcuffs/beartrap/energy/New() ..() @@ -330,7 +331,7 @@ . = ..() /obj/item/restraints/legcuffs/beartrap/energy/cyborg - breakouttime = 20 // Cyborgs shouldn't have a strong restraint + breakouttime = 40 // Cyborgs shouldn't have a strong restraint /obj/item/restraints/legcuffs/bola name = "bola" From 2fb5355066d572dabe3a9d5f729d674ced6289f7 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 4 Jul 2021 10:53:17 -0700 Subject: [PATCH 074/173] Update handcuffs.dm --- code/game/objects/items/handcuffs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 4bb8e5bdf8..60538b479b 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -382,7 +382,7 @@ icon_state = "ebola" hitsound = 'sound/weapons/taserhit.ogg' w_class = WEIGHT_CLASS_SMALL - breakouttime = 25 + breakouttime = 50 /obj/item/restraints/legcuffs/bola/energy/on_removed() do_sparks(1, TRUE, src) From 1620aa46da0ed673dd4f49dfa9010e208b9fbeaf Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 4 Jul 2021 10:55:02 -0700 Subject: [PATCH 075/173] Update carbon.dm --- code/modules/mob/living/carbon/carbon.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e4d6f5253e..8e4b8026e4 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -358,7 +358,7 @@ return I.item_flags |= BEING_REMOVED breakouttime = I.breakouttime - var/datum/cuffbreak_checker/cuffbreak_checker = new(get_turf(src)) + var/datum/cuffbreak_checker/cuffbreak_checker = new(get_turf(src), istype(I, /obj/item/restraints)? I : null) if(!cuff_break) visible_message("[src] attempts to remove [I]!") to_chat(src, "You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)") @@ -384,16 +384,22 @@ /datum/cuffbreak_checker var/turf/last + var/obj/item/restraints/cuffs -/datum/cuffbreak_checker/New(turf/initial_turf) +/datum/cuffbreak_checker/New(turf/initial_turf, obj/item/restraints/R) last = initial_turf + if(R) + cuffs = R /datum/cuffbreak_checker/proc/check_movement(atom/user, delay, atom/target, time_left, do_after_flags, required_mobility_flags, required_combat_flags, mob_redirect, stage, initially_held_item, tool, list/passed_in) if(get_turf(user) != last) last = get_turf(user) passed_in[1] = 0.5 + if(R && !R.allow_breakout_movement) + return DO_AFTER_STOP else passed_in[1] = 1 + return DO_AFTER_CONTINUE /mob/living/carbon/proc/uncuff() if (handcuffed) From 6da13fb42d83c2c1314699b334bd046e2b4060ee Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 4 Jul 2021 12:57:18 -0500 Subject: [PATCH 076/173] Automatic changelog generation for PR #14913 [ci skip] --- html/changelogs/AutoChangeLog-pr-14913.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14913.yml diff --git a/html/changelogs/AutoChangeLog-pr-14913.yml b/html/changelogs/AutoChangeLog-pr-14913.yml new file mode 100644 index 0000000000..aa0be49fd7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14913.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - server: "Auxmos pull now uses a tag instead of pulling straight from the main branch" From e5b5b3ab2852e78abd62a39577634fee025f21dd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 4 Jul 2021 12:57:32 -0500 Subject: [PATCH 077/173] Automatic changelog generation for PR #14914 [ci skip] --- html/changelogs/AutoChangeLog-pr-14914.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14914.yml diff --git a/html/changelogs/AutoChangeLog-pr-14914.yml b/html/changelogs/AutoChangeLog-pr-14914.yml new file mode 100644 index 0000000000..2c999aa626 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14914.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Watchers no longer search 9 tiles away for stuff then throw the result away if it's more than 1 tile away" From 54d31fae635b37c31097e1fb5dd38517a3f5c777 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 4 Jul 2021 12:57:39 -0500 Subject: [PATCH 078/173] Automatic changelog generation for PR #14915 [ci skip] --- html/changelogs/AutoChangeLog-pr-14915.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14915.yml diff --git a/html/changelogs/AutoChangeLog-pr-14915.yml b/html/changelogs/AutoChangeLog-pr-14915.yml new file mode 100644 index 0000000000..e6158e8d28 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14915.yml @@ -0,0 +1,4 @@ +author: "WanderingFox95" +delete-after: True +changes: + - bugfix: "Moved a sprite one pixel to the left." From f9d6887eb1cd5579e61cb8250d850a684d568d4d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 4 Jul 2021 12:59:45 -0500 Subject: [PATCH 079/173] Automatic changelog generation for PR #14833 [ci skip] --- html/changelogs/AutoChangeLog-pr-14833.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14833.yml diff --git a/html/changelogs/AutoChangeLog-pr-14833.yml b/html/changelogs/AutoChangeLog-pr-14833.yml new file mode 100644 index 0000000000..8bea7b0ddb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14833.yml @@ -0,0 +1,5 @@ +author: "zeroisthebiggay" +delete-after: True +changes: + - imageadd: "tg based tool resprites" + - bugfix: "wirecutters have proper overlays" From 4ed5c53f4b7254116f6ee587d6d3710442a4679c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 5 Jul 2021 00:21:39 +0000 Subject: [PATCH 080/173] Automatic changelog compile [ci skip] --- html/changelog.html | 27 +++++++++++++--------- html/changelogs/.all_changelog.yml | 10 ++++++++ html/changelogs/AutoChangeLog-pr-14833.yml | 5 ---- html/changelogs/AutoChangeLog-pr-14913.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14914.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14915.yml | 4 ---- 6 files changed, 26 insertions(+), 28 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14833.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14913.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14914.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14915.yml diff --git a/html/changelog.html b/html/changelog.html index 29d90d0b2d..998af50e93 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,22 @@ -->
    +

    05 July 2021

    +

    Putnam3145 updated:

    +
      +
    • Watchers no longer search 9 tiles away for stuff then throw the result away if it's more than 1 tile away
    • +
    • Auxmos pull now uses a tag instead of pulling straight from the main branch
    • +
    +

    WanderingFox95 updated:

    +
      +
    • Moved a sprite one pixel to the left.
    • +
    +

    zeroisthebiggay updated:

    +
      +
    • tg based tool resprites
    • +
    • wirecutters have proper overlays
    • +
    +

    04 July 2021

    cadyn updated:

      @@ -609,17 +625,6 @@
    • Nightmare Shadow Jaunt threshold up to 0.4
    • Vendor and Engraved message light down to 0.3
    - -

    03 May 2021

    -

    TripleShades updated:

    -
      -
    • Added two air alarms to Pubby Security, one in the evidence locker room and one in the main equipment back room
    • -
    • pAI Card back to outside Research in Meta Station
    • -
    • Pubby Disposals now shunts to space
    • -
    • Maintinence Areas being not applied to certain airlocks as well as stealing minor walls
    • -
    • Box Surgery Storage camera is now renamed to be on the network
    • -
    • Box Paramedic Station camera is now renamed to be on the network, and no longer steals the Morgue's cam tweak: Box Surgery Storage is now it's own proper room
    • -
    GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 4e3c204872..2ae584386b 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29621,3 +29621,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-07-04: cadyn: - server: Updated server scripts for proper linux support +2021-07-05: + Putnam3145: + - bugfix: Watchers no longer search 9 tiles away for stuff then throw the result + away if it's more than 1 tile away + - server: Auxmos pull now uses a tag instead of pulling straight from the main branch + WanderingFox95: + - bugfix: Moved a sprite one pixel to the left. + zeroisthebiggay: + - imageadd: tg based tool resprites + - bugfix: wirecutters have proper overlays diff --git a/html/changelogs/AutoChangeLog-pr-14833.yml b/html/changelogs/AutoChangeLog-pr-14833.yml deleted file mode 100644 index 8bea7b0ddb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14833.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "zeroisthebiggay" -delete-after: True -changes: - - imageadd: "tg based tool resprites" - - bugfix: "wirecutters have proper overlays" diff --git a/html/changelogs/AutoChangeLog-pr-14913.yml b/html/changelogs/AutoChangeLog-pr-14913.yml deleted file mode 100644 index aa0be49fd7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14913.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - server: "Auxmos pull now uses a tag instead of pulling straight from the main branch" diff --git a/html/changelogs/AutoChangeLog-pr-14914.yml b/html/changelogs/AutoChangeLog-pr-14914.yml deleted file mode 100644 index 2c999aa626..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14914.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Watchers no longer search 9 tiles away for stuff then throw the result away if it's more than 1 tile away" diff --git a/html/changelogs/AutoChangeLog-pr-14915.yml b/html/changelogs/AutoChangeLog-pr-14915.yml deleted file mode 100644 index e6158e8d28..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14915.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "WanderingFox95" -delete-after: True -changes: - - bugfix: "Moved a sprite one pixel to the left." From 190fcaffa90084d9ece8e0485157490a18669534 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 5 Jul 2021 00:57:35 +0000 Subject: [PATCH 081/173] Automatic changelog compile [ci skip] --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index db8a51cb27..056aa793eb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -589,17 +589,6 @@
  • Nightmare Shadow Jaunt threshold up to 0.4
  • Vendor and Engraved message light down to 0.3
- -

03 May 2021

-

TripleShades updated:

-
    -
  • Added two air alarms to Pubby Security, one in the evidence locker room and one in the main equipment back room
  • -
  • pAI Card back to outside Research in Meta Station
  • -
  • Pubby Disposals now shunts to space
  • -
  • Maintinence Areas being not applied to certain airlocks as well as stealing minor walls
  • -
  • Box Surgery Storage camera is now renamed to be on the network
  • -
  • Box Paramedic Station camera is now renamed to be on the network, and no longer steals the Morgue's cam tweak: Box Surgery Storage is now it's own proper room
  • -
GoonStation 13 Development Team From 18fb23bb1f2655b4e6ce3fee0bd9796af9bb42de Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 4 Jul 2021 18:19:31 -0700 Subject: [PATCH 082/173] Update carbon.dm --- code/modules/mob/living/carbon/carbon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 8e4b8026e4..6ad821b5e0 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -395,7 +395,7 @@ if(get_turf(user) != last) last = get_turf(user) passed_in[1] = 0.5 - if(R && !R.allow_breakout_movement) + if(cuffs && !cuffs.allow_breakout_movement) return DO_AFTER_STOP else passed_in[1] = 1 From aaea168612464de799a3b355e3bf6b0109d889ef Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Mon, 5 Jul 2021 12:14:03 +0800 Subject: [PATCH 083/173] sponsor button mmm mmone --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..3eee43dc71 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +patreon: citadelstation From 35a5bf63a2d356f10c25264a3dfec036cbed16fe Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:52:34 +0000 Subject: [PATCH 084/173] head sprite --- icons/mob/clothing/head.dmi | Bin 233232 -> 233481 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 806f378323ae7d0e9e1732e70912b26bd328e6bd..3a768c4f05612877f088e9c0c71d7c19a282a960 100644 GIT binary patch delta 16799 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 delta 16549 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 G5&sMGgk^>R From 443dadff8bd9f1140e5cbfed6024dfe8f63aec61 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:55:31 +0000 Subject: [PATCH 085/173] hat sprite --- icons/obj/clothing/hats.dmi | Bin 112982 -> 113198 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index e5bd686603a3a646bdef62ae16564e42c560f786..1d128c5f51bb266f7d7de1e453209fdf6fec5746 100644 GIT binary patch delta 15908 zcmb`uby!qg)Hi&FMmnTRTIoi*Bt*iZ8wo*LQs4}rfFO;8v?!=_gT#Pz2?7Gr-JJsr zGw<=fpLqXypYOfC@0;sz&52>}efC;=?X`aEx5kg~N>A|OIbqWkTt5hJam1;tD^;97 z=xlaTL+qnbSN(hamX;X9yB+SguK>g}V$sa2|i1YzfCnVQvtSkV5{Tx1nVNJYHhZ-KgEBrZ0* z^2l>#eH8{+7$0NxruMlXHlwyoVF04x*!~&#?3vYKjkdn!{R3Dk0EfmobeWIbrZlqPY~0b5RYo~BwgAY++lL@>kYvE5El z?rq5T4~ld`)r%t3ZGi=BTMHx@sOu;1a!{Y4@3Zn1HY;_;BHs?Mx#-IPtp=76TKRYy zI}#2K4q`FtVfE67N{QXeZ#TNYrD_{IKqg2IXx(+{CYyJS(hO`sT1YnAqIoR6-GMzZOpk{%TS_~N+uW&giR1|`z=z) zxql?tExswBBA;C|m%HUaF*w8uWCve9Pf1TFEczWaFz^6qP2|#MrvWFutpMR3e%%Qv z*k_EI+LG7d1BndmwdsrxpP;vNtX}pytTEyj&KPt&>Mr^E6~=a>BIfIrs`S*g(9~fe zt&jr{ujnZaMrwczUmjhUnz8Ud;&BPfb6$nWw)b z`zd$%Nz^D$ARwb=^qjE80U5@xJACW*PlA%%H@d^h>-!jswR^J85vl&amY#$<@HKFnn6_)C#TlH zjM-R*qAET186H@+ctfO4x(vxg44Sf?M{;SkL~3z7+OoZuHSutWgVtu^r(1=uo>s?e zaRbrTqaC3LhoIFse>^&U9-@I&-<<`e%~kh{RVJDIVu1FYW$)5Ud&I#dBopDa6vA@G zcc6%H4x@z|qns;aUz|djA7--L8e3aSOWDckPGVvr0JzpM8Wi0W5D@tC_3J}B?1Kx# zSH=PA+}yDYGcK|0>6Cw_DCE(c`W!$CI~C>!R@S- zi2MQ^kBjCP0l6oh^(aq;i~Gi~mNF|Yu}&~OkLo3~K(cbfG8(vGK37+Wh=yNlE@88_ z?ft8Lr+-+5Ae~T zy_Sql!B1IOgz5}owS*L(VD7J2*345}nH59br%!JJB8J=x$kWWx)01D1lH zbQ4;^cZ1$9DCFQ68d$`FODbj&Lf9*H#Z66RdN(C2*bu<*_#LZwE2)%G-Bhd?Zc?4I{kAm5-shvCm57h1 z%Rs@yx$TE9nH7)=*aZ{YZL5Z5`;&y*FJ(SmB9gy;{pz<{GclKd<|3x zSNCT&U8;y6o%!~`8Q%NZH1XG~N83jY3)ZfFL68ve1sKzeH8nDGJC)B^{nDwDgf$W^ zh2#=Z-_wW`>KE<$I^)jPhkVhr<}WFL*6q_Dj^aP8gkL(n8kCr@x;op9>SFa_o<#OO z=sUq;USf<=&T8i8UpewWS^>3y)=ydq(=5>Jy1EKFmlk&%{7`w2C3BM%M2T?gW%CE2 z&ALhq_$sTaevOU2-fZ;cqfz`XLnb9)Nt`iTx^aAF@{a+7DV3ZOJC!)-8)Qf0KMd){ zWJQ~7*THt#&57jV>1Bg)WPP{9zg8<-;88?zTp>Cez{iDJm?AYAqwEV3ZlmC&Y-%y8 z{hw6r7SyipFP{ZVe2@kh{Nzc6*WRe-(|%5E=)ANnqq5K=3RK_;RG^j1E?~)Nta~w8 z9sbbsKH?0nR>XL3kBcY`1Tf17 zPy+{}IcV`*9cO1gVmxdUQ&U(Z`zPx5QtbXgYOzKMbXnSS$8OK;3tX8>#QhuPW(o}( zpUD`;?5>h9qPFKT#G_<)MlqKRm}A-`kKe30?RklJqdN4cI`%P;n1R-AkQF2b9?kMa zIOK%1dPcgx^}$5@pf)@E|BTTu1G)VJLgZ=J@{ea5U%x2Btsf7-dt9K~9v+A0(wVnq zerK|M{wU*usI;RrYu@LSI_h8}Kd$oQM|QJ-&Cl?(wP!g&XY}{)-#<8LCnGaDEWINe z{%d)tbFZusVX?j3AkVs!L8N+&~7B)T*7(Kq!l{-Q&1SLf%7O^MePuWp$iq$R7Xrp6e&3EL=@NMc~twJ0TY$PZZHe3OLW%jZ{kPi)w|oFP2)Li{y{v#9;Jz zHV#Hl8V)YRS}fMy^soQ$nWlO7fI+|xq_?#qKwvO3Uh>+{ZVw|@4cDW)i3e?vfh@u~ zM(5k1M6z${5+c|^GgKh^qsNb}>!x9Cj6Ntw5G{A?4J}(}6@RR*7Jnvt@zYYP9`zwS z>d*Y>(gY(ede!qn$C1We>Fz!-+^_>|$Q*CEOLJa4y(2X}fy_aqy|XqBV*T@tZv-bK zCR66=9dEIWK{^SiWX>he%~ekVrHUQ5>MKjgNx9I`)&V;g+Y3eP2jb&*SB|D>FP~sN zgzRaCt3`Mg*HVP3vwWBb)etW5K;TaDTG3m};MG?&Z9?sRrv{6;9RX-?|)ZNh+N3z>ey!s7|~@3V;~<6~pFpFiWe z)|r08CW>g*7!p?afxZ5LPu4+V4n1MtR29tqGjsfwfQ#_nchGIJBBXVoY;+Ua7_p8} z?JS;|x;(`OeB;H&9B+qaedkLwQEx}1=oQ;@Krv3=XRX!UyDGbzo^mZ)!MD--tgj3b zkeT{CjWB|EOQnI!QhzC7Y$id-hsi`>8vQZnQP=akLcYj8!80(Uk%htWlZjO-*7dxA zpB42>a<*0ysa#kfIk-|UZqv~2I(P-Z@iNt&oNn#-$j)7NTKkDFYB~P9%C#cEpk@o9 zqvKRbEu=s2U zdPpt_)cxqAyg_(u!2J05ID9C}Z5wJF+J^}JUej4R0N;VB>l1YVqEQ7SkWr25Ucdurp8WBMyGf3eAlM zq{7*ABoA;AC|GYEGu-8m%2znZ`c9^hgRfAQ=Kn5QtbLn8o1E@gg}l1lpqbVH_18{D zcVabLkU>Y5ZbSr2054mkbKUe|A79zR4|wxPiV0@7%tqn%_@R1mH#HfeIII^_pm^&t9%W_v|pzIe}dF-4C=}^WvlT zr+nM@F@Meao;qDMizBYU3}o}e$XIglcNGr3guBy!ZQZ;=r26OGtVZ@QSYYr0DQ8up zq6k`h$Jf$+C|a`98^jhljINQgN*vm%vJ4gWy)+dG79UJ^S`jFjB)#3MqD=v4g+a(ujpWjTme{TtUiO>yhG{vTPsH3oj4eT_GN2@pr+exVgB^@>9 z)~?y#CgK|k!1MC|{rowvD3_knwhKy3qwJ9!dULc;#HNElTtcGlg=GG>Z{J3H$VPql z)n!1qItEh@D<<)xt8O__oPA7>Tr`7Gk?|RFOc$atD&a3JJ-pu7Yy*IV0S_QM^5}8G zS{Zzyrj@nj^fs_i(G6k)X~s{;w{Cy`G?cIO>=|jwCtrtNSFP~=zW#^K@>E|RvV}${ zMo+pswozuL;?2C8_WZ(yuObR*gaTmxdbE`E z72`X~qyApjAgSol&q!P&zCqubiPqi9_I2<3f2;)&4tM5BWYOQfw;`9g9cwGtf2|I( z5I&8}WeBtkuy8g#u@r-dVhq{d|I%4hHuuIMCrGl`dm&!|#~}o!`I)qd6APFFK`+wM z`T(M84+Z}3p1PA|in6j9o2QrYr!8i1Mn=ZZ{?6mYZBaM*0O0iW)Vh1!;Tqoo7DC#) z7|{V+IDC4(-1bxt3y5W%{Az@GwR(<4REi<_iN?!+jq=>oLu3lmUMrChTip@hyGcy1mjE#Hp`-(qR4NV^C)u>X)x?l%>xK<{Ja1X2QZ& zCX2KQZK$iQO#}s=V7bS#x)DE(xVX60S~VFAm~Lrie{r$uPDol%IzDArU`Y7SMc49S z>-zDV8S*=~5KMx~ZT03q1;v8y_X+V#83s0TAiOXb=k)K_mOq8?5OcTDL=Gw6SQMvn zFpzrC4ZZfLb(?1qMk)f&r<`i;$e^fLFNrtEtrfCiX1kY-@Hov#b%}G^(g2FGOiuXKG^G2LJJQ1h&;Cy_1 zo5%V9#G%ec+ zDxS=yjv;JcLmPjaVbh}ko_VTYO-qavK_6!^ADIzWs2SaPOpB(g?};}2?M8f3Qu_^| zjbN*aSxYybi>GwKyqdb4LKm8U5w+Kq@j#BqcTi^uIqLm; zPL56Y-w+!3{{x2he+QxcMawdE%<5h+5J_Ni%7XdS0?Y|Q!M^}sB>I*x&B!JJy;&gb z0553+DxWz6h$o=>XXu$E@qn+Y-V)=xDRxu>+sn&x8etlWP2E@ZUN5He6W;1TZ-qQW z=U?rXp5aY>rBV}OgYAWGr|8(WExjsV((kEV_Uy)cP;~1@-ij2p6F~(h;wZ|)a@~is z14o${eCA3!@_F|lp@9kj@}>5YQV=~`V}J0XM)+p(5Z!zPSZqM|nl515`eg`pNPnPm z_1NT)Li07@M|@4VDqHG&=_e`bJT)UiLbN8ik*CnKq>3?NN`D!5#kNli&0#iY8e3#Y zq*-t`JB)RJnGi6lKcpjVyIu46N$B+wk&+kauoUE~%%Q|s*yeZ(mO~u}0A{tD(y_uk zfflTR7UApD=#OD(AFZ&Th8F7HPPUl%Y2L`uGSqN=HvJhX)PiK+J$~{`-G*uU*IL5d za%N^`e9-sG%10Yp;P+4*=}2^+o3L4U`+KYGi&d-_G~dB*++Ea33)K<0H1`8*(zB+) zfRcoyg}bTmY`BvMA(Y`SXyxb#9~=*t=Xzg#i=9BlLy$JnnDix}c7Y40<&I?RvfOdT z2DC!?7Q4EOMNlpeBT!CdqI0`_qn)ZnaqULUFotFtw|6=?wyh-irfqcYC z(-<-ZBwWC(o}4xC0H!iS)-#aVEVS=ZTVK}GX_!yDA0+rkG##g?ZRTRx=>Gj1d-caM zoZOsN!@0^|%F6Ho=?@tmXk6n5WqMs_B@uXPAZH}2SUXS2GoJI(*suF0<*1`>#N9))2j$_*(}I{c7S;sRe;wavzWbRp+C0rYt`QU znYU8dfF$~$&J|-Q*#DJV%%bJuA-_@JE#S34n^|yJr__^1?yiFbHes&HR=KPG)zs)R z^8FlEvhp)h3cQYiiV@=ldfFI!|GV_{=&t^Q)znwRQ&Trm``>hQsBN4E5QM@tSQ}}D znvs%gKS9=RNmuDFCYG6!CCBc5^TFC2aPo@w11-M%;0^bq-$J;>Va)|hfd2REhnVOFoe~*&07ZIJUFkKAYx=Z^eH_5=MiDL;j015++xC=*$hLbrHm3IA;$iw9dpIws& zISS?<5YWj$j-usLLeiA^Z9}=0h5k9CFO-(oyYt%F! ziwbrS5)wMPx$U2NooT^SXAW_aqJ<)cOg+1)_#aU=t;F)Aaf!hs3<}woeJAYCzw;2T1=eiIQ|r=<9$nQ2Mda04gg&o|s90?0f0U7ZpCi;6RPA*u z!L;b6FiR3)kr&|fYXoiF4^Btq^sX8vaoUHxPhLo`3KxmUXO@~dnMWS=%SXn=MHm#_ zgAfD;Mn;imJ>+!6c!6hsNcoLrSV1rV#bqXJ%Xt;hEz)^q13^HHqG~()tO{Z{hN#PG zam2@uHcGC31XzIJmA{<^$xh^I)>_b!tFGE5!Ypv!-_R_s2yCJGngU_*<(_)BDWO8=1_9~mS>aBH z{F>UECSfG%da}V%p5D8xaU~DJ(ymWiuj0zLL;CysKPN_%rWD;PN2R2s+>bDgAYmNm zOkD`kEJxu9(5z6(#Uqd3V_{dqbTqo^WFfQ~S@nwtz3+zp-5hqZdEecxTla^3UAsNm z6L*EOoyp!7IdjC~k?hM2kibZk3ad}#$E{?PZnh)^P;S*`^B~>g^)cT0OdF{}jd9|9 z+&K6a5(K+|sc=3Wkv(-j8w4hS`;>wWHI=4WY`H&kPF-w>-v?{$eKn{z>MSi;f8VN(6i3Lc2qF?rJEw*zO>MVS9&D>Mk3}Pj z$MyT`Hvvqy)nl1%cUBwmf9p<-c9nMdVGS)F5kW-GTq8{C#dp@vU%&F|=yZ}~>~$BO zy8^%`lOy4sj}hQayF1x@3}eS9)8xpIEv=3*6V%9-Jui>uKZiXB&w@dEyB6V!vHKd$wHK`!sT*GryvO zLPA2qycWu~DBId{EO{T+JA2;Do*u2TJvD*$87-t<&QBFc-3h8FVU#+MDrN`I^>HhwaNw)Ooz`KNTg z`%II}I+N8dWKrC4t!+`N(ncNx8MV8c6EdEQt5SDSD|Pn~#C&guxaN#r<)Zqk5VacV zx#}eDj~`PpFqcSs^@X3E`G`wO{(yj5aQRTFY(ljxE{Qa*ehOZ&CYd(4mYq`{M^Kr! zQHnf$&KVT+IT=Q3QOX@nBVYsNW76bbNiMT9X%VjdX!Jj}=LVU+BF+4ohklD)ENgax zr=@)KY*9j~^P2bFt*vkU#eVL3axSwM7vT7E)sBzOYu05?g=@Pvv|o_D>s|t5st&>? zqFI|P_~)dF))m?8dHipy)l&|vzK=WmEBBtpTv8ynH=CZAAd5yeTBB9CMc&PaF5rMUBZ*Ev%GHPPB`cN zz5%b#A=8GZ3Yc~QBK?il?I7OD>Z=$$^+CsOxdcAYsJoFYUCML#jQ%SijyKw?b&bvz* zP>T8emciM|M@J#9?r|8GuUwmMmJBH%?Y$*EhnXk4l|#xyW#$2X$BQA+DgTp!rIz;C zJP40$rUna8xqr}BC>ik=xccM8bT8?i^*khPNtfv`x4Psrr?9aN#38ZU7t_z+O2h)@ zF}C0j6iua0bfxhEggrtjDo1aRFIAFxXAd~&Y=@m{03fU_k^^6R(Ft4J!=$?Uiyt=& z98&b~SzTRCQv_R(497>DivmJI8W!0`0iw{7{@uq`KcjH5@aXZERXv6JF=`@^ zegSgu*j9YCEjZ-#we++#Af>%=qLaRmuQPVAU?sa}&Xq z`4?AMP27e8D_k_PzD&gRWEOLl42&O!Cx>4Tku{S#$B-1>FZyJ6E?<9xh=yO?`;`8f z$%s3&vSCZ6(svmf&!4j6GhI!3aV7x(O54-1+CU!vt^j zl8w)`JkqMHnhZSBuQ>J5rXsaXds1V+moM8BIBt^Tz_hfqhC81B8XgNDNs^EbSfOs2 z_M&d|VNq*tra$#z{E(56kdlIzT0|sE7M7XG^u)m6oA3zGCZc#Oeq;4S%h7Y%L3B|80h#b)A_BwNIcjxl#F~q=dw&-|Kdp z3Sq8TO`QJX5<9m#sn1-}$tX|ok$^vPe|KUDQD+%F8lgbyPn4>`_=uBmkEpTb&l~9U z2jL*FuxBq8%X&AwURogc_gkqLn&BRw+0ZUUAyRVj;mu`t)P~5+Z1K*+^1m+q#nCEk zq~FdD`u>)pY!)=ligWSS^~mmsY6WkJ&>bjuUsTECBP5kkc2#Ntg8?XAsiGQ&T&~Q` z1#oe3dHMO(tgZ9J5fDn%Sh%59rWbl;KTTWz{K6(v(JO_s>o@U83h-zakGxP63vU z(fcQFvSdlw!IcB}1Fx9hU;VByKe!~et%H3eF6)q($sn6` zt7}p)x=qS#IlcYY$g_F%Tts#3-p=pmnlNrOJY>eu&E976A$zY@i`rIOG1tep{7q}q z<+}|keyVNxCWLYsIdoJFZ1p-J+$ABlIP}+WDtg$dzH}L`M(h-++D{Kte=NJ;iv98} zU<(L^dDX#KXia`P9*l-dXFBVtB~83dm~v7Ip!TkIy?T&s{gE9+&PRj;QJGD<@8){%Z3zXbPrnL};<4BukB`(-IIB;;?Ls>|Q zi{nJPg(@=7n+ebm|9Ly#f;LYT+S1b=dK}n3 z#3enNh_{?aImUD+ghD=A2wuLDnv|9nSzj;Bzj05etbLInEqmQ(`Egch^muce3;3#f zzhVg0Mbgg^6nEXKN>t-L|DwIfbSLo(x?}0B>}@)^?zk*9ClgT|(8`6iiP7?3);>Lu}VuGAwwjA!@$;8 zF{PR}m@S|2K6?ip!7@ZsSXh`}2-XJK9j^_(z@V??B_6K|%L#c5vygX69jwO`+FsVE z|Ly~_>o+NVcB%!e<|;Moi`|?`4;kn`P5w~sq_%uM36v(0)rdK08tA_1KRvX;a|6awSYsxoMB1n9k6*}Dw z1V618o^0~35_b5>l#-fC%huK=+5|ZzziUH|JU|$mfWS@3jOJ04rpI9?t?l-B2}Lxm z+@71>F+L^6;?W!J@wed5)fe7NkY@|)UtV7R%&>@%t0q4$*)zYbnNx~mC>-n>7o*2C z`Q;mqd++;b_b>iIc0H4vK6CXmaDSJ5+~B;U2%mTRMn2!@&rw10<8H6Ga|e4z7!LA& z>ZXjp=0X4q?$UH@eU66JHE-#8lX^KjWxThj`v<7Ig`%UQwaS*XjU6 zGpApr7sXvf0Ec>klLQ0FqeqW&Lz#%jiG)B2ZxRpoK@RoQ zB=2wZQMVl5KxgW0VNz+<{W{sh_qM&+x8+%6ZTvgJ)gMzS5KnRKH@|Csb#62ANeh5C zzq&} z>hNNlafRJ{?=4IxTCtqBZdLZ8wQnC3qf;URcz`lW!?0yaxnPtZ6jQN!0(V$uBJ-kqy{LP6ii_eT-X#&@>Q_|5%S|K^A^Vt(#6_bigo{qXQ` zGT0ep7QE2#DXT=Z8VBB9(F3I*c+DT2p*h1>eD;Ep(W_p;DSr79&k`#PifbIrtsDIUS~_t6#!6iKZsw0!B5GCunA1zxIh3vNJerMHk<6K zwkIELE!vrvYsJg3BjM;sUKX03C`xeqD@~@f#|_d5d^^xMg2t4Hg)fNnrV=9nN>xko z`bgB@^;&y5#j2(f{B|gK|JK9gj5;9e_N%n zl`rs@Wp)&GX-c&1Uu(?t{GRSiLi>&TZcki!TjoI-{{BhL3sT;cbnc{xG zP=xkDBn8L!flDk-gp>9Cn+Wh6y```-T}KAZ0sw3tK8DBz0KC1l^}LLOs5mT*Q1bfO z+E!HZGwc*WW8$Kk8~*-F6#Yj>H=fzsFYmh*YpB}twft!jrBxE^7y!!{;d)vy?nuX5 zhyfAWS^eVxBEs@_#>x&lJQlwjzGM>#Ip}{w7A-f1-2}+Jp;bTnhYqsTs)8{_SZI9UM+v4z^V8gSj}{04J8_<@Sd@Dw7iU z$fF97)N`^N%deT(x44I%RAjkdC}am#hIyKc3Sq-z;A~ayaSjQyqun64_!*}YNC;uo zu+Vc>24vX{{KHS)%pD^H!5&1gB|=v-KY8-17K_Lw?R3k~jZlRcEDE9((hAKbM*c>n zhyzc}zyD0|ba-wd?3|U@hI@kOp=;I#IcSyLw!|Utm)H7*42Ob9AJ0hrK$E#(ts~T(5CO;8#tpqj#Q0112oniy(-gjbU!NoyRLrzsbnhb~p9LYj2 zA0S>?S!pHCU@e*snepM78Db!7?Wv*Ra!&$BRGF&VJu`tr!8>=ho}v;HDWmib2~{4} zqYP3dZt>0Y_p;^~n1(j?we%JKHpBPd)NtRik0`QK#L}?8%c3sJr--lyMi?jKOe-#!^s?^AI%|t4AKoEd{-IPoGr&_hLfY0m0T^K|JyA z-BMCCp2@#($>J23=b%^0|K`zvDsbS;FO?KdX&(uue}`ch9>ve(7;w=!O8PX~v0>V93#h)8Dyf(%Fmun4X>R zuBeBmLX#~`6{?*pOX$n>F;$CZV3PD5(Ni4T-j#J3hdzeLy(@jPZ8ytvF00Zpo z>;U+78N#B*vY96O&F`_X;WDR$Q1WA4wLpP?Db{pmqF~%!5mA}}m4$(DS6WZ_igyoB z>imL_Q%O6WEju>+Z^yV*M4wn;>PalW?R2DPX2uJVK{N|biwr96dXbYD2m=6_=U+0x z8US>?qsIm`b#&g$x^^?VHMNZ;Tj?q*hde`)MqmS0qUr9?MsGyEf(0~~^GB!QtY>>w zfG6}%cIFv~_GSO7pjr@PmFG?OL9qR1a%F z3<2jwl(A^x1N=$MSx+8^3eXUVr9Y^rFlb5=X9D7rlX2Q|yN8^~G{m*##@Nfp0$LRa zq@T94pW?=^_Oeh|N974W3LC9-R1rjo;IO6HZi z+A`t~WqtZp*(ZJc&M}Uu97PKG(C)>UF#_VIGbutgSvg5(XRq%8+y~w1vTxzGEOd+b2iVajHUx2{4B20R0&NmasH*$=auaCrA7Nd^ohp{G6*L)WE z%WM^_;uF({DZB37ikz^L96n!46T=*g9_2hPfGXTw{}zmPV4M%WLcEx&cE;b?PK{F| z@AdGD;g$#0bu?28{N-H_0&56p`fnSrDfAXFY*X&V#aUPq#u6P!Oqhig#>W0|)VA8X z){J31kCln4n-7N68-trnvyf@s!2dfLt1VaKVedKbZ5difGXde%1?6PwETZwPzcj=< ztK`Q=xM$Dlseb;tu>&Wo_p0D+Tb5`I7NSCWf}fZ1I&*?z4JIo=9_$;i9lW3EcdQVp zgW0Jm<8{fUDy<^4wbc-CtBBVB7KxMo;n0QTrJ)ad>F7g8uHeiDTU7urHk>{ zOy>+G;%V)7f{6kE{ORuq9Hr#>eT3q>)qd88c0sW%5(zOTC#r?(drmDQ4|+xM$67sg zQ>D~DQ7=X1td#3VTtPFhfYMuqUxUB$Xqx+gxHR#{TL(Uk&4zl#FKLX*ekluYa4mXI zG5<|oSPi#7r`?7d7ikaNsH^6^DGAr>SL@B%;|r0`C$Ma4fEm-bo=j1G5kR1k9BZpY z-Gx{8g(4AbXSZgy7li z*jJ>WU)#^DZ}y>s_F~KQmI~C5eS9P#!X*UY(3G2z(El75NM0dGv=&Rl$ZTo;qi2^rb0cd;Wxaou6BpHLYU z5wXPK16Vl5B+!&R;00-b1I=BN86U=j5p5f;Pk z&uRHsz>k<2KnjJr-j|Rd4ndhM}bkS{fDr_#-FQF zA`hu^I=~LKu|F@;#I3Q;!jTWZh+maCbv_*xI@gPQ4!@2m1OUaI`8W-hhlas9CJkiH zr48@WtC^2=!64Wxr&Wbw^H26GN-OQ|xN%yHgvcJUYi3Le`KC8Xd7B);eqg11E)t^| zGf7yF3O=9p^;=Kc6;8tsxoEmkcBlNy$}74WRS>qTPi-ii`vVWqJR5@v=la!=7{t)V zaTm$*Yu>Y4e%-U6#PMN- zA1=!vy0G!dqWYiSK`f-t<@=`Q53X)h%RMA}cZu*%Bra+z(8+kcw6r8BU^$qj*jb3I z0GVmuaq4zDuEl$a6j-YsgY!Y+EkY%{mN}%0ei1Ry ziZh#GRCA`YdA(>yalfsqrS9Dn+%Wd1MoBr0{)IxyyGb^II5kOWzmqT`d)nMT4~u+^ zfYy|2gRf^2ek{LyFU4=X=Dvm79mlE>3*u64^$`g53*H{;^EqU|X7 zZN*btkI7e!;%@KG?lJXUt-@njcZm;l&{q>G{8!3n^^HD@Bkxf^6fv!Bdm!5h?M1Ka zCPM5@6T|yKdu*$usiI1DaxSHk^#UYy&XVuoaGq*~<1hA|nTD!S8Hi&3{`z_!1iLG2 zyQyOuh6GZm_QW`?Bf5UO#Ck_eyrEaPHU)&0Q$KA40B{jf;ft8n7B9)xMHrk!Sp6WN zRy|2UDH!GQVR__m(uiXx7Vk-lfj<62x?uL1 z_u6|~)jO8k*^hT|>Zfr-bkxp2leIPB-E@NEhIn(e!qaeLJIWo89udS&@w8FkP?!hw z?cK?`UPZ}q7*5SKnNFVu*VOG^w!3i?@LK?Ar0T@<#QXztDEB^B_!E@$JG-0y&eDaS zF3A}Gu?f4K?T{!WAe>YyC2H%tM+0ReNBtE>{4aVA%w|yLE}Ag(ZuLXyph~Qlozkbs zzuUH~A>#LQ^f4dpSDDN9I2Aa|V`siJGC?E+3OLw1zp;B{G)~_LeDdd1(nmSA^~Ux3 zt!s_GvVdRt&zZ* z6JgQE&V@NAO2Glh(pmxfMu>4@wbdoF8O~fQUw1GrH2f-p=>`XqoSgW+@{_q zCl3$b_&dU1Bv`i1Q-zc`6!-o)m_z z?(yHf+c2@4l$7);OWWu(#T|EjRO{RJ-#WQ$Z7t-XqY6MNY#o<8YUg1qodi4#+J zl1>4f*($%C;urJ6c!{Yj^HMW%DVn2}6e`Yf`FMSq wqSU}H$m#qN+2vLu5O#~h z@`LO2H691y-;RFLTzXTQRrYpJQjx%pr>0CexZ6zYT{0;3~w zpwg4-w`bdN5c~b0)B6p~a%=_Zmu6;zo20t0YWwPy(v>l0rex|$|6*Kzz)F{h+zN=4 zDo_>+2+mm=`A2kW;t-1^BGFQplha605sG|9P|zn*Q@?syBf}AacI=L$F)5K;i2m;X zs{z)(-gFw&T0OBH69s_S8%a1xz+bA_uUtK>nJkp&Sn@(CR54ZizmF^N{d=yUhfo5gdE*6$)?h=-9P zX#NcuFnq<@e2)13-GorFjL(`X)0u@AZh>20%zJ1&8YPaqtNH%xfUh`sWG7nIJ z3LC1Wrm-N}86<Yw@A+VOZ7NDi70#M%Blvq@069m|F%lOgFs83jg1H_AQB zPeEb9=Q2aGB6KebbzzeeF4MUA>qQj|f0Ztepjj|v0c*zmt*YD9>wZWX{w%gfG|J&9 z*bmVCcGl0QSDaG2I@OR3=6{Ir@NVr|+*Wl6I0aJ&_xTa#@747Gfd(i@pxT08Nt2Q? zOezNlj`x>S8S!#QwLtxZ_#8+)lD~qlA?+DWrp#d-{1ky#2vD!P0hp7LT9vOYEsU-$vexqy0Q?xz~ zq}E7H11||qavRJi9{d$Gq%X(3b{uhOTetPw&CvPnYMTzr^_Amax7U?)F^jBH*ov{9~MC=TXADglM&Ng&V pX#MjWsF%pJ(Enbo|Mxf1il=s#l1~FZVgTr)bx&8VRK+Uve*sm|FO2{I delta 15691 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

6IEL43O(pq!dXdEUeWRaMl+Q7Hk= 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 Av;Y7A From 2d8ba411a4102be950e43f973977d6fe04f232d8 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:57:14 +0000 Subject: [PATCH 086/173] human leather hat --- code/modules/clothing/head/misc.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 124ece8fdc..146832693b 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -482,3 +482,9 @@ icon_state = "kabuto" item_state = "kabuto" flags_inv = HIDEHAIR|HIDEEARS + +/obj/item/clothing/head/human_leather + name = "human skin hat" + desc = "This will scare them. All will know my power." + icon_state = "human_leather" + inhand_icon_state = "human_leather" From 42fed8a8fe9c27d972c5e1ce751fb0408b9068f3 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:58:52 +0000 Subject: [PATCH 087/173] craftable human hats --- code/game/objects/items/stacks/sheets/leather.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index f655e831d8..eeb673a0c7 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -13,6 +13,7 @@ GLOBAL_LIST_INIT(human_recipes, list( \ new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5), \ + new/datum/stack_recipe("human skin hat", /obj/item/clothing/head/human_leather, 1), \ )) /obj/item/stack/sheet/animalhide/human/get_main_recipes() From bff3c840c037b5c51d0dcfa49dc216034ce712fb Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 05:04:18 +0000 Subject: [PATCH 088/173] human skin hats --- code/modules/clothing/head/misc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 146832693b..fd181779f1 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -487,4 +487,4 @@ name = "human skin hat" desc = "This will scare them. All will know my power." icon_state = "human_leather" - inhand_icon_state = "human_leather" + item_state = "human_leather" From 7bae5960280c20ee188b172d2204ca597e81953a Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 11:03:52 +0000 Subject: [PATCH 089/173] I made a hat that screams! --- icons/obj/clothing/hats.dmi | Bin 113198 -> 113229 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 1d128c5f51bb266f7d7de1e453209fdf6fec5746..cba7526651ccd50adc1adc248004555851f6da90 100644 GIT binary patch delta 15737 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 delta 15687 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

!iAUN_Yz{SH+gKUM@hg4& zE}xU&-Ve}avOK7zzjSmH+5s_+kZp{hd%8Afksi-@ks<5*!CCM5Vs+&E(Fhv(wk#1g z?-wmqUAs!Vo9;5rTY=oDeWo{haTn>joDDF%SaXH`s}f%cK}>pn$U8|#pc{PA=Mgva zy8_-9z5HijS_31keV&m;GRDn3pO3}u*QCrXL=xFBe^PLzPSmQt&3WJ&fP*;cstyi! zcf6$MZaOS|L>D#e|6S%9VF68M0!PQkZhd?~_X94q zkB`F#GhDWz&Y=yLA3W=G8R8ZS$S=JaJn8~;0e~6MP*Hq#@PeEW|JzrSM*TR{#5xN7 zg4_YT%VCxnF5l#Hf0l3#z1)F%ggHelM&5#3kmZqp29O59ubD%RqUeA)|YCoT5SG?^P1J7 zy%P=kKTP$OJ}ezMBA>BvvsNf?)nCY+y}aNAF8%rIOrwT6eUZ6x2N^#|hA4 zM2fU+lWCGtA1jeomFYE6=^_8x$;b|jCNmP~$j}Z8WAx)IEou41&u=9__Reh3L;7VfUxp@(2s z>hRW`Yeced&Yh}@Zdx-mE+FBkOi&m`WeeKBmGnVUk(}NlG|QrM4wqJ7)l`btIDh9@JIMC-SpTX)YE`U=$=g`mECh zD6~@OYjZb`cUIc~Ag0F&NRK>u8n;#oU#MY~ zlk&XndYm;v`+EBxJIYdgd(0dh2FgcHy4tsrrzhjgyqR|Y%8sz^im~{m$0@^@)3qb8 zJ{iPBO4Su>p|1OaEgTAMdFxOTlGk(}$dCGZm;xjsN55QP8}JNxS5LI;R4~K%LB-(>vlJ|cCaAgp2e_s*uvrS^X1m(Iv7AS)8sb;^qbXl41y9g(JvHE z?pvh$UN<5Q^5GPC?7^Imr)VR6BH9_Rs_S%yKb8n&pbrNUHF(*vFp>HvnK+6xO!D=M z*6p_rq7_Cy3vk>(p^3Vj!_9-})ACBx@p^TP{Pmx~b^~D;-YKg3W96U19 zP>~qc!1))nZ`Q8|4j4nP)!td%ln&mYUFyHq8P;F;kKy`KrnG4?_!RHYqfi)t`k#3U zT=9GIgtVkwt;mP2WJ&YdH1p~tVd7WmRyA(Z90qCdM9 z6U(d1RaboC{F3o0n|yuze;S?3hb`;J?`BBv-9^yzE4J2|{^A!2c-SkzIi>I4z>4rd zqa9O!+?f9oz(LG$qX_JhzB9^CWuYPUpdNe+y4ASMGYVeF123l>s_#i5DVVMZH%Kkz z#sx@y$OxlptpT;`2*=^*EDpT>l!Or9k5*ptuom=J{~QA5tH1I1-wB@8aBli&o}HDf z1ciTJN97;5Bj*j+I61>kAHaEdcs7r90m!Z8ZTa%$3l|^XyS~+1)HeX!>ZtD$ghJ+w zW*7MkIc}>g0VeblZMM=2aVSuh?vOv3O&&v7zlApbR{h2&ew_0Z!;MRHWC5RN(VrO* z7RVXxd33Y7v-gQ6{QX93LPFaufsH_m@>z2i&dcZ2fn4g^Yyy|+f3dQ+6|q2;&1=q9 zHU!jy4q0W4M}I%DK*jdk83Oh?|1=ayF{%H*qGSJSa13O|W6A#ugr#el)V`u65JP8` z2J)!*nf{B`g`@5YQjTom(U|yC^>Y!|BXb$jfLJ_=f1VHQm)>)$aFvWt5V}5;A zMkz>1wyFK5&g0c|Zrpn<=%FqSQMuQxi# ze73-R9$cW!ooF`k%d~;Dd9eQGZ2HTEK=TF5?(wr1s#f&V!)tMK%jxOqu>n6SDxPd? zfj@$=B*Rg?E`lbZZ67T%FIO>MQT_nGb9CNLSf~oarhMpMotiQ2R~(nHa6kEj6-NR- zgcke-o9yl31LL8x>>sP{vfwGX@l%2EhQzM{l}l_m6-PK-r}>T}CZG|_v)I{HB!qN& z9ENl#6`tGe9qmvqjA=7yg3&fnx_r>WvTh;5HEyMLEi0xmOUAupMm6W;XGGFMaHpbG zNB%|>6OM^XY=OKu1mJJ>>N#1a=e*7Q-V*iDg^aF-k@S54P=c(K) zB_Rx#2%Orn+|ifd#V0jy$o)2f&TLOFQ5o{63o$tnTCR@QjTQEe3qgz4 zVsaU}I~*JC#v!sq?s+kB!S>>1$EPaL_)*=F0s%+$mfP13SO56{;09|Oh+A92h_HJ**TYZkY@py#w6|<%*$x&bOe-)))}qO z-}j9}#0+e{e9UX$e;0Vm*J=_N(joDzfur*vj#-esqDAJqZ#6lxlypCfiKOg|m<*@A zzkI}Sfrcu|*7rV59jdeMU^V&8(A3neqK;?9y^ zjm*=<^wfZ;iTnl2O2!Nfg7$zzXh<1LYlyQdO-Kb&EpP4t{fT#5%y>^WrWyzU-LO>_|S@P!3 zL44w*`E7lfm4&`JgX5H!*_y6pNDNZsxj~)l-AHVFZFO}x6iQS#9SiffQf8Yco>+9$m&_uPhhhR`k1(oS{W)7mdhY9b25K%)F&Gr6BDLa_y7V3XzA#LUUZXE z6XN)v{UPQxlwtz?knARc)@;{)T|yn#RuGg!C#;rH{O-5=DIeY^4A?``}>! z{MWuVYD7EXs~KwnN6y+RR|pgTd0%~#m_o3b@>>!FqL)Q7+CF?()_A6$Xs&)lhcrOR zTaIH8ke&}7BIxRWjHhH`S!-j25)0jx6QQ{u@<=^g2NRH-o)zq{%dM`tV-!N9sv{jJ z;qJN16jS^tB<1F`-!QPR+3cspbVLml=LvnIE;vHoGp1FNWBb+!$-M7 zE)#ok{1F4Q0;Z+bSt|{}%omlzoTz;l)bFN{lg)>&HeK33ZEM?XNuIgNmF`UTG|QMG z7LTM~Z{QgSQ(*K8{k)rq)Xo$q1IjE~tsbSCy*2W} zsR?Xv=Q2Z35x7szUte8eoWY#^E9=zBituBg#@;u*I{j`xHT|PLx2zp5aER?4laaQn zD$Xw&33@c@T;EkH1413_ot)nFyihVSqJ;!vS@|b>V*BuNeLmY_(iJaQDU79Iq0KHd zdo>tbY_pR>Gk*ZFD(wc7u8{5TDOfY3rW<`l2u>xR_+%B@cPfKX^2=ODb<{DrUuYNFn`Sy)VORIw@ZLh1~+!+A!jE)3%K8M{g zO#X9hTVAdn`;bYMU!yCX3f?JS+fp8QkAA!0^Wh+0$}t8gc#U`jvr@NKimw6-#>5j$UgZX~_?8S0P&-3t!j@FST;B2j+?`lHX z^3)CkhX35cyY8xRL|I|s;6iT9__97p3HWnWz9G*T+O_xhWS>)e@6%5*XiZi*kwkFB zw6sPjOB%T0rPb_iPDr^gu1efTuGBt65c0eqWS=v5la1`HMAWFIW~&mpK7C3-%TO%o z(HnYp<|QgF{u2URmk$+6CzMNL5{P5!rr`N&;wb}bnOSu)cojJtB^ReJ*#ZK-fQc|- zvl5O-N0M%r6bi^ z1lvCd$ukfxtBYVATQJ*j#ai5U=~2GRMiT1wcCu4&@@%eG z>#1W7lM{C-Xx$7$mm{z~-|uN1Exfek zVrrj;uzSn2YG+6h1CpLwl5^;JlDk>NoD?Q*KX9Umw95XZVW^}$H4VTanW@GAlpY?m z7Kn#IuoTxH5BdiQ+z%}0A!&;{O^3MDCZ0KjjBOwe30=M#e*ss*7SK;I`F|oQE3_gj z43nqRU|b*vBOKD><&(|P6!%@mO}9LQDtj_a_>Uh_FU|b?q~P7^WhSrrC^cIG*w`ko zO=L$uwfFKBbMr4y;^VI!5dfR{EsKv??zX;rw{)PRrNuD)b>&65?mhC<1>F&zED|n( z*486}aKpJ{ChC~uz1|jIZ=2Wg=InnRN3VcN0$Jd|^`WxeWzz-DVW+ajNUfSOsRfuAt6IDhvt*UiXXEv}9F|T-Qnz730 zYUpUHLCSaQ)~%trIY!szyz{*$_3g&illxl|H@s0mqz@}^RKQk8aed&R@f<} zz3B<-NX+KUY3V)# zui11_#zHlXdlF;6m#^C5SnrTx!89~9hT2~a4~>P6B#24+fh)J0r#)^rcrmIpHPM`U z(S1rwi%UwvNiHOiCJ9MTr+=oW_xbZ@CA{Y6dU`CJoN9+D9Jz7Wkxr(j8Ej3aLT*bc zw!*Y+f#@vXHJb5^6C>WF*sw3+E_3~vzH6xm^5{Eyq4N`-W4V1R`q2}MK{a}md*_~n zJVlmWh}97&HOyP%8C}DO-hZFQZ&_<%blb~ck<_4UQd~^z)aPxRRkz-4izaJ%WbjKkuN^pZEj7!k(>2G}Hai zI!V6l-|r=&D2KYeW`jHB1&B#Shc=g8ksCrYvqd|P!Lq-;`Q_0nY^2Y|2m1V;q-YW_ z&4hLN-ucMph++k23Evecb6r%*;lU@CQgl{m4g{d|p^|dQ#d1YBVriKp zih!`BhJp>1Qk~#y+i9x0mzP%Q@*YWSt?s|F?i0NH_U+=J_!MB=7=3v1E<>7_1zb6R zgO5C-et+}1akEyYn7bZ4uG`}Det1k@!$Bx-cRNV{f!nFf4v@wkVl%%NAmu{b#LY$8 z7-kmF?i{S_VwfqLWA-jUitY;vw@qMNC^dE*c{#+Tq~L|+ViT(oOifK?58Dq-(S~hp z89}~~VCTYN)$$m(0G1+rdKV{q_e2Inn8X$boaNqg0VhJTkdzTnVC9?~*7x~AeudU;#l#zTBr}3kYi@j;Z1`2wnYI zbX#ZUHU680Y7o~yY@6OmU4q?<+)7LsTI26to$t*m+1RiH+2!TiF13wv2HYSqgZcFK zUu(_m(R~@wzRR84$39`$pnu4Krk>@d_agbIQiI%9SuxecHUCXz)#<%0pI6iTT>$Ac za%ivY-{NtCze_}DcId0-Q24k*b?GWph0q~fxsL{>`c!(s8T0jfz#0$;@u-C{QW^cS zKNt;_On1~#Ntk#aH|3xZ1d=gJI!=^y9If_2?(h_FxjO2=B2TtAq8WIvDSv+cjb?iv zlU}JAUx#_UyNybo$c9QCBa~ggNNL6o#ga76h+nX^vtwm{fHV^q6~zj7309=XS2}cq zlQ2<|oSK!}GeS7wmrL;m2FMkzGU1~n{PTXk8D*L*u%)9p_|zY48)TOpjmKHeAs?f^ z7epo-DF829Nlr*f39qY@lcMwnu9yrJ2P0uD#Sos7M!}MA-|$s)$;8u$(3e-SUG`%k zLZMfFRLz%H;Rl5vk9!sR*zyY%kYr{*){L_8K&(=chDi~KVbL=8mQN|?3}niteazfJ zg)t6N78DfZ7SsgT9Ip+$LZfbE#h$JT$_Tg(F_Lyj9IQtbSYK7E{_X`b>o&=~cB=R+ z=E_GiroY|+SGwbhYHIX81@;Tbll0UO$rwXwM(8{38mrgmqV>Cmf7-CZ?&o*~6%hOW z*zM0Ck6|6FGFMy&5iWl#P`0XtYs)ID8%)N9FrIr2geRkFvjl+;m()iyAIoZ}hvtSt zM_jgbV^aWSVjzQJh(-lJx%@L^+n?77PB!{h3fldmPfAXvVs32}ZiF0(-!(x;ZXk@A zkME9nTGJ>}-R-c0%6faem@JY?X3s_E7?&Jv_T-)B`1@b0uRNC^XB5`AyuAE{b`c>{ zMS5PmXUeUfRf45280Z`mr9(gY^*fep&&NpDuf72`-IHuyb9FOtU#ER+FfivR%{oOD*2T>T1x74zr zheqIPCHaG;<0qj#37nV*S+}PqxqhRLx@36zJCeBti6xo#YeDJ5kJdez+_H?)R=(|_ zs!u882&dThn?5wXIky_g(*WR2Zyx+f*3tPSijQvI(gQ3_$PJ5r|5g%xxxD3p_UB-i z#-@@Bq%txt?jFzx)9xA?A1CZ=_h6oJhTZw-DM&3`zMQjeQTnQ-cOMj?Rv-X4fl_k) zkY#e2K%~#+L(mnMm|oX3@cxl|Sn~XzAmh?ZvTB~zVzZ`C5AI#};q!Zke>@6<_PDcs zy6>*TeVZeai1|5gj@b)**TciZ$v{U2{!2Bl(h5Y2p+EPE4k!TuUcTTA*VcqUkkOJ?vE>LDvOfB`=9x=gATMl|Y zh#p^bU2riMO|M@1&SnxEMnt7%6-Q9|>8Nj!-2d18b*z4p5}2Mz;C*5IHH;Yze@7bK z<$eBJJpu)_n5-pM>Z-WH!-RWluKJQn({0+k%UBN6g-yv@|$1UKo%28)dqr+b!ZS zTpQ3ZjMA8ZktcxdjshJZQ6<6UC02LeW9{`6lZsN{`^ixA#evP&OBXI%vBzqU{dvIk zmT>t3*1L+2Vj+(tsL}xb+aig%Y=O5ly&Wv+0 z_!LU_1Ms$zmh)0pf})TVeDRwXYg-YCFEEq%4G9aYZ~6Kzk@X!N-FjhbyS(pGq^4}m z)BLAdm`XvUy}y(WuA>3t2)DnB=og}z)jjqjz%Tn?sA#9fY4*GRYbJq!o$mLG!sUjL zI{>LCgwB&;le)p8Y7-R%1#O3Nsbi54;VF&K&fB%j5d}wYVA!>Sxc~d0`wvo_e|l&){F%sGDe6B_vXviBGI1}4Daup# zo*Yq#>OY;jQ3|s6^*?&~Uhvb2y;t2rS@nZwpn|Xe{Wud`_T{Je|KR7O?S{d_c_ei) zw_A^TmeWSarEP3}M+<eFt1XQieS}Ok;+XN2?kd^H*CQYNAXMaE z93a+bQ|6&eg9x|bj5M--q7@Yt7NWG4!l{rIADWpV1Txm1>+3If$FW9~D!V)|0r?L3 z@7>#aj*O2dkI*^9S9)BB)Jqn-%QMg0!<40G9Nf^`+*|P51lM;{&2`5%tk7H@OC63M zd@)=Zc;hDyW!uc~FQ5^nj*y!?d)5x!E;cD?+(|lZAQU2&$gZ>d6;Zmk@7yV0Sy?fw)zQ}8^Q?(odg>p%!AESIc4ELE zbad(PcdqHR_F_M$X2yLetxbn+>G{1R4C*%bdh6gci6U@uuO$&o!V4=VistanatONq z2s5j8xI-sog$1SfVStT|4FKORMVM8aH&I5u`#m-`RO%2HOnR)X;?MUlpPAZ3IA*Vq zAVrVDOi!>gr8{)Rvzs${e!df&f6`{x`k91^}HOXfOeFEv> zr#B#7!2s$_c_UM>)-yfIPiUU)%+nI=OaE0tl>mCP1Vhdwl@!l7;walN&3g}G`&`Ud zE9L2(oe8*GZ)C|zbTIlw5O6L;DWe81AkUk?kn!wkFdrp>Na~|HGQGwGQF7z5hw{u7%&TzUJ`G!I=tHiz%r$sw&HfKjd|(*QI&7 zxE*7xQ(5w4vcX-8QDb<7jb{>&@+GlA6r4b-^iLmzID{{IypKN3t9O^mP$paOBcPcy zytIYBsAw+IEXDR|2lG;QuCfL&m~H));~-{MMTPK(6ww5R`39{+2{t)ySm%dl_L{vx zZg2}yf^x$`f+=@SoESPrGJHk{vdQNi$A`!(qPj{Sxlki4N=5um-N>@lXGEA@m|ThZ zc7+VdeJ(beif@0Q4+anw25}3f4PHV!Gx$4G9r=$^$%iLif#Q*W!t(Pu6j25PDGgq` z7yy(a-Mp4}7~=w3hI7?m0F>s25V43Zvqqot7DvA~bmlz?3lP=n?L6wNHe;(7hlmyn zfHD_d3#}nAg&$~$MV4oeJWiHtHv+~k+I?vO#*h?vxMOjfrFl{vGdqDg?4ca^X!ye0 zr~=a*1eGv^6Cj@HcoHSG#48+t`X(}~^xG5B=EaC(njwry%3H|kMz=h0FTwex|H z3Ztv?}CVzg$fJ?=T@;+CR<)DI9`T~JKCok1|Z^_Ts3Za|M4aKkF zTRU))I*)R$)@8AlKmm#i_b zz@PsP!%|3`-$%%QSnXqaY!eXOEEX4KbfR3azUR<9@~B4`cdW%-J6S?C@Agte)=HUf z*flisa!8$3_|0$*Wm7K@lOp%gm_NnfYvHKjr6u%h4w`=aL*1Nb+oU@_G8l4=`n zSg6^5tG0^kjyPPWPo*bgk0(er7tg%09%e|>axz8!l@EcsU|m}!=qk8=DEK-PFvD=G zFU1PHWEeiKJc-#`p#t_yEy#4aGlVQQ;IOCCOju3hC_Sw5{F>rebU?&yF0 zL2?UOnBRm zz2$x9ZHR@eKKfS=A&$Qxkt;(H_qaAXmklzcogbn{2x7WI-aex+C?sHv!38j|42hsA zdBg=$0tf25Ml)V?2P2wR?7_OIqAhY60dvVYW#qC0MD8J;ZDqe~d`ZQ_2!2KflE8ar zs~UPh5dCS%k@*OkpgO*GWOBZCN1_>{)+Uc_WvY#xo#q!3z(SBZ?;4_cY40W`Eo^N$ z;fnzl*Pc(>!s5F((=OqG7V3IJiT7IZtggXpapWWNr#!l)bq{1dp}OpG-b9GJYoz@+V2f#y zFjZK=LdvdCyq!3#t5HpmQwW5)NtQgO z7-1D=6yT&)E+ta&^CX`M*APi<<;^_Y@ep6w>f;YaDp3Pv5c1G?+~cJIH%{BSBTM$n zs=TZ<1lRfx*`cd)e(5rGcnS=Mc6sD*(tvd*8s}M(o-XcV>OhcX=A-7`R@ILAcIMMv zth#CJAT5>iFC?vvICmW2*g>A`E$|fV==L)EqbGRLQ=F}2SY)Pty?ggEZdQ>ptol=P zjmFcbfz`FUS8XmFc)Vr+>Oy&9dSd<&sYp9GSMW>R=j?v!2XiN0>I6gFr$#I`)`P;3 ze6W%&6mDDIKLYzpM~?c+4R~L5ADGM_O`X(XsNJf^k^vPMuRA19FaGY^()x(sFHy%l zRNtho+G3R8Ft?rglJGd8ASkF{>G;m#mew$R%m3M*Q*kfF=$2bI>vv1;J+?FM*CbgX z@9$dvQnUkY@wG%T`?DNX;=kJxt%A5aFanN9@%$*Tz$W~wmAfPU)hkq_T`)Q5wmKv@ zi~^6^Dyi0&4u6Wu2;ODlaewM|^#Xe-fqV>4i}`?s8tyaj1{irDBEHZQUL<+N?M(8C+Uq1t#dusJk ztiut=(*=Rh3XMpiu0>bfHE*CTOgwF}!#$HBZ~!blGidoIvPf?_F@y(2y9L$b8S@as z6jWA{!=3zoP~*J+w{}lO2%=>{x8kv7v<0Y9s)tNdK;%2uKxxoSVE-#Q;i<@ z_YeOkm3#jb*n&m z!@_v6u{6U{)5TIGYYj0}{o?fb<|>y#ehNvhhMAw$@in~DrI;_|F01(`=jj_9R{Xy= z`bBx=Np4cn(@su71UsIZGGgUuHLi8GfijDe<J-5wXiTU91AM#sCs|49RqRB z4>~;G!OX{2E__lSl@c%X+TTW z#CB8!fVq)?l>q!DcnxRkV9aD7-NzCaN}z(Int#Rx{%2tEA3w4OJcjB_g4N#Hzj~!& zYnv}>YHC{CyItzP&4>fc;tLMF!RPo#)Sp`op(lUv0NZP4GH7jWEw-<(w^vtRKWt{k z zf@Ba_bYcWw{WD)vGal;%$wB>*DD$5eR&jFN(abnfY2r@g5s{G%GB0wIkQnf}^q`C| z?aKmf*yM!MGF=u20pZ19=}K+&o)47q^w|{7%8-fqhgaf5LwXaMXz*lVE=GA znGPp=R6{o|HVcxD_;BD2q*$7SpBkPlkiY8g?n)=MA(^!V1!hMNO%loeYE+;~`g5@s zpv-oF76-8I{D7Y#4-J4`&YwDrgvr)nJV^Dw6v^OAbqygP^&3?)o}}@)Ke<|B8hDL& zl3i~)@#wFtA$>XKB2}26YT9_|TUTUQ8R~Y3@5ur!A_idLV6p9cI^mt&i(!r_uoS92 zwZ2o|j+6WV_`DHnG){N;g&Z0T9t-V>BX!lDc5vhhwh*+=iA}uP2KM6rRi%ZZhQGiG z=D$b_^waAn-8pLsNOG)Us=pWmbGZGGz+Yw2#rVe%vC!IoZo>GF5hBz0=O@rj!c#PZ j|Ho?mA6NfZ7g6%3Hs<2b{XU}s=%w*MTct$FBKW@nq#wA` From dd71d123592fafec257075589ff7936dcbb93054 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 5 Jul 2021 15:28:39 +0200 Subject: [PATCH 090/173] aaaaaaaaa --- code/modules/mob/living/carbon/human/human.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a0088ead04..65bcddf0ad 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1101,9 +1101,9 @@ if(HAS_TRAIT(src, TRAIT_TOXINLOVER)) return "" if(isplasmaman(src)) - return "" if(isgolem(src)) - return "" return "" From e1f8b5ba556ea97767d2886ce64b2d4665fdc972 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Tue, 6 Jul 2021 01:34:15 -0400 Subject: [PATCH 091/173] AAAAAAAAAH --- _maps/map_files/PubbyStation/PubbyStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index d749c51798..576f2dae6a 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -16873,10 +16873,10 @@ dir = 4 }, /obj/effect/landmark/start/assistant, +/obj/machinery/light/small, /turf/open/floor/plasteel/freezer, /area/commons/toilet/auxiliary) "aNd" = ( -/obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, From 3f5f639c42f048585896f0b26ca4d5bcf03f09fe Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Tue, 6 Jul 2021 01:45:44 -0400 Subject: [PATCH 092/173] Update PubbyStation.dmm --- _maps/map_files/PubbyStation/PubbyStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 576f2dae6a..774ef8fdc8 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -34476,7 +34476,7 @@ dir = 8 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/rd) From b23b3e16379cc65b1694a176fa25e48f79b78fc6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jul 2021 13:53:12 -0500 Subject: [PATCH 093/173] Automatic changelog generation for PR #14927 [ci skip] --- html/changelogs/AutoChangeLog-pr-14927.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14927.yml diff --git a/html/changelogs/AutoChangeLog-pr-14927.yml b/html/changelogs/AutoChangeLog-pr-14927.yml new file mode 100644 index 0000000000..7503eee4a7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14927.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - bugfix: "Golem / Plasmaman species color should work again." From 26b186d24f1473eecef3a411b4bc8fed0a362f85 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Tue, 6 Jul 2021 16:29:45 -0400 Subject: [PATCH 094/173] Update engine_am.dmm --- _maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm index db2a4f6cd7..f7fa98fcf7 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm @@ -1367,7 +1367,7 @@ JZ kK Ch Ch -MJ +Ch MJ MJ MJ From b20f2ab43dc8001097cd2203336ba88ffbdcb0af Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 7 Jul 2021 00:25:44 +0000 Subject: [PATCH 095/173] Automatic changelog compile [ci skip] --- html/changelog.html | 21 ++++++--------------- html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14927.yml | 4 ---- 3 files changed, 9 insertions(+), 19 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14927.yml diff --git a/html/changelog.html b/html/changelog.html index 998af50e93..9af663a1f7 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->

+

07 July 2021

+

DeltaFire15 updated:

+
    +
  • Golem / Plasmaman species color should work again.
  • +
+

05 July 2021

Putnam3145 updated:

    @@ -610,21 +616,6 @@
    • lets humans have digi legs (and avian legs)
    - -

    05 May 2021

    -

    The0bserver, with a great amount of advice from TripleZeta/TetraZeta updated:

    -
      -
    • Adds a new crate type, for use with any manner of cheeky breeki shenanigans, as well as with existing Russian contraband.
    • -
    -

    bunny232 updated:

    -
      -
    • There's some new vents and scrubbers in the meta station xenobiology department. Welders and wrenches not included*
    • -
    -

    keronshb updated:

    -
      -
    • Nightmare Shadow Jaunt threshold up to 0.4
    • -
    • Vendor and Engraved message light down to 0.3
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 2ae584386b..75da684ad3 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29631,3 +29631,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. zeroisthebiggay: - imageadd: tg based tool resprites - bugfix: wirecutters have proper overlays +2021-07-07: + DeltaFire15: + - bugfix: Golem / Plasmaman species color should work again. diff --git a/html/changelogs/AutoChangeLog-pr-14927.yml b/html/changelogs/AutoChangeLog-pr-14927.yml deleted file mode 100644 index 7503eee4a7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14927.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Golem / Plasmaman species color should work again." From 552d5e3c0b33841a79cdbe6862ade70a883d8ee1 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 7 Jul 2021 01:01:09 +0000 Subject: [PATCH 096/173] Automatic changelog compile [ci skip] --- html/changelog.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 998af50e93..86e0e58c7f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -610,21 +610,6 @@
  • lets humans have digi legs (and avian legs)
- -

05 May 2021

-

The0bserver, with a great amount of advice from TripleZeta/TetraZeta updated:

-
    -
  • Adds a new crate type, for use with any manner of cheeky breeki shenanigans, as well as with existing Russian contraband.
  • -
-

bunny232 updated:

-
    -
  • There's some new vents and scrubbers in the meta station xenobiology department. Welders and wrenches not included*
  • -
-

keronshb updated:

-
    -
  • Nightmare Shadow Jaunt threshold up to 0.4
  • -
  • Vendor and Engraved message light down to 0.3
  • -
GoonStation 13 Development Team From fc153b04d34cdbb3845abdc5fdfa47cd8bd3f54f Mon Sep 17 00:00:00 2001 From: keronshb Date: Tue, 6 Jul 2021 22:47:02 -0400 Subject: [PATCH 097/173] breaking a mirror is bad for your health (#58381) --- code/game/objects/structures/mirror.dm | 34 ++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 32040b8573..11186ae4b7 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -48,14 +48,34 @@ return // no message spam ..() +/obj/structure/mirror/attacked_by(obj/item/I, mob/living/user) + if(broken || !istype(user) || !I.force) + return ..() + + . = ..() + if(broken) // breaking a mirror truly gets you bad luck! + to_chat(user, "A chill runs down your spine as [src] shatters...") + user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message + +/obj/structure/mirror/bullet_act(obj/projectile/P) + if(broken || !isliving(P.firer) || !P.damage) + return ..() + + . = ..() + if(broken) // breaking a mirror truly gets you bad luck! + var/mob/living/unlucky_dude = P.firer + to_chat(unlucky_dude, "A chill runs down your spine as [src] shatters...") + unlucky_dude.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message + /obj/structure/mirror/obj_break(damage_flag, mapload) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - icon_state = "mirror_broke" - if(!mapload) - playsound(src, "shatter", 70, 1) - if(desc == initial(desc)) - desc = "Oh no, seven years of bad luck!" - broken = TRUE + if(broken || (flags_1 & NODECONSTRUCT_1)) + return + icon_state = "mirror_broke" + if(!mapload) + playsound(src, "shatter", 70, TRUE) + if(desc == initial(desc)) + desc = "Oh no, seven years of bad luck!" + broken = TRUE /obj/structure/mirror/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) From c92952c3b007829f9f1c1676b1266e650bf16aaa Mon Sep 17 00:00:00 2001 From: keronshb Date: Tue, 6 Jul 2021 22:57:31 -0400 Subject: [PATCH 098/173] Cit changes for bullet path --- code/game/objects/structures/mirror.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 11186ae4b7..a70d9d4678 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -57,7 +57,7 @@ to_chat(user, "A chill runs down your spine as [src] shatters...") user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message -/obj/structure/mirror/bullet_act(obj/projectile/P) +/obj/structure/mirror/bullet_act(obj/item/projectile/P) if(broken || !isliving(P.firer) || !P.damage) return ..() From 9063ad262bcd7688d0ba2036a08665eefb34d28f Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Wed, 7 Jul 2021 16:21:40 -0400 Subject: [PATCH 099/173] Update PubbyStation.dmm --- _maps/map_files/PubbyStation/PubbyStation.dmm | 38 ++++++------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index d749c51798..532d318319 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -24652,12 +24652,6 @@ }, /turf/open/space, /area/solars/starboard) -"beW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engineering/atmos) "beY" = ( /obj/machinery/camera{ c_tag = "Arrivals Central"; @@ -40389,8 +40383,8 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Unfiltered to Mix" + dir = 4; + name = "Ports to Mix" }, /turf/open/floor/plasteel, /area/engineering/atmos) @@ -41430,6 +41424,9 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "bPW" = ( @@ -42132,7 +42129,9 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "bRw" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "bRx" = ( @@ -55286,15 +55285,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/construction/mining/aux_base) -"hEi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engineering/atmos) "hEX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -61354,12 +61344,6 @@ }, /turf/open/floor/engine, /area/engineering/main) -"uST" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Ports" - }, -/turf/open/floor/plasteel, -/area/engineering/atmos) "uUQ" = ( /obj/machinery/door/airlock/maintenance{ name = "Engineering Maintenance"; @@ -100505,7 +100489,7 @@ bOr bPU kWG bRw -beW +bMf bMf bMf bMf @@ -100761,9 +100745,9 @@ bKV bOX eEd bQL -uST pEM bMf +bMf qQu qQu bSU @@ -101019,7 +101003,7 @@ bMg bNj bOp bPV -hEi +sGJ sGJ bUw bUw From c7d1c9d8e8bf343e2f802316f8267491d65ed1d7 Mon Sep 17 00:00:00 2001 From: keronshb Date: Wed, 7 Jul 2021 21:12:44 -0400 Subject: [PATCH 100/173] Ports Stripping log when dc'd --- code/__DEFINES/inventory.dm | 12 ++++++++ code/__HELPERS/_lists.dm | 2 ++ .../mob/living/carbon/human/human_defines.dm | 3 ++ code/modules/mob/living/carbon/human/login.dm | 30 +++++++++++++++++++ code/modules/mob/living/living.dm | 13 ++++++++ 5 files changed, 60 insertions(+) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 649e0a029b..7b727fcc5a 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -159,6 +159,18 @@ #define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay #define TINT_BLIND 3 //Threshold of tint level to obscure vision fully +// defines for AFK theft +/// How many messages you can remember while logged out before you stop remembering new ones +#define AFK_THEFT_MAX_MESSAGES 10 +/// If someone logs back in and there are entries older than this, just tell them they can't remember who it was or when +#define AFK_THEFT_FORGET_DETAILS_TIME 5 MINUTES +/// The index of the entry in 'afk_thefts' with the person's visible name at the time +#define AFK_THEFT_NAME 1 +/// The index of the entry in 'afk_thefts' with the text +#define AFK_THEFT_MESSAGE 2 +/// The index of the entry in 'afk_thefts' with the time it happened +#define AFK_THEFT_TIME 3 + //Allowed equipment lists for security vests and hardsuits. GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list( diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 7e2abebcf9..2d0601d839 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -19,6 +19,8 @@ #define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= length(L) ? L[I] : null) : L[I]) : null) #define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V; #define LAZYLEN(L) length(L) +//Sets a list to null +#define LAZYNULL(L) L = null #define LAZYCLEARLIST(L) if(L) L.Cut() #define SANITIZE_LIST(L) ( islist(L) ? L : list() ) #define reverseList(L) reverseRange(L.Copy()) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6f1fe57df3..50d4402041 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -52,6 +52,9 @@ var/obj/item/l_store = null var/obj/item/s_store = null + /// When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds + var/list/afk_thefts + var/special_voice = "" // For changing our voice. Used by a symptom. var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm index a89921143a..ebf76eeafa 100644 --- a/code/modules/mob/living/carbon/human/login.dm +++ b/code/modules/mob/living/carbon/human/login.dm @@ -2,3 +2,33 @@ ..() if(dna?.species?.has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) LoadComponent(/datum/component/field_of_vision, field_of_vision_type) + + if(!LAZYLEN(afk_thefts)) + return + + var/list/print_msg = list() + print_msg += "*---------*" + print_msg += "As you snap back to consciousness, you recall people messing with your stuff..." + + afk_thefts = reverseRange(afk_thefts) + + for(var/list/iter_theft as anything in afk_thefts) + if(!islist(iter_theft) || LAZYLEN(iter_theft) != AFK_THEFT_TIME) + stack_trace("[src] ([ckey]) returned to their body and had a null/malformed afk_theft entry. Contents: [json_encode(iter_theft)]") + continue + + var/thief_name = iter_theft[AFK_THEFT_NAME] + var/theft_message = iter_theft[AFK_THEFT_MESSAGE] + var/time_since = world.time - iter_theft[AFK_THEFT_TIME] + + if(time_since > AFK_THEFT_FORGET_DETAILS_TIME) + print_msg += "\tSomeone [theft_message], but it was at least [DisplayTimeText(AFK_THEFT_FORGET_DETAILS_TIME)] ago." + else + print_msg += "\t[thief_name] [theft_message] roughly [DisplayTimeText(time_since, 10)] ago." + + if(LAZYLEN(afk_thefts) >= AFK_THEFT_MAX_MESSAGES) + print_msg += "There may have been more, but that's all you can remember..." + print_msg += "*---------*" + + to_chat(src, print_msg.Join("\n")) + LAZYNULL(afk_thefts) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b0d340eed0..a3e6b28fd6 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -911,6 +911,12 @@ "[src] tries to remove your [what.name].", target = src, target_message = "You try to remove [who]'s [what.name].") what.add_fingerprint(src) + if(ishuman(who)) + var/mob/living/carbon/human/victim_human = who + if(victim_human.key && !victim_human.client) // AKA braindead + if(victim_human.stat <= SOFT_CRIT && LAZYLEN(victim_human.afk_thefts) <= AFK_THEFT_MAX_MESSAGES) + var/list/new_entry = list(list(src.name, "tried unequipping your [what]", world.time)) + LAZYADD(victim_human.afk_thefts, new_entry) else to_chat(src,"You try to remove [who]'s [what.name].") what.add_fingerprint(src) @@ -957,6 +963,13 @@ to_chat(src, "\The [what.name] doesn't fit in that place!") return + if(ishuman(who)) + var/mob/living/carbon/human/victim_human = who + if(victim_human.key && !victim_human.client) // AKA braindead + if(victim_human.stat <= SOFT_CRIT && LAZYLEN(victim_human.afk_thefts) <= AFK_THEFT_MAX_MESSAGES) + var/list/new_entry = list(list(src.name, "tried equipping you with [what]", world.time)) + LAZYADD(victim_human.afk_thefts, new_entry) + who.visible_message("[src] tries to put [what] on [who].", "[src] tries to put [what] on you.", target = src, target_message = "You try to put [what] on [who].") From eb607f1e93e1391eed6d50a56f5cd24ed7107aef Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jul 2021 20:24:59 -0500 Subject: [PATCH 101/173] Automatic changelog generation for PR #14928 [ci skip] --- html/changelogs/AutoChangeLog-pr-14928.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14928.yml diff --git a/html/changelogs/AutoChangeLog-pr-14928.yml b/html/changelogs/AutoChangeLog-pr-14928.yml new file mode 100644 index 0000000000..15e93194fe --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14928.yml @@ -0,0 +1,5 @@ +author: "MrJWhit" +delete-after: True +changes: + - bugfix: "Made a light not exist on the same tile as a door on pubby." + - bugfix: "Makes the RD APC automatically connect to the powernet with the correct wire on pubby." From 1e7d6a4036240e0216c4b88435a727719e2725de Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Thu, 8 Jul 2021 02:49:43 +0000 Subject: [PATCH 102/173] I made a head sprite that screams! --- icons/mob/clothing/head.dmi | Bin 233481 -> 233611 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 3a768c4f05612877f088e9c0c71d7c19a282a960..51675c8d7da5933e78f205e6feb645e83f35db00 100644 GIT binary patch delta 16897 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
?>V`}ZtaOfHU#Vg<|pZRAER6zmsc8Gv$ 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 delta 16766 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 eA^!jCbIs7G@RwMvek)`BeKQlw%N0hq9{e9SG2 Date: Thu, 8 Jul 2021 02:52:35 +0000 Subject: [PATCH 103/173] new screaming hat sprite by Kyronism --- icons/obj/clothing/hats.dmi | Bin 113229 -> 113301 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index cba7526651ccd50adc1adc248004555851f6da90..854928f2caca6f37a9fe82ec561a1ad96fa7f804 100644 GIT binary patch delta 15961 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 DEE?21 delta 15889 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 Date: Thu, 8 Jul 2021 12:35:31 -0400 Subject: [PATCH 104/173] Update MetaStation.dmm --- _maps/map_files/MetaStation/MetaStation.dmm | 47 ++++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 0f41cd3b1a..57a4831073 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -36739,14 +36739,12 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "cAJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, /turf/open/floor/plasteel, /area/science/mixing) "cAK" = ( @@ -36755,7 +36753,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "cAL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -37139,7 +37137,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "cBE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -37149,7 +37147,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "cBF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -37158,7 +37156,7 @@ pixel_x = 32 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "cBG" = ( /obj/machinery/door/airlock/research{ name = "Toxins Launch Room"; @@ -37556,6 +37554,9 @@ /obj/machinery/light{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/mixing) "cCE" = ( @@ -54495,7 +54496,7 @@ "gLC" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "gLD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -70548,11 +70549,11 @@ /turf/open/floor/grass, /area/service/hydroponics/garden) "qqg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "qqK" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -78267,7 +78268,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "vhM" = ( /obj/machinery/teleport/hub, /turf/open/floor/plating, @@ -81108,7 +81109,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "wRz" = ( /obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -82282,8 +82283,12 @@ /area/service/library) "xAp" = ( /obj/structure/chair/comfy, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, /turf/open/floor/plasteel, -/area/science/misc_lab) +/area/science/mixing) "xAs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ @@ -82583,6 +82588,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/commons/dorms) +"xHe" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) "xHm" = ( /obj/machinery/holopad, /obj/structure/cable/yellow{ @@ -118574,7 +118589,7 @@ cJa cJa gHh wRy -wRy +xHe wRy cBE cAJ From 3fd9449e5790ce987faf3e75ad295dbabedb0aa2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jul 2021 14:16:29 -0500 Subject: [PATCH 105/173] Automatic changelog generation for PR #14929 [ci skip] --- html/changelogs/AutoChangeLog-pr-14929.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14929.yml diff --git a/html/changelogs/AutoChangeLog-pr-14929.yml b/html/changelogs/AutoChangeLog-pr-14929.yml new file mode 100644 index 0000000000..5612e30f17 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14929.yml @@ -0,0 +1,4 @@ +author: "MrJWhit" +delete-after: True +changes: + - rscadd: "Added another wall for the AM engine so it doesn't space the airlock roundstart." From eff610dd9b5ddc8e3b5003074d8717a964612892 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 9 Jul 2021 00:25:19 +0000 Subject: [PATCH 106/173] Automatic changelog compile [ci skip] --- html/changelog.html | 8 ++++++++ html/changelogs/.all_changelog.yml | 6 ++++++ html/changelogs/AutoChangeLog-pr-14928.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14929.yml | 4 ---- 4 files changed, 14 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14928.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14929.yml diff --git a/html/changelog.html b/html/changelog.html index 9af663a1f7..740b1d28dd 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,14 @@ -->
+

09 July 2021

+

MrJWhit updated:

+
    +
  • Made a light not exist on the same tile as a door on pubby.
  • +
  • Makes the RD APC automatically connect to the powernet with the correct wire on pubby.
  • +
  • Added another wall for the AM engine so it doesn't space the airlock roundstart.
  • +
+

07 July 2021

DeltaFire15 updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 75da684ad3..844f2d9bb8 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29634,3 +29634,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-07-07: DeltaFire15: - bugfix: Golem / Plasmaman species color should work again. +2021-07-09: + MrJWhit: + - bugfix: Made a light not exist on the same tile as a door on pubby. + - bugfix: Makes the RD APC automatically connect to the powernet with the correct + wire on pubby. + - rscadd: Added another wall for the AM engine so it doesn't space the airlock roundstart. diff --git a/html/changelogs/AutoChangeLog-pr-14928.yml b/html/changelogs/AutoChangeLog-pr-14928.yml deleted file mode 100644 index 15e93194fe..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14928.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - bugfix: "Made a light not exist on the same tile as a door on pubby." - - bugfix: "Makes the RD APC automatically connect to the powernet with the correct wire on pubby." diff --git a/html/changelogs/AutoChangeLog-pr-14929.yml b/html/changelogs/AutoChangeLog-pr-14929.yml deleted file mode 100644 index 5612e30f17..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14929.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "Added another wall for the AM engine so it doesn't space the airlock roundstart." From 5eff532b03bac31def351b190d46f2d2aafe9a04 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 9 Jul 2021 01:12:10 -0700 Subject: [PATCH 107/173] Woops, lets fix that --- _maps/templates/shelter_5.dmm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_maps/templates/shelter_5.dmm b/_maps/templates/shelter_5.dmm index 60066dc0c0..643f744fb9 100644 --- a/_maps/templates/shelter_5.dmm +++ b/_maps/templates/shelter_5.dmm @@ -253,6 +253,10 @@ /obj/machinery/dish_drive, /turf/open/floor/pod/dark, /area/survivalpod/nonpowered) +"Vv" = ( +/obj/machinery/biogenerator, +/turf/open/floor/pod/dark, +/area/survivalpod/nonpowered) "Ws" = ( /obj/structure/dresser, /turf/open/floor/pod/dark, @@ -274,12 +278,8 @@ /obj/structure/table/survival_pod, /obj/item/shovel, /obj/item/pickaxe, -/obj/item/clothing/gloves/chameleon/insulated, /obj/item/storage/toolbox/electrical, -/turf/open/floor/pod/dark, -/area/survivalpod/nonpowered) -"Zd" = ( -/obj/machinery/seed_extractor, +/obj/item/clothing/gloves/color/yellow, /turf/open/floor/pod/dark, /area/survivalpod/nonpowered) @@ -453,8 +453,8 @@ FZ Ng wI Ng -FZ -Zd +Vv +Lv xC td FZ From c4d8805a9f8ee3dd79ac2fc70275a3d64f805d8d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jul 2021 18:50:02 -0500 Subject: [PATCH 108/173] Automatic changelog generation for PR #14842 [ci skip] --- html/changelogs/AutoChangeLog-pr-14842.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14842.yml diff --git a/html/changelogs/AutoChangeLog-pr-14842.yml b/html/changelogs/AutoChangeLog-pr-14842.yml new file mode 100644 index 0000000000..17e49a5e5a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14842.yml @@ -0,0 +1,6 @@ +author: "WanderingFox95" +delete-after: True +changes: + - imageadd: "Returns the wheelchair sprites to having, you know, wheels?" + - rscadd: "A motorized wheelchair +addsound: Chairwhoosh." From d38280bd4a36ee8155251639c92663e13161cf94 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 10 Jul 2021 00:23:25 +0000 Subject: [PATCH 109/173] Automatic changelog compile [ci skip] --- html/changelog.html | 17 +++++++---------- html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-pr-14842.yml | 6 ------ 3 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14842.yml diff --git a/html/changelog.html b/html/changelog.html index 740b1d28dd..079c9608eb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,13 @@ -->
    +

    10 July 2021

    +

    WanderingFox95 updated:

    +
      +
    • Returns the wheelchair sprites to having, you know, wheels?
    • +
    • A motorized wheelchair addsound: Chairwhoosh.
    • +
    +

    09 July 2021

    MrJWhit updated:

      @@ -614,16 +621,6 @@
    • pirates now have a medbay and several other things qualifying as a buff
    • pirates lost their toilet
    - -

    08 May 2021

    -

    Arturlang updated:

    -
      -
    • Synthblood bottles now have the proper color and probably won't poison you anymore
    • -
    -

    timothyteakettle updated:

    -
      -
    • lets humans have digi legs (and avian legs)
    • -
    GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 844f2d9bb8..463bc106fc 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29640,3 +29640,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Makes the RD APC automatically connect to the powernet with the correct wire on pubby. - rscadd: Added another wall for the AM engine so it doesn't space the airlock roundstart. +2021-07-10: + WanderingFox95: + - imageadd: Returns the wheelchair sprites to having, you know, wheels? + - rscadd: 'A motorized wheelchair addsound: Chairwhoosh.' diff --git a/html/changelogs/AutoChangeLog-pr-14842.yml b/html/changelogs/AutoChangeLog-pr-14842.yml deleted file mode 100644 index 17e49a5e5a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14842.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "WanderingFox95" -delete-after: True -changes: - - imageadd: "Returns the wheelchair sprites to having, you know, wheels?" - - rscadd: "A motorized wheelchair -addsound: Chairwhoosh." From 149c263ae5dda2dd30aad850945d06480f390a3e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 10 Jul 2021 00:58:04 +0000 Subject: [PATCH 110/173] Automatic changelog compile [ci skip] --- html/changelog.html | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 86e0e58c7f..e8ea59ef01 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -600,16 +600,6 @@
  • pirates now have a medbay and several other things qualifying as a buff
  • pirates lost their toilet
- -

08 May 2021

-

Arturlang updated:

-
    -
  • Synthblood bottles now have the proper color and probably won't poison you anymore
  • -
-

timothyteakettle updated:

-
    -
  • lets humans have digi legs (and avian legs)
  • -
GoonStation 13 Development Team From fcb8eaf6cd83784cffdd813ce51a8886f0e0a186 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jul 2021 14:06:28 -0500 Subject: [PATCH 111/173] Automatic changelog generation for PR #14936 [ci skip] --- html/changelogs/AutoChangeLog-pr-14936.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14936.yml diff --git a/html/changelogs/AutoChangeLog-pr-14936.yml b/html/changelogs/AutoChangeLog-pr-14936.yml new file mode 100644 index 0000000000..e796ad51cc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14936.yml @@ -0,0 +1,5 @@ +author: "shellspeed1" +delete-after: True +changes: + - balance: "replaces the seed machine with a biogen in the survival pod." + - bugfix: "corrected an issue regarding wrong pair of gloves in the pod for DYI wiring ." From cf9cb01f3a6b5e8562fdfb0273f3bbd038a7b85e Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 10 Jul 2021 14:26:48 -0700 Subject: [PATCH 112/173] makes fire visuals respect hyper-nob --- code/modules/atmospherics/environmental/LINDA_fire.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index c25e74fc5c..cfa3e7eb14 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -13,7 +13,7 @@ if(!air) return - if (air.get_oxidation_power(exposed_temperature) < 0.5) + if (air.get_oxidation_power(exposed_temperature) < 0.5 || air.get_moles(GAS_HYPERNOB) > 5) return var/has_fuel = air.get_moles(GAS_PLASMA) > 0.5 || air.get_moles(GAS_TRITIUM) > 0.5 || air.get_fuel_amount(exposed_temperature) > 0.5 if(active_hotspot) @@ -152,7 +152,7 @@ if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1)) qdel(src) return - if(!location.air || location.air.get_oxidation_power() < 0.5 || (INSUFFICIENT(GAS_PLASMA) && INSUFFICIENT(GAS_TRITIUM) && location.air.get_fuel_amount() < 0.5)) + if(!location.air || location.air.get_moles(GAS_HYPERNOB) > 5 || location.air.get_oxidation_power() < 0.5 || (INSUFFICIENT(GAS_PLASMA) && INSUFFICIENT(GAS_TRITIUM) && location.air.get_fuel_amount() < 0.5)) qdel(src) return From 7fc5aa955035c367ed2b566a916c52b6b6ec7893 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Jul 2021 00:23:07 +0000 Subject: [PATCH 113/173] Automatic changelog compile [ci skip] --- html/changelog.html | 39 ++++------------------ html/changelogs/.all_changelog.yml | 5 +++ html/changelogs/AutoChangeLog-pr-14936.yml | 5 --- 3 files changed, 12 insertions(+), 37 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14936.yml diff --git a/html/changelog.html b/html/changelog.html index 079c9608eb..65a5600da8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,13 @@ -->
+

11 July 2021

+

shellspeed1 updated:

+
    +
  • replaces the seed machine with a biogen in the survival pod.
  • +
  • corrected an issue regarding wrong pair of gloves in the pod for DYI wiring .
  • +
+

10 July 2021

WanderingFox95 updated:

    @@ -589,38 +596,6 @@
    • Delta station xenobiology department has received enhanced scrubbing and ventilation capabilities similar to box and meta
    - -

    09 May 2021

    -

    Putnam3145 updated:

    -
      -
    • Priority announcement admeme verb
    • -
    -

    SandPoot updated:

    -
      -
    • Fixed Cyborg examines adding an extra weird line.
    • -
    • Everything can be set to have tooltips, and even coded to have neat tooltips.
    • -
    • Makes it so humans and borgs already have tooltips.
    • -
    -

    TheObserver-sys updated:

    -
      -
    • Fixes most of the weird handling bugs and improves cigarette case handling in general.
    • -
    • The Gorlex Marauders have seen fit to allow you to purchase the .45-70 GOVT rare ammo, at a premium cost. Don't waste it.
    • -
    -

    WanderingFox95 updated:

    -
      -
    • added the unrolling pin, an innovative solution to dough-based mishaps.
    • -
    • added visuals for the unrolling pin
    • -
    -

    dzahlus updated:

    -
      -
    • added new malf AI spawn and doomsday sound
    • -
    • removed old malf AI spawn and doomsday sound
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • pirates now have a medbay and several other things qualifying as a buff
    • -
    • pirates lost their toilet
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 463bc106fc..5c0b45b3b8 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29644,3 +29644,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. WanderingFox95: - imageadd: Returns the wheelchair sprites to having, you know, wheels? - rscadd: 'A motorized wheelchair addsound: Chairwhoosh.' +2021-07-11: + shellspeed1: + - balance: replaces the seed machine with a biogen in the survival pod. + - bugfix: corrected an issue regarding wrong pair of gloves in the pod for DYI wiring + . diff --git a/html/changelogs/AutoChangeLog-pr-14936.yml b/html/changelogs/AutoChangeLog-pr-14936.yml deleted file mode 100644 index e796ad51cc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14936.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "shellspeed1" -delete-after: True -changes: - - balance: "replaces the seed machine with a biogen in the survival pod." - - bugfix: "corrected an issue regarding wrong pair of gloves in the pod for DYI wiring ." From d267cedac2198e17f9a7461fb95142393821e9de Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Jul 2021 01:04:18 +0000 Subject: [PATCH 114/173] Automatic changelog compile [ci skip] --- html/changelog.html | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index e8ea59ef01..1544841cb7 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -568,38 +568,6 @@
  • Delta station xenobiology department has received enhanced scrubbing and ventilation capabilities similar to box and meta
- -

09 May 2021

-

Putnam3145 updated:

-
    -
  • Priority announcement admeme verb
  • -
-

SandPoot updated:

-
    -
  • Fixed Cyborg examines adding an extra weird line.
  • -
  • Everything can be set to have tooltips, and even coded to have neat tooltips.
  • -
  • Makes it so humans and borgs already have tooltips.
  • -
-

TheObserver-sys updated:

-
    -
  • Fixes most of the weird handling bugs and improves cigarette case handling in general.
  • -
  • The Gorlex Marauders have seen fit to allow you to purchase the .45-70 GOVT rare ammo, at a premium cost. Don't waste it.
  • -
-

WanderingFox95 updated:

-
    -
  • added the unrolling pin, an innovative solution to dough-based mishaps.
  • -
  • added visuals for the unrolling pin
  • -
-

dzahlus updated:

-
    -
  • added new malf AI spawn and doomsday sound
  • -
  • removed old malf AI spawn and doomsday sound
  • -
-

zeroisthebiggay updated:

-
    -
  • pirates now have a medbay and several other things qualifying as a buff
  • -
  • pirates lost their toilet
  • -
GoonStation 13 Development Team From 70a5dd3693c61d49295002c652d7bbf7894c3641 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 10 Jul 2021 22:53:14 -0700 Subject: [PATCH 115/173] yes --- code/modules/mob/living/carbon/human/human_movement.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 4513769734..54d6771c6c 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -98,7 +98,7 @@ return TRUE return ..() -/mob/living/carbon/human/proc/dirt_buildup(strength) +/mob/living/carbon/human/proc/dirt_buildup(strength = 1) if(!shoes || !(shoes.body_parts_covered & FEET)) return // barefoot advantage var/turf/open/T = loc From edf7ba17f4226ec0b2a348618c2277951d189058 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 11 Jul 2021 12:27:33 -0500 Subject: [PATCH 116/173] Automatic changelog generation for PR #14922 [ci skip] --- html/changelogs/AutoChangeLog-pr-14922.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14922.yml diff --git a/html/changelogs/AutoChangeLog-pr-14922.yml b/html/changelogs/AutoChangeLog-pr-14922.yml new file mode 100644 index 0000000000..151b965588 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14922.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - refactor: "causes_dirt_buildup_on_floor is now just a thing humans do instead of a weird var only true for humans" From 9f98020bf8a3993e71fa8c93b2d5a6d428706ea9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 12 Jul 2021 00:24:25 +0000 Subject: [PATCH 117/173] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/AutoChangeLog-pr-14922.yml | 4 ---- 3 files changed, 10 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14922.yml diff --git a/html/changelog.html b/html/changelog.html index 65a5600da8..abdd401cb7 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

12 July 2021

+

Putnam3145 updated:

+
    +
  • causes_dirt_buildup_on_floor is now just a thing humans do instead of a weird var only true for humans
  • +
+

11 July 2021

shellspeed1 updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 5c0b45b3b8..f8927bebaf 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29649,3 +29649,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - balance: replaces the seed machine with a biogen in the survival pod. - bugfix: corrected an issue regarding wrong pair of gloves in the pod for DYI wiring . +2021-07-12: + Putnam3145: + - refactor: causes_dirt_buildup_on_floor is now just a thing humans do instead of + a weird var only true for humans diff --git a/html/changelogs/AutoChangeLog-pr-14922.yml b/html/changelogs/AutoChangeLog-pr-14922.yml deleted file mode 100644 index 151b965588..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14922.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - refactor: "causes_dirt_buildup_on_floor is now just a thing humans do instead of a weird var only true for humans" From 98e9b32adc6c74e072341f3746eb76395b0f65ba Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 12 Jul 2021 02:04:23 -0500 Subject: [PATCH 118/173] Automatic changelog generation for PR #14918 [ci skip] --- html/changelogs/AutoChangeLog-pr-14918.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14918.yml diff --git a/html/changelogs/AutoChangeLog-pr-14918.yml b/html/changelogs/AutoChangeLog-pr-14918.yml new file mode 100644 index 0000000000..090c0cd658 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14918.yml @@ -0,0 +1,4 @@ +author: "MrJWhit" +delete-after: True +changes: + - rscadd: "Adds a mirror above the sink in the captains bedroom in pubby" From 101a512548f14a71ccc52ef15e07282b28b5c126 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jul 2021 00:23:43 +0000 Subject: [PATCH 119/173] Automatic changelog compile [ci skip] --- html/changelog.html | 17 ++++++----------- html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14918.yml | 4 ---- 3 files changed, 9 insertions(+), 15 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14918.yml diff --git a/html/changelog.html b/html/changelog.html index abdd401cb7..7fc5e7ab5c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
    +

    13 July 2021

    +

    MrJWhit updated:

    +
      +
    • Adds a mirror above the sink in the captains bedroom in pubby
    • +
    +

    12 July 2021

    Putnam3145 updated:

      @@ -591,17 +597,6 @@
    • find_safe_turf no longer always fails on safe oxygen levels(??)
    • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
    - -

    11 May 2021

    -

    LetterN updated:

    -
      -
    • fixes emagging console shuttle purchases
    • -
    • syndie melee simplemobs has no more bullshit shield
    • -
    -

    bunny232 updated:

    -
      -
    • Delta station xenobiology department has received enhanced scrubbing and ventilation capabilities similar to box and meta
    • -
    GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index f8927bebaf..3a5942f02b 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29653,3 +29653,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Putnam3145: - refactor: causes_dirt_buildup_on_floor is now just a thing humans do instead of a weird var only true for humans +2021-07-13: + MrJWhit: + - rscadd: Adds a mirror above the sink in the captains bedroom in pubby diff --git a/html/changelogs/AutoChangeLog-pr-14918.yml b/html/changelogs/AutoChangeLog-pr-14918.yml deleted file mode 100644 index 090c0cd658..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14918.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrJWhit" -delete-after: True -changes: - - rscadd: "Adds a mirror above the sink in the captains bedroom in pubby" From dcbecbaee6b3e4b18911604d4203a2f275b4cc82 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jul 2021 01:01:15 +0000 Subject: [PATCH 120/173] Automatic changelog compile [ci skip] --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 1544841cb7..87aa03e32c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -557,17 +557,6 @@
  • find_safe_turf no longer always fails on safe oxygen levels(??)
  • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
- -

11 May 2021

-

LetterN updated:

-
    -
  • fixes emagging console shuttle purchases
  • -
  • syndie melee simplemobs has no more bullshit shield
  • -
-

bunny232 updated:

-
    -
  • Delta station xenobiology department has received enhanced scrubbing and ventilation capabilities similar to box and meta
  • -
GoonStation 13 Development Team From f2dd0c6c22a82463e8b45381b34bc41f090266f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 13 Jul 2021 13:52:45 -0500 Subject: [PATCH 121/173] Automatic changelog generation for PR #14921 [ci skip] --- html/changelogs/AutoChangeLog-pr-14921.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14921.yml diff --git a/html/changelogs/AutoChangeLog-pr-14921.yml b/html/changelogs/AutoChangeLog-pr-14921.yml new file mode 100644 index 0000000000..ddbf937140 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14921.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - refactor: "Acid is now a component" From 39c09a60b8b830139d9476a56edce6e8603b4a05 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 13 Jul 2021 23:45:31 +0100 Subject: [PATCH 122/173] initial commit --- code/__DEFINES/citadel_defines.dm | 1 + code/__DEFINES/traits.dm | 1 + code/datums/traits/neutral.dm | 8 ++++++++ code/game/objects/items/trash.dm | 12 +++++++++++- code/modules/client/preferences.dm | 4 ++++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 541b50e9bd..04eeb515c9 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -101,6 +101,7 @@ #define NO_AUTO_WAG (1<<12) #define GENITAL_EXAMINE (1<<13) #define VORE_EXAMINE (1<<14) +#define TRASH_FORCEFEED (1<<15) #define TOGGLES_CITADEL 0 //belly sound pref things diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 3082856ccf..eb9bdccc22 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -221,6 +221,7 @@ #define TRAIT_LIVING_NO_DENSITY "living_no_density" /// forces us to not render our overlays #define TRAIT_HUMAN_NO_RENDER "human_no_render" +#define TRAIT_TRASHCAN "trashcan" // mobility flag traits // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 18d565ed5a..2f0667d942 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -154,3 +154,11 @@ /datum/quirk/longtimer/on_spawn() var/mob/living/carbon/C = quirk_holder C.generate_fake_scars(rand(min_scars, max_scars)) + +/datum/quirk/trashcan + name = "Trashcan" + desc = "You are able to consume and digest trash." + value = 0 + gain_text = "You feel like munching on a can of soda." + lose_text = "You no longer feel like you should be eating trash." + mob_trait = TRAIT_TRASHCAN diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 2109d1038e..0f0416bb3c 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -82,4 +82,14 @@ grind_results = list(/datum/reagent/aluminium = 1) //from the mylar bag /obj/item/trash/attack(mob/M, mob/living/user) - return + if((M == user || user.vore_flags & TRASH_FORCEFEED) && ishuman(user)) + var/mob/living/carbon/human/H = user + if(HAS_TRAIT(H, TRAIT_TRASHCAN)) + playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) + if(H.vore_selected) + H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]") + forceMove(H.vore_selected) + else + H.visible_message("[H] consumes the [src]") + qdel(src) + diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 251bcc72ad..fc65e88389 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1068,6 +1068,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Voracious MediHound sleepers:
[(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
" dat += "Hear Vore Sounds:
[(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
" dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
" + dat += "Allow trash forcefeeding (requires Trashcan quirk) [(cit_toggles & TRASH_FORCEFEED) ? "Yes" : "No"]
" dat += "Forced Feminization: [(cit_toggles & FORCED_FEM) ? "Allowed" : "Disallowed"]
" dat += "Forced Masculinization: [(cit_toggles & FORCED_MASC) ? "Allowed" : "Disallowed"]
" dat += "Lewd Hypno: [(cit_toggles & HYPNO) ? "Allowed" : "Disallowed"]
" @@ -2800,6 +2801,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("toggledigestionnoise") cit_toggles ^= DIGESTION_NOISES + if("toggleforcefeedtrash") + cit_toggles ^= TRASH_FORCEFEED + if("breast_enlargement") cit_toggles ^= BREAST_ENLARGEMENT From 5490519c48632b9149131d7cfcd6492347660377 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 14 Jul 2021 00:22:12 +0100 Subject: [PATCH 123/173] Update trash.dm --- code/game/objects/items/trash.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 0f0416bb3c..c0ff958612 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -87,9 +87,10 @@ if(HAS_TRAIT(H, TRAIT_TRASHCAN)) playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) if(H.vore_selected) - H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]") + H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]", + "You [H.vore_selected.vore_verb]s the [src] into your [H.vore_selected]") forceMove(H.vore_selected) else - H.visible_message("[H] consumes the [src]") + H.visible_message("[H] consumes the [src].") qdel(src) From 3c3cde25e284be443ed0b50e0c54e4e8a7bf6adc Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 14 Jul 2021 00:21:33 +0000 Subject: [PATCH 124/173] Automatic changelog compile [ci skip] --- html/changelog.html | 13 ++++++------- html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14921.yml | 4 ---- 3 files changed, 9 insertions(+), 11 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14921.yml diff --git a/html/changelog.html b/html/changelog.html index 7fc5e7ab5c..d7d439a7c8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

14 July 2021

+

Putnam3145 updated:

+
    +
  • Acid is now a component
  • +
+

13 July 2021

MrJWhit updated:

    @@ -590,13 +596,6 @@
    • vegas style bunny ears
    - -

    12 May 2021

    -

    DeltaFire15 updated:

    -
      -
    • find_safe_turf no longer always fails on safe oxygen levels(??)
    • -
    • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 3a5942f02b..ba0af9c448 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29656,3 +29656,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-07-13: MrJWhit: - rscadd: Adds a mirror above the sink in the captains bedroom in pubby +2021-07-14: + Putnam3145: + - refactor: Acid is now a component diff --git a/html/changelogs/AutoChangeLog-pr-14921.yml b/html/changelogs/AutoChangeLog-pr-14921.yml deleted file mode 100644 index ddbf937140..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14921.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - refactor: "Acid is now a component" From 3a11960a352e30f9007c1b8c17434b4f2a3c5314 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 14 Jul 2021 00:56:08 +0000 Subject: [PATCH 125/173] Automatic changelog compile [ci skip] --- html/changelog.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 7fc5e7ab5c..670468b057 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -590,13 +590,6 @@
  • vegas style bunny ears
- -

12 May 2021

-

DeltaFire15 updated:

-
    -
  • find_safe_turf no longer always fails on safe oxygen levels(??)
  • -
  • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
  • -
GoonStation 13 Development Team From 3cb44d41a3d30142facfb9d14b80a9ba828f3997 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Wed, 14 Jul 2021 00:35:30 -0300 Subject: [PATCH 126/173] upload files --- code/__DEFINES/voreconstants.dm | 27 +- code/modules/client/preferences.dm | 1 + code/modules/client/preferences_savefile.dm | 3 + .../living/simple_animal/hostile/hostile.dm | 4 +- code/modules/tgui/states/vorepanel.dm | 18 + code/modules/tgui/tgui_alert.dm | 27 +- code/modules/vore/eating/bellymodes.dm | 2 +- code/modules/vore/eating/living.dm | 73 +- code/modules/vore/eating/vorepanel.dm | 1387 ++++++++--------- tgstation.dme | 1 + tgui/packages/tgui/interfaces/VorePanel.js | 604 +++++++ 11 files changed, 1414 insertions(+), 733 deletions(-) create mode 100644 code/modules/tgui/states/vorepanel.dm create mode 100644 tgui/packages/tgui/interfaces/VorePanel.js diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index d2eb034813..67ef9bc81f 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -8,17 +8,24 @@ #define DM_UNABSORB "Un-absorb" #define DIGESTABLE (1<<0) -#define SHOW_VORE_PREFS (1<<1) -#define DEVOURABLE (1<<2) -#define FEEDING (1<<3) -#define NO_VORE (1<<4) -#define OPEN_PANEL (1<<5) -#define ABSORBED (1<<6) -#define VORE_INIT (1<<7) -#define VOREPREF_INIT (1<<8) -#define LICKABLE (1<<9) +#define DEVOURABLE (1<<1) +#define FEEDING (1<<2) +#define NO_VORE (1<<3) +#define ABSORBED (1<<4) +#define VORE_INIT (1<<5) +#define VOREPREF_INIT (1<<6) +#define LICKABLE (1<<7) +/// Can be smelled? +#define SMELLABLE (1<<8) +/// Can get absorbed? +#define ABSORBABLE (1<<9) +/// Can get simplemob vored? +#define MOBVORE (1<<10) +/// Spontaneous vore. Unused, usable in the future? +#define SPNTVORE (1<<11) -#define MAX_VORE_FLAG (1<<10)-1 // change this whenever you add a vore flag, must be largest vore flag*2-1 +/// Change this whenever you add a vore flag, must be largest vore flag*2-1 +#define MAX_VORE_FLAG (1<<12)-1 #define isbelly(A) istype(A, /obj/belly) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 251bcc72ad..9f0ac7f183 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -187,6 +187,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/vore_flags = 0 var/list/belly_prefs = list() var/vore_taste = "nothing in particular" + var/vore_smell = null var/toggleeatingnoise = TRUE var/toggledigestionnoise = TRUE var/hound_sleeper = TRUE diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 45c5357c4d..d4d13dc40f 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -821,6 +821,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["vore_flags"] >> vore_flags S["vore_taste"] >> vore_taste + S["vore_smell"] >> vore_smell var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" if(fexists(char_vr_path)) var/list/json_from_file = json_decode(file2text(char_vr_path)) @@ -994,6 +995,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car vore_flags = sanitize_integer(vore_flags, 0, MAX_VORE_FLAG, 0) vore_taste = copytext(vore_taste, 1, MAX_TASTE_LEN) + vore_smell = copytext(vore_smell, 1, MAX_TASTE_LEN) belly_prefs = SANITIZE_LIST(belly_prefs) cit_character_pref_load(S) @@ -1147,6 +1149,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["vore_flags"] , vore_flags) WRITE_FILE(S["vore_taste"] , vore_taste) + WRITE_FILE(S["vore_smell"] , vore_smell) var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" var/belly_prefs_json = safe_json_encode(list("belly_prefs" = belly_prefs)) if(fexists(char_vr_path)) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 95f8f2acc1..01a30bb90a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -364,11 +364,10 @@ /mob/living/simple_animal/hostile/proc/AttackingTarget() SEND_SIGNAL(src, COMSIG_HOSTILE_ATTACKINGTARGET, target) in_melee = TRUE - /* sorry for the simplemob vore fans if(vore_active) if(isliving(target)) var/mob/living/L = target - if(!client && L.Adjacent(src) && CHECK_BITFIELD(L.vore_flags,DEVOURABLE)) // aggressive check to ensure vore attacks can be made + if(!client && L.Adjacent(src) && CHECK_BITFIELD(L.vore_flags, DEVOURABLE) && CHECK_BITFIELD(L.vore_flags, MOBVORE)) // aggressive check to ensure vore attacks can be made if(prob(voracious_chance)) vore_attack(src,L,src) else @@ -379,7 +378,6 @@ return target.attack_animal(src) else return target.attack_animal(src) - */ return target.attack_animal(src) /mob/living/simple_animal/hostile/proc/Aggro() diff --git a/code/modules/tgui/states/vorepanel.dm b/code/modules/tgui/states/vorepanel.dm new file mode 100644 index 0000000000..b68dfb970a --- /dev/null +++ b/code/modules/tgui/states/vorepanel.dm @@ -0,0 +1,18 @@ + /** + * tgui state: vorepanel_state + * + * Only checks that the user and src_object are the same. + **/ + +GLOBAL_DATUM_INIT(ui_vorepanel_state, /datum/ui_state/vorepanel_state, new) + +/datum/ui_state/vorepanel_state/can_use_topic(src_object, mob/user) + if(src_object != user) + // Note, in order to allow others to look at others vore panels, change this to + // UI_UPDATE + return UI_CLOSE + if(!user.client) + return UI_CLOSE + if(user.stat == DEAD) + return UI_DISABLED + return UI_INTERACTIVE diff --git a/code/modules/tgui/tgui_alert.dm b/code/modules/tgui/tgui_alert.dm index 1a86cca705..d144588ad9 100644 --- a/code/modules/tgui/tgui_alert.dm +++ b/code/modules/tgui/tgui_alert.dm @@ -9,7 +9,7 @@ * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. */ -/proc/tgui_alert(mob/user, message, title, list/buttons, timeout = 60 SECONDS) +/proc/tgui_alert(mob/user, message = null, title = null, list/buttons = list("Ok"), timeout = 0) if (!user) user = usr if (!istype(user)) @@ -35,9 +35,9 @@ * * title - The of the alert modal, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * callback - The callback to be invoked when a choice is made. - * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Disabled by default, can be set to seconds otherwise. */ -/proc/tgui_alert_async(mob/user, message, title, list/buttons, datum/callback/callback, timeout = 60 SECONDS) +/proc/tgui_alert_async(mob/user, message = null, title = null, list/buttons = list("Ok"), datum/callback/callback, timeout = 0) if (!user) user = usr if (!istype(user)) @@ -90,7 +90,7 @@ * the window was closed by the user. */ /datum/tgui_modal/proc/wait() - while (!choice && !closed) + while (!choice && !closed && !QDELETED(src)) stoplag(1) /datum/tgui_modal/ui_interact(mob/user, datum/tgui/ui) @@ -124,10 +124,13 @@ if("choose") if (!(params["choice"] in buttons)) return - choice = params["choice"] + set_choice(params["choice"]) SStgui.close_uis(src) return TRUE +/datum/tgui_modal/proc/set_choice(choice) + src.choice = choice + /** * # async tgui_modal * @@ -138,23 +141,17 @@ var/datum/callback/callback /datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, title, message, buttons, timeout) + ..(user, message, title, buttons, timeout) src.callback = callback /datum/tgui_modal/async/Destroy(force, ...) QDEL_NULL(callback) . = ..() -/datum/tgui_modal/async/ui_close(mob/user) +/datum/tgui_modal/async/set_choice(choice) . = ..() - qdel(src) - -/datum/tgui_modal/async/ui_act(action, list/params) - . = ..() - if (!. || choice == null) - return - callback.InvokeAsync(choice) - qdel(src) + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) /datum/tgui_modal/async/wait() return diff --git a/code/modules/vore/eating/bellymodes.dm b/code/modules/vore/eating/bellymodes.dm index 7cf36ebc50..3db66050db 100644 --- a/code/modules/vore/eating/bellymodes.dm +++ b/code/modules/vore/eating/bellymodes.dm @@ -150,7 +150,7 @@ SEND_SOUND(M,prey_digest) play_sound = pick(pred_digest) - if(M.vore_flags & ABSORBED) + if(M.vore_flags & ABSORBED || M.vore_flags & ABSORBABLE) //Negative. continue if(M.nutrition >= 100) //Drain them until there's no nutrients left. Slowly "absorb" them. diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index ca5ee0f476..ff4a26e0e2 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -1,17 +1,24 @@ ///////////////////// Mob Living ///////////////////// /mob/living var/vore_flags = 0 - var/showvoreprefs = TRUE // Determines if the mechanical vore preferences button will be displayed on the mob or not. - var/obj/belly/vore_selected // Default to no vore capability. - var/list/vore_organs = list() // List of vore containers inside a mob - var/vore_taste = null // What the character tastes like + // Determines if the mechanical vore preferences button will be displayed on the mob or not. + var/showvoreprefs = TRUE + /// Default to no vore capability. + var/obj/belly/vore_selected + /// List of vore containers inside a mob + var/list/vore_organs = list() + /// What the character tastes like + var/vore_taste = null + /// What the character smells like + var/vore_smell = null + /// Next time vore sounds get played for the prey, do not change manually as it is intended to be set automatically var/next_preyloop // // Hook for generic creation of stuff on new creatures // /hook/living_new/proc/vore_setup(mob/living/M) - add_verb(M, list(/mob/living/proc/preyloop_refresh, /mob/living/proc/lick, /mob/living/proc/escapeOOC)) + add_verb(M, list(/mob/living/proc/preyloop_refresh, /mob/living/proc/lick, /mob/living/proc/smell, /mob/living/proc/escapeOOC)) if(M.vore_flags & NO_VORE) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach. return TRUE @@ -256,6 +263,7 @@ client.prefs.vore_flags = vore_flags // there's garbage data in here, but it doesn't matter client.prefs.vore_taste = vore_taste + client.prefs.vore_smell = vore_smell var/list/serialized = list() for(var/belly in vore_organs) @@ -264,6 +272,8 @@ client.prefs.belly_prefs = serialized + client.prefs.save_character() + return TRUE // @@ -274,8 +284,9 @@ to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.") return FALSE ENABLE_BITFIELD(vore_flags,VOREPREF_INIT) - COPY_SPECIFIC_BITFIELDS(vore_flags,client.prefs.vore_flags,DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE) + COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE | SPNTVORE) vore_taste = client.prefs.vore_taste + vore_smell = client.prefs.vore_smell release_vore_contents(silent = TRUE) QDEL_LIST(vore_organs) @@ -379,6 +390,56 @@ else taste_message += "a plain old normal [src]" return taste_message + +// +// Equally important as the above +// +/mob/living/proc/smell() + set name = "Smell Someone" + set category = "Vore" + set desc = "Smell someone nearby!" + + if(incapacitated(ignore_restraints = TRUE)) + to_chat(src, "You can't do that while incapacitated.") + return + if(!CheckActionCooldown()) + to_chat(src, "You can't do that so fast, slow down.") + return + + DelayNextAction(CLICK_CD_MELEE, flush = TRUE) + + var/list/smellable = list() + for(var/mob/living/L in view(1)) + if(L != src && (!L.ckey || L.client?.prefs.vore_flags & SMELLABLE) && Adjacent(L)) + LAZYADD(smellable, L) + for(var/mob/living/listed in smellable) + smellable[listed] = new /mutable_appearance(listed) + + if(!smellable) + return + + var/mob/living/sniffed = show_radial_menu(src, src, smellable, radius = 40, require_near = TRUE) + + if(QDELETED(sniffed) || (sniffed.ckey && !(sniffed.client?.prefs.vore_flags & SMELLABLE)) || !Adjacent(sniffed) || incapacitated(ignore_restraints = TRUE)) + return + + visible_message("[src] smells [sniffed]!","You smell [sniffed]. They smell like [sniffed.get_smell_message()].","Sniff!") + +/mob/living/proc/get_smell_message(allow_generic = TRUE, datum/species/mrace) + if(!vore_smell && !allow_generic) + return FALSE + + var/smell_message = "" + if(vore_smell && (vore_smell != "")) + smell_message += "[vore_smell]" + else + if(ishuman(src)) + var/mob/living/carbon/human/H = src + smell_message += "a normal [H.custom_species ? H.custom_species : H.dna.species]" + else + smell_message += "a plain old normal [src]" + return smell_message + // Check if an object is capable of eating things, based on vore_organs // /proc/has_vore_belly(var/mob/living/O) diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index aac8cbe745..489ed39094 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -2,746 +2,737 @@ // Vore management panel for players // -#define BELLIES_MAX 20 +#define BELLIES_MAX 40 #define BELLIES_NAME_MIN 2 -#define BELLIES_NAME_MAX 24 +#define BELLIES_NAME_MAX 40 #define BELLIES_DESC_MAX 4096 +#define FLAVOR_MAX 400 + +/mob/living + var/datum/vore_look/vorePanel /mob/living/proc/insidePanel() set name = "Vore Panel" set category = "Vore" - var/datum/vore_look/picker_holder = new() - picker_holder.loop = picker_holder - picker_holder.selected = vore_selected + if(!vorePanel) + log_game("VORE: [src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.") + vorePanel = new(src) - var/dat = picker_holder.gen_vui(src) - - picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) - picker_holder.popup.set_content(dat) - picker_holder.popup.open() - vore_flags |= OPEN_PANEL + vorePanel.ui_interact(src) /mob/living/proc/updateVRPanel() //Panel popup update call from belly events. - if(vore_flags & OPEN_PANEL) - var/datum/vore_look/picker_holder = new() - picker_holder.loop = picker_holder - picker_holder.selected = vore_selected - - var/dat = picker_holder.gen_vui(src) - - picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) - picker_holder.popup.set_content(dat) - picker_holder.popup.open() + SStgui.update_uis(vorePanel) // // Callback Handler for the Inside form // /datum/vore_look - var/obj/belly/selected - var/show_interacts = FALSE - var/datum/browser/popup - var/loop = null; // Magic self-reference to stop the handler from being GC'd before user takes action. + var/mob/living/host // Note, we do this in case we ever want to allow people to view others vore panels + var/unsaved_changes = FALSE + var/show_pictures = TRUE + +/datum/vore_look/New(mob/living/new_host) + if(istype(new_host)) + host = new_host + . = ..() /datum/vore_look/Destroy() - loop = null - selected = null - ..() //this is a must - return QDEL_HINT_HARDDEL + host = null + . = ..() -/datum/vore_look/Topic(href,href_list[]) - if (vp_interact(href, href_list)) - popup.set_content(gen_vui(usr)) - usr << output(popup.get_content(), "insidePanel.browser") +/datum/vore_look/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "VorePanel", "Vore Panel") + ui.open() -/datum/vore_look/proc/gen_vui(var/mob/living/user) - var/dat - dat += "Remember to toggle the vore mode, it's to the left of your combat toggle. Open mouth means you're voracious!
" - dat += "Remember that the prey is blind, use audible mode subtle messages to communicate to them with posts!
" - dat += "
" - var/atom/userloc = user.loc - if (isbelly(userloc)) - var/obj/belly/inside_belly = userloc - var/mob/living/eater = inside_belly.owner +// This looks weird, but all tgui_host is used for is state checking +// So this allows us to use the self_state just fine. +/datum/vore_look/ui_host(mob/user) + return host - //Don't display this part if we couldn't find the belly since could be held in hand. - if(inside_belly) - dat += "You are currently [(user.vore_flags & ABSORBED) ? "absorbed into " : "inside "] [eater]'s [inside_belly]!

" +// Note, in order to allow others to look at others vore panels, this state would need +// to be modified. +/datum/vore_look/ui_state(mob/user) + return GLOB.ui_vorepanel_state - if(inside_belly.desc) - dat += "[inside_belly.desc]

" +/datum/vore_look + var/static/list/nom_icons - if (inside_belly.contents.len > 1) - dat += "You can see the following around you:
" - for (var/atom/movable/O in inside_belly) - if(istype(O,/mob/living)) - var/mob/living/M = O - //That's just you - if(M == user) - continue +/datum/vore_look/proc/cached_nom_icon(atom/target) + LAZYINITLIST(nom_icons) - //That's an absorbed person you're checking - if(M.vore_flags & ABSORBED) - if(user.vore_flags & ABSORBED) - dat += "[O]" - continue - else - continue - - //Anything else - dat += "[O]​" - - //Zero-width space, for wrapping - dat += "​" + var/key = "" + if(isobj(target)) + key = "[target.type]" + else if(ismob(target)) + var/mob/M = target + key = "\ref[target][M.real_name]" + if(nom_icons[key]) + . = nom_icons[key] else - dat += "You aren't inside anyone." - - dat += "
" - - dat += "
    " - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(B == selected) - dat += "
  1. [B.name]" - else - dat += "
  2. [B.name]" - var/spanstyle - switch(B.digest_mode) - if(DM_HOLD) - spanstyle = "" - if(DM_DIGEST) - spanstyle = "color:red;" - if(DM_HEAL) - spanstyle = "color:darkgreen;" - if(DM_NOISY) - spanstyle = "color:purple;" - if(DM_ABSORB) - spanstyle = "color:purple;" - if(DM_DRAGON) - spanstyle = "color:blue;" - - dat += " ([B.contents.len])
  3. " - - if(user.vore_organs.len < BELLIES_MAX) - dat += "
  4. New+
  5. " - dat += "
" - dat += "
" - - // Selected Belly (contents, configuration) - if(!selected) - dat += "No belly selected. Click one to select it." - else - if(selected.contents.len) - dat += "Contents: " - for(var/O in selected) - - //Mobs can be absorbed, so treat them separately from everything else - if(istype(O,/mob/living)) - var/mob/living/M = O - - //Absorbed gets special color OOoOOOOoooo - if(M.vore_flags & ABSORBED) - dat += "[O]" - continue - - //Anything else - dat += "[O]" - - //Zero-width space, for wrapping - dat += "​" - - //If there's more than one thing, add an [All] button - if(selected.contents.len > 1) - dat += "\[All\]" - - dat += "
" - - //Belly Name Button - dat += "Name:" - dat += " '[selected.name]'" - - //Belly Type button - dat += "
Is Fleshy:" - dat += "[selected.is_wet ? "Yes" : "No"]" - if(selected.is_wet) - dat += "
Internal loop for prey?:" - dat += "[selected.wet_loop ? "Yes" : "No"]" - - //Digest Mode Button - dat += "
Belly Mode:" - dat += " [selected.digest_mode]" - - //Belly verb - dat += "
Vore Verb:" - dat += " '[selected.vore_verb]'" - - //Inside flavortext - dat += "
Flavor Text:" - dat += " '[selected.desc]'" - - //Belly sound - dat += "
Vore Sound: [selected.vore_sound]" - dat += "Test" - - //Release sound - dat += "
Release Sound: [selected.release_sound]" - dat += "Test" - - //Belly messages - dat += "
Belly Messages" - - //Can belly taste? - dat += "
Can Taste:" - dat += " [selected.can_taste ? "Yes" : "No"]" - - //Minimum size prey must be to show up. - dat += "
Required examine size:" - dat += " [selected.bulge_size*100]%" - - //Belly escapability - dat += "
Belly Interactions ([selected.escapable ? "On" : "Off"])" - if(selected.escapable) - dat += "[show_interacts ? "Hide" : "Show"]" - - if(show_interacts && selected.escapable) - dat += "
" - dat += "Interaction Settings ?" - dat += "
Set Belly Escape Chance" - dat += " [selected.escapechance]%" - - dat += "
Set Belly Escape Time" - dat += " [selected.escapetime/10]s" - - //Special
here to add a gap - dat += "
" - dat += "
Set Belly Transfer Chance" - dat += " [selected.transferchance]%" - - dat += "
Set Belly Transfer Location" - dat += " [selected.transferlocation ? selected.transferlocation : "Disabled"]" - - //Special
here to add a gap - dat += "
" - dat += "
Set Belly Absorb Chance" - dat += " [selected.absorbchance]%" - - dat += "
Set Belly Digest Chance" - dat += " [selected.digestchance]%" - dat += "
" - - //Delete button - dat += "
Delete Belly" - - dat += "Set Flavor" - - dat += "
" - - //Under the last HR, save and stuff. - dat += "Save Prefs" - dat += "Refresh" - dat += "Reload Slot Prefs" - - dat += "
" - var/pref_on = "#173d15" - var/pref_off = "#990000" - dat += "
Toggle Digestable (Currently: [(user.vore_flags & DIGESTABLE) ? "ON" : "OFF"])" - dat += "
Toggle Devourable (Currently: [(user.vore_flags & DEVOURABLE) ? "ON" : "OFF"])" - dat += "
Toggle Feeding (Currently: [(user.vore_flags & FEEDING) ? "ON" : "OFF"])" - if(user.client.prefs) - dat += "
Toggle Licking (Currently: [(user.client.prefs.vore_flags & LICKABLE) ? "ON" : "OFF"])" - //Returns the dat html to the vore_look - return dat - -/datum/vore_look/proc/vp_interact(href, href_list) - var/mob/living/user = usr - for(var/H in href_list) - - if(href_list["close"]) - qdel(src) // Cleanup - user.vore_flags &= ~OPEN_PANEL - return - - if(href_list["show_int"]) - show_interacts = !show_interacts - return TRUE //Force update - - if(href_list["int_help"]) - alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ - and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \ - These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ - will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ - only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") - return FALSE //Force update - - if(href_list["outsidepick"]) - var/atom/movable/tgt = locate(href_list["outsidepick"]) - var/obj/belly/OB = locate(href_list["outsidebelly"]) - if(!istype(OB)) - return - if(!(tgt in OB)) //Aren't here anymore, need to update menu. - return TRUE - var/intent = "Examine" - - if(istype(tgt,/mob/living)) - var/mob/living/M = tgt - intent = alert("What do you want to do to them?","Query","Examine","Help Out","Devour") - switch(intent) - if("Examine") //Examine a mob inside another mob - M.examine(user) - - if("Help Out") //Help the inside-mob out - if(user.stat || user.vore_flags & ABSORBED || M.vore_flags & ABSORBED) - to_chat(user,"You can't do that in your state!") - return TRUE - - to_chat(user,"You begin to push [M] to freedom!") - to_chat(M,"[usr] begins to push you to freedom!") - to_chat(M.loc,"Someone is trying to escape from inside you!") - sleep(50) - if(prob(33)) - OB.release_specific_contents(M) - to_chat(usr,"You manage to help [M] to safety!") - to_chat(M,"[user] pushes you free!") - to_chat(OB.owner,"[M] forces free of the confines of your body!") - else - to_chat(user,"[M] slips back down inside despite your efforts.") - to_chat(M," Even with [user]'s help, you slip back inside again.") - to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong.") - - if("Devour") //Eat the inside mob - if(user.vore_flags & ABSORBED || user.stat) - to_chat(user,"You can't do that in your state!") - return TRUE - - if(!user.vore_selected) - to_chat(user,"Pick a belly on yourself first!") - return TRUE - - var/obj/belly/TB = user.vore_selected - to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") - to_chat(M,"[user] begins to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") - to_chat(OB.owner,"Someone inside you is eating someone else!") - - sleep(TB.nonhuman_prey_swallow_time) //Can't do after, in a stomach, weird things abound. - if((user in OB) && (M in OB)) //Make sure they're still here. - to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") - to_chat(M,"[user] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") - to_chat(OB.owner,"Someone inside you has eaten someone else!") - TB.nom_mob(M) - - else if(istype(tgt,/obj/item)) - var/obj/item/T = tgt - if(!(tgt in OB)) - //Doesn't exist anymore, update. - return TRUE - intent = alert("What do you want to do to that?","Query","Examine","Use Hand") - switch(intent) - if("Examine") - T.examine(user) - - if("Use Hand") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return TRUE - - user.ClickOn(T) - sleep(5) //Seems to exit too fast for the panel to update - - if(href_list["insidepick"]) - var/intent - - //Handle the [All] choice. Ugh inelegant. Someone make this pretty. - if(href_list["pickall"]) - intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all") - switch(intent) - if("Cancel") - return FALSE - - if("Eject all") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - selected.release_all_contents() - - if("Move all") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in user.vore_organs - if(!choice) - return FALSE - - for(var/atom/movable/tgt in selected) - to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]!") - selected.transfer_contents(tgt, choice, 1) - - var/atom/movable/tgt = locate(href_list["insidepick"]) - if(!(tgt in selected)) //Old menu, needs updating because they aren't really there. - return TRUE //Forces update - intent = "Examine" - intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move") - switch(intent) - if("Examine") - tgt.examine(user) - - if("Eject") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - selected.release_specific_contents(tgt) - - if("Move") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - var/obj/belly/choice = input("Move [tgt] where?","Select Belly") as null|anything in user.vore_organs - if(!choice || !(tgt in selected)) - return FALSE - - to_chat(tgt,"You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(choice.name)]!") - selected.transfer_contents(tgt, choice) - - if(href_list["newbelly"]) - if(user.vore_organs.len >= BELLIES_MAX) - return FALSE - - var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null) - - var/failure_msg - if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) - failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." - // else if(whatever) //Next test here. - else - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(lowertext(new_name) == lowertext(B.name)) - failure_msg = "No duplicate belly names, please." - break - - if(failure_msg) //Something went wrong. - alert(user,failure_msg,"Error!") - return FALSE - - var/obj/belly/NB = new(user) - NB.name = new_name - selected = NB - - if(href_list["bellypick"]) - selected = locate(href_list["bellypick"]) - user.vore_selected = selected - - //// - //Please keep these the same order they are on the panel UI for ease of coding - //// - if(href_list["b_name"]) - var/new_name = html_encode(input(usr,"Belly's new name:","New Name") as text|null) - - var/failure_msg - if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) - failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." - // else if(whatever) //Next test here. - else - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(lowertext(new_name) == lowertext(B.name)) - failure_msg = "No duplicate belly names, please." - break - - if(failure_msg) //Something went wrong. - alert(user,failure_msg,"Error!") - return FALSE - - selected.name = new_name - - if(href_list["b_wetness"]) - selected.is_wet = !selected.is_wet - - if(href_list["b_wetloop"]) - selected.wet_loop = !selected.wet_loop - - if(href_list["b_mode"]) - var/list/menu_list = selected.digest_modes - - var/new_mode = input("Choose Mode (currently [selected.digest_mode])") as null|anything in menu_list - if(!new_mode) - return FALSE - selected.digest_mode = new_mode - - if(href_list["b_desc"]) - var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",selected.desc) as message|null) - - if(new_desc) - new_desc = readd_quotes(new_desc) - if(length(new_desc) > BELLIES_DESC_MAX) - alert("Entered belly desc too long. [BELLIES_DESC_MAX] character limit.","Error") - return FALSE - selected.desc = new_desc - else //Returned null - return FALSE - - if(href_list["b_msgs"]) - var/list/messages = list( - "Digest Message (to prey)", - "Digest Message (to you)", - "Struggle Message (outside)", - "Struggle Message (inside)", - "Examine Message (when full)", - "Reset All To Default" + . = icon2base64(getFlatIcon(target,defdir=SOUTH,no_anim=TRUE)) + nom_icons[key] = . + +/datum/vore_look/ui_data(mob/user) + var/list/data = list() + + if(!host) + return data + + data["unsaved_changes"] = unsaved_changes + data["show_pictures"] = show_pictures + + var/atom/hostloc = host.loc + var/list/inside = list() + if(isbelly(hostloc)) + var/obj/belly/inside_belly = hostloc + var/mob/living/pred = inside_belly.owner + + inside = list( + "absorbed" = host.vore_flags & ABSORBED, + "belly_name" = inside_belly.name, + "belly_mode" = inside_belly.digest_mode, + "desc" = inside_belly.desc || "No description.", + "pred" = pred, + "ref" = "\ref[inside_belly]", ) - alert(user,"Setting abusive or deceptive messages will result in a ban. Consider this your warning. Max 150 characters per message, max 10 messages per topic.","Really, don't.") - var/choice = input(user,"Select a type to modify. Messages from each topic are pulled at random when needed.","Pick Type") as null|anything in messages - var/help = " Press enter twice to separate messages. '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name." + var/list/inside_contents = list() + for(var/atom/movable/O in inside_belly) + if(O == host) + continue - switch(choice) - if("Digest Message (to prey)") - var/new_message = input(user,"These are sent to prey when they expire. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Digest Message (to prey)",selected.get_messages("dmp")) as message - if(new_message) - selected.set_messages(new_message,"dmp") + var/list/info = list( + "name" = "[O]", + "absorbed" = FALSE, + "stat" = 0, + "ref" = "\ref[O]", + "outside" = FALSE, + ) + if(show_pictures) + info["icon"] = cached_nom_icon(O) + if(isliving(O)) + var/mob/living/M = O + info["stat"] = M.stat + if(M.vore_flags & ABSORBED) + info["absorbed"] = TRUE + inside_contents.Add(list(info)) + inside["contents"] = inside_contents + data["inside"] = inside - if("Digest Message (to you)") - var/new_message = input(user,"These are sent to you when prey expires in you. Write them in 2nd person ('you feel X'). Avoid using %pred in this type."+help,"Digest Message (to you)",selected.get_messages("dmo")) as message - if(new_message) - selected.set_messages(new_message,"dmo") + var/list/our_bellies = list() + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + our_bellies.Add(list(list( + "selected" = (B == host.vore_selected), + "name" = B.name, + "ref" = "\ref[B]", + "digest_mode" = B.digest_mode, + "contents" = LAZYLEN(B.contents), + ))) + data["our_bellies"] = our_bellies - if("Struggle Message (outside)") - var/new_message = input(user,"These are sent to those nearby when prey struggles. Write them in 3rd person ('X's Y bulges')."+help,"Struggle Message (outside)",selected.get_messages("smo")) as message - if(new_message) - selected.set_messages(new_message,"smo") + var/list/selected_list = null + if(host.vore_selected) + var/obj/belly/selected = host.vore_selected + selected_list = list( + "belly_name" = selected.name, + "is_wet" = selected.is_wet, + "wet_loop" = selected.wet_loop, + "mode" = selected.digest_mode, + "verb" = selected.vore_verb, + "desc" = selected.desc, + "sound" = selected.vore_sound, + "release_sound" = selected.release_sound, + "can_taste" = selected.can_taste, + "bulge_size" = selected.bulge_size, + ) - if("Struggle Message (inside)") - var/new_message = input(user,"These are sent to prey when they struggle. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Struggle Message (inside)",selected.get_messages("smi")) as message - if(new_message) - selected.set_messages(new_message,"smi") + selected_list["escapable"] = selected.escapable + selected_list["interacts"] = list() + if(selected.escapable) + selected_list["interacts"]["escapechance"] = selected.escapechance + selected_list["interacts"]["escapetime"] = selected.escapetime + selected_list["interacts"]["transferchance"] = selected.transferchance + selected_list["interacts"]["transferlocation"] = selected.transferlocation + selected_list["interacts"]["absorbchance"] = selected.absorbchance + selected_list["interacts"]["digestchance"] = selected.digestchance - if("Examine Message (when full)") - var/new_message = input(user,"These are sent to people who examine you when this belly has contents. Write them in 3rd person ('Their %belly is bulging')."+help,"Examine Message (when full)",selected.get_messages("em")) as message - if(new_message) - selected.set_messages(new_message,"em") + var/list/selected_contents = list() + for(var/O in selected) + var/list/info = list( + "name" = "[O]", + "absorbed" = FALSE, + "stat" = 0, + "ref" = "\ref[O]", + "outside" = TRUE, + ) + if(show_pictures) + info["icon"] = cached_nom_icon(O) + if(isliving(O)) + var/mob/living/M = O + info["stat"] = M.stat + if(M.vore_flags & ABSORBED) + info["absorbed"] = TRUE + selected_contents.Add(list(info)) + selected_list["contents"] = selected_contents - if("Reset All To Default") - var/confirm = alert(user,"This will delete any custom messages. Are you sure?","Confirmation","DELETE","Cancel") - if(confirm == "DELETE") - selected.digest_messages_prey = initial(selected.digest_messages_prey) - selected.digest_messages_owner = initial(selected.digest_messages_owner) - selected.struggle_messages_outside = initial(selected.struggle_messages_outside) - selected.struggle_messages_inside = initial(selected.struggle_messages_inside) + data["selected"] = selected_list + data["prefs"] = list( + "digestable" = CHECK_BITFIELD(host.vore_flags, DIGESTABLE), + "devourable" = CHECK_BITFIELD(host.vore_flags, DEVOURABLE), + "feeding" = CHECK_BITFIELD(host.vore_flags, FEEDING), + "absorbable" = CHECK_BITFIELD(host.vore_flags, ABSORBABLE), + "allowmobvore" = CHECK_BITFIELD(host.vore_flags, MOBVORE), + "allow_spontaneous_tf" = CHECK_BITFIELD(host.vore_flags, SPNTVORE), + "vore_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES), + "digestion_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES), + "lickable" = CHECK_BITFIELD(host.vore_flags, LICKABLE), + "smellable" = CHECK_BITFIELD(host.vore_flags, SMELLABLE), + ) - if(href_list["b_verb"]) - var/new_verb = html_encode(input(usr,"New verb when eating (infinitive tense, e.g. nom or swallow):","New Verb") as text|null) + return data - if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN) - alert("Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error") - return FALSE +/datum/vore_look/ui_act(action, params) + if(..()) + return TRUE - selected.vore_verb = new_verb + switch(action) + if("show_pictures") + show_pictures = !show_pictures + return TRUE + if("int_help") + tgui_alert(usr, "These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ + and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \ + These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ + will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ + only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") + return TRUE - if(href_list["b_release"]) - var/choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in GLOB.pred_release_sounds + // Host is inside someone else, and is trying to interact with something else inside that person. + if("pick_from_inside") + return pick_from_inside(usr, params) - if(!choice) - return + // Host is trying to interact with something in host's belly. + if("pick_from_outside") + return pick_from_outside(usr, params) - selected.release_sound = choice - - if(href_list["b_releasesoundtest"]) - var/sound/releasetest = GLOB.prey_release_sounds[selected.release_sound] - if(releasetest) - SEND_SOUND(user, releasetest) - - if(href_list["b_sound"]) - var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in GLOB.pred_vore_sounds - - if(!choice) - return - - selected.vore_sound = choice - - if(href_list["b_soundtest"]) - var/sound/voretest = GLOB.prey_vore_sounds[selected.vore_sound] - if(voretest) - SEND_SOUND(user, voretest) - - if(href_list["b_tastes"]) - selected.can_taste = !selected.can_taste - - if(href_list["b_bulge_size"]) - var/new_bulge = input(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.") as num|null - if(new_bulge == null) - return - if(new_bulge == 0) //Disable. - selected.bulge_size = 0 - to_chat(user,"Your stomach will not be seen on examine.") - else if (!ISINRANGE(new_bulge,25,200)) - selected.bulge_size = 0.25 //Set it to the default. - to_chat(user,"Invalid size.") - else if(new_bulge) - selected.bulge_size = (new_bulge/100) - - if(href_list["b_escapable"]) - if(selected.escapable == FALSE) //Possibly escapable and special interactions. - selected.escapable = TRUE - to_chat(usr,"Prey now have special interactions with your [lowertext(selected.name)] depending on your settings.") - else if(selected.escapable == TRUE) //Never escapable. - selected.escapable = FALSE - to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(selected.name)].") - show_interacts = FALSE //Force the hiding of the panel - else - alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 - selected.escapable = FALSE - show_interacts = FALSE //Force the hiding of the panel - - if(href_list["b_escapechance"]) - var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null - if(!isnull(escape_chance_input)) //These have to be 'null' because both cancel and 0 are valid, separate options - selected.escapechance = sanitize_integer(escape_chance_input, 0, 100, initial(selected.escapechance)) - - if(href_list["b_escapetime"]) - var/escape_time_input = input(user, "Set number of seconds for prey to escape on resist (1-60)", "Prey Escape Time") as num|null - if(!isnull(escape_time_input)) - selected.escapetime = sanitize_integer(escape_time_input*10, 10, 600, initial(selected.escapetime)) - - if(href_list["b_transferchance"]) - var/transfer_chance_input = input(user, "Set belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null - if(!isnull(transfer_chance_input)) - selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(selected.transferchance)) - - if(href_list["b_transferlocation"]) - var/obj/belly/choice = input("Where do you want your [lowertext(selected.name)] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected) - - if(!choice) //They cancelled, no changes - return FALSE - else if(choice == "None - Remove") - selected.transferlocation = null - else - selected.transferlocation = choice.name - - if(href_list["b_absorbchance"]) - var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null - if(!isnull(absorb_chance_input)) - selected.absorbchance = sanitize_integer(absorb_chance_input, 0, 100, initial(selected.absorbchance)) - - if(href_list["b_digestchance"]) - var/digest_chance_input = input(user, "Set belly digest mode chance on resist (as %)", "Prey Digest Chance") as num|null - if(!isnull(digest_chance_input)) - selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(selected.digestchance)) - - if(href_list["b_del"]) - var/alert = alert("Are you sure you want to delete your [lowertext(selected.name)]?","Confirmation","Delete","Cancel") - if(!alert == "Delete") - return FALSE - - var/failure_msg = "" - - var/dest_for //Check to see if it's the destination of another vore organ. - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(B.transferlocation == selected) - dest_for = B.name - failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. " - break - - if(selected.contents.len) - failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same. - if(selected.immutable) - failure_msg += "This belly is marked as undeletable. " - if(user.vore_organs.len == 1) - failure_msg += "You must have at least one belly. " - - if(failure_msg) - alert(user,failure_msg,"Error!") - return FALSE - - qdel(selected) - selected = user.vore_organs[1] - user.vore_selected = user.vore_organs[1] - - if(href_list["saveprefs"]) - if(!(user.client?.prefs)) - return FALSE - if(!user.copy_to_prefs_vr() || !user.client.prefs.save_character()) - to_chat(user, "Belly Preferences not saved!") - log_admin("Could not save vore prefs on USER: [user].") - else - to_chat(user, "Belly Preferences were saved!") - - if(href_list["applyprefs"]) - var/alert = alert("Are you sure you want to reload the current slot preferences? This will remove your current vore organs and eject their contents.","Confirmation","Reload","Cancel") - if(!alert == "Reload") - return FALSE - if(!user.copy_from_prefs_vr()) - alert("ERROR: Vore preferences failed to apply!","Error") - else - to_chat(user,"Vore preferences applied from active slot!") - - if(href_list["setflavor"]) - var/new_flavor = html_encode(input(usr,"What your character tastes like (40ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",user.vore_taste) as text|null) - if(!new_flavor) - return FALSE - - new_flavor = readd_quotes(new_flavor) - if(length(new_flavor) > MAX_TASTE_LEN) - alert("Entered flavor/taste text too long. [MAX_TASTE_LEN] character limit.","Error!") - return FALSE - user.vore_taste = new_flavor - - if(href_list["toggledg"]) - var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable to all mobs. Digesting you is currently: [(user.vore_flags & DIGESTABLE) ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + if("newbelly") + if(host.vore_organs.len >= BELLIES_MAX) return FALSE - if("Allow Digestion") - user.vore_flags |= DIGESTABLE - user.client.prefs.vore_flags |= DIGESTABLE - if("Prevent Digestion") - user.vore_flags &= ~DIGESTABLE - user.client.prefs.vore_flags &= ~DIGESTABLE - if(href_list["toggledvor"]) - var/choice = alert(user, "This button is for those who don't like vore at all. Devouring you is currently: [(user.vore_flags & DEVOURABLE) ? "Allowed" : "Prevented"]", "", "Allow Devourment", "Cancel", "Prevent Devourment") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null) + + var/failure_msg + if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) + failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." + // else if(whatever) //Next test here. + else + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + if(lowertext(new_name) == lowertext(B.name)) + failure_msg = "No duplicate belly names, please." + break + + if(failure_msg) //Something went wrong. + tgui_alert_async(usr, failure_msg, "Error!") + return TRUE + + var/obj/belly/NB = new(host) + NB.name = new_name + host.vore_selected = NB + unsaved_changes = TRUE + return TRUE + + if("bellypick") + host.vore_selected = locate(params["bellypick"]) + return TRUE + if("move_belly") + var/dir = text2num(params["dir"]) + if(LAZYLEN(host.vore_organs) <= 1) + to_chat(usr, "You can't sort bellies with only one belly to sort...") + return TRUE + + var/current_index = host.vore_organs.Find(host.vore_selected) + if(current_index) + var/new_index = clamp(current_index + dir, 1, LAZYLEN(host.vore_organs)) + host.vore_organs.Swap(current_index, new_index) + unsaved_changes = TRUE + return TRUE + + if("set_attribute") + return set_attr(usr, params) + + if("saveprefs") + if(!host.copy_to_prefs_vr()) + tgui_alert_async(usr, "Belly Preferences not saved!", "Error") + log_admin("Could not save vore prefs on USER: [usr].") + else + to_chat(usr, "Belly Preferences were saved!") + unsaved_changes = FALSE + return TRUE + if("reloadprefs") + var/alert = tgui_alert(usr, "Are you sure you want to reload character slot preferences? This will remove your current vore organs and eject their contents.","Confirmation",list("Reload","Cancel")) + if(alert != "Reload") return FALSE - if("Allow Devourment") - user.vore_flags |= DEVOURABLE - user.client.prefs.vore_flags |= DEVOURABLE - if("Prevent Devourment") - user.vore_flags &= ~DEVOURABLE - user.client.prefs.vore_flags &= ~DEVOURABLE - - if(href_list["toggledfeed"]) - var/choice = alert(user, "This button is to toggle your ability to be fed to others. Feeding predators is currently: [(user.vore_flags & FEEDING) ? "Allowed" : "Prevented"]", "", "Allow Feeding", "Cancel", "Prevent Feeding") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + if(!host.copy_from_prefs_vr()) + tgui_alert_async(usr, "ERROR: Virgo-specific preferences failed to apply!","Error") + else + to_chat(usr, "Vore preferences applied from active slot!") + unsaved_changes = FALSE + return TRUE + if("setflavor") + var/new_flavor = html_encode(input(usr,"What your character tastes like (400ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",host.vore_taste) as text|null) + if(!new_flavor) return FALSE - if("Allow Feeding") - user.vore_flags |= FEEDING - user.client.prefs.vore_flags |= FEEDING - if("Prevent Feeding") - user.vore_flags &= ~FEEDING - user.client.prefs.vore_flags &= ~FEEDING - if(href_list["toggledlickable"]) - var/choice = alert(user, "This button is to toggle your ability to be licked. Being licked is currently: [(user.client.prefs.vore_flags & LICKABLE) ? "Allowed" : "Prevented"]", "", "Allow Licking", "Cancel", "Prevent Licking") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + new_flavor = readd_quotes(new_flavor) + if(length(new_flavor) > FLAVOR_MAX) + tgui_alert_async(usr, "Entered flavor/taste text too long. [FLAVOR_MAX] character limit.","Error!") + return FALSE + host.vore_taste = new_flavor + unsaved_changes = TRUE + return TRUE + if("setsmell") + var/new_smell = html_encode(input(usr,"What your character smells like (400ch limit). This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream':","Character Smell",host.vore_smell) as text|null) + if(!new_smell) return FALSE - if("Allow Licking") - user.client.prefs.vore_flags |= LICKABLE - if("Prevent Licking") - user.client.prefs.vore_flags &= ~LICKABLE - //Refresh when interacted with, returning 1 makes vore_look.Topic update - return TRUE + new_smell = readd_quotes(new_smell) + if(length(new_smell) > FLAVOR_MAX) + tgui_alert_async(usr, "Entered perfume/smell text too long. [FLAVOR_MAX] character limit.","Error!") + return FALSE + host.vore_smell = new_smell + unsaved_changes = TRUE + return TRUE + if("toggle_allow_spontaneous_tf") + TOGGLE_BITFIELD(host.vore_flags, SPNTVORE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, SPNTVORE) + unsaved_changes = TRUE + return TRUE + if("toggle_digest") + TOGGLE_BITFIELD(host.vore_flags, DIGESTABLE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DIGESTABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_devour") + TOGGLE_BITFIELD(host.vore_flags, DEVOURABLE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DEVOURABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_feed") + TOGGLE_BITFIELD(host.vore_flags, FEEDING) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, FEEDING) + unsaved_changes = TRUE + return TRUE + if("toggle_absorbable") + TOGGLE_BITFIELD(host.vore_flags, ABSORBABLE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, ABSORBABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_mobvore") + TOGGLE_BITFIELD(host.vore_flags, MOBVORE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, MOBVORE) + unsaved_changes = TRUE + return TRUE + if("toggle_vore_sounds") + TOGGLE_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES) + unsaved_changes = TRUE + return TRUE + if("toggle_digestion_sounds") + TOGGLE_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES) + unsaved_changes = TRUE + return TRUE + if("toggle_lickable") + TOGGLE_BITFIELD(host.vore_flags, LICKABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_smellable") + TOGGLE_BITFIELD(host.vore_flags, SMELLABLE) + unsaved_changes = TRUE + return TRUE + +/datum/vore_look/proc/pick_from_inside(mob/user, params) + var/atom/movable/target = locate(params["pick"]) + var/obj/belly/OB = locate(params["belly"]) + + if(!(target in OB)) + return TRUE // Aren't here anymore, need to update menu + + var/intent = "Examine" + if(isliving(target)) + intent = tgui_alert(usr, "What do you want to do to them?","Query",list("Examine","Help Out","Devour")) + + else if(istype(target, /obj/item)) + intent = tgui_alert(usr, "What do you want to do to that?","Query",list("Examine","Use Hand")) + + switch(intent) + if("Examine") //Examine a mob inside another mob + var/list/results = target.examine(host) + if(!results || !results.len) + results = list("You were unable to examine that. Tell a developer!") + to_chat(user, jointext(results, "
")) + return TRUE + + if("Use Hand") + if(host.stat) + to_chat(user, "You can't do that in your state!") + return TRUE + + host.ClickOn(target) + return TRUE + + if(!isliving(target)) + return + + var/mob/living/M = target + switch(intent) + if("Help Out") //Help the inside-mob out + if(host.stat || host.vore_flags & ABSORBED || M.vore_flags & ABSORBED) + to_chat(user, "You can't do that in your state!") + return TRUE + + to_chat(user,"You begin to push [M] to freedom!") + to_chat(M,"[host] begins to push you to freedom!") + to_chat(M.loc,"Someone is trying to escape from inside you!") + sleep(50) + if(prob(33)) + OB.release_specific_contents(M) + to_chat(user,"You manage to help [M] to safety!") + to_chat(M,"[host] pushes you free!") + to_chat(OB.owner,"[M] forces free of the confines of your body!") + else + to_chat(user,"[M] slips back down inside despite your efforts.") + to_chat(M," Even with [host]'s help, you slip back inside again.") + to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong.") + return TRUE + + if("Devour") //Eat the inside mob + if(host.stat || host.vore_flags & ABSORBED) + to_chat(user,"You can't do that in your state!") + return TRUE + + if(!host.vore_selected) + to_chat(user,"Pick a belly on yourself first!") + return TRUE + + var/obj/belly/TB = host.vore_selected + to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") + to_chat(M,"[host] begins to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") + to_chat(OB.owner,"Someone inside you is eating someone else!") + + sleep(TB.nonhuman_prey_swallow_time) //Can't do after, in a stomach, weird things abound. + if((host in OB) && (M in OB)) //Make sure they're still here. + to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") + to_chat(M,"[host] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") + to_chat(OB.owner,"Someone inside you has eaten someone else!") + TB.nom_mob(M) + +/datum/vore_look/proc/pick_from_outside(mob/user, params) + var/intent + + //Handle the [All] choice. Ugh inelegant. Someone make this pretty. + if(params["pickall"]) + intent = tgui_alert(usr, "Eject all, Move all?","Query",list("Eject all","Cancel","Move all")) + switch(intent) + if("Cancel") + return TRUE + + if("Eject all") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + host.vore_selected.release_all_contents() + return TRUE + + if("Move all") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + var/obj/belly/choice = tgui_input_list(usr, "Move all where?","Select Belly", host.vore_organs) + if(!choice) + return FALSE + + for(var/atom/movable/target in host.vore_selected) + to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected)] to their [lowertext(choice.name)]!") + host.vore_selected.transfer_contents(target, choice, 1) + return TRUE + return + + var/atom/movable/target = locate(params["pick"]) + if(!(target in host.vore_selected)) + return TRUE // Not in our X anymore, update UI + var/list/available_options = list("Examine", "Eject", "Move") + if(ishuman(target)) + available_options += "Transform" + intent = tgui_alert(user, "What would you like to do with [target]?", "Vore Pick", available_options) + switch(intent) + if("Examine") + var/list/results = target.examine(host) + if(!results || !results.len) + results = list("You were unable to examine that. Tell a developer!") + to_chat(user, jointext(results, "
")) + return TRUE + + if("Eject") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + host.vore_selected.release_specific_contents(target) + return TRUE + + if("Move") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + var/obj/belly/choice = tgui_input_list(usr, "Move [target] where?","Select Belly", host.vore_organs) + if(!choice || !(target in host.vore_selected)) + return TRUE + + to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected.name)] to their [lowertext(choice.name)]!") + host.vore_selected.transfer_contents(target, choice) + return TRUE + + if("Transform") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + var/mob/living/carbon/human/H = target + if(!istype(H)) + return + + return TRUE + +/datum/vore_look/proc/set_attr(mob/user, params) + if(!host.vore_selected) + tgui_alert_async(usr, "No belly selected to modify.") + return FALSE + + var/attr = params["attribute"] + switch(attr) + if("b_name") + var/new_name = html_encode(input(usr,"Belly's new name:","New Name") as text|null) + + var/failure_msg + if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) + failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." + // else if(whatever) //Next test here. + else + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + if(lowertext(new_name) == lowertext(B.name)) + failure_msg = "No duplicate belly names, please." + break + + if(failure_msg) //Something went wrong. + tgui_alert_async(user,failure_msg,"Error!") + return FALSE + + host.vore_selected.name = new_name + . = TRUE + if("b_wetness") + host.vore_selected.is_wet = !host.vore_selected.is_wet + . = TRUE + if("b_wetloop") + host.vore_selected.wet_loop = !host.vore_selected.wet_loop + . = TRUE + if("b_mode") + var/list/menu_list = host.vore_selected.digest_modes.Copy() + var/new_mode = tgui_input_list(usr, "Choose Mode (currently [host.vore_selected.digest_mode])", "Mode Choice", menu_list) + if(!new_mode) + return FALSE + + host.vore_selected.digest_mode = new_mode + . = TRUE + if("b_desc") + var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null) + + if(new_desc) + new_desc = readd_quotes(new_desc) + if(length(new_desc) > BELLIES_DESC_MAX) + tgui_alert_async(usr, "Entered belly desc too long. [BELLIES_DESC_MAX] character limit.","Error") + return FALSE + host.vore_selected.desc = new_desc + . = TRUE + if("b_msgs") + tgui_alert(user,"Setting abusive or deceptive messages will result in a ban. Consider this your warning. Max 150 characters per message (500 for idle messages), max 10 messages per topic.","Really, don't.") // Should remain tgui_alert() (blocking) + var/help = " Press enter twice to separate messages. '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name. '%count' will be replaced with the number of anything in your belly (will not work for absorbed examine). '%countprey' will be replaced with the number of living prey in your belly (or absorbed prey for absorbed examine)." + switch(params["msgtype"]) + if("dmp") + var/new_message = input(user,"These are sent to prey when they expire. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Digest Message (to prey)",host.vore_selected.get_messages("dmp")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"dmp") + + if("dmo") + var/new_message = input(user,"These are sent to you when prey expires in you. Write them in 2nd person ('you feel X'). Avoid using %pred in this type."+help,"Digest Message (to you)",host.vore_selected.get_messages("dmo")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"dmo") + + if("smo") + var/new_message = input(user,"These are sent to those nearby when prey struggles. Write them in 3rd person ('X's Y bulges')."+help,"Struggle Message (outside)",host.vore_selected.get_messages("smo")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"smo") + + if("smi") + var/new_message = input(user,"These are sent to prey when they struggle. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Struggle Message (inside)",host.vore_selected.get_messages("smi")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"smi") + + if("em") + var/new_message = input(user,"These are sent to people who examine you when this belly has contents. Write them in 3rd person ('Their %belly is bulging')."+help,"Examine Message (when full)",host.vore_selected.get_messages("em")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"em") + + if("reset") + var/confirm = tgui_alert(user,"This will delete any custom messages. Are you sure?","Confirmation",list("Cancel","DELETE")) + if(confirm == "DELETE") + host.vore_selected.digest_messages_prey = initial(host.vore_selected.digest_messages_prey) + host.vore_selected.digest_messages_owner = initial(host.vore_selected.digest_messages_owner) + host.vore_selected.struggle_messages_outside = initial(host.vore_selected.struggle_messages_outside) + host.vore_selected.struggle_messages_inside = initial(host.vore_selected.struggle_messages_inside) + host.vore_selected.examine_messages = initial(host.vore_selected.examine_messages) + host.vore_selected.emote_lists = initial(host.vore_selected.emote_lists) + . = TRUE + if("b_verb") + var/new_verb = html_encode(input(usr,"New verb when eating (infinitive tense, e.g. nom or swallow):","New Verb") as text|null) + + if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN) + tgui_alert_async(usr, "Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error") + return FALSE + + host.vore_selected.vore_verb = new_verb + . = TRUE + if("b_release") + var/choice = tgui_input_list(user,"Currently set to [host.vore_selected.release_sound]","Select Sound", GLOB.pred_release_sounds) + + if(!choice) + return FALSE + + host.vore_selected.release_sound = choice + . = TRUE + if("b_releasesoundtest") + var/sound/releasetest = GLOB.pred_release_sounds[host.vore_selected.release_sound] + + if(releasetest) + SEND_SOUND(user, releasetest) + . = FALSE //Testing sound, no changes. + if("b_sound") + var/choice = tgui_input_list(user,"Currently set to [host.vore_selected.vore_sound]","Select Sound", GLOB.prey_vore_sounds) + + if(!choice) + return FALSE + + host.vore_selected.vore_sound = choice + . = TRUE + if("b_soundtest") + var/sound/voretest = GLOB.prey_vore_sounds[host.vore_selected.vore_sound] + if(voretest) + SEND_SOUND(user, voretest) + . = FALSE //Testing sound, no changes. + if("b_tastes") + host.vore_selected.can_taste = !host.vore_selected.can_taste + . = TRUE + if("b_bulge_size") + var/new_bulge = input(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.") as num|null + if(new_bulge == null) + return FALSE + if(new_bulge == 0) //Disable. + host.vore_selected.bulge_size = 0 + to_chat(user,"Your stomach will not be seen on examine.") + else if (!ISINRANGE(new_bulge,25,200)) + host.vore_selected.bulge_size = 0.25 //Set it to the default. + to_chat(user,"Invalid size.") + else if(new_bulge) + host.vore_selected.bulge_size = (new_bulge/100) + . = TRUE + if("b_escapable") + if(host.vore_selected.escapable == 0) //Possibly escapable and special interactions. + host.vore_selected.escapable = 1 + to_chat(usr,"Prey now have special interactions with your [lowertext(host.vore_selected.name)] depending on your settings.") + else if(host.vore_selected.escapable == 1) //Never escapable. + host.vore_selected.escapable = 0 + to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(host.vore_selected.name)].") + else + tgui_alert_async(usr, "Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 + host.vore_selected.escapable = 0 + . = TRUE + if("b_escapechance") + var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null + if(!isnull(escape_chance_input)) //These have to be 'null' because both cancel and 0 are valid, separate options + host.vore_selected.escapechance = sanitize_integer(escape_chance_input, 0, 100, initial(host.vore_selected.escapechance)) + . = TRUE + if("b_escapetime") + var/escape_time_input = input(user, "Set number of seconds for prey to escape on resist (1-60)", "Prey Escape Time") as num|null + if(!isnull(escape_time_input)) + host.vore_selected.escapetime = sanitize_integer(escape_time_input*10, 10, 600, initial(host.vore_selected.escapetime)) + . = TRUE + if("b_transferchance") + var/transfer_chance_input = input(user, "Set belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null + if(!isnull(transfer_chance_input)) + host.vore_selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(host.vore_selected.transferchance)) + . = TRUE + if("b_transferlocation") + var/obj/belly/choice = tgui_input_list(usr, "Where do you want your [lowertext(host.vore_selected.name)] to lead if prey resists?","Select Belly", (host.vore_organs + "None - Remove" - host.vore_selected)) + + if(!choice) //They cancelled, no changes + return FALSE + else if(choice == "None - Remove") + host.vore_selected.transferlocation = null + else + host.vore_selected.transferlocation = choice.name + . = TRUE + if("b_absorbchance") + var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null + if(!isnull(absorb_chance_input)) + host.vore_selected.absorbchance = sanitize_integer(absorb_chance_input, 0, 100, initial(host.vore_selected.absorbchance)) + . = TRUE + if("b_digestchance") + var/digest_chance_input = input(user, "Set belly digest mode chance on resist (as %)", "Prey Digest Chance") as num|null + if(!isnull(digest_chance_input)) + host.vore_selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(host.vore_selected.digestchance)) + . = TRUE + if("b_del") + var/alert = tgui_alert(usr, "Are you sure you want to delete your [lowertext(host.vore_selected.name)]?","Confirmation",list("Cancel","Delete")) + if(!(alert == "Delete")) + return FALSE + + var/failure_msg = "" + + var/dest_for //Check to see if it's the destination of another vore organ. + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + if(B.transferlocation == host.vore_selected) + dest_for = B.name + failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. " + break + + if(host.vore_selected.contents.len) + failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same. + if(host.vore_selected.immutable) + failure_msg += "This belly is marked as undeletable. " + if(host.vore_organs.len == 1) + failure_msg += "You must have at least one belly. " + + if(failure_msg) + tgui_alert_async(user,failure_msg,"Error!") + return FALSE + + qdel(host.vore_selected) + host.vore_selected = host.vore_organs[1] + . = TRUE + + if(.) + unsaved_changes = TRUE diff --git a/tgstation.dme b/tgstation.dme index a9b83f27b6..5c2dbd3748 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3593,6 +3593,7 @@ #include "code\modules\tgui\states\observer.dm" #include "code\modules\tgui\states\physical.dm" #include "code\modules\tgui\states\self.dm" +#include "code\modules\tgui\states\vorepanel.dm" #include "code\modules\tgui\states\zlevel.dm" #include "code\modules\tgui_panel\audio.dm" #include "code\modules\tgui_panel\external.dm" diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js new file mode 100644 index 0000000000..1ab293a9ab --- /dev/null +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -0,0 +1,604 @@ +import { Fragment } from 'inferno'; +import { useBackend, useLocalState } from "../backend"; +import { Box, Button, Flex, Collapsible, Icon, LabeledList, NoticeBox, Section, Tabs } from "../components"; +import { Window } from "../layouts"; + +const stats = [ + null, + 'average', + 'bad', +]; + +const digestModeToColor = { + "Hold": null, + "Dragon": "blue", + "Digest": "red", + "Absorb": "purple", + "Unabsorb": "purple", +}; + +const digestModeToPreyMode = { + "Hold": "being held.", + "Digest": "being digested.", + "Absorb": "being absorbed.", + "Unabsorb": "being unabsorbed.", + "Dragon": "being digested by a powerful creature.", +}; + +/** + * There are three main sections to this UI. + * - The Inside Panel, where all relevant data for interacting with a belly you're in is located. + * - The Belly Selection Panel, where you can select what belly people will go into and customize the active one. + * - User Preferences, where you can adjust all of your vore preferences on the fly. + */ +export const VorePanel = (props, context) => { + const { act, data } = useBackend(context); + return ( + + + {data.unsaved_changes && ( + + + + Warning: Unsaved Changes! + + + + ) || null} + {show_pictures && ( + + {contents.map(thing => ( + + + {thing.name} + + ))} + + ) || ( + + {contents.map(thing => ( + + + + ))} + + )} + + ); +}; + +const VoreUserPreferences = (props, context) => { + const { act, data } = useBackend(context); + + const { + digestable, + devourable, + feeding, + absorbable, + allowmobvore, + allow_spontaneous_tf, + vore_sounds, + digestion_sounds, + lickable, + smellable, + } = data.prefs; + + const { + show_pictures, + } = data; + + return ( +
act("show_pictures")}> + Contents Preference: {show_pictures ? "Show Pictures" : "Show List"} + + }> + + +
+ + ); +}; From 3cf040bcdfcbf5a78169c86486bb1843622a2e26 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Wed, 14 Jul 2021 00:53:35 -0300 Subject: [PATCH 127/173] Update VorePanel.js --- tgui/packages/tgui/interfaces/VorePanel.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index 1ab293a9ab..4a99bada10 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -1,3 +1,4 @@ +/* eslint-disable max-len */ import { Fragment } from 'inferno'; import { useBackend, useLocalState } from "../backend"; import { Box, Button, Flex, Collapsible, Icon, LabeledList, NoticeBox, Section, Tabs } from "../components"; From 9d9b74276ec1d14867b55f1dd8ed5defe7a4b5db Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Tue, 13 Jul 2021 22:07:26 -0700 Subject: [PATCH 128/173] Fixes a major source of lag --- code/modules/tooltip/tooltip.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index fd45ea37d9..6cf3051715 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -138,7 +138,6 @@ Notes: . = ..() if(tooltips) if(!QDELETED(src)) - var/list/examine_list = examine(src) var/get_tooltip_data = get_tooltip_data() if(length(get_tooltip_data)) examine_list = get_tooltip_data From cf3c6009383123e8a2e67911e8a28f667fb60d38 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Tue, 13 Jul 2021 22:13:25 -0700 Subject: [PATCH 129/173] doy --- code/modules/tooltip/tooltip.dm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index 6cf3051715..f9efd7d9c1 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -138,11 +138,10 @@ Notes: . = ..() if(tooltips) if(!QDELETED(src)) - var/get_tooltip_data = get_tooltip_data() - if(length(get_tooltip_data)) - examine_list = get_tooltip_data - var/examine_data = examine_list.Join("
") - openToolTip(usr, src, params, title = name, content = examine_data) + var/list/tooltip_data = get_tooltip_data() + if(length(tooltip_data)) + var/examine_data = tooltip_data.Join("
") + openToolTip(usr, src, params, title = name, content = examine_data) /atom/movable/MouseExited(location, control, params) . = ..() From 65c40a51f297fe16d10807005e08f1f74426b4c9 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:17:44 +0100 Subject: [PATCH 130/173] trash ELEMENT --- code/_globalvars/lists/maintenance_loot.dm | 1 + code/datums/elements/trash.dm | 18 ++++++++++++++++++ code/game/objects/items/cigs_lighters.dm | 4 ++++ code/game/objects/items/trash.dm | 17 +++-------------- tgstation.dme | 1 + 5 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 code/datums/elements/trash.dm diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index b41b7356a8..daa4f5879d 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -112,6 +112,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/storage/box/marshmallow = 2, /obj/item/clothing/gloves/tackler/offbrand = 1, /obj/item/stack/sticky_tape = 1, + /obj/effect/spawner/lootdrop/grille_or_trash = 15, "" = 3 )) diff --git a/code/datums/elements/trash.dm b/code/datums/elements/trash.dm new file mode 100644 index 0000000000..e685f2ad22 --- /dev/null +++ b/code/datums/elements/trash.dm @@ -0,0 +1,18 @@ +/datum/element/trash + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + +/datum/element/trash/Attach(datum/target) + RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/UseFromHand) + +/datum/element/trash/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) + if((M == user || user.vore_flags & TRASH_FORCEFEED) && ishuman(user)) + var/mob/living/carbon/human/H = user + if(HAS_TRAIT(H, TRAIT_TRASHCAN)) + playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) + if(H.vore_selected) + H.visible_message("[H] [H.vore_selected.vore_verb]s the [source] into their [H.vore_selected]", + "You [H.vore_selected.vore_verb]s the [source] into your [H.vore_selected]") + source.forceMove(H.vore_selected) + else + H.visible_message("[H] consumes the [source].") + qdel(source) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 4280e7105f..16ebe20e51 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -387,6 +387,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM throwforce = 0 grind_results = list(/datum/reagent/carbon = 2) +/obj/item/cigbutt/Initialize() + . = ..() + AddElement(/datum/element/trash) + /obj/item/cigbutt/cigarbutt name = "cigar butt" desc = "A manky old cigar butt." diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index c0ff958612..1dc0378ea1 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -7,6 +7,9 @@ w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE +/obj/item/trash/Initialize() + AddElement(/datum/element/trash) + /obj/item/trash/raisins name = "\improper 4no raisins" icon_state= "4no_raisins" @@ -80,17 +83,3 @@ name = "boritos bag" icon_state = "boritos" grind_results = list(/datum/reagent/aluminium = 1) //from the mylar bag - -/obj/item/trash/attack(mob/M, mob/living/user) - if((M == user || user.vore_flags & TRASH_FORCEFEED) && ishuman(user)) - var/mob/living/carbon/human/H = user - if(HAS_TRAIT(H, TRAIT_TRASHCAN)) - playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) - if(H.vore_selected) - H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]", - "You [H.vore_selected.vore_verb]s the [src] into your [H.vore_selected]") - forceMove(H.vore_selected) - else - H.visible_message("[H] consumes the [src].") - qdel(src) - diff --git a/tgstation.dme b/tgstation.dme index ed85c32cc4..59a4f99b64 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -639,6 +639,7 @@ #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" #include "code\datums\elements\tactical.dm" +#include "code\datums\elements\trash.dm" #include "code\datums\elements\turf_transparency.dm" #include "code\datums\elements\update_icon_blocker.dm" #include "code\datums\elements\update_icon_updates_onmob.dm" From 41759dd163dd35af56c92374dced65b12abcccb0 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 14 Jul 2021 18:15:33 +0100 Subject: [PATCH 131/173] fix --- code/datums/elements/trash.dm | 1 + code/game/objects/items/trash.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/datums/elements/trash.dm b/code/datums/elements/trash.dm index e685f2ad22..3a4d5b0150 100644 --- a/code/datums/elements/trash.dm +++ b/code/datums/elements/trash.dm @@ -2,6 +2,7 @@ element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH /datum/element/trash/Attach(datum/target) + . = ..() RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/UseFromHand) /datum/element/trash/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 1dc0378ea1..1816f26843 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -8,6 +8,7 @@ resistance_flags = FLAMMABLE /obj/item/trash/Initialize() + . = ..() AddElement(/datum/element/trash) /obj/item/trash/raisins From d4c37f48e388ba5407dfb78d03ea5ee6d00cfd55 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 14 Jul 2021 15:06:31 -0500 Subject: [PATCH 132/173] Automatic changelog generation for PR #14942 [ci skip] --- html/changelogs/AutoChangeLog-pr-14942.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14942.yml diff --git a/html/changelogs/AutoChangeLog-pr-14942.yml b/html/changelogs/AutoChangeLog-pr-14942.yml new file mode 100644 index 0000000000..9a138a68a1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14942.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "fixes a major source of lag" From 2bf47b69d70f7d785f035d50898da29453cf417b Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Thu, 15 Jul 2021 01:48:25 +0200 Subject: [PATCH 133/173] open keg --- icons/obj/objects.dmi | Bin 108877 -> 107583 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index b9c891ddb9089f41af04d1a4ef670aa05491c373..6d29b8df8e3c930d9045de20d70d7194ece9c43b 100644 GIT binary patch delta 55271 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%0A$X^d{=xb)ke44HDeUOC6C}KbF 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 Date: Thu, 15 Jul 2021 01:50:01 +0200 Subject: [PATCH 134/173] keg code, far away from kegs cause it's just a big barrel that doesn't ferment anything. --- code/modules/hydroponics/fermenting_barrel.dm | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index 76e36a1725..3d6b90eb2d 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -73,3 +73,40 @@ icon_state = "barrel_open" else icon_state = "barrel" + +/obj/structure/custom_keg + name = "Plasteel Keg" + desc = "A large plasteel keg. You can use it to hold liquids. You may wanna label this, too." + icon = 'icons/obj/objects.dmi' + icon_state = "keg" + density = TRUE + anchored = FALSE + pressure_resistance = 2 * ONE_ATMOSPHERE + max_integrity = 300 + var/open = FALSE + +/obj/structure/custom_keg/Initialize() + create_reagents(1000, DRAINABLE | AMOUNT_VISIBLE) + . = ..() + +/obj/structure/custom_keg/examine(mob/user) + . = ..() + . += "It is currently [open?"open, letting you pour liquids in.":"closed, letting you draw liquids from the tap."]" + +/obj/structure/custom_keg/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) + open = !open + if(open) + DISABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE) + ENABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE) + to_chat(user, "You open [src], letting you fill it.") + else + DISABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE) + ENABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE) + to_chat(user, "You close [src], letting you draw from its tap.") + update_icon() + +/obj/structure/custom_keg/update_icon_state() + if(open) + icon_state = "keg_open" + else + icon_state = "keg" From 2e88a10ca65448db956988d6bcb8c4e3acdf2c7e Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Thu, 15 Jul 2021 01:50:44 +0200 Subject: [PATCH 135/173] Recipe --- code/game/objects/items/stacks/sheets/sheet_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 592b2e42cc..15153521ed 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -179,6 +179,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ + new/datum/stack_recipe("plasteel keg", /obj/structure/custom_keg, 10, time = 50), \ new/datum/stack_recipe("micro powered fan assembly", /obj/machinery/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe_list("crates", list( \ new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ From 9f0b70ec8c7985bceaefe3cfa87a4c4d70384807 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 15 Jul 2021 00:22:01 +0000 Subject: [PATCH 136/173] Automatic changelog compile [ci skip] --- html/changelog.html | 29 +++++----------------- html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14942.yml | 4 --- 3 files changed, 9 insertions(+), 27 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14942.yml diff --git a/html/changelog.html b/html/changelog.html index d7d439a7c8..b1e5e2aa59 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

15 July 2021

+

Putnam3145 updated:

+
    +
  • fixes a major source of lag
  • +
+

14 July 2021

Putnam3145 updated:

    @@ -573,29 +579,6 @@
    • consealed
    - -

    13 May 2021

    -

    Linzolle updated:

    -
      -
    • anthromorphic -> anthropomorphic
    • -
    -

    WanderingFox95 updated:

    -
      -
    • Pinot Mort (Necropolis Wine), a new, (totally healthy) mixed drink!
    • -
    -

    qweq12yt updated:

    -
      -
    • Fixed sleeping disky spam (it still sleeps soundly, but every minute instead of every two seconds)
    • -
    • Fixed Hulks not breaking cuffs, zipties, restraints.
    • -
    -

    silicons updated:

    -
      -
    • A deterministic wave explosion system has been added. Use it with wave_explosion().
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • vegas style bunny ears
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index ba0af9c448..6e646c546a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29659,3 +29659,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-07-14: Putnam3145: - refactor: Acid is now a component +2021-07-15: + Putnam3145: + - bugfix: fixes a major source of lag diff --git a/html/changelogs/AutoChangeLog-pr-14942.yml b/html/changelogs/AutoChangeLog-pr-14942.yml deleted file mode 100644 index 9a138a68a1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14942.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "fixes a major source of lag" From b6a99e120571265f61665791de384f2390fdbdf1 Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:25:51 -0300 Subject: [PATCH 137/173] Update changelog.html --- html/changelog.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 670468b057..025bf64fb0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -590,6 +590,13 @@
  • vegas style bunny ears
+ +

12 May 2021

+

DeltaFire15 updated:

+
    +
  • find_safe_turf no longer always fails on safe oxygen levels(??)
  • +
  • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
  • +
GoonStation 13 Development Team From 8b65421eb7f482a0ae1f2b9e51b662dadee5e276 Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:26:26 -0300 Subject: [PATCH 138/173] Update changelog.html --- html/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 025bf64fb0..7fc5e7ab5c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -590,7 +590,7 @@
  • vegas style bunny ears
- +

12 May 2021

DeltaFire15 updated:

    From 90b2292764bee9428ceb1deb2bbb3373e3ac035f Mon Sep 17 00:00:00 2001 From: cadyn <35672377+cadyn@users.noreply.github.com> Date: Wed, 14 Jul 2021 18:59:07 -0700 Subject: [PATCH 139/173] Fix tiny oopsies --- tools/tgs4_scripts/PreCompile.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tgs4_scripts/PreCompile.sh b/tools/tgs4_scripts/PreCompile.sh index 7018b8f2e9..6463b1a0d6 100755 --- a/tools/tgs4_scripts/PreCompile.sh +++ b/tools/tgs4_scripts/PreCompile.sh @@ -67,7 +67,7 @@ mv target/i686-unknown-linux-gnu/release/librust_g.so "$1/librust_g.so" cd .. # Auxtools dependencies -apt-get install build-essential g++-multilib libc6-i386 libstdc++6:i386 +apt-get install -y build-essential g++-multilib libc6-i386 libstdc++6:i386 # Update auxmos if [ ! -d "auxmos" ]; then From 07fec51d920577f7ed89196d49c8487f4cf49ecf Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 15 Jul 2021 16:44:48 +0100 Subject: [PATCH 140/173] fix --- code/datums/elements/photosynthesis.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/photosynthesis.dm b/code/datums/elements/photosynthesis.dm index 4fe0615b1f..8e1c8c53ff 100644 --- a/code/datums/elements/photosynthesis.dm +++ b/code/datums/elements/photosynthesis.dm @@ -59,7 +59,7 @@ var/mob/living/L = AM if(L.stat == DEAD) continue - if(light_nutrition_gain) + if(light_nutrition_gain && L.nutrition < NUTRITION_LEVEL_WELL_FED) L.adjust_nutrition(light_amount * light_nutrition_gain * attached_atoms[AM], NUTRITION_LEVEL_WELL_FED) if(light_amount > bonus_lum || light_amount < malus_lum) var/mult = ((light_amount > bonus_lum) ? 1 : -1) * attached_atoms[AM] From e9c7d61dc34627d1657081f4e805405c0feabb48 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 15 Jul 2021 19:13:56 +0100 Subject: [PATCH 141/173] Update tails.dm --- code/modules/mob/dead/new_player/sprite_accessories/tails.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index e17dc43950..3834eb9231 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -679,7 +679,7 @@ icon_state = "crow" matrixed_sections = MATRIX_RED -/datum/sprite_accessory/tails/mam_tail/cow +/datum/sprite_accessory/tails/mam_tails/cow name = "Cow" icon_state = "cow" matrixed_sections = MATRIX_RED From 6445cfdd9d35e29188df2ee151b4fa36dc3ce667 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Thu, 15 Jul 2021 17:32:03 -0300 Subject: [PATCH 142/173] Removes spontaneous vore and reorganizes buttons --- code/__DEFINES/voreconstants.dm | 4 +- code/modules/vore/eating/living.dm | 2 +- code/modules/vore/eating/vorepanel.dm | 7 --- tgui/packages/tgui/interfaces/VorePanel.js | 62 +++++++++------------- 4 files changed, 26 insertions(+), 49 deletions(-) diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index 67ef9bc81f..372c5b776c 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -21,11 +21,9 @@ #define ABSORBABLE (1<<9) /// Can get simplemob vored? #define MOBVORE (1<<10) -/// Spontaneous vore. Unused, usable in the future? -#define SPNTVORE (1<<11) /// Change this whenever you add a vore flag, must be largest vore flag*2-1 -#define MAX_VORE_FLAG (1<<12)-1 +#define MAX_VORE_FLAG (1<<11)-1 #define isbelly(A) istype(A, /obj/belly) diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index ff4a26e0e2..6bc44e6489 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -284,7 +284,7 @@ to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.") return FALSE ENABLE_BITFIELD(vore_flags,VOREPREF_INIT) - COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE | SPNTVORE) + COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE) vore_taste = client.prefs.vore_taste vore_smell = client.prefs.vore_smell diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 489ed39094..a3adc89352 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -186,7 +186,6 @@ "feeding" = CHECK_BITFIELD(host.vore_flags, FEEDING), "absorbable" = CHECK_BITFIELD(host.vore_flags, ABSORBABLE), "allowmobvore" = CHECK_BITFIELD(host.vore_flags, MOBVORE), - "allow_spontaneous_tf" = CHECK_BITFIELD(host.vore_flags, SPNTVORE), "vore_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES), "digestion_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES), "lickable" = CHECK_BITFIELD(host.vore_flags, LICKABLE), @@ -307,12 +306,6 @@ host.vore_smell = new_smell unsaved_changes = TRUE return TRUE - if("toggle_allow_spontaneous_tf") - TOGGLE_BITFIELD(host.vore_flags, SPNTVORE) - if(host.client.prefs) - COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, SPNTVORE) - unsaved_changes = TRUE - return TRUE if("toggle_digest") TOGGLE_BITFIELD(host.vore_flags, DIGESTABLE) if(host.client.prefs) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index 4a99bada10..3e29c8bff4 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -431,7 +431,6 @@ const VoreUserPreferences = (props, context) => { feeding, absorbable, allowmobvore, - allow_spontaneous_tf, vore_sounds, digestion_sounds, lickable, @@ -450,27 +449,6 @@ const VoreUserPreferences = (props, context) => { }> -