mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 19:24:16 +01:00
Merge pull request #962 from GriffinRichards/bug-aiweather
Note AI weather bug
This commit is contained in:
commit
53eb1ecf2b
@ -743,7 +743,7 @@ AI_CheckViability:
|
||||
if_effect EFFECT_MIRROR_COAT, AI_CV_MirrorCoat
|
||||
if_effect EFFECT_SKULL_BASH, AI_CV_ChargeUpMove
|
||||
if_effect EFFECT_SOLARBEAM, AI_CV_ChargeUpMove
|
||||
if_effect EFFECT_SEMI_INVULNERABLE, AI_CV_Fly
|
||||
if_effect EFFECT_SEMI_INVULNERABLE, AI_CV_SemiInvulnerable
|
||||
if_effect EFFECT_SOFTBOILED, AI_CV_Heal
|
||||
if_effect EFFECT_FAKE_OUT, AI_CV_FakeOut
|
||||
if_effect EFFECT_SPIT_UP, AI_CV_SpitUp
|
||||
@ -2317,48 +2317,51 @@ AI_CV_ChargeUpMove_ScoreDown2:
|
||||
AI_CV_ChargeUpMove_End:
|
||||
end
|
||||
|
||||
AI_CV_Fly:
|
||||
if_doesnt_have_move_with_effect AI_TARGET, EFFECT_PROTECT, AI_CV_Fly2
|
||||
AI_CV_SemiInvulnerable:
|
||||
if_doesnt_have_move_with_effect AI_TARGET, EFFECT_PROTECT, AI_CV_SemiInvulnerable2
|
||||
score -1
|
||||
goto AI_CV_Fly_End
|
||||
goto AI_CV_SemiInvulnerable_End
|
||||
|
||||
AI_CV_Fly2:
|
||||
if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_Fly6
|
||||
if_status2 AI_TARGET, STATUS2_CURSED, AI_CV_Fly6
|
||||
if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_Fly6
|
||||
@ 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_Fly3
|
||||
if_equal AI_WEATHER_SANDSTORM, AI_CV_Fly4
|
||||
goto AI_CV_Fly5
|
||||
if_equal AI_WEATHER_HAIL, AI_CV_SemiInvulnerable_CheckSandstormTypes
|
||||
if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckIceType
|
||||
goto AI_CV_SemiInvulnerable5
|
||||
|
||||
AI_CV_Fly3:
|
||||
AI_CV_SemiInvulnerable_CheckSandstormTypes:
|
||||
get_user_type1
|
||||
if_in_bytes AI_CV_Fly_TypesToEncourage, AI_CV_Fly6
|
||||
if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage
|
||||
get_user_type2
|
||||
if_in_bytes AI_CV_Fly_TypesToEncourage, AI_CV_Fly6
|
||||
goto AI_CV_Fly5
|
||||
if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage
|
||||
goto AI_CV_SemiInvulnerable5
|
||||
|
||||
AI_CV_Fly4:
|
||||
AI_CV_SemiInvulnerable_CheckIceType:
|
||||
get_user_type1
|
||||
if_equal TYPE_ICE, AI_CV_Fly6
|
||||
if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage
|
||||
get_user_type2
|
||||
if_equal TYPE_ICE, AI_CV_Fly6
|
||||
if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage
|
||||
|
||||
AI_CV_Fly5:
|
||||
if_target_faster AI_CV_Fly_End
|
||||
AI_CV_SemiInvulnerable5:
|
||||
if_target_faster AI_CV_SemiInvulnerable_End
|
||||
get_last_used_bank_move AI_TARGET
|
||||
get_move_effect_from_result
|
||||
if_not_equal EFFECT_LOCK_ON, AI_CV_Fly6
|
||||
goto AI_CV_Fly_End
|
||||
if_not_equal EFFECT_LOCK_ON, AI_CV_SemiInvulnerable_TryEncourage
|
||||
goto AI_CV_SemiInvulnerable_End
|
||||
|
||||
AI_CV_Fly6:
|
||||
if_random_less_than 80, AI_CV_Fly_End
|
||||
AI_CV_SemiInvulnerable_TryEncourage:
|
||||
if_random_less_than 80, AI_CV_SemiInvulnerable_End
|
||||
score +1
|
||||
|
||||
AI_CV_Fly_End:
|
||||
AI_CV_SemiInvulnerable_End:
|
||||
end
|
||||
|
||||
AI_CV_Fly_TypesToEncourage:
|
||||
AI_CV_SandstormResistantTypes:
|
||||
.byte TYPE_GROUND
|
||||
.byte TYPE_ROCK
|
||||
.byte TYPE_STEEL
|
||||
|
Loading…
Reference in New Issue
Block a user