Skills, auto-attack, aura and chain lightning rework, Esc, cache fix

- Skill bar: no art selection; slot 0 is the right-click art, keys 0-6 cast
  slots directly; cooldown labels in exact seconds; slot 0 set apart.
- Arts regenerate on their own (casting no longer refills the group).
- Auto-attack after targeting or casting at a hostile creature, at the speed
  of a held button.
- Auras can be recast while active (renew, no second visual).
- Blicke wie Klingen hits every enemy in range, physical, with life leech.
- Blitzschlag steers the game's own chain: 3 + level/5 hits, 1 + level/10
  chains, re-hits a lone enemy.
- Weapon sets: click selects, drag only from the selected set; the leftmost
  set is clickable (signed hit tests).
- Esc closes open windows before opening the game menu.
- HUD: standalone buttons and texts are centred.
- Record cache sized for widened views (town lag while walking).
- Shared game code: orders, fx events, text drawing, cooldowns, effects.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
khallaandClaude Opus 5.5 committed 2026-10-16 00:11:38 +02:00
1 parent f721d2a486
commit 1fd89524d3
41 files changed
+2347 -214

No files matched your search

+8 -2
View File
@@ -1,4 +1,5 @@
# Automated smoke test: start the game, load the first save game, take
# Automated smoke test: start the game, load a save game (-Save: its row in
# the list, 1 = the first, selected by default), take
# screenshots in-game and with the ESC menu open, then stop the game.
#
# .\tools\autotest-load.ps1 -Name ws_on # current sacred_re.ini
@@ -11,6 +12,8 @@ param(
[string]$Name = "autotest",
[string]$Ini = "",
[int]$LoadSeconds = 30,
# Row of the save game in the load screen's list (1-3 visible rows).
[int]$Save = 1,
# Runs in-game after loading, before the screenshots (e.g. clicks).
[scriptblock]$InGame = $null
)
@@ -26,7 +29,10 @@ $game = $null
try {
$game = Start-Sacred
Click-At 1720 779 -AfterMs 4000 # main menu: "Spiel laden"
Click-At 2382 568 -AfterMs 2000 # load screen: "Laden" (first save selected)
if ($Save -gt 1) {
Click-At 1342 (609 + ($Save - 1) * 254) -AfterMs 800 # load screen: the save's name (rows 254 px apart)
}
Click-At 2382 568 -AfterMs 2000 # load screen: "Laden"
Click-At 1551 826 -AfterMs ($LoadSeconds * 1000) # confirm: "Ok"
if ($InGame) { & $InGame }
Save-Screen "screenshots\${Name}_ingame.png" | Out-Null