From 17eee1ca0eedc9fb44fc0c0c78e11171f2a7fc35 Mon Sep 17 00:00:00 2001 From: johnjohto Date: Thu, 30 Jul 2026 00:00:36 -0400 Subject: [PATCH] Test custom trainer portrait support --- tests/mod_battle_tests.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/mod_battle_tests.lua b/tests/mod_battle_tests.lua index 1b5b6242..93c35319 100644 --- a/tests/mod_battle_tests.lua +++ b/tests/mod_battle_tests.lua @@ -11,6 +11,7 @@ local Font = require("src.render.Font") Font.load(Data) local BattleState = require("src.battle.BattleState") +local PaletteFX = require("src.render.PaletteFX") local Catching = require("src.battle.Catching") local Damage = require("src.battle.Damage") local Events = require("src.mods.Events") @@ -327,6 +328,25 @@ end -- ------- ai_classes: brains and layer records +-- ------- custom trainer portraits: palette sources and base portraits + +do + local oldMode = PaletteFX.mode + PaletteFX.mode = "redpp" + local custom = { id = "TEST_TRAINER", + paletteSource = "ROM:SpriteSheetPointerTable[21]" } + local pal = BattleState.trainerPalette(Data, custom) + local expected = PaletteFX.spriteObp({ paletteSource = custom.paletteSource }, custom.id) + PaletteFX.mode = oldMode + check(pal and expected and pal.colors[3][1] == expected[3][1] + and pal.colors[3][2] == expected[3][2] + and pal.colors[3][3] == expected[3][3], + "a custom trainer portrait resolves its Advanced OBJ palette source") + check(BattleState.trainerPicPath(Data, { basePic = "OPP_ENGINEER" }) + == Data.trainers.OPP_ENGINEER.pic, + "a custom trainer can reuse a base trainer portrait by id") +end + do Data.ai_classes = { OPP_YOUNGSTER = { brain = function(battle) return { id = "SPLASH", pp = 1, brained = true }