debug / dialogue / multiple / multiple.tscn

Diagram

Diagram

Overridden virtual functions

_ready

$Goal
func _ready() -> void:
	%MonumentDescription.hide()
$YoungGuy
func _ready() -> void:
	if not owner: start()
$OldWoman
func _ready() -> void:
	if not owner: start()
$Player
func _ready() -> void:
	playable = true
	current = self
	restart_position = global_position
	turn_right()

_input

$YoungGuy
func _input(event_: InputEvent) -> void:
	if not state == State.ENTERED: return
	if event_.is_action_pressed(&'dialogue_start'):
		start()

_physics_process

$Player
func _physics_process(delta: float) -> void:
	var dx := Input.get_axis(&'move_left', &'move_right')
	var dy := Input.get_axis(&'move_up', &'move_down')
	var direction := Vector2(dx, dy)
	var last_state := state
	state = compute_state(delta, direction)
	match state:
		State.CLIMBING:
			dx = 0
			velocity.y = dy * CLIMBING_SPEED
		State.DASHED:
			velocity = direction.normalized() * DASH_SPEED
		State.DASHING:
			velocity *= DASH_ATTENUATION * delta
		State.EXHAUSTED:
			dx = 0
		State.FAILED:
			velocity.x = lerp(velocity.x, 0.0, 0.2)
			velocity.y = lerp(velocity.y, 0.0, 0.2)
		State.FALLING, State.SLIDING:
			if last_state == State.CLIMBING \
			and dy < 0:
				velocity.y = JUMP_VELOCITY * 0.8
			else:
				var move_x := dx * SPEED * 0.8
				if velocity.x * dx < 0: move_x *= 0.1
				velocity.x = lerp(velocity.x, move_x, 0.2)

				velocity.y += GRAVITY * delta
				if state == State.SLIDING: velocity.y *= 0.8
				velocity.y = [velocity.y, MAX_VELOCITY_Y].min()
				if falling_time < 0.1 \
				and Input.is_action_just_released(&'move_jump'):
					velocity.y += DOWNFORCE_ON_LITTLE_JUMP * delta
		State.JUMPED:
			velocity.y = JUMP_VELOCITY
		State.KICKED:
			velocity.y = JUMP_VELOCITY * 0.9
			velocity.x = get_wall_normal().x * DASH_SPEED * 0.4
		State.LOCKED:
			dx = 0
			velocity = Vector2(0, 0)
		_: pass

	if not playable: dx = 0
	if not (state == State.DASHED \
		or state == State.DASHING \
		or state == State.FALLING \
		or state == State.KICKED
	):
		if dx: velocity.x = dx * SPEED
		else: velocity.x = move_toward(velocity.x, 0, SPEED*0.2)
	if state == State.JUMPED:
		velocity += jump_boost
		jump_boost = Vector2(0, 0)

	animate(playable)
	move_and_slide()

Instantiators

Caution
No other scene instantiate this scene.

Signal Connections

Note
No signal connections.

Properties

Table 1. Root properties
Name Value

layout_mode

3

anchors_preset

15

anchor_right

1.0

anchor_bottom

1.0

grow_horizontal

2

grow_vertical

2

Table 2. $StageGround0 properties
Name Value

tile_map_data

