From d6b9f076817ede74d08cef6503acf0e535c16d27 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Tue, 6 Dec 2022 05:29:26 -0300 Subject: [PATCH] Implemented Earth Eater's effect --- data/battle_scripts_1.s | 12 ++++++++++++ include/battle_scripts.h | 1 + src/battle_util.c | 12 ++++++++++++ 3 files changed, 25 insertions(+) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index d1249e384b..67ae043749 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -7144,6 +7144,18 @@ BattleScript_ToxicDebrisActivates:: BattleScript_ToxicDebrisRet: return +BattleScript_EarthEaterActivates:: + call BattleScript_AbilityPopUp + pause B_WAIT_TIME_LONG + tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate BS_TARGET + datahpupdate BS_TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage B_WAIT_TIME_LONG +BattleScript_EarthEaterRet: + return + BattleScript_PerishSongCountGoesDown:: printstring STRINGID_PKMNPERISHCOUNTFELL waitmessage B_WAIT_TIME_LONG diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 2faf22260d..093bc61c01 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -448,6 +448,7 @@ extern const u8 BattleScript_CudChewActivates[]; extern const u8 BattleScript_SupremeOverlordActivates[]; extern const u8 BattleScript_CostarActivates[]; extern const u8 BattleScript_ToxicDebrisActivates[]; +extern const u8 BattleScript_EarthEaterActivates[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/src/battle_util.c b/src/battle_util.c index aa70bd3230..d8068ef301 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5925,6 +5925,18 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move effect++; } break; + case ABILITY_EARTH_EATER: + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && gBattleMoves[gCurrentMove].type == TYPE_GROUND + && TARGET_TURN_DAMAGED + && IsBattlerAlive(gBattlerTarget)) + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_EarthEaterActivates; + effect++; + } + break; } break; case ABILITYEFFECT_MOVE_END_ATTACKER: // Same as above, but for attacker