Psycho Cut fix, small AI tweak

This commit is contained in:
DizzyEggg 2020-04-18 12:19:07 +02:00
parent 34f5d9e2ae
commit bc86292c93
3 changed files with 32 additions and 14 deletions

View File

@ -2811,16 +2811,13 @@ AI_CV_SemiInvulnerable:
score -1
goto AI_CV_SemiInvulnerable_End
@ BUG: The scripts for checking type-resistance to weather for semi-invulnerable moves are swapped
@ The result is that the AI is encouraged to stall while taking damage from weather
@ To fix, swap _CheckSandstormTypes/_CheckIceType in the below script
AI_CV_SemiInvulnerable2:
if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_SemiInvulnerable_TryEncourage
if_status2 AI_TARGET, STATUS2_CURSED, AI_CV_SemiInvulnerable_TryEncourage
if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_SemiInvulnerable_TryEncourage
get_weather
if_equal AI_WEATHER_HAIL, AI_CV_SemiInvulnerable_CheckSandstormTypes
if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckIceType
if_equal AI_WEATHER_HAIL, AI_CV_SemiInvulnerable_CheckIceType
if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckSandstormTypes
goto AI_CV_SemiInvulnerable5
AI_CV_SemiInvulnerable_CheckSandstormTypes:
@ -2828,6 +2825,8 @@ AI_CV_SemiInvulnerable_CheckSandstormTypes:
if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage
get_user_type2
if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage
get_ability AI_USER
if_in_bytes AI_SandstormResistantAbilities, AI_CV_SemiInvulnerable_TryEncourage
goto AI_CV_SemiInvulnerable5
AI_CV_SemiInvulnerable_CheckIceType:
@ -2835,6 +2834,8 @@ AI_CV_SemiInvulnerable_CheckIceType:
if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage
get_user_type2
if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage
get_ability AI_USER
if_in_bytes AI_HailResistantAbilities, AI_CV_SemiInvulnerable_TryEncourage
AI_CV_SemiInvulnerable5:
if_target_faster AI_CV_SemiInvulnerable_End
@ -2855,6 +2856,21 @@ AI_CV_SandstormResistantTypes:
.byte TYPE_ROCK
.byte TYPE_STEEL
.byte -1
AI_SandstormResistantAbilities:
.byte ABILITY_SAND_VEIL
.byte ABILITY_SAND_FORCE
.byte ABILITY_SAND_RUSH
.byte ABILITY_OVERCOAT
.byte ABILITY_MAGIC_GUARD
.byte -1
AI_HailResistantAbilities:
.byte ABILITY_ICE_BODY
.byte ABILITY_SNOW_CLOAK
.byte ABILITY_OVERCOAT
.byte ABILITY_MAGIC_GUARD
.byte -1
AI_CV_FakeOut:
if_ability AI_TARGET, ABILITY_INNER_FOCUS, AI_CV_FakeOut_End

View File

@ -2746,20 +2746,22 @@ Move_PSYCHO_CUT:
loadspritegfx ANIM_TAG_PSYCHO_CUT
monbg ANIM_ATK_PARTNER
createsprite gPsychoCutSpiralSpriteTemplate, 2, 4, 0, 0, 0, 0
createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 4, 4, RGB_BLACK
createvisualtask AnimTask_BlendBattleAnimPal, 9, 5, 2, 2, 10, 0, RGB(20, 12, 23)
createvisualtask AnimTask_BlendBattleAnimPal, 9, 2, 2, 10, 0, RGB(20, 12, 23)
createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 0, 4, RGB_BLACK
createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 0, 10, RGB(20, 12, 23)
delay 30
clearmonbg ANIM_ATK_PARTNER
blendoff
waitforvisualfinish
monbg ANIM_TARGET
monbgprio_28 ANIM_TARGET
setalpha 12, 8
playsewithpan 160, SOUND_PAN_ATTACKER,
playsewithpan SE_W013B, SOUND_PAN_ATTACKER,
createsprite gPsychoCutSpriteTemplate, 130, 5, 20, 0, -8, 0, 20
waitforvisualfinish
clearmonbg ANIM_TARGET
createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 4, 0, RGB_BLACK
createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 10, 0, RGB(20, 12, 23)
clearmonbg ANIM_TARGET
blendoff
waitforvisualfinish
end
Move_ZEN_HEADBUTT:
@ -4450,14 +4452,14 @@ Move_INFERNO:
call SetImpactBackground
loopsewithpan SE_W221B, SOUND_PAN_TARGET, 40, 4
createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 94, 1
createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 0, 9, 31
createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 0, 9, RGB_RED
call InfernoAnim
call InfernoAnim
call InfernoAnim
call InfernoAnim
call InfernoAnim
call InfernoAnim
createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 9, 0, 31
createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 9, 0, RGB_RED
restorebg
waitbgfadein
waitforvisualfinish

View File

@ -9078,7 +9078,7 @@ static void Cmd_tryinfatuating(void)
speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES);
personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY);
if (gBattleMons[gBattlerTarget].ability == ABILITY_OBLIVIOUS)
if (GetBattlerAbility(gBattlerTarget) == ABILITY_OBLIVIOUS)
{
gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction;
gLastUsedAbility = ABILITY_OBLIVIOUS;