Terrain Pulse

This commit is contained in:
Xhyzi 2021-06-15 20:01:57 +02:00
parent 0202b75822
commit 271f19e6cb
5 changed files with 20 additions and 2 deletions

View file

@ -375,6 +375,7 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
.4byte BattleScript_EffectRisingVoltage .4byte BattleScript_EffectRisingVoltage
.4byte BattleScript_EffectCorrosiveGas .4byte BattleScript_EffectCorrosiveGas
.4byte BattleScript_EffectBeakBlast .4byte BattleScript_EffectBeakBlast
.4byte BattleScript_EffectTerrainPulse
BattleScript_EffectBeakBlast:: BattleScript_EffectBeakBlast::
attackcanceler attackcanceler
@ -2196,6 +2197,7 @@ BattleScript_EffectBelch:
BattleScript_EffectBodyPress: BattleScript_EffectBodyPress:
BattleScript_EffectExpandingForce: BattleScript_EffectExpandingForce:
BattleScript_EffectRisingVoltage: BattleScript_EffectRisingVoltage:
BattleScript_EffectTerrainPulse:
BattleScript_HitFromAtkCanceler:: BattleScript_HitFromAtkCanceler::
attackcanceler attackcanceler

View file

@ -359,7 +359,8 @@
#define EFFECT_RISING_VOLTAGE 353 #define EFFECT_RISING_VOLTAGE 353
#define EFFECT_CORROSIVE_GAS 354 #define EFFECT_CORROSIVE_GAS 354
#define EFFECT_BEAK_BLAST 355 #define EFFECT_BEAK_BLAST 355
#define EFFECT_TERRAIN_PULSE 356
#define NUM_BATTLE_MOVE_EFFECTS 356 #define NUM_BATTLE_MOVE_EFFECTS 357
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H

View file

@ -5070,6 +5070,17 @@ void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk)
if (ItemId_GetPocket(gBattleMons[battlerAtk].item) == POCKET_BERRIES) if (ItemId_GetPocket(gBattleMons[battlerAtk].item) == POCKET_BERRIES)
gBattleStruct->dynamicMoveType = gNaturalGiftTable[ITEM_TO_BERRY(gBattleMons[battlerAtk].item)].type; gBattleStruct->dynamicMoveType = gNaturalGiftTable[ITEM_TO_BERRY(gBattleMons[battlerAtk].item)].type;
} }
else if (gBattleMoves[move].effect == EFFECT_TERRAIN_PULSE)
{
if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN)
gBattleStruct->dynamicMoveType = TYPE_FAIRY | 0x80;
else if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)
gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | 0x80;
else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN)
gBattleStruct->dynamicMoveType = TYPE_PSYCHIC | 0x80;
else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN)
gBattleStruct->dynamicMoveType = TYPE_GRASS | 0x80;
}
attackerAbility = GetBattlerAbility(battlerAtk); attackerAbility = GetBattlerAbility(battlerAtk);
GET_MOVE_TYPE(move, moveType); GET_MOVE_TYPE(move, moveType);

View file

@ -7224,6 +7224,10 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef)
#endif #endif
basePower *= 2; basePower *= 2;
break; break;
case EFFECT_TERRAIN_PULSE:
if (gFieldStatuses & (STATUS_FIELD_GRASSY_TERRAIN | STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_MISTY_TERRAIN | STATUS_FIELD_PSYCHIC_TERRAIN))
basePower *= 2;
break;
} }
if (basePower == 0) if (basePower == 0)

View file

@ -11332,7 +11332,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
[MOVE_TERRAIN_PULSE] = [MOVE_TERRAIN_PULSE] =
{ {
.effect = EFFECT_PLACEHOLDER, //TODO .effect = EFFECT_TERRAIN_PULSE,
.power = 50, .power = 50,
.type = TYPE_NORMAL, .type = TYPE_NORMAL,
.accuracy = 100, .accuracy = 100,