Files
room_glitch/tests/test_start_death_tune.gd

51 lines
1.6 KiB
GDScript

extends SceneTree
const Model = preload("res://games/pacman/pacman_model.gd")
const Maze = preload("res://games/pacman/pacman_maze.gd")
func _initialize() -> void:
call_deferred("run")
func run() -> void:
var model = Model.new()
model.start()
model.update(4.3)
assert(model.state == "playing")
model.state = "playing"
model.ghosts[0].tile = model.player.tile
model.ghosts[0].next = model.player.tile
model.ghosts[0].progress = 0.0
model._check_collisions()
assert(model.state == "death_pause")
assert(is_equal_approx(model.phase_time, 1.5))
var paused_clock: float = model.clock
model.update(0.5)
assert(is_equal_approx(model.clock, paused_clock))
assert(model.state == "death_pause")
var sounds := []
model.sound_requested.connect(func(name: String): sounds.append(name))
model.update(1.51)
assert(model.state == "dying")
assert(sounds == ["death"])
assert(is_equal_approx(model.phase_time, 1.55))
model.update(1.56)
assert(model.state == "death_pop")
assert(is_equal_approx(model.phase_time, 0.24))
model.update(0.25)
assert(model.lives == 2)
assert(model.state == "ready")
assert(Maze.position(model.player) == Vector2(13, 23))
assert(Maze.position(model.ghosts[0]) == Vector2(13.5, 11))
model.state = "playing"
model._move_ghost(0, 0.0)
assert(Maze.position(model.ghosts[0]) == Vector2(13, 11))
var scene = load("res://games/pacman/Pacman.tscn").instantiate()
root.add_child(scene)
var preview = scene.get_node("EditorPreview")
await process_frame
if Engine.is_editor_hint():
assert(preview.model.dots.size() == 244)
assert(preview.model.state == "ready")
scene.free()
print("START/DEATH TUNING PASS")
quit()