From 889effe7fffcb40dcd56326fcde62aaaeec51766 Mon Sep 17 00:00:00 2001 From: dawsonkeyes <76002401+dawsonkeyes@users.noreply.github.com> Date: Sun, 26 Jun 2022 10:18:20 -0600 Subject: [PATCH] [(99.5%) MODULAR] Marine ERT Rework: Pass The Ammunition (#14321) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * marine modsuit code * modsuit icons pt1 * marine icons pt2 * modified equipment * modified gear * stray space * module updates * moar icons! * creatin' custom fire sounds!! * m44a firing noise * fixin' stuff * m44a pulse rifle * m44a variants * fixin' shit * more fixes * one line fix * woo more fixes * final fixes(?) * honestly quite incredible * mag icon fixes * m44a ammo belt * marine survival box * pulse rifles for everyone! * more updates * honestly quite incredible * honestly quite incredible * balancing * underbarrel shotgun adjustments * buckshot > slugs * buckshot again * god bless buckshot, yo * crowbar dont fit * ninety-nine > 99 * hammer time * hammer time * woot * marine smartgun * smartgunner modsuit * blessing from god * cleaning code * icon fixes * dme checks * more icon fixes * << massive idiot * << lol * goodbye old turret * use more gun:tm: * we did it boys, syndicate smartgun is no more Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> * we did it boys, syndicate smartgun is more Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> * we did it boys, attack_item is more Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> * single letter subtype? cringe! * see above * YEP * linter issue (ツ) * stray s moment * merge master of upstream * fix the dme * Revert "Fixing14321" * // * woo * refactor these nuts Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> * sniping’s a good job mate * shieldin’ Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> * fuck (fuck) * fuck * UNGA * req changes Co-authored-by: John Doe Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: nevimer --- code/__DEFINES/~skyrat_defines/factions.dm | 5 + code/__DEFINES/~skyrat_defines/signals.dm | 3 + code/modules/antagonists/ert/ert.dm | 1 + code/modules/projectiles/projectile.dm | 7 +- .../code/modules/mod/modules/_module.dm | 1 + .../gunsgalore/icons/guns/gunsgalore_guns.dmi | Bin 530 -> 706 bytes .../icons/guns/gunsgalore_lefthand.dmi | Bin 7548 -> 7887 bytes .../icons/guns/gunsgalore_righthand.dmi | Bin 7515 -> 7852 bytes modular_skyrat/modules/marines/code/gear.dm | 115 ++++++++++++++ .../modules/marines/code/miscellaneous.dm | 16 -- modular_skyrat/modules/marines/code/mod.dm | 91 +++++++++++ .../modules/marines/code/modsuit_modules.dm | 32 ++++ .../modules/marines/code/smartgun.dm | 148 ++++++++++++++++++ .../modules/marines/icons/items/ammo.dmi | Bin 0 -> 1063 bytes .../modules/marines/icons/items/guns.dmi | Bin 0 -> 423 bytes .../modules/marines/icons/items/module.dmi | Bin 0 -> 475 bytes modular_skyrat/modules/marines/icons/m44a.dmi | Bin 0 -> 792 bytes .../modules/marines/icons/m44a_l.dmi | Bin 0 -> 673 bytes .../modules/marines/icons/m44a_r.dmi | Bin 0 -> 644 bytes .../modules/marines/icons/mobs/guns_l.dmi | Bin 0 -> 529 bytes .../modules/marines/icons/mobs/guns_r.dmi | Bin 0 -> 529 bytes .../marines/icons/mobs/mod_modules.dmi | Bin 0 -> 643 bytes modular_skyrat/modules/marines/icons/mod.dmi | Bin 0 -> 1062 bytes .../modules/marines/icons/smartgun.dmi | Bin 0 -> 356 bytes .../modules/marines/icons/smartgun_back.dmi | Bin 0 -> 601 bytes .../modules/marines/icons/smartgun_l.dmi | Bin 0 -> 648 bytes .../modules/marines/icons/smartgun_module.dmi | Bin 0 -> 475 bytes .../modules/marines/icons/smartgun_r.dmi | Bin 0 -> 640 bytes .../modules/marines/icons/wornmod.dmi | Bin 0 -> 1831 bytes modular_skyrat/modules/marines/sound/m44a.ogg | Bin 0 -> 9162 bytes .../marine_override/modified_equipment.dm | 63 ++++++-- .../code/marine_override/modified_gear.dm | 23 ++- tgstation.dme | 5 +- 33 files changed, 475 insertions(+), 35 deletions(-) create mode 100644 modular_skyrat/modules/marines/code/gear.dm delete mode 100644 modular_skyrat/modules/marines/code/miscellaneous.dm create mode 100644 modular_skyrat/modules/marines/code/mod.dm create mode 100644 modular_skyrat/modules/marines/code/modsuit_modules.dm create mode 100644 modular_skyrat/modules/marines/code/smartgun.dm create mode 100644 modular_skyrat/modules/marines/icons/items/ammo.dmi create mode 100644 modular_skyrat/modules/marines/icons/items/guns.dmi create mode 100644 modular_skyrat/modules/marines/icons/items/module.dmi create mode 100644 modular_skyrat/modules/marines/icons/m44a.dmi create mode 100644 modular_skyrat/modules/marines/icons/m44a_l.dmi create mode 100644 modular_skyrat/modules/marines/icons/m44a_r.dmi create mode 100644 modular_skyrat/modules/marines/icons/mobs/guns_l.dmi create mode 100644 modular_skyrat/modules/marines/icons/mobs/guns_r.dmi create mode 100644 modular_skyrat/modules/marines/icons/mobs/mod_modules.dmi create mode 100644 modular_skyrat/modules/marines/icons/mod.dmi create mode 100644 modular_skyrat/modules/marines/icons/smartgun.dmi create mode 100644 modular_skyrat/modules/marines/icons/smartgun_back.dmi create mode 100644 modular_skyrat/modules/marines/icons/smartgun_l.dmi create mode 100644 modular_skyrat/modules/marines/icons/smartgun_module.dmi create mode 100644 modular_skyrat/modules/marines/icons/smartgun_r.dmi create mode 100644 modular_skyrat/modules/marines/icons/wornmod.dmi create mode 100644 modular_skyrat/modules/marines/sound/m44a.ogg diff --git a/code/__DEFINES/~skyrat_defines/factions.dm b/code/__DEFINES/~skyrat_defines/factions.dm index 7b055154df4..96ad6c15c1a 100644 --- a/code/__DEFINES/~skyrat_defines/factions.dm +++ b/code/__DEFINES/~skyrat_defines/factions.dm @@ -1,4 +1,9 @@ +// Black Mesa away mission factions + #define FACTION_XEN "xen" #define FACTION_HECU "hecu" #define FACTION_BLACKOPS "blackops" #define FACTION_BLACKMESA "blackmesa" + +// ERT faction +#define FACTION_ERT "ert" diff --git a/code/__DEFINES/~skyrat_defines/signals.dm b/code/__DEFINES/~skyrat_defines/signals.dm index 3cfa7414dcd..5386e470264 100644 --- a/code/__DEFINES/~skyrat_defines/signals.dm +++ b/code/__DEFINES/~skyrat_defines/signals.dm @@ -68,3 +68,6 @@ /// From mob/living/*/set_combat_mode(): (new_state) #define COMSIG_LIVING_COMBAT_MODE_TOGGLE "living_combat_mode_toggle" + +/// To chambered round on gun's `process_fire()`: (list/iff_factions) +#define COMSIG_CHAMBERED_BULLET_FIRE "chambered_bullet_fire" diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 04bf5772075..8730093c417 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -32,6 +32,7 @@ forge_objectives() if(equip_ert) equipERT() + owner?.current.faction |= FACTION_ERT //SKYRAT ADDITION . = ..() /datum/antagonist/ert/get_team() diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 61158fe042e..d73e5ed171e 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -182,6 +182,11 @@ var/static/list/projectile_connections = list( COMSIG_ATOM_ENTERED = .proc/on_entered, ) + //SKYRAT ADDITION START + /// If this should be able to hit the target even on direct firing when `ignored_factions` applies + var/ignore_direct_target = FALSE + //SKYRAT ADDITION END + /// If true directly targeted turfs can be hit var/can_hit_turfs = FALSE @@ -505,7 +510,7 @@ var/mob/M = firer if((target == firer) || ((target == firer.loc) && ismecha(firer.loc)) || (target in firer.buckled_mobs) || (istype(M) && (M.buckled == target))) return FALSE - if(ignored_factions?.len && ismob(target) && !direct_target) + if(ignored_factions?.len && ismob(target) && (!direct_target || ignore_direct_target)) //SKYRAT EDIT: ignore_direct_target var/mob/target_mob = target if(faction_check(target_mob.faction, ignored_factions)) return FALSE diff --git a/modular_skyrat/master_files/code/modules/mod/modules/_module.dm b/modular_skyrat/master_files/code/modules/mod/modules/_module.dm index 65b9a2f3cfe..6bb910ff83f 100644 --- a/modular_skyrat/master_files/code/modules/mod/modules/_module.dm +++ b/modular_skyrat/master_files/code/modules/mod/modules/_module.dm @@ -46,6 +46,7 @@ add_overlay = FALSE if(add_overlay) + icon_to_use = overlay_icon_file var/mutable_appearance/module_icon = mutable_appearance(icon_to_use, icon_state_to_use, layer = standing.layer + 0.1) // Just changed the raw icon path to icon_to_use and the used_overlay to icon_state_to_use module_icon.appearance_flags |= RESET_COLOR . += module_icon diff --git a/modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_guns.dmi b/modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_guns.dmi index 97ba89bed084965b9c0a4afa68f9b7c2882637f7..2146e292682a8fd00448617d37544bfe403ce53b 100644 GIT binary patch delta 537 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 F{{hspp;7<< delta 6616 zcmZu$2T&ACw)_c_EwR|(tXugwCCNMOA8Fka;#yV+0Q5fZ%Y#v{#F_$M{0MR7 zo~y*LDhcI&p585W^N^Q+3ZFS~T1E8RTU&YhjLW&h z<)h3(%e)OfvxI(#`^!SX1|fcwPR$!d>Rmv_fSmB>m-(9M6x?w~RO!axY?X5~ssE4J zW8RN`j*NP&)&Lzdtx}xgRbfyY*d6)(n{#(0%*Q1dBe;E1-!vQ1zk9NN6477Xu9_?r zgP{74wgJhp4bCf%dMD7&W``|-QQKSvqjRdyD}uVoTVf7H;@nu{FvM+3*(ls{^InpB!gV45jvTVqt|?$eROf7GlrwOc4G ztFM3+OWUrI*rB(PI~ZVTD-|wJSl0ftSi2RR;y)q_uZ!F_up62#cMxt5*)*^VKkoCa zeGw=;3&=d(rVOcGxgJkW%tcX4)h=OiOBgfzB^u%=rOro)AeC&hG(WJ+0@A%|KzkB9 z>=*RGTQqii>Y{Ib1dX#nU-%2PA3UyYA4;QakMfbEhoqk*-S0Zy3z`#^LmybwMUIr; zULx|EJ<7L2Z)FwO`xQ=!c~t6xJMEAj6UJNI@BCX~WYR)+D}O(23j7S2@}7RD&iq6c zPn=ZSu|)AWDD$)Ez%b|u04Mni=ND6iuD(>@RL6$EW{2MCgWE4uhFzq}cRpwTR2TjQ zF4wt#dugNf(d<#Vym$C#R#tkGPhhsV4bA?7g4i#%B&*kmY>_N~1^@M1cG*LKlY4h^^;}VTdl~5&9kc)6oCwJ(x z`=l;09jIKMId_|c}Bqz-Ed}nYh~eQoTIuJyLPrb7n=!nY4x)v^QQA{ zv>)1_Zagq&=BR}x{#N|HUDhm+O|dRz`0n-m^7Wsil*cq%7@_g#t53<)q5o>tjszpk zZ!0#3=_m$vK0t)*5D#N~LnU@#uUkC-!hk?aJt68p1V}Nu=}NQOcIYMW!+&7S*krs^ z-doI63*sbQNZgU7Z!zt=E+HYHI8Wwkf@zsJ4H= zMPRW(PD8!mj~W}*D#kZDI7tc;h}S~r?Y$GwSM+`tAPx?k&xMCQJ~g3VXvUF0j@!2N zMl*4%$l>=ts`#DE@fD@mF9_=Fbe=OkjtD<>+QW~UxE2E5c$cx7WVTW4AKqvFN0OZJ zbz{n4ZycoAhV!RNcU#!Qqgvn$W1PB|VZ6ZbzLl#}TSKM$_>*f$>r<64+S<8{Z_caT zuz9*b{3ys(ME7(5>4YXI79O#VlML;KjF25jI>gN#3hxIBeb7J-Z0qcBww(lQ85Mnm zaqzQQoT2A@=?&%Tyr6qLHtKyi$!xD`vRQ)U$@7$76>WWF+B@uyMPSVJTuu8^W%vid znQ#}7gYn{R-2xKqWmJkL97nbe0pGQBZ2@}OmWX|Ws#(d1{pQk9F1QFt(e3=mG327n zk?-rpNrXb=wDloNlbXHM^{-Q>WP_M9@p>kq(1TiWnzqQd;yVOF8a<2FeRP)EEs!@l zU6X`2flPyrI*yYu@&9Bd1eK#~y#+X^7liG(x(FnqJ}B;X0lGuYk%8MkY7P|bN{3!u z8wNJ>0CenaGUq=}+bP>XUbG%JA?WBPSe8Ig`oV~Nb1Zr7sII|fMb+>dPV(mQZW>~B z0eeRNl<=3^1#NflgIz5Q`e+ud6q61@DF~PMukxQyIlcfh%m@&J0sxf*LbcAvk`3g+ zzF$D}l#oyMFaOQ;h3c4XdB+;eLiPN%&e**%)$YG9$bV9+C2eMLJZhho2_*`rMVWAs z1B(m;n?<6T1eRik0l%bFlWznIX5Mre#^+{#tP;o1>YTy4!9R!gSIB1{C}qUa8QC(t zmI{hX!b)aVT8OOE4BE_M(7Dv_`C@v4ihXrXoynXzIk}Nfib^hWkOM#CC=fmmi$F&q zlOUa->Q1LC1oO9h&=XFv>d#gd3fQ7i~&`bNC#d~l(#J&BFgvH|6X^7s3=P_mY z7PkRdK?EUrlg6>jU2MPoFK&q}IsaTZH;$Fml_<{GauNnQQVZjg*A^vS0U&)ZiAc_} zt>ZKX&Gt&2L@JqhM(g*qsnz+P#a5({z%|vu5|MHJ*aZ~;wSKZ- zP0cT`ONS#CgV>O9bKLU9je3%U%O zzI<$&*SwyGclB8Ic1mh;Y>ufen5JIk>S%!2Mf_w&sv}zFS3687K*bF51Ea`I+<3vl zLZ(si6`|dSR-^~#E%OE+;O^j;@gW#g?#4d*7JCu?Zyb9rVV^e16e4wd?ViZc}Y2~EYsYx6siwW2L} zm?v0HqVP>n*ze^t+k@34TP7x@HH#-_j{!_2Qf=kxqz+%em&>Jn1k#yqc_=4-o-pG! zf@6r?$yE~sm<3Jk2nNHDv~Y6s)7f;OTd4w{!%Rpe^Y7gH{c@Vx48YXdKA&+XSZI~v z=Ay#M|FB}x+pR9=ctg!M8I%K8sI{dr=+Zr(4>7;)DtGae(jq>b@Ne+d1aJd^!KxcK z=m#amBthjH2Tb{G1_+#;QUJk#27Kz89_3?9uSoyQGcAs^yFAfr`qL=2RuUugPOWIb z?gzqMRxtdh-YHRMOB%biUICcVjZRgACd?H>=|?})Q}V4UO9jHQHlqC<=%+y>NWrGC4Pumu&H0J&DW&2MLJirt zj)v`AoBEIP%KRM*Pco(G1_#A2$zZ*($eAGY1q~yW0zcGW7qObIMm4}2op{SF27!7F zV+Sac)wDo9bI4mjhJ>Zsq{bmWlTbtMar7|!GJ#AC^@@~YeFW3LLv_Um4IrDBFDd1o zmvNhJ`~=|-nTI*tDK%8nL(k4b-~P~^UoFn#+A~@k9epsHWbIwd_!@fEKWQpsnLeQP z<=0{%P=G}C!w7uXnp&$d6DK*>mKB)+Oks@#0&8#Y%$U70r!`Lp_@X(6?Uf5znD1%h zwTg?oN+2YqUw|c4UGf3);)kK!8ray}k^wEAy%FbT{D8oYI+KSEm^m*@bP7jOSoE@! zjYYsyD-Nnc-SsyhSj8iXPCf=VRo-d@vC+9kMPcFhX3^X ze3Zf#)nuRNn&0u(MjP;a7`;RjR7nFgESiHN0MDy4ncr^KwxQPtg?#iBM*p?mIv(Cr<+ zt^$%4#FM~CLh`yu#-TkT5n(ct>eAX?-gpIOU#k#SI8^FbmbiEWSb0X-HYJe?&^G}s zipvXk5Pd$>9CyAPjMq9zf?7(19z4vN%+8@ZU}W`&e&D*#Q`}swqFR$5saYldv9dL; z1*RKBDlQ2LksC(pj{@Iz)z3x;;d!V(71RPuy?p>p^mvRQc=c|~JlNXb2k?+1$JPFQ zHc|oq!1CYJJ>4YmZ1CPmU77SJ3Y_GtQ`NjskdrPA;^h;OJb&i;J?9nZP{J#c zrBN~aHQbl?5|rBDa2~7fwjna%JMbnxkZLs7jAcg9DYa*3=Fq+Y=W74fDDCzXTA)Tc zfA+>jLIM)>`M5o*BGm)*5dInQo!!+p1N4X{kdm4@yDONTS8(DeF&s-35IxkY9s32P zWJErD5lI7aB6w=QgT7bCx`~#iaeJMsd48hgWZ`ZRiId#KOG`OdkOmILKuE}ki1~4K zQ?$psvc4e&XSt8y!No4ac}Y{NxnRZ+ASh$6x_33OC)OvI- z3P>JMihNZC(#Tr$^FQth6S9g;w(vRO_`{jsUJ}vl+bWa4?o)%ut1SvCMe0UPY~b_O z-tXj8Te4nv*3ql$MYmOv^zjmE-Do33Co$kYdo-;2GUg1d(!dY!wdu{uS3SYG3NHvb zp42H8oRj0^^EkCM2+7CB|Ip?mdVLf9^1V}L6{1yU?xJqWsF&R%!pbV~^h65r{S|w}hzk3CQ-T>8b*3Sj+=E#*YEmCqMgi$yj3(kU zSldW+9>J(v2*zk2T-P0p$%h=!#`~ri^di)anQ&xMas_+N!sAS!rHMX$=b~Mx6NYU| zI>MgAc(g8kBf6eovfuT{weQK1X~@?T6&2BFIv(%O8j8W@?Kid}x5HIK z4V9FoV%!MHS!z4XFybUbhdOhNZ5Yp|8h)1$XL!_TWO%sTzB_kwYqA;ST0ZD_H9awQ z<*7gj`*P63gck~!2$WA?o0pDXWKc~hS5#l;qi{GP-Dcqoq5k-s%?{ z`mLyXGAuM*cP*fz;Cr#KKBk*&g;HbR`0+91vSARuV&oM7nj$$nmae1K_Og(&k4LduQ@nh78Ee4r}SXZ zM#JpXJs;_>=V_bBgm6|}lwTjGk8-Wt+pV!Y+*|sL%p=zrQUwxuhP>TB+!ZVQ#R_vL z&^CSn^!_a9BDiG}=NCD{)e|XJ_7(gbYvD%q9*pK{V=4UcHa-dGZm z8L;YdcpqGAHV=5Q%dOKR7RNn^3dLBajqW9-g=lJ-^>h~eWaLc;yTuOeNeHeicRu{I z>p@4W1;jeeC#`ouN3u?vbLYJ)Ls^YeVzCi!oNu7%4z5GPE*Hf>i{m#Zq%`6{%d-0;y z>Unu)heJya3npVOLrH*yfm{Q1jh%zky_g8a0KfWo;D87|+rKgD3?m%XoAeH%Oe)!n zHvHOOPFLSo;g)~i56E2-BQ`2?tnibb+ND*ew2`2?_FtRK9(7S+KI0o4ov-*<2OSv!lM%o9r8n$e+5Lyz}rXq;rr^^a-2`x_D zxDKnM!sc!_U$F`y#B!gn@f^7~r*XeHHuXIc^3-RhDINe`I0R8hVOLScD!fer2lXgz zC#z$a^8PAHTl@N{vF5h<$4M2(TBvcYdy$35COqFk7#b^XH#Ga3IS*R?@xmP=pz}C6uTn1y2LOnHr$^agiXfQxk{P&u#{guc&T!; zNGFc;va2I^vC&FRZ zZgzz3%X9#U8FXH1uk@F3N0jV@W%^Y!;DPGdDO>H`k1QT4cw@8qK~w)ry$wh2)+*5>w`Sra9I5 z%l8}MvsmO~oZ*|rl#ol+wzoa}@dNKHUQA>|YJEVl$yc2FI|=`?NmM{UgQl?WcnkFHvS-Xg7)t+$iD^1|I#0DlsKFkxD+PE_zk^F z0Tx|~e$tiOGp}9Vh#QNIT)(Uim^0eX7wx(}Gub@veC<$qqT{Tn3X-@VB)z%e)J)T` zinczJXWIBRM9*r;8oB64h?zLk-`fKlY;L8hW~elCkhA!P&B!EOe<;@@I->FRgzxGwoZ-#MP|c zuOmALB|)qP*T7zmN`O6BbVCr!*OjPicbBd+CmQzSu2>fycFsG1|MHG$gApl4nIjhe z>?~3R@1P@B4(ttrjJNRu0wBKOkmu3X7*QF_V8ER+* zBJ9$1`h|x%*Qj4wHt#pZ`|fK0Pfhjj6>b&bfN2Uf)@iT$zkl5j>1i3=s?~6a`7hEq B(zO5p diff --git a/modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_righthand.dmi b/modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_righthand.dmi index 6e561a279b7bf8ba9ffc77577172628bdf9418bc..c673bc2ba200e35da203c75f84421aa158c58447 100644 GIT binary patch delta 7165 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 delta 6826 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 K`{9mF#Qy*!NmAzk diff --git a/modular_skyrat/modules/marines/code/gear.dm b/modular_skyrat/modules/marines/code/gear.dm new file mode 100644 index 00000000000..b2ff5c0bcbf --- /dev/null +++ b/modular_skyrat/modules/marines/code/gear.dm @@ -0,0 +1,115 @@ +/obj/item/gun/ballistic/automatic/ar/modular/m44a + name = "\improper NT M44A Pulse Rifle" + desc = "A specialized Nanotrasen-produced ballistic pulse rifle that uses compressed magazines to output absurd firepower in a compact package." + icon_state = "m44a" + inhand_icon_state = "m44a" + icon = 'modular_skyrat/modules/marines/icons/m44a.dmi' + righthand_file = 'modular_skyrat/modules/marines/icons/m44a_r.dmi' + lefthand_file = 'modular_skyrat/modules/marines/icons/m44a_l.dmi' + fire_sound = 'modular_skyrat/modules/marines/sound/m44a.ogg' + fire_delay = 1 + burst_size = 3 + spread = 6 + pin = /obj/item/firing_pin/implant/mindshield + can_suppress = FALSE + emp_damageable = FALSE + can_bayonet = FALSE + realistic = FALSE + mag_display = TRUE + mag_display_ammo = FALSE + mag_type = /obj/item/ammo_box/magazine/m44a + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_OCLOTHING + company_flag = COMPANY_NANOTRASEN + +/obj/item/ammo_box/magazine/m44a + name = "m44a magazine (.300 compressed)" + desc = "This magazine uses a bluespace compression chamber to hold a maximum of ninety-nine .300 caliber caseless rounds for the M44A pulse rifle." + icon = 'modular_skyrat/modules/marines/icons/m44a.dmi' + icon_state = "300compressed" + max_ammo = 99 + multiple_sprites = AMMO_BOX_FULL_EMPTY_BASIC + ammo_type = /obj/item/ammo_casing/caseless/c300 + caliber = "300comp" + +/obj/item/ammo_casing/caseless/c300 + name = ".300 caseless round" + desc = "A .300 caseless round for proprietary Nanotrasen firearms." + caliber = "300comp" + projectile_type = /obj/projectile/bullet/a300 + +/obj/projectile/bullet/a300 + name = ".300 caseless bullet" + damage = 13 + armour_penetration = 30 //gonna actually kill the brit that made this var require a U in armor + embedding = null + shrapnel_type = null + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/scoped + name = "\improper NT M44AS Pulse Rifle" + desc = "A specialized Nanotrasen-produced ballistic pulse rifle that uses compressed magazines to output absurd firepower in a compact package. This one's fitted with a long-range scope." + icon_state = "m44a_s" + inhand_icon_state = "m44a_s" + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/scoped/Initialize() + . = ..() + AddComponent(/datum/component/scope, range_modifier = 2.2) + +/obj/item/gun/ballistic/shotgun/automatic/as2/ubsg + name = "\improper M2 auto-shotgun underbarrel" + desc = "This shouldn't be heeere!" + can_suppress = FALSE + has_gun_safety = FALSE + mag_type = /obj/item/ammo_box/magazine/internal/shot/as2/ubsg + +/obj/item/ammo_box/magazine/internal/shot/as2/ubsg + max_ammo = 3 + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun + name = "\improper NT M44ASG Pulse Rifle" + desc = "A specialized Nanotrasen-produced ballistic pulse rifle that uses compressed magazines to output absurd firepower in a compact package. This one's fitted with a two-round semi-automatic underbarrel 12 gauge shotgun." + icon_state = "m44a_sg" + inhand_icon_state = "m44a_sg" + /// Reference to the underbarrel shotgun + var/obj/item/gun/ballistic/shotgun/automatic/as2/ubsg/underbarrel + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun/Initialize() + . = ..() + underbarrel = new /obj/item/gun/ballistic/shotgun/automatic/as2/ubsg(src) + update_appearance() + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun/afterattack_secondary(atom/target, mob/living/user, flag, params) + underbarrel.afterattack(target, user, flag, params) + return SECONDARY_ATTACK_CONTINUE_CHAIN + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun/attackby(obj/item/attacking_item, mob/user, params) + if(!istype(attacking_item, /obj/item/ammo_casing)) + ..() + if(istype(attacking_item, underbarrel.magazine.ammo_type)) + underbarrel.attack_self(user) + underbarrel.attackby(attacking_item, user, params) + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher + name = "\improper NT M44AGL Pulse Rifle" + desc = "A specialized Nanotrasen-produced ballistic pulse rifle that uses compressed magazines to output absurd firepower in a compact package. This one's fitted with an underbarrel grenade launcher, and a red dot scope to help align it. Compensating for something?" + icon_state = "m44a_gl" + inhand_icon_state = "m44a_gl" + /// Underbarrel grenade launcher reference + var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher/Initialize() + . = ..() + underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted(src) + update_appearance() + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher/afterattack_secondary(atom/target, mob/living/user, flag, params) + underbarrel.afterattack(target, user, flag, params) + return SECONDARY_ATTACK_CONTINUE_CHAIN + +/obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher/attackby(obj/item/attacking_item, mob/user, params) + if(!istype(attacking_item, /obj/item/ammo_casing)) + ..() + if(istype(attacking_item, underbarrel.magazine.ammo_type)) + underbarrel.attack_self(user) + underbarrel.attackby(attacking_item, user, params) diff --git a/modular_skyrat/modules/marines/code/miscellaneous.dm b/modular_skyrat/modules/marines/code/miscellaneous.dm deleted file mode 100644 index 51eb7f589da..00000000000 --- a/modular_skyrat/modules/marines/code/miscellaneous.dm +++ /dev/null @@ -1,16 +0,0 @@ -// 1 2 3 4 marine corps marine corps -//parent type already has EMP protection and stuff - -/obj/item/storage/backpack/ert/marine - name = "marine backpack" - desc = "A spacious backpack with lots of pockets and a magnetic latching mechanism to attach to whatever gear one might wear." - icon = 'modular_skyrat/master_files/icons/obj/clothing/backpacks.dmi' - worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/back.dmi' - icon_state = "marine" - inhand_icon_state = "securitypack" - resistance_flags = FIRE_PROOF - -/obj/item/storage/backpack/ert/marine/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 30 diff --git a/modular_skyrat/modules/marines/code/mod.dm b/modular_skyrat/modules/marines/code/mod.dm new file mode 100644 index 00000000000..4c74b667268 --- /dev/null +++ b/modular_skyrat/modules/marines/code/mod.dm @@ -0,0 +1,91 @@ +// 1 2 3 4 marine corps marine corps + +/datum/mod_theme/marines + name = "marine" + desc = "Developed by Nanotrasen in collaboration with multiple high-profile contractors, this specialized suit is made for high-intensity combat." + extended_desc = "A black and blue suit of Nanotrasen design made to be utilized by corporate space marines \ + in active combat situations where standard gear won't cut it. Lightweight composite armor plating over \ + a strong exoskeleton ensures that no speed is sacrificed for protection, and a variety of unique \ + modules keep the wearer efficient during active combat situations. When response teams fail, \ + you're the backup's backup - the desperate measures." + default_skin = "marine" + armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 50, WOUND = 20) //honestly quite incredible + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + resistance_flags = FIRE_PROOF|ACID_PROOF + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 0.5 + slowdown_active = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY + 10 //drr drr drr + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + /obj/item/gun/ballistic, + /obj/item/melee/hammer, + ) + skins = list( + "marine" = list( + MOD_ICON_OVERRIDE = 'modular_skyrat/modules/marines/icons/mod.dmi', + MOD_WORN_ICON_OVERRIDE = 'modular_skyrat/modules/marines/icons/wornmod.dmi', + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT|FLASH_PROTECTION_WELDER, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT|HIDETAIL, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/obj/item/mod/control/pre_equipped/marine + theme = /datum/mod_theme/marines + applied_cell = /obj/item/stock_parts/cell/bluespace + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/holster, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/jetpack, + /obj/item/mod/module/noslip, + /obj/item/mod/module/power_kick, + /obj/item/mod/module/megaphone, + /obj/item/mod/module/springlock/contractor, + /obj/item/mod/module/dna_lock, //in lieu of req_access + /obj/item/mod/module/visor/sechud, //for identifying teammates also in suits + ) + +/obj/item/mod/control/pre_equipped/marine/engineer //smartgunner version of modsuit, with less versatile modules but the ALMIGHTY SMARTGUN + theme = /datum/mod_theme/marines + applied_cell = /obj/item/stock_parts/cell/bluespace + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/emp_shield/advanced, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/jetpack, + /obj/item/mod/module/noslip, + /obj/item/mod/module/dna_lock, + /obj/item/mod/module/visor/sechud, + /obj/item/mod/module/smartgun/marines, + ) diff --git a/modular_skyrat/modules/marines/code/modsuit_modules.dm b/modular_skyrat/modules/marines/code/modsuit_modules.dm new file mode 100644 index 00000000000..7200056f9c4 --- /dev/null +++ b/modular_skyrat/modules/marines/code/modsuit_modules.dm @@ -0,0 +1,32 @@ +/obj/item/mod/module/smartgun + name = "MOD smartgun module" + desc = "A bulky module that attahces to the back of a MODsuit, this \ + module is comprised of two parts, a holster and the M63A4 \"Smartgun\". \ + The holster works as storage for a gun that would be otherwise uncarryable, \ + and the gun itself fires at a blistering rate of fire, capable of suppressing enemies \ + without hurting teammates thanks to IFF technology." + icon_state = "smartgun" + icon = 'modular_skyrat/modules/marines/icons/items/module.dmi' + overlay_icon_file = 'modular_skyrat/modules/marines/icons/mobs/mod_modules.dmi' + module_type = MODULE_ACTIVE + complexity = 3 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + device = /obj/item/gun/ballistic/automatic/smart_machine_gun + incompatible_modules = list(/obj/item/mod/module/smartgun) + cooldown_time = 0.5 SECONDS + overlay_state_inactive = "module_smartgun_off" //appears on back when it's off + overlay_state_active = "module_smartgun_on" + /// Power consumed per bullet fired + var/power_per_bullet = 25 + +/obj/item/mod/module/smartgun/on_activation() + . = ..() + RegisterSignal(device, COMSIG_GUN_FIRED, .proc/consume_energy) + +/obj/item/mod/module/smartgun/proc/consume_energy(mob/user, atom/target, params, zone_override) + SIGNAL_HANDLER + + drain_power(power_per_bullet) + +/obj/item/mod/module/smartgun/marines + removable = FALSE //no stealing!! diff --git a/modular_skyrat/modules/marines/code/smartgun.dm b/modular_skyrat/modules/marines/code/smartgun.dm new file mode 100644 index 00000000000..f38ee3ec073 --- /dev/null +++ b/modular_skyrat/modules/marines/code/smartgun.dm @@ -0,0 +1,148 @@ +/obj/item/gun/ballistic/automatic/smart_machine_gun + name = "\improper M63A4 \"Smartgun\"" + desc = "A weapon with a blistering rate of fire, so heavy that it needs to be mounted on a modsuit to wield. \ + It's equipped with IFF technology, allowing the bullets to intentionally miss friendly targets." + icon = 'modular_skyrat/modules/marines/icons/items/guns.dmi' + lefthand_file = 'modular_skyrat/modules/marines/icons/mobs/guns_l.dmi' + righthand_file = 'modular_skyrat/modules/marines/icons/mobs/guns_r.dmi' + worn_icon = 'modular_skyrat/modules/marines/icons/mobs/mod_modules.dmi' + icon_state = "smartgun" + worn_icon_state = "module_smartgun_off" // just in case. You shouldn't be able to do this, though + inhand_icon_state = "smartgun" + fire_sound = 'modular_skyrat/modules/gunsgalore/sound/guns/fire/mg34_fire.ogg' + rack_sound = 'sound/weapons/gun/l6/l6_rack.ogg' + suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + fire_sound_volume = 70 + fire_select_modes = list(SELECT_SEMI_AUTOMATIC, SELECT_FULLY_AUTOMATIC) + weapon_weight = WEAPON_HEAVY + slot_flags = ITEM_SLOT_BACK + w_class = WEIGHT_CLASS_HUGE + spread = 18 + mag_type = /obj/item/ammo_box/magazine/smartgun_drum + can_suppress = FALSE + fire_delay = 0.5 + realistic = FALSE + bolt_type = BOLT_TYPE_OPEN + show_bolt_icon = FALSE + tac_reloads = FALSE + burst_size = 1 + pin = /obj/item/firing_pin/implant/mindshield + mag_display_ammo = FALSE + mag_display = FALSE + /// If the gun's dustcover is open or not + var/cover_open = FALSE + /// Factions that the gun cannot shoot under any circumstances + var/list/iff_factions = list("ert") + +/obj/item/gun/ballistic/automatic/smart_machine_gun/ComponentInitialize() + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/gun/ballistic/automatic/smart_machine_gun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + . = ..() + if(chambered) + SEND_SIGNAL(chambered, COMSIG_CHAMBERED_BULLET_FIRE, iff_factions) + +/obj/item/gun/ballistic/automatic/smart_machine_gun/examine(mob/user) + . = ..() + . += "RMB with an empty hand to [cover_open ? "close" : "open"] the dust cover." + if(cover_open && magazine) + . += span_notice("It seems like you could use an empty hand to remove the magazine.") + +/obj/item/gun/ballistic/automatic/smart_machine_gun/attack_hand_secondary(mob/user, list/modifiers) + if(!user.canUseTopic(src)) + return + cover_open = !cover_open + to_chat(user, span_notice("You [cover_open ? "open" : "close"] [src]'s cover.")) + playsound(src, 'sound/weapons/gun/l6/l6_door.ogg', 60, TRUE) + update_appearance() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/item/gun/ballistic/automatic/smart_machine_gun/can_shoot() + if(cover_open) + balloon_alert_to_viewers("cover open!") + return FALSE + return chambered + +/obj/item/gun/ballistic/automatic/smart_machine_gun/eject_magazine(mob/user, display_message = TRUE, obj/item/ammo_box/magazine/tac_load = null) + if(!cover_open) + to_chat(user, span_warning("The cover is closed! Open it before ejecting the magazine!")) + return + return ..() + +/obj/item/gun/ballistic/automatic/smart_machine_gun/attackby(obj/item/attack_item, mob/user, params) + if(!cover_open && istype(attack_item, mag_type)) + to_chat(user, span_warning("[src]'s dust cover prevents a magazine from being fit.")) + return + ..() + +/obj/item/gun/ballistic/automatic/smart_machine_gun/update_overlays() + . = ..() + . += "[base_icon_state]_door_open" + +/obj/item/gun/ballistic/automatic/smart_machine_gun/unrestricted + pin = /obj/item/firing_pin +// Magazine itself + +/obj/item/ammo_box/magazine/smartgun_drum + name = "smartgun drum (10x28mm caseless)" + icon = 'modular_skyrat/modules/marines/icons/items/ammo.dmi' + icon_state = "smartgun_drum" + ammo_type = /obj/item/ammo_casing/smart/caseless/a10x28 + caliber = "a10x28" + max_ammo = 500 + multiple_sprites = AMMO_BOX_FULL_EMPTY + w_class = WEIGHT_CLASS_NORMAL + +// Smart ammo casings + +/obj/item/ammo_casing/smart + icon = 'modular_skyrat/modules/gunsgalore/icons/ammo/ammo.dmi' + +/obj/item/ammo_casing/smart/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_CHAMBERED_BULLET_FIRE, .proc/iff_transfer) + +/obj/item/ammo_casing/smart/proc/iff_transfer(datum/source, list/iff_factions) + SIGNAL_HANDLER + + if(istype(loaded_projectile, /obj/projectile/bullet/smart)) + var/obj/projectile/bullet/smart/smart_proj = loaded_projectile + smart_proj.ignored_factions = iff_factions.Copy() + +/obj/item/ammo_casing/smart/caseless + firing_effect_type = null + heavy_metal = FALSE + +/obj/item/ammo_casing/smart/caseless/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from) + if (!..()) //failed firing + return FALSE + if(istype(fired_from, /obj/item/gun)) + var/obj/item/gun/shot_from = fired_from + if(shot_from.chambered == src) + shot_from.chambered = null //Nuke it. Nuke it now. + qdel(src) + return TRUE + +/obj/item/ammo_casing/smart/caseless/update_icon_state() + . = ..() + icon_state = "[initial(icon_state)]" + +/obj/item/ammo_casing/smart/caseless/a10x28 + name = "10x28mm bullet" + desc = "A 10x28m caseless bullet." + icon_state = "792x57-casing" + caliber = "a10x28" + projectile_type = /obj/projectile/bullet/smart/a10x28 + +// Smart bullets + +/obj/projectile/bullet/smart + ignore_direct_target = TRUE + +/obj/projectile/bullet/smart/a10x28 + name = "10x28mm bullet" + damage = 12 + armour_penetration = 5 + wound_bonus = 15 + wound_falloff_tile = 1 diff --git a/modular_skyrat/modules/marines/icons/items/ammo.dmi b/modular_skyrat/modules/marines/icons/items/ammo.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b2932bacdd53cbcd29d3d622ceee0a340587fb02 GIT binary patch literal 1063 zcmV+?1laqDP)i#MPEl4@T47sWWm;QZSXf#@LO@SXPgGZ4OHNZ&SY1_EUqnPiK|w)7LqkziSy^0T zU0`QEK0ZJ|Kuu6rOHNf%Ra#bAU_3lLLPA1LPgGD*R!>q{K0iS}K|n@EMm;`5Oixx( zR9izuL`6qNIyyR1Q&&w?TvAnBG&MIyO;b}=UBJM=5)u$JG&D&`M-&ti2L}Z%D9aiE z0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5sW>;Ws3g5KFFvKHG*^j> zGbOXA7$|PY#hF%=n41b=V^^(fYG6R34xH+h6P3XR}OZ)8;L%UO%cw z#b@4X*yPy7>o1GFC*u1e+ssftZ*tq6yl{rIg;@KZXLjUs#yEMlig<-l-`6u@cIFK` zcp_UY7I*1HYavMNXVN z#iu#7Cwt~>C8$=1ut( z-k!V@%H1$rccHhZU^Zynn~S<9?(2d1d49kSo@@{`9?nGzk8EvLi%%Dy zm7C2OJ<(EKd(KW?CtkdK6-CVj+kP#wv{YN8p(lDX@%CNRsN1%@|FCX-3QzR$)92;o zrfs)d8*1o@zI^>ww=GW6(ChzHk}dXq`utxc^gk_0{fBf`emzg5r~5py|9Hb{ zr&s?mt3P`6AA|Z2-=qG+1)%@%J?cMP0Q--?{l^i-s7c?|N9v(7ORAG84DQ<3ml9H&vz`$!M)VBZt00DGTPE!Ct=GbNc004V>R9JLG zWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TB zGg33tGfE(w;*!LYR3KBSI5)AVB)v3GiHkEOv#1y-WXQ#tR+N~V3Sna?j8DnWFN)7E zNF}U=uu^3OS3ei9y8*{7IC1}s{D}Yn0I*3!K~zYI?UXSJ!!Qg0WpMWhD|??16N_}L zu|sA<()1zyKh2au!W~;EzU@Flnhv1xP0ZDdzV6i7huzki8)OeN9)P){cAx;4-X+c> zhKaaHhh<6QJ|S&6#;4m~(xGSGQgR-#vmCid2Xd5&Y+TD;h7OdUzj}WQD-SgXO9Uq7 zIaK_d%b&f`_#0#&1hNluTlPTh%N|Hn4O`dn>Q~tVNv#KJuJzz|yaB-aHD75` Rg9iWr002ovPDHLkV1i~_tgiq7 literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/items/module.dmi b/modular_skyrat/modules/marines/icons/items/module.dmi new file mode 100644 index 0000000000000000000000000000000000000000..79cf11a3603c6a6c04ae3989ec73e5d088d4428f GIT binary patch literal 475 zcmV<10VMv3P)i-s7c?|N9v(7ORAG84DQ<3ml9H$`F+5dSW0RDdaz!fMwmrCnFg`<27#JdP{tNs7 z0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5sW>;Ws3g5KPl<~&C9|j) zC}haRnO2mTn+jnoE4cc(fK3JfpRgNzX&?yG0002qNklr9tHLUuQaqt5*q=!VVAG~)zW(L1)PTv#GjZVDP`9!E6XTs=xkEX*o+ zPz^m8RdV97&{{oGL}(%+=&1_|dyhhj2DLRzRLvD;a0|5x5Hod?1RRP{)T7^u5#pBG z92O2hjkU0#q}x(_=R>aqAr2QW{sU{sxwtLvyyZM(J*qqev9&O>l0ztFX9V6LNNq;k z3w%S+Bk(DfF=J<50YOY#?C(%|W{2(9L4OpK<7>_ZCqJLziHBl>?|#PL#{-xc56wBF RY}x<-002ovPDHLkV1gWGyZ`_I literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/m44a.dmi b/modular_skyrat/modules/marines/icons/m44a.dmi new file mode 100644 index 0000000000000000000000000000000000000000..dd22e31779da820f47e0d8fbbb6e1b3e70717aab GIT binary patch literal 792 zcmV+z1LypSP)fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM z;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3K9+*Tf`IiHkEOv#1!zHRR$L_i;kr2FEG|l18OcgIk&?!X($O9 zW9+Q8y2N-Gpro#i(bEtD7+A}|Ew-G80aRifobScxI3FjFN_(z7AI(MTE)$ZTL_rTQ z@S5XGU;KQwPLuOyZ?lfRm!~5F_~Yq?1WM`o$RMA5EuH&sn~jc_CE1WX3`^?L00s&A z&d_;Zw^?DQSvdIxV>yN5SbJWf4Gk8fT^eJXFC_s3XrUuiK_i4t@$>@>(DQ^lycmLC zGPt%faxlPmLxC4VM$>tx%M+f8Y@|>HUM3_w%5I6zgG&5r!s-v9s;a80s;a8$tt|ik zE^gLuDF4b;RsV|+$@30_U+*)(?%Rs)%*`Sy5wrXoG8+a*)43`a78LzqOWAzsp Wxvo=fe=xoP00002VXb< literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/m44a_l.dmi b/modular_skyrat/modules/marines/icons/m44a_l.dmi new file mode 100644 index 0000000000000000000000000000000000000000..83a5d2aab45cd17c90a194da1b936ffbef66e7e9 GIT binary patch literal 673 zcmV;S0$%-zP)4`c9gM|?}0004?NklrP$=mQy3PrDmENF7>8LSIoEH(g=m+n& za^C!WJQSQi5`rLzh@xq|_WQD}41?gNTFSjHf?(1+VQ2ImLi|b?O9N#41K1|yEDW9d zFnpZd73)r#Uo6R@G&*Uv?}y<+wmIjo&#vW9-TA($vd%BYyhS;{TAwB39IY+c1G$R z20FI)GrGcp0{0VLnEA-wH)YUGBCL8MEo=lqkiU#d!7phArDmh8`i@zzo!*D+wHwt- zB3*snY%7d4H(*T62a=8X0P{i76!QUsAjp3L{~!ExKA<1{1k4BGDb4eNJ-Fl*s?}_M z?lK$B2S;Zx&j$%(fSsG4ZSp~RsIv(30fHb%Bl!OS^TBuXfl58kgY$t{8|^I1qNZ%~ zH)I$FoDalzmAY{pvq-i%Ns_e52exfPb~y%glL+PmhIOC@L{CNJvP0e0%@^05~{7EiE)NGeLDAPJ{pe00DGTPE!Ct z=GbNc004G+R9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM z;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3K9+*Tf`IiHkEOv#1!Phl?|x-W=K}T&0O^T327`qWIRF3whDk(0RA_W$J zO#5sA0Dyl?n#QLXdfNWrBHed;HfS4?kL{@E0D`d+#t5dgCm*y8jS6D`@&V)n4&(y> z0Dvb6tteX^+nDHl|d;{=L30Ui}_%0&h>uLLMG6R8(PZZhyeQz-jRX`~Uy|0d!JMQvg8b*k%9#0Csv*Sad{Xb7OL8aCB*J zZU6vyoKseCa&`CgQ*iP1GTn2t-ivVyCh3)mq5 zRvsz>ebpP!0003fNklGR(FITVV${RX^1~_Y_+rY@+vmbC z4D&B}Fv7|gtL)i)u<}KU*?h3{MUwe^u=GWe`FybS#RiM{VC9P?sri6?@vHd)GlMcg T#9dBk00000NkvXXu0mjffG_el literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/mobs/guns_r.dmi b/modular_skyrat/modules/marines/icons/mobs/guns_r.dmi new file mode 100644 index 0000000000000000000000000000000000000000..dbfd40ac628fc610cc91c14a70a3d6405a1789ae GIT binary patch literal 529 zcmV+s0`C2ZP)h>uLLMG6R8(PZZhyeQz-jRX`~Uy|0d!JMQvg8b*k%9#0Csv*Sad{Xb7OL8aCB*J zZU6vyoKseCa&`CgQ*iP1GTn2t-ivVyCh3)mq5 zRvsz>ebpP!0003fNkl%=U421>m0g%N3;+X8QP4?j@7ohF^uTm!-62J~j zr<=B;kCiP;@L2fG17H~D$4K?MCKMuO$6~&RO`k(Xp2nEd3%uDj%?4{A#`c)G9JT TD`f){00000NkvXXu0mjf!Sv%D literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/mobs/mod_modules.dmi b/modular_skyrat/modules/marines/icons/mobs/mod_modules.dmi new file mode 100644 index 0000000000000000000000000000000000000000..cbd396e077dbcc79ff97a4791c670cfc39410455 GIT binary patch literal 643 zcmV-}0(||6P)j2ZVKg*CZf<`b9x_iC7Z(>7si~>Jz`&znR$Kr800DGTPE!Ct=GbNc004b@R9JLG zWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TB zGg33tGfE(w;*!LYR3K9+H$SB`CpEq}H?gQBy)-XAKP^p(i!&v&s2F4f7iU^gVs0vk zZHPxt9xg4)3a)-GV0Qrkif=G6sA%HC0004sNklJ~#eK-DYs1U-43D3RYI2J5NIcvg%&V~_1;8^*5SC38T;(t_PXc1y(4gU6tn zC1UB$W8h|q+|esq@GV-@G^4k1mm?WWZ|H%-^svQLUPIzO^D2QYSvS|7!QluRjo>#J zYNVA(EB~ZnyyG{dU;atME-TchE`o*}(_}&CBIz1vI9>v;p=?3D$;wxJuq1^pThOVj z3ZLQANu<$RVBqFrnB`I@B$-(4Xm)N=2W%K%2db&-YGx2vz$Uoz+-x@B(5Mq*TUZH< z5AQ8JRjQdL+@IKgpg?>=r_d@mpwGW)nt7MjMM5+k*TfeCzL)Y{s5ZDpR0RzT3wW@W z9tR@0b~8M!ZoUVSy4pE4(rZC9jCojtFi;J99oGEMK#nw0_hEP;8bn4kkPo7w)`lF2 ziD;fS>>X002ovPDHLkV1g1}4ch1ljwEP)g*;IvEvG9wuiV9x^mELZtrmPn4}xRADDVf+<61z`(#gWSJUSO?&_V00DGTPE!Ct z=GbNc006vtR9JLGWpiV4X>fFDZ*Bkpc$}4z%MQXI5JlJU6{Ou-<7?~2v@u=Sf50*p z5(*8B8vkBe6J2NxWH$4-=ibfa>`)!+hLxw9-oSZf4coKbaz)8q36x>jZYYtUI*G5r zBS#2r)^n!}6szXc2+;g7t`}3y+5G0eouZ?Je4Vkfx(00QDk zL_t(oh3%NZZrdOn#$gk8NCn$eRcft0Kr7ZBdYV+9dMc`5%Wgh^$JOU^Cu_bC(H*XgpUNFS%0_aTN)QdYQQ$vbUrD|tJr|3qTmnH83zLz8JI^Y zukCae!JtYE$}(**&OL)~*$v;v4RC$3USBnl!NOyt=A!D907QrAM0bfX&HW+2h z*^ggLMFwn96c=nVWA2}qJ~rTtYpo|U=FWQ;8=P`(t)0xcGR|4?dIMy*b1GuQIa5j< z!(b3G!VE-@U}Y?ize`+c&DC^T(+(jNaCCrB;Q-Oa zFW!XGj{SS!aX72Of#{ip$AmJ+xeGnL)nlI1#4zpSVT!PUrx=dA@VSq+hdxH*k{kPi!3)ZdFtcXO`hS$?J>&@d z)TD#lZ=dEpY3iz}yG<$QUi&=niT4aHHpIRD^Smdpr^Xw5&Z!RMJ%L>vt}{Bonf7_V zuiy398DyLfq0Rf;;FJz<&taGM`5a6(0EdwGT{VGRF*Y*D_>hF^{%C?ZQ;fqaokTSn zHduEC2C_ZmyNatR8vXGb3zp5(63%t6H-H0@3F{_WI2eXMxDp2pRNN!e6i*+4-Y5=e gNNY3)_N-z31}o?r&@27ND*ylh07*qoM6N<$f`f(W6#xJL literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/smartgun.dmi b/modular_skyrat/modules/marines/icons/smartgun.dmi new file mode 100644 index 0000000000000000000000000000000000000000..f3c191351916cfec3e27cf8c552cf0b33bf2d660 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*8>L*@bXBSm^k^1i_6Iw zg@hzlX=>)>)lZtVf?efp8BiHxNswPKgTu2MX+Ta+RY*jMOKNd)QD#9&W_}(6L&con zu!5q}?_YuoK7M_o<*loA?#%h%4WR}XjUPPHIq#!+lA)-lcZY>>knv?>FNHaeCLNg+ zq7b~&!hGWjmAxkZo!!Q&n^#C^q?|Z9Gi=I?*<6X*+B<&jZ181cn7=`~CR2gqGSJ?7 zPZ!4!jfr=AFLE*&3b>drXHA*Dq@hJ*leF27*Sgb%avtn3QMj?)F(AkB{&fSMe1{ z^E#Ec9Z=HB%o5N3>i6a6n%QjpN`LgGJdCekvT71}D8X(6^e+R0r>mdKI;Vst0OziU A+yDRo literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/smartgun_back.dmi b/modular_skyrat/modules/marines/icons/smartgun_back.dmi new file mode 100644 index 0000000000000000000000000000000000000000..dad573eaa488be712cb8a02939a70dd47a3796c3 GIT binary patch literal 601 zcmV-f0;c_mP)j2ZVKg*CZf<`b9x_iC7Z(>7si~>f6l(zh0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5sW>;Ws3g5KPl<~&C9|j)q>qa;ttc@!6~s2=QdV&Fa{-$S0H639 zfAwiVi2wirb4f%&R7i={m9cVzFbqItQ}5v@ogoQ#9q|!%LYnJ}p?pBEztAt}mlt|~ zq#)vsttQ!ik}O#WfJsyeC~PrFaM@Z+V#=+>?A2{8W~qs;YXLBx5C9FT&NTwCLp9EJ z>vKgtSiytyh45dJhC6@U2TbO1VPanhTL^hlAg%MYTint%t=DvzauMTAyC&`R65}rGESh!-%CC*f4xPFUzpIO>vYmT+}$1 n{vQFhvXKGO_VQc&pCR!L4cIF-vO0o~00000NkvXXu0mjfwO#$X literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/smartgun_l.dmi b/modular_skyrat/modules/marines/icons/smartgun_l.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e5b3709c5d4ecd7765c50d8cddfafdf2c3d8fe32 GIT binary patch literal 648 zcmV;30(bq1P)h9CG8q+8G&DjUCTAx?f~5ZR77aR2l&vX4XH-;SZf<`W87nR>J+-`qvj6}90d!JM zQvg8b*k%9#0Bw3ySad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP11%il&&pVTeUdERv7iZVY2-)uW<>QjPr_pqZKi^0FX^?#O6sSzQ!yzbCae!bu z0Rm|l-%`Ri1*(l@4AOb$7D_B9!%feBYw;V&^c4){zw zO!{!`>Nr$(b8*-O(eBw{h_G>VpSFP;O>aYl_32&bW|BT+b=dT}HETq|1PT0FHFvO? zF-+jqr&|T-(tbnqIUlpV6WuEC#yNQB-B4Sg)~iN=t0}K5hyBXI#<>Pnf<=~$F(Why zH;i-s7c?|N9v(7ORAG84DQ<3ml9H$`F+5dSW0RDdaz!fMwmrCnFg`<27#JdP{tNs7 z0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5sW>;Ws3g5KPl<~&C9|j) zC}haRnO2mTn+jnoE4cc(fK3JfpRgNzX&?yG0002qNklr9tHLUuQaqt5*q=!VVAG~)zW(L1)PTv#GjZVDP`9!E6XTs=xkEX*o+ zPz^m8RdV97&{{oGL}(%+=&1_|dyhhj2DLRzRLvD;a0|5x5Hod?1RRP{)T7^u5#pBG z92O2hjkU0#q}x(_=R>aqAr2QW{sU{sxwtLvyyZM(J*qqev9&O>l0ztFX9V6LNNq;k z3w%S+Bk(DfF=J<50YOY#?C(%|W{2(9L4OpK<7>_ZCqJLziHBl>?|#PL#{-xc56wBF RY}x<-002ovPDHLkV1gWGyZ`_I literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/icons/smartgun_r.dmi b/modular_skyrat/modules/marines/icons/smartgun_r.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5f665165e6eacd12a957ecc225f1f4c611e496fa GIT binary patch literal 640 zcmV-`0)PF9P)h9CG8q+8r2h0CCTAx?f;2QjPn4||4LT`9XH-;SZf<`rEfFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM z;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3KBSI5)AVB)v3GiHkEOv#1!PkBc*{C^0t` z#5UwoR&e!m0h+K!u3)LEi`AvU=V7ll(rEUROTA0t;BwOoB`$7JqUM!>3p6u&iF&bBhTMQ-s9%> z;%Vf2Z9E;;H|%aQ^bs!a-)i^TUiRW6TxGAddnHZ02DnZ{WlkoE@)F!~l@QL{=qI@7 z6IBOloR>*^pQ>P5)EQ$@r)9xQ4N`4u#le=&`KYiK$s{^4Mj;PzX~I4li7IsBu?Z== zO_QjIidFHso)6MZny0zTmqW~b+2Dp-uC!VT+E-S&1X>U+T8f=a*%rwWL*HbbDa}ue ae}!+F)kpPMH)_cM0000h9CG8q+877aS2{`4LuXD32}G&Dj_l&vX4XH-;SBO)dk7a737z`pb2;s5{u0d!JM zQvg8b*k%9#0J?fqSad{Xb7OL8aCB*JZU6vyoRyNn4#FT1M9=UQq`g{W)vFiN#`IwS z0n1uQC>U5Z{=Kv&de9oU&1~k)TsCL>`p~qjIyUqM&MRx!j%}AKO72Ra3}&;YM1txi zzKlnX5M(xRrwkOGHR!A^Ja7#nqeLj@#}Z1;jt?;EP$59`N08;BoU8cFe#a%~0r2nO z92A@GBzU~&a7>)}fU!i+uLd=sPh5I)vB1gN;L=8-g9UKcIS?=m)KK8`7$ZVnAbo%aF63(y1M$_Q zF9do_AHaTu_+&sQ1wC3o*C&>zndKjmWkj^b{4Vk^`|WVaP@ZphY0DxAf@le0 zF&oA^!=al-!U?^c*XZ5x4~6>A74#7H`}i065Um~M_Wb?9 z>q7lc74%53H5!RjFv{(@;BaL<5?qFUdWJmAy#?!`+enXagp)R6Dpyc&xUwF?l_m{E zenOFVw7MP%f-nd`be7ks>$#2e5GFmD-UFs`$0CZaR3$wU2n~o-UL#d}r7GzWj)JEz z^GE13(-Q(M46sZ_nmP zsibs4tR`1-l|z)?i3YI zmz8w)d@k{O=N0_kd9gm9?@IjMiwb^^7whwB>h~(xKulA=$BOj@y*BiF6>Oj(Xz2G! z^!YUPdnNjOn)3%0>cI4OW}MXzkv_wl@pug5@%TNeJX$JMo#aBol;JEZt!sW1!C4P^&*<(;I1B?4L&0G`sRdDk)IB74Tca_X) zd}?oq-oOci!Q0jncIC9MJn_emttIrM6Tg*og1VIr0hJ8nAM+go$dw=2}E70NYmjS9H=h5?% z*J)@N%-Z^c4`C4c*Xb$p-@cfR_&Kn5ropVMx85FlK`8rR{VWt7_WZ%tI6XttVAj=l zUrdvQ{%PuNxR9p68KtplFxM7(Fe1TBy$xpjw12y`Q)!vQJh?l8g2|NwCMxa>W_pdH z?Kl?bzX>z-ux8W#%?m>b{2L3U??8d_NUBC?RuX#w z^oxV3ei0YypPrm0AO5|^@A|j#`DrS6bz&y;(n|U1VgiMw`rD6Ap}uo)`}4#84YqJz z&%hp_qgQ6aAgz=;cShntf7cS|JJ@S1POW=Z6l?eMt7X8>%p(Lr5ClOG1VIpOgZ*9$ zbdcX`2ky3#r-&`a1FJOX15935%l8;Z6?d+yoj`+2XJ+K8SdD9BNhBPrYIorkxt{EE%Lw(J` zvNQLSdw|}o5+P0))_swiAP9mW2!bGp$4Kk@NtgJ&Z_j#mi|)lr6XyJ_md9eh{sGTz Voexq_l{x?b002ovPDHLkV1gcve}w=5 literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/marines/sound/m44a.ogg b/modular_skyrat/modules/marines/sound/m44a.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7f41ffa16718bcfc22abd23cfdbb194481b0a367 GIT binary patch literal 9162 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 literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/modular_ert/code/marine_override/modified_equipment.dm b/modular_skyrat/modules/modular_ert/code/marine_override/modified_equipment.dm index ad958c7e655..d4157eb2479 100644 --- a/modular_skyrat/modules/modular_ert/code/marine_override/modified_equipment.dm +++ b/modular_skyrat/modules/modular_ert/code/marine_override/modified_equipment.dm @@ -1,9 +1,54 @@ -/datum/outfit/centcom/ert/marine - suit_store = /obj/item/gun/ballistic/automatic/cmg - belt = /obj/item/storage/belt/military/assault/full/cmg - -/datum/outfit/centcom/ert/marine/medic - suit_store = /obj/item/storage/belt/holster/detective/full/ert/skyrat - -/datum/outfit/centcom/ert/marine/engineer - suit_store = /obj/item/gun/ballistic/shotgun/automatic/as2 +/datum/outfit/centcom/ert/marine //commander + suit_store = /obj/item/gun/ballistic/automatic/ar/modular/m44a/grenadelauncher + belt = /obj/item/storage/belt/military/assault/full/m44a + back = /obj/item/mod/control/pre_equipped/marine + backpack_contents = list( + /obj/item/storage/box/survival/engineer/marine = 1, + /obj/item/melee/baton/security/loaded = 1, + /obj/item/storage/box/handcuffs = 1, + /obj/item/ammo_box/a40mm = 2, //gods must be strong + ) + l_hand = null + r_hand = null + +/datum/outfit/centcom/ert/marine/security //generic and/or heavy + suit_store = /obj/item/gun/ballistic/automatic/ar/modular/m44a/shotgun + belt = /obj/item/storage/belt/military/assault/full/m44a + back = /obj/item/mod/control/pre_equipped/marine + backpack_contents = list( + /obj/item/storage/box/survival/engineer/marine = 1, + /obj/item/melee/baton/security/loaded = 1, + /obj/item/storage/box/handcuffs = 1, + /obj/item/ammo_box/advanced/s12gauge/buckshot/marine = 2, + ) + l_hand = null + r_hand = null + +/datum/outfit/centcom/ert/marine/medic //medic + suit_store = /obj/item/gun/ballistic/automatic/ar/modular/m44a/scoped + belt = /obj/item/storage/belt/military/assault/full/m44a + back = /obj/item/mod/control/pre_equipped/marine + backpack_contents = list( + /obj/item/storage/box/survival/engineer/marine = 1, + /obj/item/reagent_containers/hypospray/combat = 1, + /obj/item/storage/medkit/regular = 1, + /obj/item/storage/medkit/advanced = 1, + /obj/item/sensor_device = 1, + /obj/item/pinpointer/crew/prox = 1, + /obj/item/stack/medical/gauze/twelve = 1, + /obj/item/reagent_containers/syringe = 1, + /obj/item/reagent_containers/glass/bottle/formaldehyde = 1, + /obj/item/stack/sticky_tape/surgical = 1, + ) + l_hand = /obj/item/gun/medbeam + r_hand = null + +/datum/outfit/centcom/ert/marine/engineer //engineer + suit_store = /obj/item/melee/hammer //doesn't need a rifle + back = /obj/item/mod/control/pre_equipped/marine/engineer + backpack_contents = list( + /obj/item/storage/box/survival/engineer/marine = 1, + /obj/item/ammo_box/magazine/smartgun_drum = 4, //AND WE'LL ALL STAY FREE + ) + l_hand = null + r_hand = null diff --git a/modular_skyrat/modules/modular_ert/code/marine_override/modified_gear.dm b/modular_skyrat/modules/modular_ert/code/marine_override/modified_gear.dm index 0a19d762998..048f24ee35f 100644 --- a/modular_skyrat/modules/modular_ert/code/marine_override/modified_gear.dm +++ b/modular_skyrat/modules/modular_ert/code/marine_override/modified_gear.dm @@ -1,12 +1,19 @@ -/obj/item/storage/belt/holster/detective/full/ert/skyrat +/obj/item/storage/belt/military/assault/full/m44a -/obj/item/storage/belt/holster/detective/full/ert/skyrat/PopulateContents() +/obj/item/storage/belt/military/assault/full/m44a/PopulateContents() generate_items_inside(list( - /obj/item/gun/ballistic/automatic/pistol/firefly = 1, - /obj/item/ammo_box/magazine/multi_sprite/firefly = 2, + /obj/item/ammo_box/magazine/m44a = 6, ), src) -/obj/item/storage/belt/military/assault/full/cmg/PopulateContents() - generate_items_inside(list( - /obj/item/ammo_box/magazine/multi_sprite/cmg/lethal = 6, - ), src) +/obj/item/ammo_box/advanced/s12gauge/buckshot/marine + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/storage/box/survival/engineer/marine + name = "military survival box" + desc = "A box issued to Nanotrasen space marines, containing field essentials. This one is labelled to contain an extended-capacity tank." + illustration = "extendedtank" + internal_type = /obj/item/tank/internals/emergency_oxygen/engi + +/obj/item/storage/box/survival/engineer/marine/PopulateContents() + ..() + new /obj/item/storage/crayons(src) //absolutely required diff --git a/tgstation.dme b/tgstation.dme index f63239e8fab..27e1b011b07 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5497,7 +5497,10 @@ #include "modular_skyrat\modules\mapping\code\turnstile.dm" #include "modular_skyrat\modules\mapping\code\vgdecals.dm" #include "modular_skyrat\modules\mapping\code\wardrobes.dm" -#include "modular_skyrat\modules\marines\code\miscellaneous.dm" +#include "modular_skyrat\modules\marines\code\gear.dm" +#include "modular_skyrat\modules\marines\code\mod.dm" +#include "modular_skyrat\modules\marines\code\modsuit_modules.dm" +#include "modular_skyrat\modules\marines\code\smartgun.dm" #include "modular_skyrat\modules\medical\code\bodypart.dm" #include "modular_skyrat\modules\medical\code\bodypart_aid.dm" #include "modular_skyrat\modules\medical\code\carbon_defense.dm"