commit 8e7da96bfcd52b230feaf40fbc6d4a42b80c5723
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Sat Oct 17 18:55:14 2026 +0200
Make state machine more reusable
commit 37da7248b8c33ce95cff7ef9332c5ccf6e3cd418
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Sat Oct 17 18:44:34 2026 +0200
Change aim state into flag
commit fbb3a84a12e2cabff9b36390da7483b8de7e9379
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Sat Oct 17 18:33:08 2026 +0200
Replace fixed references with ui references
commit 913955b13e9980780ac88761845d9e1f165f0d0e
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Fri Oct 16 13:32:21 2026 +0200
Update camera action handling
commit 4ce0ac13ffea473cf62c2fefd1571e9df1fbbcaa
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Fri Oct 16 13:04:39 2026 +0200
Update mounting system
commit e410eca38760955b2866eecd6ac0281e2041e76d
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Fri Oct 16 12:57:25 2026 +0200
Update aiming system
commit 4c788df485ccbff5f91fd51d9f480e495f11da5f
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Thu Oct 15 21:50:26 2026 +0200
Centralize states names into constants
commit 6059479c87d749e986a48adb520ef33121104da5
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Thu Oct 15 21:25:32 2026 +0200
Refator Crouch state into flag
commit 08faec70e770042d36eed6f173a63f3aac1f67c6
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Wed Oct 14 10:19:35 2026 +0200
Update player input management and state machine
commit 11a0aecc58c50c5862a03b4fd0b55e8db024031f
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Wed Oct 14 10:17:06 2026 +0200
Delete charizard.tres
commit 399eac2b6c64f242a1c2e12360d811127f87681c
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Tue Oct 13 18:20:45 2026 +0200
Remove unused MountedState
commit 42a3668c52fe96a7509a74290a94fc5a8084b713
Author: TheThomaas <thethomaas@protonmail.ch>
Date: Tue Oct 13 18:18:08 2026 +0200
Group grounded states under common class
65 lines
2.1 KiB
GDScript
65 lines
2.1 KiB
GDScript
extends AirborneState
|
|
|
|
class_name JumpState
|
|
|
|
func on_air_enter() -> void:
|
|
#play_char.godot_plush_skin.set_state("jump")
|
|
if player.jump_cooldown < player.jump_cooldown_ref: player.jump_cooldown = player.jump_cooldown_ref
|
|
player.coyote_jump_cooldown = -1.0 #un saut consomme le coyote jump : pas de saut gratuit en retombant juste apres
|
|
#if player.movement_dust.emitting: player.movement_dust.emitting = false
|
|
|
|
jump()
|
|
|
|
func check_apex() -> bool:
|
|
#le perso commence a descendre : la suite de la chute se passe dans InairState
|
|
return player.velocity.y < 0.0 and fall()
|
|
|
|
func handle_input() -> bool:
|
|
if input.jump_pressed():
|
|
jump()
|
|
|
|
if input.jump_released():
|
|
#cut jump in action, allow to manage jump height
|
|
#(the longer you press the button, the more high the play char goes, similar to the Mario Bros games)
|
|
#le freinage de la montee est applique par InairState a son entree
|
|
player.has_cut_jump = true
|
|
return fall()
|
|
return false
|
|
|
|
func jump() -> void:
|
|
#manage the jump behaviour, depending of the different variables and states the character is
|
|
|
|
var can_jump : bool = false #jump condition
|
|
|
|
#in air jump
|
|
if !player.is_on_floor():
|
|
if player.coyote_jump_on:
|
|
player.jump_cooldown = player.jump_cooldown_ref
|
|
player.coyote_jump_cooldown = -1.0 #so that the character cannot immediately make another coyote jump
|
|
player.coyote_jump_on = false
|
|
can_jump = true
|
|
elif player.nb_jumps_in_air_allowed > 0:
|
|
player.nb_jumps_in_air_allowed -= 1
|
|
player.jump_cooldown = player.jump_cooldown_ref
|
|
can_jump = true
|
|
|
|
#on floor jump
|
|
if player.is_on_floor():
|
|
player.jump_cooldown = player.jump_cooldown_ref
|
|
can_jump = true
|
|
|
|
#jump buffering
|
|
if player.buffered_jump:
|
|
player.buffered_jump = false
|
|
player.nb_jumps_in_air_allowed = player.nb_jumps_in_air_allowed_ref
|
|
|
|
#apply jump
|
|
if can_jump:
|
|
player.velocity.y = -player.jump_velocity
|
|
can_jump = false
|
|
|
|
#play squash and strech effect, and display jump particles
|
|
if player.is_on_floor():
|
|
player.squash_and_strech(1.12, 0.1)
|
|
#player.particles_manager.display_particles(player.jump_particles, player)
|