Prepare Void Bastion alpha.3 release

This commit is contained in:
Emporex committed 2026-10-04 22:22:24 +02:00
1 parent 6124331067
commit bd980d099b
6 files changed
+34 -10

No files matched your search

+23
View File
@@ -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.
+2 -2
View File
@@ -24,8 +24,8 @@ application/modify_resources=true
application/icon="res://assets/app_icon.png" application/icon="res://assets/app_icon.png"
application/console_wrapper_icon="" application/console_wrapper_icon=""
application/icon_interpolation=4 application/icon_interpolation=4
application/file_version="0.1.0.2" application/file_version="0.1.0.3"
application/product_version="0.1.0.2" application/product_version="0.1.0.3"
application/company_name="GerGames" application/company_name="GerGames"
application/product_name="Void Bastion" application/product_name="Void Bastion"
application/file_description="Void Bastion – Alpha-Testversion" application/file_description="Void Bastion – Alpha-Testversion"
+2 -2
View File
@@ -6,7 +6,7 @@ RequestExecutionLevel user
!include "LogicLib.nsh" !include "LogicLib.nsh"
!define PRODUCT_NAME "Void Bastion" !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_PUBLISHER "GerGames"
!define PRODUCT_WEBSITE "https://void-bastion.gergames.de/" !define PRODUCT_WEBSITE "https://void-bastion.gergames.de/"
!define PRODUCT_EXE "Void-Bastion.exe" !define PRODUCT_EXE "Void-Bastion.exe"
@@ -21,7 +21,7 @@ BrandingText "GerGames"
ShowInstDetails show ShowInstDetails show
ShowUninstDetails show ShowUninstDetails show
VIProductVersion "0.1.0.2" VIProductVersion "0.1.0.3"
VIAddVersionKey /LANG=1031 "ProductName" "${PRODUCT_NAME}" VIAddVersionKey /LANG=1031 "ProductName" "${PRODUCT_NAME}"
VIAddVersionKey /LANG=1031 "CompanyName" "${PRODUCT_PUBLISHER}" VIAddVersionKey /LANG=1031 "CompanyName" "${PRODUCT_PUBLISHER}"
VIAddVersionKey /LANG=1031 "FileDescription" "${PRODUCT_NAME} Setup" VIAddVersionKey /LANG=1031 "FileDescription" "${PRODUCT_NAME} Setup"
+1 -1
View File
@@ -15,7 +15,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application] [application]
config/name="Void Bastion" config/name="Void Bastion"
config/version="0.1.0-alpha.2" config/version="0.1.0-alpha.3"
run/main_scene="res://main.tscn" run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.7") config/features=PackedStringArray("4.7")
config/icon="res://assets/app_icon.png" config/icon="res://assets/app_icon.png"
+5 -5
View File
@@ -89,10 +89,10 @@ func _run() -> void:
assert(game.get("game_mode") == "menu", "Die Bestenliste benötigt einen funktionierenden Zurück-Button.") 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.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(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") 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.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 account_manager.storage_enabled = false
var original_display_name: String = account_manager.display_name 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.") 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") 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-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(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 := {} var announced_update := {}
update_manager.update_available.connect(func(info: Dictionary): announced_update.merge(info, true)) 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) 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(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(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") _assert_grid_aligned_path(game.get("path_points"), "Bastion Prime")
+1
View File
@@ -0,0 +1 @@
uid://n3hk842sdso8