diff --git a/cvarinfo.txt b/cvarinfo.txt index 11b7961..e1d998c 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -17,3 +17,4 @@ user bool flak_showinfo = true; user float flak_hudsize = 1.0; // 0.2 <-> 1.0 in steps of 0.2 (default 1.0) user float flak_weaponsize = 0.8; // 0.2 <-> 1.0 in steps of 0.2 (default 0.8) user float flak_statussize = 1.0; // 0.5 <-> 1.5 in steps of 0.1 (default 1.0) +user bool flak_footsteps = true; diff --git a/menudef.txt b/menudef.txt index 34a06db..fa48fbd 100644 --- a/menudef.txt +++ b/menudef.txt @@ -36,6 +36,9 @@ OptionMenu "UTOptionMenu" Option "Color Choice", "flak_colorprefs", "ColorPrefs" ColorPicker "Custom Color", "flak_colorcustom" Slider "HUD Opacity", "flak_opacity", 1, 16, 1, 0 + StaticText " " + StaticText "Misc Options", "Gold" + Option "UT Footsteps", "flak_footsteps", "YesNo" } AddOptionMenu "OptionsMenu" diff --git a/sndinfo.txt b/sndinfo.txt index 4c55933..1a5bc75 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -92,6 +92,9 @@ ut/playerfootstep2 stone04 ut/playerfootstep3 stone05 $random ut/playerfootstep { ut/playerfootstep1 ut/playerfootstep2 ut/playerfootstep3 } +ut/playerfootstepwet lsplash +ut/wetsplash dsplash + // everything else misc/secret capsound diff --git a/sounds/DSplash.ogg b/sounds/DSplash.ogg new file mode 100644 index 0000000..8fd7047 Binary files /dev/null and b/sounds/DSplash.ogg differ diff --git a/sounds/LSplash.ogg b/sounds/LSplash.ogg new file mode 100644 index 0000000..50184b8 Binary files /dev/null and b/sounds/LSplash.ogg differ diff --git a/sprites/ABALA0.png b/sprites/ASMBA0.png similarity index 100% rename from sprites/ABALA0.png rename to sprites/ASMBA0.png diff --git a/sprites/ABALB0.png b/sprites/ASMBB0.png similarity index 100% rename from sprites/ABALB0.png rename to sprites/ASMBB0.png diff --git a/sprites/ABALC0.png b/sprites/ASMBC0.png similarity index 100% rename from sprites/ABALC0.png rename to sprites/ASMBC0.png diff --git a/sprites/ABALD0.png b/sprites/ASMBD0.png similarity index 100% rename from sprites/ABALD0.png rename to sprites/ASMBD0.png diff --git a/sprites/AEXPA0.png b/sprites/ASMXA0.png similarity index 100% rename from sprites/AEXPA0.png rename to sprites/ASMXA0.png diff --git a/sprites/AEXPB0.png b/sprites/ASMXB0.png similarity index 100% rename from sprites/AEXPB0.png rename to sprites/ASMXB0.png diff --git a/sprites/AEXPC0.png b/sprites/ASMXC0.png similarity index 100% rename from sprites/AEXPC0.png rename to sprites/ASMXC0.png diff --git a/sprites/AEXPD0.png b/sprites/ASMXD0.png similarity index 100% rename from sprites/AEXPD0.png rename to sprites/ASMXD0.png diff --git a/sprites/AEXPE0.png b/sprites/ASMXE0.png similarity index 100% rename from sprites/AEXPE0.png rename to sprites/ASMXE0.png diff --git a/sprites/AEXPF0.png b/sprites/ASMXF0.png similarity index 100% rename from sprites/AEXPF0.png rename to sprites/ASMXF0.png diff --git a/sprites/AEXPG0.png b/sprites/ASMXG0.png similarity index 100% rename from sprites/AEXPG0.png rename to sprites/ASMXG0.png diff --git a/sprites/AEXPH0.png b/sprites/ASMXH0.png similarity index 100% rename from sprites/AEXPH0.png rename to sprites/ASMXH0.png diff --git a/sprites/AEXPI0.png b/sprites/ASMXI0.png similarity index 100% rename from sprites/AEXPI0.png rename to sprites/ASMXI0.png diff --git a/sprites/AEXPJ0.png b/sprites/ASMXJ0.png similarity index 100% rename from sprites/AEXPJ0.png rename to sprites/ASMXJ0.png diff --git a/sprites/AEXPK0.png b/sprites/ASMXK0.png similarity index 100% rename from sprites/AEXPK0.png rename to sprites/ASMXK0.png diff --git a/sprites/AEXPL0.png b/sprites/ASMXL0.png similarity index 100% rename from sprites/AEXPL0.png rename to sprites/ASMXL0.png diff --git a/sprites/REXPA0.png b/sprites/RIPXA0.png similarity index 100% rename from sprites/REXPA0.png rename to sprites/RIPXA0.png diff --git a/sprites/REXPB0.png b/sprites/RIPXB0.png similarity index 100% rename from sprites/REXPB0.png rename to sprites/RIPXB0.png diff --git a/sprites/REXPC0.png b/sprites/RIPXC0.png similarity index 100% rename from sprites/REXPC0.png rename to sprites/RIPXC0.png diff --git a/sprites/REXPD0.png b/sprites/RIPXD0.png similarity index 100% rename from sprites/REXPD0.png rename to sprites/RIPXD0.png diff --git a/sprites/REXPE0.png b/sprites/RIPXE0.png similarity index 100% rename from sprites/REXPE0.png rename to sprites/RIPXE0.png diff --git a/sprites/REXPF0.png b/sprites/RIPXF0.png similarity index 100% rename from sprites/REXPF0.png rename to sprites/RIPXF0.png diff --git a/sprites/REXPG0.png b/sprites/RIPXG0.png similarity index 100% rename from sprites/REXPG0.png rename to sprites/RIPXG0.png diff --git a/sprites/SBALA0.png b/sprites/SSMBA0.png similarity index 100% rename from sprites/SBALA0.png rename to sprites/SSMBA0.png diff --git a/sprites/SBALB0.png b/sprites/SSMBB0.png similarity index 100% rename from sprites/SBALB0.png rename to sprites/SSMBB0.png diff --git a/sprites/SBALC0.png b/sprites/SSMBC0.png similarity index 100% rename from sprites/SBALC0.png rename to sprites/SSMBC0.png diff --git a/sprites/SBALD0.png b/sprites/SSMBD0.png similarity index 100% rename from sprites/SBALD0.png rename to sprites/SSMBD0.png diff --git a/sprites/SEXPA0.png b/sprites/SSMXA0.png similarity index 100% rename from sprites/SEXPA0.png rename to sprites/SSMXA0.png diff --git a/sprites/SEXPB0.png b/sprites/SSMXB0.png similarity index 100% rename from sprites/SEXPB0.png rename to sprites/SSMXB0.png diff --git a/sprites/SEXPC0.png b/sprites/SSMXC0.png similarity index 100% rename from sprites/SEXPC0.png rename to sprites/SSMXC0.png diff --git a/sprites/SEXPD0.png b/sprites/SSMXD0.png similarity index 100% rename from sprites/SEXPD0.png rename to sprites/SSMXD0.png diff --git a/sprites/SEXPE0.png b/sprites/SSMXE0.png similarity index 100% rename from sprites/SEXPE0.png rename to sprites/SSMXE0.png diff --git a/sprites/SEXPF0.png b/sprites/SSMXF0.png similarity index 100% rename from sprites/SEXPF0.png rename to sprites/SSMXF0.png diff --git a/sprites/SEXPG0.png b/sprites/SSMXG0.png similarity index 100% rename from sprites/SEXPG0.png rename to sprites/SSMXG0.png diff --git a/sprites/SEXPH0.png b/sprites/SSMXH0.png similarity index 100% rename from sprites/SEXPH0.png rename to sprites/SSMXH0.png diff --git a/sprites/SEXPI0.png b/sprites/SSMXI0.png similarity index 100% rename from sprites/SEXPI0.png rename to sprites/SSMXI0.png diff --git a/sprites/SEXPJ0.png b/sprites/SSMXJ0.png similarity index 100% rename from sprites/SEXPJ0.png rename to sprites/SSMXJ0.png diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index d8a854b..88d1c6d 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -43,7 +43,7 @@ Class BioSpark : Actor { RenderStyle "Add"; Radius 2; - Height 0; + Height 2; +NOBLOCKMAP; +FORCEXYBILLBOARD; +MISSILE; @@ -52,6 +52,9 @@ Class BioSpark : Actor +ROLLSPRITE; +ROLLCENTER; +NOTELEPORT; + +DONTSPLASH; + -BOUNCEAUTOOFF; + +BOUNCEAUTOOFFFLOORONLY; BounceType "Doom"; BounceFactor 0.5; WallBounceFactor 0.5; @@ -350,6 +353,7 @@ Class BioGel : Actor PROJECTILE; -NOGRAVITY; +SKYEXPLODE; + +EXPLODEONWATER; +FORCERADIUSDMG; +FORCEXYBILLBOARD; +MOVEWITHSECTOR; diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc index 753f76e..e54e4f8 100644 --- a/zscript/eightball.zsc +++ b/zscript/eightball.zsc @@ -112,6 +112,7 @@ Class UTRocket : Actor Speed 30; PROJECTILE; +SKYEXPLODE; + +EXPLODEONWATER; +SEEKERMISSILE; } override void PostBeginPlay() @@ -170,7 +171,7 @@ Class UTRocket : Actor Wait; Death: TNT1 A 0 A_RocketExplode(); - SEXP ABCDEFGHIJ 2 Bright; + SSMX ABCDEFGHIJ 2 Bright; Stop; } } @@ -185,6 +186,10 @@ Class UTGrenade : UTRocket DamageType 'GrenadeDeath'; -NOGRAVITY; +USEBOUNCESTATE; + -BOUNCEAUTOOFF; + +BOUNCEAUTOOFFFLOORONLY; + -EXPLODEONWATER; + +CANBOUNCEWATER; BounceType "Doom"; BounceFactor 0.75; ReactionTime 85; diff --git a/zscript/enforcer.zsc b/zscript/enforcer.zsc index 9a883fc..4788a82 100644 --- a/zscript/enforcer.zsc +++ b/zscript/enforcer.zsc @@ -345,11 +345,24 @@ Class Enforcer : UTWeapon replaces Pistol return "%k riddled %o full of holes with the Enforcer."; } + override void Travelled() + { + Super.Travelled(); + slaveactive = false; + } + + override void OwnerDied() + { + Super.OwnerDied(); + slaverefire = 0; + } + Default { Tag "Enforcer"; Inventory.PickupMessage "You picked up another Enforcer!"; Inventory.MaxAmount 2; + Inventory.InterHubAmount 2; Weapon.UpSound "enforcer/select"; Weapon.SlotNumber 2; Weapon.SelectionOrder 8; diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index 7987716..b28faaa 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -145,8 +145,11 @@ Class FlakChunk : Actor BounceType "Doom"; BounceFactor 0.8; PROJECTILE; - +USEBOUNCESTATE - -BOUNCEAUTOOFF + +USEBOUNCESTATE; + -BOUNCEAUTOOFF; + +BOUNCEAUTOOFFFLOORONLY; + +CANBOUNCEWATER; + +SKYEXPLODE; Scale 0.5; } override bool CanCollideWith( Actor other, bool passive ) @@ -363,6 +366,7 @@ Class FlakSlug : Actor PROJECTILE; -NOGRAVITY; +SKYEXPLODE; + +EXPLODEONWATER; +HITTRACER; } override void PostBeginPlay() diff --git a/zscript/pulsegun.zsc b/zscript/pulsegun.zsc index 1864e9e..a553376 100644 --- a/zscript/pulsegun.zsc +++ b/zscript/pulsegun.zsc @@ -36,6 +36,54 @@ Class PulseAmmo : Ammo } } +Class PulseSpark : Actor +{ + Default + { + RenderStyle "Add"; + Radius 2; + Height 2; + +NOBLOCKMAP; + +NOGRAVITY; + +MISSILE; + +FORCEXYBILLBOARD; + +THRUACTORS; + +ROLLSPRITE; + +ROLLCENTER; + +NOTELEPORT; + +DONTSPLASH; + +CANBOUNCEWATER; + -BOUNCEAUTOOFF; + BounceType "Doom"; + BounceFactor 1.0; + WallBounceFactor 1.0; + Scale 0.03; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + if ( !bAMBUSH ) + { + roll = FRandom[Pulse](0,360); + let s = Spawn(GetClass(),pos); + s.bAMBUSH = true; + s.vel = vel; + s.scale = scale; + s.roll = roll; + } + } + States + { + Spawn: + PSPK A 1 Bright + { + A_FadeOut(FRandom[Pulse](0.0,0.15)); + vel *= 0.96; + } + Wait; + } +} + Class PulseBallLight : DynamicLight { double pulseofs; @@ -96,6 +144,8 @@ Class PulseBall : Actor RenderStyle "Add"; DamageFunction Random[Pulse](15,25); PROJECTILE; + +EXPLODEONWATER; + +SKYEXPLODE; Scale 0.2; Speed 30; Radius 2; @@ -117,8 +167,8 @@ Class PulseBall : Actor for ( int i=0; i= 19 ) { int numpt = Random[Pulse](5,10)*!Random[Pulse](0,5); for ( int i=0; i= 1.0) && player.onground && (player.cmd.forwardmove || player.cmd.sidemove) ) - A_PlaySound("ut/playerfootstep",CHAN_5,abs(vel.xy.length())*0.03); + { + if ( (waterlevel > 0) || GetFloorTerrain().IsLiquid ) A_PlaySound("ut/playerfootstepwet",CHAN_5,abs(vel.xy.length())*0.03); + else A_PlaySound("ut/playerfootstep",CHAN_5,abs(vel.xy.length())*0.03); + } if ( player.onground && !bNoGravity && !lastground && (lastvelz < -2) && (lastvelz >= -8) ) - A_PlaySound("*land",CHAN_AUTO,abs(lastvelz*0.0625)); + { + if ( (waterlevel > 0) || GetFloorTerrain().IsLiquid ) A_PlaySound("ut/wetsplash",CHAN_AUTO,abs(lastvelz*0.0625)); + else A_PlaySound("*land",CHAN_AUTO,abs(lastvelz*0.0625)); + } lastground = player.onground; lastvelz = prevvelz; prevvelz = vel.z; @@ -231,6 +240,12 @@ Class UTWeapon : Weapon if ( amp ) amp.FireEffect(); } + override void OwnerDied() + { + Super.OwnerDied(); + A_ClearRefire(); + } + Default { Weapon.BobStyle "Smooth"; @@ -339,13 +354,14 @@ Class UTSpark : Actor { RenderStyle "Add"; Radius 2; - Height 0; + Height 2; +NOBLOCKMAP; +FORCEXYBILLBOARD; +MISSILE; +MOVEWITHSECTOR; +THRUACTORS; +NOTELEPORT; + +DONTSPLASH; BounceType "Doom"; BounceFactor 0.4; Gravity 0.5; @@ -381,12 +397,13 @@ Class UTChip : Actor Default { Radius 2; - Height 0; + Height 2; +NOBLOCKMAP; +MISSILE; +MOVEWITHSECTOR; +THRUACTORS; +NOTELEPORT; + +DONTSPLASH; BounceType "Doom"; BounceFactor 0.3; Gravity 0.7; @@ -446,7 +463,7 @@ Class UTBubble : Actor { RenderStyle "Add"; Radius 2; - Height 0; + Height 2; +NOBLOCKMAP; +NOGRAVITY; +DONTSPLASH; @@ -488,13 +505,15 @@ Class UTSmoke : Actor RenderStyle "Shaded"; StencilColor "FFFFFF"; Radius 2; - Height 0; + Height 2; +NOBLOCKMAP; +NOGRAVITY; +DONTSPLASH; +FORCEXYBILLBOARD; +THRUACTORS; +NOTELEPORT; + +CANBOUNCEWATER; + -BOUNCEAUTOOFF; BounceType "Hexen"; BounceFactor 1.0; WallBounceFactor 1.0; diff --git a/zscript/warheadlauncher.zsc b/zscript/warheadlauncher.zsc index e0600cd..cfb991b 100644 --- a/zscript/warheadlauncher.zsc +++ b/zscript/warheadlauncher.zsc @@ -251,6 +251,7 @@ Class WarShell : Actor +FORCEXYBILLBOARD; +SKYEXPLODE; +FORCERADIUSDMG; + +EXPLODEONWATER; } override void PostBeginPlay() { @@ -634,6 +635,18 @@ Class WarheadLauncher : UTWeapon replaces BFG9000 return Super.CreateTossable(); } + override void OwnerDied() + { + Super.OwnerDied(); + if ( guided ) guided.ExplodeMissile(); + } + + override void OnDestroy() + { + Super.OnDestroy(); + if ( guided ) guided.ExplodeMissile(); + } + Default { Tag "Redeemer";