# Beendet laufende Tibia-Prozesse und startet den Launcher neu.
#
# Der Start laeuft ueber die Desktop-Bridge in der angemeldeten Sitzung -
# ohne den frueheren Umweg ueber eine eigene geplante Aufgabe (2,2 Sekunden
# Leerlauf) und mit sichtbarer Fehlerausgabe.
$ErrorActionPreference = 'Stop'

$repo = Join-Path $env:USERPROFILE 'TibiaPilotNG'
$tibiaRoot = Join-Path $env:LOCALAPPDATA 'Tibia'

Get-Process ApplicationFrameHost -ErrorAction SilentlyContinue |
    Stop-Process -Force -ErrorAction SilentlyContinue
Get-Process client, Tibia -ErrorAction SilentlyContinue |
    Stop-Process -Force -ErrorAction SilentlyContinue
Get-CimInstance Win32_Process | Where-Object {
    $_.ExecutablePath -like "$tibiaRoot\*"
} | ForEach-Object {
    & taskkill.exe /PID $_.ProcessId /T /F | Out-Null
}

# Tibia legt beim Start eine Sperrdatei an. Bleibt sie nach einem harten
# Abschuss liegen, verweigert der Launcher wortlos den Start.
Remove-Item (Join-Path $tibiaRoot '.running') -Force -ErrorAction SilentlyContinue

# Launch-Tibia.py wartet selbst auf den Launcher; bei einem kalten Start
# (Platte, Virenscanner, Update-Pruefung) dauert das laenger.
& (Join-Path $repo 'tools\Bridge-Run.ps1') `
    -Exe (Join-Path $repo '.venv\Scripts\python.exe') `
    -Arguments 'tools\Launch-Tibia.py' `
    -WorkingDirectory $repo `
    -TimeoutSeconds 180
$code = $LASTEXITCODE
Write-Output "Restart Tibia exit code: $code"
exit $code
