Poison Touch

This commit is contained in:
DizzyEggg 2020-04-19 14:24:31 +02:00
parent 6a3944d27c
commit d5307c3e54
3 changed files with 35 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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,