109 Commits

Author SHA1 Message Date
mudskipper13
aae04ffc84
Improve trainer back pic-related data and code (+ smol documentation) (#6821) 2025-06-30 23:50:48 +02:00
Philipp AUER
21f0eb1583
Debug parties and battles (#6884)
Co-authored-by: sbird <sbird@no.tld>
2025-06-03 23:21:17 +02:00
Bassoonian
c5c7bb13c9
Converts a bunch of defines to enums (#7041) 2025-06-02 15:54:37 +02:00
Eduardo Quezada
406fd7ce81
Expand trainerproc to support additional battle types (#6770)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-05-17 15:08:44 +02:00
Pawkkie
3f5335c4ba
Refactor AI flags to u64 (#6753)
Co-authored-by: DizzyEggg
2025-05-04 17:16:34 +02:00
hedara90
d1aa49cca3
Remove compressed palettes (#6455) 2025-04-26 22:58:40 +02:00
grintoul1
ec2aef2eff
Battle Transition: mugshots for multibattles (#6567)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-04-17 16:18:20 +02:00
Frank DeBlasio
4e8ddebb8d
Updated trainer pic tutorial (#6049)
Co-authored-by: Pawkkie <61265402+Pawkkie@users.noreply.github.com>
2025-01-25 19:36:19 -05:00
hedara90
88986baf5f
Trainer Party Pools (#5731)
Co-authored-by: Hedara <hedara90@gmail.com>
2025-01-25 13:28:46 +01:00
Bassoonian
a1c47a931f
Revert "Converts a bunch of defines to enums" (#6082) 2025-01-22 21:50:39 +01:00
Bassoonian
a3ce3a569d
Converts a bunch of defines to enums (#6071) 2025-01-21 21:19:41 +01:00
Eduardo Quezada
d7bbb2e628
Easy customizable Hidden Move types (#5872) 2025-01-04 21:42:14 +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
Alex
3db351359a
Clean up redundancy for mugshots (#5906) 2024-12-30 18:32:21 +01:00
Eduardo Quezada
ee9c6d4912 Merge branch '_RHH/master' into _RHH/upcoming 2024-10-17 00:16:01 -03:00
Eduardo Quezada
831b394ca1 Merge branch '_pret/master' into _RHH/pr/master/pretSync20240909
# Conflicts:
#	Makefile
#	include/battle.h
#	include/battle_main.h
#	include/battle_util.h
#	include/data.h
#	make_tools.mk
#	map_data_rules.mk
#	src/battle_setup.c
#	src/fieldmap.c
2024-09-11 15:26:14 -03:00
Bassoonian
c1ee43254e Clean up defines lacking spaces 2024-08-15 19:34:56 +02: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
Eduardo Quezada
3372503430
Added OBJ_EVENT_GFX_SPECIES_SHINY macro (#5049)
* Added OBJ_EVENT_GFX_SPECIES_SHINY

* Update src/event_object_movement.c

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

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-07-29 18:41:03 +02:00
Alex
5e2e2e9fce
Minor shouldUseGimmick refactor (#4962) 2024-07-13 20:56:18 +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
Eduardo Quezada
ee1d14755a Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers 2024-06-02 11:06:41 -04:00
Eduardo Quezada
0be643a517
Set TYPE_NONE as type 0 + other type data tweaks (#4462)
* 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
2024-06-01 07:38:22 +02:00
Eduardo Quezada
14ab00cfeb Moved message counts to their own file + remove unneeded include 2024-05-21 22:04:22 -04:00
Eduardo Quezada
73a13e5dd4 Some review changes 2024-05-18 10:40:09 -04:00
Eduardo Quezada
35a76248d1 Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	src/data/pokemon/species_info/gen_4_families.h
2024-05-06 16:03:29 -04:00
sneed
8d175ebe89
Automatically display TM/HM icons based on their move (#4452)
* Automatically get icons and palettes for TM/HMs

* Restore HM icons

* replace sTMTypePalettes with a gTypesInfo field
2024-04-29 19:29:00 +02:00
Eduardo Quezada
d42de03ddc Merge branch '_RHH/master' into _RHH/upcoming 2024-04-25 12:37:31 -04: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
6bde095ae8
Partner fixes (#4422)
* Partner fixes

* Generalise TRAINER_PARTNER(PARTNER_NONE)
2024-04-22 10:20:37 +02:00
Eduardo Quezada
3d9c7732f6 Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	include/event_object_movement.h
#	src/data.c
#	src/data/graphics/pokemon.h
#	src/data/pokemon/species_info/gen_4_families.h
2024-04-20 13:23:14 -04:00
Eduardo Quezada
5bf379720f Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	src/data/moves_info.h
2024-04-12 21:30:52 -04:00
Bassoonian
0acd058c16
Fix style of some bit definitions (#4319) 2024-03-29 17:43:33 +01:00
ghoulslash
5a986c6d04
Customizable FrontierMon Sets (#4313)
* 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>
2024-03-29 08:47:17 +01:00
Eduardo Quezada
39ed85635f Merge remote-tracking branch '_RHH_origin/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	include/data.h
#	src/data/graphics/pokemon.h
#	src/data/pokemon/species_info.h
#	src/data/pokemon/species_info/gen_1_families.h
#	src/data/pokemon/species_info/gen_2_families.h
#	src/data/pokemon/species_info/gen_3_families.h
#	src/data/pokemon/species_info/gen_4_families.h
#	src/data/pokemon/species_info/gen_5_families.h
#	src/data/pokemon/species_info/gen_6_families.h
#	src/data/pokemon/species_info/gen_7_families.h
#	src/data/pokemon/species_info/gen_8_families.h
2024-03-17 23:41:23 -03:00
Eduardo Quezada
3066216389
Type array tweaks (#4276)
* Using Z-Moves in type array

* Added Arceus form data
2024-03-12 12:32:06 +01:00
Frank DeBlasio
2f4203bc4c
Consolidate type properties (#4185)
* 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
2024-03-12 07:57:38 -03:00
Eduardo Quezada
c4323a230f Merge remote-tracking branch '_RHH_origin/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	include/data.h
2024-02-22 11:24:19 -03: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
Eduardo Quezada
ead108d28e Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	src/data/graphics/pokemon.h
2024-02-19 13:49:10 -03:00
Alex
7ab23cf426
Sets neutral nature and ability 0 as default in trainer control (#4172)
* 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
2024-02-18 15:02:58 +01:00
ghoulslash
ce99db0086
Generic Starting Battle Status Variable (#4176)
* setup generic starting battle status variable, ABILITYEFFECT_SWITCH_IN_STATUSES

* fix B_ANIM_TAILWIND, assign to starting statuses, and change B_VAR_STARTING_STATUS check for only the variable and not trainers

* Update src/battle_main.c

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>

* Update src/battle_util.c

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>

* Update src/battle_util.c

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>

* style fixes

* General_Room naims play SE

* fix sText_BizarreArenaCreated

---------

Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-02-14 10:05:37 +01:00
Eduardo Quezada
502a56efd1 Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	include/global.h
#	src/data.c
#	src/data/pokemon/species_info/gen_7.h
2024-02-13 20:35:05 -03:00
Nopinou
de0f94406a
Add shouldDynamax & shouldTerastal bits to TrainerMon (#4169) 2024-02-11 21:36:35 +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
Eduardo Quezada
ddc752eb14 Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	asm/macros/event.inc
#	data/field_effect_scripts.s
#	data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
#	data/script_cmd_table.inc
#	graphics/pokemon/castform/sunny/anim_front.png
#	graphics/pokemon/castform/sunny/normal.pal
#	include/battle_util.h
#	include/constants/event_object_movement.h
#	include/constants/field_effects.h
#	src/battle_controller_player.c
#	src/battle_util.c
#	src/data/object_events/movement_action_func_tables.h
#	src/data/object_events/object_event_pic_tables.h
#	src/data/trainer_graphics/back_pic_anims.h
#	src/daycare.c
#	src/event_object_movement.c
#	src/field_effect_helpers.c
#	src/load_save.c
#	src/scrcmd.c
#	src/trainer_see.c
2024-01-17 18:11:35 -03:00
Frank DeBlasio
0bdac90cfe
Refactor mugshots (#4000)
* Refactor battle mugshots
The battle mugshot transitions have been merged into the one transition id and are now loaded depending on the trainer data.

Two new fields have been added to struct Trainer; mugshotEnabled and mugshotColor. mugshotEnabled is the toggle for loading the mugshot transition when set to TRUE and mugshotColor is the color of the mugshot for that particular trainer.

The Elite Four and Champion have been updated so their mugshots are correctly loaded when you battle them.

A bug has also been fixed where if the player starts on a tile that has an active field effect, the player's sprite will use the palette of the opponent's sprite.

* Added a new folder in src/data named battle_transitions.

The two look ups for the opponent rotation scaling and coords have been put into their own files and added into this new folder.

The coords look up has also been changed to use the  struct.

* Fixed errors with modern that were preventing compile

* Added mugshot coords to gTrainerSprites

* Added rotation scales to gTrainerSprites

* Replaced tabs with spaces

* Incorporated comments

* Added battle_transition include back to data.c

* Fixed alignment issues in Mugshots_CreateTrainerPics

---------

Co-authored-by: pkmnsnfrn <pkmnsnfrn@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-01-16 00:45:13 +01:00
Frank DeBlasio
4d5c572d0c
Refactor trainer classes (#3875)
* Created TrainerClass struct

* Added money multiplier to TrainerClass struct

* Added Poke Balls to struct

* Condensed gTrainerClasses

* Simplified trainer Poke Balls

* Moved trainer classes into battle_main.c

* Removed complicated ball macro

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-01-04 13:30:42 +01:00
Martin Griffin
3ad66028e9
Backwards-compatible BoxPokémon Refactor (#3438)
* 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
2023-12-27 17:48:17 +01:00