Schooling
This commit is contained in:
parent
f8f61c10ac
commit
633ebe6148
3 changed files with 17 additions and 7 deletions
|
@ -17,6 +17,8 @@
|
||||||
#define SPECIES_DARMANITAN_ZEN 10002
|
#define SPECIES_DARMANITAN_ZEN 10002
|
||||||
#define SPECIES_MINIOR_CORE 0
|
#define SPECIES_MINIOR_CORE 0
|
||||||
#define SPECIES_MINIOR 10003
|
#define SPECIES_MINIOR 10003
|
||||||
|
#define SPECIES_WISHIWASHI SPECIES_SKARMORY
|
||||||
|
#define SPECIES_WISHIWASHI_SCHOOL SPECIES_HO_OH
|
||||||
|
|
||||||
// Items with peculiar battle effects. Remove them if they're properly placed in constant/items.h
|
// Items with peculiar battle effects. Remove them if they're properly placed in constant/items.h
|
||||||
#define ITEM_GRISEOUS_ORB 0
|
#define ITEM_GRISEOUS_ORB 0
|
||||||
|
|
|
@ -2755,11 +2755,12 @@ static bool32 TryChangeBattleTerrain(u32 battler, u32 statusFlag, u8 *timer)
|
||||||
|
|
||||||
static bool32 ShouldChangeFormHpBased(u32 battler)
|
static bool32 ShouldChangeFormHpBased(u32 battler)
|
||||||
{
|
{
|
||||||
// Ability, form >, form <=
|
// Ability, form >, form <=, hp divided
|
||||||
static const u16 forms[][3] =
|
static const u16 forms[][4] =
|
||||||
{
|
{
|
||||||
{ABILITY_ZEN_MODE, SPECIES_DARMANITAN, SPECIES_DARMANITAN_ZEN},
|
{ABILITY_ZEN_MODE, SPECIES_DARMANITAN, SPECIES_DARMANITAN_ZEN, 2},
|
||||||
{ABILITY_SHIELDS_DOWN, SPECIES_MINIOR, SPECIES_MINIOR_CORE},
|
{ABILITY_SHIELDS_DOWN, SPECIES_MINIOR, SPECIES_MINIOR_CORE, 2},
|
||||||
|
{ABILITY_SCHOOLING, SPECIES_WISHIWASHI_SCHOOL, SPECIES_WISHIWASHI, 4},
|
||||||
};
|
};
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
|
@ -2768,13 +2769,13 @@ static bool32 ShouldChangeFormHpBased(u32 battler)
|
||||||
if (gBattleMons[battler].ability == forms[i][0])
|
if (gBattleMons[battler].ability == forms[i][0])
|
||||||
{
|
{
|
||||||
if (gBattleMons[battler].species == forms[i][2]
|
if (gBattleMons[battler].species == forms[i][2]
|
||||||
&& gBattleMons[battler].hp > gBattleMons[battler].maxHP / 2)
|
&& gBattleMons[battler].hp > gBattleMons[battler].maxHP / forms[i][3])
|
||||||
{
|
{
|
||||||
gBattleMons[battler].species = forms[i][1];
|
gBattleMons[battler].species = forms[i][1];
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (gBattleMons[battler].species == forms[i][1]
|
if (gBattleMons[battler].species == forms[i][1]
|
||||||
&& gBattleMons[battler].hp <= gBattleMons[battler].maxHP / 2)
|
&& gBattleMons[battler].hp <= gBattleMons[battler].maxHP / forms[i][3])
|
||||||
{
|
{
|
||||||
gBattleMons[battler].species = forms[i][2];
|
gBattleMons[battler].species = forms[i][2];
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -3093,6 +3094,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ABILITY_SCHOOLING:
|
||||||
|
if (gBattleMons[battler].level < 20)
|
||||||
|
break;
|
||||||
case ABILITY_SHIELDS_DOWN:
|
case ABILITY_SHIELDS_DOWN:
|
||||||
if (ShouldChangeFormHpBased(battler))
|
if (ShouldChangeFormHpBased(battler))
|
||||||
{
|
{
|
||||||
|
@ -3249,6 +3253,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||||
effect++;
|
effect++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ABILITY_SCHOOLING:
|
||||||
|
if (gBattleMons[battler].level < 20)
|
||||||
|
break;
|
||||||
case ABILITY_ZEN_MODE:
|
case ABILITY_ZEN_MODE:
|
||||||
case ABILITY_SHIELDS_DOWN:
|
case ABILITY_SHIELDS_DOWN:
|
||||||
if ((effect = ShouldChangeFormHpBased(battler)))
|
if ((effect = ShouldChangeFormHpBased(battler)))
|
||||||
|
@ -6582,6 +6589,7 @@ void UndoFormChange(u32 monId, u32 side)
|
||||||
{SPECIES_MIMIKYU_BUSTED, SPECIES_MIMIKYU},
|
{SPECIES_MIMIKYU_BUSTED, SPECIES_MIMIKYU},
|
||||||
{SPECIES_DARMANITAN_ZEN, SPECIES_DARMANITAN},
|
{SPECIES_DARMANITAN_ZEN, SPECIES_DARMANITAN},
|
||||||
{SPECIES_MINIOR, SPECIES_MINIOR_CORE},
|
{SPECIES_MINIOR, SPECIES_MINIOR_CORE},
|
||||||
|
{SPECIES_WISHIWASHI_SCHOOL, SPECIES_WISHIWASHI},
|
||||||
};
|
};
|
||||||
|
|
||||||
currSpecies = GetMonData(&party[monId], MON_DATA_SPECIES, NULL);
|
currSpecies = GetMonData(&party[monId], MON_DATA_SPECIES, NULL);
|
||||||
|
|
|
@ -7296,7 +7296,7 @@ const struct BaseStats gBaseStats[] =
|
||||||
.growthRate = GROWTH_SLOW,
|
.growthRate = GROWTH_SLOW,
|
||||||
.eggGroup1 = EGG_GROUP_FLYING,
|
.eggGroup1 = EGG_GROUP_FLYING,
|
||||||
.eggGroup2 = EGG_GROUP_FLYING,
|
.eggGroup2 = EGG_GROUP_FLYING,
|
||||||
.abilities = {ABILITY_KEEN_EYE, ABILITY_STURDY},
|
.abilities = {ABILITY_SCHOOLING, ABILITY_SCHOOLING},
|
||||||
.safariZoneFleeRate = 0,
|
.safariZoneFleeRate = 0,
|
||||||
.bodyColor = BODY_COLOR_GRAY,
|
.bodyColor = BODY_COLOR_GRAY,
|
||||||
.noFlip = FALSE,
|
.noFlip = FALSE,
|
||||||
|
|
Loading…
Reference in a new issue