* 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>
* Gen 1 exp yield config
* I'm a dumdum
* Gen 2 configs
* Exp yield configs up to gen3
* Gen 4 configs
* Gen 5 configs
* Configs up to gen6
* Gen7 configs
* Final form exp adjustments
* Fix some ball multiplier configs
* Updated the comment of B_LURE_BALL_MODIFIER
* Specified the effects of B_LURE_BALL_MODIFIER in itsa state its effects in a more specific manner
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Corrected the comments of B_DREAM_BALL_MODIFIER, B_SPORT_BALL_MODIFIER and B_SAFARI_BALL_MODIFIER
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Turned the ternaries in the case for the Lure Ball's catch rate in Cmd_handleballthrow into a regular if/else if statement
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
---------
Co-authored-by: LOuroboros <lunosouroboros@gmail.com>
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Added five ability flags
Omitted duplicate flags that are basically "can't copy" (Role Play, Receiver, Entrainment, Skill Swap), didn't bother adding Neutralizing Gas flag,
* Mold Breaker and Trace
* Gastro Acid, Simple Beam, Worry Seed
Decided to keep the Simple Beam/Worry Seed functions
* Entrainment done
* Skill Swap
* Doodle/Role Play + flag descriptions
Also adjusted Doodle test
* Wandering Spirit, Mummy, Neutralizing Gas
Neutralizing Gas really only needs to check for other mons with Neutralizing Gas, otherwise unsuppressable abilities are handled separately.
* Renamed flags
* Archaludon?
* more archuladon stuff
* Hydrapple and Gouging Fire
* Raging Bolt
* Iron Boulder and Iron Crown
* Terapagos
* Pecharunt
* Update gen_9.h
* Pokedex orders
* 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
Since Gen 6, the capture rate curve was changed to make pokeballs more effective on lower level pokemon
It's by 65536 divided by 255 to the power of(1/5.33) and I did the work of translating that so a rough approximation can be done in integers, and so far, it seems to work close enough. I use this in my romhack for months now and it works fine.
* Added SpeciesInfo fields
# Conflicts:
# include/pokemon.h
* Added missing comments
* Renamed gigantamax to isGigantamax
* Converted species flags to agbcc bit flags
* Added padding after flags
* Pikachu form config
* Dex text
* Reordered Paradox flag
* Missing Pikachu ifdef comments
* Moved P_GEN_x_POKEMON settings to the species_families file
* Gen 1 Dex entries
* Renamed file to species_enabled.h
* Prevent Pokémon from evolving if their evolution is disabled
* Prevent Pokémon from being affected by Eviolite if their evolution is disabled
* Prevent Pokémon offspring if they're disabled
* Corrected imprementation of evolution prevention
It could potentially overwrite items by accident
* Cross-evo configs
* Gen 2 dex entries
* Changed cry table to use assignable IDs
# Conflicts:
# include/pokemon.h
* Form table pointers
* Beginning support for moving data to gSpeciesInfo
* Pokédexes reads text from gSpeciesInfo
* Reading species names from gSpeciesInfo
* Fixed erroneous copy-paste
* Moved Bulbasaur to Raichu Family data do gSpeciesinfo
* Added female pic sizes
* Macros for Front, Back, Palette and Learnsets
* Sandshrew to Dugtrio Families
* Obtains Height/Weight from gSpeciesInfo
* Read category from gSpeciesInfo
* Removed unused data from pokedex_entries.h
* Moved Gen 1 data to gSpeciesInfo
* Moved Gen 2 data to gSpeciesInfo + fixed Ursaluna Bloodmoon not producing Teddiursa eggs
* Moved Gen 3 data to gSpeciesInfo
* Moved Gen 4 data to gSpeciesInfo
* HGSS dex properly shows form sprites
* Fixed data type for GetSpeciesHeight/Weight
* Reading Pokédex Size data from gSpeciesInfo
* Cleaned up mon graphic decompression function
* Reading Front Pics gSpeciesInfo
* Reading Back Pics gSpeciesInfo
* Updated uses of GetMonSpritePalStruct to allow loading the data directly instead of reading the struct
* Reading palettes from gSpeciesInfo
* Reading animation delay from gSpeciesInfo
* Fixed Pokémon Debug Menu not reading animation delay
* Reading front anim Id from gSpeciesInfo
* Reading back anim Id from gSpeciesInfo
* Reading Animation Frames from gSpeciesInfo
* Reading Icon Sprites from gSpeciesInfo
* Reading Icon Palette IDs from gSpeciesInfo
* Reading Footprints from gSpeciesInfo
* Reading Mon Pic sizes from gSpeciesInfo
* Separate mon pic sizes for female mon
* Reading Level Up Learnsets from gSpeciesInfo
* Reading Teachable Learnsets from gSpeciesInfo
* Reading National Dex Number from gSpeciesInfo
* Reading Enemy Mon Elevation from gSpeciesInfo
* Reading Evolutions from gSpeciesInfo
* Reading form table from gSpeciesInfo
* Fixed button label inconsistency in pokémon debug menu
* Reading form change table from gSpeciesInfo
* Removed need to define mon graphics in include/graphics.h
* Reordered mon graphics by family
* Fixed National dex number offset
* gFrontierBannedSpecies now checks IsSpeciesEnabled
* Added 3 more toggles for Fusions, Primal Reversions and Ultra Burst
* Gen 3 & 4 family toggles for dex entries
* Fixed missing Mr. Rime data
* Gen 1 dex descriptions as compound strings
* Gen 2 dex descriptions as compound strings
* Gen 3 dex descriptions as compound strings
* Gen 4 dex descriptions as compound strings
* Fixed compile in agbcc
* Moved Gen 5 data to gSpeciesInfo
* Using PLACEHOLDER_ANIM_SINGLE_FRAME when needed (same hash)
* Renamed PLACEHOLDER_TWO_FRAME_ANIMATION to PLACEHOLDER_ANIM_TWO_FRAMES
* Fixed capitalization for front pic anims
* Fixed `CanEvolve`
* Moved Gen 6 data to gSpeciesInfo
* Gen 7 without macros
* Gen 8 without macros
* Gen 9 without macros
* Fixed Gen 9 sound data
* Finished moving Gen 7 data in macros (by Alex)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Ultra Necrozma is now included in the fusion forms define
* Cries are now properly excluded from the rom when disabling species
* Removed P_GEN_x_POKEMON from form_change_tables.h
* Fixed Yanmega's cry ignoring the P_GEN_4_CROSS_EVOS setting
* Added P_NEW_EVOS_IN_REGIONAL_DEX setting
* Automatic ASSUMPTION_FAIL when used species are disabled
* Finished moving Gen 8 data in macros (by Alex)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Expanded Alcremie macro
* Finished moving Gen 9 data in macros (by Alex)
* Fixed missing data for Komala and Marshadow
* Form species id tables use family toggles + added missing Ursaluna form species id table
* Fixed Genesect palettes
* Fixed Flabébé family graphics
* Fixed Minior Graphics
* Fixed missing Calyrex data
* Family toggles in mon graphcis (By Jasper/Bassoonian)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Fixed missing Ogerpon data
* Ordered Level Up Learnsets (missing toggles)
Also added White Basculin learnset
* Added more Minior synonyms
* Fixed enamorus order
* Reordered teachable learnsets
* Removed sSpeciesXXX level up learnsets + reordered
* Removed unneeded assumes
* Removed unused extra animations
* Family toggles in mon level up learnsets (By Jasper/Bassoonian)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Fixed Phione graphics inclusion
* Family toggles for Teachable Learnsets
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Ordered Front Pic Anims
* Family toggles for front pic animations
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Fixed HGSS dex incorrectly showing the wrong mon when catching it
* Family toggles for Egg Moves + reodered
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Fixed HGSS not checking for null footprints
* Review changes
* Fixed Female difference mon not using their macros
* Fixed Alcremie Macro
* Fixed compile error when disabling the Bulbasaur family
* Fixed Turtwig and Chimchar family + Houndour and Mareep cries not being excluded properly
* Re-added missing Egg graphical data
* Fixed crash during the Birch Intro when Lotad is disabled
* Renamed PALLETE to PALETTES
* Removed extra spacing for YOffsets
* Fixed compile when only disabling cross-gen evolutions
* Added Tera Forms define (Ogerpon and Terapagos)
* Fixed Necrozma macro
* Removed .noFlip = FALSE
* Fixed dex number in summary screen for forms when nat dex is disabled
* Fixed Paldean form paths
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Original implementation from Phlayne
* Moved Sky Battle Flag / Var into a config
* Optimized existing code and fixed existing bugs
Added error message for when sky battle var and flag are not set
Merged CanDoSkyBattle and PrepareSkyBattle into one special
* Added compatibility for Gen7+
* Commented out Volt Crash from banned moves
* Cleaned up debug scripts from testing
* Fixed bug where player did not white out even if they had no healthy Pokémon and only an egg
Zeroed out both Sky Battle configs
* Removed extra include from src/field_specials.c
Removed extra line break in src/battle_script_commands.c
* Added FLAG_DISABLED_IN_SKY_BATTLE
Added FLAG_DISABLED_IN_SKY_BATTLE to appropriate moves
* Changed DoesSkyBattleCancelCurrentMove to look at move flags
* Fixed alignment and spacing in battle_moves.h
* Added FLAG_DISABLED_IN_SKY_BATTLE to Sticky Web
* Added FLAG_DISABLED_IN_SKY_BATTLE to Steel Roller
* Disabled the ability to change Battle Terrain when Sky Battle is happening
Stopped Ceaseless Edge from spawning Spikes when Sky Battle is happening
Added B_SKY_BATTLE_STRICT_MECHANICS config
* Fixed bug with SKY_BATTLE_STRICT_MECHANICS where conditions were not consistently being applied
* Add rulesVariants to the BattleStruct
Added skyBattle check in AllocateBattleResources
* Replaced B_FLAG_SKY_BATTLE checks with rulesVariants.skyBattle checks
* Fixed debug script
* Reverted include/config/battle.h
* Fixed spacing and placement of functions
* Fixed debug script omission
Fixed bug where Spikes did not set from Ceaseless Edge and Stone Axe
* Added FLAG_DISABLED_IN_SKY_BATTLE to Psychic Terrain
* Addressed DizzyEgg PR feedback
* Forgot a file in last commit
* Addressed feedback from DizzyEggg
* Address Lunos' PR feedback
* Update specials.inc
Added an empty line at the end of data/specials.inc
* Fixed spacing
* Apply suggestions from code review
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Updated skyBattleBanned and HandleBattleVariantEndParty to use correct names
* Removed STRICT_MOVES and STRICT_MECHANICS
* Fixed minor spacing issues with merge
* Merged in upcoming
* Implemented feedback from Jasper
5da6117d1b
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Added initial config for times of day
* Changed TIME_DUSK/DUSK_EVO to EVENING
* Added morning and evening to Gens 3/4
* Renamed *_EVO_HOUR_BEGIN/END to just *_HOUR_BEGIN/END
* Incorporated comments
* Adds combined pledge move effects
* added pledge status and various other fixes
* leftover
* fix triple arrow test tag
* pledge moves can not be redirected by absorbing abilities
* more pledge changes
* remove duplicate test
* Stab boost, Rainbow anim and new SeaOfFire anim
* leftover
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Added Japan-only Walda PC icons
* Added a config for the Japanese icons
* Update overworld.h with suggestions
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Gen 1 and 2 families + fixes
- Fixed mixed identation.
- Fixed Azurill being Normal/Water type in Pre-Gen6 setting.
- Fixed Wobbuffett being before Wynaut
- Fixed Dudunsparce's macro being out of order
* Updated macros of Megas that shared held item with base forms
* Gen 3 families
* Separated Latis macro
* Gen 4 families
* Moved Misc Info to the top of arrays
* Renamed FAMILY_x to P_FAMILY_x
* Gen 5 families
* Gen 6 families
* Gen 7 families
* Gen 8 families
* Gen 9 families
* Mega Evolutions
* Gigantamax Form toggles
* Alolan Forms
* Galarian Forms
* Added missing comments
* Hisuian Forms
* Paldean Forms
* Fixed missing Paldean form flags
* Fixed order
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Slicing moves to new bitfield
* Wind moves to new bitfield
* Two-strike moves to new bitfield
* Forgot to add flagTwoStrikes to battle_moves.h
* Removed "flag" from field names
* FLAG_HIT_IN_SUBSTITUTE and FLAG_THAW_USER
* Airborne moves
* FLAG_POWDER, FLAG_TARGET_ABILITY_IGNORED and FLAG_DANCE
* FLAG_BALLISTIC and FLAG_PROTECTION_MOVE
* Fixed missing uses of MOVE_UNAVAILABLE in battle_ai_util.c
* FLAG_SOUND
* FLAG_DMG_UNDERGROUND and FLAG_DMG_UNDERWATER
* FLAG_DMG_MINIMIZE
* Cleanup
* FLAG_STAT_STAGES_IGNORED
* Updated Pollen Puff's ballistic flag
* FLAG_STRONG_JAW_BOOST and FLAG_MEGA_LAUNCHER_BOOST
* thaw
* FLAG_THREE_STRIKES
* FLAG_IRON_FIST_BOOST
* FLAG_RECKLESS_BOOST
* FLAG_HIGH_CRIT
* Removed empty flags
* Moves that fail when called by Me First + added missing Shell Trap
* Moves that fail when Gravity is active
* Better names for banned fields
* Moves that fail when called by Instruct
* Cleanup
* Contact Moves + Fixed Wandering Spirit skipping contact checks
* Inverted FLAG_PROTECT_AFFECTED so that there's a flag for moves that SKIP protect.
* Simplified B_MOVE_FLAGS configs
* FORBIDDEN_METRONOME
* Renamed hitsPastSubstitute to ignoresSubstitute
* FORBIDDEN_PARENTAL_BOND
* Struggle uncallable by Metronome
* FORBIDDEN_MIMIC
* FLAG_KINGS_ROCK_AFFECTED
* Made a single config for move flags
* Macro for checking move flags
* FLAG_MAGIC_COAT_AFFECTED
* Fixed HasMagicCoatAffectedMove
* FLAG_SNATCH_AFFECTED
* Removed unused EFFECT_FLINCH_MINIMIZE_HIT
* Fixed Stench/King's Rock interaction
* Removed sMovesNotAffectedByStench in favor of checking move effects
* Removed EFFECT_TWISTER, which was a repeat of EFFECT_FLINCH_HIT
* Changed Gen2 configs to less than Gen 3
* FORBIDDEN_SLEEP_TALK
* Cleanup
* Inverted FLAG_MIRROR_MOVE_AFFECTED
* FLAG_SHEER_FORCE_BOOST
* Ordered
* FORBIDDEN_ASSIST and FORBIDDEN_COPYCAT
* Removed TestMoveFlags and TestMoveFlagsInMoveset + flags field
* Fixed Triple Arrows test
* 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