mirror of
https://github.com/bryanthaboi/gen1recomp
synced 2026-09-26 13:33:27 -04:00
99 lines
3.3 KiB
Lua
99 lines
3.3 KiB
Lua
#!/usr/bin/env luajit
|
|
package.path = "./?.lua;./?/init.lua;" .. package.path
|
|
|
|
local failed = 0
|
|
local function check(cond, msg)
|
|
if cond then
|
|
print("[ok] " .. msg)
|
|
else
|
|
failed = failed + 1
|
|
print("[FAIL] " .. msg)
|
|
end
|
|
end
|
|
|
|
local Ui = require("src.core.game3.battle.ui")
|
|
local Anim = require("src.core.game3.battle.anim")
|
|
local BattleBg = require("src.core.game3.battle.bg")
|
|
local Healthbox = require("src.core.game3.battle.healthbox")
|
|
local BattleChrome = require("src.ui.game3.battle_chrome")
|
|
local TrainerPic = require("src.core.game3.trainer_pic")
|
|
local Pokemon = require("src.core.game3.pokemon")
|
|
|
|
local IMG = {
|
|
enemyMon = { tag = "enemyMon" },
|
|
playerMon = { tag = "playerMon" },
|
|
trainerBack = { tag = "trainerBack" },
|
|
trainerFront = { tag = "trainerFront" },
|
|
}
|
|
|
|
local drawn = {}
|
|
local gfx = setmetatable({}, { __index = function() return function() end end })
|
|
gfx.draw = function(img) drawn[#drawn + 1] = img and img.tag end
|
|
gfx.newQuad = function() return {} end
|
|
_G.love = { graphics = gfx }
|
|
|
|
BattleBg.draw = function() return true end
|
|
Healthbox.draw = function() end
|
|
BattleChrome.drawPanel = function() end
|
|
BattleChrome.drawPartyBar = function() end
|
|
BattleChrome.manifest = function() return {} end
|
|
Anim.drawParticles = function() end
|
|
TrainerPic.front = function() return { image = IMG.trainerFront } end
|
|
TrainerPic.back = function() return { image = IMG.trainerBack } end
|
|
Pokemon.frontPic = function() return { image = IMG.enemyMon } end
|
|
Pokemon.backPic = function() return { image = IMG.playerMon } end
|
|
|
|
local function indexOf(tag)
|
|
for i, t in ipairs(drawn) do
|
|
if t == tag then return i end
|
|
end
|
|
return nil
|
|
end
|
|
|
|
print("[test] wild intro: enemy mon passes under player trainer back pic")
|
|
Ui.reset({ headless = false })
|
|
Anim.reset({ headless = false })
|
|
Ui._st = { enemy = { species = 95 }, player = { species = 4 } }
|
|
Anim.present("enemy").visible = true
|
|
Anim.present("enemy").ox = -48
|
|
local stage = Anim.stage()
|
|
stage.trainer.player.visible = true
|
|
stage.trainer.player.ox = 48
|
|
drawn = {}
|
|
Ui.draw(240, 160)
|
|
local iMon, iBack = indexOf("enemyMon"), indexOf("trainerBack")
|
|
check(iMon ~= nil and iBack ~= nil, "both enemy mon and trainer back drawn")
|
|
check(iMon and iBack and iMon < iBack, "enemy mon drawn before player trainer back")
|
|
|
|
print("[test] trainer intro: enemy trainer front under player trainer back")
|
|
Ui.reset({ headless = false })
|
|
Anim.reset({ headless = false })
|
|
Ui._st = { enemy = { species = 7 }, player = { species = 4 } }
|
|
stage = Anim.stage()
|
|
stage.trainer.enemy.visible = true
|
|
stage.trainer.enemy.picId = 106
|
|
stage.trainer.player.visible = true
|
|
drawn = {}
|
|
Ui.draw(240, 160)
|
|
local iFront = indexOf("trainerFront")
|
|
iBack = indexOf("trainerBack")
|
|
check(iFront and iBack and iFront < iBack, "enemy trainer front drawn before player trainer back")
|
|
|
|
print("[test] send-out: player mon still above enemy mon")
|
|
Ui.reset({ headless = false })
|
|
Anim.reset({ headless = false })
|
|
Ui._st = { enemy = { species = 95 }, player = { species = 4 } }
|
|
Anim.present("enemy").visible = true
|
|
Anim.present("player").visible = true
|
|
drawn = {}
|
|
Ui.draw(240, 160)
|
|
iMon = indexOf("enemyMon")
|
|
local iPlayer = indexOf("playerMon")
|
|
check(iMon and iPlayer and iMon < iPlayer, "enemy mon drawn before player mon")
|
|
|
|
if failed > 0 then
|
|
print("[test] FAILED " .. failed)
|
|
os.exit(1)
|
|
end
|
|
print("[test] all passed")
|