Commit graph

35 commits

Author SHA1 Message Date
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
GriffinR
64d06f4c8f Condense battle AI scripts, minor clean up 2021-07-02 02:46:01 -04:00
Evan
d65d5cb8fd add AI_FLAG_SMART_SWITCHING, some burn checks 2021-02-14 09:37:04 -07:00
Evan
f21b0140b9 revert to CheckViability and stat change effect viabilities 2021-01-04 19:39:59 -07:00
Evan
7988a1f41d Ai_TryOnAlly and reorganize files 2020-12-20 14:47:20 -07:00
Evan
31ec3e8479 non-partner good move checks 2020-12-19 21:58:23 -07:00
Evan
916d0416e3 outline AI_CheckGoodMove 2020-12-15 21:57:33 -07:00
Evan
ac332d5e98 check bad move 2020-12-13 15:02:21 -07:00
DizzyEggg
91b364e8d6 Ai use most powerful move smarrter 2019-08-27 18:29:34 +02:00
DizzyEggg
e1ea4b62e9 Natural Gift 2019-05-20 12:03:00 +02:00
DizzyEggg
ead21250a6 Label all battle ai scripts 2018-09-01 19:05:06 +02:00
DizzyEggg
a10fd5a7c4 create more battle constants 2018-02-08 00:35:13 +01:00
DizzyEggg
5ac6cc4860 move battle vars to c file 2018-02-07 22:53:40 +01:00
DizzyEggg
ca29ad22e8 dump trainer ai scripts 2017-12-30 16:04:31 +01:00