From 9a7f7df0634fac7253807b9cc528fde6660e6635 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 27 Sep 2019 00:41:25 +0200 Subject: [PATCH] Impaler has been implemented. Beta testing begins. --- Readme.md | 5 +- gldefs.txt | 29 + maps/TITLEMAP.wad | Bin 1045 -> 1051 bytes modeldef.impaler | 70 +- models/Jiburst1.png | Bin 2933 -> 2887 bytes sndinfo.txt | 1 + sprites/impaler/ICAPA0.png | Bin 0 -> 8005 bytes sprites/impaler/ICAPB0.png | Bin 0 -> 7285 bytes sprites/impaler/ICAPC0.png | Bin 0 -> 7363 bytes sprites/impaler/ICAPD0.png | Bin 0 -> 7223 bytes .../ImpMuz.png => sprites/impaler/IFLAA0.png | Bin 20026 -> 20046 bytes sprites/impaler/IHITA0.png | Bin 0 -> 6897 bytes sprites/impaler/IHITB0.png | Bin 0 -> 6610 bytes sprites/impaler/IHITC0.png | Bin 0 -> 6653 bytes sprites/impaler/IHITD0.png | Bin 0 -> 6435 bytes sprites/impaler/ISPKA0.png | Bin 0 -> 2742 bytes textures.umisc | 7 - zscript/flamegun.zsc | 2 + zscript/impaler.zsc | 680 +++++++++++++++++- zscript/napalm.zsc | 8 +- zscript/stinger.zsc | 2 +- zscript/unrealcommon.zsc | 2 +- 22 files changed, 756 insertions(+), 50 deletions(-) create mode 100644 sprites/impaler/ICAPA0.png create mode 100644 sprites/impaler/ICAPB0.png create mode 100644 sprites/impaler/ICAPC0.png create mode 100644 sprites/impaler/ICAPD0.png rename models/ImpMuz.png => sprites/impaler/IFLAA0.png (98%) create mode 100644 sprites/impaler/IHITA0.png create mode 100644 sprites/impaler/IHITB0.png create mode 100644 sprites/impaler/IHITC0.png create mode 100644 sprites/impaler/IHITD0.png create mode 100644 sprites/impaler/ISPKA0.png diff --git a/Readme.md b/Readme.md index dfe73fe..5207a41 100644 --- a/Readme.md +++ b/Readme.md @@ -3,7 +3,7 @@ The Unreal 1 counterpart to Doom Tournament. Adds Unreal 1 weapons and items (including dummied out stuff and others). -This mod requires GZDoom g4.3pre-79-gbcef44051 or later, and runs on top of +This mod requires GZDoom g4.3pre-125-g021e548db or later, and runs on top of Doom Tournament (currently the devel branch is required). ## Currently Implemented @@ -38,6 +38,7 @@ Doom Tournament (currently the devel branch is required). - Stunner (slot 4) (replaces chainsaw) - Fireblaster (slot 5) (replaces rocket launcher) - Flamethrower (slot 6) (replaces plasma rifle) + - Impaler (slot 7) (replaces plasma rifle) - Peacemaker (slot 8) (rare spawn in backpacks) - Demolisher (slot 9) (replaces bfg9000) - Autocannon (slot 0) (replaces bfg9000) @@ -73,7 +74,7 @@ Doom Tournament (currently the devel branch is required). ## In progress - - Impaler (slot 7) (replaces plasma rifle) + - Beta testing ## Planned diff --git a/gldefs.txt b/gldefs.txt index c863887..3f4c4dc 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -411,6 +411,35 @@ Object UFireballEmber Frame "FIRB" { light "UFLAMGLIGHT3" } } +PointLight IMPALERLIGHT +{ + Color 1.0 0.2 0.8 + Size 50 + Attenuate 1 +} +Object ImpalerProjectile +{ + Frame "TPRJA" { light "IMPALERLIGHT" } +} + +FlickerLight2 IBOLTLIGHT +{ + Color 0.5 0.1 0.5 + Size 40 + SecondarySize 48 + Interval 0.1 + Offset 0 0 20 + Attenuate 1 +} +Object ImpalerBolt +{ + Frame "PBLT" { light "IBOLTLIGHT" } +} +Object StarterImpalerBolt +{ + Frame "PBLT" { light "IBOLTLIGHT" } +} + // Shaders / Brightmaps HardwareShader Texture "graphics/MenuBarr.png" { diff --git a/maps/TITLEMAP.wad b/maps/TITLEMAP.wad index 76cccd02ccd0822b1d8547f86d5102b7de527e12..a09f5d167ae7a4cb1c4d1fd32f26eb3927040479 100644 GIT binary patch delta 176 zcmbQrF`I)kAl%V~m4Sib^hVAUCQe;He>We;5M8Coj!ZiEcpNa5lLeUNRbd<@Yp#;i zijvZz)a2C6oXos*1zQCrnB?Rj=60KMW(I~3*N6~b#{hWoXos*B)Q2E%;M1& diff --git a/modeldef.impaler b/modeldef.impaler index f30c6cd..c5436c2 100644 --- a/modeldef.impaler +++ b/modeldef.impaler @@ -21,12 +21,80 @@ Model "ImpalerAmmo2" FrameIndex IAMO A 0 0 } +Model "ImpalerBurstBolt" +{ + Path "models" + Model 0 "PBolt_d.3d" + Offset 5.0125 0 0 + Scale 0.050125 0.1025 0.123 + AngleOffset 90 + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + + Skin 0 "ibolt0.png" + FrameIndex PBLT A 0 0 + Skin 0 "ibolt1.png" + FrameIndex PBLT B 0 0 + Skin 0 "ibolt2.png" + FrameIndex PBLT C 0 0 + Skin 0 "ibolt3.png" + FrameIndex PBLT D 0 0 + Skin 0 "ibolt4.png" + FrameIndex PBLT E 0 0 +} + +Model "ImpalerBolt" +{ + Path "models" + Model 0 "PBolt_d.3d" + Offset 10.125 0 0 + Scale 0.10125 0.2025 0.243 + AngleOffset 90 + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + + Skin 0 "ibolt0.png" + FrameIndex PBLT A 0 0 + Skin 0 "ibolt1.png" + FrameIndex PBLT B 0 0 + Skin 0 "ibolt2.png" + FrameIndex PBLT C 0 0 + Skin 0 "ibolt3.png" + FrameIndex PBLT D 0 0 + Skin 0 "ibolt4.png" + FrameIndex PBLT E 0 0 +} + +Model "StarterImpalerBolt" +{ + Path "models" + Model 0 "SBolt_d.3d" + Offset 10.125 0 0 + Scale 0.10125 0.2025 0.243 + AngleOffset 90 + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + + Skin 0 "sibolt0.png" + FrameIndex PBLT A 0 0 + Skin 0 "sibolt1.png" + FrameIndex PBLT B 0 0 + Skin 0 "sibolt2.png" + FrameIndex PBLT C 0 0 + Skin 0 "sibolt3.png" + FrameIndex PBLT D 0 0 + Skin 0 "sibolt4.png" + FrameIndex PBLT E 0 0 +} Model "ImpalerChunk" { Path "models" Model 0 "burstx_d.3d" Skin 0 "JIBurst1.png" - Scale 0.2 0.2 0.24 + Scale 0.4 0.4 0.48 USEACTORPITCH USEACTORROLL diff --git a/models/Jiburst1.png b/models/Jiburst1.png index 461625b49a4aef1623fe914e669da49e0c06806a..d498266619a111c038c794e3a6c3acc509be0b69 100644 GIT binary patch delta 2370 zcmew=c3fl$H%eb}4B}gUxq0wdT3mFWRGh9QQtPfuP;`8{yqepj| zi`#2D9k2ae7f3O@sNd)Ou1D>>w}6srJ);-H+(w>ln(_Sy zycnKL{BiD1Rb0;k>oif`e*VJL?SC zV)8alDyezd@NeDhbz%<~BtLjJUvk;8hFyJ|+OnKye2ZkoA{U%9(b0;V%O9%4dSjW^ zy63z?tHcFWZtq@vI8BaGMZ&+{`lfGih+LfN>Yk4tF1P2XKR(D{oMQcFS6P&YKPRmB-0D6j1|{Lsx(;bhyjIJ09lXK2OY`-#%h|$vxlachwBJwu{G2^O zz(D<}YlU)PkM_~)pPwFE@K*1^tElwbFXN8KyE<_!X1Jjj@N44Bx9>8X<=%;&=c;!$ zt8m7K?^}w!_`=dH=sWyj;!6bZ5)KyB&f}oade>F$Ldj*zC7{_v))9XBK~tmfoZCMU>@c$Yx1yUzhCY z(x*=!PvTacxNgP^sp$6O?ZqpsmOH7YX>DiOTYofV<`2u|4|-x3&pvWUp()u{Maza$ zMQ-lbTNcYFH2STm-zzk0cdx`IGTx9h zS>PS}%3Ci(y>Oda#;+;`P@K0oKG^zz!j+ZMAL7jNNkyf3=Hdh5mu z6#_e_Oz&{XE4z1NVzDW+`v=kY`CGe0=biOu_`X?1&gehR!2b1M z zaW(&Wxn*{i=bSwGAgM)p5p%<qEP^2f*fD}H{-cTKQ)*!01Lx#88EV!?VQ)};&z zE&UcJR%J7MnEZ0_lD`k+;_74>_n8Y^pKrg`MuR<&cR9m?GOMDpNU^3)*Np*f_ZHNy zVRSe@>v_p+zTMWd=Sv^je)z>nb5o8~wQTFHHmzaV`?ux1TL0PAuQ}uG!-~=~XWwK^ zQJ8plZSYBVPm%oR$^r)+UMAUX3^#cjP`})8zoa{Zz{_<~t)aF`_BA)udr$D{To#`H zrRwnCM60)-XNxf8Xr+a7s`gx3D;s7eQ15J+{o@J~zSdin~%Eq8Di|tSP;Ujfs%oYi!88-g(o4t#x zfm5;GL&$e=+?VZ9O|2nPTXOnr-K?*EpE^@n&1=u?Uj2PGF#;zenV){nJ(JU-DLs9b zue?%#`_0C)x(%;C-}`c}x%TJ1Jv#GcHB0O-9k1W{z}we^O(}teVcU%8XPYJia|I*CA?ABX9o8N~yy_swpx;plnx5q|TS{t2~UUOx8&b-nP=3P@} zExev=b35bntIf+}LZqZPR=$4ozU1!I+4KFr-s;-NwBhWWR-Ox~){b5Zu1$|-`%6cf z1T19>d7rSq`_ZSL7AobDvG)4PF6Jvc7fNm3WgQT%Z=Wlat!yf_BfOsXzHg=FuU{%H&j(QL(c)@n*@7S2wnwczrIBGeAwt=EsB^ zVy3*@H!CzgD<6+ZQx)N5FuVHaj%#z zYaM5}x$K#?`yAg)zhZeSZ-%DKLN}!-+i&*@r*OGEIwop%BINrn^TNBVYXyVuy`N`U zpEj+|qA&gC@lTIdtaTJMF?bOst$(akc+$17|7o@NpGhvLNDf%M^=8&tfw1U~$v5s- z{cyCOJ12ud<*tj*$zrcZ%?snLWwm>l>eK5)(&ug8_4|0p`pOG6$LqIRUucQby|eY( zp6hwOcdjKQUs@y6{5@caGTR?XuO+j#y|L>2xa(K_^Oyd16-U5>xw*B4=d=N zIV(L=L)%Sy=d;Ewiyk^16=u-zO*Z>>^v93u->XhcI(c=q-=>_UGh%K&`BztX*11ad zdad$x>Axj!*F3LJWl;Vp-=7?Qee%n-X(bzG+FMtDdM;=sl_-{PI?w3oYG=NL3?|jI zU(2U={CueUe95*u5BKcYWw|RysPR#m;aw%pr?Y;X*uuYgzxm(kM{}80eLltfEcN{Y z@f9Yg=VeZO82+w{>)`u|AJ=p$>gT_Cd#*j^hD1gG%j!S&;= z@;Q>He@8lfU2}{>jN!!HxAqfH-eC2rf5P9e)bOu4n?v){!=Dqg85kHCJYD@<);T3K F0RVlgd0PMg delta 2416 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 GGywqD(zd7o diff --git a/sndinfo.txt b/sndinfo.txt index f9658da..cf0fe8c 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -284,6 +284,7 @@ impaler/flesh impflesh impaler/wall impwall impaler/altfire impboltl impaler/hit imphit +impaler/fly impfly impaler/beam ele04 big/select bigmsel diff --git a/sprites/impaler/ICAPA0.png b/sprites/impaler/ICAPA0.png new file mode 100644 index 0000000000000000000000000000000000000000..d1219b70c64e1cb5271e58075d4a9be0dce8f015 GIT binary patch literal 8005 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 S{(>gS89ZJ6T-G@yGywpQFsony literal 0 HcmV?d00001 diff --git a/sprites/impaler/ICAPB0.png b/sprites/impaler/ICAPB0.png new file mode 100644 index 0000000000000000000000000000000000000000..3307382b8f74e597b8c90be1ebf75694e1b04d31 GIT binary patch literal 7285 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 YURFVdQ&MBb@03xzjWB>pF literal 0 HcmV?d00001 diff --git a/models/ImpMuz.png b/sprites/impaler/IFLAA0.png similarity index 98% rename from models/ImpMuz.png rename to sprites/impaler/IFLAA0.png index 4998f11dc45d6ddb82c240112b4cd050c7897835..fb31f9b405f7050ec883fba631a36dbbb3fa8244 100644 GIT binary patch delta 31 kcmdlrhw@i2j!6s*3=JTB?@`>9jf#?f0HJXTHvj+t delta 12 TcmX>%hjG^&#tF(B&BgryBi97O diff --git a/sprites/impaler/IHITA0.png b/sprites/impaler/IHITA0.png new file mode 100644 index 0000000000000000000000000000000000000000..eacfe54285cf78ce125dee472bf3a30ce9ce75eb GIT binary patch literal 6897 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 QrXGmn>FVdQ&MBb@0R30h3jhEB literal 0 HcmV?d00001 diff --git a/sprites/impaler/IHITD0.png b/sprites/impaler/IHITD0.png new file mode 100644 index 0000000000000000000000000000000000000000..152f2326e8051f53842a5608179bef3dd5766e09 GIT binary patch literal 6435 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 KKbLh*2~7ZkHtgd7 literal 0 HcmV?d00001 diff --git a/textures.umisc b/textures.umisc index 2ba867c..3624fe1 100644 --- a/textures.umisc +++ b/textures.umisc @@ -1,10 +1,3 @@ -Texture "BLKNESS",64,64 -{ - Patch "MFLR8_1",0,0 - { - Blend "#000000",1.0 - } -} Sprite "UARMA0",1,1{} Sprite "ASBSA0",1,1{} Sprite "TOXSA0",1,1{} diff --git a/zscript/flamegun.zsc b/zscript/flamegun.zsc index bba4987..30ead6c 100644 --- a/zscript/flamegun.zsc +++ b/zscript/flamegun.zsc @@ -175,6 +175,8 @@ Class UFireball2 : UFireball { Default { + Radius 8; + Height 8; DamageFunction 50; Speed 5; UFireball.SpreadFactor 0.35; diff --git a/zscript/impaler.zsc b/zscript/impaler.zsc index 5ca8b1a..aa51843 100644 --- a/zscript/impaler.zsc +++ b/zscript/impaler.zsc @@ -4,7 +4,7 @@ Class ImpalerAmmo : Ammo { Tag "$T_IMPAMMO"; Inventory.Icon "I_Impale"; - Inventory.PickupMessage "$T_IMPAMMO"; + Inventory.PickupMessage "$I_IMPAMMO"; Inventory.Amount 3; Inventory.MaxAmount 15; Ammo.BackpackAmount 3; @@ -24,13 +24,37 @@ Class ImpalerAmmo2 : ImpalerAmmo Default { Tag "$T_IMPAMMO2"; - Inventory.PickupMessage "$T_IMPAMMO2"; + Inventory.PickupMessage "$I_IMPAMMO2"; Inventory.Amount 1; Ammo.DropAmount 1; +INVENTORY.IGNORESKILL; } } +Class ImpalerSpark : PulseSpark +{ + States + { + Spawn: + ISPK A 1 Bright + { + A_FadeOut(FRandom[Pulse](0.,.15)); + vel *= .96; + } + Wait; + } +} + +Class ViewImpalerSpark : ViewPulseSpark +{ + States + { + Spawn: + ISPK A 1 Bright A_FadeOut(FRandom[Pulse](0.,.15)); + Wait; + } +} + Class ImpalerChunk : StingerChunk { override void Tick() @@ -56,6 +80,444 @@ Class ImpalerBurstLight : PaletteLight } } +Class ImpalerBoltTracer : LineTracer +{ + Actor ignoreme; + Array hitlist; + + override ETraceStatus TraceCallback() + { + if ( Results.HitType == TRACE_HitActor ) + { + if ( Results.HitActor == ignoreme ) return TRACE_Skip; + if ( Results.HitActor.bSHOOTABLE ) + { + let ent = new("HitListEntry"); + ent.hitactor = Results.HitActor; + ent.hitlocation = Results.HitPos; + ent.x = Results.HitVector; + hitlist.Push(ent); + } + return TRACE_Skip; + } + else if ( (Results.HitType == TRACE_HitWall) && (Results.Tier == TIER_Middle) ) + { + if ( !Results.HitLine.sidedef[1] || (Results.HitLine.Flags&(Line.ML_BlockHitscan|Line.ML_BlockEverything)) ) + return TRACE_Stop; + return TRACE_Skip; + } + return TRACE_Stop; + } +} + +Class ImpalerBurstBolt : Actor +{ + Vector3 nextpos, nextdir; + + override void Tick() + { + Super.Tick(); + frame++; + if ( frame >= 5 ) frame = 0; + } + action void A_Trace() + { + let t = new("ImpalerBoltTracer"); + t.hitlist.Clear(); + Vector3 x, y, z; + [x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll); + t.Trace(pos,CurSector,x,11.125,0); + for ( int i=0; i 5 ) return; + let b = Spawn("ImpalerBurstBolt",invoker.nextpos); + b.angle = atan2(invoker.nextdir.y,invoker.nextdir.x); + b.pitch = asin(-invoker.nextdir.z); + b.target = target; + b.special1 = special1+1; + b.frame = frame; + } + Default + { + RenderStyle "Add"; + Obituary "$O_IMPALER1"; + Radius 0.1; + Height 0; + +NOGRAVITY; + +NOCLIP; + +DONTSPLASH; + +INTERPOLATEANGLES; + +NOTELEPORT; + } + States + { + Spawn: + PBLT A 1 Bright; + PBLT A 1 Bright A_Trace(); + PBLT # 1 Bright A_Spread(); + PBLT # 1 Bright A_FadeOut(); + Wait; + Dummy: + PBLT ABCDE -1; + Stop; + } +} + +Class ImpalerBoltHit : Actor +{ + Default + { + RenderStyle "Add"; + Radius 0.1; + Height 0; + +NOGRAVITY; + +NOCLIP; + +DONTSPLASH; + +FORCEXYBILLBOARD; + +NOTELEPORT; + Scale 0.3; + } + States + { + Spawn: + #### ABCD 1 Bright; + Loop; + Dummy: + IHIT ABCD -1; + ICAP ABCD -1; + Stop; + } +} + +Class ImpalerBolt : Actor +{ + const beamsize = 20.25; + + ImpalerBoltTracer t; + ImpalerBolt next; + StarterImpalerBolt start; + Vector3 oldx; + Actor weffect; + + override void OnDestroy() + { + Super.OnDestroy(); + if ( next ) next.Destroy(); + if ( weffect ) weffect.Destroy(); + A_StopSound(CHAN_BODY); + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + t = new("ImpalerBoltTracer"); + if ( !(GetClass() is 'StarterImpalerBolt') ) + A_PlaySound("impaler/beam",CHAN_BODY,.2,true,2.,pitch:.75); + } + void CheckBeam( Vector3 x ) + { + t.HitList.Clear(); + if ( bHITOWNER ) t.ignoreme = null; + else t.ignoreme = target; + t.Trace(pos,cursector,x,beamsize,0); + for ( int i=0; i 500) || (tracer.Health <= 0) ) + { + tracer = null; + closest = 500; + } + } + let bt = BlockThingsIterator.Create(self,closest); + while ( bt.Next() ) + { + let a = bt.Thing; + if ( !a || !a.bSHOOTABLE || !a.bISMONSTER || (a.Health <= 0) || !CheckSight(a) || (start.Hitlist.Find(a) < start.HitList.Size()) ) continue; + Vector3 dirto = level.Vec3Diff(pos,a.Vec3Offset(0,0,a.height/2)); + double dist = dirto.length(); + dirto /= dist; + if ( dirto dot x < .5 ) continue; + if ( dist > closest ) continue; + tracer = a; + closest = dist; + } + if ( tracer ) special1 = 0; + Vector3 normal = -t.Results.HitVector, dir = t.Results.HitVector; + if ( t.Results.HitType == TRACE_HitWall ) + { + normal = (t.Results.HitLine.delta.y,-t.Results.HitLine.delta.x,0).unit(); + if ( t.Results.Side ) normal *= -1; + t.Results.HitLine.RemoteActivate(target,t.Results.Side,SPAC_Impact,t.Results.HitPos); + dir -= 2*normal*(dir dot normal); + } + else if ( t.Results.HitType == TRACE_HitFloor ) + { + if ( t.Results.ffloor ) normal = -t.Results.ffloor.top.Normal; + else normal = t.Results.HitSector.floorplane.Normal; + dir -= 2*normal*(dir dot normal); + } + else if ( t.Results.HitType == TRACE_HitCeiling ) + { + if ( t.Results.ffloor ) normal = -t.Results.ffloor.bottom.Normal; + else normal = t.Results.HitSector.ceilingplane.Normal; + dir -= 2*normal*(dir dot normal); + } + else + { + // why the fuck + t.Results.HitPos = level.Vec3Offset(pos,x*beamsize); + normal *= 0; + } + if ( t.Results.HitType != TRACE_HitNone ) + { + A_SprayDecal("BoltScorch",beamsize+8); + int numpt = Random[Impaler](10,20)*!Random[Impaler](0,2); + for ( int i=0; i 1) ) + { + dirto = level.Vec3Diff(pos,tracer.Vec3Offset(0,0,tracer.height/2)); + distto = dirto.length(); + dirto /= distto; + distto = 1.-clamp(distto*0.1,0.,.9); + } + dir = (x+y*cos(a)*s+z*sin(a)*s+dirto*distto).unit(); + dir = dir*.5+oldx*.5; + oldx = dir; + A_SetAngle(atan2(dir.y,dir.x)); + A_SetPitch(asin(-dir.z)); + CheckBeam(dir); + } + Default + { + RenderStyle "Add"; + Obituary "$O_IMPALER2"; + Radius 0.1; + Height 0; + +NOGRAVITY; + +NOCLIP; + +DONTSPLASH; + +INTERPOLATEANGLES; + +NOTELEPORT; + } + States + { + Spawn: + PBLT # -1 Bright; + Stop; + Dummy: + PBLT ABCDE -1; + Stop; + } +} + +Class ImpalerFlare : Actor +{ + Default + { + RenderStyle "Add"; + Scale 0.02; + Alpha 0.5; + Radius 0.1; + Height 0; + +NOGRAVITY; + +NOCLIP; + +DONTSPLASH; + +INTERPOLATEANGLES; + +NOTELEPORT; + +FORCEXYBILLBOARD; + +ROLLSPRITE; + } + States + { + Spawn: + IFLA A -1 Bright; + Stop; + } +} + +Class StarterImpalerBolt : ImpalerBolt +{ + Array hitlist; + Actor flares[2]; + + override void PostBeginPlay() + { + Super.PostBeginPlay(); + start = self; + flares[0] = Spawn("ImpalerFlare",pos); + flares[1] = Spawn("ImpalerFlare",pos); + oldx = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); + } + override void OnDestroy() + { + Super.OnDestroy(); + if ( flares[0] ) flares[0].Destroy(); + if ( flares[1] ) flares[1].Destroy(); + } + override void Tick() + { + Super.Tick(); + frame++; + if ( frame > 4 ) frame = 0; + if ( isFrozen() ) return; + if ( !target ) + { + Destroy(); + return; + } + Vector3 x, y, z, origin; + bRELATIVETOFLOOR = (target.pos.z <= target.floorz); // hack, but kinda works + if ( target.player ) + { + [x, y, z] = dt_CoordUtil.GetAxes(target.pitch,target.angle,target.roll); + origin = target.Vec2OffsetZ(0,0,target.player.viewz)+15*x+2*y-2.5*z; + } + else origin = target.Vec3Offset(0,0,target.missileheight); + SetOrigin(origin,true); + if ( !flares[0] ) flares[0] = Spawn("ImpalerFlare",pos); + if ( !flares[1] ) flares[1] = Spawn("ImpalerFlare",pos); + flares[1].bRELATIVETOFLOOR = flares[0].bRELATIVETOFLOOR = bRELATIVETOFLOOR; + flares[0].SetOrigin(pos,true); + flares[1].SetOrigin(pos,true); + flares[0].roll += 15.; + flares[1].roll += 5.; + flares[0].A_SetScale(0.01+cos(gametic*8)*0.002); + flares[1].A_SetScale(0.02+cos(gametic*8)*0.004); + double a = FRandom[Impaler](0,360), s = FRandom[Impaler](0.,.1); + [x, y, z] = dt_CoordUtil.GetAxes(target.pitch,target.angle,target.roll); + Vector3 dir = (x+cos(a)*y*s+sin(a)*z*s).unit(); + dir = oldx*.5+dir*.5; + oldx = dir; + A_SetAngle(atan2(dir.y,dir.x)); + A_SetPitch(asin(-dir.z)); + hitlist.Clear(); + CheckBeam((cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch))); + } +} + Class ImpalerProjectile : Actor { Default @@ -70,20 +532,28 @@ Class ImpalerProjectile : Actor +EXPLODEONWATER; +FORCERADIUSDMG; +NODAMAGETHRUST; + +INTERPOLATEANGLES; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + A_PlaySound("impaler/fly",CHAN_BODY,1.,true,2.); } action void A_ImpalerHit() { + A_StopSound(CHAN_BODY); bFORCEXYBILLBOARD = true; scale *= 2.+special1*0.01; A_AlertMonsters(); A_SetRenderStyle(1.,STYLE_Add); A_NoGravity(); - A_Explode(90+special1,120+special1/2); - UTMainHandler.DoBlast(self,120+special1/2,40000); - A_QuakeEx(2,2,2,5,0,250+special1/2,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120+special1/2,rollintensity:0.2); + A_Explode(50+special1/2,120+special1/5); + UTMainHandler.DoBlast(self,120+special1/5,40000); + A_QuakeEx(2,2,2,5,0,250+special1/5,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120+special1/2,rollintensity:0.2); A_PlaySound("impaler/hit",CHAN_VOICE); - A_SprayDecal("WallCrack",20); - Spawn("ImpalerBurstLight",pos); + A_SprayDecal("ShockMark",20); + let l = Spawn("ImpalerBurstLight",pos); + l.Args[3] += special1/5; double ang, pt; int numpt = Random[Impaler](4,8); for ( int i=0; i 80 ) + { + numpt = special1/90; + for ( int i=0; i 120 ) + { + numpt = special1/120; + for ( int i=0; i 0) ) { weap.DepleteAmmo(false,true,1); invoker.ClipCount = invoker.default.ClipCount; } A_Overlay(-3,"GemUp"); A_Overlay(-2,"ZapUp"); - A_OverlayFlags(-2,PSPF_RenderStyle|PSPF_Alpha,true); + A_OverlayFlags(-2,PSPF_RenderStyle|PSPF_ForceStyle|PSPF_Alpha|PSPF_ForceAlpha,true); A_OverlayRenderStyle(-2,STYLE_Add); A_PlaySound("impaler/gem",CHAN_WEAPON,looping:true); } else { - A_Overlay(-3,"GemDown"); - A_Overlay(-2,"ZapDown"); + player.SetPSprite(-3,invoker.FindState("GemDown")); + player.SetPSprite(-2,invoker.FindState("ZapDown")); A_PlaySound("impaler/gemdown",CHAN_WEAPON); } if ( self is 'UTPlayer' ) UTPlayer(self).PlayReloading(); @@ -372,8 +991,8 @@ Class Impaler : UnrealWeapon IMPG A 0 { invoker.HasGem = false; - A_Overlay(-3,"GemDown"); - A_Overlay(-2,"ZapDown"); + player.SetPSprite(-3,invoker.FindState("GemDown")); + player.SetPSprite(-2,invoker.FindState("ZapDown")); A_PlaySound("impaler/gemdown",CHAN_WEAPON); } IMPG ABCDE 2; @@ -418,12 +1037,5 @@ Class Impaler : UnrealWeapon ZapAltRelease: IMZA QRSTUVWX 2 Bright; Goto ZapIdle; - MuzzleFlash: - IMFF A 3 Bright - { - let l = Spawn("ImpalerLight",pos); - l.target = self; - } - Stop; } } diff --git a/zscript/napalm.zsc b/zscript/napalm.zsc index 595509b..5386458 100644 --- a/zscript/napalm.zsc +++ b/zscript/napalm.zsc @@ -213,9 +213,9 @@ Class UFlame : Actor { let s = Spawn("UTSmoke",pos); s.vel = (FRandom[FlameT](-0.2,0.2),FRandom[FlameT](-0.2,0.2),FRandom[FlameT](-0.2,0.2)); - s.vel += vel*0.6; + s.vel += vel*0.3; s.alpha *= alpha*4; - s.scale = scale*(.5+GetAge()/6.); + s.scale *= 0.5+abs(scale.x)*(.5+GetAge()/6.); Destroy(); return; } @@ -223,9 +223,9 @@ Class UFlame : Actor { let s = Spawn("UTSmoke",pos); s.vel = (FRandom[FlameT](-0.2,0.2),FRandom[FlameT](-0.2,0.2),FRandom[FlameT](-0.2,0.2)); - s.vel += vel*0.6; + s.vel += vel*0.3; s.alpha *= alpha*4; - s.scale = scale*(.5+GetAge()/6.); + s.scale *= 0.5+abs(scale.x)*(.5+GetAge()/6.); } if ( bAMBUSH ) return; if ( Random[FlameT](0,int(20*((default.alpha+0.1)-alpha))) ) return; diff --git a/zscript/stinger.zsc b/zscript/stinger.zsc index c359e4e..d4d2a88 100644 --- a/zscript/stinger.zsc +++ b/zscript/stinger.zsc @@ -277,7 +277,7 @@ Class TarydiumDebuff : Thinker void BlowUp() { reentrant = true; - let b = victim.Spawn("TarydiumExplosion",victim.Vec3Offset(0,0,victim.height/2)); + let b = victim.Spawn("TarydiumExplosion",victim.Vec3Offset(0,0,victim.default.height/2)); b.target = instigator; b.special1 = amount; b.scale *= 1.+min(1.5,amount*0.02); diff --git a/zscript/unrealcommon.zsc b/zscript/unrealcommon.zsc index 633958d..2907fd4 100644 --- a/zscript/unrealcommon.zsc +++ b/zscript/unrealcommon.zsc @@ -196,7 +196,7 @@ Class UPlayer : UTPlayer let dsp = DispersionPistol(FindInventory('DispersionPistol')); if ( dsp ) { - dsp.Ammo1.MaxAmount = 90; + dsp.Ammo1.Amount = dsp.Ammo1.MaxAmount = 90; if ( (player.ReadyWeapon == dsp) && (player.PendingWeapon == WP_NOCHANGE) ) dsp.pendingupgrade = 4; else