diff --git a/src/battle_util.c b/src/battle_util.c index 2e1cbd2d42..ea743e0459 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5799,6 +5799,22 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 effect++; } break; + case ABILITY_TOXIC_CHAIN: + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && IsBattlerAlive(gBattlerTarget) + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && CanBePoisoned(gBattlerAttacker, gBattlerTarget) + && TARGET_TURN_DAMAGED // Need to actually hit the target + && (Random() % 3) == 0) + { + gBattleScripting.moveEffect = MOVE_EFFECT_TOXIC; + PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; + effect++; + } + break; case ABILITY_STENCH: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && IsBattlerAlive(gBattlerTarget)