* Legendary Mon Fusion Evolution Compatibility Added
Kyurem, Calyrex, and Necrozma Fusions have been implemented, however, the animation for the the process is incomplete, the party menu screen needs to be updated while the screen is whited out and it has proved beyond me right now. Smh
* Added Fusion Move Prompts
Handles cases for learning the fusion moves from the other fused mon and deleting the move when you unfuse (plus learning confusion (well a set choice in the data struct) if there are no moves left after deleting one)
* Fix Bug With Fusion Mon Move Learning
If the main fusion came after the fused mon in the party order it would try to teach the move to the next member in the party
* Apply suggestions from code review
Co-authored-by: LOuroboros <lunosouroboros@gmail.com>
* Fix build
* Fix fusion items being used up
* Fixed animations
* RefreshPartyMenu
* Apply suggestions from code review
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Apply suggestions
* Update form_change_tables.h
* Fix animation and simplify fusion tables
* Fix party full message
* Remove trailing whitespaces
* Update party_menu.c
* Update party_menu.c
* Make IsFusionMon better
* Apply suggestions from code review
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
---------
Co-authored-by: TeamAquasHideout <jonathonheddings@gmail.com>
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
Co-authored-by: LOuroboros <lunosouroboros@gmail.com>
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* 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>
* Deleted sTMHMMoves array, TMs/HMs read moves from their secondaryId item field now
The unused "registrability" variable has been removed in order to preserve the size of the gItems array after turning the secondaryId variable into a u16.
* Made ItemIdToBattleMoveId return ITEM_NONE if an item that is not a TM/HM is passed through it
* Renamed IsMoveHm to IsMoveHM
* Add Hisuian Sneasel's evolution to gEvolutionTable
* Updates
-Added EVO_ITEM_NIGHT, (it's like EVO_ITEM_DAY but nighttime specific)
-Added EVO_ITEM_HOLD (it's like the day based variations, but day agnostic)
-Turned the trade evo items into regular evolution items
-Ditched the config for the Razor Claw by request
-Updated every entry in gEvolutionTable for species that could only evolve via EVO_TRADE_ITEM to LA's standard
* Review corrections (extrapolations)
* Post Cherrypick corrections
* Corrected the description of EVO_ITEM_NIGHT
* Added a config for the new items' field-evolving functionality
* Reusable TMs
* Forgot about Gen9 making TMs expendable again
* Change importance check based on Alex's suggestion
* Prevent items with importance from being bought more than once
* Change importance check to ghoul's suggestion
* Update include/config/item.h
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* items that can be used in battle now use battlescripts
* removed ExecuteTableBasedItemEffect_
* taught AI how to use items, removed AI_itemtype/flag
* X-Items store stages raised in holdEffectParam
* USE_ITEM in tests