PackedByteArray("AAAJAAoAAAAAAAAAAAAJAAsAAAAAAAEAAAAAAAwAAAAEAAAAAAAAAA0AAAAEAAEAAAAAAA4AAAAEAAEAAAAAAA8AAAAEAAEAAAABAAwAAAAEAAAAAAABAA0AAAAEAAEAAAABAA4AAAAEAAEAAAABAA8AAAAEAAEAAAACAAwAAAAEAAAAAAACAA0AAAAEAAEAAAACAA4AAAAEAAEAAAACAA8AAAAEAAEAAAADAAwAAAAEAAAAAAADAA0AAAAEAAEAAAADAA4AAAAEAAEAAAADAA8AAAAEAAEAAAAEAAwAAAAEAAAAAAAEAA0AAAAEAAEAAAAEAA4AAAAEAAEAAAAEAA8AAAAEAAEAAAAFAAwAAAAEAAAAAAAFAA0AAAAEAAEAAAAFAA4AAAAEAAEAAAAFAA8AAAAEAAEAAAAGAAwAAAAEAAAAAAAGAA0AAAAEAAEAAAAGAA4AAAAEAAEAAAAGAA8AAAAEAAEAAAAHAAwAAAAEAAAAAAAHAA0AAAAEAAEAAAAHAA4AAAAEAAEAAAAHAA8AAAAEAAEAAAAIAAwAAAAEAAAAAAAIAA0AAAAEAAEAAAAIAA4AAAAEAAEAAAAIAA8AAAAEAAEAAAAJAAwAAAAEAAAAAAAJAA0AAAAEAAEAAAAJAA4AAAAEAAEAAAAJAA8AAAAEAAEAAAAKAAwAAAAEAAAAAAAKAA0AAAAEAAEAAAAKAA4AAAAEAAEAAAAKAA8AAAAEAAEAAAALAAwAAAAEAAAAAAALAA0AAAAEAAEAAAALAA4AAAAEAAEAAAALAA8AAAAEAAEAAAAMAAwAAAAEAAAAAAAMAA0AAAAEAAEAAAAMAA4AAAAEAAEAAAAMAA8AAAAEAAEAAAANAAwAAAAEAAAAAAANAA0AAAAEAAEAAAANAA4AAAAEAAEAAAANAA8AAAAEAAEAAAAOAAwAAAAEAAAAAAAOAA0AAAAEAAEAAAAOAA4AAAAEAAEAAAAOAA8AAAAEAAEAAAAPAAwAAAAEAAAAAAAPAA0AAAAEAAEAAAAPAA4AAAAEAAEAAAAPAA8AAAAEAAEAAAAQAAwAAAAEAAAAAAAQAA0AAAAEAAEAAAAQAA4AAAAEAAEAAAAQAA8AAAAEAAEAAAARAAwAAAAEAAAAAAARAA0AAAAEAAEAAAARAA4AAAAEAAEAAAARAA8AAAAEAAEAAAASAAwAAAAEAAAAAAASAA0AAAAEAAEAAAASAA4AAAAEAAEAAAASAA8AAAAEAAEAAAATAAwAAAAEAAAAAAATAA0AAAAEAAEAAAATAA4AAAAEAAEAAAATAA8AAAAEAAEAAAAUAAwAAAAEAAAAAAAUAA0AAAAEAAEAAAAUAA4AAAAEAAEAAAAUAA8AAAAEAAEAAAAVAAwAAAAEAAAAAAAVAA0AAAAEAAEAAAAVAA4AAAAEAAEAAAAVAA8AAAAEAAEAAAAWAAwAAAAEAAAAAAAWAA0AAAAEAAEAAAAWAA4AAAAEAAEAAAAWAA8AAAAEAAEAAAAXAAwAAAAEAAAAAAAXAA0AAAAEAAEAAAAXAA4AAAAEAAEAAAAXAA8AAAAEAAEAAAAYAAwAAAAEAAAAAAAYAA0AAAAEAAEAAAAYAA4AAAAEAAEAAAAYAA8AAAAEAAEAAAAZAAwAAAAEAAAAAAAZAA0AAAAEAAEAAAAZAA4AAAAEAAEAAAAZAA8AAAAEAAEAAAAaAAwAAAAEAAAAAAAaAA0AAAAEAAEAAAAaAA4AAAAEAAEAAAAaAA8AAAAEAAEAAAAbAAwAAAAEAAAAAAAbAA0AAAAEAAEAAAAbAA4AAAAEAAEAAAAbAA8AAAAEAAEAAAAcAAwAAAAEAAAAAAAcAA0AAAAEAAEAAAAcAA4AAAAEAAEAAAAcAA8AAAAEAAEAAAAdAAwAAAAEAAAAAAAdAA0AAAAEAAEAAAAdAA4AAAAEAAEAAAAdAA8AAAAEAAEAAAAeAAwAAAAEAAAAAAAeAA0AAAAEAAEAAAAeAA4AAAAEAAEAAAAeAA8AAAAEAAEAAAAfAAwAAAAEAAAAAAAfAA0AAAAEAAEAAAAfAA4AAAAEAAEAAAAfAA8AAAAEAAEAAAD//wAAAAAFAAEAAAD//wEAAAAFAAEAAAD//wIAAAAFAAEAAAD//wMAAAAFAAEAAAD//wQAAAAFAAEAAAD//wUAAAAFAAEAAAD//wYAAAAFAAEAAAD//wcAAAAFAAEAAAD//wgAAAAFAAEAAAD//wsAAAAFAAEAAAD//woAAAAFAAEAAAD//wkAAAAFAAEAAAD//wwAAAAEAAEAAAD//w0AAAAEAAEAAAD//w4AAAAEAAEAAAD//w8AAAAEAAEAAAAKAAoAAAABAAAAAAALAAoAAAACAAAAAAAKAAsAAAABAAEAAAALAAsAAAACAAEAAAAgAAwAAAAEAAAAAAAhAAwAAAAEAAAAAAAiAAwAAAAEAAAAAAAjAAwAAAAEAAAAAAAkAAwAAAAEAAAAAAAlAAwAAAAEAAAAAAAgAA0AAAAEAAEAAAAgAA4AAAAEAAEAAAAgAA8AAAAEAAEAAAAhAA8AAAAEAAEAAAAiAA8AAAAEAAEAAAAjAA8AAAAEAAEAAAAjAA4AAAAEAAEAAAAkAA4AAAAEAAEAAAAlAA4AAAAEAAEAAAAlAA0AAAAEAAEAAAAlAA8AAAAEAAEAAAAkAA8AAAAEAAEAAAAhAA4AAAAEAAEAAAAiAA4AAAAEAAEAAAAkAA0AAAAEAAEAAAAjAA0AAAAEAAEAAAAiAA0AAAAEAAEAAAAhAA0AAAAEAAEAAAA=")

Table 3. $CameraFrame properties
Name Value

position

Vector2(958, 540)

Table 4. $Goal properties
Name Value

position

Vector2(112, 501)

Table 5. $YoungGuy properties
Name Value

position

Vector2(-86, 734)

Table 6. $OldWoman properties
Name Value

position

Vector2(1574, 285)

Table 7. $Player properties
Name Value

position

Vector2(434, 644)