188 Commits

Author SHA1 Message Date
Hedara
06d31bc8ea Merge branch 'master' into final-1.10-master-upcoming-merge 2025-02-26 22:07:10 +01:00
hedara90
cf43787d72
Added MOVE_TARGET_OPPONENT and added it to Me First, (#6336)
Co-authored-by: Hedara <hedara90@gmail.com>
2025-02-25 22:28:22 +01:00
Pawkkie
4359cbb77c
SwitchType enum to clean up GetMostSuitableMonToSwitchInto (#6184) 2025-02-05 16:49:53 +01:00
Alex
da9943d3b8
Clean up array access by using index instead of dereferencing the value (#6057) 2025-01-20 16:44:22 +01:00
hedara90
7c6c9120ea
Ewram and unused function cleanup sweep (#6019)
Co-authored-by: Hedara <hedara90@gmail.com>
2025-01-15 14:07:12 +01:00
psf
a7f77ed08d
Adds B_VAR_DIFFICULTY and related functions READ DESC (#5337)
Co-authored-by: sbird <sbird@no.tld>
Co-authored-by: Philipp AUER <SBird1337@users.noreply.github.com>
Co-authored-by: Martin Griffin <martinrgriffin@gmail.com>
Co-authored-by: hedara90 <90hedara@gmail.com>
2025-01-04 14:25:03 +01:00
Eduardo Quezada
9669a0554d
Encapsulate move data (#5852) 2025-01-01 20:34:33 +01:00
Pawkkie
9882e0aea6
Refactor ShouldSwitchIfAllBadMoves (#5452)
* Refactor ShouldSwitchIfAllBadMoves

* Rest of bugfix

* Enable Shed Tail test

* Revert "Enable Shed Tail test"

This reverts commit e0b9a3affcf3c465c8743741e5ca61bde6c8cb18.

* Better names for i, j

* Fix MAX_MON_MOVES that should be MAX_BATTLERS_COUNT

* battlerIndex  / moveIndex  fix

* Update src/battle_controller_player_partner.c

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-10-16 11:22:48 -04:00
hedara90
e4c81ba6e0
Removed all instances of gBitTable[x] (#5123)
* 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>
2024-08-17 10:28:09 -05:00
AgustinGDLV
9797640dff
Gimmick Refactor (#4449)
* 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
2024-06-22 22:25:40 +02:00
Bassoonian
d6422da284
Fix partner palette problem (#4736) 2024-06-07 21:05:16 +02:00
Eduardo Quezada D'Ottone
0522ec0247
Trainer data encapsulation (#4216)
* 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
2024-02-22 14:22:57 +01:00
Frank DeBlasio
7f50c0b9c3
Simplify gTrainerSprites (#4140)
* Simplified y_offset equations

* Removed trainer pic animation from gTrainerSprites

* Used metaprogram to simplify trainer sprites without mugshots

* Incorporated comments

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-02-06 22:24:36 +01:00
LOuroboros
a64e1c63c1
Move data unification (#3999)
* 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>
2024-01-29 08:51:32 -03:00
Frank DeBlasio
5cdee87489
Refactor Trainer sprites (#3597)
* Added TrainerSprite struct with coordinates

* Added .frontPic to struct

* Added .palette to TrainerSprite struct

* Added .animation to the struct

* Added define for sprite size

* Condensed animations since they were all the same

* Improved TRAINER_SPRITE/PAL defines

* Simplified seemingly unused .y_offset and TRAINER_PIC_SIZE values

* Condensed TRAINER_SPRITE and TRAINER_PAL into TRAINER_PIC

* Renamed .size to .y_offset since that what it appears to actually be

* Moved y_offset into TRAINER_PIC

* Moved animation inside of TRAINER_PIC

* Added array number to preproc

* Removed trailing spaces

* Added sprite/palette files to preproc

* Revert adding sprites to preproc as it fails agbcc

This reverts commit dce57f8d1bfab70b4c6630a9c4e5b43495891459.

* Added backsprite struct

* Added animations to backsprite struct

* Changed TRAINER_PIC to TRAINER_SPRITE

* Added animation to backsprite preproc

* Added .backPic to struct

* Moved array number into backsprite preproc

* Removed definitions for trainer sprites

* Hardcoded sAnims_Trainer into struct since every sprite uses it

* Fixed TRAINER_SPRITE arguments
2023-12-20 23:14:33 +01:00
Alex
1e25b53433
Partner Battle refactor (#3592)
* Partner Battle refactor

* fix for steven id

* clean up

* Use trainer partner names for id

* removed testing leftover

* comment change

* more review changes

* fix compiling

* remove partener count

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-20 12:38:28 +01:00
ghoulslash
c5ef339b25
add TryShinyAnimation to Controller_PlayerPartnerShowIntroHealthbox (#3757)
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
2023-12-17 21:10:03 +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
DizzyEggg
4dff0362df
Fix ai vs ai battles switch issue (#3283) 2023-09-10 19:01:12 -03:00
DizzyEggg
7c2ad314d4 merge with upcoming 2023-09-04 09:40:48 +02:00
DizzyEggg
aae4a0970c merge with upcoming 2023-08-30 15:46:27 +02:00
DizzyEggg
493c330cbd merge with upcoming 2023-08-30 13:23:55 +02:00
kittenchilly
028536e2d3 Spaces 2023-08-29 17:12:09 -05:00
kittenchilly
d540eccbb1 Merge branch 'upcoming' into ultraburst 2023-08-29 16:17:35 -05:00
DizzyEggg
156aa59f18 start removing gActiveBattler in controller emitters 2023-08-29 15:21:31 +02:00
DizzyEggg
44acd287f1 solve conflicts 2023-08-29 10:41:05 +02:00
DizzyEggg
9cf5376c96 use GetBattlerParty in LoadMonSprite 2023-08-21 09:43:01 +02:00
kittenchilly
c3e31af5f3 Ultra burst trigger 2023-08-09 22:12:26 -05:00
DizzyEggg
fec8f14fff IsAiAiBattle function 2023-08-09 15:57:22 +02:00
DizzyEggg
d0fe75b06a fixes 2023-08-09 09:57:42 +02:00
DizzyEggg
f72ec368fc improve switching with ai bad moves 2023-08-08 12:55:47 +02:00
DizzyEggg
ce18df46e6 replace global usage of gActiveBattler in controller files 2023-08-07 12:51:58 +02:00
DizzyEggg
b8ba6139cb health bar update 2023-08-07 10:29:02 +02:00
DizzyEggg
546b0c7e97 handle move anim 2023-08-07 09:26:03 +02:00
DizzyEggg
e8d6c99e6d more controllers work 2023-08-07 01:05:09 +02:00
DizzyEggg
ef8024d8c5 draw trainer pic 2023-08-06 21:50:59 +02:00
DizzyEggg
a9483c361b trainer intro ball throw 2023-08-06 12:41:36 +02:00
DizzyEggg
ffb0e20049 hide show party status summary 2023-08-05 23:27:56 +02:00
DizzyEggg
18db0cb3b7 controller string 2023-08-05 22:41:13 +02:00
DizzyEggg
f9e131b6ac fix recorded, exp update the same for player partner 2023-08-05 21:34:17 +02:00
DizzyEggg
0b4c1aa275 more work on controllers 2023-08-05 20:42:19 +02:00
DizzyEggg
1793b9e1da more controller functions 2023-08-05 14:11:25 +02:00
DizzyEggg
a505cd7fb9 simplify the get mon set mon data functions more 2023-08-05 12:53:14 +02:00
DizzyEggg
cbebdf044a handle se, bgm and fainting cry 2023-08-05 12:13:50 +02:00
DizzyEggg
5a8b6c18ef ball throw and start removing empty controller functions 2023-08-05 11:05:37 +02:00
DizzyEggg
c72bb27325 faint animation 2023-08-04 22:15:39 +02:00
DizzyEggg
7360a4a18a up to return mon to ball 2023-08-04 17:29:29 +02:00
DizzyEggg
7ba8a0216f more work on controllers 2023-08-04 13:42:40 +02:00
DizzyEggg
cc30d2fb53 start removing duplicate controller functions 2023-08-04 12:10:38 +02:00
Eduardo Quezada D'Ottone
81e59ace25
Cleaned up remaining Castform hack stuff (#3063)
* Removed gCastformFrontSpriteCoords

* Removed sCastformElevations and IsCastformForm

* Removed sCastformBackSpriteYCoords and castformPalette in BattleStruct

* Scrubbed unused BS commands

* Removed B_ANIM_CASTFORM_CHANGE and BattleForm constants

* Removed redundant function in Pokémon Debug menu

* Removed handling in animation scripts

* Removed gBattleMonForms

* Reduced MAX_MON_PIC_FRAMES to 2

* Removed Castform/Cherrim makefile stuff

* Fixed weather form change tests not checking species.

* Fixed Castform palettes after Lunos' PR
2023-06-30 09:58:07 +02:00