From 047946bb3d32bb9f2b52dc6e9f37a98a846d57ee Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Wed, 9 Nov 2022 12:33:43 +0100 Subject: [PATCH] Increase air control and disallow "front kicking" walls (very exploitable). --- language.version | 4 ++-- zscript/swwm_player.zsc | 19 ++++++------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/language.version b/language.version index 0de640d78..953134eb0 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r604 \cu(Tue 8 Nov 13:01:16 CET 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r604 \cu(2022-11-08 13:01:16)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r605 \cu(Wed 9 Nov 12:33:43 CET 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r605 \cu(2022-11-09 12:33:43)\c-"; diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 5f7f124ca..62c57e077 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -2136,12 +2136,12 @@ Class Demolitionist : PlayerPawn nmove = NormalizedMove(); double fs = TweakSpeed(); if ( CanCrouch() && (player.crouchfactor != -1) ) fs *= player.crouchfactor; - Vector3 accel = (RotateVector(nmove,angle),0); - accel *= fs/480.; - double spd = vel.length(); - double maxspd = fs*15.; - if ( spd > maxspd ) vel = (vel+accel/GameTicRate).unit()*spd; - else vel = vel+accel/GameTicRate; + Vector2 accel = RotateVector(nmove,angle); + accel *= fs/320.; + double spd = vel.xy.length(); + double maxspd = fs*12.; + if ( spd > maxspd ) vel.xy = (vel.xy+accel/GameTicRate).unit()*spd; + else vel.xy = vel.xy+accel/GameTicRate; } if ( !(player.cheats&CF_PREDICTING) && (nmove.length() > 0.) ) PlayRunning(); @@ -2280,8 +2280,6 @@ Class Demolitionist : PlayerPawn if ( !d.HitLine.sidedef[1] || !!(d.HitLine.flags&(Line.ML_BLOCKING|Line.ML_BLOCKEVERYTHING|Line.ML_BLOCK_PLAYERS)) ) // nope { wallclimb = false; - walljump = true; - walldir = -(walldir*.7+AngleToVector(ang)*.3); break; } Sector s = d.HitLine.sidedef[!d.LineSide].sector; @@ -2292,8 +2290,6 @@ Class Demolitionist : PlayerPawn if ( ((backceilz-backfloorz) < Height) || ((pos.z+Height+32) < backfloorz) ) // nope { wallclimb = false; - walljump = true; - walldir = -(walldir*.7+AngleToVector(ang)*.3); break; } climbvelz = 1.5*sqrt(max(1.,backfloorz-pos.z)); @@ -2303,9 +2299,6 @@ Class Demolitionist : PlayerPawn if ( ((d.HitActor.ceilingz-d.HitActor.pos.z+d.HitActor.Height) < Height) || ((pos.z+Height+32) < (d.HitActor.pos.z+d.HitActor.Height)) ) // nope { wallclimb = false; - walljump = true; - jumpactor = d.HitActor; - walldir = -(walldir*.7+AngleToVector(ang)*.3); break; } climbvelz = 1.5*sqrt(max(1.,(d.HitActor.pos.z+d.HitActor.Height)-pos.z));