137 Commits

Author SHA1 Message Date
Pawkkie
1a2cd5645a
Fix roll handling in AI party damage calcs (#6733) 2025-05-01 10:15:19 +02:00
Alex
4ff2f3de42
Centralizes non volatile status effect checks (#6533)
Co-authored-by: PhallenTree <168426989+PhallenTree@users.noreply.github.com>
2025-04-30 11:34:19 -04:00
Bassoonian
cca969b04d
Adds move effect type checking (#6618) 2025-04-16 00:08:57 +02:00
Bassoonian
512368fd03
Add type checking for hold item effects (#6619) 2025-04-15 23:33:00 +02:00
Bassoonian
d62205f2fc
Converts some defines to enums (#6592) 2025-04-13 13:39:20 +02:00
Pawkkie
54928726cb
AI smarter status handling (#6550) 2025-04-08 17:47:45 +02:00
Pawkkie
9cb96235f9
Add basic Unaware check bad move scoring (#6524) 2025-04-02 18:18:33 -04:00
Alex
c707df358e
Clean up AI code duplication and unify checks (#6348) 2025-03-20 22:50:01 +01:00
Alex
98a5fab898
Optimization / Clean up of AI move usability (#6332) 2025-03-18 23:42:07 -04:00
Alex
6031bb2a78
Split ai function IsBattlerTrapped (#6438) 2025-03-18 12:00:11 -04:00
Pawkkie
b12f32667f
Fix roll handling in AI damage calcs (#6396)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-03-08 09:53:14 +01:00
Hedara
06d31bc8ea Merge branch 'master' into final-1.10-master-upcoming-merge 2025-02-26 22:07:10 +01:00
Pawkkie
b109c4c36b
Fix Substitute / Shed Tail Switch AI (#6334) 2025-02-25 13:06:39 +01:00
Pawkkie
48fc44df31
Fix AI hold effect considerations (#6310) 2025-02-21 18:11:47 +01:00
Pawkkie
bf263efa4b
Fix AI hazard move handling, minor AI tweaks (#6311) 2025-02-21 09:58:14 +01:00
Alex
32eb5dfba5
Remove global sBattler_AI (#6128) 2025-01-29 19:58:16 +01:00
Eduardo Quezada
927bb8f833
Fixed AI not handling type effectiveness beyond x8 (#6127) 2025-01-28 19:16:10 +01:00
Pawkkie
ea4434db2a
Switch trapping AI will consider Trace (#6059) 2025-01-22 00:07:15 +01:00
Pawkkie
7d39dd4aae
Add AI_FLAG_PREDICT_INCOMING_MON: AI will score against predicted switchin if predicting switch (#6037) 2025-01-20 20:54:38 +01:00
Pawkkie
465d30fbd0
Add AI_FLAG_PREDICT_SWITCH (#6028) 2025-01-16 21:43:16 +01:00
Eduardo Quezada
0fefb444de
Multiple removals of hardcoded move IDs (#5964) 2025-01-10 17:07:32 -05:00
Alex
8edf14423a
Refactors argument into a union (#5853)
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
2024-12-23 15:51:35 -03:00
Alex
a2aba3f86a
Changes target TURN_DAMAGED and MAX_HP to inlines (#5822) 2024-12-17 17:21:12 -05:00
Pawkkie
2b7905beb1
Add B_FLAG_SLEEP_CLAUSE (#5566)
Co-authored-by: Isaac Rivera <isaacrivera2020@u.northwestern.edu>
Co-authored-by: iriv24 <40581123+iriv24@users.noreply.github.com>
Co-authored-by: Hedara <hedara90@gmail.com>
2024-12-02 09:06:03 +01:00
Alex
35a22d6e82
Follow up for #5570 (#5625) 2024-10-31 10:58:00 +01:00
Alex
d5f8e9cc0e
Combines CalculateMoveDamage arguments into a struct (#5570) 2024-10-31 07:59:28 +01:00
ghoulslash
9dbcd18251
Unify GetBattlerAbility/TerrainAffected to remove duplicate ai function (#5497) 2024-10-10 10:42:09 -04:00
Bassoonian
d0379b9b55
Turn item hold effects into an enum (#5498)
* Turn item hold effects into an enum

* Rename to ItemHoldEffect
2024-10-10 14:23:59 +02:00
Pawkkie
2afc7f6138
ShouldPivot type cleanup (#5441)
* Cleanup ShouldPivot type

* PIVOT to SHOULD_PIVOT
2024-10-10 12:54:35 +02:00
AlexOn1ine
d0a97970ba Unify GetBattlerAbility/TerrainAffected to remove duplicate ai function 2024-10-10 09:55:25 +02:00
Pawkkie
ded97e5296
Switch AI refactor + considers free switches (#5379)
* Switch AI considers free switches from pivot move

* Fix Baton Pass refactor

* Some cleanup and comments

* Mon fainting to hazards is a 0HKO

* Revert "Mon fainting to hazards is a 0HKO"

This reverts commit 446f73822651af55ee1a36aeb61f3f0c9317d244.

* Cleanup speed check / Eject Pack

* Move eject trackers to AiLogicData

* Review feedback and WhoStrikesFirst changes

* This linebreak will bug me lol

* Also this comment, heck

* Last bit of comment cleanup
2024-10-01 23:10:02 +02:00
Pawkkie
047289a639
Improve AI's Skill Swap handling in double battles (#5360)
* Improve AI contrary

* Update src/battle_ai_util.c

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>

* Fix additionalEffects loop

* moves[i] to aiMove

* Update src/battle_ai_util.c

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-09-11 00:00:29 +02:00
Alex
3cfc0004b6
Removes redundant moveTargetType ai function (#5354)
* Removes redundant moveTargetType ai function

* Beautify GetBattlerMoveTargetType for better readability
2024-09-09 11:30:39 -04:00
SarnPoke
622dead80c
Shed Tail Retarget (#5275)
Re-targets Shed Tail PR to upcoming
2024-08-28 13:40:35 +02:00
Alex
b21ffa1f9b
Changes score adjustments to tempScore increases (#4987) 2024-07-17 23:36:15 +02:00
Pawkkie
c721f1b04a
Smarter Focus Punch and Substitute (#4952)
* Smarter Focus Punch

* Smarter Substitute, review feedback

* Use HasAnyKnownMove instead of isFirstTurn

* When are we removing agbcc again

* Use HasMoveEffect
2024-07-14 08:29:27 +02:00
Eduardo Quezada
fcdc9ed65a Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	src/battle_util.c
#	src/data/pokemon/species_info/gen_7_families.h
#	test/battle/ability/download.c
#	test/battle/ability/intimidate.c
#	test/battle/ability/supreme_overlord.c
#	test/battle/ability/zero_to_hero.c
#	test/battle/ai/ai.c
#	test/battle/move_effect/plasma_fists.c
2024-07-05 14:25:25 -04:00
Alex
594633aa15
Remove Duplicate ai code from battle_ai_util.c (#4883)
* Remove Duplicate ai code from battle_ai_util.c

* Add GetBattlerAbility in toxic self check
2024-07-03 10:48:31 +02:00
sneed
821d5dccab
AI calculates/stores minimum possible move damage and uses it with AI_FLAG_TRY_TO_FAINT (#4760)
* AI uses safest option to faint foes

* dont calculate non crit dmg unless it's needed

* struct SimulatedDamage

* add GetDamageByRollType and name DamageRollType

* Parametrize test AI flags

* use simDamage member's instead of dmg & minDmg
2024-06-11 18:28:16 +02:00
Alex
4eda5f61af
Use 9th roll instead of average in AI calcs (#4679)
* Use 9th roll instead of average in AI calcs

* damage_roll

* duke suggestion
2024-06-02 15:36:12 +02:00
sneed
e869aaf70b
Add global constants for damage roll related code and make AverageRollDmg faster (#4663)
* faster AverageRollDmg, global dmg roll constants

* restore MAX_ROLL_PERCENTAGE & MIN_ROLL_PERCENTAGE

* rename AverageRollDmg
2024-05-31 16:56:17 +02:00
Alex
d55e072747
Adds AI_IsFaster and AI_IsSlower functions (#4671) 2024-05-31 12:55:15 +02:00
Pawkkie
a0006d8dfb
AI_FLAG_RISKY Improvements (#4648)
* #defines for damage roll bounds

* Risky AI behavior implemented

* Ignore score penalty to EFFECT_RECOIL_IF_MISS moves if accuracy has been lowered

* Adjust score defines

* EFFECT_MIND_BLOWN

* Use GetBestDmgMoveFromBattler instead of AI_CompareDamagingMoves
2024-05-29 19:54:18 +02:00
Pawkkie
be2517415b
Damage roll selection in AI_CalcDamage (#4615)
* Damage roll selection and AI_FLAG_CONSERVATIVE

* Clarify enum names

* Simplify AverageRollDmg line

* Change u8s to u32s

* Turns out Boomburst does a lot of damage lol

* Spacing
2024-05-28 10:21:25 +02:00
Alex
faf61e62fb
Adds move Spicy Extract (#4211)
* Adds move Spicy Extract

* remove uneeded line

* anim, new tests, acc change

* Clear Amulet, Contrary interaction

* ai

* correction

* simplify script a bit

* clean up

* Spicy Extract script overhaul

* merge rhh/upcoming

* alignment

* AI changes/additions

* add Foul Play check

* Remove useless ai checks

* remove wrong test

* review issues
2024-05-16 11:03:50 +02:00
sneed
f502ba2a69
Stat stage related AI fixes (#4548)
* stat stage related AI fixes

* add more ai fixes and 2 tests

* use legal ability in tests

* Fix test and remove mold breaker check

* Use DoesBattlerIgnoreAbilityChecks
2024-05-11 19:03:19 +02:00
Eduardo Quezada
75ad61e5bf Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	data/battle_scripts_1.s
#	include/constants/battle_move_effects.h
#	src/battle_ai_main.c
#	src/battle_ai_util.c
#	src/battle_tv.c
#	src/data/battle_moves.h
#	src/data/graphics/pokemon.h
2024-02-19 10:13:13 -03:00
Alex
57e0d7b20b
Partial fix for Teeter Dance and Ability Dancer interaction (#4129)
* Parial fix for Teeter Dance and Ability Dancer interaction

* Removes rest of teeter dance checks and make it work with effect_confuse

* Update test/battle/ability/dancer.c

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>

* Update test/battle/ability/dancer.c

Co-authored-by: ultima-soul <33333039+ultima-soul@users.noreply.github.com>

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
Co-authored-by: ultima-soul <33333039+ultima-soul@users.noreply.github.com>
2024-02-19 13:36:21 +01:00
Alex
cd596fdd80
Adds Tidy Up + minor Dragon Cheer follow up (#4136)
* Adds Tidy Up + minor Dragon Cheer follow up

* improve tidy up script

* Add IncreaseTidyUpScore function

* remove useless calls

* 2 small tests and a correction for IncreasyTidyUpScore
2024-02-18 20:00:36 +01:00
Alex
7694628296
Adds Powerful status move flag (#4125)
* Adds Powerful status move flag

* fix flag

* fixed final issues

* review changes
2024-02-18 15:05:08 +01:00