* Fixed Elixir only being useable is the first move was missing PP
* Update restore_pp.c
Commented out the test that doesn't actually test what it's supposed to due to current test system.
---------
Co-authored-by: Hedara <hedara90@gmail.com>
* Made gBattleMoves handle the InGame name and description of battle moves
No more multiple arrays in separate, individual files.
Note:
-Keep an eye on Task_LearnedMove.
* Reintroduced move names
Misc:
-Fixed Trick-or-Treat and Light of Ruin's expanded names.
-Introduced a new field for Z-Move names, and a constant for their name length.
-Added a few TODOs to GetBattleMoveName.
-Updated GetMaxMoveName and GetZMoveName. There's no reason not to let GetBattleMoveName handle everything on its own.
* Updated GetBattleMoveName to handle Z-Move Names
Misc:
-Removed pointless TODO about MOVE_NAME_LENGTH.
-The compiler doesn't allow to have a move name with a value higher than MOVE_NAME_LENGTH, therefore it's pointless to worry about it.
* Fixed a couple of expanded move names
* Removed zMoveName variable of struct BattleMove and extended the name variable's size
* Ditched no longer used MOVE_NAME_LENGTH constant
* Corrected the names of the max moves
I should have done this after updating the size of the name variable of the struct BattleMove, but I didn't think about it at all until Cancer Fairy indirectly gave me the idea.
* Fixed U-turn's name
* Brought back MOVE_NAME_LENGTH
I think it doesn't make sense to have a Z_MOVE_NAME_LENGTH because the length in question is used for all battle moves, not just the Z-Moves.
* Introduced a union for Move/Z-Move names in the struct BattleMove
* Fixed the union for gBattleMoves move names
Also updated GetBattleMoveName to properly handle Max Move names.
Also also renamed the "zMoveName" variable to "bigMoveName" which better reflects its purpose. Z-Move names weren't the only thing it covered, since it also handles Max Move names.
* Removed deprecated GetZMoveName and GetMaxMoveName
* Reintroduced mention to gMoveNames in sGFRomHeader
* Fixed move names and ported move descriptions
* Fused the struct ContestMove into the struct BattleMove
* Removed no longer used Z_MOVE_NAME_LENGTH constant
* Renamed the struct BattleMove's bigMoveName variable and introduced macros to prettify move names
* Reintroduced the contest parameters for Pokémon moves
* Renamed gBattleMoves to gMovesInfo
This is consistent with gSpeciesInfo, the array that contains most of the species data.
* Renamed the BattleMove struct to MovesInfo
This is consistent with the struct SpeciesInfo, which contains the variables used by the gSpeciesInfo array.
* Removed empty lines separating battle params from contest params in gMovesInfo
* Renamed MovesInfo to MoveInfo
* Added Cancer Fairy's HANDLE_EXPANDED_MOVE_NAME macro
Used to handle moves with expanded names in a more comfortable manner.
Also fixed Trick-or-Treat's expanded name.
* Renamed GetBattleMoveName to GetMoveName
* Added a comment pointing out that the shared move descriptions are shared move descriptions
* Re-aligned one of the escape characters of CHECK_MOVE_FLAG
* Renamed the battle_moves.h file to moves_info.h instead for consistency's sake
* Applied Eduardo's adjustments
* Using compound string for regular move names as well, saving 1180 bytes and making their use consistent
* Move description formatting
* Updated Pursuit test after merge
* Renamed the BATTLE_CATEGORY constants to DAMAGE_CATEGORY
---------
Co-authored-by: Nephrite <thechurchofcage@gmail.com>
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Implement Pokemon Box Link functionality
* Update item_use.c
* Update item_use.c
* Can only use box link if the map allows escape
* Revert "Can only use box link if the map allows escape"
This reverts commit be5b46b6c4420cd350ac1932d4c3562f7bfbebe5.
* Overworld_IsEscapingAllowed
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Check progress in non-battle PARAMETRIZEd tests
* Overworld Script Tests
* Backward-compatible BoxPokemon Refactor
Reuses space that contains zeros to provide space for:
- HP/status in the box
- 12-character nicknames
- Up to 63 PokéBalls
- Shininess separate from PID
- Hidden Nature
- Hyper Training
- Dynamax Level
- Gigantamax Factor
- Terastallization Types
- Shadow
Implements:
- OW_PC_HEAL to switch between Gen7- and Gen8+ behavior
- Nature Mints
- Dynamax Candy
- Hyper Training commands (canhypertrain/hypertrain)
- Gigantamax Factor commands (hasgigantamaxfactor/togglegigantamaxfactor)
- Terastallization Type on the summary screen
- Prevents Gigantamax Factor Pokémon from evolving into a species without a Gigantamax form
* fixup! Backward-compatible BoxPokemon Refactor
* displaydexinfo fix from Jasper
* Implemented a CannotUseItemsInBattle function
This fucntion is the result of merging CannotUseBagBattleItem and CannotUsePartyBattleItem. No reason to split the work between 2 functions when you can do it all with just 1.
Misc. Changes:
-Turned most of the if statements inside the function into "else if" statements for performance reasons.
-Refactored how the local variable "cannotUse" was used turning it into a bool.
* Made CannotUseItemsInBattle use a switch statement
Misc. Changes:
-Removed pointless parentheses from case EFFECT_ITEM_SET_FOCUS_ENERGY
-Removed pointless i loop variable from case EFFECT_ITEM_INCREASE_ALL_STATS and replaced a hardcoded 1 in its for loop.
-Turned the i loop variable declared at the top of the function into a u32 variable
-Removed pointless comments. The EFFECT_ITEM constants are readable enough to convey what sort of items they affect.
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* 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>
* 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