From 6e18e398449215130e8804dca31475392210b7ff Mon Sep 17 00:00:00 2001 From: Glamyrio Date: Thu, 7 May 2026 01:24:32 +0300 Subject: [PATCH 1/4] hype --- .../meta_redesign/code/plane_master.dm | 2 +- .../security_extended/code/weapon/melee.dm | 57 ++++++++++++------ .../security_extended/sound/light_woodhit.ogg | Bin 0 -> 14210 bytes 3 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 modular_meta/features/security_extended/sound/light_woodhit.ogg diff --git a/modular_meta/features/meta_redesign/code/plane_master.dm b/modular_meta/features/meta_redesign/code/plane_master.dm index 975bf6f6793..74a1f1605a7 100644 --- a/modular_meta/features/meta_redesign/code/plane_master.dm +++ b/modular_meta/features/meta_redesign/code/plane_master.dm @@ -20,7 +20,7 @@ return remove_filter("AO") if(istype(mymob) && mymob.canon_client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion)) - add_filter("AO", 1, outline_filter(x = 0, y = -0.1, size = 0.25, color = "#11080420", flags = OUTLINE_SQUARE)) + add_filter("AO", 1, outline_filter(size = 0.25, color = "#11080420", flags = OUTLINE_SQUARE)) #undef AMBIENT_OCCLUSION diff --git a/modular_meta/features/security_extended/code/weapon/melee.dm b/modular_meta/features/security_extended/code/weapon/melee.dm index 231a841c523..946e8a43d1f 100644 --- a/modular_meta/features/security_extended/code/weapon/melee.dm +++ b/modular_meta/features/security_extended/code/weapon/melee.dm @@ -1,10 +1,3 @@ -/obj/item/melee/tonfa/proc/check_martial_counter(mob/living/carbon/human/target, mob/living/carbon/human/user) - if(target.check_block()) - target.visible_message(span_danger("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!"), - span_userdanger("You block the attack!")) - user.Stun(15) - return TRUE - //tonfa /obj/item/melee/tonfa name = "police tonfa" @@ -16,21 +9,24 @@ worn_icon_state = "classic_baton" lefthand_file = 'modular_meta/features/security_extended/icons/inhands/lefthand.dmi' righthand_file = 'modular_meta/features/security_extended/icons/inhands/righthand.dmi' - force = 12 + force = 11 + wound_bonus = -25 throwforce = 7 slot_flags = ITEM_SLOT_BELT - w_class = WEIGHT_CLASS_HUGE + w_class = WEIGHT_CLASS_BULKY hitsound = 'sound/effects/woodhit.ogg' custom_price = PAYCHECK_COMMAND - armour_penetration = -15 - /// Damage dealt while on help intent - var/non_harm_force = 3 + /// How much armor does our tonfa ignore? This operates as armour penetration, but only applies to the stun attack. + var/stun_armour_penetration = 15 /// Stamina damage dealt var/stamina_force = 25 /obj/item/melee/tonfa/attack(mob/living/target, mob/living/user) var/target_zone = user.zone_selected == target var/armour_level = target.getarmor(target_zone) + var/shove_dir = get_dir(user.loc, target.loc) + var/turf/target_shove_turf = get_step(target.loc, shove_dir) + var/mob/living/carbon/human/target_collateral_human = locate(/mob/living/carbon) in target_shove_turf.contents add_fingerprint(user) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) @@ -53,18 +49,44 @@ user.do_attack_animation(target) // The attacker cuddles the Cyborg, awww. No damage here. return if (!user.combat_mode) - force = non_harm_force - else + force = 0 + playsound(loc, 'modular_meta/features/security_extended/sound/light_woodhit.ogg', 25, TRUE, -1) + if(prob(6)) //isn't that a dnd rng + force = 3 + to_chat(user, span_danger("Unfortunately, you hit [target] too hard, and hurt them.")) + if(user.zone_selected == BODY_ZONE_HEAD) + target.Knockdown(0.5 SECONDS) + force = rand(5, 7) + to_chat(user, span_danger("You knocked [target] by tonfa right onto his head.")) + if(prob(66)) + target.emote("scream") + if(prob(10)) + target.adjust_organ_loss(ORGAN_SLOT_BRAIN, BRAIN_DAMAGE_DEATH - 1, BRAIN_DAMAGE_DEATH - 1) + if(prob(66)) + target.emote("cry") + if(prob(6)) + target.emote("deathgasp") + if(user.combat_mode) force = initial(force) + if(user.zone_selected == BODY_ZONE_HEAD && prob(8)) + target.Knockdown(0.5 SECONDS) + force = rand(13, 16) + to_chat(user, span_danger("You knocked [target] by tonfa right onto his head.")) + if(prob(70)) + target.emote("scream") + if(prob(6)) + target.emote("cry") if(ishuman(target)) var/mob/living/carbon/human/H = target if (H.check_block(src, 0, "[user]'s [name]", MELEE_ATTACK)) return - if(check_martial_counter(H, user)) + if(target.check_block()) + target.visible_message(span_danger("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!"), + span_userdanger("You block the attack!")) + user.Stun(7) log_combat(user, target, "attempted to attack", src, "(blocked by martial arts)") return - target.visible_message("[user] strikes [target] in the [parse_zone(target_zone)].", "You strike [target] in the [parse_zone(target_zone)].") log_combat(user, target, "attacked", src) // If the target has a lot of stamina loss, knock them down @@ -72,9 +94,6 @@ var/effectiveness = CLAMP01((target.get_stamina_loss() - 22) / 50) log_combat(user, target, "knocked-down", src, "(additional effect)") // Move the target back upon knockdown, to give them some time to recover - var/shove_dir = get_dir(user.loc, target.loc) - var/turf/target_shove_turf = get_step(target.loc, shove_dir) - var/mob/living/carbon/human/target_collateral_human = locate(/mob/living/carbon) in target_shove_turf.contents if (target_collateral_human && target_shove_turf != get_turf(user)) target.Knockdown(max(0.5 SECONDS, effectiveness * 4 SECONDS * (100-armour_level)/100)) target_collateral_human.Knockdown(0.5 SECONDS) diff --git a/modular_meta/features/security_extended/sound/light_woodhit.ogg b/modular_meta/features/security_extended/sound/light_woodhit.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9d731d86682f6ae544b2ea07c8e62436c954017b GIT binary patch literal 14210 zcmeHtiCXut`3y-FYiBtQXa#SXU!f}++c*j{O=dHd*nzxV!z_j$=adt7VnbI#stpS{-p z8vh#A!C;;#x0a*Q&?UCFnrwbe@qlkTmqmE+wcp~FpVS9^tx1Gb(b@A2+4a*6-i@Ej zH(W%z`W0`)vq)biW};n9oz`36{V*oEm+9??_Xur!ux(~{fXMYZ4CM!=cRt9TlSGKKj{Ko_q}?1 zm@YYVA?13ApWE!6%=Q0@_+z9|(R3=c@@rB}lx&kU&--}vEmU?ex#QHvK{T_#(X?AC zrDDvau%3bbDD+T4de#srh|ybxibQGMyBjGFcx~Eu46Kx$Yi8e@`c)WOjB*=|cki`z z*9b0C4b>bsd|0JtqM?pGYg$*&o7>(zhNbXu6_|Qz_n`Zr=k~w=w#fyXh;>m^YW;@#luCAVz3@7tlZWehY3&x>JQt>p zYOlt)MH;-)%V{>7JALXd`dXD(rKo!z@Ig3Zsbgw<^GaN8Tx z@DxcYu1~J0NU_=8*3wyKcr0J#a}k5a#9PBcJz!{lgsyl9oHG^5u&D@2C#33PfISYE({ z4K&e&?7hAaDgq<>qg%y_ig|+Qd{NL`^QSJ&TCH7+P5;}+ z@&p!f6V#wG9O=%DAsc*ITx{7;%#CZNM;~n{ z44TbA+=PpQL01W~Wlgiu$Z$V8%xwlq_=HEOhM3>$c>^~PDKo9ai< z@bQ@Uwr<^+{NshSS06Yt@5Q9BmwGFE&u(SE7cP3&;QcIxMsO{97cDVXJg6NynJd=K_$#1ffg z{*-(VL7%cH@Rp|HkxBGtNUdRt1{w$7e`=)mEfAAneG9lGCrUUmRG3o}6Qsn@)Eb{+ z4+Oi)!s$FUAY9$!0jhe~6~s`WNii~#HCbI)p{CvA0y&s#(y}EW40Li$ood-b2VKI; zpVFXyp$Oy($oF{kXMoUm0d(C1x`v2&^rsXL*ti`JGZ-4;B#*HttBX7^7EUhyn_@ne z3YA#2dfZV)vUm0n>f~s31%c)CM$CK9a_aHG0YYk7Fmx{msJ+>Rrz*3EYn`mJF{jj` zF63IbXYwdLZY@*Ug*hcv-a)UFia?~`|1_04^%Hkk+a-_Ekq;o;rip8*y}3PZ&puMf zEFd1y9eLCM^CzC$Q}RqxZ;ouuq5B&yj`x-?tYm+`CfBJW(bo_?v(u(`r>NzhiJIt! zZ=!8_L-Ky{MP+Fw>2oVnIx|pa;w~^>Tj`h3fsN!B0$Kg&iwqkx5ii4TUc`lRL9=;1 z-^`1@5nRo0-R_z}x(NqKu^DJY!9|}YGc?QTKp$K)kkPH!3D;t{hzq7=>-G(C%?x*Q ztRtB45RESa%uz6NC$OX*`GhCprYTSdpddHl3DTEWtfF_WYv<;D2b2vvfr3O8XaGB? zi-VN$Wf@?C<~;W01!#VPS>Lgn;a&jb0AZjHth^lvGcIUHM@nM@9dOU{7!C!RgGPo! z_(-wra{NTw3qfG@X>-%qz|+`~l01-)Fiqk#kG8!?3%*u;8u#KLJyi%h1ryi4C~>NUWO^Xq&0*CI^@|xm)C_1DN_A%W-<_Ns zKBmy<1=D_R&SD8&?B~akNc`N`y~JIV4wfw$w6-hSPYfSZy`MaGOfgvpDkdk(CXXpW z{UoSTwW~C`I6d?i07h>hKrE(<8GyHJa`2P%%*<51P9XMkqxBL+Kt|d7;bSMhEmr}_ zijKb7%#;%68Og$}jSSY&>W(E5sMVCED=wCm2||3fZ}s8F^mvG@+X-Xa!pFkLuwxcP zLc4YQ3IpbXJUAqTL2IBnwY1n0qmHRG(0%mH>H23&yccdcOTBql7LYEj9Zqa%jt2=Bu@vE~SR@ z$09KIXF;7)!s-T^N5bkFPjfIzNk+imLbGXE5)s<12Ehh#w3k@m6=zP#-z4aWmsG!L>!|e-FyayoE7-F`9TG-j+nxBM z3|l%QrQBGb)0a|CQr(d-1he4*F~_%kPWPTmydwmRH4t4+XP+{pXijjuUaS{%40@$} zXl&_c+^;dGh(D6mKtif(*bB>TfTSA zJ4Y8f^@2M>sE5zlefPV&Y49d8TtVi3k0yxGaBBE* z3!`Qsxk4gLN0z~SkOFeIjx6UY(9~`+yp5)nvI?7+7>$?+my!!rH14QHkd%*x=^*(g zp+Jle3w>g-9`(x%NQa~HdLSM= zV7fne*cX|D__#pw^T4_nvV0Mmfxl2V+Kx6Z+*rA+30x8$TH0`xG&Hss8MR=u*ex&^;SLFZRP%cD=^ z-D|BmubUHG#vEeq+TM1Vc%Y{6kiT~ zGKq?|{#o!1B$uN%(zEm93GLfHB*%CNl}6)ik#{{oA)qY@m9xo73!UEJ1KydUo-Yl) z=zzB=jr6x?xTyRcn9mRP7CywAM*2H2Od|vBLF8}Ge4f=?INlASZ|V5DgMp$^z;;12 zu6ZKJ(%94Swn!jjN%+~U=v(GgR$HI|)ZB}6pyQWHkr$*-gaNanU+DPi(xZdD#Ztg} zf6f7)Uy3ZT$9HGHzP@#v&k$O5fJ#xP7IN? zp@?*;Yl+}9l*+zNi7y`<+9YOCRDHAMl&;29G0PU0BBOMHJqD{@)i)<$+0+f|r`N7j z41qV?bzDCUwiZ9_;jsKq^iQv~0a>skNm6NM82-aLiIEP-%h8{DUP}R+7VkwCdGMz_ zao~=QLA(l$m;+>OVqbTxSAj1hv2JLO0CcYd4 zo7~x6I3=1d7Z>&^k;)ZlzV;-7#bd!wa;HO(N^1&|XAkqgOc)z&vEZt@;t8Bt+s>q4#px z5xq=J?=7ZAJH*~CZ(GY6`V8C4Ng3j#-Tn+S$yn()mwBgTZY4T1;KG5ur_c{hxjhg* zru#)s`b7>KOAV9{BOMVwqN*tHJ~LNn3Z5(pMjl!w68et7qIhwIEakiiJe#lHu*b`el%j2 zz&^hE7swRYIM)=t1X%$#U^5SFRJ%g3{|6>#1Qs$aTO)uyYYC`;;rXd$;ie^EZimbU zV5(*~8bJl{EdaAY5N$M8w*n(#p{EoWq(NZE28`7LsNtybbY9R0U_d}mFXQapGh=Uk zwUXZC5Q~$tk*3>MUpIRNU8F^myQ@1jw8+((yhvq)NpX*m4p~i5JZ%lWuG(& zyD*kNDJ4}VvO&R}pb4<~VAj8;(ulQjiQhI%M0(JJethOb546WeXy3WdjL?p17Cb+Z{ z1hw{e2SS;_h6XJl-Q%W7AQG-9Flmc@ADDrJ0uqZasuCJ)>DjNzp zu#o{)J)mMWxRg}dblM%vQG+`Q#))MF6rdYp zb=~qO?&D^rTo`&}V+FN4xmI;Vs?cUyM6Tirx|caPq!!cje5Gn7EK57#J>=BG*A}c8 zvJcACsw{dC1>F;Xx!w#T_R4V4=1Ep$Us;^hc z#WkYX!&FRm_m7P#&A_muYIN$`lQ=42)O0Xd^%ZO&N;RPIno8EAvta2#XdEvg%c&JwZ?)qZ)r z^7+9_YcieKF?}n{8S&HGs98Bn@Kv7fxSLOT28UX*@XLGW==tg!E@vb1V$+8CcQ6R< zhOr$oOt6jJ=T|C|Dtz1ul&#?rh1*Q-Z9#RO%ea3fE9vPQSIYz^?mJJf0P1In+g<+( z{k>|p?z4?b{e{c_K7P69Z1DhJ(W|b<{`B|xj{R`%U<($da$hL))KxLMN9`gmyP9WB zWv5bEgHd~6Fqjj#1||^$-FlO%;SoYrPc<_7(RG}#`x=tleHgL5+Y(OhehoW>GkYLI zBjJT*NGEAHEI`@_8{opHxfWzISa6*gbsb)zwjg)F>rbsThrw~xP@)$meD=27m zv6)$@>V|6MDXxyJ)AnyUeGUyL5mTp;=R($Tf?~HiBD~5@m^c#9aH+J&q!9Ho_`6r+ zi=rMqhCpx^i9A}d{&vo`I09m~Yj?bYEDbA>Za9{G>U;;m>5Cs^F+meK zXcIs23{C9LpGfa6?&&Kb<)l2gh|NN{vJ0=9nFzji+7iFKL%eIhXUFBg7ROz`vp+DL zO5Xo#cLnW537i}a%c5c|M6~&I{da5j@^MREhwU&Cw;ogL_TTZX-5Trb>3b(Ja6tU> z1@g-u-ensf-nw2h^I2Qd)suzAWG;o7%}gj-|9Z_Ig`WdI!~gvLHunBc9%Mf3fWZg^ z3<3_u3Wt5P(a)Uihsy~(evaW6A~`8|DycwA)N=y+!BJgKkMj4?INA>lUC!R}2~X2!ZmH-VXrT;)PC zGFjA~>4)aW<&tv_#pS5C)ckmA_miA%Ot;WGqpbexD{-xts|yXXpQ?7s#`fTHte+Un zF_Bz+$Xn@BsjOQ}7Ir0*sc41COyOM466a#h(gwz?OOkEQ$ab!^yH|pub`3v5omfop zN?OV>)Ff)$w=*2lLSEUT3yXP8S?*+pjX6vK(>cY$QP}SAuNwaf_>Xom&07}uAMI(* zrEVBBT4)X>^GAu}Kw55CS6VJs!MVOFi^(BRxaY2Tj*2yFVlBeAqk>_Xs9@7fQ_8QvyxD%)s$(^{o#cJ?&G2i|0PV0ufD z_BN5N0n8VIUYQz}Ycwto76nV1g9-DP6dr+F)$hv3ke{|n)bq!~rOqcy%I%3{*b+;scDe(P1Y9>rE!RXXTsqB@OlW7es%q-en<#Iykc^xTKGdeA_69Da<$pM zZ*0dF>;0@4qRqCQA9;+%3GN-N(+ldU3>wzPSWATpH1MJkv2DU?R-Tij@8J}y##$1f z9b;a!&m}MqGHp>vjJl8IYKAmX)0n#aQ0j`ok|8;a}30=_1o%FvZXbLWavn*!5H(PDxm#TlnR zNM)3X#ITl!_NJU5T^H-**hQJWyKUZ=WtOUm&?`CQ4AG3QI<_vS5n3idhnF{c{kK+jI_r!Q*Y=o+g^xdp{F(Pla$q8pQq5vxjVnWx<@K z$G8gg7iS+FyhTYdM{PUvlluFUH);d^%H8>LVKDBW@L1OaX_*K*%-?(P_`3a3^*1IF zs1lcV`@zX=-XZTEY)1bia9gYoY+!G;%Zqp4#smb&oik4)_HfPdnW5f<|@-j zNO}VtxgMX%CQsYW2uxsBIx)+7SdI?yHMR^h} zj_n%kMP)fL=OwNt92e&UX3Va0U)XW7daYyFy-3Th&pOZDE@91FFZhy;U{Rd|t4$Ck zCXLDY!>j8HyX?$vC-dO3*2jITWz{q*1bZ9DZWTv3W50xK>rblk{RelJXB+F!v(xuufQoV9&Yp_IV1=4aUp_;=@vs8|GyB)yzPMG>UU zQtAaJRwk8}Gj15Xfb+L-MDd?&X!*>X;{N9b{mKPtIXG; zgI~->Ui;)<+}?0s{zNC zJChz4HHAK3m$%d&9Qaqn4-*OPYwE8AL@84BJ2?7n&ZPIzeo5On>v9hJl8TWj(_aF2 zDQERf5=XyILYh9zK1`Y+z4hiekrpvUhnWgYB`7f!q(#z{5;!D$ARTg&z0Kc&v;5+7 z{p6LiT4Ua!JKh1mdV|)0d9Q%q`sr^CR$~c?x#NjD*W3SReM8cE$73^gyVp1DsRgn9 zyZ^?vtFK3lFGgHyxzRQL?(X=zuJQTj<4^BuYHdjiH|{>W3<_Q2ORuhe2?W#69PH!@u3_^y4)K_^{; zfS~}a1RCCLwSlWA1zy-nrGl2Ciw$N;ekPp;?2t2G&L~D(5Hob&K6%gqJI*|oObXXDAvEWDofkh;BD-{Y` zlXW_N1OiQ?i4mwmM7L6KqD}##i{CcwtX3KS%&e(=nD#KuIJyS$w;y4RU#w)*y?EIxbpusanZ1o>hx8Py^xo4B0-gLB?ipYD zprBS2YF6;zP$=%1iCp927BS5e^IXsoBUi;-7gSLadr#E$JjrQxQb13Klg|%P=Uksq z{m3LF2~OoSlB@zIe)Rbv;9-F72lgJ2Ojh~)=(-5n81_#Z=e@~l(vm<;R#&`LBKFs* z&ESnsyc_nDmMY$;Yw%eQGedEqVMm8T!wz+L+XX`>(e`)MjUe1p*91JQz4I+SG|K7O zmOZs2duoq4)gDg*N91rxqfbc^Be&Gs(3kU8ob=zrb?9UrC6|s{%Z9;0ItiGP;7lFA zClotw6&gdjAs;sZZQz```n+q#d=)rL<_cD;n%uF2R_<6N6vD0CZ63Psc<7FGWB@xg z4xEz;E()y65hu%dCj}S9br<72Y*Dn1$UfFq1ERi+ch*>gVs}Is5Vb~Q4I#IxR%=K#h!~9;6f~r2`Pn&=$r*uJ1pK4Z8WGbS?(^Em%B{-QXT_F9 zx1zo5bRXmwF?(4jgK~Y4T=rf!83p!F)=3J|T=NY}O+iwKANO*|tNVADSbnihpK;|( z*z4a0)y!|)Dk<=jbU@hj4c)x+I+sqdqQJgk&!1$!NN4|glEL0MTf#S7Zd-~YV?{^_Uo&uuI$+a@9$=$NxQ3SJkI`H}{@Co&usS*X zF*4cwTyg{mExlAha+JCu+;Gn8Vv+V>%8wt*Udx&Ro7$w=qF0*T)wP=jR_uw}y%e7} zTXMD?@U%TU`}X5*PXID@u0(JRo(JCv+)*81ExtSGO;irH;(_LSLuh++w`g< zo1bcm+%{rp=~SIwH$asvY(#H#rwSY^dN6g%RON|YtLhWljzA2Eo21Ki%a#vLbT2QR z7{rj5PiRFZxFdo_jqXEct+^@wlf?H92V{*Nh{ASb8iyhT&n?a8k5&I4V*D4pL+2 zu?shyV`3I#K;uGBZH;v~He>$^hd;eJr@@-D*vPP-SDKBG)s6EPN7dCzI9O2XN6g^R zN`lHA3N?|pg+|sY3)(_)wQ?vQY9iIiK>{st&p@42C#^Lgc*%DoARTg-y+$$qwETk8 zr}1#mzJ92F<_&;35dgU2x)*?O-~fbUcmQQY)PQ^^pOQU3g-%eWC<$af<>_E;LDquh z#dW53904#oSSZA)Z2@2gEH`qn))@3^7uUT&7y!$FMe8F72mfqTTX&(pI$BJz0VPI2IDI#AECWaLm!wQXMU{gKnHhGl&?|=;v zgO%u{yl{2>cCgaKdX`i|>ktnFUiY}jJv0u~g2hNfT9P+=2*PGXtLwsjR;4WM*<7wsS+Bop%=)2F8N>HJa|MaW?0S?+NWYORj@w zQ=#xklnM3SWWDlubu@qKcjeHLXny~!N#qgJr~OZlSeR^{(f~a`E{H!!Hc7^vZ!QGA2T1@KeSLkrd!A?3W4pkSD1_Q3l?ftqE|X;M4bU8E8!YR z-AZ&oVW&v5(k-A^F6xAQ%%?;eLFUS|IzeX5O4ovM;6`2dFf(^+-QnLgO}6;5J)HmD}J=?d0K4q zX@JCN7QO&E;d2O!fiKR=4Fre{-u32qfba+oJ&wx>V0F(dYXXe)&>B;eq^RS85SXjL z@mSU2^uXhRN8*{CAcf+@Vx>9BW-upIpziQ)?5uGKaAkzeDmMJB7(pov9w4K_vf zS_ocp8h;UTrFYC87imY%WJ#KZ^RvJUpKH+xT=dB!>Rj0;;Hp06YxfyhOZ@7!>dtPUA~W1D8&30U#Y)sy;8UegeFq%c6+E ziEqs!hQlJ;BilnY7v|2Nk2@cCF(V^HR_U)^xL$F`%HN-1UxUX@O^qbuo=%Ny!A(6I z;ZL4NaC`43C&C;%U8W%p$9*G~oglcFb0G3{UG6?;)(xgeIRaP7RTE zcE=Z^Y>I7)YY-|1qo-%c-M!6SV;yHL3fg21k~mudmVv4h#1|LW3APoZ$WU%6el>6{ z$FHug_?Uo^SrVS)OnY(u;U{K_S2?4Z5|+f)*^MP;&U`%7Vv6w`G;*Hi$Iq6CPC%*;(XeL-YeKZsH?k7Qr9ROfr(^38Qlq0311E5<@Kwy^lfayJimYAF@#{oP9z<*Fgst%n%!eH3| zasW6W0;GaDrld>(ZQ=p$p;#Wv5AosiZt!k^jXZl{L7QK@f|8#t>@pZsU3U%T$DZFc z7zPdHD1BmL+#bP~bZ_?b!u<$L!v%H&MWo|{#A6ds5ttgH&o%}vy-C2; z6pE~Ztb!0dZe<&xN&kfbZ)?v8jGO=F*^+3y_dbAG{#N4vkSyo2LZf|24zUhF-!YXK z8K#oTdqh3?uqzA_)+TIy=e@`W@UjYsXFf&}5BA%X)4J12sGUlUlO;5Xg@ z&=qh_;hJ95;{r}7_z`!<+`;kgmLxB5+|f=-uL=_ZTALOCTj7HUP(dfj>)J^I{>M}0 zfE<@GjEvu6K>|m>KrT4QXd$AY>V}T& zR9z!VR#Z_G^-uS+hLM>eu zId6OopNPm^w7cYk7PYDh?^f3b#pE`SxM9I+z|&*hnxRcZnkPl z+aklmPY1|oBJy2|)e|!4IC%@P-1x*k33w!rJA1@g_daph{}7+$x@eV2LYh7m=MuQ$ zT+^u_M2B)Hh;RhwC_Mt1PA*h+ei7HqOyJ@Q>Ck}eWp?8`%L6C+YB-JX4?i3ds%;T_ z7$$dx%d!RN5|}<40<4ja>LU@b<)v$rk0J21!F*|E-_o`BV+ntM*!N+r5rDg)UGcsp ziJkA?M?e5Of%c`3dj$0IeN^ewUrNEw094VFmfr%9^%1(h+#KM%1xWybeeLIG5%o=35~hN{=7#$7)j@J8EtCoJA`*}20xD!?7^ZrvC-?~opt6Y@HyYn4mwatP z7t>HQ;C_CHA8lvl;TQ4R9A-OKhE`|dted+3#q2-_Bh)U($`N&PQxmFA7-RBBf2Bp0 z#z2nL$gix+L<=uwrN6DZftk0s+cuz#Y-)P^gK79syZTh(13R3$g6h91#pGgWjOV%z zeV7@gKYVj|SOrei8Xuk0_Tm&j8Tq*6ZpJ=SH>x{vWPRBVS2nwF7Ll9*FY1+edfG^j zMG2pF>v3)BFf-<(Lzm+_@GBL~N(|*eSKce@0||6zsfYc**M_Sumn}-x*|`km>~%wth)(Rhoj z^W1NFui1+id6+mtNRWZ>XYN(I-d6v%<1po7$)&8R^Z%$U+dP`+q!^64)HSH{_J68A zPZNfnzWvpJ^;cZtHYTR$n;7o<;UkX2{~>fWP2V`FejV$Nh1nh<4fbn~o68NqHFj=z zk?LUB>gc{ds2<}a*hGE$S+O(e!GR5{u$Qvun-w{22R!zyJs@Ts-s!F1dEkQUi+6ut zx}8(;`{9DiYhG0J9X>MAQSDmx?(fTC4{)8%fbTN;E-w=HimSW+`bdhO7o>56xP)ds>y9JNyjH z3r&rmVUAUzjw=!T2qty9r)X2i#T;q%!Lt{m#m&yK;lYYg_eNdPNiw1ri3+Q6McIZX zOJlp`JXhu@&BH1p<8<-c!!?vZHLnG0vDT$Do$!D;)Y6Yet}7)l*9=>y?es*!j}z<& z&rvS%UZjm-|0ZxfVIrw^!Ynp$s=KccQRmYkk8lWLDp{?OxhGX!^t{u%ckFnNGK(;< zAKLn?_ui7aWtS~AA;l7BeaFx~*Hn8oE^Ajx8n61PF4^P!@i4nx-;q!zXD@$ewY@X# zJ3L=YE~ Date: Thu, 7 May 2026 01:52:37 +0300 Subject: [PATCH 2/4] our brains are shrinking --- modular_meta/features/security_extended/code/weapon/melee.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_meta/features/security_extended/code/weapon/melee.dm b/modular_meta/features/security_extended/code/weapon/melee.dm index 946e8a43d1f..7fbe0203984 100644 --- a/modular_meta/features/security_extended/code/weapon/melee.dm +++ b/modular_meta/features/security_extended/code/weapon/melee.dm @@ -61,7 +61,7 @@ if(prob(66)) target.emote("scream") if(prob(10)) - target.adjust_organ_loss(ORGAN_SLOT_BRAIN, BRAIN_DAMAGE_DEATH - 1, BRAIN_DAMAGE_DEATH - 1) + target.adjust_organ_loss(ORGAN_SLOT_BRAIN, BRAIN_DAMAGE_MILD - 1, BRAIN_DAMAGE_ASYNC_BLINKING - 1) if(prob(66)) target.emote("cry") if(prob(6)) From e0fa373e690ae2777a04fe930daf2b7fed3047bf Mon Sep 17 00:00:00 2001 From: Bruh-24 Date: Thu, 7 May 2026 23:15:53 +0300 Subject: [PATCH 3/4] fix typo --- .../features/security_extended/code/supply/security_pack.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_meta/features/security_extended/code/supply/security_pack.dm b/modular_meta/features/security_extended/code/supply/security_pack.dm index d9fec037a01..0742539653a 100644 --- a/modular_meta/features/security_extended/code/supply/security_pack.dm +++ b/modular_meta/features/security_extended/code/supply/security_pack.dm @@ -20,7 +20,7 @@ crate_name = "ammo crate" /datum/supply_pack/security/tonfa - name = "Poilice Tonfa Crate" + name = "Police Tonfa Crate" desc = "Arm the Civil Protection Forces with three police tonfa." cost = CARGO_CRATE_VALUE * 3 access_view = ACCESS_SECURITY From fce6bbe519558fc7c79d40fd6fb2e346f158f802 Mon Sep 17 00:00:00 2001 From: Glamyrio Date: Fri, 8 May 2026 15:28:56 +0300 Subject: [PATCH 4/4] malaya tokmachka --- .../features/security_extended/code/weapon/melee.dm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modular_meta/features/security_extended/code/weapon/melee.dm b/modular_meta/features/security_extended/code/weapon/melee.dm index 7fbe0203984..59001ee48f2 100644 --- a/modular_meta/features/security_extended/code/weapon/melee.dm +++ b/modular_meta/features/security_extended/code/weapon/melee.dm @@ -21,7 +21,7 @@ /// Stamina damage dealt var/stamina_force = 25 -/obj/item/melee/tonfa/attack(mob/living/target, mob/living/user) +/obj/item/melee/tonfa/attack(mob/living/target, mob/living/user, mob/living/martial_artist) var/target_zone = user.zone_selected == target var/armour_level = target.getarmor(target_zone) var/shove_dir = get_dir(user.loc, target.loc) @@ -78,15 +78,16 @@ target.emote("cry") if(ishuman(target)) var/mob/living/carbon/human/H = target + var/list/adjectives = list("expretly", "professionally", "skillfully", "masterfully") + var/list/nouns = list("attack", "hit", "bash", "swing") if (H.check_block(src, 0, "[user]'s [name]", MELEE_ATTACK)) return - if(target.check_block()) - target.visible_message(span_danger("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!"), - span_userdanger("You block the attack!")) + if(target.check_block(martial_artist)) + target.visible_message(span_danger("[target.name] blocks [src] and [pick(adjectives)] twists [user]'s arm behind [user.p_their()] back!"), + span_userdanger("You block the [user]'s [src] [pick(nouns)] by [pick(adjectives)] twisting [user.p_their()] hand behind [user.p_their()] back!")) user.Stun(7) log_combat(user, target, "attempted to attack", src, "(blocked by martial arts)") return - log_combat(user, target, "attacked", src) // If the target has a lot of stamina loss, knock them down