From 2845cb2e7d39ce03a198ebf4aadf8028a340ab68 Mon Sep 17 00:00:00 2001 From: Michiyamenotehifunana <31995558+Michiyamenotehifunana@users.noreply.github.com> Date: Tue, 23 Jul 2019 20:23:45 +0800 Subject: [PATCH 01/27] Resprites RCDs and RPDs --- code/game/objects/items/RPD.dm | 2 ++ .../mob/inhands/equipment/tools_lefthand.dmi | Bin 5140 -> 5541 bytes .../mob/inhands/equipment/tools_righthand.dmi | Bin 5019 -> 5425 bytes icons/obj/tools.dmi | Bin 23204 -> 23699 bytes 4 files changed, 2 insertions(+) diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 1dbdb4efe0..141f7e510a 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -177,6 +177,8 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( desc = "A device used to rapidly pipe things." icon = 'icons/obj/tools.dmi' icon_state = "rpd" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' flags_1 = CONDUCT_1 force = 10 throwforce = 10 diff --git a/icons/mob/inhands/equipment/tools_lefthand.dmi b/icons/mob/inhands/equipment/tools_lefthand.dmi index 5b497afe5392caf07acdbaf1bbf60903c27756b8..72b994328db0aec5e998186c051623c6972622b3 100644 GIT binary patch delta 5054 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 diff --git a/icons/mob/inhands/equipment/tools_righthand.dmi b/icons/mob/inhands/equipment/tools_righthand.dmi index dbed4c43d2d8d0c4fc8612685104ed7329679d21..ef1001c4380f0f5c720bdf257c962c3a21a41209 100644 GIT binary patch delta 4936 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 literal 23204 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 Date: Wed, 24 Jul 2019 14:40:59 -0400 Subject: [PATCH 02/27] emiting happyness --- .../projectiles/ammunition/energy/special.dm | 5 +++++ .../projectiles/guns/energy/special.dm | 19 ++++++++++++++++++ code/modules/uplink/uplink_items.dm | 7 +++++++ icons/obj/guns/energy.dmi | Bin 37146 -> 37512 bytes 4 files changed, 31 insertions(+) diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index 0879506036..c7e0037d73 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -62,3 +62,8 @@ e_cost = 200 select_name = "stun" projectile_type = /obj/item/projectile/energy/tesla/revolver + +/obj/item/ammo_casing/energy/emitter + fire_sound = 'sound/weapons/emitter.ogg' + e_cost = 5000 + projectile_type = /obj/item/projectile/beam/emitter \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 6e2c9dc62a..d5722df74c 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -304,3 +304,22 @@ /obj/item/gun/energy/gravity_gun/security pin = /obj/item/firing_pin + +//Emitter Gun + +/obj/item/gun/energy/emitter + name = "Emitter Carbine" + desc = "A small emitter fitted into a handgun case, do to size constraints and safety it can only shoot about four times when fully charged." + icon_state = "emitter_carbine" + force = 12 + w_class = WEIGHT_CLASS_SMALL + cell_type = /obj/item/stock_parts/cell/super + ammo_type = list(/obj/item/ammo_casing/energy/emitter) + +/obj/item/gun/energy/emitter/update_icon() + ..() + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + if(!QDELETED(cell) && (cell.charge > shot.e_cost)) + add_overlay("emitter_carbine_empty") + else + add_overlay("emitter_carbine") \ No newline at end of file diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 13dcf5a12b..f5ebc50941 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1837,6 +1837,13 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes item = /obj/item/clothing/shoes/clown_shoes/taeclowndo restricted_roles = list("Clown") +/datum/uplink_item/role_restricted/emitter_cannon + name = "Emitter Cannon" + desc = "A small emitter fitted into a gun case, do to size constraints and safety it can only shoot about four times when fully charged." + cost = 5 //Low ammo, and deals same as 10mm but emp-able + item = /obj/item/gun/energy/emitter + restricted_roles = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") + // Pointless /datum/uplink_item/badass category = "(Pointless) Badassery" diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 4dec4510085793611273b072d561193227868787..a6d5c8a5e1b7e0c74e102c2613d3481a6ebef182 100644 GIT binary patch delta 19349 zcmb@tby!qU`!>31FbGL$L8L<|$pJ+`knRpeLb`hc1}Fm3B_SbQ0@9&KNH@|FL+1=N zFwC5d?|Z&;e%CpFobS4h7tWeld+)VZJkPzJxK~;ZZbUxrr@J`$u^hr6;*YgzEbdc@ zL(I8M#5d*N4{TFre-e}94fQQ`_bnwa+JdkkKTMKSo2;Nl_DzEavoFY4_L3rLTkG_` z|K6MGdqRLVoZgG9>VNe8_W~0>O#fuwy=r~tMLM5_0BPF9@Fnc$HICdo8$yw2p570e z?5tLW3<0f!<;jsU#NLBq;PmBIFu6me@sr3Y%UXA@-%pRy6c*z*i0)<#^Rvpc*ovU& zcrmVbDjf~H;$95hoPA$U@{^ciB1d~tr1xd|&KOUdiCW+N?@<8~AN^Esk);T!SEO|+ zZR%AEd$YATBoj2CS2}xXXP> z`8Q={By&`XRKv*a?dT1+d-`eAwxrfEFU-`lmA57z^ih;(k%tzlfE#SzVN2@J+N)O6 zrp2WTvhBE8GQKTUHM-sgv!jOIt4(Kv)1gu$Y~QCzC&}9yL#Gt&O;{Hx zaOow690Vk;sYvd*|Hl5j6v$hP)1j5Ncy0VM5XTvbqxfropO5axutB;kQ`_{>=2_=g zjqZI>DM>5Sn6!*~8QSV;)MSbAO`3$vDfNZo*gx2#Qx5L7Z=g_|_{Ofg&_i{4m%QsE zweI&~%V6q`awy-(Px|^xq;hy4n$fp?M>9rPJIv6}ernnnvfw)u`k6d`ITNyQ&GVJ< z^_Oz05iYL+KAl8AB>trF{xyI~gT9b`xaI6T@LKDTR9MsFm3*$tff9Px>oVx%$SM5_ zOt5%|JBbZ9@ZS0mS9jt+Q37f8GV00Dw=1aJDdow9$Mx0J4z(K-rJfr#+F(j2ZrxAf zqgLzdD}GZJ_iBw}0Fh}^>NhK5GvPh)AiV6E4prav8QLd0baMF3ROSfe#q)>Z!s2w6 zF9+NG7Aj~fgimb;U0)6gXL-CN^m)@>W>V+6J<0zfLxz_&>*n?pUdS1kEpwo+9oJdY z%l=rGH=o{Td&d7^JV7Cis_5RNSK$(Bw$6ptX{JVAULNP#wQD;`EbZT@oEBTn0-g!qJ7vM^#h{I9@I&7FyS@E2KxNf< z4qrcV^QOi%4Qxc2_^PT6xG_`vs@5H8p!O4?BitQfMKz2@1-m9td zWB;QKt^E-tmPDVDjXzbnf%Sh;dXn4rZ!Z9w41RFyU(g zj*L^EJuh6HDD`nJ@8=??&>Q$u^}I8VL)88^p@F{~{4619JIK!F zF8Y|^wHzo0P+B^^I6B*olD9a2DM%!gIceEC6VujsTf#PL(m;FjrjDb4#e$!nl}y?T5&x5{z+OvoCz;PhBHrhY zktmA?!Xvq-Hu2_ygau!V#jt%Wb!cqN!pbzZ6YTv>c;BJbAB)w|?`uoz%Q3hnc-e>J zY7D=~dB-Tn1K8yuf=03rT#;D~Kw*%Jv>+!D7jFo)#lrSA%}0;IQXY6P4`xb7sD4$Y zS$CRmoY?aU=6xX1+=3V^`EXmHrM8#hJ)yGReXMu*h2AqFOrC>eNKaC6SA_*>p1F=7 z2;QYPWHj(Fx+`TUH=cipYdVdaBUZs9*NgD5!`?w1?a4It*%UU9d|7A-Fk#%EYpCu# zY>t_FAK>rVEl5Oq=Lnv{)8esPhLBp&U2)b!8Z;l27NgYk7%y=`Mp(d{JuEiudorw| z8#hOQ<`cc1-1wU41;E`$1~eSJu(A0K64-4|mZe<&2uFD3Y2~y8oLajcS)%-t1uY1H z8v8}X)}606(+}1qmwan1$nwyfx53ovFu_%5Vd>$CS-3jU80GHMz4`0F!}`;%+zKK#-kR-}TLKEHpo6 zL^uDnEK0DU;#M_}pu7#4!vW8!7{siwm`j9>|H;n#Bz}|So#|@E`8#ZEY^erO0F#;q5pYI?-%~KKc9RWJU9sqMK1oRcgKw+g>KdRU_hN+Vo$@P?h3`C^N2{EU>2lBtVx~^#?X7{dou&}bR703PgV|d?w^sd$+ zN2&$LfMk+@?MmL4cPVqbQuWZ5|Z~3xZ_`=BqbRvru$-w1P zGshejDV?qn4d0YAsNIiHaR>5n9+sXkjeL@}!p&Y#G29K*%G(XJ_1)&u1j~5kmX_q| zoaGFn%5knR_!zez!b%Nl%WXBLWC63Q2mXwqDBqD$AI44_#!lSWFPmII&pvlSCf9lR z;aKBX;b>7_C%zt$<}gNVYNMa?YO*v|6+pgHYNe@12ZU(rL=}s{YLR58LR<7l0KJd} zbrF-EIYxI7<|MKXid(nxXh-n~f&#rUQBl+oq zUrP7cV;{Nj zNdw%iopOaV>chQJpLto*boN38(}j`>G8;ETiz?}lvUOiUZjP-7ncmBdr?>Ki5qZWn#~ zsPe>dWB3cer+SF;xO29iHYMcvQ*&u2_|f2M_?tI>`%{GvkjUzKL7lJ9VpYGm^ZZkr z*r?`aX+~HuBMg1;dN)-A?`BY7rOTph&8sQW+qZA8jR}XaA1VQ!9e;h;+(1@r_O6#% zEE({_h6twdG?pxeQR0>bcuWl-Bi>6Pvi#`|4(;uPvA2Qc*U^Aeh{OdEI}96Qg1})l ztU6gpLo@{XuJ*+KK~78o#p2jr4b`U{x;$x^U(CMKmXgHBw?4!h+MK!sg-*ws@i* znCB35Dl11o`)_b?Fc7l5Y~7$c%^oE*KUI8F2)DkHhhg!fa%T{Z6Q5$1aq~RxojU+w zN{njT@Ln-mzsz_ET6?>RVrutD563|wz$W@X(@FaF?b|Q%uL+e^Re7aG95U`+3QR;$ zupdAM{SRuX#iV2lO-)NT7U>KY$J#aB=a@wB^h+a3d+8GuEp49!;EF-}(M2g{9KGk+ z*3gG!@fsYv0=-F$;2G+@*f!EM&LXX(nWdL8;NMtZ$j_kNmwpleYZ?e3i8sND{oRM_ zCExBl{?eqFx!a%53l<X!O*F|b2Wrly;MCFwAOVZq7H$Emhl zmwwa%EW8%gFQe2^*ut$11205=NAHCe1r4-geB+@b>;eR?Q8t?l4zuOlLg_q(DPgi@bDe`lAc zi%x?TI+|o=O5R?xy^G*1^1Aa>N6(n36gZG3+87sii;9Y>2P~iQd1^nJ_w>;Wj*%a1 zVsM=p+6brZ{#1UE#&tuVxi#_L^C?58?l%PbP(`Q3RS45ZIoMEA#3pM8OHYre^y)2& z^#|_vRTNuM_NV_yixI+d73Yr7y7c^~A=kBx1}Ou(egjb4;`+mXUXj3kNVi97)awK1 z;&Wk%1OINMXiyk~OkeMI09DV~r(uJX_|Lt$=uvr5u`!ACe@X;-RQvz--2tor-2(jo z@I;Y8>UGXmX=U9&Zq;ho0w0#D#WM(QKk>U_Ygae14leb$F=irYMl+=87Krd_hgW` zWzQ09=X2f@G`70!t;oc8F(u=>`qsmH-zO2l(ndSqh+}VGDHZf$L81@cFDN-(@3##u>#HD2 zF$l(E*$+MHH-+4m#DKR$W1(#dH~|3qpi|Y3a+taxl592uSEFGoxHp=LCR=se8xUwf zf1kKTNy+|Fc9fBSDDzk3bTHgpA9cpgf0ItMH}KuOJtf%xe*bkAS!U;#nrir(;MU)m zz9tRpmkMvjQ1)ec?}?cve3}H>!Mt!^E<3CsS{vR z*-uBzhw^6K=(m+cb{yE0JW5X_L#A3VAbD#^ZV0s@7un4kb^{Cp>H#vJo8P4fLXx{b z{#eTG{sd;GM$WmM>aVxr0vM*d2QJioF+v&I{0xRO7TYD54v(AcUP)>8V zuVMo`gr2#?8myU6Wg`?pYisLYEwXDJ&)+>|?kr+FAiGs<8n7z7J1Z^GH_l+J1mNH$99SZeZH(ywGg#F|#`h*1ve;fh$S@z7}!Tw^y-083~lV~>0H#`RW?y%(mDPN*yW~z>l)F)8=L@oZ*UGFiA!aeH(WsPXpPwt+_Up717pkH)*E{Z@vy zW2WdP?=r=UlU=vn8Br=48a6I2VrX~x(;CziI3LX<)q5QaeS!dRd2vc)8O-)s!lP@C zQbQF5Q;-qIm75xE>(D>U?6Ghboa#V=XW?v~wdOc}4;EQt4t=E;Uv`>kVUpjz^=0Ey zu7xiqqV$X~W}huK;fpts7DezyCRE~8g`gm|F(QIE@)9gH2pJu$66S3EIALH zv**wm)r8j5rD~)|TCaodvlRnAm0|ciCwwFetPs9_5b%;YI~c&;dmv9Io3Ums%Te{?I^WHrXmqq4InIv4$f2|cnu zK!rNWP;}Z~k(aKeP2x6K$4+;<&0N}YhLmlF` zQC(R%e4bG-(9|}QY0;r1iQ(m0<28^?F&O`24I}nh2RCO4aXw%#nsd6$WKt~} z5wBYuHC8=P>xg})K2RpxQ8=-gYzh7Ew^Y6E$qOKv?NKFBaL&GClfJheb(nu}bRP z-S6}%E8EY{Swp0ltx`g}a(IZIyA)~X-a3g;VhgDphHk>TErInD7(0DPSM zL9RhiOAoTFB_xc15cefAV&YHXPp+VK`4@?wl?&v!0DtQigC8GWcga3me@=Y%ScwW7 zc;jI+6AFa_`e)xoDdq~%-DuJkaKU>iR{bLXeCGOH{;Fg_QFC_u2NEXLil zkxgi|NxX*21@qMahgDeU*clEJS@K!{8fzhmWmjRriUdgg(B}kO7VRTr1jz`b8_`nn z`-AYdoIoEztomw`7pj75alWrD9_dnro~jm*ne0xyIQ&BiZFhM=VcI8*?SGd@1y#It zkIqouW1H!=!Bi3YACDfRp`LF&6;*YRkf^8mJ z7puM`{+#FC(Od!oU5UH~t8baP0v=sisRfrOvo28Rq|OdAna9~v^}KtPR=yp>NnR6& z)wFLtR*%T+NtO+@c2P1VgU9GgfQbneqbn5-vdN$TR=ZUk(mrwd+1xoYu3|5pJa9(> zXm{tZZ+R@z5bX~8yf<%beeSb1VAR`f!2{d#MJJ+SYDv4!MxmO(B6K|)2=(icv1Mdr zB>w^d(2hc`AI^CUZ332%AA<`l1R~WkJpY`(XRQS{-J#vs62#JKz?1iY8yf54bWN2e zoA+4t5G|Y7iepH8Y)~MahV{L>f*gIvIl=1)1;yJNY z@0WKoy_hmVjk&ozw{rv(LaQsvGqv(BA0D#5nohI{@OqtbBwBqO&i=N_WYvDr^;->K#U3O@2S+8r_Q%dKW;%$9Kf?4R`@eEn}qUS z#D#G!F2D$L!)2POt9xj{Bd-#4gK(tO%m9#k;fuF3+r&b4y0^&{7SU`vhP{YP!C2t! zy(0K{TgI5rq;)QrLt!`Y)k=2^El_DU!Uh)XE18;pR#sPk>Bs&}J73K*iXJ5;z5mRd zw9#iPLaOj}7U|qu^C0uMAqMPXOl4sfs__TTO~!?;Hzbt5qT+4=a#mJfI%~2k$)_qT z>KX>e-}rQn=W(pD=fg{kn#y~68@OH0i?=p3tgUl^km+jM?Yxc?uA!m6zQ=ZUh0?ZV^w1ALcv%!H@BabLaZ_} zOj=r6G-EkAY>|BsSn6|pH>HMGyEa(3yMI&G(5TS8?VTS9!#wV{Fv~V>pxWHaEDeh%gPn}7knuXDjBY*lS zQOLo8E1!9@;rO%?$l5}dD6p!2;Ke8 zx}MlXHrzvz`vg)5;P2K1Z_i+B#CNCt?vHumUXOF1|2n@3Z9tb`f+9MIUa=X$M#GO$ zmffv&yZ@@t$T&3&G}_i`o9lyXJ+P zw`!bb#XvWwCCydXh1jF->K+fBMBIYj*6AgNRYI4lT$ePZFLq}CGihsS>Z6b+JCwg(Sx zL2)mDmG;Y(z{WCj*#A;WQ|auPAm9=J1qSzC!IZ$ludarRJBe8k!fY<6q}fytbGE`* zq8NzU*UJg(wcM{yfi0ozN*dNXdE)TCK*W%d;YqUCL$9q5^V0FZ-$0lU7oPU|b=WE` z%ce+sGs&~YW`x<4*+8%PryR@RZqet1p3R9ul(9?E;&s!{o40Y(5@}dBUClvrX5eq@ zPG(P&6xpfG>95vYrNhbzH-Jty@S&v7o}*j3YO+A55=)ToCGERl;NwJVqC4EI?R66B z$6ANadJ373VCi4u+74C0mb*YUWW&)Ezz%;=s++ax6sRMXLP7wP>q=J?yaS6lZF`%0 zEBhE-+)OHc_V+bc&p>BGBuKloy&btdRk1Q&q*EV!DH#|Pr1dF1QuWCbb!xI&WI4C z>{oX64B2-|$7EKI0>wq@We8g-P^4KRBO@a@9hawl-7#6x_8zI~8KC5E8wDQuszb^r zy4O86rw=DiX_B$N$KO?A03104G7_G1T87o~gE4cPJoR^rOGwyj%Ug{@tjP0g2f|S> z*nxjk33jY1A@AL|VsPGFzP1`ed~z{)dwvkH4GvL9ix zj%?T!in<8AlS_)hX43Jp?X#xty{L%x{88;ncX;o$WE*JU?;|5AdxQLT5*arGw~>ar z(zfWc!=LAeFgG+MKzG?8pW#1S(j(AB&|{9O`pWm%W4$cNAgOLBD_PKE>BQ!vzbKB$ z_rQ>%iolP<#4ywDRQIfp(D2!m4;8Sr>N<0%%MYfOIbd$ClVbK3(Hr*SPP0GI=rjkPS70f%b+AO)rTF{@au}JR!Jo(DZx1FkenAD$s{$=BzV4;h-@#gGQ{@KMtVyx2 z{Au`v%X6KPhLD3fHq^1T+NPzOgq2sAKT|`&@zU*~Di|-OJKE8fy6DiiH-nqA!AWQ_iZF$ZUWjf5CT(X5=&Jhj` zG!%c@0Q%VQQ~Ex6nxdXotgh2W)(>_4)-jkPawmiLS{NUy#>K^XK7IN$#|W%`nIaP) zCh4{H26K6l`y`SE;x2^i)M3ZhHSRnH1=9k9NpGJAj0hY{uHB&j2rb7<0-4V$h(R%J z91krahw9`iK+>Wj>|<53HQ2Eq+a5G?4WpaT(7^zSjRK0m^pi&-nsYoyDWlY|!yHB};%szZ{Aj&fkjVk8p z{E_|~At2U9pg;0eFko%agg>v%TQ{_TmdB zK?X5L0Pt({J+yA(1;9>be_Ph->I*Z- z>gnn21;72dV|2a|U}?$vA%{kfBf3}~byl~3a7zhnPMN1*g>%yKXphLsQChHEp~=$A z7Mq@?hlH)vbEP%8OG5?fzYC09S`kQO{9+J%Z7nA+8pY&@l?7|2i8eAMSgba;IMfGJ z{ko!=c+r=a{3kf)8@Vx_70rkbpA^BuHF{9o`E#WJ4g`^uKYsk+;^J!G94oLAq4y$u zEpI-unh-2vY<>9~2COAs{&{5=S@o%ad5}d)jJn-WSw~~tg5i~V;@82#t?l-TdD9f(ZhmPc8Km2MN zO43L_jv*m!BeLt?7|Aj6tq+{u`ONt6d4<7Cy8^Cg@Uw)RlFEJ6sRJe&cQC=j#hf=-`aRc`%#godpe85y6^Qb!CWh2-j z5n0yV#=7kYjj4*)n3yv77{dbmwZQzoQj4S)1-Uz|fa$lnr_TyJ_E6}pl>2OjZqHZY z@TCqiSVCLG{o|uxDCZA8Z4{+iO?NF2NiLKgRWawm?HxM1El{P%Pb z?C#t_=08ygPq?|CZIG4hO5`-fzd=H%vf=90la=E5%D zKzuX2O7w%;baCfwl*}ospy1G2a%utO7@Z$&+saxWKQ5iPB=Ft71RtJ1UX`8jV=BCf zI^jCyU)msxePu}Xucw`DpW|cN4px!ml9toOZ+-8dh|V?QjgOFQya`b^AbLcEZVM*s z)#&2b2HR-b(7tp*=ZV-?2Y@U3#hsl?dUQ`L`xD4J7*KkK(*p~Wd^O3}BnZHv3;nk} zJoQj&Lce({n%VL+f+0>pgMpVhk;7xio5~s>*4*ztCw5aJV)7&(#;M0+@}z^JS}8)u zEYWS(?e?_YEZ5b?DGd%g<~W(mZiK8LRzQKVMHTW1emQ8v!udxYDBk3|Hk|TCeAQ|) zBw&xgvS~=;iDDET`$7PZvMlptKY}Ttpmzvza|nP{Dx1CnJs%x9$g7+noxo6~)c(ie zj0S1D1eI-+V=QpzxDQ&-!`gw{WN&lD&8aWklG% zU6I;!9|xUG+p^ug`-UT;@Y+?&4u$Jkpm}mu7FiN&PVaLlFH`*EGrzor3@YUlMmU#_mcAv*&9bE+FTJ)`3NzF!EH21q<0|X7-I*Hw z2I6fzc>`8Ztj8CFT8CepPsGQN02|d8ub6<((tg?^E(?s1(6>WLuKjO*59n_Ev=i|^ zey))Bq7L9zRd;q4NE377(dhX3bG0w^*}Z2*)%0M1Pf++m5KC36`qqWWg4sh8ad7X# z8ZkZvFH&0jSV$PB-+X)Xwwz=L7qA&}=LZn~8^67U*P6S{wvjB3f((f0xc1`s`jK6$ zhX1?H&Cp9}DeUb{*$5SNC4W;Yp#AR`RE5Cyt%Mgs5qYE9aZo{RD!cXu;If zjmeAS;6pDQpn~YE_yM+n=L~CbjJ4JZSsMznP=3NGAV8X$ntFy>&pHf;q2)87$oOqw zRa-Z6Fhi>2#e**f73ODa=`O3>s^qa?*%bkdhK6uOJy#8-6{r6zaxWbo$g+aFMqKKl#QYZ8rtdWykc zHL?T%%k~hQjfIvbQh=06@@^>^c)nSH3#D<;9(4)XE!3qzKvP4?21I%S0cFuWeVch| zY(*J-5c`2P(`);(cVe3W5K&Xpv%%zdFUA&QELL$vpk-N}JKhF>tXES)UR%1*20UZ> z#cO*KiXA9AJC_gG7}q&RLFlx+F_L>l<%(vO;fbM#*4ZyDJw4KgcJO;cM_Z!6s!!4Q zx9c#`b)uF+bqtuuyA}w7UWoO?H4QCpi(MZhhYv9^w4tG)kR9N*g}4__^7!42BJHHB zv`wH)Y8%Xf6=1znsoctv*{^X;6$hZ3<=5s|TtE+{+<*MS);8Cu`ekJ%>Foy!%(c_? zZn=SyKvQ^`APYVH2Z)zIcY{#(t8x^xjIlJLhaCt3_ggPWr&OoNCUNm_S37V*Lm&F= zeIBs6Vg)p;i}=9hvYB;iwU5oYjMAMAu&6{m96#4ISMWVJWfAhu3MFG38s zLd;cQP0empIab6=H<%gcZ#dx}dm&QvLIwP_~tLZn(;_ghYv3$lX4+S>Xs7FfZ}*{1OMIwsfmqWdS1Z{;C_;B` ze3kf9T+J;3Zf+dl?Ch-lVK?#PFr3|)+Q(0yl6?5^ft-#m0`j->^74A7qCR|xGiV*% z9K9w9MUjk*jFh*M@d2SEx(sk=Q3C&6FoRiKR^q3y7r#2{+j{n})8@e=>g>1|4R)9g zZO6yFy)4!We-&xroC&g+i-8!>+uOTA$38y&_lrm7=9z(whzD>pW&nXe47UbdxUbJ< z5=nZ>UB0`iWvaV+@W2P};oQod8o>3sI27%NxZGWvW6raj5z5>X^`ObrmupjFx1$u% zPS!bgGc`r?*SW+kL`_>5xe2qUC&J-~G0>XrWDi5yk`<_sxo7y0A;d3l-G!3!t*4Q_ zgA0B{AsfWcTz*V_J+29v&*WOBbOVx$)jnuW3`+wesd(?%KiRg!XM<8+kWFd3Ve}pL z)~#*CTKH2FGX5OoxFf)$ve4aA-8{(y3^mB5a+N>A$K3-IF& zBQn7xv4UiY$Q2v2&X*!ZJP(FG$BO5|*Vmt4kue}fR@KV^`uVG&ZB13g@EVi@K)GoH zE=0>pVkxHBdPO18rGBUS3rU&j;__8KY9qvNkY>O{T@sMlk9To$AN6Te{~Y!W!#%a_;_;vcY->@%A0%CEUN$wNJYbxnw`Y^a-{ZJ}b!yx;TN763H>$ zP#DnOxGgxyc`b*&Z|@X%nqHQW^(RizB`>D8x}Utk9Ey>m0$fYIf9W|V{RVq_CMr@KDC$- zxYE@6U`8agO>FIC7)+~ymPIZt1e*aNj6qt~eplf0g-;GLFwT}E1{m%wSGOSxKq>^U zejZg*B%B%o8{Lt&`d>@+q7Q{wA@zUydktCEr{RUnjqA$-!4-A(xV5`hBf+!X=JrtE z8iOy-Ns92f`;_GD{HERnO4vh``mH#XHgmS$cH`WjbZyS9yNN9D-EU}3Cu^OMoh3W6 z*mY%I6ZkbcA(!CW4_-u|OoHO$6gG7^nV4_cqFO|H1$R_cRNT)cOefHl_1<*2>?)R- z{*qwCh&vdNlpC1aasm%Sdv{%9#$HyMpcB}oIn_UhjM!1h_#d@@ye*6mcy4H(ppt4< z!~rU)=6(Bam%p+l8ZDgM-ZQW&$J;Y8w_kry`ScCVB@R+d+!I^GHycT&z7>1nI9IO) z*sv2pyD6ge?r856h5eJ#hvu8>f=HRHHqTA%5wJBV;PXQ_+=|xo;sLKD0W%(#M*rgp z11~7-M;$G|nNiW)jCgQmHC~x{W;T6fP^?ny8<$)!Q#M3V9KTcchJ(7yH`T%enUBD0 zx5D}MbuP~)s1f1Q1`!KJ?X^)w8z)Rrn7f>u9zk-o9|qKiN4uAdf+Hg4TsBAZalsHB zICP*ue6*r@HkVIwvW;;6BecEDtbK==MzvA%8lh0a#z#APi%UZ4=VOJJUgNEJ5XntC zAQ#35Q%LNlU}ejpS2hYW436N5`IlD`2~ThTzwGP(WmkVb=l(dO=ps}aM_NE1#XjCF zm?^T+a0kQ%#9XF(nC`ugP#zNz$Iat|89#vPmnYnEbp>IM^}8g{2(hcY)>ZCGCb6Oj zH}4oR*5u=&*Ef{MG^T((4*GB6tKUGzLij2gH}Z3>0?`{&^R%DxUFk+ZEzIY1SN{*#mik4z45#7Ri=sTenJbU9j#V2{_ZUf~+LtYrH~VuId2 ziK-3ev`b={MF{)C9GrNw_MhBd?E{Mn+RNjuLGagk^+sY^v2if%<)!iu9ywUa9NO3*#4vcA zALbwq{!0W7_?%?4HQj(Z$u^nQSvjtI%nV-kH#gAkvqK-t5xc@Q zeJgpaIVtkhgshw~H*Au{;xq}7doIPYCT!7%@^9Hfx&*IRmicfQG;3g zXw+bv_C9((qv8ZDyx4%IhvDYEy}H-;IZCSuY7=(VF!TXUrQUBJBb-r&OsYQmd4+H$ z#h8I+nc6BeBP=%b)8BiDn&zy^gBK_q$V(#zKX*vTk;RCEK>Mmv>;vrVwbK)yWaxtD z58`K|6}M8P)e_Mj55u8hQkDMf(#i~2FX<0wE*@;FLGy1^ETBtj(f6ShuP|=yyQW#} zR#*PI#JRNh^vel!ya1sb^Q~W*9i~cKq0m)z<7jW*q_w#KI{RYU>`ReyW2b&&8eFUB zkKy8%&kS6z=htg({LPt0h)3=dnI@z?KptEDQyB`1m^zkVgAKOyxA6N3-xT9Z_j_s~?`NF>Anim9APr zM0|4hNESh?{8qCZWj?)}I{g8uBQuD;;s=6Pl3$@79CZ}|cvGkqES(CwQvbsR|40Po z%((OxI}=fMF9!DN_|;qb>#+Y*A14MXMhFVO$18##1GM=SgY$x3kJF*wi`BG^~OUumqfZ?ah@L-H54qF46}b!qA$i1VF#r+lc38jtgmtdGW!- zdOVLHSW{3)><9{JR`!E;pQ}<#G-p9IqD)F5&2PM}+G9Jl!a?9tJDuS6w$f>x+xUv^ zaYC&*{mA;MnR@iRU{q;7e-W*H5quSvc*%&Pom#_Qt-zxYEzlQq6?!O+k&+J}vFEhi zYzhJm-JzPfaCSNKNA&YnSIxV_qM?X|eGh~LjE{Ui{=9QTO%0yTKgt&q13-vVutnPX z4@xQ~0&P%6@An)QsM#j`Y5=vF`)WrPi{0_D|1N(Kc4Y>Do6c8U0++$5ZM`gP#Idd3 zfI(8$-ow0^pgRacW?nfELfH4A$O|jOEund6U6(d}9`)O{CLuXDkBf(3YhcOVN{rFN zFg;BqwvAO(PyA_x0S9&%eJc`C9g^Orydtd~lIIiLq8+f=Is&psKa+hQl^Z8>viiKW z3#qz@Dv`iaY!4NuEfTPQ3KRdbhP5z8l{BCs=VJiQ63=oB`UVf4|NVv#o(_kH6EmN& z{kjscl5GpcD=dZ}+q!$WLi&7l%KyK}sN;oU|G%NxKkR$diEZq9;mhc={*EVB0VP%KN%hlW7>h<)?~xZVvhEG(K( zjHo;A(W;QFEM-6pOi03CiDt3GG7sf++l3t#i9|(Fd(?XC*e_42P2={z;eszNWjIyC zgFg~nE}m>$p)I5jQx2_&fZ(6uH1!-{N5QLKVSY$_03Fo3_&Lq_%rolG!6toj(EbSR z*dlq?bUXp@P|7PmzPpY3SkUQ@H{z_WIIyH{1_>U-SF!D^4?7XTZkNoU@&25wbn|8e zGcvmUb_u-_7SB`=2ENND9Sh3ED&{>~*c{>fkAA(9SX@>m<-E}4wJ_3;7Tbs#6hG}< z_u3n$V3;gZvW(ZHGVAs5r)LtTQUaylZO}e{)fqAVoj>aX&QOaX?^-^O7=NJIjm)!F z2PC%hNc`8B@M4j7aP9R^;*QAw@Pf;%^B9E`9~{JBfT8GJrcG#jrNO3ET? z0WPGDDy(u(2*}Y2n&aQYlM?Vh`R~FBFMehT9y!iB*_zlg2=w^M=}lexD{k)i;SHun z?>&4SD06$&eWtUm4HT^~g5y&S3 zudfYIK7j}i>H!sg#0xwl;O|@sfbV2K){v!codvmIbBC>BsmkItCmY+on0+r*hORbl z`Ws^^X27>*m8SgSI6)&`Aa`!lsIk0-J662N8;Abe1NG903O)FW>whhbsdeo0g(k_O zqh`IFj(~y303cOPo#TQLFI;p7oV^0(U*an_mh0w~7L>PwSqc+c@Su=94QU8Fh&r^x z{Q`gdm%H7>iQU)1+{@GOr#9>DFj0F1A25iLP2u(bh>0f!ZXGn*d3y-{d^7-8nt??W z-Yay+p-+;07Jf|bAdR|`d`Oftf4gAiI2GFHN=%@Ys9Y%W8@ztHfsutP#X8j%eJs2O z{#74VP`G<_j5F&f?!y4oUDw^(qPc`8wPAhWjYMcy6SE(inhI#e%|1JtB=XRkU3}j& zamFpg#)hjYc8-_gOIJORd}#zFozTDc4xvFygIW19Yvlaf?zm8B>cZ7?Eh=Ac=c!=F68B&m<@|u zf%O05INkp|KleX>9R!3#e6EDDWHFN-w1PMkUK z-`4`#p(B^Onfs*)v=&sfDrDkBmO;Kd1t&-|_^&kDPI%lo5Yi=EXBl)h5?eB#mgQ&n zvHs-)7H29#LzcZcFx3QEa*p+(wwG|vYwR<4GH#BEFb!pwQ=m3%_N{{Al2Xx(5@DT@ zw2{9+h!|t}Lc|zdOa7&d;m5)f#FVLm`gryK5b^=N6G+3u!`Y>!O$BuIYRiIy7|ShK z22{x^NG}NnaQbgt5)54;B4531X56RWetsP6v2>Q)W`Kt{2H~WxqZ+~&Fg8gf{Dq%;zoK= z+!sQ0JT0TpVJ?Ie1^hU%K#KPeE>DAk&LHfJ_(=5o1hpRbM612rl-h+joVhNGtyf38 zzPl_&&vUNb5k%6fJgAtKxdF^K`E)}(J+~p5Q}kV?q#C;sT!ww(XM*3;NZ!!N2$>eRcphfsj+Df_AN zCYR=>6@HU=(@$($TL5z69>480DQS}fDl$4+;Pn6K<4mL3$^tkZic(cNoyL}iF~w;q zW2r8dOtmB}u}p2%qN*K|+6DWgwSc>665l+$qh^w@b=b2~H za1X$rjJPe~FG|;X@)wcEi0+0IQaV`?Jr(DWd+H6hE8?=US2ZGGVp67Yl3YevNNYZ)PAL5 zrXtFYWC;BIY#^%SkJQxE%yvTB@8PStaKvT6j#({RtR}E+BE-42$@s}X^f#ftk$m!_ z)kZ0ZwwJl}ef&BWA{v)#=V?LSiX19&QkRIz1(A4j=HRxVxw`3mY#t^^%PKVFhZYWJ zjCThZJw`eM{;>+MFOtMv+W1*hypL)KqNZv8+GT>Ur@o~I*1G#*g~$c9yuMCdh$9U< zhmOT!O>BCnEuyFU&O&6-qu<2zJ10Nci_w&4#EOt97AT73S4%xnhq7t+T=zB+ft7g- z;t)ZB<`XR!t$PcD?0p|rCJa~Ij8|B!TH9bw%=lVxhqsZdGGss|Og0hr971mrdNx&9 z8y%I4VT8evc3vdk+O@Un(Km*h!d_X+Fs>!ZK`&hj^|Q9jy&}eeCZz*e<`(v`RUgzRI=O4|O*-@`rXn^vJ$O{7^LbeEbug5$#>=W?f{{b@zZ9Fe_ljC0?y^nhiD&Olu7@zLn$?3}}18|ItL85rS2 z=#$@Mq&{qJPhnu3;Kikh`;IEpxRP0V|geGUcb>(+X6j-o%`C{e0bWLS`4;B z(8M)J)y^3i8g_kuJQ$S8UZP|=$FBqe(b(=OgEDEPi1sX=u4DV|mK`bSo%&<2{IyVu z%{M4^*S)hIC}A%~d3Y^{akE{V0PFCl4#coCe=EG`0VaJ;yW8T^OxMDzC193zA52Ka zKZBU+St4~Z|Dq;CBa9nn9xm0O?lll+0#cApQ delta 18990 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 Date: Sat, 27 Jul 2019 21:36:15 -0700 Subject: [PATCH 03/27] Add files via upload --- .../changeling/powers/tiny_prick.dm | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 5a701d8a96..c58d934d6d 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -62,13 +62,13 @@ /obj/effect/proc_holder/changeling/sting/transformation - name = "Transformation Sting" - desc = "We silently sting a human, injecting a retrovirus that forces them to transform." - helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is loud, and might cause our blood to react violently to heat." + name = "Temporary Transformation Sting" + desc = "We silently sting a human, injecting a chemical that forces them to transform into a chosen being for a limited time. Additional stings extend the duration." + helptext = "The victim will transform much like a changeling would for a limited time. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is loud, and might cause our blood to react violently to heat." sting_icon = "sting_transform" - chemical_cost = 50 - dna_cost = 3 - loudness = 2 + chemical_cost = 10 + dna_cost = 2 + loudness = 1 var/datum/changelingprofile/selected_dna = null action_icon = 'icons/mob/actions/actions_changeling.dmi' action_icon_state = "ling_sting_transform" @@ -97,19 +97,19 @@ return 1 /obj/effect/proc_holder/changeling/sting/transformation/sting_action(mob/user, mob/target) - log_combat(user, target, "stung", "transformation sting", " new identity is '[selected_dna.dna.real_name]'") - var/datum/dna/NewDNA = selected_dna.dna + if(ismonkey(target)) to_chat(user, "Our genes cry out as we sting [target.name]!") var/mob/living/carbon/C = target . = TRUE if(istype(C)) - C.real_name = NewDNA.real_name - NewDNA.transfer_identity(C) - if(ismonkey(C)) - C.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_DEFAULTMSG) - C.updateappearance(mutcolor_update=1) + if(C.reagents.has_reagent("changeling_sting_real")) + C.reagents.add_reagent("changeling_sting_real",120) + log_combat(user, target, "stung", "transformation sting", ", extending the duration.") + else + C.reagents.add_reagent("changeling_sting_real",120,list("desired_dna" = selected_dna.dna)) + log_combat(user, target, "stung", "transformation sting", " new identity is '[selected_dna.dna.real_name]'") /obj/effect/proc_holder/changeling/sting/false_armblade @@ -230,24 +230,23 @@ /obj/effect/proc_holder/changeling/sting/LSD name = "Hallucination Sting" - desc = "Causes terror in the target." - helptext = "We evolve the ability to sting a target with a powerful hallucinogenic chemical. The target does not notice they have been stung, and the effect begins after a few seconds." + desc = "Causes terror in the target and deals a minor amount of toxin damage." + helptext = "We evolve the ability to sting a target with a powerful toxic hallucinogenic chemical. The target does not notice they have been stung, and the effect begins instantaneously. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." sting_icon = "sting_lsd" chemical_cost = 10 dna_cost = 1 + loudness = 1 action_icon = 'icons/mob/actions/actions_changeling.dmi' action_icon_state = "ling_sting_lsd" action_background_icon_state = "bg_ling" -/obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) +/obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/target) log_combat(user, target, "stung", "LSD sting") - addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(100,200)) + if(target.reagents) + target.reagents.add_reagent("regenerative_materia", 5) + target.reagents.add_reagent("mindbreaker", 5) return TRUE -/obj/effect/proc_holder/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target) - if(target) - target.hallucination = max(90, target.hallucination) - /obj/effect/proc_holder/changeling/sting/cryo name = "Cryogenic Sting" desc = "We silently sting a human with a cocktail of chemicals that freeze them." From 6f33856ae7e8497bbf5fb728f252ce782dc007ef Mon Sep 17 00:00:00 2001 From: Ghommie Date: Sun, 28 Jul 2019 18:51:19 +0200 Subject: [PATCH 04/27] Makes staminaloss also apply the oxyloss fullscreen overlay. --- code/modules/mob/living/carbon/carbon.dm | 5 +++-- code/modules/mob/living/carbon/carbon_defines.dm | 1 + code/modules/mob/living/carbon/human/species.dm | 1 + code/modules/mob/living/carbon/life.dm | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index aa87a6e46d..e94a6eac86 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -699,9 +699,10 @@ clear_fullscreen("critvision") //Oxygen damage overlay - if(oxyloss) + var/windedup = getOxyLoss() + getStaminaLoss() * 0.2 + stamdamageoverlaytemp + if(windedup) var/severity = 0 - switch(oxyloss) + switch(windedup) if(10 to 20) severity = 1 if(20 to 25) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index f782289e18..e9114d5298 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -61,5 +61,6 @@ var/next_hallucination = 0 var/cpr_time = 1 //CPR cooldown. var/damageoverlaytemp = 0 + var/stamdamageoverlaytemp = 0 var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 37e5da2f84..076b8efb66 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1781,6 +1781,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(CLONE) H.adjustCloneLoss(damage * hit_percent * H.physiology.clone_mod) if(STAMINA) + H.stamdamageoverlaytemp = 20 if(BP) if(damage > 0 ? BP.receive_damage(0, 0, damage * hit_percent * H.physiology.stamina_mod) : BP.heal_damage(0, 0, abs(damage * hit_percent * H.physiology.stamina_mod), only_robotic = FALSE, only_organic = FALSE)) H.update_stamina() diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 9dd55c361e..ec80da6b53 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -4,8 +4,9 @@ if(notransform) return - if(damageoverlaytemp) + if(damageoverlaytemp || stamdamageoverlaytemp) damageoverlaytemp = 0 + stamdamageoverlaytemp = 0 update_damage_hud() if(stat != DEAD) //Reagent processing needs to come before breathing, to prevent edge cases. From 1263918bd315b2e8a68cedf3446dcd9644dd1d86 Mon Sep 17 00:00:00 2001 From: EgoSumStultus Date: Sun, 28 Jul 2019 21:51:40 -0700 Subject: [PATCH 05/27] REMOVE SHIELF --- code/modules/uplink/uplink_items.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 13dcf5a12b..a83dd9bc7d 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -414,8 +414,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/rapier name = "Rapier" desc = "A fancy rapier with a diamond tip piercing anything that it comes into contack with. \ - The rapier comes with its own shielf, this is rather noticeable as only the captain is known to carry a shielf. \ - The shielf itself can be used to block melee attacks only. Its also jet black colours." + The rapier comes with its own sheath, this is rather noticeable as only the captain is known to carry a sheath. \ + The sheath itself can be used to block melee attacks only. Its also jet black colours." item = /obj/item/storage/belt/sabre/rapier cost = 8 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) From 3c181af4b0e7951db74132bab095c3096af1b99b Mon Sep 17 00:00:00 2001 From: Linzolle Date: Mon, 29 Jul 2019 01:17:45 -0500 Subject: [PATCH 06/27] modular_citadel bad --- .../code/modules/clothing/under/under.dm | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/modular_citadel/code/modules/clothing/under/under.dm b/modular_citadel/code/modules/clothing/under/under.dm index 1796df01be..dcc6323f62 100644 --- a/modular_citadel/code/modules/clothing/under/under.dm +++ b/modular_citadel/code/modules/clothing/under/under.dm @@ -5,26 +5,6 @@ *////////////////////////////////////////////////////////////////////////////////// -/obj/item/clothing/under/rank/security/skirt - name = "security skirt" - desc = "A tactical security skirt for officers complete with Nanotrasen belt buckle." - icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi' - icon_state = "secskirt" - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - item_state = "r_suit" - item_color = "secskirt" - body_parts_covered = CHEST|GROIN|ARMS - -/obj/item/clothing/under/rank/head_of_security/skirt - name = "head of security's skirt" - desc = "A security skirt decorated for those few with the dedication to achieve the position of Head of Security." - icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi' - icon_state = "hosskirt" - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - item_state = "gy_suit" - item_color = "hosskirt" - body_parts_covered = CHEST|GROIN|ARMS - /obj/item/clothing/under/corporateuniform name = "corporate uniform" desc = "A comfortable, tight fitting jumpsuit made of premium materials. Not space-proof." From 606639ce2338bc76747ea1e84b2ebd71681fb398 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Mon, 29 Jul 2019 05:52:49 -0400 Subject: [PATCH 07/27] part 1 fixing shit --- code/datums/mind.dm | 2 + code/game/objects/items/granters.dm | 205 ++++++++++++++-------------- code/modules/crafting/craft.dm | 9 ++ code/modules/crafting/recipes.dm | 1 + 4 files changed, 111 insertions(+), 106 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 51fc6c54f6..e50c89c0ac 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -64,6 +64,8 @@ var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator + var/list/learned_recipes //List of learned recipe TYPES. + /datum/mind/New(var/key) src.key = key soulOwner = src diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 21f6961e5d..4d66cd09f7 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -1,4 +1,3 @@ - ///books that teach things (intrinsic actions like bar flinging, spells like fireball or smoke, or martial arts)/// /obj/item/book/granter @@ -13,19 +12,52 @@ /obj/item/book/granter/proc/turn_page(mob/user) playsound(user, pick('sound/effects/pageturn1.ogg','sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg'), 30, 1) if(do_after(user,50, user)) - to_chat(user, "[pick(remarks)]") + if(remarks.len) + to_chat(user, "[pick(remarks)]") + else + to_chat(user, "You keep reading...") return TRUE return FALSE /obj/item/book/granter/proc/recoil(mob/user) //nothing so some books can just return +/obj/item/book/granter/proc/already_known(mob/user) + return FALSE + +/obj/item/book/granter/proc/on_reading_start(mob/user) + to_chat(user, "You start reading [name]...") + +/obj/item/book/granter/proc/on_reading_stopped(mob/user) + to_chat(user, "You stop reading...") + +/obj/item/book/granter/proc/on_reading_finished(mob/user) + to_chat(user, "You finish reading [name]!") + /obj/item/book/granter/proc/onlearned(mob/user) used = TRUE + /obj/item/book/granter/attack_self(mob/user) - if(reading == TRUE) + if(reading) to_chat(user, "You're already reading this!") return FALSE + if(!user.can_read(src)) + return FALSE + if(already_known(user)) + return FALSE + if(used && oneuse) + recoil(user) + else + on_reading_start(user) + reading = TRUE + for(var/i=1, i<=pages_to_mastery, i++) + if(!turn_page(user)) + on_reading_stopped() + reading = FALSE + return + if(do_after(user,50, user)) + on_reading_finished(user) + reading = FALSE return TRUE ///ACTION BUTTONS/// @@ -34,58 +66,23 @@ var/granted_action var/actionname = "catching bugs" //might not seem needed but this makes it so you can safely name action buttons toggle this or that without it fucking up the granter, also caps -/obj/item/book/granter/action/attack_self(mob/user) - . = ..() - if(!.) - return +/obj/item/book/granter/action/already_known(mob/user) if(!granted_action) - return - var/datum/action/G = new granted_action + return TRUE for(var/datum/action/A in user.actions) - if(A.type == G.type) + if(A.type == granted_action) to_chat(user, "You already know all about [actionname].") - qdel(G) - return - if(used == TRUE && oneuse == TRUE) - recoil(user) - else - to_chat(user, "You start reading about [actionname]...") - reading = TRUE - for(var/i=1, i<=pages_to_mastery, i++) - if(!turn_page(user)) - to_chat(user, "You stop reading...") - reading = FALSE - qdel(G) - return - if(do_after(user,50, user)) - to_chat(user, "You feel like you've got a good handle on [actionname]!") - G.Grant(user) - reading = FALSE + return TRUE + return FALSE -/obj/item/book/granter/action/drink_fling - granted_action = /datum/action/innate/drink_fling - name = "Tapper: This One's For You" - desc = "A seminal work on the dying art of booze sliding." - icon_state = "barbook" - actionname = "drink flinging" - oneuse = FALSE - remarks = list("The trick is keeping a low center of gravity it seems...", "The viscosity of the liquid is important...", "Accounting for crosswinds... really?", "Drag coefficients of various popular drinking glasses...", "What the heck is laminar flow and why does it matter here?", "Greasing the bar seems like it'd be cheating...", "I don't think I'll be working with superfluids...") +/obj/item/book/granter/action/on_reading_start(mob/user) + to_chat(user, "You start reading about [actionname]...") -/datum/action/innate/drink_fling - name = "Drink Flinging" - desc = "Toggles your ability to satisfyingly throw glasses without spilling them." - button_icon_state = "drinkfling_off" - check_flags = 0 - -/datum/action/innate/drink_fling/Activate() - button_icon_state = "drinkfling_on" - active = TRUE - UpdateButtonIcon() - -/datum/action/innate/drink_fling/Deactivate() - button_icon_state = "drinkfling_off" - active = FALSE - UpdateButtonIcon() +/obj/item/book/granter/action/on_reading_finished(mob/user) + to_chat(user, "You feel like you've got a good handle on [actionname]!") + var/datum/action/G = new granted_action + G.Grant(user) + onlearned(user) /obj/item/book/granter/action/origami granted_action = /datum/action/innate/origami @@ -120,38 +117,28 @@ var/spell var/spellname = "conjure bugs" -/obj/item/book/granter/spell/attack_self(mob/user) - . = ..() - if(!.) - return +/obj/item/book/granter/spell/already_known(mob/user) if(!spell) - return - var/obj/effect/proc_holder/spell/S = new spell + return TRUE for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list) - if(knownspell.type == S.type) + if(knownspell.type == spell) if(user.mind) if(iswizard(user)) - to_chat(user,"You're already far more versed in this spell than this flimsy howto book can provide.") + to_chat(user,"You're already far more versed in this spell than this flimsy how-to book can provide.") else to_chat(user,"You've already read this one.") - return - if(used == TRUE && oneuse == TRUE) - recoil(user) - else - to_chat(user, "You start reading about casting [spellname]...") - reading = TRUE - for(var/i=1, i<=pages_to_mastery, i++) - if(!turn_page(user)) - to_chat(user, "You stop reading...") - reading = FALSE - qdel(S) - return - if(do_after(user,50, user)) - to_chat(user, "You feel like you've experienced enough to cast [spellname]!") - user.mind.AddSpell(S) - user.log_message("learned the spell [spellname] ([S])", LOG_ATTACK, color="orange") - onlearned(user) - reading = FALSE + return TRUE + return FALSE + +/obj/item/book/granter/spell/on_reading_start(mob/user) + to_chat(user, "You start reading about casting [spellname]...") + +/obj/item/book/granter/spell/on_reading_finished(mob/user) + to_chat(user, "You feel like you've experienced enough to cast [spellname]!") + var/obj/effect/proc_holder/spell/S = new spell + user.mind.AddSpell(S) + user.log_message("learned the spell [spellname] ([S])", LOG_ATTACK, color="orange") + onlearned(user) /obj/item/book/granter/spell/recoil(mob/user) user.visible_message("[src] glows in a black light!") @@ -194,9 +181,9 @@ ..() to_chat(user,"Your stomach rumbles...") if(user.nutrition) - user.nutrition = 200 + user.set_nutrition(200) if(user.nutrition <= 0) - user.nutrition = 0 + user.set_nutrition(0) /obj/item/book/granter/spell/blind spell = /obj/effect/proc_holder/spell/targeted/trigger/blind @@ -280,7 +267,8 @@ if(ishuman(user)) to_chat(user,"HORSIE HAS RISEN") var/obj/item/clothing/magichead = new /obj/item/clothing/mask/horsehead/cursed(user.drop_location()) - user.dropItemToGround(user.wear_mask, TRUE) + if(!user.dropItemToGround(user.wear_mask)) + qdel(user.wear_mask) user.equip_to_slot_if_possible(magichead, SLOT_WEAR_MASK, TRUE, TRUE) qdel(src) else @@ -327,35 +315,25 @@ var/martialname = "bug jitsu" var/greet = "You feel like you have mastered the art in breaking code. Nice work, jackass." -/obj/item/book/granter/martial/attack_self(mob/user) - . = ..() - if(!.) - return + +/obj/item/book/granter/martial/already_known(mob/user) if(!martial) - return + return TRUE + var/datum/martial_art/MA = martial + if(user.mind.has_martialart(initial(MA.id))) + to_chat(user,"You already know [martialname]!") + return TRUE + return FALSE + +/obj/item/book/granter/martial/on_reading_start(mob/user) + to_chat(user, "You start reading about [martialname]...") + +/obj/item/book/granter/martial/on_reading_finished(mob/user) + to_chat(user, "[greet]") var/datum/martial_art/MA = new martial - if(user.mind.martial_art) - for(var/datum/martial_art/knownmartial in user.mind.martial_art) - if(knownmartial.type == MA.type) - to_chat(user,"You already know [martialname]!") - return - if(used == TRUE && oneuse == TRUE) - recoil(user) - else - to_chat(user, "You start reading about [martialname]...") - reading = TRUE - for(var/i=1, i<=pages_to_mastery, i++) - if(!turn_page(user)) - to_chat(user, "You stop reading...") - reading = FALSE - qdel(MA) - return - if(do_after(user,50, user)) - to_chat(user, "[greet]") - MA.teach(user) - user.log_message("learned the martial art [martialname] ([MA])", LOG_ATTACK, color="orange") - onlearned(user) - reading = FALSE + MA.teach(user) + user.log_message("learned the martial art [martialname] ([MA])", LOG_ATTACK, color="orange") + onlearned(user) /obj/item/book/granter/martial/cqc martial = /datum/martial_art/cqc @@ -416,3 +394,18 @@ icon_state = "blankscroll" // I did not include mushpunch's grant, it is not a book and the item does it just fine. + + +//Crafting Recipe books + +/obj/item/book/granter/crafting_recipe + var/list/crafting_recipe_types = list() + +/obj/item/book/granter/crafting_recipe/on_reading_finished(mob/user) + . = ..() + if(!user.mind) + return + for(var/crafting_recipe_type in crafting_recipe_types) + var/datum/crafting_recipe/R = crafting_recipe_type + user.mind.teach_crafting_recipe(crafting_recipe_type) +to_chat(user,"You learned how to make [initial(R.name)].") \ No newline at end of file diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 3e96512bb8..0fb46c3e46 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -317,6 +317,8 @@ var/list/cant_craft = list() for(var/rec in GLOB.crafting_recipes) var/datum/crafting_recipe/R = rec + if(!R.always_availible && !(R.type in user?.mind?.learned_recipes)) //User doesn't actually know how to make this. + continue if((R.category != cur_category) || (R.subcategory != cur_subcategory)) continue if(check_contents(R, surroundings)) @@ -431,3 +433,10 @@ data["tool_text"] = tool_text return data + +//Mind helpers + +/datum/mind/proc/teach_crafting_recipe(R) + if(!learned_recipes) + learned_recipes = list() + learned_recipes |= R \ No newline at end of file diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index f0665682a9..3c614c6a9e 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -9,6 +9,7 @@ var/chem_catalysts[] = list() //like tools but for reagents var/category = CAT_NONE //where it shows up in the crafting UI var/subcategory = CAT_NONE + var/always_availible = TRUE //Set to FALSE if it needs to be learned first. /datum/crafting_recipe/pin_removal name = "Pin Removal" From 7ca32cd97fa1469b3d671296b1883f99476f0fbf Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Mon, 29 Jul 2019 07:28:38 -0400 Subject: [PATCH 08/27] port 2 --- code/__DEFINES/melee.dm | 10 ++++++ code/datums/martial.dm | 1 + code/datums/martial/boxing.dm | 1 + code/datums/martial/cqc.dm | 1 + code/datums/martial/krav_maga.dm | 1 + code/datums/martial/mushpunch.dm | 1 + code/datums/martial/plasma_fist.dm | 1 + code/datums/martial/psychotic_brawl.dm | 1 + code/datums/martial/sleeping_carp.dm | 1 + code/datums/martial/wrestling.dm | 1 + code/datums/mind.dm | 5 +++ code/game/objects/items/granters.dm | 34 +++++++++++++++---- .../items/implants/implant_krav_maga.dm | 2 +- tgstation.dme | 1 + 14 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 code/__DEFINES/melee.dm diff --git a/code/__DEFINES/melee.dm b/code/__DEFINES/melee.dm new file mode 100644 index 0000000000..cb4a433211 --- /dev/null +++ b/code/__DEFINES/melee.dm @@ -0,0 +1,10 @@ +//Martial arts defines + +#define MARTIALART_BOXING "boxing" +#define MARTIALART_WRESTLING "wrestling" +#define MARTIALART_SLEEPINGCARP "sleeping carp" +#define MARTIALART_PSYCHOBRAWL "psychotic brawling" +#define MARTIALART_MUSHPUNCH "mushroom punch" +#define MARTIALART_KRAVMAGA "krav maga" +#define MARTIALART_CQC "CQC" +#define MARTIALART_PLASMAFIST "plasma fist" \ No newline at end of file diff --git a/code/datums/martial.dm b/code/datums/martial.dm index ae8f92a342..d119759efc 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -2,6 +2,7 @@ var/name = "Martial Art" var/streak = "" var/max_streak_length = 6 + var/id = "" //ID, used by mind/has_martialartcode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proc var/current_target var/datum/martial_art/base // The permanent style. This will be null unless the martial art is temporary var/deflection_chance = 0 //Chance to deflect projectiles diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index c93fc47f2b..7399528e1c 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -1,5 +1,6 @@ /datum/martial_art/boxing name = "Boxing" + id = MARTIALART_BOXING /datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) to_chat(A, "Can't disarm while boxing!") diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index 55cd4a3f7a..71545476ff 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -6,6 +6,7 @@ /datum/martial_art/cqc name = "CQC" + id = MARTIALART_CQC help_verb = /mob/living/carbon/human/proc/CQC_help block_chance = 75 var/just_a_cook = FALSE diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index cdf932e127..13ba942edd 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -1,5 +1,6 @@ /datum/martial_art/krav_maga name = "Krav Maga" + id = MARTIALART_KRAVMAGA var/datum/action/neck_chop/neckchop = new/datum/action/neck_chop() var/datum/action/leg_sweep/legsweep = new/datum/action/leg_sweep() var/datum/action/lung_punch/lungpunch = new/datum/action/lung_punch() diff --git a/code/datums/martial/mushpunch.dm b/code/datums/martial/mushpunch.dm index 33d5bb51bf..1ef7734771 100644 --- a/code/datums/martial/mushpunch.dm +++ b/code/datums/martial/mushpunch.dm @@ -1,5 +1,6 @@ /datum/martial_art/mushpunch name = "Mushroom Punch" + id = MARTIALART_MUSHPUNCH /datum/martial_art/mushpunch/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) var/atk_verb diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm index f540dc0783..e38a011db0 100644 --- a/code/datums/martial/plasma_fist.dm +++ b/code/datums/martial/plasma_fist.dm @@ -4,6 +4,7 @@ /datum/martial_art/plasma_fist name = "Plasma Fist" + id = MARTIALART_PLASMAFIST help_verb = /mob/living/carbon/human/proc/plasma_fist_help diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index 1cb18f903f..8f1a33a8b3 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -1,5 +1,6 @@ /datum/martial_art/psychotic_brawling name = "Psychotic Brawling" + id = MARTIALART_PSYCHOBRAWL /datum/martial_art/psychotic_brawling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) return psycho_attack(A,D) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 5f19c37b99..e205d7a435 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -6,6 +6,7 @@ /datum/martial_art/the_sleeping_carp name = "The Sleeping Carp" + id = MARTIALART_SLEEPINGCARP deflection_chance = 100 reroute_deflection = TRUE no_guns = TRUE diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index e57edf9fb2..e07fa27ef5 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -10,6 +10,7 @@ /datum/martial_art/wrestling name = "Wrestling" + id = MARTIALART_WRESTLING var/datum/action/slam/slam = new/datum/action/slam() var/datum/action/throw_wrassle/throw_wrassle = new/datum/action/throw_wrassle() var/datum/action/kick/kick = new/datum/action/kick() diff --git a/code/datums/mind.dm b/code/datums/mind.dm index e50c89c0ac..8e61801e15 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -781,6 +781,11 @@ mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist) mind.active = 1 //indicates that the mind is currently synced with a client +/datum/mind/proc/has_martialart(var/string) + if(martial_art && martial_art.id == string) + return martial_art + return FALSE + /mob/dead/new_player/sync_mind() return diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 4d66cd09f7..686c6fd511 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -41,8 +41,6 @@ if(reading) to_chat(user, "You're already reading this!") return FALSE - if(!user.can_read(src)) - return FALSE if(already_known(user)) return FALSE if(used && oneuse) @@ -84,6 +82,31 @@ G.Grant(user) onlearned(user) +/obj/item/book/granter/action/drink_fling + granted_action = /datum/action/innate/drink_fling + name = "Tapper: This One's For You" + desc = "A seminal work on the dying art of booze sliding." + icon_state = "barbook" + actionname = "drink flinging" + oneuse = FALSE + remarks = list("The trick is keeping a low center of gravity it seems...", "The viscosity of the liquid is important...", "Accounting for crosswinds... really?", "Drag coefficients of various popular drinking glasses...", "What the heck is laminar flow and why does it matter here?", "Greasing the bar seems like it'd be cheating...", "I don't think I'll be working with superfluids...") + +/datum/action/innate/drink_fling + name = "Drink Flinging" + desc = "Toggles your ability to satisfyingly throw glasses without spilling them." + button_icon_state = "drinkfling_off" + check_flags = 0 + +/datum/action/innate/drink_fling/Activate() + button_icon_state = "drinkfling_on" + active = TRUE + UpdateButtonIcon() + +/datum/action/innate/drink_fling/Deactivate() + button_icon_state = "drinkfling_off" + active = FALSE + UpdateButtonIcon() + /obj/item/book/granter/action/origami granted_action = /datum/action/innate/origami name = "The Art of Origami" @@ -181,9 +204,9 @@ ..() to_chat(user,"Your stomach rumbles...") if(user.nutrition) - user.set_nutrition(200) + user.nutrition = 200 if(user.nutrition <= 0) - user.set_nutrition(0) + user.nutrition = 0 /obj/item/book/granter/spell/blind spell = /obj/effect/proc_holder/spell/targeted/trigger/blind @@ -315,7 +338,6 @@ var/martialname = "bug jitsu" var/greet = "You feel like you have mastered the art in breaking code. Nice work, jackass." - /obj/item/book/granter/martial/already_known(mob/user) if(!martial) return TRUE @@ -408,4 +430,4 @@ for(var/crafting_recipe_type in crafting_recipe_types) var/datum/crafting_recipe/R = crafting_recipe_type user.mind.teach_crafting_recipe(crafting_recipe_type) -to_chat(user,"You learned how to make [initial(R.name)].") \ No newline at end of file + to_chat(user,"You learned how to make [initial(R.name)].") \ No newline at end of file diff --git a/code/game/objects/items/implants/implant_krav_maga.dm b/code/game/objects/items/implants/implant_krav_maga.dm index 3a751ecd0e..373658b386 100644 --- a/code/game/objects/items/implants/implant_krav_maga.dm +++ b/code/game/objects/items/implants/implant_krav_maga.dm @@ -21,7 +21,7 @@ return if(!H.mind) return - if(istype(H.mind.martial_art, /datum/martial_art/krav_maga)) + if(H.mind.has_martialart(MARTIALART_KRAVMAGA)) style.remove(H) else style.teach(H,1) diff --git a/tgstation.dme b/tgstation.dme index 24477d885b..7e7b5a00c9 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -62,6 +62,7 @@ #include "code\__DEFINES\maths.dm" #include "code\__DEFINES\MC.dm" #include "code\__DEFINES\medal.dm" +#include "code\__DEFINES\melee.dm" #include "code\__DEFINES\menu.dm" #include "code\__DEFINES\misc.dm" #include "code\__DEFINES\mobs.dm" From f9dfe5ae975b3481d00bc4b8441d5fb250887c1d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Jul 2019 07:53:11 -0400 Subject: [PATCH 09/27] Update special.dm --- code/modules/projectiles/ammunition/energy/special.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index c7e0037d73..7b4e0bfa97 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -65,5 +65,5 @@ /obj/item/ammo_casing/energy/emitter fire_sound = 'sound/weapons/emitter.ogg' - e_cost = 5000 - projectile_type = /obj/item/projectile/beam/emitter \ No newline at end of file + e_cost = 2000 //20,000 is in the cell making this 10 shots before reload + projectile_type = /obj/item/projectile/beam/emitter From 969b9286427bae854feee9e06525029d106f06e4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Jul 2019 07:53:41 -0400 Subject: [PATCH 10/27] Update special.dm --- code/modules/projectiles/guns/energy/special.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index d5722df74c..87bfd578bc 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -309,7 +309,7 @@ /obj/item/gun/energy/emitter name = "Emitter Carbine" - desc = "A small emitter fitted into a handgun case, do to size constraints and safety it can only shoot about four times when fully charged." + desc = "A small emitter fitted into a handgun case, do to size constraints and safety it can only shoot about ten times when fully charged." icon_state = "emitter_carbine" force = 12 w_class = WEIGHT_CLASS_SMALL @@ -322,4 +322,4 @@ if(!QDELETED(cell) && (cell.charge > shot.e_cost)) add_overlay("emitter_carbine_empty") else - add_overlay("emitter_carbine") \ No newline at end of file + add_overlay("emitter_carbine") From 57b62943106a68530d5783510a191dfa8349cc11 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Jul 2019 07:54:17 -0400 Subject: [PATCH 11/27] Update uplink_items.dm --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index f5ebc50941..6bee64a442 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1839,7 +1839,7 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes /datum/uplink_item/role_restricted/emitter_cannon name = "Emitter Cannon" - desc = "A small emitter fitted into a gun case, do to size constraints and safety it can only shoot about four times when fully charged." + desc = "A small emitter fitted into a gun case, do to size constraints and safety it can only shoot about ten times when fully charged." cost = 5 //Low ammo, and deals same as 10mm but emp-able item = /obj/item/gun/energy/emitter restricted_roles = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") From d610d9e4ebd7ef6e7f62a93934cec68403f5ee95 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Mon, 29 Jul 2019 12:16:58 -0400 Subject: [PATCH 12/27] green man told me to --- _maps/map_files/BoxStation/BoxStation.dmm | 235 ++++++++-------- .../map_files/Deltastation/DeltaStation2.dmm | 151 +++++----- _maps/map_files/MetaStation/MetaStation.dmm | 199 ++++++------- _maps/map_files/PubbyStation/PubbyStation.dmm | 266 +++++++++--------- _maps/map_files/generic/CentCom.dmm | 80 +++--- 5 files changed, 474 insertions(+), 457 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 50b5504af5..553a7cc254 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -41,24 +41,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/bar) -"aad" = ( -/obj/structure/bed, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm4"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "aae" = ( /obj/effect/landmark/carpspawn, /turf/open/space, @@ -595,19 +577,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/security/execution/transfer) -"abz" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm5"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) "abA" = ( /obj/machinery/light, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -2149,55 +2118,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) -"aeD" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm6"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"aeE" = ( -/obj/structure/bed, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm3"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aeF" = ( -/obj/structure/bed, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm2"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "aeG" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -2574,11 +2494,6 @@ }, /turf/open/floor/plasteel, /area/security/main) -"afn" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/virology) "afo" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Three" @@ -2599,14 +2514,6 @@ }, /turf/open/space/basic, /area/space) -"afq" = ( -/obj/structure/bed, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/semen, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plating, -/area/maintenance/bar) "aft" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 5 @@ -7503,6 +7410,24 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"aqn" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "aqo" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -8283,6 +8208,19 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"asu" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "asv" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -8374,6 +8312,19 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"asL" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "asM" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -8980,6 +8931,24 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness) +"auw" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "aux" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -10846,6 +10815,24 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) +"ayV" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "ayW" = ( /turf/closed/wall, /area/ai_monitored/storage/eva) @@ -31259,6 +31246,9 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, +/obj/machinery/keycard_auth{ + step_y = 25 + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "bvH" = ( @@ -39377,6 +39367,11 @@ /obj/machinery/announcement_system, /turf/open/floor/plasteel, /area/tcommsat/computer) +"bOm" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/virology) "bOn" = ( /obj/machinery/light{ dir = 1 @@ -56671,12 +56666,6 @@ /obj/item/stock_parts/cell/high, /turf/open/floor/plasteel/white, /area/science/circuit) -"eef" = ( -/obj/machinery/autolathe{ - name = "public autolathe" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) "evR" = ( /turf/open/floor/plating, /area/maintenance/bar) @@ -56912,6 +56901,12 @@ /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) +"ium" = ( +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "izv" = ( /obj/machinery/vending/clothing, /obj/machinery/light/small{ @@ -57146,12 +57141,6 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) -"lKX" = ( -/mob/living/simple_animal/bot/cleanbot{ - name = "C.L.E.A.N." - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "lMg" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -57383,6 +57372,14 @@ }, /turf/open/floor/plating, /area/construction) +"rMN" = ( +/obj/structure/bed, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/semen, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plating, +/area/maintenance/bar) "rNc" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -57594,6 +57591,12 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"urE" = ( +/obj/machinery/autolathe{ + name = "public autolathe" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) "usO" = ( /obj/machinery/vending/snack/random, /obj/machinery/light/small{ @@ -79853,7 +79856,7 @@ sAM imH evR evR -afq +rMN bCq bUs bLv @@ -81615,7 +81618,7 @@ cNG cNJ bLF aZK -eef +urE bbR bqt cBq @@ -88517,13 +88520,13 @@ aoD aod aqe arf -aad +aqn ath arf -aeE +auw ath arf -aeF +ayV ath dgz aCd @@ -90317,7 +90320,7 @@ cSA aqe arf ari -abz +asu aun auW avR @@ -91345,7 +91348,7 @@ apr aqj arf ark -aeD +asL aun avu awt @@ -94210,7 +94213,7 @@ blm bmL boi bpw -lKX +ium bsx btX bvj @@ -96541,7 +96544,7 @@ bof fTg bLV bNd -afn +bOm bPp bQF bRN @@ -98347,7 +98350,7 @@ bRQ bOr bSQ bWj -afn +bOm bXc bYe bNd @@ -98861,7 +98864,7 @@ bRQ bOr bSQ bWj -afn +bOm bXc bYe bNd diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index b4aabc3676..487126d920 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -124,22 +124,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"aaq" = ( -/obj/structure/bed, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/item/bedsheet/clown, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/service) -"aar" = ( -/obj/structure/bed, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/item/bedsheet/mime, -/turf/open/floor/wood, -/area/hallway/secondary/service) "aas" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland1"; @@ -159,52 +143,6 @@ /obj/effect/landmark/xeno_spawn, /turf/open/space, /area/solar/starboard/fore) -"aav" = ( -/obj/structure/bed, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aaw" = ( -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"aax" = ( -/obj/structure/bed, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"aay" = ( -/obj/structure/bed, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plasteel/grimy, -/area/crew_quarters/dorms) -"aaz" = ( -/obj/structure/bed, -/obj/machinery/light, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aaA" = ( -/obj/structure/bed, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) "aaE" = ( /obj/structure/lattice/catwalk, /turf/open/space, @@ -1072,6 +1010,13 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"aez" = ( +/obj/machinery/keycard_auth{ + step_x = 0; + step_y = 0 + }, +/turf/closed/wall, +/area/quartermaster/qm) "aeB" = ( /obj/machinery/status_display, /turf/closed/wall, @@ -13768,6 +13713,14 @@ }, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) +"aDF" = ( +/obj/structure/bed, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/bedsheet/clown, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/service) "aDG" = ( /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) @@ -16922,6 +16875,14 @@ }, /turf/open/floor/wood, /area/hallway/secondary/service) +"aIP" = ( +/obj/structure/bed, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/item/bedsheet/mime, +/turf/open/floor/wood, +/area/hallway/secondary/service) "aIQ" = ( /obj/structure/dresser, /turf/open/floor/wood{ @@ -79006,6 +78967,17 @@ /obj/structure/dresser, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"cCi" = ( +/obj/structure/bed, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "cCj" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/item/clothing/suit/jacket{ @@ -81023,10 +80995,24 @@ icon_state = "wood-broken2" }, /area/crew_quarters/dorms) +"cFx" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "cFy" = ( /obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/dorms) +"cFz" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "cFA" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green, @@ -88896,6 +88882,11 @@ /obj/structure/chair/office/dark, /turf/open/floor/wood, /area/crew_quarters/dorms) +"cTc" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/dorms) "cTd" = ( /obj/structure/table, /obj/item/storage/fancy/donut_box, @@ -90092,6 +90083,15 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) +"cUX" = ( +/obj/structure/bed, +/obj/machinery/light, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "cUY" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/item/clothing/suit/jacket{ @@ -127214,6 +127214,13 @@ dir = 1 }, /area/science/circuit) +"poI" = ( +/obj/structure/bed, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) "psi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bodycontainer/morgue{ @@ -151680,7 +151687,7 @@ djm fow dod dod -aaA +poI dfY ajr aad @@ -160834,11 +160841,11 @@ ary aAf aBu aCB -aaq +aDF aEJ aFV aDI -aar +aIP aKo aLE aMX @@ -174465,7 +174472,7 @@ aaa aaa aad aQQ -aQQ +aez aUp aVY aXE @@ -178374,7 +178381,7 @@ cyY cAx cCd cDD -aaw +cFx cGU cAw cJl @@ -178382,7 +178389,7 @@ cLa cMx cIi cPR -aax +cFz cDG cUW cAw @@ -179155,7 +179162,7 @@ cNU cDI cFB cDI -aaz +cUX cAw cYj cZV @@ -179402,7 +179409,7 @@ czc cAw cCg cDG -aax +cFz cGW cIi cJo @@ -180171,7 +180178,7 @@ bHq cxt coI cAw -aav +cCi cDI cFB cDI @@ -180439,7 +180446,7 @@ cMB cIi cPW cRv -aay +cTc cVb cAw cYp diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 7faca77d70..a657856962 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2,58 +2,10 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Cabin3"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) "aac" = ( /obj/effect/landmark/carpspawn, /turf/open/space, /area/space) -"aad" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/button/door{ - id = "Cabin4"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/bed, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aae" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Cabin2"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "aaf" = ( /obj/structure/lattice, /turf/open/space, @@ -300,19 +252,6 @@ }, /turf/open/floor/plating, /area/security/prison) -"aaM" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Cabin5"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) "aaN" = ( /obj/structure/cable{ icon_state = "0-2" @@ -355,37 +294,6 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"aaU" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Cabin6"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aaV" = ( -/obj/machinery/button/door{ - id = "Cabin7"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) "aaY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -10233,6 +10141,22 @@ /obj/item/clothing/under/assistantformal, /turf/open/floor/wood, /area/crew_quarters/dorms) +"asV" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Cabin3"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "asW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10271,6 +10195,23 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"ata" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/button/door{ + id = "Cabin4"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "atb" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/machinery/airalarm{ @@ -11951,6 +11892,21 @@ /obj/item/clothing/under/suit_jacket/tan, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"awE" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Cabin2"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "awF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -11964,6 +11920,19 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"awG" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Cabin5"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "awH" = ( /obj/machinery/newscaster{ pixel_y = 32 @@ -15014,6 +14983,22 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"aCJ" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Cabin6"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "aCK" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/machinery/airalarm{ @@ -17590,6 +17575,21 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) +"aHS" = ( +/obj/machinery/button/door{ + id = "Cabin7"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + specialfunctions = 4 + }, +/obj/structure/bed, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "aHT" = ( /obj/structure/chair/wood/normal{ dir = 4 @@ -20373,6 +20373,9 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, +/obj/machinery/keycard_auth{ + step_y = 23 + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "aNS" = ( @@ -120053,10 +120056,10 @@ agz aoV dhs arB -aab +asV auf arB -aae +awE axE arB dhA @@ -121595,19 +121598,19 @@ anK aoZ aqk arB -aad +ata aul avp -aaM +awG axJ avp aAj arB -aaU +aCJ aEe arB boS -aaV +aHS aJh aKt aLW diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 228e90992e..e25fc7ccc1 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2,126 +2,12 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm3Shutters"; - name = "Privacy Shutters Control"; - pixel_y = 26 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"aac" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm2Shutters"; - name = "Privacy Shutters Control"; - pixel_y = 26; - req_access_txt = "0" - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "aad" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating{ icon_state = "platingdmg3" }, /area/maintenance/department/science) -"aae" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm1Shutters"; - name = "Privacy Shutters Control"; - pixel_y = 26; - req_access_txt = "0" - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plasteel/grimy, -/area/crew_quarters/dorms) -"aaf" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aag" = ( -/obj/machinery/mineral/stacking_unit_console{ - dir = 2; - machinedir = 8; - pixel_x = -32; - pixel_y = 32 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "garbagestacked" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aah" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "garbagestacked" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aai" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 1; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aaj" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aak" = ( -/obj/machinery/recycler, -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"aal" = ( -/obj/structure/chair/comfy/black, -/obj/structure/sign/plaques/kiddie{ - desc = "An embossed piece of paper from the Third University of Harvard."; - name = "\improper 'Diploma' frame"; - pixel_y = 32 - }, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1" - }, -/obj/effect/landmark/start/lawyer, -/turf/open/floor/wood, -/area/lawoffice) -"aam" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) "abf" = ( /obj/structure/bed, /turf/open/floor/plating, @@ -8719,6 +8605,16 @@ }, /turf/open/floor/plating, /area/crew_quarters/dorms) +"ave" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm3Shutters"; + name = "Privacy Shutters Control"; + pixel_y = 26 + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/dorms) "avf" = ( /obj/machinery/light/small{ dir = 1 @@ -10162,6 +10058,17 @@ }, /turf/open/floor/plating, /area/crew_quarters/dorms) +"ayj" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm2Shutters"; + name = "Privacy Shutters Control"; + pixel_y = 26; + req_access_txt = "0" + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "ayk" = ( /obj/machinery/light/small{ dir = 1 @@ -11609,6 +11516,17 @@ }, /turf/open/floor/plating, /area/crew_quarters/dorms) +"aBM" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "Dorm1Shutters"; + name = "Privacy Shutters Control"; + pixel_y = 26; + req_access_txt = "0" + }, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/dorms) "aBN" = ( /obj/machinery/light/small{ dir = 1 @@ -16769,6 +16687,13 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"aNV" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbagestacked" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "aNX" = ( /obj/machinery/disposal/deliveryChute{ dir = 8 @@ -17255,6 +17180,22 @@ /obj/item/shard, /turf/open/floor/plating, /area/maintenance/department/cargo) +"aPg" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "aPi" = ( /obj/machinery/light/small{ dir = 4 @@ -17620,6 +17561,16 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"aQo" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "aQp" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -24159,6 +24110,10 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, +/obj/machinery/keycard_auth{ + pixel_x = -23; + pixel_y = 0 + }, /turf/open/floor/plasteel, /area/quartermaster/qm) "beK" = ( @@ -51312,6 +51267,14 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) +"cvf" = ( +/obj/machinery/recycler, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "cvg" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/structure/flora/ausbushes/brflowers, @@ -52118,6 +52081,13 @@ }, /turf/open/floor/plasteel/dark, /area/library/lounge) +"cyp" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "cyy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -53734,6 +53704,19 @@ }, /turf/open/floor/plasteel/white, /area/medical/sleeper) +"eFG" = ( +/obj/machinery/mineral/stacking_unit_console{ + dir = 2; + machinedir = 8; + pixel_x = -32; + pixel_y = 32 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "garbagestacked" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "eHI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, @@ -61528,6 +61511,13 @@ /obj/structure/sign/warning/vacuum/external, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) +"xer" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) "xeB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -61781,6 +61771,20 @@ }, /turf/closed/wall/r_wall, /area/science/mixing) +"xJy" = ( +/obj/structure/chair/comfy/black, +/obj/structure/sign/plaques/kiddie{ + desc = "An embossed piece of paper from the Third University of Harvard."; + name = "\improper 'Diploma' frame"; + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/lawoffice) "xKc" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall/r_wall, @@ -81803,7 +81807,7 @@ ajM aiu aiu gSH -aal +xJy sJr sJr sJr @@ -99272,13 +99276,13 @@ ale asb coe apX -aab +ave awn apX -aac +ayj azr apX -aae +aBM aDb apX oFo @@ -101105,7 +101109,7 @@ aTm bbE bbE bbE -dps +bbE bbE bbE aEj @@ -101364,7 +101368,7 @@ bcA bdF beJ bfB -bbE +dps aZv aUC biz @@ -107513,9 +107517,9 @@ aaa aaa aLn aNT -aaf -aai -aam +xer +aQo +aPg aRu srZ aLm @@ -107771,7 +107775,7 @@ aaa aLm aLm aNU -aaj +cyp dqY aRv sZh @@ -108027,8 +108031,8 @@ aaa aaa aLm aME -aag -aaj +eFG +cyp dqY aRw sqQ @@ -108284,9 +108288,9 @@ aaa aaa aLo aMF -aah -aaj -aak +aNV +cyp +cvf aQn sqQ aSm @@ -108542,8 +108546,8 @@ aaa aLo aMG aNX -aaj -aaf +cyp +xer aRy aSn aSn diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 0f8e832d63..115ad3d363 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2248,11 +2248,6 @@ }, /turf/open/floor/plasteel, /area/tdome/arena_source) -"fR" = ( -/obj/item/paicard, -/obj/structure/table/wood, -/turf/open/floor/engine/cult, -/area/wizard_station) "fS" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -2940,22 +2935,6 @@ /obj/machinery/capture_the_flag/red, /turf/open/floor/circuit/green/anim, /area/ctf) -"hH" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/seclite, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paicard, -/turf/open/floor/plasteel/dark, -/area/centcom/ferry) "hI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -3730,13 +3709,6 @@ }, /turf/open/floor/plasteel, /area/centcom/control) -"jA" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap/syndie, -/turf/open/floor/plasteel/freezer, -/area/syndicate_mothership) "jB" = ( /obj/structure/noticeboard{ dir = 8; @@ -4222,14 +4194,6 @@ "ku" = ( /turf/closed/indestructible/fakeglass, /area/syndicate_mothership) -"kv" = ( -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/structure/table, -/obj/item/reagent_containers/rag/towel/syndicate, -/turf/open/floor/plasteel/freezer, -/area/syndicate_mothership) "kw" = ( /turf/open/floor/plasteel/yellowsiding, /area/centcom/supply) @@ -8429,6 +8393,13 @@ }, /turf/open/floor/plating, /area/syndicate_mothership) +"tg" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/soap/syndie, +/turf/open/floor/plasteel/freezer, +/area/syndicate_mothership) "tl" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating, @@ -11402,6 +11373,22 @@ /obj/structure/table/reinforced, /turf/open/floor/plasteel/grimy, /area/centcom/ferry) +"AL" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/seclite, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/paicard, +/turf/open/floor/plasteel/dark, +/area/centcom/ferry) "AM" = ( /obj/machinery/shuttle_manipulator, /turf/open/floor/circuit/green, @@ -11598,6 +11585,11 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"Bp" = ( +/obj/item/paicard, +/obj/structure/table/wood, +/turf/open/floor/engine/cult, +/area/wizard_station) "Bs" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole/bookmanagement, @@ -17441,6 +17433,14 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"Rl" = ( +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/structure/table, +/obj/item/reagent_containers/rag/towel/syndicate, +/turf/open/floor/plasteel/freezer, +/area/syndicate_mothership) "Rm" = ( /obj/structure/chair/wood/wings{ dir = 3 @@ -25747,7 +25747,7 @@ lI lI lI Ax -fR +Bp qZ qZ Ax @@ -37828,8 +37828,8 @@ nx mA Tz ku -jA -kv +tg +Rl uM QV wp @@ -56343,7 +56343,7 @@ yr sw sw Ad -hH +AL Bx sw Cv From 54f3934f5543a85bc77c0b6e34482a0dba330bfa Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Mon, 29 Jul 2019 12:50:13 -0400 Subject: [PATCH 13/27] step to pixel --- _maps/map_files/BoxStation/BoxStation.dmm | 2 +- _maps/map_files/Deltastation/DeltaStation2.dmm | 5 +---- _maps/map_files/MetaStation/MetaStation.dmm | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 553a7cc254..980e23188a 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -31247,7 +31247,7 @@ dir = 8 }, /obj/machinery/keycard_auth{ - step_y = 25 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/quartermaster/qm) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 487126d920..fd7c0a3c00 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1011,10 +1011,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aez" = ( -/obj/machinery/keycard_auth{ - step_x = 0; - step_y = 0 - }, +/obj/machinery/keycard_auth, /turf/closed/wall, /area/quartermaster/qm) "aeB" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index a657856962..75d7466371 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -20374,7 +20374,7 @@ dir = 4 }, /obj/machinery/keycard_auth{ - step_y = 23 + pixel_y = 23 }, /turf/open/floor/plasteel, /area/quartermaster/qm) From db198ba217fc1cd52ea034029aefe792e18d8e82 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Wed, 31 Jul 2019 01:17:12 -0500 Subject: [PATCH 14/27] fix leg sweep --- code/datums/martial/krav_maga.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index cdf932e127..2a2e69bea5 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -92,7 +92,7 @@ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) D.apply_damage(5, BRUTE) - D.Knockdown(40, override_hardstun = 0.01, 25) + D.Knockdown(40, override_hardstun = 0.01, override_stamdmg = 25) log_combat(A, D, "leg sweeped") return 1 From bbb380e043457285d9ee61e94f83eda491446427 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 31 Jul 2019 09:03:27 -0400 Subject: [PATCH 15/27] Update medical.dm --- code/game/objects/items/stacks/medical.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 4bb3359c2f..5610cbad9a 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -18,7 +18,7 @@ /obj/item/stack/medical/attack(mob/living/M, mob/user) - if(M.stat == DEAD) + if(M.stat == DEAD && !stop_bleeding) var/t_him = "it" if(M.gender == MALE) t_him = "him" From c68fb90955a019e7119deaac568e78d41281aa4e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 31 Jul 2019 12:03:56 -0400 Subject: [PATCH 16/27] Update snacks_cake.dm --- code/modules/food_and_drinks/food/snacks_cake.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index 1eeea79410..6d10a2c6ef 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -283,7 +283,7 @@ tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) foodtype = GRAIN | DAIRY | FRUIT | SUGAR -obj/item/reagent_containers/food/snacks/store/cake/holy_cake +/obj/item/reagent_containers/food/snacks/store/cake/holy_cake name = "angel food cake" desc = "A cake made for angels and chaplains alike! Contains holy water." icon = 'modular_citadel/icons/obj/food/cake.dmi' @@ -322,7 +322,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake tastes = list("cake" = 5, "sweetness" = 5, "batter" = 1) foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD -obj/item/reagent_containers/food/snacks/store/cake/hardware_cake +/obj/item/reagent_containers/food/snacks/store/cake/hardware_cake name = "hardware cake" desc = "A cake that is made with electronic boards and leaks acid..." icon = 'modular_citadel/icons/obj/food/cake.dmi' From 3baac830211a631e486391576627d1fabd5d51fa Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Wed, 31 Jul 2019 16:40:35 -0700 Subject: [PATCH 17/27] Added --- code/modules/mob/dead/new_player/new_player.dm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 4ccac5f9d7..1ff4f9fcb9 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -429,7 +429,19 @@ /mob/dead/new_player/proc/LateChoices() - var/dat = "
Round Duration: [DisplayTimeText(world.time - SSticker.round_start_time)]
" + + var/level = "green" + switch(GLOB.security_level) + if(SEC_LEVEL_BLUE) + level = "blue" + if(SEC_LEVEL_AMBER) + level = "amber" + if(SEC_LEVEL_RED) + level = "red" + if(SEC_LEVEL_DELTA) + level = "delta" + + var/dat = "
Round Duration: [DisplayTimeText(world.time - SSticker.round_start_time)]
Alert Level: [capitalize(level)]
" if(SSshuttle.emergency) switch(SSshuttle.emergency.mode) @@ -438,7 +450,10 @@ if(SHUTTLE_CALL) if(!SSshuttle.canRecall()) dat += "
The station is currently undergoing evacuation procedures.

" + + + var/available_job_count = 0 for(var/datum/job/job in SSjob.occupations) if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE) From c0698bd220436862a7ef0805abc7a89f383860a5 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Wed, 31 Jul 2019 16:40:49 -0700 Subject: [PATCH 18/27] whitespace --- code/modules/mob/dead/new_player/new_player.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 1ff4f9fcb9..47c6cf0170 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -450,10 +450,7 @@ if(SHUTTLE_CALL) if(!SSshuttle.canRecall()) dat += "
The station is currently undergoing evacuation procedures.

" - - - var/available_job_count = 0 for(var/datum/job/job in SSjob.occupations) if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE) From 11764c04346a83b4b236407ca535fbdbede7c17a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 01:25:54 -0500 Subject: [PATCH 19/27] Automatic changelog generation for PR #9000 [ci skip] --- html/changelogs/AutoChangeLog-pr-9000.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-9000.yml diff --git a/html/changelogs/AutoChangeLog-pr-9000.yml b/html/changelogs/AutoChangeLog-pr-9000.yml new file mode 100644 index 0000000000..3fa3e8946f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-9000.yml @@ -0,0 +1,4 @@ +author: "EgoSumStultus" +delete-after: True +changes: + - bugfix: "FIXED SHIELF" From e458eb1f9fcc477cc4fadd96a19897b68dee07d5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 01:26:09 -0500 Subject: [PATCH 20/27] Automatic changelog generation for PR #9001 [ci skip] --- html/changelogs/AutoChangeLog-pr-9001.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-9001.yml diff --git a/html/changelogs/AutoChangeLog-pr-9001.yml b/html/changelogs/AutoChangeLog-pr-9001.yml new file mode 100644 index 0000000000..be2fd2b833 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-9001.yml @@ -0,0 +1,4 @@ +author: "Linzolle" +delete-after: True +changes: + - rscdel: "duplicate definition of hos and sec skirts" From 3848d975726a34c5bcd3db8c48228b650f106929 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 01:26:39 -0500 Subject: [PATCH 21/27] Automatic changelog generation for PR #8988 [ci skip] --- html/changelogs/AutoChangeLog-pr-8988.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8988.yml diff --git a/html/changelogs/AutoChangeLog-pr-8988.yml b/html/changelogs/AutoChangeLog-pr-8988.yml new file mode 100644 index 0000000000..9145d73c01 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8988.yml @@ -0,0 +1,5 @@ +author: "kiwedespars" +delete-after: True +changes: + - rscadd: "regenerative materia to hallucination sting" + - rscadd: "mindbreaker toxin as an actual chemical to hallucination sting" From fc61eb84fd1ec78cfe0dbf13de1d03783b1a1b64 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 01:28:24 -0500 Subject: [PATCH 22/27] Automatic changelog generation for PR #8953 [ci skip] --- html/changelogs/AutoChangeLog-pr-8953.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8953.yml diff --git a/html/changelogs/AutoChangeLog-pr-8953.yml b/html/changelogs/AutoChangeLog-pr-8953.yml new file mode 100644 index 0000000000..2128149556 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8953.yml @@ -0,0 +1,5 @@ +author: "Toriate" +delete-after: True +changes: + - rscadd: "RPD now has inhands" + - imageadd: "New sprites for RCDs and RPDs, inhands included" From f8d7185ec1e4c7ed9889e87199ef3839c4e9164f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 01:29:12 -0500 Subject: [PATCH 23/27] Automatic changelog generation for PR #8958 [ci skip] --- html/changelogs/AutoChangeLog-pr-8958.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8958.yml diff --git a/html/changelogs/AutoChangeLog-pr-8958.yml b/html/changelogs/AutoChangeLog-pr-8958.yml new file mode 100644 index 0000000000..a800b1b218 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8958.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Emitter gun" From 30b5104e63b8587be9461df11a0ab8d2f3d40501 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 02:55:20 -0500 Subject: [PATCH 24/27] Automatic changelog generation for PR #9026 [ci skip] --- html/changelogs/AutoChangeLog-pr-9026.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-9026.yml diff --git a/html/changelogs/AutoChangeLog-pr-9026.yml b/html/changelogs/AutoChangeLog-pr-9026.yml new file mode 100644 index 0000000000..bf8ce9efbe --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-9026.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "The alert level is displayed at the job selection screen." From 17342614eb6f261158441c375641537bb6556cdb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 02:55:36 -0500 Subject: [PATCH 25/27] Automatic changelog generation for PR #9008 [ci skip] --- html/changelogs/AutoChangeLog-pr-9008.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-9008.yml diff --git a/html/changelogs/AutoChangeLog-pr-9008.yml b/html/changelogs/AutoChangeLog-pr-9008.yml new file mode 100644 index 0000000000..0c73bc8ae9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-9008.yml @@ -0,0 +1,4 @@ +author: "Linzolle" +delete-after: True +changes: + - bugfix: "Krav Maga leg sweep now works properly." From 0b97f3f99d9d5faab36fffa7af9c4810eb3584c5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 02:56:01 -0500 Subject: [PATCH 26/27] Automatic changelog generation for PR #9005 [ci skip] --- html/changelogs/AutoChangeLog-pr-9005.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-9005.yml diff --git a/html/changelogs/AutoChangeLog-pr-9005.yml b/html/changelogs/AutoChangeLog-pr-9005.yml new file mode 100644 index 0000000000..d65017a00d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-9005.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "QM rooms not getting Key Aunths" From 753548946df220b6387ae1a42fa4202650f4dc37 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Aug 2019 03:43:48 -0500 Subject: [PATCH 27/27] Automatic changelog generation for PR #8994 [ci skip] --- html/changelogs/AutoChangeLog-pr-8994.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8994.yml diff --git a/html/changelogs/AutoChangeLog-pr-8994.yml b/html/changelogs/AutoChangeLog-pr-8994.yml new file mode 100644 index 0000000000..a3a4fef0b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8994.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "the oxyloss fullscreen overlays now also take in consideration 1/5 of the user stamina loss."