Compare commits

...

2 Commits

6 changed files with 46 additions and 8 deletions

View File

@ -10,9 +10,9 @@ modifier_type = 0
name = "ice_or_something" name = "ice_or_something"
timeout_seconds = 0.0 timeout_seconds = 0.0
direction = 0 direction = 0
speed_start = Vector2( -100, 1.36422e-12 ) speed_start = Vector2( -20, 1.36422e-12 )
speed_end = Vector2( 0, 0 ) speed_end = Vector2( 0, 0 )
min_acceleration = Vector2( 5, 1.36422e-12 ) min_acceleration = Vector2( 30, 1.36422e-12 )
acceleration = Vector2( -250, 1.36422e-12 ) acceleration = Vector2( -250, 1.36422e-12 )
max_acceleration = Vector2( 0, 0 ) max_acceleration = Vector2( 0, 0 )
gravity = 0 gravity = 0

View File

@ -136,30 +136,38 @@ func _state_process_physics_idle():
##Bugfix ##Bugfix
if _wants_jump: if _wants_jump:
request_state_change.call_func('jump') request_state_change.call_func('jump')
return
if _wants_crouch == true: if _wants_crouch == true:
request_state_change.call_func('crouch') request_state_change.call_func('crouch')
return
##TODO: May need that 'bump' logic to make velocity work. ##TODO: May need that 'bump' logic to make velocity work.
if desired_movement_vector.x != 0: # and velocity.x != 0: if desired_movement_vector.x != 0: # and velocity.x != 0:
request_state_change.call_func('move') request_state_change.call_func('move')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
#return fall_state #return fall_state
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
if _wants_roll == true: if _wants_roll == true:
request_state_change.call_func('roll') request_state_change.call_func('roll')
return
if _wants_attack_primary == true: if _wants_attack_primary == true:
#request_state_change.call_func('attack_shoot') #request_state_change.call_func('attack_shoot')
attack_primary() attack_primary()
return
if _wants_attack_secondary == true: if _wants_attack_secondary == true:
#parent_request_state_change.call_func('attack_sword') #parent_request_state_change.call_func('attack_sword')
attack_secondary() attack_secondary()
return
if $"%LadderDetector".is_colliding() and _wants_climb == true: if $"%LadderDetector".is_colliding() and _wants_climb == true:
request_state_change.call_func('climb') request_state_change.call_func('climb')
return
# var _v :Vector2 = new_move_actor_as_desired( physics_delta , current_state ) # var _v :Vector2 = new_move_actor_as_desired( physics_delta , current_state )
# apply_movement_to_parent(_v) # apply_movement_to_parent(_v)
@ -180,6 +188,7 @@ func attack_primary():
var _item_state_name :String = parent_use_primary_item.call_func() var _item_state_name :String = parent_use_primary_item.call_func()
if _item_state_name != '': if _item_state_name != '':
request_state_change.call_func(_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() var _item_state_name :String = get_parent().use_secondary_item()
if _item_state_name != '': if _item_state_name != '':
request_state_change.call_func(_item_state_name) request_state_change.call_func(_item_state_name)
return
func _state_process_physics_attack_shoot(): func _state_process_physics_attack_shoot():
@ -199,30 +209,37 @@ func _state_process_physics_attack_shoot():
if current_state.animation_finished == true: if current_state.animation_finished == true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
#return fall_state #return fall_state
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
func _state_process_physics_attack_punch(): func _state_process_physics_attack_punch():
if current_state.animation_finished == true: if current_state.animation_finished == true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
#return fall_state #return fall_state
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
func _state_process_physics_attack_sword(): func _state_process_physics_attack_sword():
if current_state.animation_finished == true: if current_state.animation_finished == true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
#return fall_state #return fall_state
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
func _state_process_physics_roll(): func _state_process_physics_roll():
if current_state.animation_finished == true: if current_state.animation_finished == true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
# Force role in facing direction # Force role in facing direction
# instead of movement direction # instead of movement direction
@ -259,6 +276,7 @@ func _state_process_physics_enter_right():
level_transition_latch = true level_transition_latch = true
elif current_state.state_timeout.time_left == 0 and level_transition_latch == true: elif current_state.state_timeout.time_left == 0 and level_transition_latch == true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
# Force role in facing direction # Force role in facing direction
# instead of movement direction # instead of movement direction
@ -274,10 +292,12 @@ func _state_process_physics_land():
$"%LedgeDetector".set_enabled(true) $"%LedgeDetector".set_enabled(true)
if current_state.animation_finished == true: if current_state.animation_finished == true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
#return fall_state #return fall_state
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
#move_actor_as_desired() #move_actor_as_desired()
apply_movement_to_parent( apply_movement_to_parent(
velocity_controller.calculate_velocity( velocity_controller.calculate_velocity(
@ -289,6 +309,7 @@ func _state_process_physics_land():
func _state_process_physics_hurt(): func _state_process_physics_hurt():
if current_state.state_timeout.time_left == 0: if current_state.state_timeout.time_left == 0:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
# if !parent.is_on_floor(): # if !parent.is_on_floor():
# #return fall_state # #return fall_state
@ -311,11 +332,12 @@ func _state_process_physics_fall():
if debug_component: if debug_component:
UiManager.debug_text = (str($"%LedgeDetector".get_collision_point())) UiManager.debug_text = (str($"%LedgeDetector".get_collision_point()))
request_state_change.call_func('ledge_grab') request_state_change.call_func('ledge_grab')
return
if parent.is_on_floor(): if parent.is_on_floor():
#modifier.reference() #modifier.reference()
#idle_state.modifier = landing_modifier #idle_state.modifier = landing_modifier
request_state_change.call_func('land') request_state_change.call_func('land')
return
#move_actor_as_desired() #move_actor_as_desired()
apply_movement_to_parent( apply_movement_to_parent(
@ -336,6 +358,7 @@ func _state_process_physics_jump():
# request_state_change.call_func('idle') # request_state_change.call_func('idle')
if velocity_controller.velocity.y > 0: if velocity_controller.velocity.y > 0:
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
desired_movement_vector.y = UP desired_movement_vector.y = UP
#move_actor_as_desired() #move_actor_as_desired()
apply_movement_to_parent( apply_movement_to_parent(
@ -351,12 +374,15 @@ func _state_process_physics_move():
if _wants_jump: if _wants_jump:
request_state_change.call_func('jump') request_state_change.call_func('jump')
return
if desired_movement_vector.x == 0: if desired_movement_vector.x == 0:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
## First version ## First version
#move_actor_as_desired() #move_actor_as_desired()
@ -410,9 +436,11 @@ func _state_process_physics_climb():
# animations.stop() # animations.stop()
else: else:
return request_state_change.call_func('idle') return request_state_change.call_func('idle')
if _wants_crouch: if _wants_crouch:
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
func _state_process_physics_ledge_grab(): func _state_process_physics_ledge_grab():
if debug_component: if debug_component:
@ -421,9 +449,11 @@ func _state_process_physics_ledge_grab():
if _wants_jump: if _wants_jump:
request_state_change.call_func('ledge_climb') request_state_change.call_func('ledge_climb')
return
if _wants_crouch: if _wants_crouch:
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
func _state_process_physics_ledge_climb(): func _state_process_physics_ledge_climb():
# $"../LedgeDetector".set_enabled(false) # $"../LedgeDetector".set_enabled(false)
@ -457,14 +487,18 @@ func _state_process_physics_crouch():
if _wants_crouch != true: if _wants_crouch != true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
if _wants_crouch == true and desired_movement_vector.x != 0: if _wants_crouch == true and desired_movement_vector.x != 0:
request_state_change.call_func('crouch_move') request_state_change.call_func('crouch_move')
return
elif desired_movement_vector.x != 0: # and velocity.x != 0: elif desired_movement_vector.x != 0: # and velocity.x != 0:
request_state_change.call_func('move') request_state_change.call_func('move')
return
apply_movement_to_parent( apply_movement_to_parent(
velocity_controller.calculate_velocity( velocity_controller.calculate_velocity(
@ -479,14 +513,18 @@ func _state_process_physics_crouch_move():
if _wants_crouch != true: if _wants_crouch != true:
request_state_change.call_func('idle') request_state_change.call_func('idle')
return
if !parent.is_on_floor(): if !parent.is_on_floor():
request_state_change.call_func('fall') request_state_change.call_func('fall')
return
if _wants_crouch == true and desired_movement_vector.x == 0: if _wants_crouch == true and desired_movement_vector.x == 0:
request_state_change.call_func('crouch') request_state_change.call_func('crouch')
return
elif _wants_crouch != true and desired_movement_vector.x != 0: elif _wants_crouch != true and desired_movement_vector.x != 0:
request_state_change.call_func('move') request_state_change.call_func('move')
return
#move_actor_as_desired() #move_actor_as_desired()
apply_movement_to_parent( apply_movement_to_parent(

View File

@ -12,7 +12,7 @@ name = "fall"
speed_start = Vector2( 60, 1.36422e-12 ) speed_start = Vector2( 60, 1.36422e-12 )
speed_end = Vector2( 60, 1000 ) speed_end = Vector2( 60, 1000 )
min_acceleration = Vector2( 0, 0 ) min_acceleration = Vector2( 0, 0 )
acceleration = Vector2( 1.36422e-12, 480 ) acceleration = Vector2( 1.36422e-12, 500 )
max_acceleration = Vector2( 0, 0 ) max_acceleration = Vector2( 0, 0 )
jerk_factor = Vector2( 1, 1 ) jerk_factor = Vector2( 1, 1 )
horizontal_speed = 90.0 horizontal_speed = 90.0

View File

@ -12,7 +12,7 @@ name = "jump"
speed_start = Vector2( 90, 200 ) speed_start = Vector2( 90, 200 )
speed_end = Vector2( 90, -8 ) speed_end = Vector2( 90, -8 )
min_acceleration = Vector2( 0, 0 ) min_acceleration = Vector2( 0, 0 )
acceleration = Vector2( 1.36422e-12, 320 ) acceleration = Vector2( 1.36422e-12, 360 )
max_acceleration = Vector2( 0, 0 ) max_acceleration = Vector2( 0, 0 )
jerk_factor = Vector2( 1, 1 ) jerk_factor = Vector2( 1, 1 )
horizontal_speed = 90.0 horizontal_speed = 90.0

View File

@ -9,10 +9,10 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "move" name = "move"
speed_start = Vector2( 10, 1.36422e-12 ) speed_start = Vector2( 60, 1.36422e-12 )
speed_end = Vector2( 90, 1000 ) speed_end = Vector2( 90, 1000 )
min_acceleration = Vector2( 0, 0 ) min_acceleration = Vector2( 0, 0 )
acceleration = Vector2( 20, 280 ) acceleration = Vector2( 200, 280 )
max_acceleration = Vector2( 0, 0 ) max_acceleration = Vector2( 0, 0 )
jerk_factor = Vector2( 1, 1 ) jerk_factor = Vector2( 1, 1 )
horizontal_speed = 10.0 horizontal_speed = 10.0

View File

@ -193,7 +193,7 @@ func calculate_velocity(_delta :float,
_v_impulse_applied = true _v_impulse_applied = true
calc_inertia.y += impulse_inertia 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 var foo = 2+2
## We are always moving from h_speed.x towards y at a given rate ## We are always moving from h_speed.x towards y at a given rate
## if we have a difference of speed and an acceleration ## if we have a difference of speed and an acceleration