From bd980d099b17463b9b5e40a8e3ae7f9e52561dab Mon Sep 17 00:00:00 2001 From: Dominic Date: Sun, 4 Oct 2026 22:22:24 +0200 Subject: [PATCH] Prepare Void Bastion alpha.3 release --- RELEASE_NOTES_0.1.0-alpha.3.md | 23 +++++++++++++++++++++++ export_presets.cfg | 4 ++-- packaging/windows/installer.nsi | 4 ++-- project.godot | 2 +- tests/smoke_test.gd | 10 +++++----- update_manager.gd.uid | 1 + 6 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 RELEASE_NOTES_0.1.0-alpha.3.md create mode 100644 update_manager.gd.uid diff --git a/RELEASE_NOTES_0.1.0-alpha.3.md b/RELEASE_NOTES_0.1.0-alpha.3.md new file mode 100644 index 0000000..8e7f563 --- /dev/null +++ b/RELEASE_NOTES_0.1.0-alpha.3.md @@ -0,0 +1,23 @@ +# Void Bastion 0.1.0-alpha.3 + +Diese Testversion verbessert die Orientierung auf den Karten, die Vergleichbarkeit der Bestenlisten und die Verteilung künftiger Spielupdates. + +## Neu + +- automatische Prüfung auf neue öffentliche Spielversionen beim Start +- kompakter Update-Hinweis im Hauptmenü mit direktem Link zum passenden Windows-Setup +- Karten- und Schwierigkeitsfilter direkt in der globalen Bestenliste +- sichtbare Karten- und Schwierigkeitsangabe in jeder Ranglistenzeile + +## Verbessert + +- alle Einzelspielerrouten enden jetzt sichtbar und technisch exakt im jeweiligen Reaktor +- auch beide Koop-Routen treffen sich exakt im gemeinsamen Reaktor +- neue Karten werden automatisch auf eine korrekte Reaktoreinfahrt geprüft +- deutlich kleinere und transparentere Turm-Bauvorschau +- dezentere Reichweiten- und Rasteranzeige beim Platzieren eines Turms +- Hauptmenü zeigt die tatsächliche öffentliche Spielversion + +## Hinweis + +Void Bastion befindet sich weiterhin in einer frühen Alpha-Phase. Das Update wird niemals ungefragt installiert. Rückmeldungen und Fehlerberichte bitte an support@gergames.de senden. diff --git a/export_presets.cfg b/export_presets.cfg index 6b46012..c262c5a 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -24,8 +24,8 @@ application/modify_resources=true application/icon="res://assets/app_icon.png" application/console_wrapper_icon="" application/icon_interpolation=4 -application/file_version="0.1.0.2" -application/product_version="0.1.0.2" +application/file_version="0.1.0.3" +application/product_version="0.1.0.3" application/company_name="GerGames" application/product_name="Void Bastion" application/file_description="Void Bastion – Alpha-Testversion" diff --git a/packaging/windows/installer.nsi b/packaging/windows/installer.nsi index 713a9c7..60ee3c8 100644 --- a/packaging/windows/installer.nsi +++ b/packaging/windows/installer.nsi @@ -6,7 +6,7 @@ RequestExecutionLevel user !include "LogicLib.nsh" !define PRODUCT_NAME "Void Bastion" -!define PRODUCT_VERSION "0.1.0-alpha.2" +!define PRODUCT_VERSION "0.1.0-alpha.3" !define PRODUCT_PUBLISHER "GerGames" !define PRODUCT_WEBSITE "https://void-bastion.gergames.de/" !define PRODUCT_EXE "Void-Bastion.exe" @@ -21,7 +21,7 @@ BrandingText "GerGames" ShowInstDetails show ShowUninstDetails show -VIProductVersion "0.1.0.2" +VIProductVersion "0.1.0.3" VIAddVersionKey /LANG=1031 "ProductName" "${PRODUCT_NAME}" VIAddVersionKey /LANG=1031 "CompanyName" "${PRODUCT_PUBLISHER}" VIAddVersionKey /LANG=1031 "FileDescription" "${PRODUCT_NAME} Setup" diff --git a/project.godot b/project.godot index 2f37aec..d4450b1 100644 --- a/project.godot +++ b/project.godot @@ -15,7 +15,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true [application] config/name="Void Bastion" -config/version="0.1.0-alpha.2" +config/version="0.1.0-alpha.3" run/main_scene="res://main.tscn" config/features=PackedStringArray("4.7") config/icon="res://assets/app_icon.png" diff --git a/tests/smoke_test.gd b/tests/smoke_test.gd index 7565f0a..4ac58c4 100644 --- a/tests/smoke_test.gd +++ b/tests/smoke_test.gd @@ -89,10 +89,10 @@ func _run() -> void: assert(game.get("game_mode") == "menu", "Die Bestenliste benötigt einen funktionierenden Zurück-Button.") assert(not account_manager.player_id.is_empty(), "Beim ersten Start muss automatisch ein stabiles Gastprofil angelegt werden.") assert(not account_manager.display_name.is_empty(), "Das Gastprofil benötigt einen sichtbaren Pilotennamen.") - assert(game.call("_app_version") == "0.1.0-alpha.2", "Profil, Installer und Online-Übertragung müssen dieselbe Alpha-Version verwenden.") + assert(game.call("_app_version") == "0.1.0-alpha.3", "Profil, Installer und Online-Übertragung müssen dieselbe Alpha-Version verwenden.") var support_url: String = game.call("_support_email_url") assert(support_url.begins_with("mailto:support@gergames.de?"), "Die Feedback-Schaltfläche muss die öffentliche Supportadresse verwenden.") - assert(support_url.contains("0.1.0-alpha.2") and support_url.contains(account_manager.short_id()), "Die Support-Mail muss Version und gekürzte Spieler-ID zur Fehlerzuordnung enthalten.") + assert(support_url.contains("0.1.0-alpha.3") and support_url.contains(account_manager.short_id()), "Die Support-Mail muss Version und gekürzte Spieler-ID zur Fehlerzuordnung enthalten.") account_manager.storage_enabled = false var original_display_name: String = account_manager.display_name assert(account_manager.validate_display_name("Kommandant Ägir").is_empty(), "Ein normaler internationaler Spielername muss gültig sein.") @@ -116,12 +116,12 @@ func _run() -> void: var update_manager = game.get_node("UpdateManager") assert(update_manager.call("_is_newer_version", "0.1.0-alpha.3", "0.1.0-alpha.2"), "Eine neuere Alpha-Version muss als Update erkannt werden.") assert(update_manager.call("_is_newer_version", "0.1.0", "0.1.0-alpha.2"), "Eine stabile Version muss neuer als ihre Alpha-Version sein.") - assert(not update_manager.call("_is_newer_version", "0.1.0-alpha.2", "0.1.0-alpha.2"), "Die installierte Version darf nicht als Update angeboten werden.") + assert(not update_manager.call("_is_newer_version", "0.1.0-alpha.3", "0.1.0-alpha.3"), "Die installierte Version darf nicht als Update angeboten werden.") var announced_update := {} update_manager.update_available.connect(func(info: Dictionary): announced_update.merge(info, true)) - var fake_release_body := JSON.stringify([{"tag_name": "v0.1.0-alpha.3", "name": "Alpha.3", "draft": false, "assets": [{"name": "Void-Bastion-Setup-x64.exe", "browser_download_url": "https://git.dominicspringer.de/public-test.exe"}]}]).to_utf8_buffer() + var fake_release_body := JSON.stringify([{"tag_name": "v0.1.0-alpha.4", "name": "Alpha.4", "draft": false, "assets": [{"name": "Void-Bastion-Setup-x64.exe", "browser_download_url": "https://git.dominicspringer.de/public-test.exe"}]}]).to_utf8_buffer() update_manager.call("_on_request_completed", HTTPRequest.RESULT_SUCCESS, 200, PackedStringArray(), fake_release_body) - assert(announced_update.get("version") == "0.1.0-alpha.3", "Die Update-Prüfung muss eine neuere öffentliche Version ankündigen.") + assert(announced_update.get("version") == "0.1.0-alpha.4", "Die Update-Prüfung muss eine neuere öffentliche Version ankündigen.") assert(str(announced_update.get("url", "")).begins_with("https://git.dominicspringer.de/"), "Der Update-Hinweis darf nur einen öffentlichen Download-Link öffnen.") assert(game.get("path_points").size() == 9, "Bastion Prime sollte mit einer eigenen Einfahrt im Reaktor enden.") _assert_grid_aligned_path(game.get("path_points"), "Bastion Prime") diff --git a/update_manager.gd.uid b/update_manager.gd.uid new file mode 100644 index 0000000..abfe2f5 --- /dev/null +++ b/update_manager.gd.uid @@ -0,0 +1 @@ +uid://n3hk842sdso8