Expanded species names

This commit is contained in:
Martin Griffin 2024-04-06 14:42:41 +01:00
parent 2ec35549a5
commit 06d817bd1b
21 changed files with 239 additions and 111 deletions

View File

@ -104,7 +104,7 @@
// string lengths
#define ITEM_NAME_LENGTH ((I_EXPANDED_ITEM_NAMES == TRUE) ? 20 : 14)
#define ITEM_NAME_PLURAL_LENGTH ITEM_NAME_LENGTH + 2 // 2 is used for the instance where a word's suffix becomes y->ies
#define POKEMON_NAME_LENGTH 10
#define POKEMON_NAME_LENGTH 12
#define VANILLA_POKEMON_NAME_LENGTH 10
#define POKEMON_NAME_BUFFER_SIZE max(20, POKEMON_NAME_LENGTH + 1) // Frequently used buffer size. Larger than necessary
#define PLAYER_NAME_LENGTH 7

View File

@ -172,6 +172,7 @@ enum
static const u8 *GetHealthboxElementGfxPtr(u8);
static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *, u32, u32, u32, u32 *);
static u8 *AddTextPrinterAndCreateWindowOnHealthboxToFit(const u8 *, u32, u32, u32, u32 *, u32);
static void RemoveWindowOnHealthbox(u32 windowId);
static void UpdateHpTextInHealthboxInDoubles(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp);
@ -2296,24 +2297,21 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && StringCompare(nickname, GetSpeciesName(species)) == 0)
gender = 100;
// AddTextPrinterAndCreateWindowOnHealthbox's arguments are the same in all 3 cases.
// It's possible they may have been different in early development phases.
switch (gender)
{
default:
StringCopy(ptr, gText_HealthboxGender_None);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
break;
case MON_MALE:
StringCopy(ptr, gText_HealthboxGender_Male);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
break;
case MON_FEMALE:
StringCopy(ptr, gText_HealthboxGender_Female);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
break;
}
windowTileData = AddTextPrinterAndCreateWindowOnHealthboxToFit(gDisplayedStringBattle, 0, 3, 2, &windowId, 54);
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP;
if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
@ -2906,7 +2904,7 @@ u8 GetHPBarLevel(s16 hp, s16 maxhp)
return result;
}
static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId)
static u8 *AddTextPrinterAndCreateWindowOnHealthboxWithFont(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId, u32 fontId)
{
u16 winId;
u8 color[3];
@ -2919,12 +2917,23 @@ static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y,
color[1] = 1;
color[2] = 3;
AddTextPrinterParameterized4(winId, FONT_SMALL, x, y, 0, 0, color, TEXT_SKIP_DRAW, str);
AddTextPrinterParameterized4(winId, fontId, x, y, 0, 0, color, TEXT_SKIP_DRAW, str);
*windowId = winId;
return (u8 *)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
}
static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId)
{
return AddTextPrinterAndCreateWindowOnHealthboxWithFont(str, x, y, bgColor, windowId, FONT_SMALL);
}
static u8 *AddTextPrinterAndCreateWindowOnHealthboxToFit(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId, u32 width)
{
u32 fontId = GetFontIdToFit(str, FONT_SMALL, 0, width);
return AddTextPrinterAndCreateWindowOnHealthboxWithFont(str, x, y, bgColor, windowId, fontId);
}
static void RemoveWindowOnHealthbox(u32 windowId)
{
RemoveWindow(windowId);

View File

@ -3139,7 +3139,7 @@ static void PrintContestantMonName(u8 contestant)
static void PrintContestantMonNameWithColor(u8 contestant, u8 color)
{
Contest_CopyStringWithColor(gContestMons[contestant].nickname, color);
Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[contestant], gDisplayedStringBattle, 5, 1, FONT_NARROW);
Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[contestant], gDisplayedStringBattle, 5, 1, GetFontIdToFit(gContestMons[contestant].nickname, FONT_NARROW, 0, 50));
}
static u16 CalculateContestantRound1Points(u8 who, u8 contestCategory)

View File

@ -21,6 +21,12 @@
#define FLIP 0
#define NO_FLIP 1
#if POKEMON_NAME_LENGTH >= 12
#define HANDLE_EXPANDED_SPECIES_NAME(_name, ...) _(DEFAULT(_name, __VA_ARGS__))
#else
#define HANDLE_EXPANDED_SPECIES_NAME(_name, ...) _(_name)
#endif
const struct SpeciesInfo gSpeciesInfo[] =
{
[SPECIES_NONE] =

View File

@ -3407,7 +3407,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
.abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED },
.bodyColor = BODY_COLOR_YELLOW,
.speciesName = _("Dudunsprce"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Dudunsprce", "Dudunsparce"),
.cryId = CRY_DUDUNSPARCE,
.natDexNum = NATIONAL_DEX_DUDUNSPARCE,
.categoryName = _("Land Snake"),
@ -3460,7 +3460,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
.abilities = { ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED },
.bodyColor = BODY_COLOR_YELLOW,
.speciesName = _("Dudunsprce"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Dudunsprce", "Dudunsparce"),
.cryId = CRY_DUDUNSPARCE,
.natDexNum = NATIONAL_DEX_DUDUNSPARCE,
.categoryName = _("Land Snake"),
@ -6460,4 +6460,4 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
#ifdef __INTELLISENSE__
};
#endif
#endif

View File

@ -3462,7 +3462,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2),
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("Bsculegion"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Bsculegion", "Basculegion"),
.cryId = CRY_BASCULEGION,
.natDexNum = NATIONAL_DEX_BASCULEGION,
.categoryName = _("Big Fish"),
@ -3516,7 +3516,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2),
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("Bsculegion"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Bsculegion", "Basculegion"),
.cryId = CRY_BASCULEGION,
.natDexNum = NATIONAL_DEX_BASCULEGION,
.categoryName = _("Big Fish"),
@ -10404,4 +10404,4 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
#ifdef __INTELLISENSE__
};
#endif
#endif

View File

@ -767,7 +767,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS },
.bodyColor = BODY_COLOR_RED,
.speciesName = _("Flechinder"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Flechinder", "Fletchinder"),
.cryId = CRY_FLETCHINDER,
.natDexNum = NATIONAL_DEX_FLETCHINDER,
.categoryName = _("Ember"),
@ -5343,4 +5343,4 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
#ifdef __INTELLISENSE__
};
#endif
#endif

View File

@ -1150,7 +1150,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3),
.abilities = { ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT },
.bodyColor = BODY_COLOR_WHITE,
.speciesName = _("Crabminabl"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Crabminabl", "Crabominable"),
.cryId = CRY_CRABOMINABLE,
.natDexNum = NATIONAL_DEX_CRABOMINABLE,
.categoryName = _("Woolly Crab"),
@ -5904,7 +5904,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_WHITE,
.noFlip = TRUE,
.speciesName = _("Blacephaln"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Blacephaln", "Blacephalon"),
.cryId = CRY_BLACEPHALON,
.natDexNum = NATIONAL_DEX_BLACEPHALON,
.categoryName = _("Fireworks"),
@ -6160,4 +6160,4 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
#ifdef __INTELLISENSE__
};
#endif
#endif

View File

@ -837,7 +837,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS },
.bodyColor = BODY_COLOR_BLUE,
.speciesName = _("Corvisquir"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Corvisquir", "Corvisquire"),
.cryId = CRY_CORVISQUIRE,
.natDexNum = NATIONAL_DEX_CORVISQUIRE,
.categoryName = _("Raven"),
@ -891,7 +891,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR },
.bodyColor = BODY_COLOR_PURPLE,
.speciesName = _("Corviknigh"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Corviknigh", "Corviknight"),
.cryId = CRY_CORVIKNIGHT,
.natDexNum = NATIONAL_DEX_CORVIKNIGHT,
.categoryName = _("Raven"),
@ -2803,7 +2803,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2),
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL },
.bodyColor = BODY_COLOR_BROWN,
.speciesName = _("Barraskewd"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Barraskewd", "Barraskewda"),
.cryId = CRY_BARRASKEWDA,
.natDexNum = NATIONAL_DEX_BARRASKEWDA,
.categoryName = _("Skewer"),
@ -3178,7 +3178,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
.abilities = { ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY },
.bodyColor = BODY_COLOR_RED,
.speciesName = _("Centiskorc"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Centiskorc", "Centiskorch"),
.cryId = CRY_CENTISKORCH,
.natDexNum = NATIONAL_DEX_CENTISKORCH,
.categoryName = _("Radiator"),
@ -3506,7 +3506,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS),
.abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY },
.bodyColor = BODY_COLOR_PURPLE,
.speciesName = _("Polteageis"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Polteageis", "Polteageist"),
.cryId = CRY_POLTEAGEIST,
.natDexNum = NATIONAL_DEX_POLTEAGEIST,
.categoryName = _("Black Tea"),
@ -3559,7 +3559,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS),
.abilities = { ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY },
.bodyColor = BODY_COLOR_PURPLE,
.speciesName = _("Polteageis"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Polteageis", "Polteageist"),
.cryId = CRY_POLTEAGEIST,
.natDexNum = NATIONAL_DEX_POLTEAGEIST,
.categoryName = _("Black Tea"),
@ -4486,7 +4486,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
.abilities = { ABILITY_POWER_SPOT, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GRAY,
.speciesName = _("Stonjourne"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Stonjourne", "Stonjourner"),
.cryId = CRY_STONJOURNER,
.natDexNum = NATIONAL_DEX_STONJOURNER,
.categoryName = _("Big Rock"),
@ -6789,4 +6789,4 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
#ifdef __INTELLISENSE__
};
#endif
#endif

View File

@ -129,7 +129,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_GRASS),
.abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("Meowscarad"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Meowscarad", "Meowscarada"),
.cryId = CRY_MEOWSCARADA,
.natDexNum = NATIONAL_DEX_MEOWSCARADA,
.categoryName = _("Magician"),
@ -1466,7 +1466,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("Sqawkabily"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Sqawkabily", "Squawkabilly"),
.cryId = CRY_SQUAWKABILLY,
.natDexNum = NATIONAL_DEX_SQUAWKABILLY,
.categoryName = _("Parrot"),
@ -1519,7 +1519,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS },
.bodyColor = BODY_COLOR_BLUE,
.speciesName = _("Sqawkabily"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Sqawkabily", "Squawkabilly"),
.cryId = CRY_SQUAWKABILLY,
.natDexNum = NATIONAL_DEX_SQUAWKABILLY,
.categoryName = _("Parrot"),
@ -1572,7 +1572,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE },
.bodyColor = BODY_COLOR_YELLOW,
.speciesName = _("Sqawkabily"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Sqawkabily", "Squawkabilly"),
.cryId = CRY_SQUAWKABILLY,
.natDexNum = NATIONAL_DEX_SQUAWKABILLY,
.categoryName = _("Parrot"),
@ -1625,7 +1625,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
.abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE },
.bodyColor = BODY_COLOR_WHITE,
.speciesName = _("Sqawkabily"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Sqawkabily", "Squawkabilly"),
.cryId = CRY_SQUAWKABILLY,
.natDexNum = NATIONAL_DEX_SQUAWKABILLY,
.categoryName = _("Parrot"),
@ -2161,7 +2161,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING),
.abilities = { ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE },
.bodyColor = BODY_COLOR_YELLOW,
.speciesName = _("Kilowatrel"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Kilowatrel", "Kilowattrel"),
.cryId = CRY_KILOWATTREL,
.natDexNum = NATIONAL_DEX_KILOWATTREL,
.categoryName = _("Frigatebird"),
@ -2482,7 +2482,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS),
.abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR },
.bodyColor = BODY_COLOR_BROWN,
.speciesName = _("Brmblghast"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Brmblghast", "Brambleghast"),
.cryId = CRY_BRAMBLEGHAST,
.natDexNum = NATIONAL_DEX_BRAMBLEGHAST,
.categoryName = _("Tumbleweed"),
@ -4416,7 +4416,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_PINK,
.speciesName = _("ScreamTail"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("ScreamTail", "Scream Tail"),
.cryId = CRY_SCREAM_TAIL,
.natDexNum = NATIONAL_DEX_SCREAM_TAIL,
.categoryName = _("Paradox"),
@ -4471,7 +4471,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_WHITE,
.speciesName = _("BruteBonet"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("BruteBonet", "Brute Bonnet"),
.cryId = CRY_BRUTE_BONNET,
.natDexNum = NATIONAL_DEX_BRUTE_BONNET,
.categoryName = _("Paradox"),
@ -4528,7 +4528,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GRAY,
.speciesName = _("FluttrMane"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("FluttrMane", "Flutter Mane"),
.cryId = CRY_FLUTTER_MANE,
.natDexNum = NATIONAL_DEX_FLUTTER_MANE,
.categoryName = _("Paradox"),
@ -4584,7 +4584,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_WHITE,
.speciesName = _("SlithrWing"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("SlithrWing", "Slither Wing"),
.cryId = CRY_SLITHER_WING,
.natDexNum = NATIONAL_DEX_SLITHER_WING,
.categoryName = _("Paradox"),
@ -4638,7 +4638,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GRAY,
.speciesName = _("SndyShocks"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("SndyShocks", "Sandy Shocks"),
.cryId = CRY_SANDY_SHOCKS,
.natDexNum = NATIONAL_DEX_SANDY_SHOCKS,
.categoryName = _("Paradox"),
@ -4693,7 +4693,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GRAY,
.speciesName = _("IronTreads"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronTreads", "Iron Treads"),
.cryId = CRY_IRON_TREADS,
.natDexNum = NATIONAL_DEX_IRON_TREADS,
.categoryName = _("Paradox"),
@ -4748,7 +4748,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_RED,
.speciesName = _("IronBundle"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronBundle", "Iron Bundle"),
.cryId = CRY_IRON_BUNDLE,
.natDexNum = NATIONAL_DEX_IRON_BUNDLE,
.categoryName = _("Paradox"),
@ -4858,7 +4858,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_BLUE,
.speciesName = _("IronJuguls"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronJuguls", "Iron Jugulis"),
.cryId = CRY_IRON_JUGULIS,
.natDexNum = NATIONAL_DEX_IRON_JUGULIS,
.categoryName = _("Paradox"),
@ -4970,7 +4970,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("IronThorns"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronThorns", "Iron Thorns"),
.cryId = CRY_IRON_THORNS,
.natDexNum = NATIONAL_DEX_IRON_THORNS,
.categoryName = _("Paradox"),
@ -5568,7 +5568,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_BLUE,
.speciesName = _("RoarngMoon"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("RoarngMoon", "Roaring Moon"),
.cryId = CRY_ROARING_MOON,
.natDexNum = NATIONAL_DEX_ROARING_MOON,
.categoryName = _("Paradox"),
@ -5624,7 +5624,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_WHITE,
.speciesName = _("IronVliant"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronVliant", "Iron Valiant"),
.cryId = CRY_IRON_VALIANT,
.natDexNum = NATIONAL_DEX_IRON_VALIANT,
.categoryName = _("Paradox"),
@ -5788,7 +5788,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_BLUE,
.speciesName = _("WalkngWake"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("WalkngWake", "Walking Wake"),
.cryId = CRY_WALKING_WAKE,
.natDexNum = NATIONAL_DEX_WALKING_WAKE,
.categoryName = _("Paradox"),
@ -5842,7 +5842,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("IronLeaves"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronLeaves", "Iron Leaves"),
.cryId = CRY_IRON_LEAVES,
.natDexNum = NATIONAL_DEX_IRON_LEAVES,
.categoryName = _("Paradox"),
@ -5896,7 +5896,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS),
.abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("Ptchageist"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Ptchageist", "Poltchageist"),
.cryId = CRY_POLTCHAGEIST,
.natDexNum = NATIONAL_DEX_POLTCHAGEIST,
.categoryName = _("Matcha"),
@ -5949,7 +5949,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS),
.abilities = { ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF },
.bodyColor = BODY_COLOR_GREEN,
.speciesName = _("Ptchageist"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Ptchageist", "Poltchageist"),
.cryId = CRY_POLTCHAGEIST,
.natDexNum = NATIONAL_DEX_POLTCHAGEIST,
.categoryName = _("Matcha"),
@ -6220,7 +6220,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN },
.bodyColor = BODY_COLOR_BLACK,
.speciesName = _("Fezndipiti"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("Fezndipiti", "Fezandipiti"),
.cryId = CRY_FEZANDIPITI,
.natDexNum = NATIONAL_DEX_FEZANDIPITI,
.categoryName = _("Retainer"),
@ -6340,7 +6340,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_BROWN,
.speciesName = _("GouginFire"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("GouginFire", "Gouging Fire"),
.cryId = CRY_GOUGING_FIRE,
.natDexNum = NATIONAL_DEX_GOUGING_FIRE,
.categoryName = _("Paradox"),
@ -6395,7 +6395,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_YELLOW,
.speciesName = _("RagingBolt"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("RagingBolt", "Raging Bolt"),
.cryId = CRY_RAGING_BOLT,
.natDexNum = NATIONAL_DEX_RAGING_BOLT,
.categoryName = _("Paradox"),
@ -6450,7 +6450,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE, ABILITY_NONE },
.bodyColor = BODY_COLOR_GRAY,
.speciesName = _("IronBouldr"),
.speciesName = HANDLE_EXPANDED_SPECIES_NAME("IronBouldr", "Iron Boulder"),
.cryId = CRY_IRON_BOULDER,
.natDexNum = NATIONAL_DEX_IRON_BOULDER,
.categoryName = _("Paradox"),

View File

@ -2435,6 +2435,11 @@ static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, c
AddTextPrinterParameterized3(windowId, FONT_SMALL, align[0], align[1], sFontColorTable[color], 0, str);
}
static void DisplayPartyPokemonBarDetailToFit(u8 windowId, const u8 *str, u8 color, const u8 *align, u32 width)
{
AddTextPrinterParameterized3(windowId, GetFontIdToFit(str, FONT_SMALL, 0, width), align[0], align[1], sFontColorTable[color], 0, str);
}
static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c)
{
u8 nickname[POKEMON_NAME_LENGTH + 1];
@ -2444,7 +2449,7 @@ static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox
if (c == 1)
menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[0] >> 3, menuBox->infoRects->dimensions[1] >> 3, menuBox->infoRects->dimensions[2] >> 3, menuBox->infoRects->dimensions[3] >> 3, FALSE);
GetMonNickname(mon, nickname);
DisplayPartyPokemonBarDetail(menuBox->windowId, nickname, 0, menuBox->infoRects->dimensions);
DisplayPartyPokemonBarDetailToFit(menuBox->windowId, nickname, 0, menuBox->infoRects->dimensions, 50);
}
}

View File

@ -2337,7 +2337,7 @@ static void CreatePokedexList(u8 dexMode, u8 order)
}
}
static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top)
static void PrintMonDexNum(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top)
{
u8 color[3];
@ -2347,6 +2347,17 @@ static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8 *str, u8 left
AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str);
}
static void PrintMonName(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top)
{
u8 color[3];
color[0] = TEXT_COLOR_TRANSPARENT;
color[1] = TEXT_DYNAMIC_COLOR_6;
color[2] = TEXT_COLOR_LIGHT_GRAY;
fontId = GetFontIdToFit(str, fontId, 0, 50);
AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str);
}
// u16 ignored is passed but never used
static void CreateMonListEntry(u8 position, u16 b, u16 ignored)
{
@ -2453,7 +2464,7 @@ static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused)
text[offset++] = CHAR_0 + ((dexNum % 1000) % 100) / 10;
text[offset++] = CHAR_0 + ((dexNum % 1000) % 100) % 10;
text[offset++] = EOS;
PrintMonDexNumAndName(0, FONT_NARROW, text, left, top);
PrintMonDexNum(0, FONT_NARROW, text, left, top);
}
static void CreateCaughtBall(bool16 owned, u8 x, u8 y, u16 unused)
@ -2473,7 +2484,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top)
str = GetSpeciesName(num);
else
str = sText_TenDashes;
PrintMonDexNumAndName(0, FONT_NARROW, str, left, top);
PrintMonName(0, FONT_NARROW, str, left, top);
return StringLength(str);
}

View File

@ -4028,16 +4028,16 @@ static void PrintDisplayMonInfo(void)
FillWindowPixelBuffer(WIN_DISPLAY_INFO, PIXEL_FILL(1));
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
{
AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, GetFontIdToFit(sStorage->displayMonNameText, FONT_NORMAL, 0, 9*8 - 6), sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, GetFontIdToFit(sStorage->displayMonNameText, FONT_SHORT, 0, 9*8 - 12), sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, GetFontIdToFit(sStorage->displayMonItemName, FONT_SMALL, 0, WindowWidthPx(WIN_DISPLAY_INFO) - 22), sStorage->displayMonItemName, 6, 43, TEXT_SKIP_DRAW, NULL);
}
else
{
AddTextPrinterParameterized(WIN_DISPLAY_INFO, GetFontIdToFit(sStorage->displayMonItemName, FONT_SMALL, 0, WindowWidthPx(WIN_DISPLAY_INFO) - 22), sStorage->displayMonItemName, 6, 0, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, GetFontIdToFit(sStorage->displayMonNameText, FONT_NORMAL, 0, 9*8 - 6), sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, GetFontIdToFit(sStorage->displayMonSpeciesName, FONT_SHORT, 0, 9*8 - 12), sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL);
AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SKIP_DRAW, NULL);
}

View File

@ -2813,10 +2813,15 @@ static void PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, u8 y, u8 line
PrintTextOnWindowWithFont(windowId, string, x, y, lineSpacing, colorId, FONT_NORMAL);
}
static void PrintTextOnWindowToFitPx(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId, u32 width)
{
u32 fontId = GetFontIdToFit(string, FONT_NORMAL, 0, width);
PrintTextOnWindowWithFont(windowId, string, x, y, lineSpacing, colorId, fontId);
}
static void PrintTextOnWindowToFit(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId)
{
u32 fontId = GetFontIdToFit(string, FONT_NORMAL, 0, WindowWidthPx(windowId));
PrintTextOnWindowWithFont(windowId, string, x, y, lineSpacing, colorId, fontId);
PrintTextOnWindowToFitPx(windowId, string, x, y, lineSpacing, colorId, WindowWidthPx(windowId));
}
static void PrintMonInfo(void)
@ -2833,7 +2838,6 @@ static void PrintMonInfo(void)
static void PrintNotEggInfo(void)
{
u8 strArray[16];
struct Pokemon *mon = &sMonSummaryScreen->currentMon;
struct PokeSummary *summary = &sMonSummaryScreen->summary;
u16 dexNum = SpeciesToPokedexNum(summary->species);
@ -2869,10 +2873,9 @@ static void PrintNotEggInfo(void)
StringAppend(gStringVar1, gStringVar2);
PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, gStringVar1, 24, 17, 0, 1);
GetMonNickname(mon, gStringVar1);
PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, gStringVar1, 0, 1, 0, 1);
strArray[0] = CHAR_SLASH;
StringCopy(&strArray[1], &GetSpeciesName(summary->species2)[0]);
PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, strArray, 0, 1, 0, 1);
PrintTextOnWindowToFitPx(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, gStringVar1, 0, 1, 0, 1, 63);
PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, gText_Slash, 0, 1, 0, 1);
PrintTextOnWindowToFitPx(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, GetSpeciesName(summary->species2), 6, 1, 0, 1, 63);
PrintGenderSymbol(mon, summary->species2);
PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME);
PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES);

