Files
pirate-dice/tests/shots.gd
2026-09-16 17:00:41 +02:00

53 lines
1.8 KiB
GDScript

extends "res://tests/basis.gd"
## Bilder vom Spiel und vom Menü für die Sichtprüfung. Braucht ein Display -
## oder xvfb, siehe tests/shots.sh. Schreibt nach tests/out/.
var game: Node
const OUT := "res://tests/out"
func _ready() -> void:
DirAccess.make_dir_recursive_absolute(ProjectSettings.globalize_path(OUT))
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
DisplayServer.window_set_size(Vector2i(1280, 720))
var main := preload("res://scenes/main.tscn").instantiate()
add_child(main)
await get_tree().process_frame
main.menu._show("regeln")
await get_tree().create_timer(0.3).timeout
await _bild("menue_regeln")
main.menu._show("main")
await get_tree().create_timer(0.2).timeout
await _bild("menue_start")
Net.start_singleplayer("Tester", 3, 1)
_lauf()
func _bild(name: String) -> void:
await RenderingServer.frame_post_draw
var ok := get_viewport().get_texture().get_image().save_png("%s/%s.png" % [OUT, name])
_pruef("Bild %s" % name, ok == OK)
func _lauf() -> void:
await _warte(func(): game = _find(get_tree().root, "Game"); return game != null, 20.0)
await _warte(func(): return game.phase == "bid", 40.0)
var me: int = game.local_seat
game.hand[me] = ["gag", "peek", "count"]
game._push_state()
await get_tree().create_timer(0.4).timeout
await _bild("tisch_zug")
await game._do_play(me, "gag", 0)
await game._do_play(me, "peek", 0)
await get_tree().create_timer(1.2).timeout
await _bild("tisch_topf")
game.hud.hand_box.get_child(0).mouse_entered.emit()
await get_tree().create_timer(0.3).timeout
await _bild("tisch_erklaerung")
var n5: int = game._count_face(5)
game.bid = {"seat": 1, "count": maxi(1, n5), "face": 5}
game._phase_reveal({"challenger": me, "bid": game.bid, "exact": false})
await get_tree().create_timer(1.3 + 1.2).timeout
await _bild("aufdecken_zaehlen")
_fertig()