From d1e1dcc1d66f70f37312c7338f5dbf3dc37ebc7e Mon Sep 17 00:00:00 2001 From: stujones11 Date: Thu, 21 Mar 2019 21:08:40 +0000 Subject: [PATCH] Remove hard mod dependencies other than default --- LICENSE.txt | 2 ++ README.md | 12 +++++++----- shooter/README.md | 11 +++++++++++ shooter/api.lua | 17 +++++++++-------- shooter/init.lua | 23 +++++++++++++++++++++++ shooter/mod.conf | 2 +- shooter/sounds/shooter_explode.ogg | Bin 0 -> 22869 bytes shooter/textures/shooter_boom.png | Bin 0 -> 320 bytes shooter/textures/shooter_powder.png | Bin 0 -> 367 bytes shooter/textures/shooter_smoke.png | Bin 0 -> 236 bytes shooter_crossbow/init.lua | 18 ++++++++++-------- shooter_crossbow/mod.conf | 3 ++- shooter_flaregun/README.txt | 11 ++++++----- shooter_flaregun/init.lua | 7 +++---- shooter_flaregun/mod.conf | 2 +- shooter_grenade/README.txt | 4 ++-- shooter_grenade/init.lua | 5 ++--- shooter_guns/README.txt | 2 +- shooter_guns/init.lua | 5 ++--- shooter_hook/README.txt | 2 +- shooter_hook/init.lua | 4 ++-- shooter_rocket/README.txt | 4 ++-- shooter_rocket/init.lua | 5 ++--- shooter_turret/init.lua | 2 +- 24 files changed, 90 insertions(+), 51 deletions(-) create mode 100644 shooter/sounds/shooter_explode.ogg create mode 100644 shooter/textures/shooter_boom.png create mode 100644 shooter/textures/shooter_powder.png create mode 100644 shooter/textures/shooter_smoke.png diff --git a/LICENSE.txt b/LICENSE.txt index c9c7979..e49f8de 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -29,3 +29,5 @@ License Sounds: freesound.org AGM-114 Hellfire Rocket Missile Launch.flac by qubodup - CC0 1.0 Universal (CC0 1.0) Sparkler.aif by Ned Bouhalassa - CC0 1.0 Universal (CC0 1.0) + + explosion10.wav by V-ktor - CC0 1.0 Universal (CC0 1.0) diff --git a/README.md b/README.md index fc4819b..2e2e875 100644 --- a/README.md +++ b/README.md @@ -25,35 +25,37 @@ Adds basic guns using the shooter API. [mod] Crossbow [shooter_crossbow] --------------------------------- -Depends: shooter, wool, dye +Depends: shooter + +Optional Depends: dye (required for colored arrows) Adds a crossbow with colored arrows. [mod] Flare Gun [shooter_flaregun] ---------------------------------- -Depends: shooter, tnt, wool +Depends: shooter Adds a flare-gun with temporary light emitting flares. [mod] Grenade [shooter_grenade] ------------------------------- -Depends: shooter, tnt +Depends: shooter Adds simple hand grenades. [mod] Rocket Launcher [shooter_rocket] -------------------------------------- -Depends: shooter, tnt +Depends: shooter Adds rocket missiles and launching gun. [mod] Grapple Hook [shooter_hook] --------------------------------- -Depends: shooter, tnt +Depends: shooter Adds a teleporting grapple hook which can be thrown or launched further from a grapple hook gun. diff --git a/shooter/README.md b/shooter/README.md index 257656f..89d0bd6 100644 --- a/shooter/README.md +++ b/shooter/README.md @@ -5,6 +5,17 @@ Depends: default Handles raycasting, blasting and audio-visual effects of dependent mods +Crafting +-------- + +### Gunpowder + +1 x Coal Lump + 1 x Clay Lump = 5 x Gunpowder (shapeless) +``` + output = "shooter:gunpowder 5", + type = "shapeless", + recipe = {"default:coal_lump", "default:clay_lump"}, +``` Configuration ------------- diff --git a/shooter/api.lua b/shooter/api.lua index 184fc6d..02c5780 100644 --- a/shooter/api.lua +++ b/shooter/api.lua @@ -323,14 +323,15 @@ shooter.blast = function(pos, radius, fleshy, distance, user) local name = user:get_player_name() local p1 = vector.subtract(pos, radius) local p2 = vector.add(pos, radius) - minetest.sound_play("tnt_explode", {pos=pos, gain=1}) + minetest.sound_play("shooter_explode", { + pos = pos, + gain = 10, + max_hear_distance = 100 + }) if config.allow_nodes and config.enable_blasting then - if config.enable_protection then - if not minetest.is_protected(pos, name) then - minetest.set_node(pos, {name="tnt:boom"}) - end - else - minetest.set_node(pos, {name="tnt:boom"}) + if not config.enable_protection or + not minetest.is_protected(pos, name) then + minetest.set_node(pos, {name="shooter:boom"}) end end if config.enable_particle_fx == true then @@ -348,7 +349,7 @@ shooter.blast = function(pos, radius, fleshy, distance, user) minsize = 8, maxsize = 15, collisiondetection = false, - texture = "tnt_smoke.png", + texture = "shooter_smoke.png", }) end local objects = minetest.get_objects_inside_radius(pos, distance) diff --git a/shooter/init.lua b/shooter/init.lua index b79ac22..01f16e9 100644 --- a/shooter/init.lua +++ b/shooter/init.lua @@ -76,3 +76,26 @@ if shooter.config.automatic_weapons == true then end end) end + +minetest.register_node("shooter:boom", { + drawtype = "airlike", + light_source = 14, + walkable = false, + drop = "", + groups = {dig_immediate = 3}, + -- unaffected by explosions + on_blast = function() end, +}) + +minetest.register_craftitem("shooter:gunpowder", { + description = "Gunpowder", + inventory_image = "shooter_powder.png", +}) + +if shooter.config.enable_crafting then + minetest.register_craft({ + output = "shooter:gunpowder 5", + type = "shapeless", + recipe = {"default:coal_lump", "default:clay_lump"}, + }) +end diff --git a/shooter/mod.conf b/shooter/mod.conf index 5aa9ca5..ac4fd09 100644 --- a/shooter/mod.conf +++ b/shooter/mod.conf @@ -1,3 +1,3 @@ name = shooter description = Shooter mod API -depends = default, tnt +depends = default diff --git a/shooter/sounds/shooter_explode.ogg b/shooter/sounds/shooter_explode.ogg new file mode 100644 index 0000000000000000000000000000000000000000..736c38395eb01458c72964f29d6c73686f617282 GIT binary patch literal 22869 zcmagG1z23ovMxNh1`F;EgS!R^1RE^4yK90&@F2n6-3jjQ?(Xhx!4vc!^6hi>{?EP7 zx$Eia>D9Hms;la)Ue%4ro0%yAAOZin!iB!Vzcsy0*mfa^A)LS18(KKLbwGS7eft7m zE)aje8X@H0M*jEpHu8<~PA;_pP4V^rcMU=P!-xS)SGV|T&LnSdMrv(gsQQ;ZsT3(2 z3o9oJD+?zn?RKjFe;42zKMe5aqoT5ulCprRg_YwMds0aQb6W_Qe>eg~L{%XGZ&PNK zA?@>-j8Xvr&;S5^N+3$CsT43jE}PaZDNgdO)yEQ?6c^lwYZS)X|6dg;hcOla01fb= zMTp4Vm$Dq^HN&Neu+QSPkmD&Ng$q&GP1OHWi zdv4snmA|T!LIAQTcoTMjIpp{`+q^kY{(+^C0OL24kRrs817mWf3QR4_EmG^vOX_V# zsu@PAk^epdfB--8c4b+l6#O5>R3pLU|6PR52k8L9U|SB@5f0c{DSyhCX`^2?ve=hY#Q);rMANPG;;z2KB$3@E557VOGLEJHjEbH53_V>^apO1Qr}* z7r>@?v&jE``ToTVSP`;x(*#Q&c=jlRzh?0PD~6j5FN*w+B=7@4*}J4ElPT9@yeKJq zSw)zsGhM;TsWeSRNvVH5Xg!X%1NJ3wIJqw?c{0UeTnafQ|DTo{Mk-uc(KNUZ?;s7O zAI|{%oW*nsT+xy`c&x@`%KpzLOmHhWE|sRPN%&|0`hr37d@tr~inYw-6!cjo6Wlf&O>oWYI=!^F&Zc#ZYR* zP`f3V1*a4xXB-vfApVcYF%KzB3MmWSIGU;%WUv3xQD6#eP)9MG|8xKV&>4j+{dXNvP-L7_3JAN!DZk<066dmDSI*s3qlwZ05C*W zL<9!JDUJj8qZEf(_Xrh1yoG5>3(Ryd_tvh-~gfj=*PV@zsZlZ003zx z1o$ID%V8`AK%)U{ex;m<<&egtl725XfoZbvUUng#V~m4SL0M(wy~>=j$_louN46HWM5sOUf#1*eY}NCM(!pY6(so?6Ml*+j%h6X(7Q=Z{9{H z>0hj5G5@mSQdy|yRB%*LP%+U^R?%=a(YRMpoA;CkQMxLb7*3kM z7MGWoRG+?4o6Ao6?M|9mJPLp#1trJLMa|8&C(U-F^)`gL#mDV*Bi)t5)fXqt%(YHr z3Mx)(aXLF{U_ET~Tr#xo1FCKKJIWr1!3?H<^GER81L6%E?}vr6$>(xLLY>QsoG#!L(QmkU21JS`jWg|1-!cJ8oXls;Xet z@QgGM8)U&4H?3(|)IX~khHiw$c93U0E`^X^`$hn>I>^dH5dr1rVM>D-RY$=<&Yk`! zS(JyNBvn)gW|g0ZEe&F=$JDZAohJm3$ivW*0`_An*)aB}Q1p|6Sq;4j|0`oJDGtmk z*)IkJDvOU%98HUTW91hCk^?m1S8!SU6Qat~98s4%^C>bsryOQT8Uhs1I8!0xVp~inCze@{OQnBQT%h z04kfGRSX9cjBMKGQrs{8OLId@#{PN3vNz#$Rq-)k;rq*)VZ3qEhG14PiecapTGmYk z36@|&iehNp{<4EL=iRJk>6;8`@EgJ*vguY8yz2Ns0fc=JOtRjVkhie?7^FBZWr1ct z%1ehJGRjL+WG^EE1geaFgr}+-=LG`$=6T_%^0B4q82ePMfIzSojNrWEZ`i`h2KPZA zzSBSed;&*tKPhyDmI$!`A zNQx>SocAIUg7Z1+$vAaF@Pz(ZNA!^mky!&t9hKSW(EVjVG)2B(iO$1B;=X=?H;3_|E`i-CnIwA%40rMT-2yu#t007-ra7I+A zVC?WcIt#pJLIT|0)=UsDTy~r|u%9$8MiDFytWuFZGT3%~s&9li%~Mh^G^{zD(ZI0k z*AxYn^{HExljYAFmU1qDL0q?=Vg&*dtj3xEfK?bcKqVA`7#9sL0v(6(UnP7vUjaUnm3D#gc{SZrn}2;x z22Qp`{#yHOW1tB3Mb;Zy$UcFs!SyD`f%ssSo1NJ6s-=^48s)U(~Ur^J*9D~Alm5f)Aprx&ZFRsAt^k7 z1&xf|R~P~lcMvSd9~ubAs_dL()rN-N#b853MjY^Wn6`idp!p9XM+d1RW4tf+%`xNy zsB7yF!ucSFhu4N89kO-8=&U-C`jbMF1@%E-M)~-?w{_iqC*RnGz$ccE^3T2)0zeD^ z#JnRVCr{yxK#4?+LW@R^!H9hy2Zk>IunFOV3h<$X2?`1_jmYiUfuj6m?4Q@W3r+Qx z{8quk|Fczr{@ea%-z+Tp5BY81{3eE5Tl_1Kk(Gs+jhUL7mW^e7mWGa&7Q88*r=nqD zoZY6QWnp98m>r!PpPyY{CCpr~?TmW%>v+C^h=XMx5csj?Go~!xaKd!N@u|UeV(%kV zy+(9FW3>>nGb%&k0wU!-$z_{brY|h{hqj{mWO}}C!9I2;nNls>q1#VCN|*l_zhDIJ zIXoN*5%dFgGZqBU!d~~foVa~BD!l<`GgXE{a|N>LuV)<yK4yHFt(f}$Z6qyC9`wk#Em9{L-$+)tZrrYI_!?<^vBg)7rPQGKV=7#;wDM!;J z33y7`fqXjsezF3w`U_t;TVhysOhe;afQXGE-f%Ac0n>6py5?RihLg&#yM>G!dH^58 z`2##OK;~jh<>2$k7P%5~CQO)$y-Hp16e3Tcl(@q%!E(~-`PGZ(g+Jz=(Y<%}_;RCo7$hX9#7?hlU31+6 zFwB*MD zDS0zR@H2i|vCc(p3Shp1Q%npB0~y z4`c}6SChOx^PH@wZ4~-(KPHsIR(O!=Zk?L8lkL9AnGRDT%?G~R|FA`s9=m&WPI+mW^w#9+5$xq9!zqzqF6r6$};)k0EeBrbo$Ab zi)|rYx+xJ3PN>}5b~n?Vcf#^J@2nTeaCTxDIV)CNa>aT+T4B6=x0hs11(~;~oh`w$ zufd%D>&uWYD1;474=cLD+PHdCx|j5t20djGQU^CWm$qxh!fH#CU{|+J1=f^iU?;p6cO^6p@*~09;fCmB8UzTsrQ-* zP|c4jAHA2>wDw(tNO1*kQxGw9)kTP@>%LDxUHG{tvfaSl+?MdqyaD_HlVoTcRj?yZjPTl zFDZ8x#kg@R`MsYD$B>2bKrsJ+yau8FEmOC6blnzKB5#aH z3AZGsK5pg|*HwqOf z)Z8&O>8Gz<6y-4Wy0lT{qkDe*y=Q!?imm<`K)1wLE_Es0NR%jTq*WM-%brcQgIaW} z>omD9y4**3o`q6ac853#<>Blf%{&HqLDl=?Y*r`M*+kq(B{OP>IOz%5;Te6(zMB@- z>p}AVIRhy}gdmc{AI$J5sKx6>%3j=$p#|DF=jul*f>yzB^+@x-;m08Ky#{`kuh^I! z1;>57a>A%)DR!B^7srd0wsJ-G^Fk7Cd6iKV?GU+848knOp-DJU5^q{tW z*D>=F|i#;u+8)mhI}Bn+eVHDu(U25m6qQZL`w`q=dP-1#vl3{ zlXkc~9_^U42sW4Ug}&o0EHaC^tHaqkf(ou$w)9$XdO8ndW)oeRw8xIq*xSsgM$R|- z7Q`b+v&=94gf`x71%m#=T=u_W3kq?3nD z30I3=nKx{i369+y##3Ut%e4g3pIyO2iLDzfI!s|fq1_Yg02lCPa!PcT3?$= zKPXl~X($|fc1=#%Ojg>!_1aSAd@Ws<+dA$HyVvXc4yOEVW+amnV4aY7jO&vR1Ty!h zve7NT+j~7s!3|lx-Q)2(A?3?mi+gg7?z&Xlv-jF<%ls05h8oFmm~?M=kt_cMtr6k} ztlg6In)Ee5`}pPj&xL9717nH+b5}XuuQ%kpJ=p}yIOHodxs&ais6IndoVpw7h-z!@ zx1f}1Yg^W;27*G%RPqiD_4{RyYmexB4mc3o@l8I-X~|qB+idI%W=}?P5H<3&mvhtFAY)!jz;+;;<=7ByB$4n9b%EI=W&gTP}aIYVZ+_4|Km@hKIExd1#cDv1Mmx2lTRS{`h zVl^MyH~rOqk6FEp3)9ZLoYEKuP2OdEPn-{?D=&~F-p8=CD#s`?(==Ot+*w!5x%o3G z`eBP7`A6U{Vq^F71xO8-satYJDnY|`Z%Q>JoaFQi{^~&}7^ev7+M_P`}E%d)>qTVh=+wC z=e6o<#klP;lvSu$?Zh9k7hP|szkRETc)l9VXO6fK`t#yu@Vqgqe^+DEab;`kneV-( zDm4C)r7`|S`>C=!nnOs+}X8^hp z_;Y?##6nWf9_NcUJ*`X^EHfpi6(Qyqu~=j0;|)UnyisD+Nn-4dKKo}jV^~}?d~hH; zx2G?a#b(%%oX zHBHWQUSwf}M3#HvG;ZvoNEGJ92hU22If?!^x? zD}FADQ&=7xc)k*sPl@KH%ZRz4eQ_!*?QCrLnH~QF?(mQa5=m^2%};PLeAmD_GwR)a z9g?FXyVSx(^T;=yjqftpGRb%w_1lamMa(lu!Y)J)e@v3-FY(y#I7e_`{2UyKodFT5zzK(}CBc34DZ)G#Gqr!k^vklnoPxiYH5i zKYCY+x|fJUFu)fn89yl*WK~>bU#N&0D5LFDFkJ-1(F0)!_4Dlx`Rdt59V6pEjm09^ zsG$XzG32Oo#JB+^>L>S0;+e{RK9Y~LU<{;b-EVZ>29PZ&u-tZpCgQFmd77=aWp=sY zu{cO;mA-p4>I zGE@&tik{^zn1_zga#CcH-`jBR2&;=43}VcsaLoM4U9R+M;o00MGdg)l51W4U)QRw~vy0e&pItzKn;AyEy$zm4i zas~%p*VaaOT$c9J+$QBp;g!YY>5DRcitOj^GgJFWYo_1*MINH}wP^5^_&6^PJL?Da zB{LMN@Fx8y7b`VD-G{QgPCm$YVwQ-O1-9J_b>g2(j<}?;25+(l}O5Z!bIIN-|;pWq&4Ph3ZnNr;4Eg`Z4zeNUpuTdMh^Oux0X?Oe}MqR$77nGqjF+PK0 zIf8agn|}4pV#CAuv%eACD)y03U&;Gxqu|)jnoVQvk6<(yojK(Z-#$DFZBJj$n3&y` z-6q$26V0|HQ{Z-Y!Eir^|{;O339 z5306yS@5P!>&>i;D(@vx;(Ics(rqg(D*KpHBKjZIAqbP$v>U$-vx+c8X<80G?3#DN z?4H7I?(XC#)(j;C9dfK$o91|)ji6!S(;W1!&bJuBN* z-~~B?R-S`J<%!tCD;C2yO6e26(Uq$Z1s*M=yBrKTT}FTJWO$ymRk)eYJGSAZlFDkU zKb!5t{%V6P8sSAOC+_={#(XAgtm-`YVqT&+FjVYD! z9g4vyMijrCbYpQ{x<6GKz44-HbI+rWB^NpaS@$O67c{~qtc4is2cIfqy@a+yjv-+- zD(xsd3!PGB4d2 zkSh=S-YKi!BS-O3n5Vbvtd!y5d3X(QQo3Iv=#W9Y4^vYNk*lp{l0{W2JoaC#@O0Wj z)03E=xOs{+7AaEvLBy#uGNMPyvNCl-qxK-SN5w}8&@I&&#XtirE;KaQRSeYabsi3@ zXxP*lcHVVW5KBIiJqm9gtFFjawEg~lGGkQ&l^ojIXMHMtVyg)Lk*8OZ?K-;MT~hW} zvpbYXCvIk&gVJv!9$#zG-xoKYDtxUfmY9o=%KQDDttDjx&Nx8e(Xy_piAfO!NZQXt z(;Q$=ZXflfn>@-=8UMQyuYXTVboGMM-N7R3KIo#2`_5}xC#<1ZzWGuLMK@=?z#e6Z zgz}p{GuhxU(|bGPQ1XWQ;|H}OLkX)IQw1Yishf7l^-`T_;uOfvZ_9UIaeS(ZZ%2m4 zEn!BVxLt2;?}u#-mp!&tyj#uPy7Ew}c=Kd9Lz~=t(sQP5-$_NpRFaooMaW5y4lnJl zVfK72*L|ORHBu78oj>n`8d!|xC|OE?nJTBlG|l5ldNkFhR(Lbm%$xL4z2OqU*zN3H zW5h^4NyMwhJF;f<nYIwsx^F}Ouyn5Dd4{&Z)~dZ9e{3U5PU)hZ%ANAEhx31!s6pL z5>6fSgdaCv>UwIhTbSEx|GX}DO}v;o7@TKy(G|`_gLb*K|I~g?S$CaSi>hIuj9+?h zfi09CKCT6uFOFL%QG(h;awn+-o8uAE98T@3P4k(wo&X;+YKVkWN`NEEyt4AZpG(m( zWo0+;R`O|t9}h(-YYJ3P+{7@JDy6}T@oTlN4G|NQCAyi>nfb&(u}*-1qt1)a{&(d} z>?*omI1qwuOg>QohG8@Twkwv#m@Qey>7<#?iZ3`$<2&0gHVEQTqN9voS?HB4>Awkn zW}<{y>=lEo4%mNf{7UnV?D+jh<%Q4w*Y%%`4_4dXj-sF2G>pjkrB<|hqSMz3u#5Sv zzICNW(IGuJV0RqS7}u&bTnZuEnk}{FYoVv5X|=Rfh5U>zduZYyYK90>Sa$X_v+1xD z`*xpP8vwtBedW>4d&d9z({<=*BKc!bBCRfE4k_J}NAtI1gfIcha5SpBw*0#eM0?#E zrMmq9{ldnqQuQu&*^8YS7OE`?m+lxcQj2+Dz(f;d%+f5*Lnj zK_KjljNk~@Z)m7Za%)H!bEOVQCcZKX7-zlqZw@6_x48rMB;2QZRq28qUw_~H;4$90 za)X)hZ;&QQtWYO-&ZidhRbX;GoR0P8+xOn)ktkzc%F27bCG&q|^!0Em3i$p!Y63ys z(w2-%*&|scz-vUz>fefruC>8YxkI@~cLY0k%#6N1<+QVWt2UjDPBm-bp(4`xa2)@$ zIuS_!{@C&PXYoC!FkEk{)*0gW4(EDXge{CeQ65%GsDM(-S;l6$N!Ab^jQSl$!n7*!bh(j61O&5I5Fj)@v>x zutMnKJ<*w1>WMJ!IcaT99#rpjwb-9f9R^wg@@zU4mx$(~jzFxr%>hNqlG#T}(izyE zM7BPwpF+AYuifYXx3?wUlk9;wl%q+Py%Q=Q*0y^19>Pd3Jl~r+S$LFvU}iE@UN`(e zxfZRk6ScsHZU0fSAZ%%opgJ+qn-bTp@;DLS)a)GMj&u2A04GO z619cP4FizTD)5B<6_8Xx2D%bnR8cuOp%gDjs^k8>w&VS$EOA1P87@+29K7SF)43n@ z<10uzZF(%dKYQltLq4ILpiZy0tB*)+ehQ3GJjWJ52dRqCGcA$H9HXRMO7Ku+8KLuz zB9ECx{8%=Gm6xW_$32Hj=Yoq~mrDaYvj^SW!7owrEE0LXW54JPTqDe}c(Iq?p(&Lq zDiFm~A>OYMLz&l?)r+q3XH!Dtp*Ws9YNJ;5XcqnWg+JSO_2*gxId|_b+0*E;PPTU= zt}R!o=BAME0L0qqs~8~=o9PW(@MH!uB`Ke@${3Z9J?d8p()JI#Zqq2dtYYfR7duk8 z#2B;|_pWUFU2-QJAY0sf1$h7bd>W+QefrJhOO=Zs5JNAWu;%Cm(2 zc&q*+rDCJYI0+p-?1+cs_c^JrEcaah#{{g1)%F3!ntaMn?)5RNh6rCG6i>Npx(q2UU#x*;wjNOv>T}qPrzCLxCBrcqW`p`SrSnFw7p!xaf#qujA|A)zp>H zf2`HT9LFvXnLvVs%u7c&&Zs{Xa|Gm4LXIE*9RyK{o*M?ygYp514Sj*AgX*x1Wb*MvQ) zR4HkO!B)-t?G(JEx()QLY~u{Zp{I|-xWilmg@OF%Jn{VO_uFN0)6luRvPqSVU+6Di2b!m2 zan7}u>K|t7qm&(l7&Ej7~iCp7ii^)jx^srTn zPHR|`R8C%l0Bn2QKQ=l2^HCg7Q<)HuQBcKU?-iezSOnXjR|8nRol^@D1@gRtVe@6= zFj5>9$9K0ZdOky3w1uEpGOgg-HE2!5SXIEZP`wlprQX%g$ z>rGe1V?i!9j9R7x^H}lYrIQfg7}~)HEA!3rkrFv%Qgg?)oq&WQW z94h&dp+*CY1-yebou3pk#cxQvrw2S;yB`Xb`nR} zi?*<56Qph>F1kiht@y*zXww4b;?&gS)a>f)^xDGs z=-T-B;>_F_~~I_R)SxMJ0|sjkY(Y- zggII!kZj}|R(W`g6r!wO3Wqt`jeyvs?yIy!K$OeXC*(;9;TB zbm~6w9=YI(1l4x2>{^A&DBj*$j8_%X(V}5Qy04G)GY@I_3fxCriaBzb1Lbf#Z+c<= z7<8VGcwK%sSBQjQ@sT-~UlZvJ$42JK?FLKLTbTrWi(5^PEE}yjBwEEqS`<&~EfRWJeRpr@vY>ES9(8`-sVZv5tw>9Hl*%bOAbbyq#i5-Kw4YI3y$A-j z+S#`mbL*LEjV`rE3OnjUt@EcpV`vNa;NG|Um&y<)<*Bd+%i)3*x~LFhxp&yM4Y|E2 zx2dAmsut>ui=OcpWF3#x;Fjy?X^%?9ni$3Sb2v~#AW^YTTGgU(urn1U(Ud7?S2o`H z=LAXb+kF35K{R5K;m>-kgx@(BC57Z3W@Woh76s^(HWH4eFq!&NS8J*{1TIC{5;i2> zYY*O6PY*dKL6UF@!O#Dgt5I~zUGi{SEWB^-$HFbYtFffUF99Dnbc^6Fl)t0kL)(=C zrRizKtH+cRZ`514zG@&4pss73?IX)}LEqgH@NkbpNv_1C_AUfFARBkIKUA!V5%Hu3 zb5Cq6>pbq1+CDN_BcD@Pk*|`O`3G%JYtM%9+&KPJg;jOzz9;(vW!7Q;Am6w?oVqKx zAW$FPw>K!IQqMqcfm1QgO@ef8Vpl<3h9jpOVYy+!!l{t3o-zlT($OK}g0|QZ*lj#9 z$FX!!d#5GMam9-J;`~{}_?yVpd2G2skec_d1(PBOXZ|FI1O?y4x=~rUxno{}z=(pe z=}%?97#7zK3ujRcddqkoJ4Cy5`VB@iWM|u6ce{*$Pkpgec%__G0nbAc-{VDgTL9dP z>3yU%-!I$Gy2TOk7}#yJMe{o5Bpb~d7iWN2Hlf~In4aa#-_JZo4_fxI=ksmSJKjvO zsx6QhF$N+ljl&7(ww%0iASHHPTw2dZ6xA{VeH|BQLvQD2d_wzy z4QfE<te7*eNFBoO1-X{Jj?z`Ut`mOEOzH0g&tX7t*TUZot* z+y`gcZ?|enuGZ-*O`@GA<;TN;KR{)i>(TE4t5_EAo$&RW6sh_6nTAFI=KoV(iK`EVjDs1?(jHOwtdm8WU+H zE!WD4*fl6p=vyzs!q>H~2&=ZGe*QzHu^Lk)f98%*sE)13FOiE*oVdY%+~X`YRZNZV zP2Nxh%}3Uu?ucR#(~=@oL}Ad3w52x4hqe`m3O=I|(l2Bt&&A4`FOLxYjFa}j(I?=h zvV!=VcO<*-W=n3%xc%FvtEbkB$Qq=BgH)>ug%CV%M;IC|T!wUdU&hz$EFX6TLxl@? z7S%ec5l!;}%p<>vjgH!Ol0~5oSKf=0*1gzw31egqUqRN`c+*4Z+F(#H?%_atn^)Yd8hAvd*+MBvV zkp%Q`ZKYPm$dYh>_~Zdn*XLta7|AltFTJ%VKkXE%3YnZC_K}HHG7Hs%aVNG>Sg+Eqs_F9$inz?({f^REs@sR(&&mNUbYe^26EyhmrXJ-&Ubf3>Kv_>rx!}g zsCwrnbIgs@FnHY6yVGKmo6f^TnI_=r*~=5tb%dU&$E~~-^y%|N!`BhvWdSZ-yccDp zJ4+zq`b|mJhPQNEu-MUsJ0t@HuSP_|cV1Uwl2s3O`Uo{9rN z8|qoXuHw`K;_Fqgaxd@-a0Oe0UWi%r(!H-9&yIaLwp>;pA6Q3e)Yj`OFsu{=#L#_P zzQl~$6j*Vtv&J-*j-aHBq{1bR;YmNHT=Q8}-P@8Rfxh7PIaXU;`nj?A;iR1@E(=Sc z(uWZceE+==Rq8rfq7p*&0Y?xNw}s(aS-IPy|&1-}iBpK1+m53!}>%?c@k$}!& zejTc0D&t-s$`*B;lA|o(s7DXu?v*!&)a744B4C~7nmo(aCNVtBfc3`!bs%f@sMNxx zkrVm`8mwGj#xdfj(UaT6Dhdb-{JWAMP3#okQ+2bV3vL@vp@W5mkql~BQ#RrW67$nN zMe6owe&y?3m2*M$@c?(_lZ@xmJ;v``B55Oh)j?~?TXwEfXVuMK=(6&qA{M6Xaw{$q z<*~l3)Y)FY45XPW6sPvrO31!l{NOv>JU9ZWmayaHz%}U|EUyYq6VjoDuULJ|KRflJ z6t7SqzbS7bQAm!)+kaAHpsm!ZmH_0hyt{>W#=?XavZK7fKcu%<@2`3%Y8k);MV{H& zGpKvx<6fsSI+P1or?YWHr3I8W3}zwnBpvq3=NoI#cZH=cl}P`gM%bCT41L9IFk84> zST{RV{ZsCVuw%rDfPCHyp?9a$9RJ~waM;~~7j%4-suv*FUF4O}DmYqL@~}QO29%uT zdeku$FbKSMgO!x}l;6chipaPLwd{}tsZlX}(o7$rMVLWh`|b=AXS^Ww;6sDF2e)`) zfD9+-WbesII3yxlS4Ms_nFyx=`wEM3jN`(rpXc32tOh7IX%%92T(V~dcdK+|orjgF z^Kp%;lq_}#YJeAk&MiLpfL6N4l)cVk)|aklcqU|c_kTT|ifVUL^u=X7_oX>1#)qm?H)=ZbzK) zHnXQ^y)Qx9#Saepc;U(^|Fd9m^48G(Eb)(~CL8|mD|<`;*F3vxAwQw=`*!IbLSOeD zBtrJ$QR70c1)e1@@fhVF%G^9G5(NmRPPVb9WBomB7O2VfD;oTZ_vp>*9Q+%xEb+(1 z&G@`>vjDnC>8r#kKG3a?TH1!&zE#U0I(!ZOK1mO!U#~-DvjeZ|9lu$>R-jyzWwc(* zOC2WOn;4Ocp~tk9`Tfy1V{eN6QQf~Tu?uzn^21Mt7W;7BM7p$5V?GA5s0T~KTmS|s zieSSkf(?qt7uZ@G^lL}jy0*2;dWp3U){L0< zIkDvm_qWSM$E$q==?dDQ>=LJGT1p2=N?%8%0CuCjVQl}=qn|&l2n@^bz)0Y*P|uL0e4W|eZCkEO&vHW z8R-&JVoQwl#26d-jI@oIgDm{pnbE?Si2&t$%)U=&DfKQUlp)Vyyf@f6!a)^q+`xUR zU_Ds48FGGl=ub)+D%wv%S7J>q(>wZBqrqj{0KAitRSB%D_Q|b{*Db}oTBW*i@y%L` z3iPhl{Z53g06q|Th_p_i?G_DWB)0IpRG2P_bk4>$bu3eg{%n?T_j`DntXeiuYLlKI zBqR`BC~wSG%iTONuB%O-TR7SfQHvmc%C5ofF6m5d1iiwb=yCZOOL-Y7H#M36ca&D? zO&1Mil*H!UFj-1P@(;jz@u__<&NQHvVpy`}3O~$-=d!jmd}j1(%g()?;IG1o+3vz6 zw@7)#J3#{Oi+LKODyivk4RTcw(O`I;6r`NS5|SQ?ll3tYQQXm;-*vyWB;~pK3WN08 z(Jzwq=DOW2Ay|{oaxz?A`dQS_nROiL0j-PkydR$Kf^zfrie(h$K9G7mvs+A82{NfA zP63+53_d7~iet)GG0&k%H?@m>x|^GskI1}|uB(ti{;u20fBC>jzl?tByaYuK?YtMF zzJ?QQURY|fMmDD&Sp(R~x44S`A}CV9AA zffM>Q*Mq}+q4&z^^>U#)?v?o3%_EwI>>_`@vig!d;&l-SeOied{a)+qb0A-CjlM9l z-O~ZYhFRq+Gy26Q=GmhwTNF-Xyjb@<9;(r7Z15Mfb*axK{BwenSwF8AZ(9tX-RZ>c z4-?&c>~nr!{rT9hJqLMJ=w?m!xQ>#lOR<9-+|1h3`%=^MPO5?VV9Nf3Dvl(>hd2sN z&i+wb>=4aEI}sT-ZF;;SYWE&puE`UvnW}1t_2slteC>}`$W>qJkXBmu0L6+zE3Vy$ z1DL@!-tza}XRNIaNB0Zzj(BM<2fu+vUnfFjP~ArnjpU?yTa{mTIj$(|Rq$Etd&_ok z@Etb1QU3ZT&^?_^xWyZiYQ~WeBGPE~e08rpKIKPs;)EF{yv- zLj@5iK;!qVeh}PtkeY3w&6^n~aox!?#@I$r)yz3Y?y3XgXNDRvza?omJ1IRCmIv1*y~F4G*ZBqeKmTFj z?Jq;X|7-w|rQS4yxx6?wGrce}GCMXrKRY!yHr_in^|HJ=h5+ zAU=Wzqvq_7i`Q>!9!>#nV|NkmW^uE2+S~D+^lxk08?J8F zC|NdUr8E8ax+zF?AVy%mB8~zfBFU*)=SGn1V@{SM5vweqFbo!rYAAmJTQ=&8WS5)W z?*h_6OrOdhk}j!1gQSwvzq`B-vx&ZFb$>8qNRb_L3wb!you=)-(UV{0>piA-%GIjT z1nyyt=GjkUiziEz#)MPC35^N`O0KgJ(K%&1d6^d-u9CVn#4(#w%R&Oy-53lJ0sz0( zm`NHfnsT5XAmbB4$;gcRTz{3gL^_lUM%|yQc|W`sdJikFT1Y z;Q);gSMdn9_Z;q7D8nO^ph>9z3aF&Hx6AVkT4t-)TvmS-e*`hi6St6CTT}$H4Ak)) z@0wxHVMy;{GN4N3=BS$9gX#n|vI9xKBwHyxNR?PN^Y|p(lQG!Ux`_u&2Jp5bmI#u6<^-7{ki7TIQ8i zKqy&a1*gF`f%LUoHdhGU-c|C(d7~&aV!Z1hg8JooQzp{L3zfKfl*;5YStCan%8YNT zYZ&@~#=^v3bw4^6@jHeWs+~ikSAHM-I{6aId|lnYlGvbhm+CZ=-x3qHqLMHxE7L3% zm$1i3vn?+D1zRtgt}VVhoP`(&L@3MncxqW-Ew3gO=vHy74v9-8$RWg`P0 zlH0_RODk*2Q?e@5$Oa^ni8|$S<-+{&>6_zuk$YbhngQMaUjSMZrR#kcrvnR=^DmTm z*?oYmJv2H1zF8d25)?rJ-Z6xQ7AC-$`hF#{$67Fj{p#x0-}(Q0<@@Vbx8}y%c8@nV zxoq-Q&gg?It&K*XkB(B@$wqA>H?y!9+V7cDYSZLigjS#4$W*8BXUW8r&-?^t_5a>2 zPi;X?>E7|}E`1&z&*@f+J9;pSdNs=hA7XmDp`rLCmm2{{d*qhhfWpSVe8_oQQ*uy> zrJyNZ4P64Ow{ff)QPOPV9i~t&@4J=eXP>>bVj6=X#-B2M-zqx99Q7P8W>PTVUdL==0>)`2G31mHLNSj1-T&{ELznHI*yU{uJU5R| zZ}XKLv83*7ejlDO^2N$Q(febqd6rEEJ|VcH=5}`tlUgri;Ck8}uOYz~DHy4kmqaw@ z+|*dFExcrrxEr8oS=(GAir8{5yJo-qUpJ_`T3gz+sfEPOLCLcDt#xjoFv#&zvWw zh^2uE9`&7nq&=JcSDigO0G?S~-5g*5csG`9=|cx;;>mt#rAcil=F@x_uRZ-Z&f5CW zo$IG>qp#Bct3gj)x7aUdE1%h){np!Yl&*3sn_l&b>j`iXr1Ya8SxR)$9u-zicA;Zd zcX;MgW(uv--aft1AIbHxPn4OO6*U^!pZ>ZYMs6WWq-mz|Tv}@yH4E03z~oTa&Xjk? z+g<-}IZv%jww*QeNESLF60S$P49W`ZLEYwhg#gZG^a(CH+n|I`QaZ>Jbk<8jt+z}F zkhW=@c)_MAiZKQoK3QD-9AE&rSBsgiKtMS9l_W$Vlwpdw2acvPXUqJ?czNzWnb+?Q zE6wLR4Z3ii51VYYT%E0Og!pUs!;lpR97*9M8xP;O3wYmrnQ>GXi3ac2TfJ~auiup2 zEMgOaim?JCC|G=%K0pjkB={GsW;_aAfPm#3U`U#kzXyu$R`9)=pceP0@7p_OBI@)eX} zR~yjAoV5<#NNjpd6$8L}Gj?yA4RFR9tCtw1*)fHGG4qx2b^iNPw+`ICog%Nq#I@|Q zf9obSHDO8q^)_$dTsOsGN=$4Xh6dd#@I~{aI^C0v@8cy>)r< z**F^jeplFlCAgsqPS2!muvmB53&e$YE$0Z{k;PgUCl8*SAu6nItyLQ>gRT%Lik=!) z7;;Fu)oV+QpUuHzI6mK4Il)@5Jx=K*77wtRmIfo#l8col8LZus?4ow@`fszRKhLMb zAK6Z8_A;J9zF3_65>Nox_cxf7bHEtAl6|9`&`gnXcmCDw*Ymyh^kAVfSJEh4DGvPAqp{-hTD&L)jyDpL}UPl$fpa z{(JKhHAcC_d)!gq682@cC2$~-YvD78gNcFNz1I+TNutsx*Z<6bWTD9w?S@I)B#7Btn!Ro{Tp%L7I}*t0tw5py16hMj~ZP`+)B>mB7(?^ z1jPS&i=RC-H4YrOQl{g<(TaYNO5KM}Fy^y>uXmis_U8Pod7w5iwv3KSIYsfxl}!gOZe%=7o5r%5wI#orzZ!fCI8MDJIp(mMR<`0t{1-bbur4JZIiSCn~uqJcIhT8=T%Mk|UvAQsj$>ptSDs|v2xO!8-_!4_w+w!6fW_6z(^uR z1ED!Jh>f}I-{y#zwegMy^?f>+piVSvX*G;Cyi`EMJXYAz0>;Co4oY`!9Oaw?iF1JQ z$!?8Yq&sy_lFxKFpzZS9j@3=GBdBl@U@iE;Ca^Wkc_)c=@0D1iEM^R>xgPz(=l~vA?CuO9AOQ1~qU9QZN=vSaib z9dh>|7+M(IZK$*^mElrpJ9<$teiac}=4=nBD z(FjCzc7)$81PHk`&i+zg0aYd;476x*VFsml&9b^)SysiX8PAed9lg6gL?O8@$9|9Z zAE{KJ;qLemVAvSxcpCuTM;y%_4*>xfF5+khAiJt2If^!j?zKFJy+b;!0PW(zRk< zfzmu4=DA`Tt@iv>M{5@JdL+6^nTT_O3tXXOOd%!SEgJ*`2QJcTRxFRxB1c;1JL03z zqSZKZW~EZSYLT40PtaQ#c6M}~m!L8HAq1J}g$~4*-UHus4HAV5o_+E=0mGxeO%H4BUS{9jfxH%~t zb_~~JBjv1$Hk`!^Eot`9A<~=C$bs51s9+YEQQQS%tkB3h@!=gkDm?zmksjkMcL>Qi zNK>vor+U|kx9}AuCk4xt9h>~~UADFd)v3NUAm6ECn)a#`YQ_&UYRGc5yw{nFu{U3% z0bWN;@e)eF0H&+685*Fks!gL%%uZ1Z3R||+o!1llG2?uH&iU$SIPjJ)+%s>@zSPco zu4%v5*3uHziP5lZ>9RdnNlVKrrHJXrk>rzo_E+wBUsu!Ee^Hthy@dxYB(9MCb!RNH z-iKJsB9nPQO>+rdlH~4zHZ|;?|j?Js{^n}-oTQ8v6{lZ%ij7Lkk_|e;_&ILzggxJhyOrHbO zo_cPPOZ9``A`gSVAxOu^ z2dp1j7qWo~4I}K~?`hw%LhaO;gBh!TJ>p7|`Z>A5w669j)3*1f0lSs&zMva?6VL!p zXJ=CY1c+Dx000000F6Iz2nGNE0D?%vL<-5&!^_pl&dIwGK4+Z$Hedk233_7?&~rLg z8kxybz@}&Y;mr2M;Z*a(_u2oqroWGG48H&G!CY!zO0(x7iqo*^an>zb+zi{n%^+$m zpvawoS;7nc7uAh466LO1)Mn@qdvYhLMBaAc^CFCx1VxoTj&W@rn}hOU@)E7~GI;O9 zsxw>Aln)Q7VckAclY6Oknd$oF2qOG(rb7mPQIZ64q?>Phauz|!q2`=>@70}c|IWp3 z6Z$#!y>34VCZpYVw%6MYr_VOyB8=hMipBG80^UaKZX0h17%*L()m|z9j8%S8auiN8 z#Y5Na9|s$jYnE4%xASjj*_6_LZA$FVTXsj=DQ_1#JtiVc&$Yh_+J%_7$Gqbvxd%67 zdCKkSPbA5i!L#76x%P)re+0Yy7j7!|Vb#=Y?e%WtveV4R86y!~G2jBNbqTfmw6iub z&DxIUK0QY8q*Y?|Qh2ORa{rKQy&gpL++m8^#n20+3SAaH6gSD-a3 zNIN!7$|5Al0EsBWCp-9@dxu4G;8{KcdfPdHuVu(-rfg?N)mAoA0QR-5tmXH znrzV3FHaRGTL#>nWu4cI%ssT7RuTK?hc>=_(>!Tj#s@*FNV^xSde+H|aLs1%di326 z><&m|4B?F7OxmmM1nZODhEOyBK1Qti3iKZ^V7N^}=Di21#xf;4RwM)Iw{6zjQ#bpO zKIb(3Ty9_Zb!FeOZk$Q1+SKP!&9l9xkb$&cl+lbKOA8Z9mv#EHq5VC7sUU>RR0&sR zi~zZGmoG~=gfA|V(M)yTUzdV5bRX4f0xK#kWe^JgTWxlG2j2Oa=!!s_bmbN@($z#9 z$Pwh3^w>jL$-+(k^A}7V|H3BAkEXtR`T~@lS1Xmm9i9JR8y>GPDkn3N! z2f}Qcku?~1O+V|{Cw&9{RUF+mGzhq1zD#ML1E{nTxyouoWD1$G+&|j3wNG`({>Aj$ zGU5D#^=KKHsrS{WJV~{$$F0seDmf{kNAlDP<$Jr;2`X~#@w+QoH)-)NjDFTH?>_Y_6FHlf7Zp%Iz5y z9_QCJMQx4<>P<##>NZ_sBs35`tHn;6S#WbckDAeTQQ>maqMnWA@@EtGiRHGcbB^2n zPowa4kPK+?!~_67R(wwV@&^L$P%$5u*kT8aaw5mrDB%*OST4P?-2FZ4m9zaTFE*_n zI&x|6=+{|KFTmr|Dkh;hj6H!e$J zvS9}2r^P|4zr1RBQ^yt_Vvr^-N?Hg+d)B8nM2ze1m5y_TkOZ69WAUjHr`&1mLk9+v zf_Y6H_j)Z+4)uWZ+)vXL{s$En#x5g-s8y7TV64t{S(FdUM4mfT>uq??Dwquo^J=L_ zqizxao<;mQ%-!q=I4~T#D%L<5GA1RZgcc0I?Lpz-#qIs(QhMCCy_9ucyO?b?ze}xE zR+Qx81H4=Hm;`oE`Gvkf!N?kUiWYe@B)|AAv&`9bDAynF9wKD4I_DxYnx+}m$Wzgj zmOC#C>&e@hlkYqp%qE_JUetRw3Bz$vqq?7Ut+Ls5`C>WcPcc#dLRYXlK2&XnwWjtBtWW&H0fUrGTR002+`0000D DId@tN literal 0 HcmV?d00001 diff --git a/shooter/textures/shooter_boom.png b/shooter/textures/shooter_boom.png new file mode 100644 index 0000000000000000000000000000000000000000..79a89fb1c2cd11c9032b667bc7ad92c5f37af3d2 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-v#2nqF^}NQcA(H%PZ!4!i_=Sk4EdT3c=m+koSib0 z-QWX*TmWZ%P36*Ac{){)l(O_MXcU2dC`;dW^x- L)z4*}Q$iB}vJ-nB literal 0 HcmV?d00001 diff --git a/shooter/textures/shooter_powder.png b/shooter/textures/shooter_powder.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8c42eaee5f921ca9c2b70e100c4b9d0e7acc19 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-v#5}|$&3y9_CTROo-U3d7N@UHw(UD)AkeyhjYQ|M zBB|v?tl|zF7nghGO(-tnn^j_B*30P>us|b~E5CKhQ}s11+iqO%dv$7BfwC`DISQ&f5Fx`^yxRHfnHfxpt-WY>wIEsgqA`es(m;an`ao zW!9@!{R-S&K8YuJ&&_SuiY#O{ToZCSVA=j%E}3Wg=~l%ji7abPXP<3*{L$ljsm1dE zuf!h3)0@6q-^kmpGu`{zYt!7@o1)gPcrCS5+izQj^NW0r)jedZDrL@R{Qr37K1T1kh2=}%^`!#Cfx*+& K&t;ucLK6THshMm5 literal 0 HcmV?d00001 diff --git a/shooter/textures/shooter_smoke.png b/shooter/textures/shooter_smoke.png new file mode 100644 index 0000000000000000000000000000000000000000..75ddbd82b1d63215e44ac0d97de29f99a4c9a9a6 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-v#78JkJ*cdkwBqJPZ!4!i_=Sk9r+F@a9rMdWBGy2 zHKFB)47TL>O>UF86vU|AP*kKhEg