Poison Touch
This commit is contained in:
parent
6a3944d27c
commit
d5307c3e54
@ -4528,6 +4528,9 @@ static void Cmd_moveend(void)
|
||||
case MOVEEND_ABILITIES: // Such as abilities activating on contact(Poison Spore, Rough Skin, etc.).
|
||||
if (AbilityBattleEffects(ABILITYEFFECT_MOVE_END, gBattlerTarget, 0, 0, 0))
|
||||
effect = TRUE;
|
||||
// Poison Touch, possibly other in the future
|
||||
else if (AbilityBattleEffects(ABILITYEFFECT_MOVE_END, gBattlerAttacker, 0, 0, 0))
|
||||
effect = TRUE;
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
case MOVEEND_STATUS_IMMUNITY_ABILITIES: // status immunities
|
||||
|
||||
@ -3526,7 +3526,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
&& !(gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY)
|
||||
&& !IsFlowerVeilProtected(gBattlerAttacker)
|
||||
&& !IsLeafGuardProtected(gBattlerAttacker)
|
||||
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
|
||||
&& IsMoveMakingContact(move, gBattlerAttacker)
|
||||
&& (Random() % 3) == 0)
|
||||
{
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_SLEEP;
|
||||
@ -3550,7 +3550,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
&& !(gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY)
|
||||
&& !IsFlowerVeilProtected(gBattlerAttacker)
|
||||
&& !IsLeafGuardProtected(gBattlerAttacker)
|
||||
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
|
||||
&& IsMoveMakingContact(move, gBattlerAttacker)
|
||||
&& (Random() % 3) == 0)
|
||||
{
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_POISON;
|
||||
@ -3572,7 +3572,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
&& !(gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY)
|
||||
&& !IsFlowerVeilProtected(gBattlerAttacker)
|
||||
&& !IsLeafGuardProtected(gBattlerAttacker)
|
||||
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
|
||||
&& IsMoveMakingContact(move, gBattlerAttacker)
|
||||
&& (Random() % 3) == 0)
|
||||
{
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_PARALYSIS;
|
||||
@ -3582,6 +3582,27 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
case ABILITY_POISON_TOUCH:
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||
&& gBattleMons[gBattlerTarget].hp != 0
|
||||
&& !gProtectStructs[gBattlerTarget].confusionSelfDmg
|
||||
&& !IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_POISON)
|
||||
&& !IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_STEEL)
|
||||
&& GetBattlerAbility(gBattlerTarget) != ABILITY_IMMUNITY
|
||||
&& !(gBattleMons[gBattlerTarget].status1 & STATUS1_ANY)
|
||||
&& !IsFlowerVeilProtected(gBattlerTarget)
|
||||
&& !IsLeafGuardProtected(gBattlerTarget)
|
||||
&& IsMoveMakingContact(move, gBattlerAttacker)
|
||||
&& (Random() % 3) == 0)
|
||||
{
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_POISON;
|
||||
PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect;
|
||||
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
case ABILITY_FLAME_BODY:
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||
&& gBattleMons[gBattlerAttacker].hp != 0
|
||||
|
||||
@ -7296,7 +7296,7 @@ const struct BaseStats gBaseStats[] =
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroup1 = EGG_GROUP_FLYING,
|
||||
.eggGroup2 = EGG_GROUP_FLYING,
|
||||
.abilities = {ABILITY_FRISK, ABILITY_FRISK},
|
||||
.abilities = {ABILITY_KEEN_EYE, ABILITY_STURDY},
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.noFlip = FALSE,
|
||||
@ -8498,7 +8498,7 @@ const struct BaseStats gBaseStats[] =
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroup1 = EGG_GROUP_FIELD,
|
||||
.eggGroup2 = EGG_GROUP_FIELD,
|
||||
.abilities = {ABILITY_FRISK, ABILITY_FRISK},
|
||||
.abilities = {ABILITY_PICKUP, ABILITY_NONE},
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = FALSE,
|
||||
@ -9994,15 +9994,15 @@ const struct BaseStats gBaseStats[] =
|
||||
.evYield_Speed = 0,
|
||||
.evYield_SpAttack = 0,
|
||||
.evYield_SpDefense = 0,
|
||||
.item1 = ITEM_LEFTOVERS,
|
||||
.item2 = ITEM_LEFTOVERS,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_NONE,
|
||||
.genderRatio = PERCENT_FEMALE(25),
|
||||
.eggCycles = 20,
|
||||
.friendship = 70,
|
||||
.growthRate = GROWTH_FLUCTUATING,
|
||||
.eggGroup1 = EGG_GROUP_HUMAN_LIKE,
|
||||
.eggGroup2 = EGG_GROUP_HUMAN_LIKE,
|
||||
.abilities = {ABILITY_FRISK, ABILITY_FRISK},
|
||||
.abilities = {ABILITY_THICK_FAT, ABILITY_GUTS},
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.noFlip = FALSE,
|
||||
@ -10026,15 +10026,15 @@ const struct BaseStats gBaseStats[] =
|
||||
.evYield_Speed = 0,
|
||||
.evYield_SpAttack = 0,
|
||||
.evYield_SpDefense = 0,
|
||||
.item1 = ITEM_LEFTOVERS,
|
||||
.item2 = ITEM_LEFTOVERS,
|
||||
.item1 = ITEM_NONE,
|
||||
.item2 = ITEM_KINGS_ROCK,
|
||||
.genderRatio = PERCENT_FEMALE(25),
|
||||
.eggCycles = 20,
|
||||
.friendship = 70,
|
||||
.growthRate = GROWTH_FLUCTUATING,
|
||||
.eggGroup1 = EGG_GROUP_HUMAN_LIKE,
|
||||
.eggGroup2 = EGG_GROUP_HUMAN_LIKE,
|
||||
.abilities = {ABILITY_FRISK, ABILITY_FRISK},
|
||||
.abilities = {ABILITY_THICK_FAT, ABILITY_GUTS},
|
||||
.safariZoneFleeRate = 0,
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = FALSE,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user