Ogerpon masks were missing their hold effects (#5391)
* Ogerpon masks were missing their hold effects * fix wrong num * test * correct tests and additional fix * added hold effect to battle debug
This commit is contained in:
parent
76656e85c2
commit
71dfd3e7c0
@ -155,11 +155,12 @@
|
|||||||
// Gen9 hold effects
|
// Gen9 hold effects
|
||||||
#define HOLD_EFFECT_ABILITY_SHIELD 175
|
#define HOLD_EFFECT_ABILITY_SHIELD 175
|
||||||
#define HOLD_EFFECT_CLEAR_AMULET 176
|
#define HOLD_EFFECT_CLEAR_AMULET 176
|
||||||
#define HOLD_EFFECT_MIRROR_HERB 177 // Not implemented.
|
#define HOLD_EFFECT_MIRROR_HERB 177
|
||||||
#define HOLD_EFFECT_PUNCHING_GLOVE 178
|
#define HOLD_EFFECT_PUNCHING_GLOVE 178
|
||||||
#define HOLD_EFFECT_COVERT_CLOAK 179
|
#define HOLD_EFFECT_COVERT_CLOAK 179
|
||||||
#define HOLD_EFFECT_LOADED_DICE 180
|
#define HOLD_EFFECT_LOADED_DICE 180
|
||||||
#define HOLD_EFFECT_BOOSTER_ENERGY 181 // Not implemented.
|
#define HOLD_EFFECT_BOOSTER_ENERGY 181
|
||||||
|
#define HOLD_EFFECT_OGERPON_MASK 182
|
||||||
|
|
||||||
// Gen2 hold effect
|
// Gen2 hold effect
|
||||||
#define HOLD_EFFECT_BERSERK_GENE 184
|
#define HOLD_EFFECT_BERSERK_GENE 184
|
||||||
|
|||||||
@ -2435,6 +2435,7 @@ static const u8 sText_HoldEffectCovertCloak[] = _("Covert Cloak");
|
|||||||
static const u8 sText_HoldEffectLoadedDice[] = _("Loaded Dice");
|
static const u8 sText_HoldEffectLoadedDice[] = _("Loaded Dice");
|
||||||
static const u8 sText_HoldEffectBoosterEnergy[] = _("Booster Energy");
|
static const u8 sText_HoldEffectBoosterEnergy[] = _("Booster Energy");
|
||||||
static const u8 sText_HoldEffectBerserkGene[] = _("Berserk Gene");
|
static const u8 sText_HoldEffectBerserkGene[] = _("Berserk Gene");
|
||||||
|
static const u8 sText_HoldEffectOgerponMask[] = _("Ogerpon Mask");
|
||||||
static const u8 *const sHoldEffectNames[] =
|
static const u8 *const sHoldEffectNames[] =
|
||||||
{
|
{
|
||||||
[HOLD_EFFECT_NONE] = sText_HoldEffectNone,
|
[HOLD_EFFECT_NONE] = sText_HoldEffectNone,
|
||||||
@ -2585,6 +2586,7 @@ static const u8 *const sHoldEffectNames[] =
|
|||||||
[HOLD_EFFECT_LOADED_DICE] = sText_HoldEffectLoadedDice,
|
[HOLD_EFFECT_LOADED_DICE] = sText_HoldEffectLoadedDice,
|
||||||
[HOLD_EFFECT_BOOSTER_ENERGY] = sText_HoldEffectBoosterEnergy,
|
[HOLD_EFFECT_BOOSTER_ENERGY] = sText_HoldEffectBoosterEnergy,
|
||||||
[HOLD_EFFECT_BERSERK_GENE] = sText_HoldEffectBerserkGene,
|
[HOLD_EFFECT_BERSERK_GENE] = sText_HoldEffectBerserkGene,
|
||||||
|
[HOLD_EFFECT_OGERPON_MASK] = sText_HoldEffectOgerponMask,
|
||||||
};
|
};
|
||||||
static const u8 *GetHoldEffectName(u16 holdEffect)
|
static const u8 *GetHoldEffectName(u16 holdEffect)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -9454,6 +9454,10 @@ static inline u32 CalcMoveBasePowerAfterModifiers(u32 move, u32 battlerAtk, u32
|
|||||||
if (gMovesInfo[move].punchingMove)
|
if (gMovesInfo[move].punchingMove)
|
||||||
modifier = uq4_12_multiply(modifier, UQ_4_12(1.1));
|
modifier = uq4_12_multiply(modifier, UQ_4_12(1.1));
|
||||||
break;
|
break;
|
||||||
|
case HOLD_EFFECT_OGERPON_MASK:
|
||||||
|
if (GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_OGERPON)
|
||||||
|
modifier = uq4_12_multiply(modifier, UQ_4_12(1.2));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Terastallization boosts weak, non-priority, non-multi hit moves after modifiers to 60 BP.
|
// Terastallization boosts weak, non-priority, non-multi hit moves after modifiers to 60 BP.
|
||||||
|
|||||||
@ -13659,6 +13659,8 @@ const struct Item gItemsInfo[] =
|
|||||||
{
|
{
|
||||||
.name = HANDLE_EXPANDED_ITEM_NAME("CornrstneMask", "Cornerstone Mask"),
|
.name = HANDLE_EXPANDED_ITEM_NAME("CornrstneMask", "Cornerstone Mask"),
|
||||||
.price = 0,
|
.price = 0,
|
||||||
|
.holdEffect = HOLD_EFFECT_OGERPON_MASK,
|
||||||
|
.holdEffectParam = 20,
|
||||||
.description = COMPOUND_STRING(
|
.description = COMPOUND_STRING(
|
||||||
"Allows Ogerpon to\n"
|
"Allows Ogerpon to\n"
|
||||||
"wield the Rock-\n"
|
"wield the Rock-\n"
|
||||||
@ -13674,6 +13676,8 @@ const struct Item gItemsInfo[] =
|
|||||||
{
|
{
|
||||||
.name = HANDLE_EXPANDED_ITEM_NAME("WellsprngMask", "Wellspring Mask"),
|
.name = HANDLE_EXPANDED_ITEM_NAME("WellsprngMask", "Wellspring Mask"),
|
||||||
.price = 0,
|
.price = 0,
|
||||||
|
.holdEffect = HOLD_EFFECT_OGERPON_MASK,
|
||||||
|
.holdEffectParam = 20,
|
||||||
.description = COMPOUND_STRING(
|
.description = COMPOUND_STRING(
|
||||||
"Allows Ogerpon to\n"
|
"Allows Ogerpon to\n"
|
||||||
"wield the Water-\n"
|
"wield the Water-\n"
|
||||||
@ -13689,6 +13693,8 @@ const struct Item gItemsInfo[] =
|
|||||||
{
|
{
|
||||||
.name = HANDLE_EXPANDED_ITEM_NAME("HrthflameMask", "Hearthflame Mask"),
|
.name = HANDLE_EXPANDED_ITEM_NAME("HrthflameMask", "Hearthflame Mask"),
|
||||||
.price = 0,
|
.price = 0,
|
||||||
|
.holdEffect = HOLD_EFFECT_OGERPON_MASK,
|
||||||
|
.holdEffectParam = 20,
|
||||||
.description = COMPOUND_STRING(
|
.description = COMPOUND_STRING(
|
||||||
"Allows Ogerpon to\n"
|
"Allows Ogerpon to\n"
|
||||||
"wield the Fire-\n"
|
"wield the Fire-\n"
|
||||||
|
|||||||
36
test/battle/hold_effect/ogerpon_mask.c
Normal file
36
test/battle/hold_effect/ogerpon_mask.c
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "test/battle.h"
|
||||||
|
|
||||||
|
ASSUMPTIONS
|
||||||
|
{
|
||||||
|
ASSUME(gItemsInfo[ITEM_CORNERSTONE_MASK].holdEffect == HOLD_EFFECT_OGERPON_MASK);
|
||||||
|
ASSUME(gItemsInfo[ITEM_WELLSPRING_MASK].holdEffect == HOLD_EFFECT_OGERPON_MASK);
|
||||||
|
ASSUME(gItemsInfo[ITEM_HEARTHFLAME_MASK].holdEffect == HOLD_EFFECT_OGERPON_MASK);
|
||||||
|
ASSUME(gItemsInfo[ITEM_CORNERSTONE_MASK].holdEffectParam == 20);
|
||||||
|
ASSUME(gItemsInfo[ITEM_WELLSPRING_MASK].holdEffectParam == 20);
|
||||||
|
ASSUME(gItemsInfo[ITEM_HEARTHFLAME_MASK].holdEffectParam == 20);
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Ogerpon Masks increase the base power of moves by 20%", s16 damage)
|
||||||
|
{
|
||||||
|
u32 species;
|
||||||
|
u32 item;
|
||||||
|
PARAMETRIZE { species = SPECIES_OGERPON_TEAL_MASK; item = ITEM_NONE; }
|
||||||
|
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING_MASK; item = ITEM_CORNERSTONE_MASK; }
|
||||||
|
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME_MASK; item = ITEM_WELLSPRING_MASK; }
|
||||||
|
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE_MASK; item = ITEM_HEARTHFLAME_MASK; }
|
||||||
|
|
||||||
|
GIVEN {
|
||||||
|
ASSUME(gMovesInfo[MOVE_TACKLE].power > 0);
|
||||||
|
PLAYER(species) { Item(item); }
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_TACKLE); }
|
||||||
|
} SCENE {
|
||||||
|
HP_BAR(opponent, captureDamage: &results[i].damage);
|
||||||
|
} FINALLY {
|
||||||
|
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.2), results[1].damage);
|
||||||
|
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.2), results[2].damage);
|
||||||
|
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.2), results[3].damage);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user