* implement move relearner in summary screen
* implement renaming in summary screen
* Enable summary screen rename and relearn by default
* Store original callback when opening screen to invoke later, hide rename/relearn for mons being moved in PC
* add a config to not restore full PP when relearning from summary screen
* hide summary relearner option if mon has no relearnable moves
* add note not to decap RELEARN string
* re-static function that now no longer needs to be accessible elsewhere
* Fix move relearner not showing up if you first select a mon with no moves
* The great curly brace massacre of 2024 (PR feedback)
* sprinkling in some parentheses
* PR feedback 2 (curly braces & whitespace)
* Add back older sprites
* Graphics config
* Added GBA most graphical data to gSpeciesInfo
* Footprints are now affected by P_GBA_SPECIES_GFX + removed duplicated files
* GBA mon icons
* Split GBA footprints into separate config
* Separated GBA icons into their own config
* Fixed GBA icons depending on P_GBA_SPECIES_GFX instead of P_GBA_ICONS
* Moved GBA sprites to regular folder with prefix
* Renamed configs
* Temporarely disabled shadows when GBA sprites are enabled
* Removed remaining files from pokemon_old folder
* burn dmg test depends on config
* burn and frostbite tests use B_BURN_DAMAGE config for denom val
* update kings shield test with config
* add RNG_RANDOM_TARGET, use SetRandomTarget in HandleAction_UseMove target acquisition, update uproar test to PASSES_RANDOMLY since test will fail if you target the soundproof voltorb. Slightly faster UproarWakeUpCheck
* add sticky web+contrary test
* add EXPECT_EQ to contrary+sticky web test
* Update src/battle_script_commands.c
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Update src/battle_util.c
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Update test/battle/move_effect/uproar.c
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* fix test
* syntax fix
---------
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Add No Running Battle Flag
Adds a flag that if set prevents the player from being able to run from wild battles.
* Formatting battle_util.c
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Adjust for pre-Gen 8 Teleport
Addresses the edge case with Teleport when used with under Gen 8 mechanics.
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Weird tests plz help <3
* better RNG tag names?
* DATA.trial for data to reset between trials
* Fix Wonder Guard test
* Unused errors
* Finish new tests
* Split fix into its own PR
* Spacing
* Rename RNG_AI_SWITCH_TOXICD
* Forgot to save file lol
---------
Co-authored-by: Martin Griffin <martinrgriffin@gmail.com>
* Make functions CanAbilityAbsorbMove and CanAbilityBlockMove
* clean up
* Replace ai code with CanAbilityBlockMove / CanAbilityAbsorbMove
* Adds CanPartnerAbilityBlockMove
* Use switches instead of if-blocks
* solve potential bug in singles with spread attacks
* fix test
* revert other fix
* flash fire does not increase a stat
* left a comment for a future test and addition
* remove more checks
* comment was incorrect. it only applies to storm drain and lightning rod
* revert ndebug
* revert minor change
* Update src/battle_util.c
* updated Conversion 2 mechanics and added the toggle B_UPDATED_CONVERSION_2
* fixes and added new test cases
* bugfixing and added EWRAM u16 gLastUsedMoveType
* update after Pawkkie review
---------
Co-authored-by: wiz1989 <wiz1989@LAPTOP-8Q3TPMGC.localdomain>
* Switch AI considers free switches from pivot move
* Fix Baton Pass refactor
* Some cleanup and comments
* Mon fainting to hazards is a 0HKO
* Revert "Mon fainting to hazards is a 0HKO"
This reverts commit 446f73822651af55ee1a36aeb61f3f0c9317d244.
* Cleanup speed check / Eject Pack
* Move eject trackers to AiLogicData
* Review feedback and WhoStrikesFirst changes
* This linebreak will bug me lol
* Also this comment, heck
* Last bit of comment cleanup
* Adds Commander
* review points
* new line
* correction
* regression / double targeting still broken
* fix wrong target order
* transform fixes
* haze test
* fixes, tests
* bring back wrongly removed else if case
* Eject Pack / Button test + fix
* red card fix
* test fixes
* Fixes Tatsu being hit by multi hit move
* change transform check
* fix test + revert change
* Fix Tatsugiri attacking after freed up from Dozo in the same turn
* Dragon Darts tests
* fix test
* review comments
* assumtion in wrong file
* Order Up test fixes
---------
Co-authored-by: hedara90 <90hedara@gmail.com>
* Converted bag pocket names to COMPOUND_STRINGs
* Converted berry-related text to COMPOUND_STRINGs
* Converted PokeBlock-related text to COMPOUND_STRINGs
* Added indexes to BerryFirmnessStrings
* Updated call to sBerryFirmnessStrings
* Changed gText to sText
* fixes Micle Berry not increasing accuracy on the next turn
* adds bitfield instead of using protect struct
* test from pawkkie
* ndebug
* renaming
* delete redundant comment
* typo
* micle berry more detailed descriptions
* Simplified fix from #4638
* Fixes interactions with Z-Moves, Magic Guard, Heavy Rain, Pledge
* Powder Tests
* Remove duplicate
* Assume Powder is a powder move
* Add config for Powder Rain interaction
* Only primal rain
* Z-Moves fix handled in Canceller_Z_Moves
* Fix BattleScript name
* Make sure Z-Move + Powder still damages user
* Add data to SpeciesInfo entries for in-battle shadows
* Implement sized shadows in the sprite visualizer
* Implement sized shadows in game code
* Show shadows for the lead battler for opponents during their battle anim
* Feedback on shadows, round 1
* Revert removal of Goomy and Sliggoo shadows
* Fixed GEN_3 setting
* Code cleanup + remove pre-processor branches
* Fix bugs with gen-3 configuration branch
* Style corrections, final shadow coordinate adjustments
* Adjustments to Garbodor and Araquanid
* Cleaned up duplicated dynamic type functions
* Small cleanup
* Oops, last cleanup broke stuff
* Alignment
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Some jsonproc string utility functions
Adds stringContains, stringStartsWith and stringEndsWith for use in jsonproc.
* Time-based wild encounters
This adds some configs that allows users to define wild encounter groups on a map that are automatically cycled through depending on the time of day.
* Adds config to show chosen move and target of ingame partner, `#define B_SHOW_PARTNER_TARGET`, default `FALSE`
---------
Co-authored-by: Hedara <hedara90@gmail.com>
* Fix Slateport Battle Tent/Battle Factory
Stops the Battle Factory and Slateport Battle Tent from returning no Pokémon when player wants to swap their Pokémon.
* Fix player rental party being junk data after rest
Fixes#5280
* Consolidate checks into single method
Consolidates every gSpecialVar_0x8005 check into a singular method.
* EV Caps and EV Items
Introduces EV caps, inspired by level caps, with configurable options for various cap implementations. Additionally, modifies EV items to interact with these caps based on a configurable setting.
* EV Caps fixes
Changed the EV caps to be less redundant and work better overall.
* EV Caps Fix part 2
Set the items back to ItemUseOutOfBattle_Medicine, got rid of ItemUseOutOfBattle_EVItem and ItemUseCB_EVItem, and reverted CB2_ReturnToPartyMenuUsingItem to CB2_ReturnToPartyMenuUsingRareCandy
* EV Caps Fixes Part 3
Fixed being able to use EV items to go over 252 limit on single stats.
* Update src/ev_caps.c
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Fix Instruct bypassing AtkCanceler + interaction with firstTurnOnly moves
* Fix Entry Hazards targeting the wrong side of the field if opponent fainted
* Remove unused BattleScript_AuroraVeilEnds and STRINGID_AURORAVEILENDS
* Alternative fix + Fix gBattlerTarget initially set to 2
* Fix Instruct animation
* Alternative anim fix
* Moved HandleInputChooseTarget and ShowEntireFieldTargets to non-static and added them as cases to ShouldHideTypeIcon
* Made ShouldHideTypeIcon easier to parse
* Made ShouldHideTypeIcon a for loop
* Fixed identation
* Made showTypesControllerFuncs a static const array per https://github.com/rh-hideout/pokeemerald-expansion/pull/5201\#discussion_r1730336265
* DoBattleIntro state documentation
* Removed unused state
* Update src/battle_main.c
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Fixed state jumps
* BattleStruct state uses enum
* Renamed state enums
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Replaced all the gBitTable[X] usages with 1 << X, and cleaned up script output
* Fixed failed merge in online viewer
---------
Co-authored-by: Hedara <hedara90@gmail.com>
* Converted Match Call names and descriptions to COMPOUND_STRINGs
* Moved May/Brendan and Elite Four descriptions into pokenav_match_call_data.c
* Moved Steven, Brendan, and May's Match Call text to pokenav_match_call_data.c
* Cleaned up Steven's Match Call text
* Added PokeNav option text to match_call_gfx
* Moved PokeNav page descriptions to menu_handler_gfx
* Moved help bar texts to pokenav_main_menu.c
* Moved various PokeNav strings out of strings.c and into their relevant files
* Removed unused PokeNav strings
* Fixed followers breaking for species Ids above 1535
* Added reminder to increase follower species bits if needed in the future
---------
Co-authored-by: Hedara <hedara90@gmail.com>
* Fixed Ice Face, implemented tests
* Fixed agbcc and bad battle mon looping
* Fixed the ShouldChangeFormInWeather function again
* Cleaned up End of Turn weather form changes, simplified Ice Face
---------
Co-authored-by: Hedara <hedara90@gmail.com>
* new move anims + fickle beam rework
* more fickle beam changes
* removed the true for consistency
* ficklebeamboosted gets cleared now
* mortal spin and thunderclap changes
* minor mortal spin pal change
* removed hex numbers and made hard press quicker
* First attempt at a port
* Slightly broken but working
* Got images working and opponent palettes
* half finished compressed spritesheet approach instead
* fix the palettes (smh)
* fix hflip, and a lot of clean-up
* Add B_SHOW_TYPES
* Got Illusion working
* Add num type enum
* Updated function to get type
* Fixed type icon position and cleaned up functions
* Updated illusions and Tera handling
* Added BATTLE_TYPE_IS_SINGLE and DOUBLE
* Removed IS_BATTLE_TYPE_SINGLE
* Implemented BATTLE_TYPE_IS_DOUBLE across repo
* Removed SIDE macro
* Updated config
* Deprecated battler alive macro
* Reindented file
* Added exceptions for 2v1
* Replaced Fainted check with Null check
* Added functionality for only types of caught mons
* UseDoubleBattleCoords updated
* Added ShouldFlipTypeIcon
* Renamed TryLoadTypeIcon
* Refactored functions
* Refactored functions
* Refactored functions
* Refactored functions
* Renamed SEEN to CAUGHT
* Reset config
* Added useSecondPalette and isOrdinary to gTypesInfo
* Further simplified secondPalette and isOrdinary
* Changed isordinary to isSpecialCase
* Renamed to useSecondTypeIconPalette
* Fixed Stellar type interactions
* fixed spacing
* fixed include/config/battle.h
* fixed
* fixed include/config/general.h
* changed type1 and type2
* Moved IsDoubleBattle to include.battle.h
Removed BATTLE_TYPE_IS_DOUBLE
Removed IS_DOUBLE_BATTLE
* Changed IsBattlerFainted to IsBattlerAlive
* Removed IsBattlerNull
* Moved GetBattlerData to be inline
* Renamed GetMonDefensiveTeraType
* Removed IsIllusionActive
* Fixed identation
* found one last isDoubleBattle hold out
* fixed redundant brackets
* Fixed spacing for B_SHOW_TYPES
* Update src/battle_script_commands.c
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Fixed padding
* Reindent file and refactored GetTypeIconHideMovement
* Update include/data.h
---------
Co-authored-by: RavePossum <ravepossum@proton.me>
Co-authored-by: Frank <fdeblasio1004@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Dynamic Hidden Power Types
* Dynamic Ivy Cudgel is summary screens
* Dynamic Move types
* missed unnecessary comment that got left in
* format cleanup, return cleanup, added Tera Blast and Tera Starstorm, Revelation dance fix-> now displays live type update when tera is selected during battle before move selection
* forgot to revert config defaults
* Update src/pokemon.c
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* if block spaces/ raging bull fix/ more condensing on checks/ reallocating config check/ tera blast fix (was displaying tera blast type on non tera'd mons in party when battler was tera'd)
* revert configs
* added Hail check to Weather Ball
* Fixed agbcc compile/brackets/u32 changes
* Quick fix to ensure Judgment/Techno Blast/Natural Gift are not affected by -ate abilities
* Update src/pokemon_summary_screen.c
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Change GET_MOVE_TYPE to a function
* add in battle check to GetMoveType function, move it to battle_util.c
* Update src/battle_util.c
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
* Update src/battle_util.c
---------
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
* Fix speed ties
* fixup! Fix speed ties
* fixup! Fix speed ties
* fixup! fixup! Fix speed ties
* fixup! Fix speed ties
* Workaround for Comatose-Ditto interaction
* Filename in list (no proper sorting yet)
* Line number and message in error list + removed sorting
* Style adjustment
* Added missing file/line number to "expected N passes/successes"
* Fixed Known Failing Passing test list
* Separated test list from totals
* Assumption fails list
* Better names
* Filename for KNOWN_FAILINGs passing
* Moved total back to the bottom
* Spaces correction
* Fixed test list count
* Source file for Alloc fails on tests
* Moved sourceLine from BattleTest to Test struct
* Fixed assumptions failed "and more" counter
* Fixed ASSUMPTION block not printing their line numbers
* Fixed when stopLine is printed
* Renamed stopLine to failedAssumptionsBlockLine
* Replace Opportunist todo tests with proper tests
* add failing test
* desc
* Fixes to Opportunist and Mirror Herb adjustments
* more tests
* some fixes
* first turn events switch
* simple enum + revert test desc
* Smarter Focus Punch
* Smarter Substitute, review feedback
* Use HasAnyKnownMove instead of isFirstTurn
* When are we removing agbcc again
* Use HasMoveEffect
* Refactors damage non types
* correction
* Refactor weather damage script
* new line
* correction
* there was a hail test already
* ndebug
* add sandstorm test
* Update src/battle_script_commands.c
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Added GetMaxNumMoneyDigits and GetMoneyBoxHorizontalPosition to header
Replaced use of PrintMoneyAmount
* Added define for MAX_MONEY_DIGITS
Removed GetMaxNumMoneyDigits
Converted uses of ConvertIntToDecimalStringN that called for 7 money digits to use MAX_MONEY_DIGITS
Replaced 6 money digits in PrintMoneyAmount with MAX_MONEY_DIGITS
* Use preproc and MAX_MONEY_DIGITS to increase the width of the sell item money box
* Added GetItemSoldMoneyHorizonalPosition and fixed ConvertInt in PrintMoneyAmount to use MAX_MONEY_DIGITS
* Added GetItemSoldMoneyHorizonalPosition and fixed ConvertInt in PrintMoneyAmount to use MAX_MONEY_DIGITS
* Removed width and tilemap changes
* Modified CountDigits to count digits greater than 1
Fixed PrintMoneyAmount to work with large digits
* Added an early return to PrependFontIdToFit
* First prototype working
* Updated GetMoneyBoxHorizontalPosition with amount
* Updated GetMoneyBoxHorizontalPosition with amount
* Got version working with one space before
* Got version working with one space before
* Got version working with all spacingOC
* cleaned up PrintMoneyAmount
* Created CalculateleadingSpacesForMoney
* Cleaned up for PR
* Changed tabs to spaces per https://github.com/rh-hideout/pokeemerald-expansion/pull/4943\#issuecomment-2223023365
* 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>
* Added config to prevent unobtainable Pokemon from being shiny
* Added config for disabling shinies if the player has no Poke Balls
* Removed check for adventure started flag
* consolidated gimmick checks, triggers, communication, and activation; updated test runner
* fixed improper use of .usableGimmick
* cleaning up battle_dynamax.c, changing function args to u32s
* fixed '#ifdef TESTING' causing errors
* updated z-moves to use gimmick interface, pared down redundancies; no AI/tests
* added support for z-moves in tests, consolidated gimmick fields
* removed ShouldUseMaxMove and .usingMaxMove
* renamed TryChangeZIndicator, updated z move display
* added several z-move tests and fixed various z-move interactions; fixed z-move category calc
* fixed useless battler arg in GetTypeBasedZMove
* added basic test check for bad Z-Move or Mega usage
* reworked test runner gimmick functionality; added support for Ultra Burst + Z-Move to test Light That Burns the Sky
* fixed gimmick test logic; fixed damage category override
* fixed mega rayquaza test fail
* consolidated gimmick indicator logic; added graphics to gGimmicksInfo
* removed TeraData struct
* reimplemented AI logic for Z-Moves; no changes
* updated Z-Move and Ultra Burst trigger gfx
* added testrunner check for multiple gimmick use
* fixed duplicate z-move call in test
* reorganized data/graphics/gimmicks.h
* added signature Z-Move ability tests; implemented Guardian of Alola
* fixed bad test update
* fixed Thousand Arrows not affecting Tera Flying; clean-up
* fixed -ate tests
* fixed tera tests
* fixed tera tests really
* fixed last batch of tests
* fixed -ate mega test again
* code review
* code review pt.2
* tweaked CanTera again
* dynamax flag only required for player
* Split Pokémon Object Events from Following Pokémon functionality
* Renamed follower pngs and palettes
* Define renames
* Reorder configs
* Renaming: SpeciesInfo fields, macros and palettes.
* add createmon and setwilddoubleflag script cmds to support createing mons at given player or enemy slots and setting up 2v1 battles
* give givemon macro PARTY_SIZE for tests
* style fixes
* add createmon test
---------
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
* improved Surf/Thunderbolt test that previously relied on correct AI guess
* remove unnecessary mod
* fixed infinite rng loop
* wrong ability num and readability
* Update src/battle_ai_util.c
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* AI uses safest option to faint foes
* dont calculate non crit dmg unless it's needed
* struct SimulatedDamage
* add GetDamageByRollType and name DamageRollType
* Parametrize test AI flags
* use simDamage member's instead of dmg & minDmg
* newer generation soundproof heal bell interactions
* Fix bugs and rewrite AnyPartyMemberStatused
* add missing check, tests, clean up
* fix ai code and rename battler for clarity
* Add FORM_CHANGE_BATTLE_TERASTALLIZATION and allow species to force tera types
* Fix form change not changing tera type
* Update form_species_tables.h
* Address reviews
* Can't change the forced Tera Type anymore
* Revert "Can't change the forced Tera Type anymore"
This reverts commit 67157250efeaf5ffefc45ac1955b09f27f09788b.
* Fix a lot of things
* Oops
* Update pokemon.h
* Update pokemon.h
* Address reviews
* Update tera_starstorm.c
* Update test/battle/gimmick/terastal.c
---------
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
* fix getboxmondata for evolutiontracker if compiled with agbcc
* refactored move animation scripts as part of gMovesInfo
* migration script for move anims
* default animation, migration for battle_anim_scripts.s
* added warning for missing animation
* add include to migration
* add struct member in migration script
* removed include and struct member from migration script
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Set TYPE_MYSTERY as type 0
* Remove redundant TYPE_NONE
* Moved Gen 1-3 type damage categories to gTypesInfo
* Set TYPE_NONE as 0 instead
* Grouped type info to a single file
* Fixed sTypeEffectivenessTable static name
* Adjusted MON_DATA_TERA_TYPE to account for shift in type IDs
* oops, missed the extern
* Moved Tera Type RGB values to gTypesInfo
* Fixed Tera Type test
* Added option test feature to set IVs
* Hidden Power type test
* Tera Type safeguard in givemon
* Removed isHiddenPowerType for a future PR that refactors Hidden Power
* Review changes
* Port xaman move desc to modern expansion
* Fix modern compiler error
* Fix compliling + EFFECT_PLACEHOLDER support
* Change to L-button to avoid conflict with Mega Evolution
* Reorder and change priority to category
* add sprite for move category icon, declare category icon sprite data extern
* remove static category icon sprite data from hgss dex for global data
* Change to else if
---------
Co-authored-by: Pawkkie <moog272@gmail.com>
Co-authored-by: RavePossum <ravepossum@proton.me>
* add saveattacker/savetarget stack
* add safety checks to savedAttackerCount/savedTargetCount
* add testing warnings for saveattacker/savetarget
* update frisk with saveattacker
* restoretarget at end of red card battle scripts, remove testing checks on SaveAttacker,SaveTarget
---------
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
* #defines for damage roll bounds
* Risky AI behavior implemented
* Ignore score penalty to EFFECT_RECOIL_IF_MISS moves if accuracy has been lowered
* Adjust score defines
* EFFECT_MIND_BLOWN
* Use GetBestDmgMoveFromBattler instead of AI_CompareDamagingMoves
* 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
* Belch scoring fix and test
* Add assumptions for pocket
* Update test to AI_SINGLE_BATTLE_TEST
* Alex's fixes
* Missed reverting a line
* Mucked up spacing mb
* Mucked up the spacing fix mb MB
* fix getboxmondata for evolutiontracker if compiled with agbcc
* fixed full restore curing status condition when used in battle on party member with missing hp
added more full restore tests
* formatting, removed unused
* move restorebattlerdata out of Ai_CalcDmg
* fix SetBattlerdata calls
* add saved field to struct AI_SavedBattleMon to prevent overwriting saved mon info
* AI_CalcPartyMonDamage set opposing battler known data
---------
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
* stat stage related AI fixes
* add more ai fixes and 2 tests
* use legal ability in tests
* Fix test and remove mold breaker check
* Use DoesBattlerIgnoreAbilityChecks
* Fixes Costar, Zero to Hero, Supreme Overlord and Ruin abilities' switch-in messages
* Fixed typo in Supreme Overlord's String Id
* Fixes spacing in battle_string_ids.h
* Split isLegendary into isRestrictedLegendary and isSubLegendary
* Address reviews and fix build
* Update frontier_util.c
* Remove gFrontierBannedSpecies , fast edition
* Sped up name generation
* More speed up
* Split Frontier restriction into its own flag
* Mythicals shouldn't be banned always anymore
* u32
---------
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
In the Pokémon Storage System, even FONT_SMALL_NARROWER isn't sufficient
to prevent clipping in all cases. e.g. Unremarkable Teacup clips. We
have decided to accept that cost to make the rest of the user experience
better, but downstream projects that don't like that trade-off can
either a) alter the Pokémon Storage System UI, or b) set
I_EXPANDED_ITEM_NAMES to FALSE.
In contests, even FONT_NARROWER isn't sufficient to prevent clipping in
all cases. e.g. Stomping Tantrum clips. We have decided to accept that
cost to make the rest of the user experience better, but downstream
projects that don't like that trade-off can either a) alter the contest
UI, or b) set B_EXPANDED_MOVE_NAMES to FALSE.
PARAMETRIZE_LABEL is like PARAMETRIZE, except that it allows the user to
provide a label which will be displayed in the test name line. This is
useful for tracking _which_ PARAMETRIZE case failed in the situation
where the numbers are unwieldy.
* wrote foundational terastal tests
* implemented baseline test-only Tera functionality; modified GetBattlerType + STAB calculations, misc. changes to some moves
* added tests and func. for Stellar type, more tests for Tera Blast
* more tests for Stellar type, Conversion fixes, Color Change + Conversion2 future proof
* implemented tera blast, expanded stellar type func., fixed tests
* last set of Tera/Tera Blast tests for checklist, protean fix
* implemented in-battle Terastallization, WIP stellar indicator and tera animation
* fixed bad merge
* expanded NUMBER_OF_MON_TYPES, cut down on TYPE_STELLAR hackiness, added Stellar type to summary
* fixed type indicators
* added tera logic to AI
* implemented code review changes, added B_TERA_ORB_NO_COST
* updated AI to calc damage with Tera when applicable; minor rework to AI gimmick handling
* fixed Tera Blast split choice occuring when not Terastallized
* fixed Tera Blast using Last Respects BP calcs
* added tera type to TrainerMon, code review tweaks
* Implemented chain fishing
* Added configs
* I_FISHING_MINIGAME implemented
* Refactored Check For Bite
* CLeaned up version of metatile checks
* Removed debug script
* Added helper functinons
* Cleaned up CalculateFishingProximityOdds
* Added new constatnts for cardinal direction and axis
* Updated with constants
* Reordered functions
* Cleaned up some functions
* Moved constants
* Created UpdateChainFishingSpeciesAndStreak
When 3 sides are blocked, every cast will get a mon
* Created DoesFishingMinigameAllowCancel
* Removed fishing chain check
* Fixed bug where streak was not incremented correctly
Fixed bug where Land was not properly counted
Fixed bug where streak was always being read as maxed
* Updated variable and function names
* Updated variable and function names
* Moved UpdateChainFishingSpeciesAndStreak to happen before shiny rolls occur
* Removed debug statements
* Applied feedback from https://github.com/rh-hideout/pokeemerald-expansion/pull/4343\#discussion_r1551278416
* Fixed default item config and changed gChainFishingDexNavStreak and sLastFishingSpecies to only use EWRAM when features are enabled
* Update include/config/item.h
Include feedback from https://github.com/rh-hideout/pokeemerald-expansion/pull/4343#discussion_r1567145660
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Changed Dexnav to DexNav per https://github.com/rh-hideout/pokeemerald-expansion/pull/4343\#discussion_r1567145660
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Added first working version
* Fixed spacing and set config to false
* Update src/overworld.c
Updated spacing per https://github.com/rh-hideout/pokeemerald-expansion/pull/4370#discussion_r1555917636
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
$ python3 migration_scripts/convert_parties.py src/data/trainers.h src/data/trainer_parties.h src/data/npc_trainers.party
Is available to convert Trainer Control-formatted trainers/parties into
Competitive-formatted ones.
Multiple '#include's can be placed in the trainer section of src/data.c
to support spreading the trainers across multiple .party files.
trainerproc does not interpret the values, leaving that job to the C
compiler, so we use '#line' to associate those errors with the lines in
the .party file(s). Because the columns don't make sense we use
-fno-show-column and -fno-diagostics-show-caret. We might want to move
gTrainers into its own file so that the rest of src/data.c isn't
affected by those flags.
Extensions (misfeatures, imo):
- .party files are passed through cpp, so '#define's are supported, and so
are '// ...' and '/* ... */' comments.
- .party files also support writing, e.g. 'SPECIES_PIKACHU' instead of
'Pikachu'. This allows people to write constants explicitly if they
like.
Pragmas:
- '#pragma trainerproc ivs explicit' requires an explicit 'IVs:' line
rather than defaulting to 31s.
- '#pragma trainerproc ivs <IVs>' changes the default IVs.
- '#pragma trainerproc level explicit' requires an explicit 'Level:'
line rather than defaulting to 100.
- '#pragma trainerproc level <level>' changes the default level.
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* more customization to struct FacilityMon, remove facility item ids, convert vanilla data, add CreateFacilityMon universal function
* fix some unused vars
* use TrainerMon struct instead of FacilityMon
* add dynamaxLevel, gigantamaxFactor to CreateFacilityMon
* some struct TrainerMon documentation
---------
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
* Absolute IDs
* Mothim internal forms
* Scatterbug/Spewpa internal forms
* Fixed Mothim not having form tables
* Totem Alolan Raticate
* Moved shared dex text to its own folder
* Totem Mimikyu
* Added missing empty third-ability fields
* Totem Gumshoos + missing totem flags
* Renamed files to better match their contents
* Fixed Disguise on Totem Mimikyu
* Totem Vikavolt/Alolan Marowak + missing Gumshoos form table
* Totem Ribombee/Araquanid/Lurantis/Salazzle
* Totem Togedemaru/Kommo-O
* Partner Pikachu/Eevee
* Reintroduced shinyLocked species flag for convenience
* Revert "Reintroduced shinyLocked species flag for convenience"
This reverts commit 3e07bd378ba6a249effe0aed83a424d0c775f236.
* Moved BERRY_MUTATION_CHANCE to include/config/overworld.h and renamed it to OW_BERRY_MUTATION_CHANCE
* Move level_caps.h to config folder
* Multiple EV/IV refered as EVs/IVs
* Disabled decap by default
* Level up learnsetst comments
* Moved gTypeNames into gTypes
* Added invalid move text to struct
* Added max move to struct
* Added icon palette to struct
* Added macros for invalid and max moves
* Swapped palette and max move order
* Renamed invalid to generic
* Renamed invalid to generic in struct definition
* Added zMoves and items to type struct
* Addressed comments
* Incorporated newer comments
* Updated comment format
* Lvl up learnsets by generation
I think the title sums it up pretty nicely
* Update level_up_learnsets.h
forgot some newer pokemon
* divided the learnset file into generations
* Separated learnsets by generation
Separated the learnsets by generation, added a bit more documentation in the config file
* Update src/pokemon.c
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Update include/config/pokemon.h
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* PLA aux item sprites
* Gen 6 lvl up Learnset update
Updates gen 6's level up learnsets to ORAS (previously XY)
* Revert "Merge branch 'upcoming' of https://github.com/MartyKen/pokeemerald-expansion into upcoming"
This reverts commit 53462c4088926a813f216a7917b1dfeb5ef2ca25, reversing
changes made to 051a93058c83c691f8476fbb97035e64fcee38aa.
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Add LGPE+ Premier Ball Bonus config
* Capitalization
* Premier Ball count in message + only give the amount of Premier Balls possible
* Review changes
* Updated B_TELEPORT_BEHAVIOR to match Premier Ball config
* Update src/shop.c
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Moved existing sanitized trainer data functions to include/data.h
* Sanitized encounterMusic_gender
* Sanitized trainer class ID
* Sanitized trainer pic ID
* Sanitized trainer starting status
* Sanitized obtaining Trainer struct
* Sanitized trainer double battle flag
* Sanitized trainer party size
* Sanitized trainer mugshot data
* Sanitized trainer name
* Consolidated Dome Brain trainer data to the rest of the frontier data
* Sanitized trainer items
* Removed accidental test data
* Sanitized trainer party
* Sanitized trainer AI flags
* Final encapsulation bit
* Adds Tidy Up + minor Dragon Cheer follow up
* improve tidy up script
* Add IncreaseTidyUpScore function
* remove useless calls
* 2 small tests and a correction for IncreasyTidyUpScore
* Sets neutral nature and ability 0 as default in trainer control
* add config to generate a random ability
* minor correction
* move config to battle.h
* fixed compiling
* Updated the way in which ScrCmd_givemon and ScriptGiveMon assign a default ability
When an abilityNum is not assigned in a call to givemon performed inside of an overworld script, ScriptGiveMonParameterized will make sure to generate an abilityNum of 0 or 1 in the same way vanilla does it; by defaulting to 0, and then tweaking it based on the least relevant bit of the Pokémon's personality.
ScriptGiveMon will set the default ability of a Pokémon in the same way now too, because even though it was rewritten in #3924, it should ideally produce a Pokémon in a similar way than vanilla does it.
* Removed pointless abilityNum setup in ScriptGiveMonParameterized
* Allow developers to choose metric or imperial, and their decimal seperator of choice for Pokédex entries
- Creates which cleans up the existing implementing of printing height and weight to the pokedex
- Developers can choose to use metric or imperial units of measurement in the Pokédex
- - Developers can choose to use any character as a decimal seperator in the Pokédex
- Allows users to define units and decimal seperators independently
- Fixes a bug in Lotad / Seedot house
* Fixed compilation issue with agbcc
* Updated to include HGSS Dex and address PR Feedback
This reverts commit c267dd6ee6.
# TODOs changed:
# -: Needs to be updated if compiling for a different processor than the GBA's:
# TODOs changed:
# -: Needs to be updated if compiling for a different processor than the GBA's:
# TODOs changed:
# -: Needs to be updated if compiling for a different processor than the GBA's:
* SaveBlock3 in sector footers
* Update load_save.c
Since mgriffin is currently not available I took the liberty to edit the file. Hope it's fine.
* SaveBlock3 in debug menu (#3)
---------
Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
Co-authored-by: psf <77138753+pkmnsnfrn@users.noreply.github.com>
* Last Respects effect + Fixed Supreme Overlord
* Fixed ability pop-up happening when there's no fainted party members
* Fixed Supreme Overlord counting faints during the battle instead of fainted party
* Removed invalid test.
* Converted GetSupremeOverlordModifier to an inline function
* Created inline functions to obtain faint counters
* Fixed erroneous implemenation and tests
* Teachable learnset helper mechanics
* Rename folder and python script
* Some teachable learnset work
* Update PoryMoves file labels
* Add header and make custom json
* Include found moves in output file
* Update SV file to latest version
* Don't run if there are no jsons to be found
* Add Basculin duplication in json
* Add universal move support to
* Ignore and skip Mew
* Integrate tool in Makefile
* Condense Basculin learnsets
* Split Oinkologne for easier generation
* Add Deoxys' XD move tutor data
* Add missing Darumaka/Yamask Galarian SwSh TMs
* Add TID species to sv.json
* Update sv.json to The Indigo Disk data
* Add Python install instructions
* Fix Makefile
* Expand header with more information
* Add config to allow disabling the learnset helper
* Update include/config/pokemon.h
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Don't crash if the config is missing
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Lvl up learnsets by generation
I think the title sums it up pretty nicely
* Update level_up_learnsets.h
forgot some newer pokemon
* divided the learnset file into generations
* Separated learnsets by generation
Separated the learnsets by generation, added a bit more documentation in the config file
* Update src/pokemon.c
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Update include/config/pokemon.h
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Introducing an expanded givemon
* Added debug features to check a Pokémon's EV and IV
* Added a parameter to set a custom mon's gender
* Added a debug feature to clear the party
* Defined the EV/IV getters in gSpecials
* Added Gigantamax Factor toggle to givecustommon
* Updated Gigantamax Factor label in givecustommon macro
* Added tera type parameter to givecustommon
Misc. changes:
-Added a few harmless comments to CreateCustomMon for consistency reasons.
* Cleaned up the code inside CreateCustomMon a bit
Also updated the values assigned to the parameters of ScriptGiveCustomMon
This is temporary though. I'll probably end up turning them into 2byte parameters so they can be filled when the scripting command is called by using variables once I solve the bigger problem that the scripting command is currently facing.
* Foolproofed the Poké Ball check in CreateCustomMon
* Assigned a default gender to givecustommon
This solved the nasty issue by which the command wasn't working properly if you didn't fill in each parameter when calling givecustommon in a script.
* Reinforced the gender checks at CreateCustomMon
* Re-reinforced the gender checks at CreateCustomMon
* Compressed givecustommon and added tests
-Made givecustommon skip unspecified parameters.
-Added scripting variables support for every parameter.
-Added tests.
* Updated the default values of some ScriptGiveCustomMon parameters
* Replaced vanilla's givemon with givecustommon
Misc. Changes:
-Renamed CreateCustomMon to ScriptGiveMonParameterized.
-The truth is that the function was never limited to creating the skeleton of a Pokémon like the actual CreateMon functions do, so that label was never correct. The function was always an expanded ScriptGiveMon.
-Moved the core functions to src/script_pokemon_util.c which is where they actually belong.
-Updated ScriptGiveMonParameterized a little to incorporateb changes that were applied to the original ScriptGiveMon, namely, Synchronize ability and form change handling.
-Introduced a new ScriptGiveMon to replace the original one.
* Corrected givecustommon tests
* Fixed the default IV values for the new givemon
* Updated DebugAction_Party_ClearParty for consistency with the other debug functions
* Updated the text strings used by the Check EV/IV debug features
---------
Co-authored-by: Martin Griffin <martinrgriffin@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>