chomp vault to help getting up corners
This commit is contained in:
parent
4b4138a542
commit
5cf87d8bb7
5 changed files with 118 additions and 10 deletions
|
@ -13,12 +13,19 @@ extends CharacterBody2D
|
|||
@export var jump_power: float
|
||||
@export var splat_launch_power: float
|
||||
@export var splat_offset: float
|
||||
@export var chomp_vault_impulse: Vector2
|
||||
|
||||
@export_group("Internal References")
|
||||
@export var state_chart: StateChart
|
||||
@export var graphics: Node2D
|
||||
@export var run_animation: SpritesheetAnimation
|
||||
|
||||
@export var wall_cast: ShapeCast2D
|
||||
@export var corner_cast: RayCast2D
|
||||
@export var corner_height_cast: RayCast2D
|
||||
@export var corner_snap_point: Node2D
|
||||
@export var vault_off_point: Node2D
|
||||
|
||||
|
||||
@onready var start_position: Vector2 = global_position
|
||||
|
||||
|
@ -93,6 +100,30 @@ func _start_jump() -> void:
|
|||
#endregion
|
||||
|
||||
|
||||
#region ChompVault
|
||||
func _check_for_corner(_delta: float) -> void:
|
||||
if signf(input_dir.x) == signf(graphics.scale.x):
|
||||
corner_cast.force_raycast_update()
|
||||
if not corner_cast.is_colliding():
|
||||
wall_cast.force_shapecast_update()
|
||||
if wall_cast.is_colliding():
|
||||
state_chart.send_event(&"corner_detected")
|
||||
|
||||
func _start_chomp_vault() -> void:
|
||||
corner_height_cast.force_raycast_update()
|
||||
global_position.x = wall_cast.get_collision_point(0).x
|
||||
global_position.y = corner_height_cast.get_collision_point().y
|
||||
global_position -= to_local(corner_snap_point.global_position)
|
||||
velocity = Vector2.ZERO
|
||||
|
||||
func _end_chomp_vault() -> void:
|
||||
global_position += to_local(corner_snap_point.global_position)
|
||||
global_position -= to_local(vault_off_point.global_position)
|
||||
velocity = chomp_vault_impulse
|
||||
velocity.x *= signf(graphics.scale.x)
|
||||
#endregion
|
||||
|
||||
|
||||
#region Missile
|
||||
func _restore_graphics_rotation() -> void:
|
||||
graphics.rotation = 0.0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue