Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts: # data/battle_scripts_1.s # include/config/pokemon.h # src/birch_pc.c
This commit is contained in:
commit
2cc26d935a
15 changed files with 139 additions and 86 deletions
|
@ -758,6 +758,7 @@ struct BattleStruct
|
|||
u8 transformZeroToHero[NUM_BATTLE_SIDES];
|
||||
u8 intrepidSwordBoost[NUM_BATTLE_SIDES];
|
||||
u8 dauntlessShieldBoost[NUM_BATTLE_SIDES];
|
||||
u8 stickySyrupdBy[MAX_BATTLERS_COUNT];
|
||||
};
|
||||
|
||||
// The palaceFlags member of struct BattleStruct contains 1 flag per move to indicate which moves the AI should consider,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef GUARD_BIRCH_PC_H
|
||||
#define GUARD_BIRCH_PC_H
|
||||
|
||||
const u8 *GetPokedexRatingText(u16 count);
|
||||
const u8 *GetPokedexRatingText(u32 count);
|
||||
|
||||
#endif // GUARD_BIRCH_PC_H
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#define P_FOOTPRINTS TRUE // If TRUE, Pokémon will have footprints (as was the case up to Gen 5 and in BDSP). Disabling this saves some ROM space.
|
||||
#define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs.
|
||||
#define P_EV_CAP GEN_LATEST // Since Gen 6, the max EVs per stat is 252 instead of 255.
|
||||
#define P_CATCH_CURVE GEN_LATEST // Since Gen 6, the capture rate curve was changed to make pokeballs more effective on lower level pokemon
|
||||
#define P_SHOW_TERA_TYPE GEN_LATEST // Since Gen 9, the Tera Type is shown on the summary screen.
|
||||
|
||||
// Flag settings
|
||||
|
|
|
@ -432,7 +432,8 @@ struct SpeciesInfo /*0x8C*/
|
|||
u32 isPaldeanForm:1;
|
||||
u32 cannotBeTraded:1;
|
||||
u32 allPerfectIVs:1;
|
||||
u32 padding4:18;
|
||||
u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set.
|
||||
u32 padding4:17;
|
||||
// Move Data
|
||||
/* 0x80 */ const struct LevelUpMove *levelUpLearnset;
|
||||
/* 0x84 */ const u16 *teachableLearnset;
|
||||
|
|
|
@ -3139,6 +3139,8 @@ void SwitchInClearSetData(u32 battler)
|
|||
gBattleMons[i].status2 &= ~STATUS2_INFATUATED_WITH(battler);
|
||||
if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == battler)
|
||||
gBattleMons[i].status2 &= ~STATUS2_WRAPPED;
|
||||
if ((gStatuses4[i] & STATUS4_SYRUP_BOMB) && *(gBattleStruct->stickySyrupdBy + i) == battler)
|
||||
gStatuses4[i] &= ~STATUS4_SYRUP_BOMB;
|
||||
}
|
||||
|
||||
gActionSelectionCursor[battler] = 0;
|
||||
|
@ -3243,6 +3245,8 @@ const u8* FaintClearSetData(u32 battler)
|
|||
gBattleMons[i].status2 &= ~STATUS2_INFATUATED_WITH(battler);
|
||||
if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == battler)
|
||||
gBattleMons[i].status2 &= ~STATUS2_WRAPPED;
|
||||
if ((gStatuses4[i] & STATUS4_SYRUP_BOMB) && *(gBattleStruct->stickySyrupdBy + i) == battler)
|
||||
gStatuses4[i] &= ~STATUS4_SYRUP_BOMB;
|
||||
}
|
||||
|
||||
gActionSelectionCursor[battler] = 0;
|
||||
|
@ -4967,7 +4971,7 @@ static void TurnValuesCleanUp(bool8 var0)
|
|||
gSideStatuses[B_SIDE_OPPONENT] &= ~(SIDE_STATUS_QUICK_GUARD | SIDE_STATUS_WIDE_GUARD | SIDE_STATUS_CRAFTY_SHIELD | SIDE_STATUS_MAT_BLOCK);
|
||||
gSideTimers[B_SIDE_PLAYER].followmeTimer = 0;
|
||||
gSideTimers[B_SIDE_OPPONENT].followmeTimer = 0;
|
||||
|
||||
|
||||
gBattleStruct->pledgeMove = FALSE; // combined pledge move may not have been used due to a canceller
|
||||
}
|
||||
|
||||
|
|
|
@ -1584,8 +1584,8 @@ static bool32 AccuracyCalcHelper(u16 move)
|
|||
|
||||
if (WEATHER_HAS_EFFECT)
|
||||
{
|
||||
if (IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN) &&
|
||||
(gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE ||
|
||||
if (IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN) &&
|
||||
(gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE ||
|
||||
move == MOVE_BLEAKWIND_STORM || move == MOVE_WILDBOLT_STORM || move == MOVE_SANDSEAR_STORM))
|
||||
{
|
||||
// thunder/hurricane/genie moves ignore acc checks in rain unless target is holding utility umbrella
|
||||
|
@ -3161,7 +3161,8 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
|||
gBattlerAbility = gEffectBattler;
|
||||
RecordAbilityBattle(gEffectBattler, ABILITY_INNER_FOCUS);
|
||||
gBattlescriptCurrInstr = BattleScript_FlinchPrevention;
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattlescriptCurrInstr++;
|
||||
}
|
||||
|
@ -3169,7 +3170,7 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
|||
else if (GetBattlerTurnOrderNum(gEffectBattler) > gCurrentTurnActionNumber
|
||||
&& !IsDynamaxed(gEffectBattler))
|
||||
{
|
||||
gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect];
|
||||
gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect];
|
||||
gBattlescriptCurrInstr++;
|
||||
}
|
||||
break;
|
||||
|
@ -3704,6 +3705,7 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
|||
gStatuses4[gEffectBattler] |= STATUS4_SYRUP_BOMB;
|
||||
gDisableStructs[gEffectBattler].syrupBombTimer = 3;
|
||||
gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattlerAttacker]]);
|
||||
gBattleStruct->stickySyrupdBy[gEffectBattler] = gBattlerAttacker;
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_SyrupBombActivates;
|
||||
}
|
||||
|
@ -14979,7 +14981,7 @@ static void Cmd_handleballthrow(void)
|
|||
if (gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL] < 255)
|
||||
gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL]++;
|
||||
|
||||
if (odds >= 255) // mon caught
|
||||
if (odds > 254) // mon caught
|
||||
{
|
||||
BtlController_EmitBallThrowAnim(gBattlerAttacker, BUFFER_A, BALL_3_SHAKES_SUCCESS);
|
||||
MarkBattlerForControllerExec(gBattlerAttacker);
|
||||
|
@ -15024,16 +15026,8 @@ static void Cmd_handleballthrow(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (P_CATCH_CURVE >= GEN_6)
|
||||
{
|
||||
odds = (255 * 255 * 255) / (odds * odds * odds);
|
||||
odds = 65536 / Sqrt(Sqrt(Sqrt(Sqrt(odds))));
|
||||
}
|
||||
else
|
||||
{
|
||||
odds = Sqrt(Sqrt(16711680 / odds));
|
||||
odds = 1048560 / odds;
|
||||
}
|
||||
odds = Sqrt(Sqrt(16711680 / odds));
|
||||
odds = 1048560 / odds;
|
||||
for (shakes = 0; shakes < maxShakes && Random() < odds; shakes++);
|
||||
}
|
||||
|
||||
|
|
|
@ -20,13 +20,6 @@ bool16 ScriptGetPokedexInfo(void)
|
|||
return IsNationalPokedexEnabled();
|
||||
}
|
||||
|
||||
// Species in this array are ignored in the progress towards a full regional dex
|
||||
static const u16 sRegionalNotCountedList[] = {
|
||||
SPECIES_JIRACHI,
|
||||
SPECIES_DEOXYS,
|
||||
SPECIES_NONE
|
||||
};
|
||||
|
||||
#define BIRCH_DEX_STRINGS 21
|
||||
|
||||
static const u8 *const sBirchDexRatingTexts[BIRCH_DEX_STRINGS] =
|
||||
|
@ -55,15 +48,20 @@ static const u8 *const sBirchDexRatingTexts[BIRCH_DEX_STRINGS] =
|
|||
};
|
||||
|
||||
// This shows your Hoenn Pokédex rating and not your National Dex.
|
||||
const u8 *GetPokedexRatingText(u16 count)
|
||||
const u8 *GetPokedexRatingText(u32 count)
|
||||
{
|
||||
u32 i;
|
||||
u32 i, j;
|
||||
u16 maxDex = HOENN_DEX_COUNT - 1;
|
||||
for(i = 0; sRegionalNotCountedList[i] != SPECIES_NONE; i++)
|
||||
// doesNotCountForRegionalPokedex
|
||||
for(i = 0; i < HOENN_DEX_COUNT; i++)
|
||||
{
|
||||
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(sRegionalNotCountedList[i]), FLAG_GET_CAUGHT))
|
||||
count--;
|
||||
maxDex--;
|
||||
j = NationalPokedexNumToSpecies(HoennToNationalOrder(i + 1));
|
||||
if (gSpeciesInfo[j].isMythical && !gSpeciesInfo[j].dexForceRequired)
|
||||
{
|
||||
if (GetSetPokedexFlag(j, FLAG_GET_CAUGHT))
|
||||
count--;
|
||||
maxDex--;
|
||||
}
|
||||
}
|
||||
return sBirchDexRatingTexts[(count * (BIRCH_DEX_STRINGS - 1)) / maxDex];
|
||||
}
|
||||
|
|
|
@ -7659,7 +7659,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
ICON(VoltorbHisuian, 0),
|
||||
LEARNSETS(VoltorbHisuian),
|
||||
.isHisuianForm = TRUE,
|
||||
.evolutions = EVOLUTION({EVO_LEVEL, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}),
|
||||
.evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}),
|
||||
},
|
||||
|
||||
[SPECIES_ELECTRODE_HISUIAN] =
|
||||
|
@ -10161,12 +10161,6 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
|
||||
#if P_FAMILY_TAUROS
|
||||
#define TAUROS_MISC_INFO \
|
||||
.baseHP = 75, \
|
||||
.baseAttack = 100, \
|
||||
.baseDefense = 95, \
|
||||
.baseSpeed = 110, \
|
||||
.baseSpAttack = 40, \
|
||||
.baseSpDefense = 70, \
|
||||
.catchRate = 45, \
|
||||
.expYield = 172, \
|
||||
.genderRatio = MON_MALE, \
|
||||
|
@ -10189,6 +10183,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
[SPECIES_TAUROS] =
|
||||
{
|
||||
TAUROS_MISC_INFO,
|
||||
.baseHP = 75,
|
||||
.baseAttack = 100,
|
||||
.baseDefense = 95,
|
||||
.baseSpeed = 110,
|
||||
.baseSpAttack = 40,
|
||||
.baseSpDefense = 70,
|
||||
.types = { TYPE_NORMAL, TYPE_NORMAL },
|
||||
.evYield_Attack = 1,
|
||||
.evYield_Speed = 1,
|
||||
|
@ -10214,13 +10214,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
},
|
||||
|
||||
#if P_PALDEAN_FORMS
|
||||
#define TAUROS_PALDEAN_MISC_INFO \
|
||||
.baseHP = 75, \
|
||||
.baseAttack = 110, \
|
||||
.baseDefense = 105, \
|
||||
.baseSpeed = 100, \
|
||||
.baseSpAttack = 30, \
|
||||
.baseSpDefense = 70, \
|
||||
.evYield_Attack = 2, \
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, \
|
||||
.bodyColor = BODY_COLOR_BLACK, \
|
||||
.frontAnimFrames = sAnims_TaurosPaldean, \
|
||||
/*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \
|
||||
.backAnimId = BACK_ANIM_V_SHAKE_LOW, \
|
||||
.isPaldeanForm = TRUE
|
||||
|
||||
[SPECIES_TAUROS_PALDEAN_COMBAT_BREED] =
|
||||
{
|
||||
TAUROS_MISC_INFO,
|
||||
TAUROS_PALDEAN_MISC_INFO,
|
||||
.types = { TYPE_FIGHTING, TYPE_FIGHTING },
|
||||
.evYield_Attack = 2,
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW },
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.weight = 1150,
|
||||
.description = COMPOUND_STRING(
|
||||
"This Pokémon has a muscular body\n"
|
||||
|
@ -10229,24 +10242,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
"the opponent’s weak spots."),
|
||||
FRONT_PIC(TaurosPaldeanCombatBreed, 64, 64),
|
||||
.frontPicYOffset = 5,
|
||||
.frontAnimFrames = sAnims_TaurosPaldean,
|
||||
//.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,
|
||||
BACK_PIC(TaurosPaldeanCombatBreed, 64, 48),
|
||||
.backPicYOffset = 9,
|
||||
.backAnimId = BACK_ANIM_V_SHAKE_LOW,
|
||||
PALETTES(TaurosPaldeanCombatBreed),
|
||||
ICON(TaurosPaldeanCombatBreed, 0),
|
||||
LEARNSETS(TaurosPaldeanCombatBreed),
|
||||
.isPaldeanForm = TRUE,
|
||||
},
|
||||
|
||||
[SPECIES_TAUROS_PALDEAN_BLAZE_BREED] =
|
||||
{
|
||||
TAUROS_MISC_INFO,
|
||||
TAUROS_PALDEAN_MISC_INFO,
|
||||
.types = { TYPE_FIGHTING, TYPE_FIRE },
|
||||
.evYield_Attack = 2,
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW },
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.weight = 850,
|
||||
.description = COMPOUND_STRING(
|
||||
"When heated by fire energy, its horns can\n"
|
||||
|
@ -10255,24 +10262,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
"both wounds and burns."),
|
||||
FRONT_PIC(TaurosPaldeanBlazeBreed, 64, 64),
|
||||
.frontPicYOffset = 5,
|
||||
.frontAnimFrames = sAnims_TaurosPaldean,
|
||||
//.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,
|
||||
BACK_PIC(TaurosPaldeanBlazeBreed, 64, 48),
|
||||
.backPicYOffset = 9,
|
||||
.backAnimId = BACK_ANIM_V_SHAKE_LOW,
|
||||
PALETTES(TaurosPaldeanBlazeBreed),
|
||||
ICON(TaurosPaldeanBlazeBreed, 0),
|
||||
LEARNSETS(TaurosPaldeanBlazeBreed),
|
||||
.isPaldeanForm = TRUE,
|
||||
},
|
||||
|
||||
[SPECIES_TAUROS_PALDEAN_AQUA_BREED] =
|
||||
{
|
||||
TAUROS_MISC_INFO,
|
||||
TAUROS_PALDEAN_MISC_INFO,
|
||||
.types = { TYPE_FIGHTING, TYPE_WATER },
|
||||
.evYield_Attack = 2,
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW },
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.weight = 1100,
|
||||
.description = COMPOUND_STRING(
|
||||
"This Pokémon blasts water from holes on\n"
|
||||
|
@ -10281,15 +10282,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
"Tauros’s enemies."),
|
||||
FRONT_PIC(TaurosPaldeanAquaBreed, 64, 64),
|
||||
.frontPicYOffset = 5,
|
||||
.frontAnimFrames = sAnims_TaurosPaldean,
|
||||
//.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,
|
||||
BACK_PIC(TaurosPaldeanAquaBreed, 64, 48),
|
||||
.backPicYOffset = 9,
|
||||
.backAnimId = BACK_ANIM_V_SHAKE_LOW,
|
||||
PALETTES(TaurosPaldeanAquaBreed),
|
||||
ICON(TaurosPaldeanAquaBreed, 0),
|
||||
LEARNSETS(TaurosPaldeanAquaBreed),
|
||||
.isPaldeanForm = TRUE,
|
||||
},
|
||||
#endif //P_PALDEAN_FORMS
|
||||
#endif //P_FAMILY_TAUROS
|
||||
|
|
|
@ -8733,7 +8733,9 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.evYield_Attack = 1,
|
||||
.evYield_Defense = 1,
|
||||
.description = COMPOUND_STRING(
|
||||
""),
|
||||
"Meloetta's melodies are sung with\n"
|
||||
"a special vocalization method that can\n"
|
||||
"control the feelings of those who hear it."),
|
||||
FRONT_PIC(MeloettaPirouette, 40, 64),
|
||||
.frontPicYOffset = 2,
|
||||
.frontAnimFrames = sAnims_MeloettaPirouette,
|
||||
|
|
|
@ -4332,7 +4332,10 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
|
|||
.height = 11,
|
||||
.weight = 278,
|
||||
.description = COMPOUND_STRING(
|
||||
""),
|
||||
"The impurities upon its body's surface\n"
|
||||
"have fallen away, sparkling so brilliantly\n"
|
||||
"that cannot be observed directly.\n"
|
||||
"It is known as “the Royal Pink Princess”."),
|
||||
.pokemonScale = 365,
|
||||
.pokemonOffset = 12,
|
||||
.trainerScale = 256,
|
||||
|
@ -4422,7 +4425,10 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
|
|||
.height = 65,
|
||||
.weight = 490,
|
||||
.description = COMPOUND_STRING(
|
||||
""),
|
||||
"It is the true form of Hoopa, which has had\n"
|
||||
"its power sealed away. The rings it carries\n"
|
||||
"have the power to bend dimensions and are\n"
|
||||
"able to seize anything in the world."),
|
||||
.pokemonScale = 432,
|
||||
.pokemonOffset = 13,
|
||||
.trainerScale = 256,
|
||||
|
|
|
@ -2097,8 +2097,10 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
|
|||
.height = 220,
|
||||
.weight = 0,
|
||||
.description = COMPOUND_STRING(
|
||||
"")
|
||||
,
|
||||
"Its sand pouch has grown to tremendous\n"
|
||||
"proportions. More than 1,000,000 tons of\n"
|
||||
"sand now swirl around its body with enough\n"
|
||||
"speed and power to pulverize a skyscraper."),
|
||||
.pokemonScale = 256,
|
||||
.pokemonOffset = 0,
|
||||
.trainerScale = 610,
|
||||
|
@ -3372,7 +3374,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
|
|||
#if P_GIGANTAMAX_FORMS
|
||||
[SPECIES_ALCREMIE_GIGANTAMAX] =
|
||||
{
|
||||
ALCREMIE_MISC_INFO(BODY_COLOR_PINK),
|
||||
ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW),
|
||||
.isGigantamax = TRUE,
|
||||
.speciesName = _("Alcremie"),
|
||||
.cryId = CRY_ALCREMIE,
|
||||
|
|
|
@ -1622,7 +1622,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE },
|
||||
.abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR },
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Ceruledge"),
|
||||
.cryId = CRY_CERULEDGE,
|
||||
.natDexNum = NATIONAL_DEX_CERULEDGE,
|
||||
|
@ -3670,7 +3670,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
[SPECIES_TATSUGIRI_CURLY] =
|
||||
{
|
||||
TATSUGIRI_MISC_INFO,
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.cryId = CRY_TATSUGIRI_CURLY,
|
||||
.description = COMPOUND_STRING(
|
||||
"This is a small dragon Pokémon. It\n"
|
||||
|
@ -3686,7 +3686,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
[SPECIES_TATSUGIRI_DROOPY] =
|
||||
{
|
||||
TATSUGIRI_MISC_INFO,
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.cryId = CRY_TATSUGIRI_DROOPY,
|
||||
.description = COMPOUND_STRING(
|
||||
"This Pokémon tricks its opponents\n"
|
||||
|
@ -3833,7 +3833,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },
|
||||
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.isParadoxForm = TRUE,
|
||||
.speciesName = _("BruteBonet"),
|
||||
.cryId = CRY_BRUTE_BONNET,
|
||||
|
@ -3936,7 +3936,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },
|
||||
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.isParadoxForm = TRUE,
|
||||
.speciesName = _("SlithrWing"),
|
||||
.cryId = CRY_SLITHER_WING,
|
||||
|
@ -4236,7 +4236,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },
|
||||
.abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.isParadoxForm = TRUE,
|
||||
.speciesName = _("Iron Moth"),
|
||||
.cryId = CRY_IRON_MOTH,
|
||||
|
@ -4385,7 +4385,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL },
|
||||
.abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY },
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Arctibax"),
|
||||
.cryId = CRY_ARCTIBAX,
|
||||
.natDexNum = NATIONAL_DEX_ARCTIBAX,
|
||||
|
@ -4433,7 +4433,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL },
|
||||
.abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY },
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Baxcalibur"),
|
||||
.cryId = CRY_BAXCALIBUR,
|
||||
.natDexNum = NATIONAL_DEX_BAXCALIBUR,
|
||||
|
@ -4495,7 +4495,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.baseSpAttack = 75,
|
||||
.baseSpDefense = 70,
|
||||
.abilities = { ABILITY_RATTLED, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.categoryName = _("Coin Chest"),
|
||||
.height = 3,
|
||||
.weight = 50,
|
||||
|
@ -4526,7 +4526,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.baseSpAttack = 75,
|
||||
.baseSpDefense = 45,
|
||||
.abilities = { ABILITY_RUN_AWAY, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.categoryName = _("Coin Hunter"),
|
||||
.height = 1,
|
||||
.weight = 1,
|
||||
|
@ -4815,7 +4815,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },
|
||||
.abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.isParadoxForm = TRUE,
|
||||
.speciesName = _("RoarngMoon"),
|
||||
.cryId = CRY_ROARING_MOON,
|
||||
|
@ -4966,7 +4966,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
|||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },
|
||||
.abilities = { ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE },
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.isLegendary = TRUE,
|
||||
.isParadoxForm = TRUE,
|
||||
.speciesName = _("Miraidon"),
|
||||
|
|
|
@ -4376,12 +4376,12 @@ u16 GetKantoPokedexCount(u8 caseID)
|
|||
|
||||
bool16 HasAllHoennMons(void)
|
||||
{
|
||||
u16 i;
|
||||
u32 i, j;
|
||||
|
||||
// -2 excludes Jirachi and Deoxys
|
||||
for (i = 0; i < HOENN_DEX_COUNT - 2; i++)
|
||||
for (i = 0; i < HOENN_DEX_COUNT; i++)
|
||||
{
|
||||
if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
|
||||
j = HoennToNationalOrder(i + 1);
|
||||
if (!(gSpeciesInfo[j].isMythical && !gSpeciesInfo[j].dexForceRequired) && !GetSetPokedexFlag(j, FLAG_GET_CAUGHT))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -4389,7 +4389,7 @@ bool16 HasAllHoennMons(void)
|
|||
|
||||
bool8 HasAllKantoMons(void)
|
||||
{
|
||||
u16 i;
|
||||
u32 i;
|
||||
|
||||
// -1 excludes Mew
|
||||
for (i = 0; i < KANTO_DEX_COUNT - 1; i++)
|
||||
|
@ -4402,11 +4402,12 @@ bool8 HasAllKantoMons(void)
|
|||
|
||||
bool16 HasAllMons(void)
|
||||
{
|
||||
u16 i;
|
||||
u32 i, j;
|
||||
|
||||
for (i = 1; i < NATIONAL_DEX_COUNT + 1; i++)
|
||||
{
|
||||
if (!(gSpeciesInfo[i].isMythical) && !GetSetPokedexFlag(i, FLAG_GET_CAUGHT))
|
||||
j = NationalPokedexNumToSpecies(i);
|
||||
if (!(gSpeciesInfo[j].isMythical && !gSpeciesInfo[j].dexForceRequired) && !GetSetPokedexFlag(j, FLAG_GET_CAUGHT))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -199,7 +199,7 @@ static const u8 sText_Dex_OWN[] = _("OWN");
|
|||
static const u8 sText_EVO_Buttons[] = _("{DPAD_UPDOWN}EVOs {A_BUTTON}CHECK");
|
||||
static const u8 sText_EVO_Buttons_Decapped[] = _("{DPAD_UPDOWN}Evos {A_BUTTON}Check");
|
||||
static const u8 sText_EVO_Buttons_PE[] = _("{DPAD_UPDOWN}EVOs {A_BUTTON}CHECK {START_BUTTON}FORMs");
|
||||
static const u8 sText_EVO_Buttons_Decapped_PE[] = _("{DPAD_UPDOWN}Evos {A_BUTTON}Check {START_BUTTON}Froms");
|
||||
static const u8 sText_EVO_Buttons_Decapped_PE[] = _("{DPAD_UPDOWN}Evos {A_BUTTON}Check {START_BUTTON}Forms");
|
||||
static const u8 sText_EVO_Name[] = _("{STR_VAR_3}:");
|
||||
static const u8 sText_EVO_PreEvo[] = _("{STR_VAR_1} evolves from {STR_VAR_2}");
|
||||
static const u8 sText_EVO_PreEvo_PE_Mega[] = _("{STR_VAR_1} Mega Evolves with {STR_VAR_2}");
|
||||
|
|
|
@ -164,3 +164,51 @@ SINGLE_BATTLE_TEST("Sticky syrup will not decrease speed further then minus six"
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Sticky Syrup is removed when the user switches out")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SYRUP_BOMB); }
|
||||
TURN { SWITCH(player, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Sticky Syrup is removed when the user faints")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SYRUP_BOMB);
|
||||
MOVE(opponent, MOVE_TACKLE);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent);
|
||||
HP_BAR(player);
|
||||
MESSAGE("Wobbuffet fainted!");
|
||||
MESSAGE("Go! Wynaut!");
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent);
|
||||
MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue