implemented G-Max Drum Solo, G-Max Hydrosnipe, G-Max Fireball
This commit is contained in:
parent
92c8503869
commit
05fe62cbab
@ -50,10 +50,12 @@ enum MaxMoveEffect
|
|||||||
MAX_EFFECT_TORMENT_FOES,
|
MAX_EFFECT_TORMENT_FOES,
|
||||||
MAX_EFFECT_LOWER_SPEED_2_FOES,
|
MAX_EFFECT_LOWER_SPEED_2_FOES,
|
||||||
MAX_EFFECT_FIRE_SPIN_FOES,
|
MAX_EFFECT_FIRE_SPIN_FOES,
|
||||||
|
MAX_EFFECT_FIXED_POWER,
|
||||||
};
|
};
|
||||||
|
|
||||||
bool8 ShouldUseMaxMove(u16 battlerId, u16 baseMove);
|
bool8 ShouldUseMaxMove(u16 battlerId, u16 baseMove);
|
||||||
u16 GetMaxMove(u16 battlerId, u16 baseMove);
|
u16 GetMaxMove(u16 battlerId, u16 baseMove);
|
||||||
|
u8 GetMaxMovePower(u16 move);
|
||||||
bool8 IsMaxMove(u16 move);
|
bool8 IsMaxMove(u16 move);
|
||||||
const u8 *GetMaxMoveName(u16 move);
|
const u8 *GetMaxMoveName(u16 move);
|
||||||
void ChooseDamageNonTypesString(u8 move);
|
void ChooseDamageNonTypesString(u8 move);
|
||||||
|
|||||||
@ -22,7 +22,7 @@ static const u16 sMaxMoveTable[] =
|
|||||||
[TYPE_GHOST] = MOVE_MAX_PHANTASM,
|
[TYPE_GHOST] = MOVE_MAX_PHANTASM,
|
||||||
[TYPE_STEEL] = MOVE_MAX_STEELSPIKE,
|
[TYPE_STEEL] = MOVE_MAX_STEELSPIKE,
|
||||||
[TYPE_FIRE] = MOVE_MAX_FLARE,
|
[TYPE_FIRE] = MOVE_MAX_FLARE,
|
||||||
[TYPE_WATER] = MOVE_MAX_GEYSER,
|
[TYPE_WATER] = MOVE_G_MAX_HYDROSNIPE,
|
||||||
[TYPE_GRASS] = MOVE_MAX_OVERGROWTH,
|
[TYPE_GRASS] = MOVE_MAX_OVERGROWTH,
|
||||||
[TYPE_ELECTRIC] = MOVE_MAX_LIGHTNING,
|
[TYPE_ELECTRIC] = MOVE_MAX_LIGHTNING,
|
||||||
[TYPE_PSYCHIC] = MOVE_MAX_MINDSTORM,
|
[TYPE_PSYCHIC] = MOVE_MAX_MINDSTORM,
|
||||||
@ -76,6 +76,8 @@ static const struct GMaxMove sGMaxMoveTable[] =
|
|||||||
{SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GMAX, TYPE_WATER, MOVE_G_MAX_RAPID_FLOW},
|
{SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GMAX, TYPE_WATER, MOVE_G_MAX_RAPID_FLOW},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern u8 gMaxMovePowers[MOVES_COUNT];
|
||||||
|
|
||||||
// Returns whether a move should be converted into a Max Move.
|
// Returns whether a move should be converted into a Max Move.
|
||||||
bool8 ShouldUseMaxMove(u16 battlerId, u16 baseMove)
|
bool8 ShouldUseMaxMove(u16 battlerId, u16 baseMove)
|
||||||
{
|
{
|
||||||
@ -109,6 +111,15 @@ u16 GetMaxMove(u16 battlerId, u16 baseMove)
|
|||||||
return move;
|
return move;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gets the base power of a Max Move.
|
||||||
|
u8 GetMaxMovePower(u16 move)
|
||||||
|
{
|
||||||
|
if (gBattleMoves[GetMaxMove(gBattlerAttacker, move)].argument == MAX_EFFECT_FIXED_POWER)
|
||||||
|
return 160;
|
||||||
|
else
|
||||||
|
return gMaxMovePowers[move]; // TODO: Rework to a field in gBattleMoves.
|
||||||
|
}
|
||||||
|
|
||||||
// Returns whether a move is a Max Move or not.
|
// Returns whether a move is a Max Move or not.
|
||||||
bool8 IsMaxMove(u16 move)
|
bool8 IsMaxMove(u16 move)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -47,7 +47,6 @@
|
|||||||
#include "constants/pokemon.h"
|
#include "constants/pokemon.h"
|
||||||
|
|
||||||
extern struct Evolution gEvolutionTable[][EVOS_PER_MON];
|
extern struct Evolution gEvolutionTable[][EVOS_PER_MON];
|
||||||
extern u8 gDynamaxMovePowers[MOVES_COUNT];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
NOTE: The data and functions in this file up until (but not including) sSoundMovesTable
|
NOTE: The data and functions in this file up until (but not including) sSoundMovesTable
|
||||||
@ -8802,7 +8801,7 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef)
|
|||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case EFFECT_MAX_MOVE:
|
case EFFECT_MAX_MOVE:
|
||||||
basePower = gDynamaxMovePowers[gBattleMons[battlerAtk].moves[gBattleStruct->chosenMovePositions[battlerAtk]]];
|
basePower = GetMaxMovePower(gBattleMons[battlerAtk].moves[gBattleStruct->chosenMovePositions[battlerAtk]]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15521,9 +15521,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||||||
.secondaryEffectChance = 100,
|
.secondaryEffectChance = 100,
|
||||||
.target = MOVE_TARGET_SELECTED,
|
.target = MOVE_TARGET_SELECTED,
|
||||||
.priority = 0,
|
.priority = 0,
|
||||||
.flags = 0,
|
.flags = FLAG_TARGET_ABILITY_IGNORED,
|
||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
.argument = MAX_EFFECT_TORMENT_FOES, //EFFECT TODO
|
.argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVE_G_MAX_FIREBALL] =
|
[MOVE_G_MAX_FIREBALL] =
|
||||||
@ -15536,9 +15536,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||||||
.secondaryEffectChance = 100,
|
.secondaryEffectChance = 100,
|
||||||
.target = MOVE_TARGET_SELECTED,
|
.target = MOVE_TARGET_SELECTED,
|
||||||
.priority = 0,
|
.priority = 0,
|
||||||
.flags = 0,
|
.flags = FLAG_TARGET_ABILITY_IGNORED,
|
||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
.argument = MAX_EFFECT_TORMENT_FOES, //EFFECT TODO
|
.argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVE_G_MAX_HYDROSNIPE] =
|
[MOVE_G_MAX_HYDROSNIPE] =
|
||||||
@ -15551,9 +15551,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||||||
.secondaryEffectChance = 100,
|
.secondaryEffectChance = 100,
|
||||||
.target = MOVE_TARGET_SELECTED,
|
.target = MOVE_TARGET_SELECTED,
|
||||||
.priority = 0,
|
.priority = 0,
|
||||||
.flags = 0,
|
.flags = FLAG_TARGET_ABILITY_IGNORED,
|
||||||
.split = SPLIT_PHYSICAL,
|
.split = SPLIT_PHYSICAL,
|
||||||
.argument = MAX_EFFECT_TORMENT_FOES, //EFFECT TODO
|
.argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVE_G_MAX_WIND_RAGE] =
|
[MOVE_G_MAX_WIND_RAGE] =
|
||||||
@ -15799,7 +15799,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] =
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 gDynamaxMovePowers[MOVES_COUNT] =
|
const u8 gMaxMovePowers[MOVES_COUNT] =
|
||||||
{
|
{
|
||||||
[MOVE_POUND] = 90,
|
[MOVE_POUND] = 90,
|
||||||
[MOVE_KARATE_CHOP] = 75,
|
[MOVE_KARATE_CHOP] = 75,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user