63 lines
2.3 KiB
GDScript
63 lines
2.3 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")
|
|
# Karte mit offener Beute und einer Meldung, nur im Speicher - nichts wird gespeichert.
|
|
var beute_alt: bool = Kampagne.beute_offen
|
|
var meld_alt: Array = Kampagne.meldungen.duplicate()
|
|
Kampagne.beute_offen = true
|
|
Kampagne.meldungen = ["Roter Jack geschlagen - auf See für 2 Partien. Beute wartet."]
|
|
main.menu._show("kampagne")
|
|
await get_tree().create_timer(0.2).timeout
|
|
await _bild("menue_seekarte")
|
|
Kampagne.beute_offen = beute_alt
|
|
Kampagne.meldungen = meld_alt
|
|
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()
|