mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 16:31:05 +02:00
50 lines
1.8 KiB
Lua
50 lines
1.8 KiB
Lua
-- Driver: hosts a real online match (against the deployed relay) and
|
|
-- reports Discord IPC connection/subscribe/join-code state, so the whole
|
|
-- "Ask to Join" wiring can be checked against the actual local Discord
|
|
-- client instead of guessing from code review alone.
|
|
return function(game)
|
|
local U = dofile("tests/drivers/util.lua")
|
|
local DiscordPresence = require("src.core.DiscordPresence")
|
|
local Pokemon = require("src.pokemon.Pokemon")
|
|
|
|
local function report(line)
|
|
U.log(line)
|
|
local f = io.open("/tmp/discord_test_status.txt", "a")
|
|
if f then f:write(line .. "\n"); f:close() end
|
|
end
|
|
|
|
game.save.party = { Pokemon.new(game.data, "PIKACHU", 25) }
|
|
U.teleport(game, "PALLET_TOWN", 10, 8, "down")
|
|
|
|
U.wait(30) -- give the Discord IPC connection a moment to establish
|
|
local s = DiscordPresence._state
|
|
report(("discord: enabled=%s connected=%s subscribedJoin=%s"):format(
|
|
tostring(s.enabled), tostring(s.connected), tostring(s.subscribedJoin)))
|
|
|
|
local LinkState = require("src.link.LinkState")
|
|
local link = LinkState.new(game)
|
|
game.stack:push(link)
|
|
U.wait(3)
|
|
U.tap(game, "down"); U.wait(2) -- ONLINE MATCH row
|
|
U.tap(game, "a"); U.wait(3) -- into onlineMenu
|
|
U.tap(game, "a"); U.wait(30) -- HOST ONLINE -> connect to the real relay
|
|
|
|
local waited = 0
|
|
while not link.net.code and waited < 300 do
|
|
U.wait(1)
|
|
waited = waited + 1
|
|
end
|
|
report(("host code: %s net error: %s"):format(
|
|
tostring(link.net.code), tostring(link.net.error)))
|
|
|
|
U.wait(60) -- let DiscordPresence pick up the code and push an activity
|
|
report(("discord joinCode now: %s connected: %s"):format(
|
|
tostring(s.joinCode), tostring(s.connected)))
|
|
report("DISCORD_JOIN_TEST: check your Discord profile/status now -- it")
|
|
report("should show an 'Ask to Join' button, code " .. tostring(link.net.code))
|
|
|
|
while true do
|
|
coroutine.yield()
|
|
end
|
|
end
|