View File

@ -50,17 +50,17 @@ SINGLE_BATTLE_TEST("Booster Energy will activate Protosynthesis after harsh sunl
ABILITY_POPUP(opponent, ABILITY_DROUGHT);
NONE_OF {
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
MESSAGE("RagingBolt used its Booster Energy to activate Protosynthesis!");
MESSAGE("RagingBolt's Sp. Atk was heightened!");
MESSAGE("Raging Bolt used its Booster Energy to activate Protosynthesis!");
MESSAGE("Raging Bolt's Sp. Atk was heightened!");
}
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("The harsh sunlight activated RagingBolt's Protosynthesis!");
MESSAGE("RagingBolt's Sp. Atk was heightened!");
MESSAGE("The harsh sunlight activated Raging Bolt's Protosynthesis!");
MESSAGE("Raging Bolt's Sp. Atk was heightened!");
MESSAGE("The sunlight faded.");
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("RagingBolt used its Booster Energy to activate Protosynthesis!");
MESSAGE("RagingBolt's Sp. Atk was heightened!");
MESSAGE("Raging Bolt used its Booster Energy to activate Protosynthesis!");
MESSAGE("Raging Bolt's Sp. Atk was heightened!");
}
}
@ -82,17 +82,17 @@ SINGLE_BATTLE_TEST("Booster Energy activates Protosynthesis and increases highes
} SCENE {
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("RagingBolt used its Booster Energy to activate Protosynthesis!");
MESSAGE("Raging Bolt used its Booster Energy to activate Protosynthesis!");
if (attack == 110)
MESSAGE("RagingBolt's Attack was heightened!");
MESSAGE("Raging Bolt's Attack was heightened!");
else if (defense == 110)
MESSAGE("RagingBolt's Defense was heightened!");
MESSAGE("Raging Bolt's Defense was heightened!");
else if (speed == 110)
MESSAGE("RagingBolt's Speed was heightened!");
MESSAGE("Raging Bolt's Speed was heightened!");
else if (spAttack == 110)
MESSAGE("RagingBolt's Sp. Atk was heightened!");
MESSAGE("Raging Bolt's Sp. Atk was heightened!");
else if (spDefense == 110)
MESSAGE("RagingBolt's Sp. Def was heightened!");
MESSAGE("Raging Bolt's Sp. Def was heightened!");
} THEN {
EXPECT(player->item == ITEM_NONE);
}

