From 2d41f08312e2b1e39b5c964ab2a644a3ee1392ec Mon Sep 17 00:00:00 2001 From: StubbornOne Date: Mon, 21 Jun 2021 14:18:33 +0800 Subject: [PATCH 1/2] Add Telepathy's damage prevention effect --- src/battle_util.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/battle_util.c b/src/battle_util.c index 87f9003e0b..06ccae3b69 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8105,6 +8105,17 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat RecordAbilityBattle(battlerDef, ABILITY_WONDER_GUARD); } } + if (GetBattlerAbility(battlerDef) == ABILITY_TELEPATHY && battlerDef == BATTLE_PARTNER(battlerAtk)) { + modifier = UQ_4_12(0.0); + if (recordAbilities) + { + gLastUsedAbility = ABILITY_TELEPATHY; + gMoveResultFlags |= MOVE_RESULT_MISSED; + gLastLandedMoves[battlerDef] = 0; + gBattleCommunication[6] = B_MSG_AVOIDED_DMG; + RecordAbilityBattle(battlerDef, ABILITY_TELEPATHY); + } + } return modifier; } From 7571d56140d71869a6959a20dfc0ef7bb5dd1f39 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Tue, 21 Sep 2021 22:57:05 -0300 Subject: [PATCH 2/2] Applied Egg's implementation of telepathy --- src/battle_util.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 591f0bac0a..bbc045e39e 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8129,27 +8129,18 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat modifier = UQ_4_12(1.0); } - if (GetBattlerAbility(battlerDef) == ABILITY_WONDER_GUARD && modifier <= UQ_4_12(1.0) && gBattleMoves[move].power) + if (((GetBattlerAbility(battlerDef) == ABILITY_WONDER_GUARD && modifier <= UQ_4_12(1.0)) + || (GetBattlerAbility(battlerDef) == ABILITY_TELEPATHY && battlerDef == BATTLE_PARTNER(battlerAtk))) + && gBattleMoves[move].power) { modifier = UQ_4_12(0.0); if (recordAbilities) { - gLastUsedAbility = ABILITY_WONDER_GUARD; + gLastUsedAbility = gBattleMons[battlerDef].ability; gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[battlerDef] = 0; gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_DMG; - RecordAbilityBattle(battlerDef, ABILITY_WONDER_GUARD); - } - } - if (GetBattlerAbility(battlerDef) == ABILITY_TELEPATHY && battlerDef == BATTLE_PARTNER(battlerAtk)) { - modifier = UQ_4_12(0.0); - if (recordAbilities) - { - gLastUsedAbility = ABILITY_TELEPATHY; - gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[battlerDef] = 0; - gBattleCommunication[6] = B_MSG_AVOIDED_DMG; - RecordAbilityBattle(battlerDef, ABILITY_TELEPATHY); + RecordAbilityBattle(battlerDef, gBattleMons[battlerDef].ability); } }