# Arma a captura: espera o AMo.exe aparecer, injeta 1,5s depois e confere se o RECV grava.
# Nao mexe no ServerList -- ele ja tem que estar apontando pro alvo certo antes de rodar.
$ErrorActionPreference = 'Continue'

if (Get-Process AMo -ErrorAction SilentlyContinue) {
    Write-Host 'O AMo.exe ja esta aberto. Feche o jogo e rode de novo --' -ForegroundColor Yellow
    Write-Host 'injetar num processo ja rodando so captura SEND, e o RECV se perde.' -ForegroundColor Yellow
    exit 1
}
if (Test-Path 'C:\RoshHook\traffic.log') {
    $carimbo = Get-Date -Format 'MMdd_HHmm'
    Move-Item 'C:\RoshHook\traffic.log' "C:\RoshHook\traffic_$carimbo.log" -Force
}

Write-Host 'ARMADO. Pode abrir o jogo -- injeto sozinho.' -ForegroundColor Cyan
$limite = (Get-Date).AddMinutes(10)
$amo = $null
while ((Get-Date) -lt $limite) {
    $amo = Get-Process AMo -ErrorAction SilentlyContinue
    if ($amo) { break }
    Start-Sleep -Milliseconds 300
}
if (-not $amo) { Write-Host 'o jogo nao abriu em 10 min.'; exit 1 }
Write-Host "AMo.exe apareceu (PID $($amo.Id)). Injetando em 1,5s..."
Start-Sleep -Milliseconds 1500
& 'D:\RoshEmulator\tools\hook\injector.exe' | Out-Null

$ate = (Get-Date).AddSeconds(180)
while ((Get-Date) -lt $ate) {
    if ((Test-Path 'C:\RoshHook\traffic.log') -and
        (Select-String -Path 'C:\RoshHook\traffic.log' -Pattern '\] RECV sock=' -CaseSensitive -Quiet)) {
        Write-Host 'OK: RECV confirmado, pode jogar.' -ForegroundColor Green
        exit 0
    }
    Start-Sleep -Seconds 2
}
Write-Host 'ATENCAO: so SEND. Feche o jogo e rode de novo.' -ForegroundColor Yellow
exit 2
