mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 16:31:05 +02:00
5a0f9ab06d
* new options, and hot keys and readme clean up * oooooooooooh bazinga
73 lines
2.4 KiB
Lua
73 lines
2.4 KiB
Lua
-- Driver: joins the tournament tournament_host_test.lua creates, reading
|
|
-- the code from a shared file since the two LOVE processes otherwise
|
|
-- can't coordinate. Meant for a fresh throwaway POKEPORT_IDENTITY, so it
|
|
-- injects a test party directly (mirroring run_link_tests.lua's
|
|
-- makeFakeGame) rather than playing through a whole new-game intro.
|
|
return function(game)
|
|
local U = dofile("tests/drivers/util.lua")
|
|
local DIR = os.getenv("SHOT_DIR") or "/tmp/shots_tourney"
|
|
local CODE_FILE = os.getenv("TOURNEY_CODE_FILE") or "/tmp/tourney_code.txt"
|
|
U.teleport(game, "PALLET_TOWN", 10, 8, "down")
|
|
|
|
-- the default tournament rule is exactly 3 Pokemon; overwrite whatever
|
|
-- this identity's party actually is (safe: a match uses clamped copies)
|
|
local Pokemon = require("src.pokemon.Pokemon")
|
|
game.save.party = {
|
|
Pokemon.new(game.data, "BLASTOISE", 50),
|
|
Pokemon.new(game.data, "GENGAR", 35),
|
|
Pokemon.new(game.data, "ALAKAZAM", 45),
|
|
}
|
|
game.save.player.name = "BLUE"
|
|
|
|
local CodeEntry = require("src.link.CodeEntry")
|
|
local Tournament = require("src.link.Tournament")
|
|
local t = Tournament.new(game)
|
|
game.stack:push(t)
|
|
U.wait(3)
|
|
|
|
local code = nil
|
|
local waited = 0
|
|
while not code and waited < 1800 do
|
|
local f = io.open(CODE_FILE, "r")
|
|
if f then
|
|
local c = f:read("*l")
|
|
f:close()
|
|
if c and #c == 6 then code = c end
|
|
end
|
|
U.wait(1)
|
|
waited = waited + 1
|
|
end
|
|
U.log("guest read code:", code)
|
|
if not code then
|
|
U.log("TOURNAMENT_GUEST_DRIVER: never saw a code, aborting")
|
|
return
|
|
end
|
|
|
|
U.tap(game, "down"); U.wait(2) -- JOIN row
|
|
U.tap(game, "a"); U.wait(3) -- into codeEntry
|
|
U.shot(game, DIR .. "/guest_0_code_entry.png")
|
|
for i = 1, CodeEntry.LENGTH do
|
|
local idx = CodeEntry.CHARSET:find(code:sub(i, i), 1, true)
|
|
if idx then t.codeEntry.chars[i] = idx end
|
|
end
|
|
U.tap(game, "a"); U.wait(3) -- confirm -> startJoining
|
|
U.shot(game, DIR .. "/guest_1_joining.png")
|
|
|
|
waited = 0
|
|
while #t.roster == 0 and t.stage ~= "done" and waited < 1800 do
|
|
U.wait(1)
|
|
waited = waited + 1
|
|
end
|
|
U.log("guest roster:", table.concat(t.roster or {}, ","))
|
|
U.shot(game, DIR .. "/guest_2_roster.png")
|
|
|
|
local doneWait = 0
|
|
while t.stage ~= "done" and doneWait < 5400 do
|
|
U.tap(game, "a")
|
|
U.wait(2)
|
|
doneWait = doneWait + 1
|
|
end
|
|
U.shot(game, DIR .. "/guest_3_done.png")
|
|
U.log("TOURNAMENT_GUEST_DRIVER: champion=", t.champion, "stage=", t.stage)
|
|
end
|