View File

@ -18,12 +18,12 @@ DOUBLE_BATTLE_TEST("Hospitality user restores 25% of ally's health")
} SCENE {
if (health == 75) {
ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY);
MESSAGE("Wobbuffet drank down all the matcha that Ptchageist made!");
MESSAGE("Wobbuffet drank down all the matcha that Poltchageist made!");
HP_BAR(playerRight, damage: -25);
} else {
NONE_OF {
ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY);
MESSAGE("Wobbuffet drank down all the matcha that Ptchageist made!");
MESSAGE("Wobbuffet drank down all the matcha that Poltchageist made!");
HP_BAR(playerRight, damage: -25);
}
}
@ -42,9 +42,9 @@ DOUBLE_BATTLE_TEST("Hospitality user restores 25% of ally's health on switch-in"
TURN { SWITCH(playerLeft, 2); }
} SCENE {
MESSAGE("Wobbuffet, that's enough! Come back!");
MESSAGE("Go! Ptchageist!");
MESSAGE("Go! Poltchageist!");
ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY);
MESSAGE("Wobbuffet drank down all the matcha that Ptchageist made!");
MESSAGE("Wobbuffet drank down all the matcha that Poltchageist made!");
HP_BAR(playerRight, damage: -25);
}
}
@ -63,8 +63,8 @@ DOUBLE_BATTLE_TEST("Hospitality ignores Substitute")
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, playerRight);
MESSAGE("Wobbuffet, that's enough! Come back!");
MESSAGE("Go! Ptchageist!");
MESSAGE("Go! Poltchageist!");
ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY);
MESSAGE("Wobbuffet drank down all the matcha that Ptchageist made!");
MESSAGE("Wobbuffet drank down all the matcha that Poltchageist made!");
}
}

