279 Commits

Author SHA1 Message Date
moostoet
5e40456f45
Fix AI_FLAG_DOUBLE_ACE_POKEMON sending duplicate Pokémon in doubles (#8279) 2025-11-18 19:33:49 +01:00
ghostyboyy97
ade850b215
fix (post-KO switch): force AI data recalc to see abilities on field correctly when pivot moves used by player (#7900)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-10-10 20:07:27 +02:00
khbsd
a4ecd7338b
fix: seen flags for first mon in enemy party (#7791)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-09-28 09:53:55 +02:00
surskitty
e8b6d40f18
AI_FLAG_ATTACKS_PARTNER with a config for bloodthirstiness (#7401) 2025-08-06 10:22:34 -04:00
AlexOn1ine
bc73f4654b merge master 31/07/25 2025-08-01 12:18:11 +02:00
Pawkkie
fa129ba906
Fix hit escape switching hardcode (#7403) 2025-07-25 19:28:24 +02:00
cawtds
59350cc32f
Increase party action limit (#7119) 2025-06-24 15:15:04 +02:00
Eduardo Quezada
b094b70dc5
More battle controller function consolidation. (#6877) 2025-06-21 10:59:41 +02:00
Hedara
bdd7c5bfa8 Merge branch 'master' into master-merge
Conflicts:
	src/contest_painting.c
2025-06-09 23:27:18 +02:00
Alex
d33651bfd0
Battle controller pret documentation (#7029) 2025-06-02 14:22:11 +02:00
Eduardo Quezada
8697bef20c
BtlController_EmitTwoReturnValues cleanup (#6855) 2025-06-01 11:29:02 +02:00
jfb1337
096493aa35
AI: Add AI_SMART_TERA flag to make smarter decisions about when to terastalize. (#6705)
Co-authored-by: jfb1337 <>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-05-31 09:47:25 +02:00
AlexOn1ine
33607529cd conflicts 2025-05-16 10:46:32 +02:00
Hedara
49906a81f7 Merge commit 'c39ef1a03002a7af94' into pret-merge
Conflicts:
	src/battle_ai_switch_items.c
	src/battle_controller_link_opponent.c
	src/battle_controller_link_partner.c
	src/battle_controller_opponent.c
	src/battle_controller_player.c
	src/battle_controller_player_partner.c
	src/battle_controller_recorded_opponent.c
	src/battle_controller_recorded_player.c
	src/battle_controller_safari.c
	src/battle_controller_wally.c
	src/battle_controllers.c
	src/battle_main.c
	src/battle_script_commands.c
	src/battle_util.c
	src/battle_util2.c
	src/pokemon.c
2025-05-15 17:31:50 +02:00
Bassoonian
e42890e954
Consolidates a bunch of battle controller functions (#6838) 2025-05-15 11:26:18 +02:00
AlexOn1ine
4959187d97 fix conflicts 2025-05-09 21:47:53 +02:00
Eduardo Quezada
392d662c12
Rename GetPartyBattlerData to GetBattlerMon (#6800) 2025-05-09 15:14:09 +02:00
Eduardo Quezada
1f23fe0dd3
Use GetPartyBattlerData where appropiate (#6779) 2025-05-06 17:13:50 +02:00
DavidJCobb
0f17e70371 Shorter names for engine/controller communication enum members 2025-05-02 00:01:15 -04:00
AlexOn1ine
9a14bb2dd3 removed aiFlags prefix 2025-05-01 20:22:11 +02:00
AlexOn1ine
182d42642d Move out ai struct out of BattleResources 2025-05-01 11:27:48 +02:00
Alex
55f9f6adea
Refactor battler flee and watch options + clean up (#6724) 2025-04-30 11:54:42 -04:00
DavidJCobb
b4ee45f3e8 Renamed BATTLELINKMSGTYPE_ to BATTLELINKCOMMTYPE_
I want to avoid the word "message" since PRET has already chosen "battle message" as the term for predefined strings usable in the battle scripts and UI.

I was considering the term "battle link packet" instead, but the library for wireless communications already uses the word "packet" even though GBATEK does not. I'm going with "battle link communication type" instead. For this particular context, I don't think we need a compound noun ("X type"); the singular noun "type" is fine enough.
2025-04-26 11:37:20 -04:00
DavidJCobb
d8721b668e Fixed find-and-replace mistake
Functions were using the wrong constant.
2025-04-26 10:54:22 -04:00
DavidJCobb
9dc48899d3 BUFFER_A/B -> BATTLELINKMSGTYPE; link send/recv. task data names
Replaced the BUFFER_A and BUFFER_B constants with the BATTLELINKMSGTYPE enum, which also identifies the "controller becoming idle" message type.

Named the task data for the link send task and the link receive task. Added macros to functions related to those tasks, for legibility.
2025-04-26 00:13:42 -04:00
hedara90
4e01ce6993
Moved some AI stuff out of the battlestruct (#6405)
Co-authored-by: Hedara <hedara90@gmail.com>
2025-03-11 21:23:02 +01:00
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
Salem
01e8d8233e
Trainer Battle Parameter Consolidation (#5982) 2025-01-25 22:02:39 +01:00
psf
b109aa0c92
Cleaned up Trainer Slides, added automated Trainer Slide tests, add new Enemy Critical Hit Slide (#6018) 2025-01-23 16:28:33 +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
Eduardo Quezada
9669a0554d
Encapsulate move data (#5852) 2025-01-01 20:34:33 +01:00
Eduardo Quezada
82252251e7 Merge branch '_pret/master' into _RHH/pr/master/pretMerge20241220 2024-12-20 16:04:33 -03:00
Eduardo Quezada
5483e05db6 Fixed brace style inconsistencies 2024-12-05 12:46:50 -03:00
Alex
70ca5060f9
Fixes wrong Id when AI chooses mon to switch in (#5684) 2024-11-18 17:18:26 -05:00
GhoulMage
5df6f0b753
AI_FLAG_ACE_POKEMON takes into account separate trainers (#5608) 2024-10-29 15:18:29 -04:00
GhoulMage
6819dd3c37
New AI flag for marking the two last Pokémon as Ace Pokémon. (#5587) 2024-10-27 11:32:45 -04:00
Eduardo Quezada
358c0d0699
Added back GBA sprites via config (#5206)
* 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
2024-10-18 13:37:00 +02: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
ghoulslash
feeccb9198
Simplify BS_FAINTED_MULTIPLE_1 double battle logic in openpartyscreen (#5435)
* simplify BS_FAINTED_MULTIPLE_1 doubles logic

* simplify openpartyscreen BS_FAINTED_MULTIPLE_2 checks, too

* Update src/battle_script_commands.c

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>

* Update src/battle_script_commands.c

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>

* Update src/battle_script_commands.c

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>

* more readable OpponentHandleChoosePokemon

* Update src/battle_controller_opponent.c

* Update src/battle_controller_opponent.c

---------

Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-10-09 09:38:21 +02:00
Rachel
b478881fc6
Add in-battle shadows underneath all enemy battlers (#5178)
* 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
2024-09-10 21:27:49 +02: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
psf
d1183f4b8a
Add B_SHOW_TYPES and cleaned up IsDoubleBattle (#5131)
* 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>
2024-08-11 17:55:51 +02: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
AgustinGDLV
84a9d4ffcf
Terastallization (#4110)
* 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
2024-04-24 11:17:46 +02:00
Bassoonian
8329d8368d Merge branch 'master' of https://github.com/pret/pokeemerald into pretmergemidapril 2024-04-12 12:16:28 +02:00
LOuroboros
3135a1fc2b
Updated value-setting of gMain.inBattle at OpponentHandleEndLinkBattle 2024-04-05 17:04:46 -03:00
DizzyEggg
650f80d57e
remove some unused data (#4239) 2024-03-04 17:36:23 +01: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