Some odd dash behavior on slip surfaces but otherwise, add return after state change to fix long standing weirdness of processing the wrong movement parameters right before state change.
This commit is contained in:
parent
5197b3a608
commit
b7002f03ad
|
|
@ -136,30 +136,38 @@ func _state_process_physics_idle():
|
|||
##Bugfix
|
||||
if _wants_jump:
|
||||
request_state_change.call_func('jump')
|
||||
return
|
||||
|
||||
if _wants_crouch == true:
|
||||
request_state_change.call_func('crouch')
|
||||
return
|
||||
##TODO: May need that 'bump' logic to make velocity work.
|
||||
if desired_movement_vector.x != 0: # and velocity.x != 0:
|
||||
request_state_change.call_func('move')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
#return fall_state
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
if _wants_roll == true:
|
||||
request_state_change.call_func('roll')
|
||||
return
|
||||
|
||||
if _wants_attack_primary == true:
|
||||
#request_state_change.call_func('attack_shoot')
|
||||
attack_primary()
|
||||
return
|
||||
|
||||
if _wants_attack_secondary == true:
|
||||
#parent_request_state_change.call_func('attack_sword')
|
||||
attack_secondary()
|
||||
return
|
||||
|
||||
if $"%LadderDetector".is_colliding() and _wants_climb == true:
|
||||
request_state_change.call_func('climb')
|
||||
return
|
||||
|
||||
# var _v :Vector2 = new_move_actor_as_desired( physics_delta , current_state )
|
||||
# apply_movement_to_parent(_v)
|
||||
|
|
@ -180,6 +188,7 @@ func attack_primary():
|
|||
var _item_state_name :String = parent_use_primary_item.call_func()
|
||||
if _item_state_name != '':
|
||||
request_state_change.call_func(_item_state_name)
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
|
@ -188,6 +197,7 @@ func attack_secondary():
|
|||
var _item_state_name :String = get_parent().use_secondary_item()
|
||||
if _item_state_name != '':
|
||||
request_state_change.call_func(_item_state_name)
|
||||
return
|
||||
|
||||
|
||||
func _state_process_physics_attack_shoot():
|
||||
|
|
@ -199,30 +209,37 @@ func _state_process_physics_attack_shoot():
|
|||
|
||||
if current_state.animation_finished == true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
#return fall_state
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
func _state_process_physics_attack_punch():
|
||||
if current_state.animation_finished == true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
#return fall_state
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
func _state_process_physics_attack_sword():
|
||||
if current_state.animation_finished == true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
#return fall_state
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
func _state_process_physics_roll():
|
||||
if current_state.animation_finished == true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
# Force role in facing direction
|
||||
# instead of movement direction
|
||||
|
|
@ -259,6 +276,7 @@ func _state_process_physics_enter_right():
|
|||
level_transition_latch = true
|
||||
elif current_state.state_timeout.time_left == 0 and level_transition_latch == true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
# Force role in facing direction
|
||||
# instead of movement direction
|
||||
|
|
@ -274,10 +292,12 @@ func _state_process_physics_land():
|
|||
$"%LedgeDetector".set_enabled(true)
|
||||
if current_state.animation_finished == true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
#return fall_state
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
#move_actor_as_desired()
|
||||
apply_movement_to_parent(
|
||||
velocity_controller.calculate_velocity(
|
||||
|
|
@ -289,6 +309,7 @@ func _state_process_physics_land():
|
|||
func _state_process_physics_hurt():
|
||||
if current_state.state_timeout.time_left == 0:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
# if !parent.is_on_floor():
|
||||
# #return fall_state
|
||||
|
|
@ -311,11 +332,12 @@ func _state_process_physics_fall():
|
|||
if debug_component:
|
||||
UiManager.debug_text = (str($"%LedgeDetector".get_collision_point()))
|
||||
request_state_change.call_func('ledge_grab')
|
||||
|
||||
return
|
||||
if parent.is_on_floor():
|
||||
#modifier.reference()
|
||||
#idle_state.modifier = landing_modifier
|
||||
request_state_change.call_func('land')
|
||||
return
|
||||
|
||||
#move_actor_as_desired()
|
||||
apply_movement_to_parent(
|
||||
|
|
@ -336,6 +358,7 @@ func _state_process_physics_jump():
|
|||
# request_state_change.call_func('idle')
|
||||
if velocity_controller.velocity.y > 0:
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
desired_movement_vector.y = UP
|
||||
#move_actor_as_desired()
|
||||
apply_movement_to_parent(
|
||||
|
|
@ -351,12 +374,15 @@ func _state_process_physics_move():
|
|||
|
||||
if _wants_jump:
|
||||
request_state_change.call_func('jump')
|
||||
return
|
||||
|
||||
if desired_movement_vector.x == 0:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
## First version
|
||||
#move_actor_as_desired()
|
||||
|
|
@ -411,8 +437,10 @@ func _state_process_physics_climb():
|
|||
else:
|
||||
return request_state_change.call_func('idle')
|
||||
|
||||
|
||||
if _wants_crouch:
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
func _state_process_physics_ledge_grab():
|
||||
if debug_component:
|
||||
|
|
@ -421,9 +449,11 @@ func _state_process_physics_ledge_grab():
|
|||
|
||||
if _wants_jump:
|
||||
request_state_change.call_func('ledge_climb')
|
||||
return
|
||||
|
||||
if _wants_crouch:
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
func _state_process_physics_ledge_climb():
|
||||
# $"../LedgeDetector".set_enabled(false)
|
||||
|
|
@ -457,14 +487,18 @@ func _state_process_physics_crouch():
|
|||
|
||||
if _wants_crouch != true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
if _wants_crouch == true and desired_movement_vector.x != 0:
|
||||
request_state_change.call_func('crouch_move')
|
||||
return
|
||||
elif desired_movement_vector.x != 0: # and velocity.x != 0:
|
||||
request_state_change.call_func('move')
|
||||
return
|
||||
|
||||
apply_movement_to_parent(
|
||||
velocity_controller.calculate_velocity(
|
||||
|
|
@ -479,14 +513,18 @@ func _state_process_physics_crouch_move():
|
|||
|
||||
if _wants_crouch != true:
|
||||
request_state_change.call_func('idle')
|
||||
return
|
||||
|
||||
if !parent.is_on_floor():
|
||||
request_state_change.call_func('fall')
|
||||
return
|
||||
|
||||
if _wants_crouch == true and desired_movement_vector.x == 0:
|
||||
request_state_change.call_func('crouch')
|
||||
return
|
||||
elif _wants_crouch != true and desired_movement_vector.x != 0:
|
||||
request_state_change.call_func('move')
|
||||
return
|
||||
|
||||
#move_actor_as_desired()
|
||||
apply_movement_to_parent(
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ func calculate_velocity(_delta :float,
|
|||
_v_impulse_applied = true
|
||||
calc_inertia.y += impulse_inertia
|
||||
|
||||
if debug and movement_parameters.debug_name == 'jump':
|
||||
if debug and movement_parameters.debug_name == 'roll':
|
||||
var foo = 2+2
|
||||
## We are always moving from h_speed.x towards y at a given rate
|
||||
## if we have a difference of speed and an acceleration
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user