mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-22 13:36:14 +02:00
feat: implement Diploma screen visual assets and add version-specific blink logic to TownMap
Fix for #1595 #1597 #1589 #1613 and maybe 1520.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
-- Diploma screen rendering and dismiss tests (engine/events/diploma.asm).
|
||||
package.path = "./?.lua;./?/init.lua;" .. package.path
|
||||
|
||||
local T = require("tests.modkit")
|
||||
local Data = T.fixtures.load()
|
||||
|
||||
local S = require("tests.harness").suite("diploma")
|
||||
local check, eq = S.check, S.eq
|
||||
|
||||
local Game = require("src.core.Game")
|
||||
local Input = require("src.core.Input")
|
||||
local StateStack = require("src.core.StateStack")
|
||||
local SaveData = require("src.core.SaveData")
|
||||
local Diploma = require("src.ui.Diploma")
|
||||
|
||||
Game.data = Data
|
||||
Data.palettes = {
|
||||
palettes = {
|
||||
MEWMON = { {255,255,255}, {180,180,180}, {90,90,90}, {0,0,0} }
|
||||
}
|
||||
}
|
||||
Game.input = Input; Input:init()
|
||||
Game.stack = StateStack; StateStack:init()
|
||||
Game.save = SaveData.newGame()
|
||||
Game.save.player.name = "ASH"
|
||||
require("src.render.Font").load(Data)
|
||||
|
||||
local done = false
|
||||
local diploma = Diploma.new(Game, function() done = true end)
|
||||
Game.stack:push(diploma)
|
||||
|
||||
check(diploma.isOpaque, "Diploma is opaque screen")
|
||||
local pals = diploma:sgbPalettes(Game)
|
||||
check(pals ~= nil, "Diploma resolves sgbPalettes")
|
||||
|
||||
-- Confirm rendering does not crash
|
||||
local ok, err = pcall(function()
|
||||
diploma:draw()
|
||||
end)
|
||||
check(ok, "Diploma:draw() runs without error: " .. tostring(err))
|
||||
|
||||
-- Confirm dismissal on A or B press
|
||||
Input.pressed = { a = true }
|
||||
diploma:update()
|
||||
check(done, "Diploma calls onDone on A press")
|
||||
eq(Game.stack:top(), nil, "Diploma pops from stack")
|
||||
|
||||
S.finish()
|
||||
Reference in New Issue
Block a user