diff --git a/src/battle_message.c b/src/battle_message.c index e8e7fc04f..0dd0deebe 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -434,6 +434,8 @@ static const u8 sText_TorrentBoosted[] = _("{B_ATK_NAME_WITH_PREFIX}'s Torrent\n static const u8 sText_SwarmBoosted[] = _("{B_ATK_NAME_WITH_PREFIX}'s Swarm\nboosted its Bug moves!"); static const u8 sText_EarlyBirdBoosted[] = _("{B_ATK_NAME_WITH_PREFIX}'s Early Bird\nboosted its Flying moves!"); static const u8 sText_IlluminateBoosted[] = _("{B_ATK_NAME_WITH_PREFIX}'s Illuminate\nboosted its Electric moves!"); +static const u8 sText_StenchBoosted[] = _("{B_ATK_NAME_WITH_PREFIX}'s Stench\nboosted its Poison moves!"); + const u16 gLowHpAbilityBoostStringIds[] = { STRINGID_OVERGROWBOOSTED, // 0 @@ -442,6 +444,8 @@ const u16 gLowHpAbilityBoostStringIds[] = { STRINGID_SWARMBOOSTED, // 3 STRINGID_EARLYBIRDBOOSTED, // 4 STRINGID_ILLUMINATEBOOSTED, // 5 + STRINGID_STENCHBOOSTED, // 6 + }; static const u8 sText_Sturdy[] = _("{B_ATK_NAME_WITH_PREFIX}'s Sturdy\nallowed it to endure the hit!"); @@ -920,6 +924,8 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST [STRINGID_SWARMBOOSTED - BATTLESTRINGS_TABLE_START] = sText_SwarmBoosted,, [STRINGID_EARLYBIRDBOOSTED - BATTLESTRINGS_TABLE_START] = sText_EarlyBirdBoosted, [STRINGID_ILLUMINATEBOOSTED - BATTLESTRINGS_TABLE_START] = sText_IlluminateBoosted + [STRINGID_STENCHBOOSTED - BATTLESTRINGS_TABLE_START] = sText_StenchBoosted + }; const u16 gMissStringIds[] = diff --git a/src/battle_util.c b/src/battle_util.c index 7364100c2..cb54336e9 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1870,6 +1870,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA || ability == ABILITY_OVERGROW || ability == ABILITY_SWARM) || ability == ABILITY_EARLY_BIRD + || ability == ABILITY_ILLUMINATE + || ability == ABILITY_STENCH + && gBattleMons[battler].hp <= gBattleMons[battler].maxHP / 3 && !(gStatuses3[battler] & STATUS3_LOW_HP_ABILITY_MSG)) { @@ -1882,6 +1885,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_TORRENT: gBattleCommunication[MULTISTRING_CHOOSER] = 2; break; case ABILITY_SWARM: gBattleCommunication[MULTISTRING_CHOOSER] = 3; break; case ABILITY_EARLY_BIRD: gBattleCommunication[MULTISTRING_CHOOSER] = 4; break; + case ABILITY_ILLUMINATE: gBattleCommunication[MULTISTRING_CHOOSER] = 5; break; + case ABILITY_STENCH: gBattleCommunication[MULTISTRING_CHOOSER] = 6; break; } gBattlerAbility = battler; diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index 092d3c497..f5f301fb5 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -3336,7 +3336,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_RUN_AWAY}, + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_RUN_AWAY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, diff --git a/src/pokemon.c b/src/pokemon.c index 48dc48b3a..998ef34e0 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2574,7 +2574,9 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (type == TYPE_FLYING && attacker->ability == ABILITY_EARLY_BIRD && attacker->hp <= (attacker->maxHP / 3)) gBattleMovePower = (150 * gBattleMovePower) / 100; if (type == TYPE_ELECTRIC && attacker->ability == ABILITY_ILLUMINATE && attacker->hp <= (attacker->maxHP / 3)) // ADD illuminate electric boost - gBattleMovePower = (150 * gBattleMovePower) / 100; + gBattleMovePower = (150 * gBattleMovePower) / 100; + if (type == TYPE_POISON && attacker->ability == ABILITY_STENCH && attacker->hp <= (attacker->maxHP / 3)) // ADD stench poison boost + gBattleMovePower = (150 * gBattleMovePower) / 100; // Hyper Cutter: 1.5x boost for slicing or claw moves if (attacker->ability == ABILITY_HYPER_CUTTER && (IsMoveInList(move, sSlicingMoves) || IsMoveInList(move, sClawMoves)))