From 7c76c791f2516adefeb28f602bcc658aba58bb1f Mon Sep 17 00:00:00 2001 From: derek Date: Tue, 17 Jun 2025 09:22:08 -0500 Subject: [PATCH] added speed and jump modifiers based on weapon weight --- assets/player.tscn | 3 +++ assets/rocket_launcher.tscn | 1 + assets/weaponresources/mac10_uberresource.tres | 1 + assets/weaponresources/machete.tres | 1 + assets/weaponresources/pistol1.tres | 1 + assets/weaponresources/revolver1.tres | 1 + scripts/PlayerStates.gd | 7 +++++-- scripts/player.gd | 9 +++++++++ scripts/player_jumping.gd | 2 -- scripts/player_on_foot.gd | 2 +- scripts/player_wall_running.gd | 4 ++-- scripts/weapon_resource.gd | 1 + 12 files changed, 26 insertions(+), 7 deletions(-) diff --git a/assets/player.tscn b/assets/player.tscn index 569d480..bfa3acf 100644 --- a/assets/player.tscn +++ b/assets/player.tscn @@ -148,6 +148,9 @@ initial_state = NodePath("On Foot") [node name="On Foot" type="Node" parent="StateMachine"] script = ExtResource("3_ib4e7") +move_speed = null +move_transition_speed = null +can_climb_new_ladder = null metadata/_custom_type_script = "uid://dk0vg5btak80a" [node name="Crouched" type="Node" parent="StateMachine"] diff --git a/assets/rocket_launcher.tscn b/assets/rocket_launcher.tscn index 6f38a23..5169928 100644 --- a/assets/rocket_launcher.tscn +++ b/assets/rocket_launcher.tscn @@ -35,6 +35,7 @@ reload_type = 0 bullet = ExtResource("2_mnla0") fire_mode = 1 fov_zoom_amt = 0.98 +player_speed_modifier = 0.75 crosshair_radius = 100 ads = false recoil_amount = Vector3(0.05, 0.05, 0.05) diff --git a/assets/weaponresources/mac10_uberresource.tres b/assets/weaponresources/mac10_uberresource.tres index bbb09b8..e6942a4 100644 --- a/assets/weaponresources/mac10_uberresource.tres +++ b/assets/weaponresources/mac10_uberresource.tres @@ -16,6 +16,7 @@ reload_type = 0 bullet = ExtResource("1_y4ehq") fire_mode = 0 fov_zoom_amt = 0.98 +player_speed_modifier = 0.95 crosshair_radius = 50 ads = false recoil_amount = Vector3(0.05, 0.05, 0.05) diff --git a/assets/weaponresources/machete.tres b/assets/weaponresources/machete.tres index dbce1fe..17524b9 100644 --- a/assets/weaponresources/machete.tres +++ b/assets/weaponresources/machete.tres @@ -12,6 +12,7 @@ weapon_type = 1 reload_type = 0 fire_mode = 1 fov_zoom_amt = 0.98 +player_speed_modifier = 0.95 crosshair_radius = 100 ads = false recoil_amount = Vector3(0, 0.05, 0.05) diff --git a/assets/weaponresources/pistol1.tres b/assets/weaponresources/pistol1.tres index 64935ff..5f1de79 100644 --- a/assets/weaponresources/pistol1.tres +++ b/assets/weaponresources/pistol1.tres @@ -16,6 +16,7 @@ reload_type = 0 bullet = ExtResource("1_oqs71") fire_mode = 2 fov_zoom_amt = 0.98 +player_speed_modifier = 0.95 crosshair_radius = 25 ads = false recoil_amount = Vector3(0.015, 0.05, 0.05) diff --git a/assets/weaponresources/revolver1.tres b/assets/weaponresources/revolver1.tres index 63913ea..10a3629 100644 --- a/assets/weaponresources/revolver1.tres +++ b/assets/weaponresources/revolver1.tres @@ -15,6 +15,7 @@ reload_type = 1 bullet = ExtResource("1_gphlx") fire_mode = 1 fov_zoom_amt = 0.85 +player_speed_modifier = 0.95 crosshair_radius = 25 ads = false recoil_amount = Vector3(0.2, 0.05, 0.05) diff --git a/scripts/PlayerStates.gd b/scripts/PlayerStates.gd index 965f083..60e347c 100644 --- a/scripts/PlayerStates.gd +++ b/scripts/PlayerStates.gd @@ -11,8 +11,11 @@ var move_target var look_target func standard_movement(delta): - character.velocity.x = lerp(character.velocity.x, character.movement_input().x * move_speed,delta * move_transition_speed) - character.velocity.z = lerp(character.velocity.z, character.movement_input().z * move_speed,delta * move_transition_speed) + character.velocity.x = lerp(character.velocity.x, character.movement_input().x * move_speed * character.speed_modifiers(),delta * move_transition_speed) + character.velocity.z = lerp(character.velocity.z, character.movement_input().z * move_speed * character.speed_modifiers(),delta * move_transition_speed) + +func standard_jump(): + return character.JUMP_VELOCITY * character.speed_modifiers() func apply_gravity(delta): character.velocity.y -= 9.8 * 1.25 * delta diff --git a/scripts/player.gd b/scripts/player.gd index 3dc17da..7c4a536 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -376,6 +376,15 @@ func movement_input(): return direction +#for every modifier that changes movement, subtract from the speed multiplier +func speed_modifiers(): + var speed_multiplier = 1 + + if gun != null: + speed_multiplier -= (1 - gun.weapon_info.player_speed_modifier) + + return speed_multiplier + func joypad_walk(): # Joypad right stick look control var dir_out = Vector2(0,0) diff --git a/scripts/player_jumping.gd b/scripts/player_jumping.gd index 28097aa..705648a 100644 --- a/scripts/player_jumping.gd +++ b/scripts/player_jumping.gd @@ -29,7 +29,5 @@ func Physics_Update(delta): if Input.is_action_just_pressed("crouch"): Transitioned.emit(self,"ground pound") - - if can_wall_run(): start_wall_running() diff --git a/scripts/player_on_foot.gd b/scripts/player_on_foot.gd index 10f5924..cca16d2 100644 --- a/scripts/player_on_foot.gd +++ b/scripts/player_on_foot.gd @@ -16,4 +16,4 @@ func Physics_Update(delta): if Input.is_action_just_pressed("jump"): character.jumps_remaining -= 1 - character.velocity.y += character.JUMP_VELOCITY + character.velocity.y += standard_jump() diff --git a/scripts/player_wall_running.gd b/scripts/player_wall_running.gd index 9fb1ced..06783de 100644 --- a/scripts/player_wall_running.gd +++ b/scripts/player_wall_running.gd @@ -21,8 +21,8 @@ func wall_jump(): func wall_run_movement(delta): if Input.is_action_pressed("move_up"): - character.velocity.x = lerp(character.velocity.x,character.wall_run_direction.x * move_speed,delta * move_transition_speed) - character.velocity.z = lerp(character.velocity.z,character.wall_run_direction.z * move_speed,delta * move_transition_speed) + character.velocity.x = lerp(character.velocity.x,character.wall_run_direction.x * move_speed * character.speed_modifiers(),delta * move_transition_speed) + character.velocity.z = lerp(character.velocity.z,character.wall_run_direction.z * move_speed * character.speed_modifiers(),delta * move_transition_speed) else: Transitioned.emit(self,"in air") diff --git a/scripts/weapon_resource.gd b/scripts/weapon_resource.gd index e716916..f4092dc 100644 --- a/scripts/weapon_resource.gd +++ b/scripts/weapon_resource.gd @@ -9,6 +9,7 @@ class_name weapon_resource @export var bullet : bullet_resource @export_enum("Auto", "Single", "Burst") var fire_mode: int @export var fov_zoom_amt = .98 +@export var player_speed_modifier = .95 @export var crosshair_radius = 50 @export var ads : bool = false @export var recoil_amount : Vector3 = Vector3(.05,.05,.05)