View File

@ -55,11 +55,11 @@ SINGLE_BATTLE_TEST("Mirror Armor triggers even if the attacking Pokemon also has
} WHEN {
TURN { MOVE(opponent, MOVE_LEER); }
} SCENE {
MESSAGE("Foe Corviknigh used Leer!");
MESSAGE("Foe Corviknight used Leer!");
ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR);
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
MESSAGE("Foe Corviknigh's Defense fell!");
MESSAGE("Foe Corviknight's Defense fell!");
} THEN {
EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE);
EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1);
@ -153,9 +153,9 @@ SINGLE_BATTLE_TEST("Mirror Armor doesn't lower the stat of the attacking Pokemon
TURN { MOVE(player, MOVE_SCREECH); }
TURN { MOVE(opponent, MOVE_LEER); }
} SCENE {
MESSAGE("Corviknigh used Screech!");
MESSAGE("Corviknigh used Screech!");
MESSAGE("Corviknigh used Screech!");
MESSAGE("Corviknight used Screech!");
MESSAGE("Corviknight used Screech!");
MESSAGE("Corviknight used Screech!");
MESSAGE("Foe Wynaut used Leer!");
ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR);
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
@ -188,8 +188,8 @@ DOUBLE_BATTLE_TEST("Mirror Armor lowers Speed of the partner Pokemon after Court
MESSAGE("Wobbuffet used Sticky Web!");
MESSAGE("Foe Wynaut used Court Change!");
MESSAGE("Foe Wynaut swapped the battle effects affecting each side!");
MESSAGE("Go! Corviknigh!");
MESSAGE("Corviknigh was caught in a Sticky Web!");
MESSAGE("Go! Corviknight!");
MESSAGE("Corviknight was caught in a Sticky Web!");
ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
MESSAGE("Wobbuffet's Speed fell!");

View File

@ -17,8 +17,8 @@ SINGLE_BATTLE_TEST("Protosynthesis boosts the highest stat")
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_SUNNY_DAY, player);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!");
MESSAGE("WalkngWake's Sp. Atk was heightened!");
MESSAGE("The harsh sunlight activated Walking Wake's Protosynthesis!");
MESSAGE("Walking Wake's Sp. Atk was heightened!");
}
}
@ -68,19 +68,19 @@ SINGLE_BATTLE_TEST("Protosynthesis ability pop up activates only once during the
} SCENE {
ABILITY_POPUP(opponent, ABILITY_DROUGHT);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!");
MESSAGE("WalkngWake's Sp. Atk was heightened!");
MESSAGE("The harsh sunlight activated Walking Wake's Protosynthesis!");
MESSAGE("Walking Wake's Sp. Atk was heightened!");
NONE_OF {
for (turns = 0; turns < 4; turns++) {
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!");
MESSAGE("WalkngWake's Sp. Atk was heightened!");
MESSAGE("The harsh sunlight activated Walking Wake's Protosynthesis!");
MESSAGE("Walking Wake's Sp. Atk was heightened!");
}
}
ANIMATION(ANIM_TYPE_MOVE, MOVE_SUNNY_DAY, opponent);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!");
MESSAGE("WalkngWake's Sp. Atk was heightened!");
MESSAGE("The harsh sunlight activated Walking Wake's Protosynthesis!");
MESSAGE("Walking Wake's Sp. Atk was heightened!");
}
}
@ -95,7 +95,7 @@ SINGLE_BATTLE_TEST("Protosynthesis activates on switch-in")
} SCENE {
ABILITY_POPUP(opponent, ABILITY_DROUGHT);
ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS);
MESSAGE("The harsh sunlight activated RoarngMoon's Protosynthesis!");
MESSAGE("RoarngMoon's Attack was heightened!");
MESSAGE("The harsh sunlight activated Roaring Moon's Protosynthesis!");
MESSAGE("Roaring Moon's Attack was heightened!");
}
}

