63 Commits

Author SHA1 Message Date
AlexOn1ine
bd919e3219 11/08/25 Master to upcoming merge 2025-08-11 08:31:12 +02:00
surskitty
e8b6d40f18
AI_FLAG_ATTACKS_PARTNER with a config for bloodthirstiness (#7401) 2025-08-06 10:22:34 -04:00
grintoul
27886a6577
Macro-for-AI-Flag-definitions (#7471) 2025-08-05 14:14:04 +02:00
surskitty
0b44093a8e
Adds AI_FLAG_ASSUMPTIONS as a constant for semi-omniscience (#7435) 2025-08-01 18:11:34 +02:00
surskitty
f6b0a15841 Renaming to AI_ASSUME_STATUS_MOVES and making a config for universal status move guessing + disabling the custom tuning. 2025-07-12 18:50:08 -04:00
surskitty
3ee93c69ec Preliminary handling for AI_FLAG_ASSUME_POWERFUL_STATUS, not actually yet called. 2025-07-10 23:38:08 -04:00
Pawkkie
419219bb31
Add AI_FLAG_ASSUME_STAB (#6797) 2025-07-10 19:58:31 +02:00
AlexOn1ine
aabb632894 Master to upcoming merge, 20/06/25 2025-06-20 17:09:58 +02:00
Alex
c6b4118c3c
Added AI_FLAG_PP_STALL_PREVENTION to AI_FLAG_SMART_TRAINER (#7112) 2025-06-14 11:06:23 +02:00
jfb1337
096493aa35
AI: Add AI_SMART_TERA flag to make smarter decisions about when to terastalize. (#6705)
Co-authored-by: jfb1337 <>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-05-31 09:47:25 +02:00
Pawkkie
c7ee329433 Full functionality 2025-05-08 16:45:10 -04:00
Pawkkie
1e57670b34 Merge remote-tracking branch 'upstream/upcoming' into move-prediction 2025-05-08 13:58:18 -04:00
Pawkkie
3f5335c4ba
Refactor AI flags to u64 (#6753)
Co-authored-by: DizzyEggg
2025-05-04 17:16:34 +02:00
hedara90
ccda2308a3
Add AI_FLAG_PP_STALL_PREVENTION (#6743)
Co-authored-by: Hedara <hedara90@gmail.com>
2025-05-02 11:30:09 -04:00
Pawkkie
4970b3bd95 Merge remote-tracking branch 'upstream/upcoming' into move-prediction 2025-04-28 00:33:42 -04:00
Bassoonian
d173e42372
Remove redundant AI defines (#6590) 2025-04-13 11:22:14 +02:00
Pawkkie
d7a6e0bea8 Initialize move scores 2025-04-07 23:22:01 -04:00
Eduardo Quezada
927bb8f833
Fixed AI not handling type effectiveness beyond x8 (#6127) 2025-01-28 19:16:10 +01:00
Pawkkie
3c5bd4d16c
Return the universe to a state of balanced quilibrium (#6074) 2025-01-21 18:25:15 -05: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
Pawkkie
e8dd8da5f7
Add AI_FLAG_PREFER_HIGHEST_DAMAGE_MOVE (#6025)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-01-14 14:13:48 -05:00
Eduardo Quezada
8821779815 Merge branch '_RHH/master' into _RHH/upcoming 2025-01-11 08:07:15 -03:00
Pawkkie
b5f539ed21
Rename AI_FLAG_PREFER_STRONGEST_MOVE (#5972) 2025-01-08 14:00:20 +01:00
Pawkkie
c8b0da2493
Add AI_FLAG_WEIGH_ABILITY_PREDICTION (#5636) 2024-12-03 12:28:22 +01:00
GhoulMage
6819dd3c37
New AI flag for marking the two last Pokémon as Ace Pokémon. (#5587) 2024-10-27 11:32:45 -04:00
Pawkkie
720bc6464d
AI_FLAG_SETUP_FIRST_TURN Rename and Clarifications (#5310)
* Rename AI_FLAG_SETUP_FIRST_TURN

* Update all AI flags with comments
2024-09-04 11:12:55 +02:00
Alex
bbcb1cd5a2
Adds basic trainer and smart trainer flags (#5298) 2024-08-31 17:50:37 -04:00
ghoulslash
e1d8ef8190
Dynamic AI Functions (#4908)
* dynamic ai func

* add AI_TagBattlePreferFoe as an example

* Update src/battle_ai_main.c

* Update src/battle_ai_main.c

---------

Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-07-09 13:50:48 +02:00
Pawkkie
0f21415130
Minor AI flag fixes / cleanup (#4924)
* AI flag fixes / cleanup

* Review feedback
2024-07-08 20:15:12 +02:00
psf
4ddae07451
Removed AI_FLAG_HELP_PARTNER (#4918) 2024-07-08 11:38:52 +02:00
Pawkkie
3660a054a2
Forgot to update this when adding AI_FLAG_SEQUENCE_SWITCHING (#4911) 2024-07-05 18:41:29 +02:00
Pawkkie
7e167f0b3c
Add AI_FLAG_SEQUENCE_SWITCHING (#4878)
* AI_FLAG_BAD_SWITCHING

* Cleanup and tests, U-Turn / Baton Pass / Parting Shot aren't working properly

* Fix U-Turn etc. tests

* Test overhaul with Egg's suggestions

* Add EFFECT_HIT_SWITCH_TARGET to tests

* Review feedback

* Re-review feedback
2024-07-01 08:53:07 +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
be093e7414
Couple comment changes (#4409)
* comment_change

* fix comment

* an other correction

* fix fix comment

* Update include/constants/battle_ai.h

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-04-19 16:34:44 +02:00
sneed
5f4d565c86
Combine AI smart switching with smart mon choices automatically and disable smart mon choices in double battles. (#4405)
* AI_FLAG_SMART_SWITCHING  also sets AI_FLAG_SMART_MON_CHOICES

* Disable AI_FLAG_SMART_MON_CHOICES in doubles
2024-04-18 23:16:36 +02: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
Pawkkie
b93dfb9d59
Smarter SwitchAI Mon Choices | HasBadOdds Switch Check (#3253)
* SwitchAI makes much smarter mon choices

* Add HasHadOdds check to ShouldSwitch decision

* Remove early return

* Rework Baton Pass check as per discussion with Alex

* Forgot to adjust a comment

* Don't program before breakfast lol (if / else if fix)

* Switch AI_CalcDamage for AI_DATA->simulatedDmg in HasBadOdds

Thanks Alex! :D

* Typo in a hitToKO comparison

* Remove and replace AI_CalcPartyMonBestMoveDamage and IsAiPartyMonOHKOBy from https://github.com/rh-hideout/pokeemerald-expansion/pull/3146

See https://discord.com/channels/419213663107416084/1144447521960251472 for details

* Major refactor, new struct, switchin considers damage / healing from hazards / status / held item / weather

* Forgot Snow exists and heals Ice Body, haven't played Switch games lol

* (766a1a27a7) Compatibility, use new struct field instead of function call

* Fixing oversight from previous upstream merge

* Improve TSpikes handling to make GetSwitchinHazardDamage more applicable

Small fixes:
- EFFECT_EXPLOSION typo (!= to ==)
- Order of if statements near bestResistEffective
- Spacing of terms in big HasBadOdds if statements

* Forgot to uncomment blocks disabled for debugging what turned out to be vanilla behaviour lol

* Remove another holdover from debugging, sorry :/

* Lastly, undoing my debug trainer

* Type matchup based on species type rather than current type

Suggested by BLourenco on Discord, the idea is that a mon that's had its type affected by a move like Soak will still have moves as though it was its regular typing, and so prioritizing the temporary typing wouldn't be ideal.
https://discord.com/channels/419213663107416084/1144447521960251472/1146644578141736970

* gActiveBattler upcoming merge fixes

* Egg changes part 1

* Egg changes part 2, just need to address EWRAM still

* Move SwitchinCandidate struct to AiLogicData

* Consider Steel type when checking TSpikes

* Comment about CanBePoisoned compatibility

* Changes for Egg's 2nd review

* Put period back in comment, whoops lol

* Latest upcoming merge fixes

* Missed a few u32 updates

* Combine GetBestMonIntegrate functions / flags, some modularization

* Fix merge error

* Make modern fixes

* Two tests done, two to go

* Accidentally pushed reference test, removing it

* Type matchup switching tests

* Tests for defensive vs offense switches

---------

Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
2023-11-11 14:37:35 +01:00
Alex
e79583be63
Remove function GetMoveDamageResult (#3536)
* Remove function GetMoveDamageResult

* fix test

* test clean up

---------

Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
2023-11-09 20:53:14 +01:00
DizzyEggg
be5683e899
AI battle tests + AI logic fixes (#3361) 2023-10-04 18:53:29 +01:00
Eduardo Quezada D'Ottone
6fec0e4dd1
Ported TheXaman's latest changes to the Debug Menu (#2815)
* Added option for generating incrementing pokemon in pc boxes

# Conflicts:
#	src/debug.c

* added submenu arrows, increased menu high to full screen

# Conflicts:
#	src/debug.c

* combined flags and vars into one submenu

# Conflicts:
#	src/debug.c

* added new window to flags/vars showing the current state and added submenu indicator

# Conflicts:
#	src/debug.c

* added alligned arrows for debug submenus

# Conflicts:
#	src/debug.c

* used {CLEAR_TO X} instead of manual spaces

# Conflicts:
#	src/debug.c

* renamed gDebugText to proper sDebugText

# Conflicts:
#	src/debug.c

* added Fill submenu, added fill function for PC items and all bag pockets  @LOuroboros

# Conflicts:
#	src/debug.c

* put cheat start into utility

# Conflicts:
#	src/debug.c

* put fill submenu into main menu

# Conflicts:
#	src/debug.c

* tiny fix

* renaming and reordering

# Conflicts:
#	src/debug.c

* Added reset pokedex flags for @AsparagusEduardo

* made flag toggle list dynamic

# Conflicts:
#	src/debug.c

* initial battle debug menu WIP

# Conflicts:
#	src/debug.c
#	src/wild_encounter.c

* fix visual bug

* added battle start

# Conflicts:
#	include/debug.h
#	src/battle_ai_script_commands.c

* Added faster way to add initial movesets to mon

* Added waiting music for the slow box filling

* Simplified the call to scripts

* Simplified debug scripts

* Disabled Battle Test for now

* Fixed personality on fast PC fill being always 0

* Removed BATTLE_ENGINE instances + added AI_FLAG_COUNT

* Added missing return TRUE

* Sets nickname

* Changed how GetSpeciesName to how it's used upstream

---------

Co-authored-by: TheXaman <48356183+TheXaman@users.noreply.github.com>
2023-07-18 09:17:03 +02:00
CallmeEchoo
76721b16f8 add snow weather 2023-05-02 16:25:26 +02:00
ghoulslash
00d695ac2b add AI_FLAG_OMNISCIENT 2023-03-28 10:38:48 -04:00
Eduardo Quezada D'Ottone
293a880238
Apply suggestions from code review 2022-09-18 00:50:21 -03:00
Ct11217
5f74781a7d Remove ACE_POKEMON_FUNCTIONALITY 2022-09-17 17:44:50 -06:00
Ct11217
67f473f38b Fixed recommended issues.
Added additional comments.
Reordered switching ladder in ShouldSwitch() function.
Functions that can specify a specific party mon to switch into need to come first.
2022-08-23 19:49:54 -06:00
Ct11217
a4b53126f6 Added AI_FLAG_ACE_POKEMON
When this flag is set, the trainer will have an "Ace" pokemon that will
always be sent out last.
If this flag is set, the last Pokemon in the party will be considered the
"Ace" Pokemon.

This is similar to the gym leader functionality found in Sword & Shield.
2022-08-17 18:23:12 -06:00
ghoulslash
fac6f21ed0 AI_EFFECTIVENESS_xY are enums 2022-07-03 16:28:34 -04:00
sneed
2e855b204a ai accounts for a third type 2022-05-29 04:55:37 +03:00
ultima-soul
02c9e040df Merge branch 'master' of github.com:pret/pokeemerald into battle_engine_sync 2021-08-11 16:33:10 -07:00