From 9995a5ebf00947e18175a12dfbc769cb13f5b8c4 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Mon, 21 Dec 2020 01:18:16 +0100 Subject: [PATCH] Sandwich can only be eaten if at 500 hp or lower. Rebalances to ammo spawns. Hellblazer gives 3 ammo instead of 6. Recolored Hellblazer explosion sprites to be more Nokron-tinted. Rebalances to ammo max amounts. Rebalanced damages across the board (notable nerf of Golden Shells, they're no longer "I win" ammo) Fix certain hitscan attacks not splashing in liquids. Fix blood drops sometimes going out of bounds. Don't stack refresher regen time if multiple copies were auto-used. Pusher can now propel you underwater. --- README.md | 2 +- language.version | 2 +- sndinfo.txt | 4 ++ sprites/HEXPA0.png | Bin 971 -> 942 bytes sprites/HEXPB0.png | Bin 1136 -> 1105 bytes sprites/HEXPC0.png | Bin 1314 -> 1281 bytes sprites/HEXPD0.png | Bin 1492 -> 1469 bytes sprites/HEXPE0.png | Bin 1604 -> 1583 bytes sprites/HEXPF0.png | Bin 1671 -> 1652 bytes sprites/HEXPG0.png | Bin 1788 -> 1768 bytes sprites/HEXPH0.png | Bin 1899 -> 1884 bytes sprites/HEXPI0.png | Bin 1988 -> 1972 bytes sprites/HEXPJ0.png | Bin 2099 -> 2075 bytes sprites/HEXPK0.png | Bin 2181 -> 2157 bytes sprites/HEXPL0.png | Bin 2245 -> 2229 bytes sprites/HEXPM0.png | Bin 2224 -> 2204 bytes sprites/HEXPN0.png | Bin 2270 -> 2246 bytes sprites/HEXPO0.png | Bin 2188 -> 2175 bytes sprites/HEXPP0.png | Bin 2174 -> 2152 bytes sprites/HEXPQ0.png | Bin 2102 -> 2070 bytes sprites/HEXPR0.png | Bin 1972 -> 1910 bytes zscript/dlc1/swwm_dlcammo.zsc | 42 +++++++++------ zscript/swwm_ammo.zsc | 95 ++++++++++++++++++++-------------- zscript/swwm_blazeit.zsc | 62 +++++++++++++--------- zscript/swwm_blod.zsc | 4 +- zscript/swwm_cbt.zsc | 11 ++-- zscript/swwm_danmaku.zsc | 37 +++++++------ zscript/swwm_handler.zsc | 18 +++---- zscript/swwm_health.zsc | 4 +- zscript/swwm_inventory.zsc | 11 ++-- zscript/swwm_jackhammer.zsc | 16 +++--- zscript/swwm_player.zsc | 1 + zscript/swwm_powerup.zsc | 2 +- zscript/swwm_shot.zsc | 29 +++++------ zscript/swwm_sparkyboi.zsc | 4 +- zscript/swwm_splode.zsc | 15 ++++-- zscript/swwm_tastytreat.zsc | 14 ++--- zscript/swwm_thiccboolet.zsc | 16 +++--- 38 files changed, 226 insertions(+), 163 deletions(-) diff --git a/README.md b/README.md index 293c6d73c..5dcc48667 100644 --- a/README.md +++ b/README.md @@ -332,7 +332,7 @@ Can eat up a total of 250 damage points before breaking. ### Grilled Cheese Sandwich ~ Replaces Megasphere, Morph Ovum, Platinum Helm ![](docimg/sandwich.png) -The ultimate meal. Grants a full 1000 health and magically gives you a full stack of **Armor Nuggets**, a **Blast Suit** and a **War Armor**. In addition it prevents you from dying at all when it activates automatically (this wondrous artifact can even save you from the destruction of the **Ynykron Artifact**). Keep in mind that this overhealing above 500 points fades away much quicker than the **Refresher**'s. +The ultimate meal. Grants a full 1000 health and magically gives you a full stack of **Armor Nuggets**, a **Blast Suit** and a **War Armor**. In addition it prevents you from dying at all when it activates automatically (this wondrous artifact can even save you from the destruction of the **Ynykron Artifact**). Keep in mind that this overhealing above 500 points fades away much quicker than the **Refresher**'s, and you can't use another sandwich again until the overheal fades. ### Ghost Artifact ~ Replaces Blur Sphere, Shadowsphere, Amulet of Warding ![](docimg/ghost.png) diff --git a/language.version b/language.version index 3dfc404d8..1f540048b 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r692 \cu(Sat 19 Dec 18:55:07 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r693 \cu(Mon 21 Dec 01:18:16 CET 2020)"; diff --git a/sndinfo.txt b/sndinfo.txt index 96e9e4110..5701ab97d 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -526,21 +526,25 @@ spreadgun/deselect sounds/spreadgun/spread_deselect.ogg spreadgun/redfire1 sounds/spreadgun/spread_redfire1.ogg spreadgun/redfire2 sounds/spreadgun/spread_redfire2.ogg $random spreadgun/redfire { spreadgun/redfire1 spreadgun/redfire2 } +$limit spreadgun/redfire 16 spreadgun/greenfire1 sounds/spreadgun/spread_greenfire1.ogg spreadgun/greenfire2 sounds/spreadgun/spread_greenfire2.ogg $random spreadgun/greenfire { spreadgun/greenfire1 spreadgun/greenfire2 } +$limit spreadgun/greenfire 16 spreadgun/whitefire1 sounds/spreadgun/spread_whitefire1.ogg spreadgun/whitefire2 sounds/spreadgun/spread_whitefire2.ogg $random spreadgun/whitefire { spreadgun/whitefire1 spreadgun/whitefire2 } spreadgun/bluefire1 sounds/spreadgun/spread_bluefire1.ogg spreadgun/bluefire2 sounds/spreadgun/spread_bluefire2.ogg $random spreadgun/bluefire { spreadgun/bluefire1 spreadgun/bluefire2 } +$limit spreadgun/bluefire 16 spreadgun/blackfire1 sounds/spreadgun/spread_blackfire1.ogg spreadgun/blackfire2 sounds/spreadgun/spread_blackfire2.ogg $random spreadgun/blackfire { spreadgun/blackfire1 spreadgun/blackfire2 } spreadgun/purplefire1 sounds/spreadgun/spread_purplefire1.ogg spreadgun/purplefire2 sounds/spreadgun/spread_purplefire2.ogg $random spreadgun/purplefire { spreadgun/purplefire1 spreadgun/purplefire2 } +$limit spreadgun/purplefire 16 spreadgun/goldfire1 sounds/spreadgun/spread_goldfire1.ogg spreadgun/goldfire2 sounds/spreadgun/spread_goldfire2.ogg $random spreadgun/goldfire { spreadgun/goldfire1 spreadgun/goldfire2 } diff --git a/sprites/HEXPA0.png b/sprites/HEXPA0.png index ac12d32e7ef8c4cf9d580761454abb24e62a8e5d..bc2cb148f9da1231daf92a6a7dc4373f28ecdf76 100644 GIT binary patch delta 900 zcmX@jzK(r@c|GIN0G|+71_lO31_nk(21Z6kCPoG(CPo$}MpkA?J~lCac5yy7iF$rE2?2IV0d^??Hfce286gf? z0XA77b~!;dIT20;5e@}WP9-r;Wl;`gF-{dx4pnhZH8Bo#2~KqhE)5AzO-W8INltAE z4jm~@eHm_JIc^gtE+-XUXBBQ|RUTJmE_YQPcQsy5O+H^uUOz2f ze|0W@^?Gi94IY0Tz5pG*KyBVo1KtEvz63M=WFy{u3;qfl{%TvkY6t!%C&4CXfgTtB z9uL7uKKwJih35JQ&GQvl6ePGROn6O@z}i^R4H3c{)5JF=ifm30-IgP=J3(-FiPXVL zse{#$Co82+*2-OIQ@_z`cypT7txoA%z52JiWbgIL)Zd$|_n=?-@nprv3v3@RaDTke z_SrPGXVcZ5Pgj4jKKkWsjaOT;Uu`dbyCv@JiD~bSPkFzu*&AaR%!1|y# z?b^E8^W8ieD*jJ@T+bBXeaoV=yqxdRuE(qRAG|-Dw)tj`U8~#TgC7KwdIKBE!xeJ9*Xib* z5LG#paOd{J5}TeqbL!9UXj7h0nDWAG+T)ME`!7E%oVB3USICG}a~6O7<>~p$|6cfA z9A3Xsk6VSyh)=uuJzxCa#`FGFvH`P7Q@D)wN*sG!cqus0^8Dc)*#?>)<|#U|pXnAg zFZX-AaDp6{3J+&#i_;{}uDI!Z9Uh{4+$|fT7Vq`-{c3dHn^#cN{g6w#WWby?*MB}= z|1)Ye)66E98H?`z@2jtod{kArw|4K<*$#?<6FA>r`Fr$M^YN!O*4JGH8+j%crB~`) zu3KKW`g2iy6-$uIsRvk42E5MTnnONPtyXfK|9&kX2ZaO+=7QRESknh)qnGO-zJc zT$oKlgiS(}T~d@?QjA?nj7?gcT}FaKR-8>%l3h-MO-_naL7GEBhEqwFQ(2ZnS&mah zmP1vZQ%#;jU4ctokyAsFQ&WjkOPNz!i9<()Q(v9iSd-gCi`!J2$6TAsLWj#*hs(*B z*V&|=+u4N2)tJlOl*iqS*VBs6*P7SQhS%Sc%iogQ--^fIjxWHDFVK!R)Ri~EhcCgG zKiQKvKZw5~g1M!m_zr3yS>TdR{yTxxG z$Gv?r?cI|p@1K>te>U^O(}^FR&Head>8BU#KfT=e>E*7^FL!=sD;us2_ zWwck~`0w4Ca^0s+8}+nvO=gmp6e>AzXD!dObD49vUoLbwG$FuULnSci%dWBjmsJmx zPcdGRdYhZI>hz{HTf03hh19I-Pj@^zRux%iKUaUN)&xzD7R_6~KmRy>T~Y7(_1Cwn zL^V{nj2_PYShuO{abexge`{AOF-a;tJy&Gy^V#ul(DbjnzHuz+m~wEf&olQeVb^b6 zQCY$j#ORUeES%NP$7&{ExmadN=R$>DEixNVW^7WBZa5(JNVx4kM@f#-w#WkvEM?NW g@8*3s{m*c(?u7ZFuHBOv7#J8lUHx3vIVCg!09naX4gdfE diff --git a/sprites/HEXPB0.png b/sprites/HEXPB0.png index d0fc67b21c1033bcd0e327ca202042f1b639a09b..2fcf2037ac365f9f4a91f8652b0da7dfc068c3d5 100644 GIT binary patch delta 1065 zcmeysagk$!c|DU}fKP}k0|Nsi0|O%?10y3N6C(o?6C*PdBP%l_8w(Q~D-$~l6FVyt zI~y|x8#5;>GbbA}Cp$A22(fT;u<&rO@Nly7aj?$x3x^vBMHmT3n~B933dWd-#F&f38wtjnizJ%} zC7TH)TZ!b@ixoSH6uU^2+X$7ridEQ)Ry&K=xQf+yh}L?DH@J(ndW%o;6Q3F&G1Fgk zUWmlJQ1PWv5-Spt?o?Kxi{JP{sgTDvs@od)qS)) z?%52zm(w+0&N29~HTu&khtE3`zpZomwj=%fHlH6yN`G#!{=Gl(_raXshjaeyP5EffzyfA_`zt-m_^-;L$}&outO(D(n+`{$tYwi5I$)qjKbC91oey!Pzq9bI$xLkLq_ZnwgoI{bT#n z{+EfZxh_29*bI(yb(%Mxb-y_HYbH;^il!@Gsq6MIuqzolZClg7%Im&((K*fqhK;BD zE=dY>=kH3C*rKk;nvl)nq_i*hccR5x?UWrXmrR+2%D&e9fBEz0h4-^uI3?4v&mB0i z{cHR3$0wiv_Ff@kc5+W**nvY+>!<&H`1j?LuZPz2S?+rAD5;TAl>hy%$HDiPPYd2r zYN)VTPsHFvXUN;a{}(GaE&O#$z)(fMR$q(Z_qO-t8*^X%6DV7!IN_xeV=>!}-^;$u zRsOW@o+-nEJpl{26e2^6nR>1m9`rJQ_e@@*u;+5h{Tm-m;vP*|Yto%p#xbFoXZrNK z`V}3IOR9IOtDH{hWvr4Mkm+QOkB12}jOg zWREbKG3}Rp%c={}OQfe5J-y1*;n*`_>7Bn3AHgTe~DWM4fGBcpB delta 1096 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 Zsh|EVTKG#Umw|zS!PC{xWt~$(696mX6H5R9 diff --git a/sprites/HEXPD0.png b/sprites/HEXPD0.png index 15a56a157431936eb1d8e7f8ec6ed146fbef7b51..bfc4e7ee73e29d6ebb6c80ce9394105d08d05a73 100644 GIT binary patch delta 1432 zcmcb@y_b7}c|FtL0G|+71_lO31_nk(21Z6kCPoG(CPro^Miyo!HWns!Rwi~U z5#^N?2I;#ZXxRFe@@m*iEK z4mFbvwUCc6m5#Jkh&L8Z zu#!%+kxg6OHRPGE?=?PQr4N{*PsWB}^eR`zI^l0@N(W)~;6=#O2E{axJ z6sNl+*>G8c=E@}1HEDWl(+$?8>1{|i+EJ#ztIT3gt?iy>yM1NG`x+hg*XkdvwLaKt za=5PWT2$rkI=6^3VeP0ux1UFdbVFwynmWT#8hLM~4-zd9%O`uzAC(;RM1v$;Lf z{`NfYyK{Z-&h>w=GUwq!*GCHi9xY9LzPb42j`G)YY~QR8{IJsf<8t@UTcf}1YyP$^ z`}g6zKfB}poSyV|d(yuhvH#A`{J$~a{}$i>+amt&3H!gdKJx$3?ElB2|DVkLf2!jD znX3O68vkFI{{Ldr|0~V^uT1=Zwe|nC&i^+i{J%N*|E<;kZ_oIDXZHWQ^Zwsk@c;gj z{|{IGf4uJhi>^7|9`&w|NG1TKi}*B|NZs<-=F{g{}*LSeFSBLk|4ie28U-i(ij++ zqC8z3Ln02p4Lx0S*+JmV%*f2#$gXBjC!dPghX4QN^+HyCQaae_o8x_J=EEbJucsX1 zTy^LA-M4RFRx(z<*?4?Ezf_UuJX;l}15fHda|tYGLaXxOQ0dOcREto49PszkW(-EFnAt=g6J75xv$t?2psXUD?h zyKf(N|I+aKgUKe2;}t)iKHhzKaintI8@^NN#>*QVW7?j*dGlro*XzZrc*9jgHvV1p z>*bbz1p&P~=Jttg@#Fg1sODvvckjI2`S|G@C+Qt?nBBd_wEVo}w=X*z1a@Csl9#1* zYT2y$hM{7eDKpqlwFu1EU1(UW%_LoDD5dH-%hUNpM$v>|(^*HkL=(?k@>`y)cRO9D>NOY^XuR5_<9+_S?=fbH2ifW72N=uqPkT*xaG2u;%Y{wve^TS#2-s;>ob(3g7Z2Rl?I+JGy#O6M_+dn(?6|dGa zW{wEY-=_2ZlQ(u=e*36sXUv^D%a`0tJE57N9DBO-=Z-bW%J%E)Z@+!}G<5o>#il8n z57@3P*cW-k^YH51sk?W*zrL4$ey5I0Am0)#x5roV<+ptG4LW;ni43Fk#10WvQN^lP zxBAu;Z;jD^%5j51L|~b~fn%PNEp_%PurNGwVo76Ix1mPRcK59rF%B#T9xl_r-&-Hy pP?2ZK$C%u2`|ZZ#{|EBDW=aZPO<(FYk%57M!PC{xWt~$(697#ZTy+2d delta 1455 zcmdnXeT931c|8MXfk$L90|U1(2s1Lwnj^u$z|0Wf6XMFiz`)4Bz{tqJ$jHdV#K6SF z$jr>h!py|N!oRW%EQgZ%gxHm!^Y3U!q3ab z&&S5k$1cFnE(k&#Li}t(0vy7E93q13B0`*^^}?KDLhNE9T;d{J;-Xv=FQhajKJn}O93NpM3vV4lNd`fbB%JTfm z3WBO~+^X{YstWw7ih^p&g6ax<>WaMT%EIa@LK;c}8Y+UCsv=q{f?8@q+G@f&%Dg%n z^&)y|f_j=F`Wk}zT4ILkyoTB$MmnO#n*7GPqQ<)7rnEG9ETkUe*%cHlp5kQa%o{ zeh$)pj#8nnvZ3zs5pL3vehTsKq6xmz^@;wnNr5UUK2j-xifMrg=>gK|VX7H{l377= zc`@?E5mF_I%B4wa<*~9A@k$j*3bpC-wHc~)>1y?9N==zcZMn*wc`7}n%Ds8&Q_D4` z)u>OeRGD6_KBGo;W|`v5GSx-3x{K;mmNXkKYtmfVp}MA1Z*7;sx=y_foklz6>+hje{Ad5 z3otHP#Bd_l+VRG>9n3u*Pk5L;?yqo|(%R|JV0}hZ?Ux!8zknd0!S*GucKIIOCNN_M zN2u+!vdj5F&jX&QKH*x19+uXThMh8%hjLbS4*yb@YPD<4x{Xf1FcS`v**2$ zmG3#O^+lw9>Af>kPqbAyC>Gp2QzutzJ*#Hs`_N4{<#jWr^1O2P)mi=Q^TF?rf6lvd zX=rOvUD0#@i)s%y^tJMI}>> zS8?%4N58Kb^OD`&f7)?)ltVvEo1M++1S*rV+V(iVngp_wc_nh@^AS(a^gv2 zSa+dDaPO{LGh!Tg)SGAT(yYA_r)Zza@eC;CXTR$r29%Eo&VDNPH Kb6Mw<&;$S?vuq&% diff --git a/sprites/HEXPE0.png b/sprites/HEXPE0.png index 5b636cfae38ff867cc7a012e8e293d343cf03afb..b96a1cd5e7c36fa66f1cbd384834c4d7c2324a97 100644 GIT binary patch delta 1547 zcmX@Yvz}*yc|FtL0G|+71_lO31_nk(21Z6kCMHH^CPr3fCN>r(c2*{KR%Q-1W)5~1 zPIeY9b{1|9R$fk4J}x$XE;a#fb^#uCK`vH79(EyK4q+} zVAbwOo$e@uiDB9kV+<#SYfg^Vo*Jz=HCB6Cq{hqyy*bg^bCS*GhHI_JvRsjEzOvAM zRlLUfY~4+{W?NHqw&mMztFqW$ZnLAnct@Gtj&jSL*`_;-%ytz!?ryQ(+ibV5&Sigv z`Qa(CN9ucQPxc3#oZxz@#qQL^fU}bv&rS|FKhgL66pu?aHkT&&U7F&0d8)(pxnVbE zc-^dVyfw$~c9-LwHrqQZ^Y1PUy1O*((ITIxOA?;0OntT_^x4Mj=d-;@_j>n%J&O%e{9bCxi;YU z-kjg3`~Dw^{(mIp|FMeyCsO~PO#6R25C4CEssI1?$NztS|Ns9VXm0u+lnqLP{DK)Ap4~`e zU|>4q>Eak7A^G-TY`%1;NZZBq{m;)-s1?pxk|%68t8LYv|MtvIj}|exaJzasf6lBn zO3x3{(zB8CKENxUqAO?nE8d{z|Fn}T0@0GUXE^OpI5cr{tD#@wp`L~Y4Y8inITHmm z>sj(t1rF{wBQdjcO~_JFKP}b*H&r(ck5yS)C(o5lW#vC4(sQE6Fmmn5ly5n=;_t=k zilrUBBRTnIijlWTySo4UchhEf&)2(B`ggCQc8*8RrRJ(l^+lgPeaW!1PwHF~k-#Et zgUIEZ(pnRd45MX>{)AqhOq+2(wa|KPfu1`?e}W_mDAU+CT-kh zxN}b9nTFFkPqWg0{XAG0_cnCp?5(BccBY=^mYr$fX`WK{H)R^Lckidv>d)S*CMl+S z@a(9baQOVUuC1HvIZaj`S!Lzn>&KR)V4PwU@NCuTlNAAPZ=J0Pd!Ex~JS9?{o#%?# zXC1p$OP{CP`v@gy&M8fr``J_Fb(8<5u8?q}#^g1E&TN8(PqiQGpE`SQpLYYtwT^{O zE}e7#?Q{8{&OcjDR+if!-GN7?ar(b^uYT=`x8$EzemYgX^MDhNN zUG9=NccbHpkkGSBQ@o}<-Icpy)wN%@Z|hmTS30CD zVRUSXN7&OT#cS=>zO#Ps-6DLDEjh#}c+yOrjv%f+Yq1=IZ60kN5{=b69v+lP=B_mA z=|5EHaIWKs*s`QngMJPUg&*oi+}kP?{;7U^adEMG{eAh>;r1O19v&Lb#>CFX%)!pg!NJ1G!NSGK!p+6X%gxHi!^Y3cCcwuoz|Sto%PPpvE+oJq z%*QG$z%DGvDI&xvD$FG=!X+WXAtA~mDas`&#wA%V&MPIsCoRD(BgP>s!7VGvD=Wn( zFTuC6r=lRBqA08?&#S5^q^7{HrYNAUETW+zqNysPr6!`S zDyXe4qNmEQuOXzbDWR_=VxT5qpe=5wA!4k`YpgC{tRZNuBWkL_Z>lF@W*}~^D`Kh5 zZ>3i+Y-K2AWh`x@!*63EVQVUFXC~=jCh2G{=V2-4VJG8hD(Gn~ z>1iY5>8RvmFXv|~>F+EX;H(hpAQtW>9qyqJ;Vu{HBp&4<6XmTI?V}LyC6N%In(V8X z;wP8tA(|1Un&~T@6``6HshSfgmlLU;8zftw8?9ClELoVKRurLH5++lYtWlMwUX!j_ zm#Nv1uG^d_*P5%}o~qc9qt%tC(_Nt2U82)nVlc5#dt$laq!P`^71~p)G^f^RPb=4$ zS*JIrN_$Sd+1ygC6`htVy3JSi+plWUSU*vB(*(1vojTk4?YAwk*go54$28*|GwpWF zvD{hTXS#E`*{&&$yVqLpU2V5-q09aS=7%@O9@$}ga!bI;U9P9r*`3-JaCTR~+5L{^ zcle&)?{R6V&86*rmkzpKKI(A&SlEptUN;vz-a6rTd%NSE&9-+=<=;J-cK2-1qf0(d z&m=s(koxRm=(8Ky&rf;1xD@wtxBJU$0k3WpynC4T{$9X`qxCKy9)y3qRr=*|`-+z);{WF*|G&-s|84RAA1VKTH2(k9 z^#Ava|9_(Y|4se>FYW*TjQ{@&|NpQ2|G)PC|EB-{JO2Nl`2YXZ|Nm$H|3B~l|E2%` zum1mk%m4p7|Nr0p|Ns8~|BwIwf2RKb{|o>BU;qFA-v9qk{{MgZ|NqAwlK{=r$$S;_|;n|He1_q{+o-U3d5r^M~oz9bX7g)1y-pyD$*O^tS zOsT34|NbY>Vc5yxmS9ns)Va{(qv@TO=N!d&W}Kd2^;Fw*C-99LFkOPHiH zY{w(aJ9lpB=bS&c zXJ}rPW>l5`#xhCg)Z~jVj&Bz~yxDur+(}0jedqGj`|^q$E4pC6yY}|`Q@=cms;!PK znx@lkdr(txi`Dh#)6M^`yE6OUr!T<{x!L)%mgh1F3Vw?+x1Sp`clz^LW~*m(^v5L~X z8`nB0G-MrL&wj98F=}Jnwt02eS6sT%th;#DOywPauXbO0HQiz9&Fh5=LIW~aq+ga` zTcb zFn!By+Mt@4bzMej(Lr#6Z@YIHM?UL+`S1Mh{q}zf=bPoJRqsuBWVyU^@5)n? zyU%>9GMZT@QNK%iInQ@pcXQvQX?v!8SRMT;?C`6H&(CL?{r>S&@oL_K?KgM4Wz|^o zOsK+qH{aaZul`N%x2umhJ5AbHptAmdoPtKrMk`&m)Yn^VtL@jOo1LF#WA0KMd?JHy zO28JaBR3{h+4;}Y*|~eC{EnGdLX$2Ca9!JVPi6Jy-3uT7TX%JtQb<>T%)H{ZgFHnR zj0>2Y6bokT5i=xITB g8Og#Ui9gt1%(uH*%p-P)fq{X+)78&qol`;+06@XG>;M1& diff --git a/sprites/HEXPF0.png b/sprites/HEXPF0.png index a9bd34344f0e5a1a938a32f5982fbda99fb481ef..f22b27523593887e4da548e49de175ee8e711272 100644 GIT binary patch delta 1616 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 diff --git a/sprites/HEXPG0.png b/sprites/HEXPG0.png index 3896178be7db47db545829456ba6d3db5f86f24e..4da028ba430bf432c838420499ddba6e2b9031b7 100644 GIT binary patch delta 1733 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 P0|SGntDnm{r-UW|98M7U diff --git a/sprites/HEXPH0.png b/sprites/HEXPH0.png index 8d5ec00aa50294362010c5d4c81e7b8a09039970..6d42d1de65575cc2d41668cfc96ca75be70527a8 100644 GIT binary patch delta 1850 zcmaFOcZY9+c|9{jfKP}k0|Nsi0|O%?12YpN3lk$NGb0-d69)?u7b_DN8#50(GYp>ntT2~62eUjkivlmJq8N{o zFsHHvuL=i~DleO=B%h`fpOzrIwhX^6JF~8wpgs?ae!T>bzBHc!KbwIFhk-o5k)n{9 zl8~9Is5v)_IX|nVFuSEBw~a7|jgo+kx~QF|n1eL8qX>tSj<}1uh^w-IhZMJ$p16;O zu%Cg1zbucxiA=DjV2F`Km^gcwsZ5jb1Yia?CHRGfxzoTYTUJa?joK%#+I zij91#NlR|-!e4&+ek+xu&5?`6VP_>y@wXIBz3V)5OLQSA{ zy|+rEn_`o`aFc~htD|gNux_WZaHqFIm$`U%plYusU!Q|?U$9zVgyuv&(TP@)lbmHI z8;MNyR-6&7G0R73R+!eTSnXMHW^)pB=bMSl4^yvSU?aUCUSn~(!O|qHWp1)7tRz-@ z%B{^dUKeG&DN%D%x#eab)vX!&+fsCQ6gcdtcifq0yvtE~m#5sW7|p%;#`_}F_Qh%J z4^%!>V{xp<@mP=7u}MM4gO!daX`gJfKOLiSHr4!Wh5gxSe&>Q@&-Z&@sT4`+_(|QUcfT>&{dT+SomqbO;#BX?4}6fJ^`Oe+!G_9*W%dsz`aYQw z@N|mH^QqP^k~CiA>%6G8dD-Ida*pH6MIkSjhrU{s@OFLdyJFM#69YcX3i#M&|FPfY zQ>X2hTC=aq{l2aX{-v9l;{UsI z{@-8x|IzCIPq+Smx&Qy`qyOJu`v2)>{r@iy{(pb@|JSGg|Nm!{)?WwZgpwe?U_=-hcj~te+ zn2|8)!HvHCORjqDHohy9G^rx>re9D&(Q7r|?|bsT?)l!Z`$vDX{8TTdDgC>fO>VG@ zPpH3cFFl2=W1l}`pb(3~B%hVn6$-+iNpl9xd9pS|g*S%fYW&xwTpWUFiX{eqSGogl z<#Kbd^qrXY$7}VfS6}iMmz@@4SyFuS)29XZL%B6AKYTr&*V(Y-^z`bzR~zj$pFX%5 zvS69l-bGFOU)6PdKP|oY-?aswU!6%VlW2?x=5)%>s&{kh%bLZxp^<`lE-7kimZx)h?LK4p? zU+$=s@1!Z-HcD&n_ld0FgBjH_q9_4d!(efnAq#;#q@joV*cvMl>O`?W5A!}O!i zw4Pp!H2k^r+84i@F4HG$x01Y3ap_V`Z<^Rv8-wY4jpt>AeYJl3Q2e%~zDTkoBjbcE z8tTjaznpb746?A+Oug{(8;d~PVfJ$&t0H{emM`CXXEtZTMzy|qd+yxT?+#pARw+Jv zNqv^V)>mJi{@Zc)YRW~<(BMFupIZXN4o3IFex_%`cb4b?1OS+no= zoAaL!e>_-d>V0xu?K!QqWx+B^(*H`XSmLucZjj&+d;DX?iicmHJo)&~({Qcns+lWq@?Kgdpq0g&tk1!!W@Tl!Hmx+sRO0y@ zuJvN+9Ig-M@-uE+rR95)=fdqs8AcBwk&hx7CcdjKXy*!v|I}_0;5xEk*)o$C)jLco zZ}ae^MNFt$dsf-eSc*f#*ZxGtzGnw4g{u6`b*?YHf6SQs-6OqskN$VmGXy*Qc8FJD Szs117z~JfX=d#Wzp$P!<*FNb0 delta 1865 zcmcb^_nL2lc|8MXfk$L90|U1(2s1Lwnj^u$z|0Wf6XMFiz`)4Bz{tqJ%*4pT%*e{Z z$i~XV!N$bJ&cwyR%)`md!^I-N%PPppB*@Jo$j2rk$S%suEGEP*&dDSp%pu9gA}Pix zE5;!!$tBOrEHB8SAk3;L!=oh0sVv8R+s4v2z zugIgX!e=1CW+2O9puumXC1j=}WTr1_F2Z6i$!aOfZmGg;BgbK*CtzbFYG)$mpw8{6 zz~N*e?qVY1Y9QdD&h2F*?qe?OXD{Ke&ExMR6Kp9M;v^BK&K~9}6Q#u!bxYH1|$5-dCfxuUTV%iSnVP7RNSu9oy!3Y+KOrN~Pl++9%iBpKjJT+hKlo zuKn5le&_0|WzTQ-zO=;Za-Zhq$wpV#dR;y0er>tMjS8t7OWkkmcfY;C_0BQBd!4HH zPX|7jqV-^f$%6}(59irG-0k~hU%=DDF3(R|zv$C=F;C~kGMkqh9bR5=e0d?{<<-zv zR}a~AfN&opg>F1mL z-xp&491Q(;%>Vxm^Z$p;{~tH|f7bl}MW6pyeg5C__p`|FQ4?=eYl0{QrMV`~R)$|Ie8Jzsvsr?*IQk;{X5T z|Npc8|1bXkzvln{=Kue@{{Nr&|Nor&|Nj^N|G)bG|E>T3@Bjb*=>Pwh{{O%E|Nn#k z|6l(9|LOn#|6H4cqd+;KB*-tA!Qt7BGzJFd51uZLArXh)hTSd_b{DW+o}LyS{yIro zcuqio%7lF09_yx&f;KKZlJF|*;taS;JkM+T*nQ+6>mM$gJu@hF^heey(; z4_YhgZqC{)-P62 z(43i{Z(FtLZuIM;n=;%o%XEzzV_q~zxA4EO$yl5J|Hk|KcTdflKtoOLbxd+d7QYrkasv`n1!#QKh3Hw$F+sJ5Q6>1yu1&tKPkvUFSTq~Cow@08j$ zgNwzi86u7=*8cule?0f4Sz(z5K39+1TigGDZ;iCG>t2(r)$uv}^7-eJFD&}1^17m!&o5-gCbyqQCFBH;RkGCQ<+ZrRtXsJG zXX<{(S$DbdvQ<9q!X3c@`t@52-x<%6Ty%8v%br*FN@p}Mo=y8#cW-)-#rg#v zg$BV>rr%3my?t-wcZQ0{oN1c<=ej=1dtPQw6;@STzn#gVd}-=GvssZ>PVV#k(GY9W zy*I4*@oRQVeUZmqOiT)yhLZF5T_|Ti>hbVJiqhY(-O3FGN9_uh1syB0v60m2+r~Z1^{SF6B zj$ICa8O?crhKumUhxg9Cp5EMi@n4~(_sOuhbW!8WntTG+>Md8x`|ZE)^r!Osi=zu9 z`nsGe$~us}7W_4Czo{mKx#-zV+wSAP3mv3^#)PqJ5);riTWZN{G+ln%-^PqV(Zhx@1!1v{{oR7npChV49$!@ksMR#;lNq-nl~SKZUa> zigY;o`et5m>MzLrG>?ZTZHH3r(zD8rQXCq-_9rvuy+6>Z`ekBXMA*{%M~u1i9-HMo e{@+p0(9HAO<>155R~Q%=7(8A5T-G@yGywpUV^f3x diff --git a/sprites/HEXPI0.png b/sprites/HEXPI0.png index 7d55b4a4a17b515e0225f38b27dcc52d4feb3da1..8d7412e6d6ac88d8d2a6c2216189bde4cbdcbcc7 100644 GIT binary patch delta 1939 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 delta 2149 zcmaDW&?-2=yqYWU}gyL32|j$U|?imU}9uoVParqVq{}s z_5M*`~Wp&cvbJh`bmF0BT z7xoZf^01Kd6le7`7WPu)@)2bARpa;5;`LYN4v=IIG#3q(W((Ef4bvBhuoQ~06_1o> zk9MzDh&AC)a1u@MQb>|uNmk=d*5OT2U`sLMOZ8RGRAkR~k<1U2FHqww@RTZa5H1W? zE;i*ak!LH>k)^3PaX;k89)!=M3m*^Br{wbMi)3rJ4XW9$SijbUDX}-{$cVVQ=!Zi6so+69< zL>4!gEw|-e9xuBhUv*`()v9W>)tPc@JVe(f%CBv=T0hleLzMK!BF#;#bhw3wgEB@=dPn zo1N}&XPUe{lJGuW^8Hfl_Xm7GG^l^rV)gMtpCjXaM{NH5p|ETN#WB&gy`2N2V{Qqj^ z|Lb1=ZwCIq6Z!u^?EfbL|DQ(vf12|DRn-4C1^+)J{Qp?+|6|YpuZjPEl>Gml@c-Z9 z|Nqnf|Ih#bzvBP@rvLwY{{Np?|NsB2|NmG2|G)YF|6Tw8ANl|P;{X5m|NnpX|NquV z=_VEKC^vtR2=m7e%!*db?a_KL_o|Eg=ERuEtNLFWab`*u)xVx*duW=(b%rSpU9T#= zKCahyd$W2~!m|@kmnVPR{JP>p=sb0&wanSxHkP)( z7R5$&ERmK;(d{_Hnd;BK@6W3*6V}_Eetl|Va-dt)50yW^#9KMHGw+e=DO)=6#6r2H zdfxLU$IiL#Z=$HA&Z0Z0?E;UXcO+ zD_d&36E3>9F8QmovM)$;Q{dM7&YWD04NbK=%rwe&Zb%Ycu2^iomu>%5&8uf*>&t?K4lsPw6F(EO zG3S@q;}c@ncgF^pCh4SYKJ90I>y(?bq4WJcQ$A>?3Eoo>SUhX~+2!wfblA4a`cCa| zcydG3f8O-YXm*45i(B(D@~U>XdRyG%tv`FVK4k0b-va5oJQFw=<^+6wGl6BDm+OnY z@~`zIl(lv~I4sa~Po43Vv&YKaUHc9T2sSy@2W-yqGfne6r6sz0=1)JJga3bipP9XW z-_L*X>FJl3<+o>SQ)Y8Z5Zb&Xv#ms*T`)oHtkdV?_O-UT>;L`zx_y1Rugs!%=a{s$ z+2%c}|FlfM_>G~?EUDeM>uZX4{_sC|xjQq0E&qUQBd@H6^h&;$COWfT@8`AH`uVWr zv8SJ&%In>Vl-`nGE5B&gP32<8#19Pj{qC#Wefy)F{qoO%f6t!(|8x5E?9>elvuin| z%zuA6{84UVn|90|%e)Kx9_nwiqs%t5bw;)eg!1kRI~QHgz!k>RcfR}ScMd*{C%zvR zKV2&uQK6pidG$<${QPqbnhX36-%+$Mzf!;d(9fKQRhtf3uQ<4%|1JB5&~#?kPli8U zh*lcU-*1zh?9*BOe($aJ={mtr8F?B^<6@c5I$hr4S<{ns+new0t&0p%qMaLxC#+ay zb4qsCGqW82>+B3`wBtIypAuOVdaX$8$AwilkL%1@t!1jz@Z#^H6K>16UL0p!v*QE* zbGC*vH#VGgkYhL4a4B}>{__(bs!JI+zUqxK(h1c|9{jfKP}k0|Nsi0|OHy0}CSq8zTcd6C*n_BPTN>7ZW2F3lk436CWc3 zKP!^}BZB}tvj8WnC=;V7E0Y)(t2jHe1T&)q51S+(yR-nO96Pfd7mGYIqr3ozGBcAh zH>-*;mpTiRIv=~12$wb+v$l+YjySg-CyOCBixEGYalI&~u@tX~EWbG$lLbGUr5wK% zCySM$pfxwEtq{AND2J0YkCVKB3pb04x~MBBv#W}byD*!FhKLt8ix(f8kAZZcJWr4y zTac!3kg;qC7fXl`dzb`gBsXicx?r3DTb!wMf&@pBjdH3CcbXu3nweC(Ja+~UYnGvC zwvBv_Qayj3i+X_sXOW3SiH%IDAbY72Uxf^Jg@b&Rra-kSZ;b?3y}49_hia2JXRD=n z2S0m

UU)V0VC4kF9jCAbYPkN1p<3pN7DMAgzfyLK6)|r^J{|ljNEv$2;9bY^E~b zTvh%B5ju;t1Q#2NE*0Wj7Ot@@-f+2%K1CtiCl$dwY!54r#s}878|8#dcdu?$Z?7?;v%+So}bV%|R8R zgIQ*WT;&c0Dj$i}K5i*_+*AI9z2vDl?bC&3r>kAh_$yruRJ=4H=yI6S`O;UY2FYuX{;;UuRuQN1XSDL<_;`g@L_+yC5#~B`C}mY5#9&=)V>9A^+Bd{;x3m-(d2; z)#iVP`Tu^W|C5~lPdEEN!~XwF@Ba(@{x5R*ztr~s8t?xbeE)Bb{J+)x|F)q2I}-ly zj`_dW`~QKm{|9saABy;YB=rB$jQ_`D|DVqIe>U&`h4TLwy8d5o{C}mX-~a#r&%REg9+VSGg8YIR9G=}s zV_;zQ_jGX#i8%Z=%(wXQG0`{Q)7TUoIv!Y%Z&jEkH1#i{+0UiSFSPU@1DOuZvW$LY{+V; zZ}@M|pdfJS*JGx8e2>a(LmU*el=iG)Wttcp^TdpatARmLA@y(V#`6mmL>3Cz9cW-t z5Mtm^v|G*8=%AwC=5fvS#|>rI3)eKt895jPKPt-G9a-e5$5<;a{HxBqY5z%wqwLQ& zXT50i=9%uh(P8o>b_UtXaDJB+iV6A$LaUis>U)}RGMi_M?ObYIs=%*MFeT$voGk3aL^{k^Y@^!&q!hSfK zZMfbYIs5m5Melw+Er~Y1@@4@;@%(7hRqtf^+z&qpx%8oOb5ZM)rJq9{PMfnX@Wkp< z<*5~>N5a$R?l`2rIaI%XVppIQlvU0+MZ}aMH=JB{M)a$;u{c-K{ zmM_ybn$&#$D*ipGYOAFdR9{_KQ~TwT zh*M!eY0AeX&Qd-1Z2qlmtuLFkPGzs=k{fDwrR`+XZpnw#PYYEQ2<+(CQFLRw@78j* ziX9poyj!#xx=L+!%YWK*f!%V(91BGo598;WLc$(91WFfkM+f<>v!5^L|7>Z6yHarj zmyn9kstoU_ZGE)BOe;5d3KUW{K}L~2gg?oTo56IZTJ|NDBou@d8-j89c(CqDin)3G)9 zZdp|K=FGE`mmOPBAP~CKF>&ufp$iKvF4X7lPk;05>zyRQQ_GVbYUK3pe=sjk4Gg`P z!mUuYk^gr=#T~unOS!Ip_uLW6$hmAv&E}YW@00gGwDS3Qv%b&u_D>Oa@vVm2_Ws>v zXnt%3Qz+-sNi+NA?titgRR7v`diEo|-VvM*Oo7Ha~yr=I8YK+56_Ne^n(Xo;yE*r94lqiBopRoc(i- z?6W}E7`tr^7=g*0Cvz^_Z`s)7K zX|?*YK}?LFzP;r!*p~M-$<#Vyme|I#yHl;_oR|Lk#@SmcaXv>Rm%x>Cvnq_{&a0nc z&g@$L=i8FrC|CZ4wN~;HQ#fNYZdSQ4{1jUECf=M^;#<%@mo0D4s#qJ%vnZ5f3YZ}8 z!g6kQMx_Mrth9|;mG1RN3{#5?tJbj>pKEdP&Tx(qom=kpTZMtqpetKe=z+xbejx#C zolCuQwkp4p66xu1@^~~$h4*Cg)TsYr;O$Uruw=%z>>nYM?thXF3So$o zKJ;$GUcJP-L8q*29Zzm;d-vlRU)!#?Rr_E5DQmGmC;z;>>L0tk{hR6X{5A3=3=9km Mp00i_>zopr02<=I2LJ#7 delta 2214 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 delta 2193 zcmbOuxIu7&c|8MXfk$L90|U1(2s1Lwnj^u$z|0Wf6XMFiz`)4Bz{JSF!pOkJ#K_Ld z#KFwS$;QOR%*f5o#K+0Z&&tTp%_79hBFw@l!pbPh%Ob(gD#^|$CCDZ%!YuE5%caT3q{YRk&%>lI$7xV6z-*w%ZK%R$EX8gj#B9pTWTwt% zrO9uj#AVCRWGljKC&_B3&2KNpVs9+!ti$gr&f+1<>LtnQrON3o#O!Ur=OfDEBhT(@ zA?9l<;b$!9?C7GwenXk-N7${flB2=QoRbt3p>Md3oAX62k zRIS2Mt<70&!&l=XRFkaLWWe35$>}J8B++Wl*P5u@W6RT3mREVbZX>La|o zT6d*0|LQ35)d>=-GZfcVX>arp*&HFcIZ1kp1K+l6+3hX@+ne=vl_>A2P}?)fes7!M z{y?GqDN+Z*#17VJ9i3x+Y`WQrNd_mq1y9YlIUOc?I$h>WfWVnp$@8lnFGPr3C{ehW zt9+?L?Mi*J)Xi$;n@enNMT^|YmANz3=VY|dY_tAKAj8say{i+m&&(`q2Cwk ze?RE<>rBA!O8MWdDu3$b{v2`mdq3>oMzjCjO8+OS{-3J$e^$Nv|3#YrSL*y<&|NnpZ|NpW7|EK-`pZouR z$^ZW~|NpoD|KI=r|Fr-A=luV_xc>kDRsa8Q`2T;$|Nr~`|3CWw|AqhmZ~y=Q`2YXc z|Nnpf|Nq~A)#rJjoKO_!>`1FNa0i(^Q{;kV%@i=Mdg)jBktNqQR^wd?89 z+kJe$pZx#dvGYvkAwk>Z{@Zyc*Iv4$B^sGBY32bLudqzbt;fu7KjfJ=>4^6OTNMVT z`uYz?d47En|8hq=i0NR$e*T6N91VgE($T+V8C=|Eo4b`|?~*=f%j)Ik@}z>9O#+|F9z4 zeG^4f{0J11T0**uROnwcymdi2NH*Oh8Mez$s((@(m7+v^^5kJGWU`jLZQcKrU6*VhTW zPf9=ZJ1k(Lt4pSe!aeVmyJZA2N_OONuXsPX{^Q-4qC&wv?f3Q^+HvdfuOEwxU!N#IwHq)YpE#LP*3vhCY~`{?@h@^4nY+N$gGVy3dx=!TJZo6miTp_tl4*lsm1YMTLjsFq98MnVR+yDQiedNRUUx(NJXPmqDxxlvh@A4QJxEL5b MUHx3vIVCg!05t&LhyVZp diff --git a/sprites/HEXPN0.png b/sprites/HEXPN0.png index 5f209c0bcb887b11f69b45ce4086b2ae6d3acb35..621ffeec4c905801f39e5e251330ad1c61edae14 100644 GIT binary patch delta 2215 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 diff --git a/sprites/HEXPO0.png b/sprites/HEXPO0.png index bd50f90b98fdcf68d6a87bc6f1984f6ebfdcda62..20e74bc74255e20df2504c8588d05a02c962a917 100644 GIT binary patch delta 2143 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 R77Ppw44$rjF6*2UngDLLr1by* diff --git a/sprites/HEXPP0.png b/sprites/HEXPP0.png index ce5bfdb14598d69e9ec192d1ea51cae3fa36d722..4c249447533059b3e3cc8cd1c7b051f57c88ed24 100644 GIT binary patch delta 2120 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 A6951J diff --git a/sprites/HEXPQ0.png b/sprites/HEXPQ0.png index e085bc60256614cc0b6fe63fdf8bb6b28868f7e9..fa5acbceabc5b70e9c131b6d25d7387034222aef 100644 GIT binary patch delta 2037 zcmdlcFil{Bc|Ftj0G|+71_lO31_mZZ1{MYeRt5%EMn-l<1`b9B4kkuUCPpqs1}Jw6tFHYR-zW_>OeeF0W|QFcQi zRwGUpBOVqb2_9p9R%20i6D}4L0d`Yv7E@jpGck5^5jG1xRttVs3keQONe(M678`bE z8v%A(fqFJOAvQY^c6)ASdr=O1DNY9-76%Cq2WbumIetf8Rwo%w7kM660XA20PIq2b zcQH;6aSl&Ob}u1zFIi46d2VlhHXk`oUtu<1X)a%7K0gI6e||Q9QH}s{&Okx-Kxyt^ zIsOnSjt~W|5G9^aLH1Bp-Y{{FFlnxES)On?&iZgA&IncBNDebHh)!4g^C5`DoEBcTc<{t6@EN@I~K3&|QIff_5x z`g&85MmxDC3(00vp%#6C7E|#S3(+LI< zSNUJ6{l8q}f0f?Y}By8oN>|2LWb?=bq`W%|F*;{OEG|1%x_&$ju$z~=u_=l`o* z{;zTTzsaZm|4#4e*6J*v3{Vo}7tG-B>_!>`1ItcN7sn6@$+rh@=gAxwZM*pX{_bA} zzFsm`%VgDsdSagajX&NXc%w~pu0~N`?A_4Y$`fVgx;ajWd7>26y?&pI42OWkBYUNj z6IukA9*cZ*6o2@a2nABi+h=w4CJ(&44SVfTEFLgJM`$wdsjYjDrox5=qbbD9ee1Gh+x`1wZm(;TA4ceRr*{ywu@x_ zwo>;l-o*7q^Z5oNb}=P~gUv?*IRw~^{1bAcGkXf-b|h}q<#P!YkWszIttjI0Nh~Tm zIU?@Pns2;;x&4pprzC|ge9%~|(xPt6FWuH!xuw_s-^Y_i(b2&fo37nHmet}UquS^6 z!?7^q7Tb*HCI7CkzPihA@vO9US64l?a#OYNvI$_gcOhxXOxOMTyT849CB5_P52YEi zb{>cmTKFLDkt0XB|JtR;mO0g5TO+^O*#F7Liw4&_HE;N_akX;X^So0Z-10H(Rhvku zl(bxPoZgO@()-(IZcO>|XIIkIRZZ3BCJLIo+gGti#_i`F-SfXb-{MR9aeIE&+e7m2 zN(!052M#7SDAgCes;V4 z@3fHT>8rW(%&Y^Oq68wIu07%yz-r{3Yt6It^3(6Fv(>FH-MpGL>*|-Xi#@a7X3a0w z;}e^@>Vd+?zC#B2cZE&XEm_U_^=InW_s`BQ;^|%{`6&G8>)STrGA&9X4v*$4SZLV! z*IcgGt-kql@yqr~xmTAr-K@HJNcwNl?o&Ip(y|(qEIedb13n$9{rSA^#jm5TQmZGe zd2?O)?M;{SWzwRYP3)cgJJb(HnTkJ8zqWnfiiK*K?^ho^@axyl({DvOm{~g*guXkS zXjkM7cX+H;=|5?<*9!m3YWZe6PpN(n>S_{T@3dyp(yZTFQ2Fz&>-COxp_fgr6y80! zrRwKp?rG0obHx=oIu=aWA*_)Vci!Zp{_$5QpY43V_WO*fvsM(({>)O*8pFj>F7)0t zFYy-pY}0!Qnlr1ftdq@t8?|TC$=y+k3OlCnNN-e1HoF|pQ`^)LBrSS}w|mQ)*{{Ev z2rm#|=TazK&z1Bgsot~O^>u6Eojy;wtvTOr@7i5kyZcn?vLb-7ETfOYPo$mET_d zn&lhHGGEAD?8Kd2?_PZpoY*E`oxX8S-OsmayU&>`XYQ3;S)=sPp>aae`TDhY*LBDL z`KNO9!iWC*YNyQJZxpKWlQ}sdQsI5a%FKB>^*ipK`FS<%qVJn+J6-si{8i*S3|g|* zO3v6B`R`v+eEIJ=`qE{UuT?qhrdBAZ2wqtfV0!AEmdKI;Vst0KQ`xng9R* delta 2070 zcmbOxuuWisc|8MXfk$L90|U1(2s1Lwnj^u$z|0Wf6XMFiz`)4Bz{JSF!oa}7$iT|T zz{Obd$0EVTD8bJn$-yMa#UxeF&L}0oBE!Kb!_6oo$RfwVBqz)w z&&i~~#iYQ)q#(eoD9WbH&7{o3q|DE(BF?5N$f739tj^7(&d01S!K%f_tj*7?Ey%1R z#G)(0qASC$C(feJ%cRfGtS`u-FUhJe&u%EgY9z>FB*J2($YU(QYAnxgBE(`M$!;pb zVk%b8Vy4J$F3)Bm&T1jaYN5ZHZ#qQm1V!{(~O=`O+QuEgn~!r`gG?j^_WrNil^$L%f6=A*~y ztH9=~$>nRr=V!p>FT>`q%n_i<87RjdsKs3$tivCo#Svo26=KX2D$gEj#v7)_5vI)* zuFDgy&lzsQ8DY*Fsl*v+$P;DB6Qj!$V<-@B#usnRpPELvRe zB3NR;TjC~I;w4mJ#$VwnT%U2Z{w z)WTG;h3S$@(-oIyN-xWnU!5zrE?;ItNxj;}BE?OGGMkHJw-?LrD3RP*CbzRfX?Kmr z{%VE8b&AL9<&QVYpKVq=-==i2L+Ns-`i*X-n>{Lb`c&^u(t6mh@_3TU(VW0 zrTJlo(&xEqU*>E5SfKH9kN;YW!cX_kWY&|81uKx9k4j zssDe!QT_jervHyx{6A^>|ANE+D>nac+x)-h{Qrr|{}+z`U;F(3>b>vJ%yXceP!i-9 z%;50sMj8VH%Wh8>$B>A_Z^LgFNgo%qU0$8`jj4-4_Hv)_%9zSC|Nr-`4$-`=+PcWI z@j=qY&Bk}@81w~LwYE&&z9R637K3%V|9$?3_1}6v{&T8#_%{C^3x}pc=U?tme-_VU zZn(^NfV2Lcp6#!-7LH9^g$zs+et+kd6i|@hFyG-E@bJrGlP{8=l!Rt!usHS#oT?3( zZ(}6$U1x$1Cu@{;$YRCAuj_jlE2rCW`Zlb%bl26ywXuV-HFuiYtITN>!c-3%Dq%|ht-Oq*CU|i(7L-b+t7O3<~NgnUXXn_vElt~U6bwyX8wZ98T75^9i(~CzUt6DB~yjxfQ^ZD#=%eBw$ zP8DBzdgIDjPE1{47x)-oFtIyiH#O}1AC}AY{`ohZy5C{#oxOTy-fP+?uHaj(pzw|3 zfdNwpr{>r0TOZ#1?)v&#FtKpoOzvdu(-yq9&*q)lsihG2o>@}vhO=oVheHV4yz&k8 z-Nu*SpSo~$U-!oE@h`&7gAFwtE_^>)z+P}&-gJuOeUsJGiauriTR7$3y(@{Ur_Ocz zS5rKB^F{76jJxc0QyEz2zIwGj_x_fpQKUSCVN&hS$R8aQq?xs$c$r8a0zT0^X^7ZO}HEa%-X5R9w>-R<>IVOkXeYzd@ z)~Q`qSh{7c*{fE?U00`k=21vdxZc&?_b)~1Dcg+lzK3E`ijE;y*LqH#slFm{hMVz$ zhx4~@ws;}zl2*Uv^giB(-Qmfts~l|B{LtFAq9xr|HX zyV09%X7^(5-tj5Dr(WRyz*E+OYva|Udw$;7b;ROa=%K9}&iyF(nKFEVi<70~9^ZRms6zq^1B%N{AI4*KXv0*|%#KOxg zr8Vud=WPC&GNagW<6@@=1?vSGMC&bh`YN{=UF8wsyU|ndf71yi1*RR6FOnV^W}ZFD zxxl}8CF?g;2CMhm_Aw_VrEuKj5h&-Zc=jVv?8Tky65lmgdigl+I9`ZT`ur`bk3sRf z;{Ev|>~U%)-`)QntqQXf@A!A+uD)05QTZJ|TaEtiKlWq(pU@v!@o)d1t7AWPy7-em Ue~mN;0|Nttr>mdKI;Vst07kwn=>Px# diff --git a/sprites/HEXPR0.png b/sprites/HEXPR0.png index 807a4be46c7a9366e230fea1141956252f2d6b27..f9aadd61237032c2bb6b90e961601f74bbe1a07e 100644 GIT binary patch delta 1876 zcmdnO|BY{gc|Fsk0G|+71_lO31_nk(MkYoEW(EdkMh0dkMivGJ7Dh%^1_o9}Mph<9 zHfBb41_pLU26iR}c4kI)7A6ix1`b9>4kktpW(E#sMh+GxPG$y9W=1YX1}-KBE+$59 zCPr>%Ms5~HZdPUJy29#$C+78x#P87>wX z9u^rMHdzj4Ssqq7PG&hS7C9akIUZIyURF6i_Ii14R(W1F1#VUaUS{G2URGs37G*v*Wqvkges&dpRuus@6#)(vL3UL> z7F9l0Ren}g0X8*$7BvAjH9>ZDJ~nlJR&@bZ4M8>yL3Rxx4ov|TO#yaIK~_ycc1>Xp zt$IN=Z9xugVGbQ3Rvlq>9T5&4QEpvfHeF#(T@emlF)lq3c0CbJJy8yQ5q5o14t+6B z15tJZF-}8KHbYSkBQbVk32qZnb`vpnQ*ll+adtBaE(-|`3kgmuX&!4y4r@s+Ybj0} zNe&w+E_-P%ds$uw8Eywz9!D82CuvS6*?MkgIc^tuK34@^H#shM1zryY9uH+f9|dk7 zMP45zUSAafeu)v3vvJLQ{!iQ}HTGsai{kT5IVE)@t#fq+Sx_7tG-B>_!?xJp+rL zr;B4q#NoGLr}Jdod2}|#f4(uXELD5c!y9eP|NqZdS8$D%VO5Y=@nW5Lnf_c3rv&kbTZ&i6 zpLf51kg=n|aarxfXoe*LL9K>wbaW;*>pO>9vpr~hp%gJ8pEaN%fk%RG!_+=G@%rfu zzcyW|Kj?N{S$msnj<-UpA;$*Jlg-QwI=%KU*>5Zn)Jt8!y7JyV*2Q5?Q*SEWe6Z?( zmGz3N;_3^WH@00^t@Wdf&A>=GgqeYt`^U-PW#*Y^albtjwx?+ zmhGx2i&+=9!1y+>U?il9BfGN06OQdJ~UO!@6e|^UfL^R`_*Ezsd4h)BLsVb@yzpZpn$! zFP8o&?ZyzWD{RAC#(H6f^nk0O`z!05-ffZpyy(U3q-W>49;dyzka%hWcZWAuID=Ob z!&mlFWBU)ACu;q_`*LQB@}uc*-MS2lGZ<18LtpIcWN74d5RQzNJ$K4MGlVzhZ^z%u z<;yb#cPT!*lFr!prE1Q4)eWlr6*COJ=`4*cST#2@EBNTK+b)lHzpI^JpJ=o|VNxxp z%1yWD&ZU=h_#`v>Ya`QEu3{4AO6_@GKaWeRCsK3sodks`#T_$#WCWUhzL*tXb$+V$ zmebEJ_+5Oy?o~6>OykqOYynAEU#xh&yi|)4jPHB2dLb69BZ!@_ve zWqR*-i8NP3dyN>4H4}_2ebtsLG1OajPI6lR{gPM%R|Dq;-^ksIQo2(-icO9wpPX>J z@TOW!--3HA0!&8QOvf&$XK=7~7d|%Oo&D`>)|>x7q%A-HyS?Eo153c4y|(4WTCW#d zJbzew;<Mw2v;&cIuxJ@?GAd z{?^S?M-+n3@CS3p&rK1Yzkk{L`WV+862@m%NR}G}Y~ZlSzVB~1J1dkici!H}wY;j_ zjRh&8cOEthtzMKH8Dd$S8-BNAyLZHLJtb~u``3(|nw^uf<_X;1;gftVA^1#W=$CcB z8yaLM&%Bh?@mPgrYlmk2JG%#W84WcI99vjE@cBMgKmEQm@%LFpC8eJ;QWTc_O8qV| z(eTLia*4a|Pb|9oJ2(8Q_`J41^JC}q{5OB0{oMYDv(1tHz4Z+DFG#y)_Rl@az`(%Z M>FVdQ&MBb@0F4?*9{>OV delta 1939 zcmeyyw}pR#c|8MXfk$L90|U1(2s1Lwnj^u$z|0Wf6XMFiz`)4Bz{tqR#K^$R$iU3R zz|6$R!oa}7$iTwH$jZpT%E-vd%*e*V$j->X&cwjZ%)rjV$j-{d!NkD9#K^(S$ic$M z!OFnF#>C0Wz{$$U#l*nH%*e&Uz|G9a&BDmd%E(>M#>mai%)`vU!@|hJ%E-gc#KXbJ z%gn&b!obVMz{|$S%g)Hl!NkkS%*VpW$I8gZ#>mIP$j8aV&&t5h#>mgkB*4ljz{VuN z&M3geB*@Ar$j&6l!6eAZD9Fhq$jv0g#wf(jB*eie#K|PY#U#YdD8$Vq#KR=a$|%gi zB+OIKEW*Yp!poBgiHr#3IYfEGxt+ z$Hy!uz#=EaA}7QuC(J4*%q}m$Dlg2YAjqm9%&H*5tRTXwAj+m7%C0EHqA0|sB*dyD z!m1?7q9n?uB*v~R%&IKPqAbd$EXuAd#-c37rXt3wBF3R2&ZZ*4t}4o^D#oHJ&Z=53 z&ZZ{Lq9(znCc&;I$*wNSrY_E^F2SlH$)+L6t|7&tDbB7b$)YLAt|`T;Db1lJ#ilL6 zp)Jj!Bh9KK!>%LCp(D$!E6u4Z!=@|Cp)1FwC(EuU%c&>Fp)bp>FUO%T&uJjfZXnNT zD9>gn&tas%Zmh^{qQGvV$Zo2{X{J=qZl=s-q0DKa!eOPxW39?zt;%Js#%ZI*VWY-n zufb)n$?KrW?V!cusLAD|$?2rU?X1o1qQmE^%j>4Y<*vu;p~vH4An0Sj?PI{}W60}k zB;ac-;BUn1Z_F2H!W(457i7vGY{nmAE*xPg5M?D0Ya<+I%^znY6lW`x;vig~;wYNx zD3t0Xn&~2z?IxD*CS2$xQS2>V6(Cg`C{Y_Ey?#~fD^N}-3GxeOaCmkjje&v1($mE; zB;xSfu#$dzvsqe*&p=CSjhTd!PUh-PcASsNNF&*ux57LjkRS$GX=ySlsq-4-E+Nu zx~xn?!d0cB=r2+XqF$jA+UE{U;;Rd~)+@{)$Dwy1eMvNM! zy}w=sY+QaVz&f<`&N&7%a~D&F1VeX2kvTW(^DKTGdoY*to_=gMFY9d{8SZF_sM|b+ zLH4yamY*L#>b-k=u1?rqeOEC{O@%5`UTGeMlkD#7W_okxihce3ZpYf)+wLSAzZdC9 zzNvQd0{8jr3>A#tubF;7nmG68s?5L&OB->9hmrd)SIt>cw(x}X^%-T?7yEe8`e}dy9u#r)mA)#fM}(H1F&F%CoCo^syvs z_nvI#xQ*-#Pq#Le^0zR|aSZm~_4KmyF8f`IXHVxvnZDa%F{4*o$58DFcZWAuIK!zN zhOgGX#`8tb9=NsN#;WhE-P5D5Y(hhglh{_Ita94!%few;&*E+s{@yHAapQ{R8z$F& zY=0m3Ja)g7Q&;R6g%#Hy*XTN~sW@@Mlrc2IKpJ3u@oI)_R&1l;pCs>EYq|>qUim0%xk+Pna+>NYdcczdFmg<#y#u z%Y$}%-A*YxE3s!=X|zWD1QpMHCmFl~dHZt3#TIV!SXT1%$R_<$7F}1*P3kaIOVRk! z)~O)y_Qj;He22HJDNkFf?=}0S57%PPg*uHQn}QZzug>IkFm4dsusQ3|>L8uP3zsGI zxSy$w`l`OV;k4kD*$gusgj^dJzA)ON;pKUZ_wfb&+lx0Zw65x(lJYx0BE6o0NhWUX zxw~?!Pujfk`d>cr-1JZ1uFGdW{+P6NqgS3@D1)WWmj54?M0fpV+;{xR%@3#ZpT8IH zX1%D$cJ(cPpLFz0rdvh%`Z^Dn-B%NyxBrR1{ruh!$sPuK)$Sa0P_%Sjv@Mt8q>rEa z0VBWo`E#Y+x?5BnLkip3y#kLGX-0+$)k~M(;;SfTdVPg`iOz-dRR?@h!&V&=OtzkP z%uX{#A~@)5Rk)qPhQv)C7O$P{Qx2w#w zH 0 ) CreateTossable(excess); + } + } + default { +INVENTORY.IGNORESKILL; @@ -225,6 +236,12 @@ Class MagAmmo : Inventory abstract override void DoEffect() { Super.DoEffect(); + // drop excess ammo + if ( !sv_infiniteammo && !Owner.FindInventory('PowerInfiniteAmmo') ) + { + int excess = Amount-MaxAmount; + if ( excess > 0 ) CreateTossable(excess); + } if ( !pamo ) { pamo = Ammo(Owner.FindInventory(ParentAmmo)); @@ -344,10 +361,10 @@ Class RedShell : Ammo Stamina 500; Inventory.Icon "graphics/HUD/Icons/A_ShellsNormal.png"; Inventory.Amount 1; - Inventory.MaxAmount 40; - Ammo.BackpackAmount 3; - Ammo.BackpackMaxAmount 200; - Ammo.DropAmount 3; + Inventory.MaxAmount 30; + Ammo.BackpackAmount 2; + Ammo.BackpackMaxAmount 100; + Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; Radius 4; @@ -419,9 +436,9 @@ Class GreenShell : Ammo Stamina 800; Inventory.Icon "graphics/HUD/Icons/A_ShellsSlug.png"; Inventory.Amount 1; - Inventory.MaxAmount 30; + Inventory.MaxAmount 25; Ammo.BackpackAmount 2; - Ammo.BackpackMaxAmount 150; + Ammo.BackpackMaxAmount 80; Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; @@ -485,9 +502,9 @@ Class WhiteShell : Ammo Stamina 1000; Inventory.Icon "graphics/HUD/Icons/A_ShellsDragon.png"; Inventory.Amount 1; - Inventory.MaxAmount 24; + Inventory.MaxAmount 10; Ammo.BackpackAmount 1; - Ammo.BackpackMaxAmount 80; + Ammo.BackpackMaxAmount 30; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -542,9 +559,9 @@ Class BlueShell : Ammo Stamina 2500; Inventory.Icon "graphics/HUD/Icons/A_ShellsKinylum.png"; Inventory.Amount 1; - Inventory.MaxAmount 28; - Ammo.BackpackAmount 2; - Ammo.BackpackMaxAmount 100; + Inventory.MaxAmount 15; + Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 40; Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; @@ -599,9 +616,9 @@ Class BlackShell : Ammo Stamina 4000; Inventory.Icon "graphics/HUD/Icons/A_ShellsFuck.png"; Inventory.Amount 1; - Inventory.MaxAmount 8; + Inventory.MaxAmount 10; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 32; + Ammo.BackpackMaxAmount 20; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -647,10 +664,10 @@ Class PurpleShell : Ammo Stamina 1500; Inventory.Icon "graphics/HUD/Icons/A_ShellsBall.png"; Inventory.Amount 1; - Inventory.MaxAmount 32; - Ammo.BackpackAmount 2; - Ammo.BackpackMaxAmount 120; - Ammo.DropAmount 2; + Inventory.MaxAmount 20; + Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 60; + Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; Radius 4; @@ -736,7 +753,7 @@ Class GoldShell : Ammo Stamina 0; Inventory.Icon "graphics/HUD/Icons/A_ShellsGold.png"; Inventory.Amount 1; - Inventory.MaxAmount 3; + Inventory.MaxAmount 7; Ammo.BackpackAmount 0; Ammo.BackpackMaxAmount 7; Ammo.DropAmount 1; @@ -771,10 +788,10 @@ Class EvisceratorShell : Ammo Stamina 3000; Inventory.Icon "graphics/HUD/Icons/A_Eviscerator.png"; Inventory.Amount 1; - Inventory.MaxAmount 36; + Inventory.MaxAmount 20; Ammo.BackpackAmount 2; - Ammo.BackpackMaxAmount 148; - Ammo.DropAmount 2; + Ammo.BackpackMaxAmount 90; + Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; Radius 8; @@ -843,9 +860,9 @@ Class HellblazerMissiles : Ammo Stamina 8000; Inventory.Icon "graphics/HUD/Icons/A_HellblazerMissile.png"; Inventory.Amount 1; - Inventory.MaxAmount 30; - Ammo.BackpackAmount 2; - Ammo.BackpackMaxAmount 94; + Inventory.MaxAmount 20; + Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 60; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -911,7 +928,7 @@ Class HellblazerCrackshots : Ammo Inventory.Amount 1; Inventory.MaxAmount 15; Ammo.BackpackAmount 1; - Ammo.BackpackMaxAmount 71; + Ammo.BackpackMaxAmount 36; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -954,9 +971,9 @@ Class HellblazerRavagers : Ammo Stamina 25000; Inventory.Icon "graphics/HUD/Icons/A_HellblazerRavager.png"; Inventory.Amount 1; - Inventory.MaxAmount 12; + Inventory.MaxAmount 9; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 60; + Ammo.BackpackMaxAmount 24; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1001,7 +1018,7 @@ Class HellblazerWarheads : Ammo Inventory.Amount 1; Inventory.MaxAmount 4; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 12; + Ammo.BackpackMaxAmount 10; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1048,9 +1065,9 @@ Class SparkUnit : Ammo Stamina 50000; Inventory.Icon "graphics/HUD/Icons/A_Sparkster.png"; Inventory.Amount 1; - Inventory.MaxAmount 6; + Inventory.MaxAmount 5; Ammo.BackpackAmount 1; - Ammo.BackpackMaxAmount 30; + Ammo.BackpackMaxAmount 15; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1084,7 +1101,7 @@ Class SilverBulletAmmo : Ammo Inventory.Amount 1; Inventory.MaxAmount 3; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 11; + Ammo.BackpackMaxAmount 8; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1114,7 +1131,7 @@ Class SilverBulletAmmo2 : Ammo Inventory.Amount 1; Inventory.MaxAmount 2; Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 10; + Ammo.BackpackMaxAmount 4; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1182,7 +1199,7 @@ Class SilverBulletsBundleSpawn : Actor { if ( bCOUNTSECRET ) level.total_secrets--; int bnd = Random[Bundle](2,3); - for ( int i=0; i<3; i++ ) + for ( int i=0; i 0 ) ReactionTime -= 2; - A_CountDown(); let p = Spawn("RavagerPuff",pos); p.alpha *= .6+.4*(ReactionTime/20.); p.scale *= 3.5-2.5*(ReactionTime/20.); @@ -1112,7 +1111,7 @@ Class HellblazerRavagerArm : Actor l.target = p; } if ( !(ReactionTime%1) ) - SWWMUtility.DoExplosion(self,4+reactiontime*2,1000+200*reactiontime,250-6*reactiontime); + SWWMUtility.DoExplosion(self,1+reactiontime/2,1000+200*reactiontime,250-6*reactiontime); double spd = vel.length(); vel = (vel*.4+(FRandom[ExploS](-.2,.2),FRandom[ExploS](-.2,.2),FRandom[ExploS](-.2,.2))).unit()*spd; Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); @@ -1120,7 +1119,7 @@ Class HellblazerRavagerArm : Actor { let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; - s.SetShade(Color(4,2,2)*Random[ExploS](48,63)); + s.SetShade(Color(4,2,1)*Random[ExploS](48,63)); s.special1 = Random[ExploS](2,4); s.scale *= 3.2; s.alpha *= .1+.2*(ReactionTime/20.); @@ -1133,6 +1132,7 @@ Class HellblazerRavagerArm : Actor s2.vel = pvel; } } + A_CountDown(); } Wait; Bounce: @@ -1186,7 +1186,7 @@ Class HellblazerWarheadArm : Actor +NODAMAGETHRUST; +FORCERADIUSDMG; -NOGRAVITY; - Gravity 0.25; + Gravity 0.35; BounceFactor 1.0; Radius 4; Height 4; @@ -1205,16 +1205,16 @@ Class HellblazerWarheadArm : Actor Spawn: TNT1 A 1 { - A_CountDown(); Spawn("HellblazerWarheadTrail",pos); - SWWMUtility.DoExplosion(self,30+reactiontime*5,3000+500*reactiontime,120+3*reactiontime); + SWWMUtility.DoExplosion(self,20+reactiontime*4,3000+500*reactiontime,120+3*reactiontime); Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); let s = Spawn("SWWMHalfSmoke",pos); s.vel = pvel+vel*.2; - s.SetShade(Color(4,3,2)*Random[ExploS](48,63)); + s.SetShade(Color(4,2,1)*Random[ExploS](48,63)); s.special1 = Random[ExploS](1,3); s.scale *= 6.; s.alpha *= 0.1+.4*(ReactionTime/15.); + A_CountDown(); } Wait; } @@ -1242,7 +1242,7 @@ Class HellblazerXSub : GhostArtifactX void UpdateMe() { static const Class types[] = {"HellblazerMissiles","HellblazerCrackshots","HellblazerRavagers","HellblazerWarheads"}; - int curtype = 0; + int curtype = -1; for ( int i=0; i<4; i++ ) { if ( weap.loadammo != types[i] ) continue; @@ -1281,6 +1281,12 @@ Class HellblazerXSub : GhostArtifactX if ( (ridx > 1) || weap.magstate[ridx] ) SetState(SpawnState); else SetState(SpawnState+sofs[3]+idx); break; + default: + // uninitialized pickup (3 blazers) + idx = ridx; + if ( idx > 2 ) SetState(SpawnState); + else SetState(SpawnState+sofs[0]+idx); + break; } } States @@ -1509,7 +1515,15 @@ Class Hellblazer : SWWMWeapon override void AttachToOwner( Actor other ) { Super.AttachToOwner(other); - if ( !loadammo ) loadammo = "HellblazerMissiles"; + if ( !loadammo ) + { + // 3 hellblazer missiles loaded + loadammo = "HellblazerMissiles"; + clipcount = 3; + magpos = 0; + for ( int i=0; i<6; i++ ) + magstate[i] = (i>2); + } nextammo = loadammo; } @@ -1679,7 +1693,7 @@ Class Hellblazer : SWWMWeapon Weapon.UpSound "hellblazer/select"; Stamina 90000; Weapon.AmmoType1 "HellblazerMissiles"; - Weapon.AmmoGive1 6; + Weapon.AmmoGive1 3; //SWWMWeapon.SwapWeapon "Quadravol"; SWWMWeapon.DropAmmoType "RocketAmmo"; Hellblazer.ClipCount 6; diff --git a/zscript/swwm_blod.zsc b/zscript/swwm_blod.zsc index 0784f555e..035c06f8f 100644 --- a/zscript/swwm_blod.zsc +++ b/zscript/swwm_blod.zsc @@ -191,7 +191,7 @@ Class mkBloodDrop : Actor double ang = atan2(dir.y,dir.x); double pt = asin(-dir.z); LineTrace(ang,spd,pt,TRF_THRUACTORS|TRF_THRUHITSCAN,data:d); - if ( d.HitType == TRACE_HitFloor ) + if ( (d.HitType == TRACE_HitFloor) || (pos.z <= floorz) ) { if ( d.HitTexture == skyflatnum ) { @@ -220,6 +220,8 @@ Class mkBloodDrop : Actor } else { + // hacky workaround + if ( !d.HitSector ) d.HitSector = floorsector; tracksector = d.HitSector; trackplane = 0; } diff --git a/zscript/swwm_cbt.zsc b/zscript/swwm_cbt.zsc index fd7e7e61d..2d22cf52c 100644 --- a/zscript/swwm_cbt.zsc +++ b/zscript/swwm_cbt.zsc @@ -1179,6 +1179,7 @@ Class Wallbuster : SWWMWeapon p.angle = atan2(hitnormal.y,hitnormal.x); p.pitch = asin(-hitnormal.z); p.special1 = max(0,(bc-5)/4); + if ( t.Results.HitType == TRACE_HitFloor ) p.CheckSplash(40); } } override Vector3 GetTraceOffset() @@ -1251,7 +1252,7 @@ Class Wallbuster : SWWMWeapon break; } double rfact = invoker.cbtmuffler.GetBool()?.85:.6; - A_StartSound(sounds[which],CHAN_WEAPON,CHANF_OVERLAP,1./(howmany**rfact),.6-howmany*.004,1.-howmany*.012); + A_StartSound(sounds[which],CHAN_WEAPON,CHANF_OVERLAP,1./(howmany**rfact),.6-howmany*.004,1.-howmany*.015); if ( which == 0 ) redflashstr = max(120,redflashstr+10); else if ( which == 1 ) redflashstr = max(90,redflashstr+8); else if ( which == 2 ) blueflashstr = max(160,blueflashstr+10); @@ -1324,7 +1325,7 @@ Class Wallbuster : SWWMWeapon // slug if ( !sst ) sst = new("SpreadSlugTracer"); sst.ignoreme = self; - sst.penetration = 275.; + sst.penetration = 150.; a = FRandom[Wallbuster](0,360); s = FRandom[Wallbuster](0,.002); dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit(); @@ -1438,9 +1439,9 @@ Class Wallbuster : SWWMWeapon // buckshot if ( !st ) st = new("SpreadgunTracer"); st.ignoreme = self; - // attempt to uniformize expected damage - int expecteddmg = 200; - int numshot = 31-howmany; + // attempt to uniformize expected damage while reducing traces (mainly for performance) + int expecteddmg = 120; + int numshot = max(21-howmany,5); int individualdmg = int(ceil(expecteddmg/double(numshot))); for ( int j=0; j 20 ) - { + if ( (loadtics == 25) && !sv_infiniteammo && !Owner.FindInventory('PowerInfiniteAmmo',true) ) + Ammo1.Amount = max(0,Ammo1.Amount-1); + if ( loadtics == 30 ) pendingload = false; - if ( !sv_infiniteammo && !Owner.FindInventory('PowerInfiniteAmmo',true) ) - Ammo1.Amount = max(0,Ammo1.Amount-1); - } + } + + action void A_StartLoad( int delay = 0 ) + { + invoker.pendingload = true; + invoker.loadtics = -delay; } override Vector3 GetTraceOffset() @@ -695,7 +697,7 @@ Class Eviscerator : SWWMWeapon SWWMUtility.DoKnockback(self,-x,25000.); [x2, y2, z2] = swwm_CoordUtil.GetAxes(BulletSlope(),angle,roll); origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+4*y-5*z); - for ( int i=0; i<40; i++ ) + for ( int i=0; i<30; i++ ) { a = FRandom[Eviscerator](0,360); s = FRandom[Eviscerator](0,invoker.extended?.06:.3); @@ -705,6 +707,7 @@ Class Eviscerator : SWWMWeapon p.angle = atan2(dir.y,dir.x); p.pitch = asin(-dir.z); p.vel = dir*p.speed*FRandom[Eviscerator](.9,1.1); + if ( invoker.extended ) p.vel *= 1.25; } for ( int i=0; i<4; i++ ) { @@ -902,7 +905,7 @@ Class Eviscerator : SWWMWeapon XZW4 C 1 { A_StartSound("eviscerator/ejectend",CHAN_WEAPON,CHANF_OVERLAP); - invoker.pendingload = true; + A_StartLoad(); } XZW4 DEF 1; XZW4 GHI 2; @@ -917,7 +920,7 @@ Class Eviscerator : SWWMWeapon XZW7 B 1 { A_StartSound("eviscerator/ejectend",CHAN_WEAPON,CHANF_OVERLAP); - invoker.pendingload = true; + A_StartLoad(); } XZW7 CDE 1; XZW7 FGH 2; @@ -942,7 +945,7 @@ Class Eviscerator : SWWMWeapon XZW2 STUVW 1; XZW2 XYZ 2; XZW3 ABCD 2; - XZW2 A 1 { invoker.pendingload = true; } + XZW2 A 1 A_StartLoad(5); Goto Ready; AltFireExt: XZW4 Z 2; @@ -950,7 +953,7 @@ Class Eviscerator : SWWMWeapon XZW5 WXY 2; XZW5 Z 2; XZW6 ABC 2; - XZW4 Z 1 { invoker.pendingload = true; } + XZW4 Z 1 A_StartLoad(5); Goto ReadyExt; Zoom: XZW2 A 2 diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 559c74e42..c86346b0e 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -2228,7 +2228,7 @@ Class SWWMHandler : EventHandler else if ( e.Replacee is 'MWeaponPiece1' ) e.Replacement = 'Ynykron'; else if ( (e.Replacee == 'Clip') || (e.Replacee == 'GoldWandAmmo') || (e.Replacee == 'GoldWandHefty') ) { - switch( Random[Replacements](0,14) ) + switch( Random[Replacements](0,12) ) { case 0: case 1: @@ -2240,10 +2240,6 @@ Class SWWMHandler : EventHandler case 6: e.Replacement = greenpool[Random[Replacements](0,1)]; break; - case 7: - case 8: - e.Replacement = purplepool[0]; - break; default: e.Replacement = 'SWWMNothing'; break; @@ -2288,7 +2284,7 @@ Class SWWMHandler : EventHandler case 0: case 1: case 2: - e.Replacement = redpool[Random[Replacements](1,3)]; + e.Replacement = redpool[Random[Replacements](1,2)]; break; case 3: case 4: @@ -2314,9 +2310,9 @@ Class SWWMHandler : EventHandler break; } } - else if ( e.Replacee == 'ClipBox' ) e.Replacement = Random[Replacements](0,3)?'EvisceratorShell':Random[Replacements](0,4)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; + else if ( e.Replacee == 'ClipBox' ) e.Replacement = Random[Replacements](0,4)?'EvisceratorShell':Random[Replacements](0,6)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; else if ( e.Replacee == 'BlasterAmmo' ) e.Replacement = 'EvisceratorShell'; - else if ( e.Replacee == 'BlasterHefty' ) e.Replacement = Random[Replacements](0,4)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; + else if ( e.Replacee == 'BlasterHefty' ) e.Replacement = Random[Replacements](0,6)?'EvisceratorTrioSpawn':'EvisceratorSixPack'; else if ( (e.Replacee == 'RocketAmmo') || (e.Replacee == 'PhoenixRodAmmo') || (e.Replacee == 'MaceAmmo') ) e.Replacement = Random[Replacements](0,2)?'HellblazerMissiles':'HellblazerCrackshots'; else if ( (e.Replacee == 'RocketBox') || (e.Replacee == 'PhoenixRodHefty') || (e.Replacee == 'MaceHefty') ) { @@ -2327,15 +2323,15 @@ Class SWWMHandler : EventHandler case 2: case 3: case 4: - if ( Random[Replacements](0,3) ) e.Replacement = 'HellblazerMissiles'; - else if ( Random[Replacements](0,2) ) e.Replacement = 'HellblazerMissileTrioSpawn'; + if ( Random[Replacements](0,5) ) e.Replacement = 'HellblazerMissiles'; + else if ( Random[Replacements](0,4) ) e.Replacement = 'HellblazerMissileTrioSpawn'; else e.Replacement = 'HellblazerMissileMag'; break; case 5: case 6: case 7: case 8: - if ( Random[Replacements](0,4) ) e.Replacement = 'HellblazerCrackshots'; + if ( Random[Replacements](0,6) ) e.Replacement = 'HellblazerCrackshots'; else e.Replacement = 'HellblazerCrackshotMag'; break; case 9: diff --git a/zscript/swwm_health.zsc b/zscript/swwm_health.zsc index 152d7ef9a..5e1738174 100644 --- a/zscript/swwm_health.zsc +++ b/zscript/swwm_health.zsc @@ -162,8 +162,10 @@ Class RefresherItem : SWWMHealth SWWMLoreLibrary.Add(other.player,"Refresher"); return Super.CreateCopy(other); } - override void AutoUseExtra() + override void AutoUseExtra( bool recursive ) { + // regen effect doesn't stack if we autoactivated recursively + if ( recursive ) return; let p = Powerup(Owner.FindInventory("RefresherRegen")); if ( p ) p.EffectTics += p.default.EffectTics; else Owner.GiveInventory("RefresherRegen",1); diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index 66e497738..edb8d8c1a 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -332,11 +332,11 @@ Class SWWMHealth : Inventory abstract SWWMHandler.HealthFlash(Owner.PlayerNumber()); Owner.GiveInventory(giveme,GetDefaultByType(giveme).Amount); SWWMScoreObj.Spawn(GetDefaultByType(giveme).Amount,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_BLUE); - AutoUseExtra(); + AutoUseExtra(false); return true; } - virtual void AutoUseExtra() + virtual void AutoUseExtra( bool recursive ) { } @@ -374,6 +374,7 @@ Class SWWMHealth : Inventory abstract if ( ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA); int tgive = 0; bool acc = CVar.GetCVar('swwm_accdamage',players[consoleplayer]).GetBool(); + bool morethanonce = false; while ( (Amount > 0) && (newdamage > 0) ) { if ( acc ) tgive += GetDefaultByType(giveme).Amount; @@ -381,7 +382,8 @@ Class SWWMHealth : Inventory abstract newdamage = newdamage-GetDefaultByType(giveme).Amount; if ( newdamage < 0 ) Owner.GiveBody(-newdamage,GetDefaultByType(giveme).MaxAmount); newdamage = max(0,newdamage); - AutoUseExtra(); + AutoUseExtra(morethanonce); + morethanonce = true; Amount--; } if ( acc ) SWWMScoreObj.Spawn(tgive,Owner.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+Owner.Height/2),Font.CR_BLUE); @@ -585,7 +587,6 @@ Class PunchImpact : Actor Height 0; +NOGRAVITY; +NOCLIP; - +DONTSPLASH; +NOTELEPORT; +NOINTERACTION; } @@ -656,7 +657,6 @@ Class BigPunchImpact : Actor Height 0; +NOGRAVITY; +NOCLIP; - +DONTSPLASH; +NOTELEPORT; +NOINTERACTION; } @@ -1450,6 +1450,7 @@ Class SWWMWeapon : Weapon abstract let p = Spawn(raging?"BigPunchImpact":"PunchImpact",d.HitLocation+HitNormal*4); p.angle = atan2(HitNormal.y,HitNormal.x); p.pitch = asin(-HitNormal.z); + if ( d.HitType == TRACE_HitFloor ) p.CheckSplash(40); if ( raging ) { let ps = Spawn("BigPunchSplash",d.HitLocation+HitNormal*4); diff --git a/zscript/swwm_jackhammer.zsc b/zscript/swwm_jackhammer.zsc index 071fc250f..1888b955d 100644 --- a/zscript/swwm_jackhammer.zsc +++ b/zscript/swwm_jackhammer.zsc @@ -9,7 +9,6 @@ Class PusherImpact : Actor Height 0; +NOGRAVITY; +NOCLIP; - +DONTSPLASH; +NOTELEPORT; +NOINTERACTION; } @@ -54,7 +53,6 @@ Class BigPusherImpact : Actor Height 0; +NOGRAVITY; +NOCLIP; - +DONTSPLASH; +NOTELEPORT; +NOINTERACTION; } @@ -104,7 +102,7 @@ Class PusherProjectile : Actor Speed 50; Radius 10; Height 10; - DamageFunction int(6*vel.length()); + DamageFunction clamp(int(3*vel.length()),0,150); DamageType 'Tenderize'; BounceType "Hexen"; BounceFactor 1.0; @@ -415,7 +413,7 @@ Class PusherWeapon : SWWMWeapon action void A_PusherDrill() { - invoker.chargelevel = clamp(invoker.chargelevel+FRandom[Pusher](-.1,.2),.3,1.); + invoker.chargelevel = clamp(invoker.chargelevel+FRandom[Pusher](-.04,.08),.3,1.); A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.5); A_WeaponOffset(FRandom[Pusher](-1,1)*2,32+FRandom[Pusher](-1,1)*2); A_ZoomFactor(1.01,ZOOM_INSTANT); @@ -430,7 +428,7 @@ Class PusherWeapon : SWWMWeapon { A_QuakeEx(2,2,2,7,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.8); A_AlertMonsters(swwm_uncapalert?0:1200); - int dmg = int(5+invoker.chargelevel*3); + int dmg = int(3+invoker.chargelevel*3); if ( d.HitType == TRACE_HitActor ) { double diff = deltaangle(self.angle,AngleTo(d.HitActor)); @@ -476,9 +474,12 @@ Class PusherWeapon : SWWMWeapon let p = Spawn("PusherImpact",d.HitLocation+HitNormal*4); p.angle = atan2(HitNormal.y,HitNormal.x); p.pitch = asin(-HitNormal.z); + if ( d.HitType == TRACE_HitFloor ) p.CheckSplash(40); + if ( waterlevel > 2 ) SWWMUtility.DoKnockback(self,-x,30000); } if ( swwm_omnibust ) BusterWall.BustLinetrace(d,dmg,self,d.HitDir,d.HitLocation.z); } + else if ( waterlevel > 2 ) SWWMUtility.DoKnockback(self,-x,18000); if ( swwm_extraalert || !(invoker.hitcnt%20) ) A_AlertMonsters(swwm_uncapalert?0:500); invoker.hitcnt++; } @@ -507,7 +508,7 @@ Class PusherWeapon : SWWMWeapon { A_QuakeEx(8,8,8,12,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:.8); A_AlertMonsters(swwm_uncapalert?0:1600); - int dmg = int(300*invoker.chargelevel); + int dmg = int(150*invoker.chargelevel); if ( d.HitType == TRACE_HitActor ) { double diff = deltaangle(self.angle,AngleTo(d.HitActor)); @@ -550,6 +551,7 @@ Class PusherWeapon : SWWMWeapon let p = Spawn("BigPusherImpact",d.HitLocation+HitNormal*4); p.angle = atan2(HitNormal.y,HitNormal.x); p.pitch = asin(-HitNormal.z); + if ( d.HitType == TRACE_HitFloor ) p.CheckSplash(40); } if ( swwm_omnibust ) BusterWall.BustLinetrace(d,dmg,self,d.HitDir,d.HitLocation.z); } @@ -580,7 +582,7 @@ Class PusherWeapon : SWWMWeapon action void A_ChargeUp() { - invoker.chargelevel = min(1.,invoker.chargelevel+.035); + invoker.chargelevel = min(1.,invoker.chargelevel+.025); if ( invoker.chargelevel >= .5 ) invoker.vibe = min(1.,invoker.vibe+.02); A_WeaponOffset(FRandom[Pusher](-1,1)*(invoker.chargelevel-invoker.vibe),32+FRandom[Pusher](-1,1)*(invoker.chargelevel-invoker.vibe)); if ( !(player.cmd.buttons&BT_ALTATTACK) && (invoker.chargelevel > .3) ) diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 2d54c37ec..78dd8fda3 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -2990,6 +2990,7 @@ Class LoveHeart : Actor } A_SetRenderStyle(1.,STYLE_Add); //A_RemoveLight('LOVELIGHT'); + CheckSplash(40); A_QuakeEx(2,2,2,8,0,300,"",QF_RELATIVE|QF_SCALEDOWN); A_StartSound("bestsound",CHAN_VOICE); Spawn("LoveHeartBurstLight",pos); diff --git a/zscript/swwm_powerup.zsc b/zscript/swwm_powerup.zsc index 3bfa86f3c..f7cd54b1d 100644 --- a/zscript/swwm_powerup.zsc +++ b/zscript/swwm_powerup.zsc @@ -69,7 +69,7 @@ Class GrilledCheeseSandwich : Inventory override bool Use( bool pickup ) { if ( pickup && !deathmatch ) return false; - if ( Owner.Health >= 1000 ) return false; + if ( Owner.Health > 500 ) return false; if ( pickup && ((Owner.player == players[consoleplayer]) || bBigPowerup) ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA); DoTheThing(); return true; diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc index bcf3f654c..7bdf7be54 100644 --- a/zscript/swwm_shot.zsc +++ b/zscript/swwm_shot.zsc @@ -149,7 +149,6 @@ Class SpreadImpact : Actor Height 0; +NOGRAVITY; +NOCLIP; - +DONTSPLASH; +NOTELEPORT; +NOINTERACTION; } @@ -196,7 +195,6 @@ Class SlugImpact : Actor Height 0; +NOGRAVITY; +NOCLIP; - +DONTSPLASH; +NOTELEPORT; +NOINTERACTION; } @@ -377,12 +375,11 @@ Class DragonBreathArm : Actor TNT1 A 1 { if ( waterlevel > 0 ) ReactionTime -= 2; - A_CountDown(); let p = Spawn("DragonBreathPuff",pos); p.alpha *= .6+.4*(ReactionTime/20.); p.scale *= 3.5-2.5*(ReactionTime/20.); if ( !(ReactionTime%2) ) - SWWMUtility.DoExplosion(self,1+(reactiontime*2),1000+200*reactiontime,150-6*reactiontime,flags:DE_HOWL,ignoreme:bHITOWNER?null:target); + SWWMUtility.DoExplosion(self,1+(reactiontime/2),1000+200*reactiontime,150-6*reactiontime,flags:DE_HOWL,ignoreme:bHITOWNER?null:target); double spd = vel.length(); vel = (vel*.4+(FRandom[ExploS](-.2,.2),FRandom[ExploS](-.2,.2),FRandom[ExploS](-.2,.2))).unit()*spd; Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); @@ -403,6 +400,7 @@ Class DragonBreathArm : Actor s2.vel = pvel; } } + A_CountDown(); } Wait; Bounce: @@ -498,7 +496,7 @@ Class SaltImpact : Actor { Super.PostBeginPlay(); A_AlertMonsters(swwm_uncapalert?0:6000); - SWWMUtility.DoExplosion(self,25+special2*5,15000,100,40); + SWWMUtility.DoExplosion(self,12+special2*4,15000,100,40); A_QuakeEx(3,3,3,10,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollintensity:0.2); A_StartSound("spreadgun/salt",CHAN_VOICE,attenuation:.35); A_SprayDecal("ShockMarkSmall",-172); @@ -620,7 +618,7 @@ Class SaltBeam : Actor if ( t.Results.HitType == TRACE_HitActor ) { SWWMUtility.DoKnockback(t.Results.HitActor,x,25000); - t.Results.HitActor.DamageMobj(self,target,60+Accuracy*5,'Salt',DMG_THRUSTLESS); + t.Results.HitActor.DamageMobj(self,target,20+Accuracy*4,'Salt',DMG_THRUSTLESS); if ( t.Results.HitActor && t.Results.HitActor.bIsMonster && !Random[Spreadgun](0,3) ) t.Results.HitActor.Howl(); } @@ -691,7 +689,7 @@ Class SaltBeam : Actor if ( isFrozen() ) return; A_FadeOut(.04); if ( Random[Spreadgun](-2,args[2]/10) == 0 ) - SWWMUtility.DoExplosion(self,5+Accuracy,5000,32,flags:DE_HOWL,ignoreme:target); + SWWMUtility.DoExplosion(self,4+Accuracy,5000,32,flags:DE_HOWL,ignoreme:target); if ( ((special2%4) || args[2]) && !special1 ) SpreadOut(); args[2]++; if ( !CheckNoDelay() || (tics == -1) ) return; @@ -875,7 +873,7 @@ Class OnFire : Actor { int flg = DMG_THRUSTLESS; if ( victim is 'Centaur' ) flg |= DMG_FOILINVUL; // you're on fire, that shield is worthless - victim.DamageMobj(self,instigator,clamp(int(amount*.1),1,30),'Fire',flg); // need to use this actor as inflictor to have a proper obituary + victim.DamageMobj(self,instigator,clamp(int(amount*.06),1,20),'Fire',flg); // need to use this actor as inflictor to have a proper obituary if ( victim.bISMONSTER && !Random[FlameT](0,3) ) victim.Howl(); } @@ -1343,7 +1341,7 @@ Class TheBall : Actor double girth = (victim.radius+victim.height)/2.*max(50,victim.mass)*(victim.health/double(victim.GetSpawnHealth())); // how hard this damn thing is going to slam double slamforce = vel.length()*350.+heat*120; - int dmg = int(vel.length()*4.2+heat*80); + int dmg = int(vel.length()*4.+heat*40); bool is_schutt = victim.bSHOOTABLE; // critical hit! bool crit = false; @@ -1592,7 +1590,7 @@ Class GoldenImpact : Actor { Super.PostBeginPlay(); A_AlertMonsters(swwm_uncapalert?0:40000); - SWWMUtility.DoExplosion(self,7777,40000,600,500,DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,777,40000,600,500,DE_EXTRAZTHRUST); A_QuakeEx(9,9,9,40,0,5000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:500,rollintensity:1.5); A_StartSound("spreadgun/goldexpl",CHAN_VOICE,attenuation:.3); A_StartSound("spreadgun/goldexpl",CHAN_WEAPON,attenuation:.15); @@ -1730,7 +1728,7 @@ Class GoldenSubImpact : Actor override void PostBeginPlay() { Super.PostBeginPlay(); - SWWMUtility.DoExplosion(self,777,30000,400,300,DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,77,30000,400,300,DE_EXTRAZTHRUST); A_QuakeEx(7,7,7,20,0,2000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:200,rollintensity:.8); A_SprayDecal("BigRocketBlast",-172); Scale *= FRandom[ExploS](0.8,1.1); @@ -1866,7 +1864,7 @@ Class GoldenSubSubImpact : Actor override void PostBeginPlay() { Super.PostBeginPlay(); - SWWMUtility.DoExplosion(self,77,20000,200,100,DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,7,20000,200,100,DE_EXTRAZTHRUST); A_QuakeEx(4,4,4,15,0,1000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:100,rollintensity:.4); A_SprayDecal("RocketBlast",-172); Scale *= FRandom[ExploS](0.8,1.1); @@ -2140,6 +2138,7 @@ Class Spreadgun : SWWMWeapon let p = Spawn(impact,t.Results.HitPos+hitnormal*4); p.angle = atan2(hitnormal.y,hitnormal.x); p.pitch = asin(-hitnormal.z); + if ( t.Results.HitType == TRACE_HitFloor ) p.CheckSplash(40); if ( t.Results.HitLine ) t.Results.HitLine.RemoteActivate(self,t.Results.Side,SPAC_Impact,t.Results.HitPos); } } @@ -2182,7 +2181,7 @@ Class Spreadgun : SWWMWeapon case 1: sst = new("SpreadSlugTracer"); sst.ignoreme = self; - sst.penetration = 250.; + sst.penetration = 120.; a = FRandom[Spreadgun](0,360); s = FRandom[Spreadgun](0,.01); dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit(); @@ -2429,7 +2428,7 @@ Class Spreadgun : SWWMWeapon default: st = new("SpreadgunTracer"); st.ignoreme = self; - for ( int j=0; j<30; j++ ) + for ( int j=0; j<20; j++ ) { a = FRandom[Spreadgun](0,360); s = FRandom[Spreadgun](0,.22); @@ -2438,7 +2437,7 @@ Class Spreadgun : SWWMWeapon st.shootthroughlist.Clear(); st.waterhitlist.Clear(); st.Trace(origin,level.PointInSector(origin.xy),dir,8000.,TRACE_HitSky); - ProcessTraceHit(st,origin,dir,6,7000,bc:5); + ProcessTraceHit(st,origin,dir,5,7000,bc:5); } for ( int i=0; i<9; i++ ) { diff --git a/zscript/swwm_sparkyboi.zsc b/zscript/swwm_sparkyboi.zsc index 329ca7a66..4b052e918 100644 --- a/zscript/swwm_sparkyboi.zsc +++ b/zscript/swwm_sparkyboi.zsc @@ -1205,7 +1205,7 @@ Class BiosparkBeam : Actor if ( frame ) c.SetStateLabel("TrailSpawn"); c.roll = Random[Sparkster](0,7)*45; Vector3 tdir = level.Vec3Diff(pos,invoker.nextpos); - int numpt = Random[Sparkster](-1,6); + int numpt = Random[Sparkster](-1,4); for ( int i=0; i= d.HitActor.Health ) dmg += 25; SWWMUtility.DoKnockback(d.HitActor,d.HitDir,48000); dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Explodium',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x)); if ( d.HitActor.bNOBLOOD || d.HitActor.bDORMANT || d.HitActor.bINVULNERABLE ) @@ -815,7 +818,9 @@ Class DualExplodiumGun : SWWMWeapon SWWMBulletTrail.DoTrail(self,origin,dir,10000,2); if ( d.HitType == TRACE_HitActor ) { - int dmg = 25; + int dmg = 10; + // might as well apply explosion on top + if ( dmg >= d.HitActor.Health ) dmg += 25; SWWMUtility.DoKnockback(d.HitActor,d.HitDir,48000); dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Explodium',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x)); if ( d.HitActor.bNOBLOOD || d.HitActor.bDORMANT || d.HitActor.bINVULNERABLE ) diff --git a/zscript/swwm_tastytreat.zsc b/zscript/swwm_tastytreat.zsc index f60322c18..f05abf948 100644 --- a/zscript/swwm_tastytreat.zsc +++ b/zscript/swwm_tastytreat.zsc @@ -375,7 +375,7 @@ Class CandyMagArm : Actor { A_CountDown(); Spawn("CandyMagTrail",pos); - SWWMUtility.DoExplosion(self,100+reactiontime*8,3000+800*reactiontime,80+6*reactiontime); + SWWMUtility.DoExplosion(self,50+reactiontime*4,3000+800*reactiontime,80+6*reactiontime); double spd = vel.length(); vel = (vel*.1+(FRandom[ExploS](-.7,.7),FRandom[ExploS](-.7,.7),FRandom[ExploS](-.7,.7))).unit()*spd; Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); @@ -463,7 +463,7 @@ Class CandyMagArmBig : CandyMagArm { ReactionTime--; Spawn("CandyMagTrailBig",pos); - SWWMUtility.DoExplosion(self,200+reactiontime*20,3000+900*reactiontime,200+16*reactiontime); + SWWMUtility.DoExplosion(self,100+reactiontime*10,3000+900*reactiontime,200+16*reactiontime); double spd = vel.length(); vel = (vel*.1+(FRandom[ExploS](-.5,.5),FRandom[ExploS](-.5,.5),FRandom[ExploS](-.5,.5))).unit()*spd; Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,5); @@ -542,7 +542,7 @@ Class CandyGunProj : Actor A_SetRenderStyle(1.,STYLE_Add); Scale *= 7.+.2*special1; A_AlertMonsters(swwm_uncapalert?0:40000); - SWWMUtility.DoExplosion(self,5000+900*special1,80000+15000*special1,500+30*special1,300,DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,3000+600*special1,80000+15000*special1,500+30*special1,300,DE_EXTRAZTHRUST); A_QuakeEx(9,9,9,70,0,1500+100*special1,"",QF_RELATIVE|QF_SCALEDOWN,falloff:1200,rollintensity:2.); A_StartSound("candygun/gunhit",CHAN_VOICE,attenuation:.24); A_StartSound("candygun/gunhit",CHAN_WEAPON,attenuation:.12); @@ -658,7 +658,7 @@ Class CandyMagProj : Actor A_SetRenderStyle(1.,STYLE_Add); Scale *= 3.+.2*special1; A_AlertMonsters(swwm_uncapalert?0:20000); - SWWMUtility.DoExplosion(self,1000+900*special1,60000+15000*special1,200+20*special1,100,DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,800+600*special1,60000+15000*special1,200+20*special1,100,DE_EXTRAZTHRUST); A_QuakeEx(9,9,9,30,0,500+80*special1,"",QF_RELATIVE|QF_SCALEDOWN,falloff:500,rollintensity:2.); A_StartSound("candygun/maghit",CHAN_VOICE,attenuation:.24); A_StartSound("candygun/maghit",CHAN_WEAPON,attenuation:.12); @@ -753,7 +753,7 @@ Class CandyBulletImpact : Actor { Super.PostBeginPlay(); A_AlertMonsters(swwm_uncapalert?0:9000); - SWWMUtility.DoExplosion(self,1200,48000,250,80,DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,600,48000,250,80,DE_EXTRAZTHRUST); A_QuakeEx(6,6,6,15,0,300,"",QF_RELATIVE|QF_SCALEDOWN,falloff:200,rollintensity:0.2); A_StartSound("candygun/hit",CHAN_VOICE,attenuation:.25); A_StartSound("candygun/hit",CHAN_WEAPON,attenuation:.5); @@ -986,7 +986,9 @@ Class CandyGun : SWWMWeapon SWWMBulletTrail.DoTrail(self,origin,dir,10000,2); if ( d.HitType == TRACE_HitActor ) { - int dmg = 500; + int dmg = 300; + // might as well apply explosion on top + if ( dmg >= d.HitActor.Health ) dmg += 600; SWWMUtility.DoKnockback(d.HitActor,d.HitDir,72000); dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Explodium',DMG_USEANGLE|DMG_THRUSTLESS|DMG_FOILINVUL,atan2(d.HitDir.y,d.HitDir.x)); if ( d.HitActor.bNOBLOOD || d.HitActor.bDORMANT ) diff --git a/zscript/swwm_thiccboolet.zsc b/zscript/swwm_thiccboolet.zsc index b23314bb3..4bd048464 100644 --- a/zscript/swwm_thiccboolet.zsc +++ b/zscript/swwm_thiccboolet.zsc @@ -433,7 +433,7 @@ Class FatChodeImpact : Actor override void PostBeginPlay() { Super.PostBeginPlay(); - SWWMUtility.DoExplosion(self,1500,40000,250,120,DE_THRUWALLS|DE_EXTRAZTHRUST); + SWWMUtility.DoExplosion(self,600,40000,250,120,DE_THRUWALLS|DE_EXTRAZTHRUST); A_AlertMonsters(swwm_uncapalert?0:8000); A_QuakeEx(7,7,7,50,0,2000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:800,rollIntensity:1.); A_StartSound("silverbullet/chode",CHAN_VOICE,CHANF_DEFAULT,1.,.35); @@ -588,8 +588,8 @@ Class FatChodeExplosionArm : Actor Spawn: TNT1 A 1 { - A_CountDown(); - SWWMUtility.DoExplosion(self,20+reactiontime,8000+1500*reactiontime,80+5*reactiontime,50,DE_THRUWALLS); + if ( !(ReactionTime%2) ) + SWWMUtility.DoExplosion(self,10+reactiontime,8000+1500*reactiontime,80+5*reactiontime,50,DE_THRUWALLS); if ( level.IsPointInLevel(pos) ) { A_SprayDecal("HugeRocketBlast",-32); @@ -602,6 +602,7 @@ Class FatChodeExplosionArm : Actor s.scale *= 2.4; s.alpha *= .1+.4*(ReactionTime/15.); } + A_CountDown(); } Wait; } @@ -895,7 +896,10 @@ Class SilverBullet : SWWMWeapon } if ( t.Results.HitType == TRACE_HitActor ) { - int dmg = t.Results.HitActor.DamageMobj(invoker,self,invoker.proneme?1000:500,'shot',DMG_FOILINVUL|DMG_USEANGLE|DMG_THRUSTLESS,atan2(t.Results.HitVector.y,t.Results.HitVector.x)); + int dmg = invoker.proneme?800:600; + // might as well apply explosion on top + if ( dmg >= t.Results.HitActor.Health ) dmg += 600; + dmg = t.Results.HitActor.DamageMobj(invoker,self,dmg,'shot',DMG_FOILINVUL|DMG_USEANGLE|DMG_THRUSTLESS,atan2(t.Results.HitVector.y,t.Results.HitVector.x)); SWWMUtility.DoKnockback(t.Results.HitActor,t.Results.HitVector+(0,0,.025),dmg*20.*FRandom[SilverBullet](.8,1.2)); if ( t.Results.HitActor && !t.Results.HitActor.bNOBLOOD && !t.Results.HitActor.bDORMANT ) { @@ -912,7 +916,7 @@ Class SilverBullet : SWWMWeapon p.target = self; FatChodeImpact(p).realangle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); FatChodeImpact(p).realpitch = asin(-t.Results.HitVector.z); - BusterWall.Bust(t.Results,invoker.proneme?2500:2000,self,t.Results.HitVector,t.Results.HitPos.z); + BusterWall.Bust(t.Results,invoker.proneme?1400:1200,self,t.Results.HitVector,t.Results.HitPos.z); } for ( int i=0; i