From 0a7587a19f2438d9d05e5764c11bcb40caaba11c Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Wed, 30 May 2018 14:21:15 +0200 Subject: [PATCH] Rocket Launcher has been added, and with that (and a couple more tweaks) this mod is ready for the public beta stage (as soon as coelckers/gzdoom#495 is merged). --- modeldef.eightball | 10 +- readme.txt | 10 +- sndinfo.txt | 1 + sounds/RcktFly1.ogg | Bin 10439 -> 7963 bytes textures.eightball | 4 +- textures.enforcer | 2 +- zscript/eightball.zsc | 300 +++++++++++++++++++++++++++++++++++++-- zscript/flakcannon.zsc | 14 +- zscript/pulsegun.zsc | 4 +- zscript/shockrifle.zsc | 8 +- zscript/translocator.zsc | 2 +- 11 files changed, 316 insertions(+), 39 deletions(-) diff --git a/modeldef.eightball b/modeldef.eightball index 53ef201..9250963 100644 --- a/modeldef.eightball +++ b/modeldef.eightball @@ -27,10 +27,11 @@ Model "UTGrenade" Path "models" Model 0 "UTRocket_d.3d" Skin 0 "JuRocket1.png" - Scale 0.07 0.0822 0.09864 + Offset 0 0 1.4796 + Scale 0.0822 0.0822 0.09864 USEACTORPITCH USEACTORROLL - AngleOffset -90 + AngleOffset 90 FrameIndex RCKT A 0 0 } @@ -39,10 +40,11 @@ Model "UTRocket" Path "models" Model 0 "UTRocket_d.3d" Skin 0 "JuRocket1.png" - Scale 0.07 0.0822 0.09864 + Offset 10.175 0 1.4796 + Scale 0.0822 0.0822 0.09864 USEACTORPITCH USEACTORROLL - AngleOffset -90 + AngleOffset 90 FrameIndex RCKT B 0 1 } diff --git a/readme.txt b/readme.txt index 21bff4a..be7d5d6 100644 --- a/readme.txt +++ b/readme.txt @@ -38,14 +38,10 @@ Currently implemented: - Jump Boots (radsuit, has "iron boots" powerup effect to compensate) - Minigun (slot 7) - Sniper Rifle (slot 0) + - Rocket Launcher (slot 9) In progress: - - Rocket Launcher (slot 9) - -Things to do eventually: - - - Trim out unused animations. - Add some more effects, maybe some nicer recoil on guns too. - - Unreal 1 weapons? - - Think of what item(s) the jump boots can replace. + - General polishing and bugfixing. + - Trim out unused animations. diff --git a/sndinfo.txt b/sndinfo.txt index 2d156dc..5b219a9 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -219,6 +219,7 @@ utrl/seeklock seeklock utrl/seeklost seeklost utrl/fly rcktfly1 utrl/explode expl2 +utrl/bounce hit1 sniper/select riflepck sniper/fire sniperf diff --git a/sounds/RcktFly1.ogg b/sounds/RcktFly1.ogg index c0c6c588a683df102c1702669665d48e6887064e..183f936e986aafea3150012c1e39a14948097225 100644 GIT binary patch delta 4335 zcmX>eINMIjKRrE|fr$YMo&`<-vt!@Rwwx%X#{=RsGB7ZBGhF$+F+`WIo+Zf?q7)

h6`n{~U_ zE!^@v`n+L#q4b|`ffDu7Q<4@1f4Vo@{nRv@6B&Doig%TS?!Fqj?Afn3+1tl3xcRQ`*6U%{H}3uUqwaV8tI4_C z2Y*=2_>drwJ!|(at0|Mcax3u_!x(qA=ci)unTy5N3x+=~&$<^?7 zh5EJ|uG4Dw*t;ifeYDZL_e0eKpO?Gl_EBAb^tuDC9bn2}dV^he5Zyo*n|NpE1%j&MSfAgc#=q%-y>*af=g!^vw^=vy6 z>6uX-rTlB=)_>1GXLN>^t0!KJpPGI3$|qZYj<>?IzovaqH(_Ad_s3)oGsA`F`%-axkbBmpG17TV$-`>^;^Au_V0Z^fBV0;P~D$o zY_hfGn4`tk7w1-gG)y_6>G+#}?(C>brPcX0K?m(VJLX-#k-WpkZl&<)4ThzY%|2gv z_18S}(1)Jhc?}&6e>WBTNUEzcFx2U&9$;XInEzOQ@3(0Q5*w1YUo3J`KQq2EX3za&!F4vLyh>MHv3=E=xXL_f*80om zB4YYxOZa3jzW6}epfbB^X(LyC;H+{^=_eJTw_gg2uGhL=B~irYqHI1xS<3ljmW5T^ zk(=A*uRM7)^Y+{`d*8V$ZDnJSlUd5Zz;I1=bM=>kDi5}_o*9{83;*ot3bd}@@$ymW zq3hR9iJX-74u0Zj+Pu5P(|OlPdrQHjcNQy`)f_pq?3UW2FN*DjF;k!Nsd8RhkT@xA zk@fOh!83my?*5#0-?X~OV&%^*KikTF{#%{xzjaS;=c>QQdLMS&+HSJ7I6X{D`(du` zi--AAhF)T8&XkwtnCmd?+v6g_z@YYbYgBzh;8C3`J6?8f367nbbxq=QR=1|@v@e^M zhh1N_LU96r=h^+olvds<_2W78+WJCKx9Hmw!Yn>_s-kWmZGLuFQS4E4tK5?77P7Y5 znbY_GSUUgLm5DZktKKVCTgcj2pFbKf$qbUypjt$WRdsa5^!;@8)&m3wAmdv`X+ z$I@oj8twY8s@LuQ?rYm4!Z7cR%K>hN1KW}luWp~$q+q-pF zxnqxoitX7e7VMidI{y5bqq^oid#uxcxg(snssoOR@TjLOQc(44ztDR&ch2EV!EGl$ z7&=UpR(!xJ^FwB$)6GZ1eD$Th`IV{uPo~GpfAP#|x#Hs~kS%l}=o>p}K?W`?k;jRa@ zy)G2}J{fP7sr#i{C~WQ-R}0UqS8m3+Rqe}sebc6IPPnbhvv}3)vU2A+7x*{VN9W!O z@ceV-LeycW@aJzbrNbPxk0>y$zI#+L$L33{wx*4Pi?~#GMx?l>mW=%=gWHT*>=PX; z?=>+oi1FsyGB6nIQ*DrTno+ss2kOSv}p=45G~%n-=#cz?=&a(#z-^_P?U(UR+0&%L;L`)E{N!gkGT7hj*r zi!kl=tKH|FFBAXnc4?OgmJ&N+skZ$aIJ*G(6%?OghhH*~LCLGO;hy^puH zrg1Vb^msE&vbSm#IK%OROVQ1#eAcc_QP0k4@AK8^mAZPfh=-vej4Rc=INU7nqRDZ~ zx*Z4Wcb>h^tMmNoq9^^c&Yn6~Dz|ajhqAPwn>%(|$;9dXH8ws~s3$Fayu>%|*o&kX zk&Tg$CmG7V5!{{W94jSq~#{CG!*7& zmYP@kB`ZF8lWeqN``$zKhx4ZE?Uk<%(AO$;-5nA2_1@2b&DrlHY(?853U|zxVW?Uo zBF4MGvEcW&l-Q10GCn6#!bE1DSlaiwZLadl)!olteku_XcmxXJy*jX z1*;S;ayb-hpLBel;nKaImd7ri{QO^Lo}b0EtIvhb<*)k^YsY?@weEgbg6`|TnQ==Q z%d%wn|9|^mf4N0+nfdJ_6Q3b*S#xcxE=rU%N6O5wZYeag&dlGNzJxJuDO}>o35UE^35gtF0Z+^p!1zK z_mzwORkCjDZ+e!ySe{+2oq8l{=CT}_zzyf-F~#w)T$NxhJ1y7y%5H0q?t9y{uX)n?XJPw&-=y=tIrZOLgKODy zhwI*xUQ4d-`61HIETw&NotsFUQkB!O)Gn*j-=-CBIr+ExNly3b%J3JNvfJOk%aA$2 zbbHF>&aN|O-n8s^DzruUZgcIw-*Y{<>$7KYG2G)(Js`z!U_)Mm zk@Bf6Nd;y_KfWnMsowU0 z3(ExeSjpZuG4K=1I4qFAFzU$XQ>Ct6-X6d zSx>KLf7mgtVtGf+a_2|&x`k8n)jjXM-~9TnJ;OboR0ko31^V_`2hL0}ylX4)d*1Hy zPyUOO^G&Bd%%8RU^}Wc?8krm4&WZcx{li^J?T_x77(G_j+3x#_Bbr}0YfHD;PL=SB z=6mC=v(#;(1=kw)yvdWl+NA8skkI_U@$b5`?@O<^7VMUlP1U)2LeB7A`L=rB|7&)8 ztJ=<-&a~`ZasI|76MZIZIm^Q^?+i-=w%W-nUwt7%G@p5Vlmg-dv| zlh3FLgg&d559)C)%k`+f#^G82CvUBIZoSWD#globzTR5kI#oefI&a#WyjzdXFZ1B= zx-VKRWp}hUlA&%5%PB^d1G{ehUAw16Mv)=;)R|Yi!XF1~{rk|{skwQj>&}FBjPlilv-{%wu$J3C=-_?=J1jGMCO7Hv)! zVX!;1i5fsx2n5-h}iEDGly-^xnTFT3SaJi{QY+}%Z3m2Atke=RxK#ui*DE_=Ci6Q z=x14zruO$~Ctq!x`nR@XPHkJ;E1PFuEP~5IXBF<*)l>D}t0$>f9?oZe*xIPKTD?keXlq7(euwimuDTQ{+p4rv8Jg0xyPm4ZTb2}#YDK5?qO_vnc~K$ zEX)1!&*v#&Wn16QwfT3)R)6a~!EPO|8(D%|Itv1Aif=gm4-`_}c;YWKFz z`r47BZ|djmdT~`s^;*}r^1N+*$~UY0cx;SPSG#Yy@3Fyp9*2qf*L`)ScTc^0w`@*o zO!A+^cV3LX`^6KAk9~OLP&zXz?&1yEo+ZGDxQ=QZTEi>2U%Xn z?=??99k{V$hVnr-Q2YCjkFG6)l)<#}ZUxD}p3L&J^}FgP%644bv!+6Tt9tWkbNd~) z`F}hV;O{Ct`8o5#@5g@~oJAIytyWs5HsN%!u;H{gLxYrly(eFs6%t;od!u*RCc8e~ zJ)BGRHm~}-$(wJSe<)(`wLCf5{Au}}_4ht?9kj`F+qgT%X^F_c|8@JHzu#x1e}YBp zhG3<4O3cmM+U)8KbLs=_xHVXOcCC0X^JU-7mdwQexja6iXq z7W5vyUXaZ!zL`BWxpm#;2)3~G>!iF(nV+zB3NGGaxzljx19idQ>(vbl-`NWk>x@vg+w3+T(v+yr(>r+o|Puz94 zvFu>5diLdaEPMM}> zK2_7Mcaj6(99hO06ukc2~_- n?RV!nE|>jDOtL=gb655FS>vzC{!#BA{kT#Qp}FoocQ^w8?qZI1 delta 6830 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 diff --git a/textures.eightball b/textures.eightball index 73c0c79..76fc810 100644 --- a/textures.eightball +++ b/textures.eightball @@ -179,4 +179,6 @@ Sprite "EBLDG0",1,1{} Sprite "EBLDH0",1,1{} Sprite "EBLDI0",1,1{} Sprite "EBLDJ0",1,1{} -Sprite "EBLDK0",1,1{} \ No newline at end of file +Sprite "EBLDK0",1,1{} +Graphic "XHAIRS99",16,16{} +Graphic "XHAIRB99",16,16{} diff --git a/textures.enforcer b/textures.enforcer index b8fbc9c..f141b8a 100644 --- a/textures.enforcer +++ b/textures.enforcer @@ -257,4 +257,4 @@ Sprite "BIMPA0",1,1{} Sprite "BIMPB0",1,1{} Sprite "BIMPC0",1,1{} Sprite "BIMPD0",1,1{} -Sprite "BIMPE0",1,1{} +Sprite "BIMPE0",1,1{} \ No newline at end of file diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc index bbc8be1..fc8c1e8 100644 --- a/zscript/eightball.zsc +++ b/zscript/eightball.zsc @@ -36,45 +36,236 @@ Class UTRocketAmmo2 : UTRocketAmmo } } +Class RocketLight : DynamicLight +{ + Default + { + DynamicLight.Type "Point"; + Args 255,224,128,32; + } + override void Tick() + { + Super.Tick(); + if ( !target ) + { + Destroy(); + return; + } + SetOrigin(target.pos,true); + } +} + +Class UTRocketTrail : Actor +{ + Default + { + RenderStyle "Add"; + Radius 0.1; + Height 0; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + +FORCEXYBILLBOARD; + Scale 0.2; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + let l = Spawn("RocketLight",pos); + l.target = self; + } + override void Tick() + { + Super.Tick(); + if ( !target || target.InStateSequence(target.CurState,target.FindState("Death")) ) + { + Destroy(); + return; + } + SetOrigin(target.pos,true); + } + States + { + Spawn: + RFLA A -1 Bright; + Stop; + } +} + +Class RocketExplLight : SlugLight +{ + Default + { + Args 255,224,128,120; + } +} + Class UTRocket : Actor { Default { Obituary "%o was smacked down by %k's Rocket Launcher."; + DamageFunction Random[Eightball](70,80); + DamageType 'RocketDeath'; + Radius 2; + Height 0; + Speed 30; + PROJECTILE; + +SKYEXPLODE; + +SEEKERMISSILE; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + let l = Spawn("UTRocketTrail",pos); + l.target = self; + A_PlaySound("utrl/fly",CHAN_VOICE,1.0,true,2.5); + } + action void A_RocketExplode() + { + bFORCEXYBILLBOARD = true; + A_SetRenderStyle(1.0,STYLE_Add); + A_SprayDecal("RocketBlast",150); + A_NoGravity(); + A_SetScale(0.75); + A_Explode(Random[Eightball](60,70),200); + A_QuakeEx(3,3,3,8,0,300,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2); + A_PlaySound("utrl/explode",CHAN_VOICE); + A_AlertMonsters(); + Spawn("RocketExplLight",pos); + int numpt = Random[Eightball](15,30); + for ( int i=0; i 2000 ) continue; + if ( reldir.unit() dot viewdir < 0.99 ) continue; + if ( reldist < closest ) + { + closest = reldist; + invoker.LockedTarget = a; + } + } + if ( invoker.LockedTarget ) A_PlaySound("utrl/seeklock",CHAN_6); + else if ( invoker.LockedOn ) A_PlaySound("utrl/seeklost",CHAN_6); + if ( invoker.LockedTarget ) invoker.LockedOn = true; } Default @@ -134,14 +402,26 @@ Class UTRocketLauncher : UTWeapon Idle: EBLI A 1 { + invoker.locktics = 0; A_CheckReload(); A_WeaponReady(); } + EBLI A 1 + { + A_CheckReload(); + A_WeaponReady(); + invoker.locktics++; + if ( invoker.locktics > 42 ) + { + invoker.locktics = 0; + A_CheckTarget(); + } + } Wait; Fire: AltFire: // one is loaded already - EBLI A 3 A_LoadRocket(); + EBLI A 3 A_LoadRocket(false); EBLI A 0 A_LoadedRefire(1); Goto FireOne; // load two diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index a63365e..4b4b310 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -68,10 +68,6 @@ Class ChunkLight : DynamicLight DynamicLight.Type "Point"; Args 255,224,128,8; } - override void PostBeginPlay() - { - Super.PostBeginPlay(); - } override void Tick() { Super.Tick(); @@ -146,7 +142,7 @@ Class FlakChunk : Actor { Obituary "%o was ripped to shreds by %k's Flak Cannon."; Radius 2; - Height 2; + Height 0; Speed 50; DamageFunction Random[Flak](12,18); DamageType 'Shredded'; @@ -365,13 +361,13 @@ Class FlakSlug : Actor { Obituary "%o was ripped to shreds by %k's Flak Cannon."; DamageType 'FlakDeath'; - Radius 4; - Height 4; + DamageFunction Random[Flak](60,80); + Radius 2; + Height 0; Speed 40; PROJECTILE; -NOGRAVITY; +SKYEXPLODE; - +FORCERADIUSDMG; +HITTRACER; } override void PostBeginPlay() @@ -398,7 +394,7 @@ Class FlakSlug : Actor A_SprayDecal("RocketBlast",150); A_NoGravity(); A_SetScale(1.2); - A_Explode(Random[Flak](60,80),150); + A_Explode(Random[Flak](40,60),150); A_QuakeEx(4,4,4,8,0,200,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.2); A_PlaySound("flak/explode",CHAN_VOICE); A_AlertMonsters(); diff --git a/zscript/pulsegun.zsc b/zscript/pulsegun.zsc index 0ca5b6e..80e3a04 100644 --- a/zscript/pulsegun.zsc +++ b/zscript/pulsegun.zsc @@ -98,8 +98,8 @@ Class PulseBall : Actor PROJECTILE; Scale 0.2; Speed 30; - Radius 4; - Height 4; + Radius 2; + Height 0; } override void PostBeginPlay() { diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 858779d..8f1cabd 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -814,8 +814,8 @@ Class ShockBall : Actor Obituary "%k inflicted mortal damage upon %o with the Shock Rifle"; RenderStyle "Add"; DamageType 'jolted'; - Radius 4; - Height 4; + Radius 2; + Height 0; Scale 0.4; Speed 20; PROJECTILE; @@ -876,8 +876,8 @@ Class SuperShockBall : Actor Obituary "%k electrified %o with the Enhanced Shock Rifle."; RenderStyle "Add"; DamageType 'jolted'; - Radius 4; - Height 4; + Radius 2; + Height 0; Scale 0.5; Speed 25; PROJECTILE; diff --git a/zscript/translocator.zsc b/zscript/translocator.zsc index 14c52ed..118b45d 100644 --- a/zscript/translocator.zsc +++ b/zscript/translocator.zsc @@ -119,7 +119,7 @@ Class TranslocatorModule : Actor Default { Radius 2; - Height 2; + Height 0; Speed 25; PROJECTILE; -NOGRAVITY;