Fixes Thief and Covet used by an opponent not stealing items (#4506)
* Fixes MOVE_EFFECT_STEAL_ITEM (Thief and Covet) * Fix stealing consumed item * Removed unnecessary instructions * Removes unnecessary check for item to trigger Sticky Hold
This commit is contained in:
parent
b3a4553860
commit
63254a8fdc
1 changed files with 5 additions and 34 deletions
|
@ -3164,7 +3164,6 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u8 side;
|
|
||||||
switch (gBattleScripting.moveEffect)
|
switch (gBattleScripting.moveEffect)
|
||||||
{
|
{
|
||||||
case MOVE_EFFECT_CONFUSION:
|
case MOVE_EFFECT_CONFUSION:
|
||||||
|
@ -3178,7 +3177,7 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
||||||
|
|
||||||
// If the confusion is activating due to being released from Sky Drop, go to "confused due to fatigue" script.
|
// If the confusion is activating due to being released from Sky Drop, go to "confused due to fatigue" script.
|
||||||
// Otherwise, do normal confusion script.
|
// Otherwise, do normal confusion script.
|
||||||
if(gCurrentMove == MOVE_SKY_DROP)
|
if (gCurrentMove == MOVE_SKY_DROP)
|
||||||
{
|
{
|
||||||
gBattleMons[gEffectBattler].status2 &= ~(STATUS2_LOCK_CONFUSE);
|
gBattleMons[gEffectBattler].status2 &= ~(STATUS2_LOCK_CONFUSE);
|
||||||
gBattlerAttacker = gEffectBattler;
|
gBattlerAttacker = gEffectBattler;
|
||||||
|
@ -3422,35 +3421,13 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
||||||
break;
|
break;
|
||||||
case MOVE_EFFECT_STEAL_ITEM:
|
case MOVE_EFFECT_STEAL_ITEM:
|
||||||
{
|
{
|
||||||
if (!CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item))
|
if (!CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item)
|
||||||
{
|
|| gBattleMons[gBattlerAttacker].item != ITEM_NONE
|
||||||
gBattlescriptCurrInstr++;
|
|| gBattleMons[gBattlerTarget].item == ITEM_NONE)
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
side = GetBattlerSide(gBattlerAttacker);
|
|
||||||
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT
|
|
||||||
&& !(gBattleTypeFlags &
|
|
||||||
(BATTLE_TYPE_EREADER_TRAINER
|
|
||||||
| BATTLE_TYPE_FRONTIER
|
|
||||||
| BATTLE_TYPE_LINK
|
|
||||||
| BATTLE_TYPE_RECORDED_LINK
|
|
||||||
| BATTLE_TYPE_SECRET_BASE)))
|
|
||||||
{
|
{
|
||||||
gBattlescriptCurrInstr++;
|
gBattlescriptCurrInstr++;
|
||||||
}
|
}
|
||||||
else if (!(gBattleTypeFlags &
|
else if (GetBattlerAbility(gBattlerTarget) == ABILITY_STICKY_HOLD)
|
||||||
(BATTLE_TYPE_EREADER_TRAINER
|
|
||||||
| BATTLE_TYPE_FRONTIER
|
|
||||||
| BATTLE_TYPE_LINK
|
|
||||||
| BATTLE_TYPE_RECORDED_LINK
|
|
||||||
| BATTLE_TYPE_SECRET_BASE))
|
|
||||||
&& (gWishFutureKnock.knockedOffMons[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]))
|
|
||||||
{
|
|
||||||
gBattlescriptCurrInstr++;
|
|
||||||
}
|
|
||||||
else if (gBattleMons[gBattlerTarget].item
|
|
||||||
&& GetBattlerAbility(gBattlerTarget) == ABILITY_STICKY_HOLD)
|
|
||||||
{
|
{
|
||||||
BattleScriptPushCursor();
|
BattleScriptPushCursor();
|
||||||
gBattlescriptCurrInstr = BattleScript_NoItemSteal;
|
gBattlescriptCurrInstr = BattleScript_NoItemSteal;
|
||||||
|
@ -3458,12 +3435,6 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
||||||
gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
|
gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
|
||||||
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
|
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
|
||||||
}
|
}
|
||||||
else if (gBattleMons[gBattlerAttacker].item != ITEM_NONE
|
|
||||||
|| gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY_E_READER
|
|
||||||
|| gBattleMons[gBattlerTarget].item == ITEM_NONE)
|
|
||||||
{
|
|
||||||
gBattlescriptCurrInstr++;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StealTargetItem(gBattlerAttacker, gBattlerTarget); // Attacker steals target item
|
StealTargetItem(gBattlerAttacker, gBattlerTarget); // Attacker steals target item
|
||||||
|
|
Loading…
Reference in a new issue