From d789f72238f942d5b71d2be1b44cdf11c0525bd7 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sat, 5 Jun 2021 21:07:46 +0200 Subject: [PATCH] Tweak player speeds, allow "always run" to work. --- keyconf.txt | 2 ++ language.def_menu | 1 + language.es_menu | 1 + language.version | 4 ++-- zscript/swwm_player.zsc | 22 +++++++++++----------- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/keyconf.txt b/keyconf.txt index 33959906d..7bff60f04 100644 --- a/keyconf.txt +++ b/keyconf.txt @@ -9,6 +9,7 @@ addmenukey "$SWWM_EXTRAFIRE" "+user4" addmenukey "$SWWM_MELEE" "+user1" addmenukey "$SWWM_WALK" "+walk" addmenukey "$SWWM_SPRINT" "+speed" +addmenukey "$SWWM_TOGGLESPRINT" "toggle cl_run" addmenukey "$SWWM_DASH" "+user2" addmenukey "$SWWM_ITEMSENSE" "+user3" addmenukey "$SWWM_GESTURE1" "netevent swwmgesture 0" @@ -26,6 +27,7 @@ defaultbind "g" "+user4" defaultbind "f" "+user1" defaultbind "ctrl" "+walk" defaultbind "shift" "+speed" +defaultbind "capslock" "toggle cl_run" defaultbind "alt" "+user2" defaultbind "i" "+user3" defaultbind "h" "netevent swwmgesture 0" diff --git a/language.def_menu b/language.def_menu index 814722bbe..7c4f35ece 100644 --- a/language.def_menu +++ b/language.def_menu @@ -8,6 +8,7 @@ SWWM_ZOOMFIRE = "Tertiary Fire / Zoom"; SWWM_MELEE = "Melee Attack"; SWWM_WALK = "Walk"; SWWM_SPRINT = "Sprint"; +SWWM_TOGGLESPRINT = "Toggle Sprint"; SWWM_DASH = "Dash"; SWWM_ITEMSENSE = "Item Sense"; SWWM_EXTRAFIRE = "Quick Grenade"; diff --git a/language.es_menu b/language.es_menu index e45cf866e..07bb0f04b 100644 --- a/language.es_menu +++ b/language.es_menu @@ -8,6 +8,7 @@ SWWM_ZOOMFIRE = "Fuego Terciario / Zoom"; SWWM_MELEE = "Ataque a Melé"; SWWM_WALK = "Caminar"; SWWM_SPRINT = "Esprintar"; +SWWM_TOGGLESPRINT = "Alternar Esprintar"; SWWM_DASH = "Embestir"; SWWM_ITEMSENSE = "Sensor de Ítems"; SWWM_EXTRAFIRE = "Granada Rápida"; diff --git a/language.version b/language.version index 2ef11bfdf..0d42df877 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r527 \cu(Sat 5 Jun 01:28:10 CEST 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r527 \cu(2021-06-05 01:28:10)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r528 \cu(Sat 5 Jun 21:07:46 CEST 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r528 \cu(2021-06-05 21:07:46)\c-"; diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index fc1cf7ad2..778e4335a 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -95,8 +95,8 @@ Class Demolitionist : PlayerPawn Player.ViewHeight 52; Player.AirCapacity 0; Player.GruntSpeed 20; - Player.ForwardMove .4, 1.5; - Player.SideMove .4, 1.5; + Player.ForwardMove 1., 1.; + Player.SideMove 1., 1.; Player.SoundClass "demolitionist"; DamageFactor "Drowning", 0.; DamageFactor "Poison", 0.; @@ -117,13 +117,13 @@ Class Demolitionist : PlayerPawn return (0,0); Vector2 mvec = (player.cmd.forwardmove,-player.cmd.sidemove/.96); double maxval = max(abs(mvec.x),abs(mvec.y)); - // sorry, we don't use that here + // sorry, we don't use that here specifically, that's for tweakspeed to handle if ( !(player.cmd.buttons&BT_RUN) ) maxval *= 2.; return mvec.unit()*maxval; } double TweakSpeed() { - double fact = (player.cmd.buttons&BT_SPEED)?ForwardMove2:bWalking?(ForwardMove1*.2):ForwardMove1; + double fact = bWalking?.08:(player.cmd.buttons&BT_RUN)?1.25:.5; for ( Inventory i=Inv; i; i=i.Inv ) fact *= i.GetSpeedFactor(); return fact; } @@ -930,7 +930,7 @@ Class Demolitionist : PlayerPawn if ( FindInventory("RagekitPower") ) { // stop for just a split second UNLESS bunnyhopping - if ( !(player.cmd.buttons&BT_SPEED) || (level.maptime >= (lastairtic+10)) ) + if ( !(player.cmd.buttons&BT_RUN) || (level.maptime >= (lastairtic+10)) ) ReactionTime = 6; } else @@ -1633,7 +1633,7 @@ Class Demolitionist : PlayerPawn double fs = TweakSpeed(); if ( CanCrouch() && (player.crouchfactor != -1) ) fs *= player.crouchfactor; Vector3 accel = (RotateVector(nmove,angle),0); - accel *= fs/512.; + accel *= fs/480.; double spd = vel.length(); double maxspd = fs*15.; if ( spd > maxspd ) vel = (vel+accel/GameTicRate).unit()*spd; @@ -1917,7 +1917,7 @@ Class Demolitionist : PlayerPawn // bhop, z vel relative to vel size if ( vel.z < 25. ) // don't ramp up too hard { - vel.z += jumpvelz*(((player.cmd.buttons&BT_SPEED)?1.2:.65)+vel.length()*.01); + vel.z += jumpvelz*(((player.cmd.buttons&BT_RUN)?1.2:.65)+vel.length()*.01); // add part of last landing z velocity too vel.z += max(0,-landvelz*(raging?.45:.35)); } @@ -1929,7 +1929,7 @@ Class Demolitionist : PlayerPawn // first jump if ( vel.z < 10. ) // don't ramp up too hard { - vel.z += jumpvelz*((player.cmd.buttons&BT_SPEED)?1.25:bWalking?.75:1.); + vel.z += jumpvelz*(bWalking?.75:(player.cmd.buttons&BT_RUN)?1.25:1.); // add part of last landing z velocity too vel.z += max(0,-landvelz*(raging?.35:.25)); } @@ -2603,9 +2603,9 @@ Class Demolitionist : PlayerPawn int FastCheck() { if ( !player ) return 1; - if ( player.cmd.buttons&BT_SPEED ) return 2; // sprint - if ( !bWalking && (NormalizedMove().length() > 8000.) ) return 1; // run - return 0; // walk + if ( bWalking || (NormalizedMove().length() <= 8000.) ) return 0; // walk + if ( player.cmd.buttons&BT_RUN ) return 2; // sprint + return 1; // walk } State A_FastJump( StateLabel walk = null, StateLabel run = null, StateLabel sprint = null ) {