View File

@ -1347,7 +1347,7 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Centiferno traps both opponents in Fire Spin
TURN { SWITCH(playerLeft, 2); }
} SCENE {
// turn 1
MESSAGE("Centiskorc used G-Max Centiferno!");
MESSAGE("Centiskorch used G-Max Centiferno!");
MESSAGE("Foe Wobbuffet is hurt by Fire Spin!");
HP_BAR(opponentLeft);
MESSAGE("Foe Wynaut is hurt by Fire Spin!");

View File

@ -123,8 +123,8 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - the
ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, BATTLER_PLAYER);
MESSAGE("A sticky web spreads out on the ground around the opposing team!");
MESSAGE("Go! Corviknigh!");
MESSAGE("Corviknigh was caught in a Sticky Web!");
MESSAGE("Go! Corviknight!");
MESSAGE("Corviknight was caught in a Sticky Web!");
ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, BATTLER_OPPONENT);
if (opponentSetUpper == 0) {
@ -170,8 +170,8 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - no o
MESSAGE("A sticky web spreads out on the ground around the opposing team!");
}
MESSAGE("Go! Corviknigh!");
MESSAGE("Corviknigh was caught in a Sticky Web!");
MESSAGE("Go! Corviknight!");
MESSAGE("Corviknight was caught in a Sticky Web!");
ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR);
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
} THEN {
@ -219,8 +219,8 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - no o
MESSAGE("2 sent out Pidgey!");
}
MESSAGE("Go! Corviknigh!");
MESSAGE("Corviknigh was caught in a Sticky Web!");
MESSAGE("Go! Corviknight!");
MESSAGE("Corviknight was caught in a Sticky Web!");
ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR);
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
} THEN {

View File

@ -269,3 +269,97 @@ TEST("Item names fit on Shop Screen")
}
EXPECT_LE(GetStringWidth(fontId, gItemsInfo[item].name, 0), widthPx);
}
TEST("Species names fit on Battle Screen HP box")
{
u32 i, genderWidthPx;
const u32 fontId = FONT_SMALL_NARROWER, widthPx = 54;
u32 species = SPECIES_NONE;
genderWidthPx = GetStringWidth(fontId, COMPOUND_STRING(""), 0);
for (i = 1; i < NUM_SPECIES; i++)
{
if (IsSpeciesEnabled(i))
{
PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; }
}
}
if (gSpeciesInfo[i].genderRatio != MON_GENDERLESS)
EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0) - genderWidthPx, widthPx);
else
EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0), widthPx);
}
TEST("Species names fit on Party Screen")
{
u32 i;
const u32 fontId = FONT_SMALL_NARROWER, widthPx = 50;
u32 species = SPECIES_NONE;
for (i = 1; i < NUM_SPECIES; i++)
{
if (IsSpeciesEnabled(i))
{
PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; }
}
}
EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0), widthPx);
}
TEST("Species names fit on Pokemon Summary Screen")
{
u32 i;
const u32 fontId = FONT_NARROWER, widthPx = 63;
u32 species = SPECIES_NONE;
for (i = 1; i < NUM_SPECIES; i++)
{
if (IsSpeciesEnabled(i))
{
PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; }
}
}
EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0), widthPx);
}
TEST("Species names fit on Pokedex Screen")
{
u32 i;
const u32 fontId = FONT_NARROWER, widthPx = 50;
u32 species = SPECIES_NONE;
for (i = 1; i < NUM_SPECIES; i++)
{
if (IsSpeciesEnabled(i))
{
PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; }
}
}
EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0), widthPx);
}
TEST("Species names fit on Pokemon Storage System")
{
u32 i;
u32 species = SPECIES_NONE;
for (i = 1; i < NUM_SPECIES; i++)
{
if (IsSpeciesEnabled(i))
{
PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; }
}
}
EXPECT_LE(GetStringWidth(FONT_NARROWER, gSpeciesInfo[species].speciesName, 0), 66);
EXPECT_LE(GetStringWidth(FONT_SHORT_NARROW, gSpeciesInfo[species].speciesName, 0), 60);
}
TEST("Species names fit on Contest Screen")
{
u32 i;
const u32 fontId = FONT_NARROWER, widthPx = 50;
u32 species = SPECIES_NONE;
for (i = 1; i < NUM_SPECIES; i++)
{
if (IsSpeciesEnabled(i))
{
PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; }
}
}
EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0), widthPx);
}