Commit graph

5722 commits

Author SHA1 Message Date
Alex
1339256d5d
Adds Ability Hospitality (#3818)
* Adds Ability Hospitality

* fix agbcc
2023-12-25 01:43:57 +01:00
LOuroboros
58b03cb3bd
Implemented a CannotUseItemsInBattle function (#3524)
* Implemented a CannotUseItemsInBattle function
This fucntion is the result of merging CannotUseBagBattleItem and CannotUsePartyBattleItem. No reason to split the work between 2 functions when you can do it all with just 1.

Misc. Changes:
-Turned most of the if statements inside the function into "else if" statements for performance reasons.
-Refactored how the local variable "cannotUse" was used turning it into a bool.

* Made CannotUseItemsInBattle use a switch statement

Misc. Changes:
-Removed pointless parentheses from case EFFECT_ITEM_SET_FOCUS_ENERGY
-Removed pointless i loop variable from case EFFECT_ITEM_INCREASE_ALL_STATS and replaced a hardcoded 1 in its for loop.
-Turned the i loop variable declared at the top of the function into a u32 variable
-Removed pointless comments. The EFFECT_ITEM constants are readable enough to convey what sort of items they affect.

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-24 22:10:01 +01:00
Zimmermann Gyula
f700466e8d
Implement optional Gen1 type immunity logic. (#3627)
* Implement optional Gen1 type immunity logic.

* Add tests against Gen1 burn, freeze and paralysis.

* !fixup Expand tests with Gen1 paths.

* Fixup tests.

Remove superflous defines.
Explicitly ASSUME used move type and effect.

* Fix flipped definitions on Freezing Glare test.

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-23 16:34:24 +01:00
DizzyEggg
1a7166c2bb
Tests do not allow to use SEND_OUT if the chosen mon is fainted (#3752)
* Tests dont allow to send out pokemon with 0 hp

* remove test test

* handle in-game 0 hp sent out

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-23 00:27:40 +01:00
tertu
fb28ce50ae
Optional high-quality RNG (#3780)
High-quality RNG, behind the HQ_RANDOM flag, enabled by default

Makes the shuffle test error a bit more tolerant
2023-12-22 17:39:15 +00:00
kittenchilly
505b8b63eb
Add Doodle + update ability banlists (#3609)
* Add Doodle

* Doodle test

* Oops

* Update battle_util.c

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-22 16:45:55 +01:00
fakuzatsu
2af6d65893
added ability to set flags in tests (#3786) 2023-12-21 13:01:13 +00:00
DizzyEggg
698e69f2b3
add emitResult argument to ShouldSwitch AI functions (#3784) 2023-12-21 11:40:04 +01: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
Nephrite
1708c80200
Removed ALWAYS_CRIT, renamed critBoost (#3779)
Replaced ALWAYS_CRIT with an alwaysCriticalHit flag to account for the fact that in earlier generations, there is no crit stage at which crits are guaranteed. Renamed critBoost to criticalHitStage (at Edu's prompting). Reorder .criticalHitStage defines in battle_moves.h to be aligned with struct order.
2023-12-20 16:16:02 +01:00
DizzyEggg
6137db102e
Ally Switch (#3533)
* ally switch move animation

* Ally Switch anim done

* ally switch test and improve animation

* derp

* add ally switch known failing test for ally targeting moves

* moves which targetted ally fail after ally switch

* ally switch works like protect

---------

Co-authored-by: root <root@LAPTOP-3SNV7DEQ>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-20 15:26:28 +01:00
DizzyEggg
8d238c88b9
Follow -1, 1, 0 convention for comparision functions (#3777)
* change comparision functions to use -1, 1, 0

* m
2023-12-20 14:47:14 +01:00
Martin Griffin
50cbcebc81 Merge remote-tracking branch 'rhh/master' into upcoming 2023-12-20 12:56:35 +00: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
Alex
069769710b
Fixes Item Metronome damage (#3767)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-20 11:24:12 +01:00
Eduardo Quezada D'Ottone
442620cf6b
Renamed Battle Move "Split" to the proper "Category" (#3774) 2023-12-20 10:08:26 +01:00
Martin Griffin
13a4bf5838 Merge remote-tracking branch 'rhh/master' into upcoming 2023-12-19 18:08:13 +00:00
kittenchilly
c16d85e497 EXPECT_MUL_EQ thresholds are always ±1 2023-12-19 09:21:18 -06:00
Nephrite
4a1a6c5625
Battlemove refactored (recoil, crit and Z moves) (#3575)
* Unified EFFECT_RECOIL

Combined EFFECT_RECOIL_25/33/50/33_STATUS into a single EFFECT; added an extra field to BattleMove 'secondaryData' that contains the franction of HP recoil; argument still holds status effect for Flare Blitz/Volt Tackle

* BattleMove struct change

Added critrate, recoil, multihit fields, made zMove into a union of effect/powerOverride for status/non-status moves respectively. Added new recoil field and zMove field to all moves. To-do: crit rate, multihit

* Critrate field added

Moves use a critRate field instead of a flag - obsoletes EFFECT_ALWAYS_CRIT

* Just a little define

Makes clear that critBoost = 3 means ALWAYS CRIT

* Added a proper recoil field

Just to make it unambiguous and flexible - can finally have a move with 69% recoil.

* Fixed AI damage calculation for multi-strike moves

* Fixes + removed unused effects

* Tests fixes

Two to fix: pass when run in isolation but not when the whole group is run, which is annoying...

* Minor fixes

* Minor tweaks

* Fixed move effects

* recoil tests

---------

Co-authored-by: Alex <alexthenotes@gmail.com>
2023-12-19 16:10:07 +01:00
Eduardo Quezada
ce03d49d35 Forgot to disable EXPANSION_TAGGED_RELEASE 2023-12-18 16:27:12 -03:00
DizzyEggg
59a159c338
Fix Ice Face ignoring move effects (#3755)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-18 16:02:07 +01:00
Eduardo Quezada
1b586e78a3 Version 1.7.0 2023-12-17 18:18:54 -03:00
Eduardo Quezada
d92c046a80 Merge branch 'RHH/master' into RHH/upcoming 2023-12-17 17:31:10 -03:00
DizzyEggg
76a7513dcd
Fix Magician Life orb recoil when stealing (#3753)
* Fix Magician Life orb recoil

* get rid of unneeded assume
2023-12-17 19:50:43 +01:00
Eduardo Quezada D'Ottone
df1a8a25cb
Reserved remaining form ID that are left to support (#3750)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-17 09:22:33 -03:00
ghoulslash
3209cb0dc9
Merge branch 'upcoming' into regression 2023-12-16 07:39:08 -05:00
Alex
cdeb43228d Use battler turn damaged 2023-12-16 09:33:45 +01:00
Eduardo Quezada
fbbee39886 Merge branch 'RHH/master' into RHH/upcoming
# Conflicts:
#	src/battle_main.c
2023-12-15 18:50:20 -03:00
Bassoonian
0fd08a32ac Add status form change 2023-12-15 11:17:35 +01:00
Alex
be045fdc0c
Fixes Quick Draw (#3724)
* Fixes Quick Draw

* Fixes Custap and rest of Quick Draw

* review applied
2023-12-15 00:03:59 +01:00
Alex
38c61854e6
Changed Ivy Gudgel effect (#3721)
* Change Ivy Gudgel effect

* test assumptions

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-14 18:09:06 +01:00
Bassoonian
02ca83cc81
The Indigo Disk Item/Move/Ability ids (#3727)
* Reserve ability ids

* Reserve item ids (base64 encoding for reference)

* Reserve move ids

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-14 16:06:11 +01:00
Eduardo Quezada D'Ottone
78fda2c19d
Reserved Species IDs for Indigo Disk (#3726) 2023-12-14 12:53:51 +01:00
Eduardo Quezada D'Ottone
9bb95d506e
Reserved dex flag space for Indigo Disk mon (#3725) 2023-12-14 11:24:11 +01:00
Eduardo Quezada D'Ottone
996009e8ef
Fixed compile when setting everything to GEN_1 (#3723) 2023-12-14 00:24:31 +01:00
Zimmermann Gyula
ba2bb4f07f
Use the same relative gBattleTextBuff3 declaration in both definitions. (#3719)
Compare against https://github.com/rh-hideout/pokeemerald-expansion/blob/upcoming/src/battle_main.c#L135.
2023-12-13 18:49:25 +01:00
Zimmermann Gyula
a68cf9f4dc
Fix Vs Seeker description. (#3718) 2023-12-13 18:05:37 +01:00
Zimmermann Gyula
bbc29fff0d
Fix a copypaste error and a typo in config. (#3717) 2023-12-13 17:39:26 +01:00
Alex
1f51ff8dfb
Add Gen5 Imprison config (#3710)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2023-12-12 19:06:24 +01:00
AtariDreams
929ec54a39
Update catch curve for pokeballs (#3685)
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.
2023-12-12 16:25:33 +01:00
Alex
44e81d4f4c
Gen 9 configs for Protean/Libero, Intrepid Sword and Dauntless Sword (#3614)
* Gen 9 configs for Protean/Libero, Intrepid Sword and Dauntless Sword

* use bitfield

* battler fix

* fields
2023-12-12 00:08:44 +01:00
Eduardo Quezada D'Ottone
26a8c2a5a9
Fixed FORM_CHANGE_ITEM_USE_MULTICHOICE documentation (#3700)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-11 22:23:27 +01:00
LOuroboros
ed3e944870
Added a GetSpeciesPreEvolution function and fixed EVO_NONE value (#3696) 2023-12-11 13:54:34 -03:00
Martin Griffin
ee1fb1d454
SpeciesInfo tests (#3688)
* Remove unnecessary const

* Test that species ID tables are shared between all forms

* Use P_FAMILY_MELTAN

* Test that form change tables contain only IDs in form species tables

* Fix isPrimalReversion typo

* Test form change targets have appropriate species flags

* Fix #3689
2023-12-11 13:54:20 +01:00
Bassoonian
ec9cc9a443
Config for trying to catch a Trainer's Pokémon (#3684)
* Config for trying to catch a Trainer's Pokémon

* Prevent removal instead of adding it back
2023-12-11 00:05:39 +01:00
Eduardo Quezada
b2917fac5d Merge remote-tracking branch '_RHH_origin/master' into RHH/upcoming
# Conflicts:
#	include/constants/battle_script_commands.h
#	src/battle_script_commands.c
2023-12-10 14:29:42 -03:00
Eduardo Quezada
ce7fe75ac1 Merge branch 'RHH/upcoming' into RHH/pr/upcoming/pret_20231210
# Conflicts:
#	src/data/pokemon/species_info.h
2023-12-10 13:49:55 -03:00
Eduardo Quezada
1fc712f153 Merge remote-tracking branch '_pret/master' into RHH/pr/upcoming/pret_20231210
# Conflicts:
#	Makefile
#	data/battle_scripts_1.s
#	gflib/malloc.c
#	gflib/malloc.h
#	include/battle.h
#	ld_script.ld
#	ld_script_modern.ld
#	src/battle_ai_script_commands.c
#	src/battle_main.c
#	src/battle_script_commands.c
#	src/battle_util.c
#	src/data/pokemon/species_info.h
#	src/pokemon.c
2023-12-10 13:27:09 -03:00
Alex
628eb95925
Adds Rage Fist (#3573)
* Adds Rage Fist

* Fix initial implementation

* fix merge

* review changes

* endure test

* add field enduredDamage

* rage fist: transform, disguise  and field change

* merge fix
2023-12-10 12:33:25 +01:00
Alex
d5f3df6f08
Fix Defog and Prevent Escape effects (#3668)
* Fix Defog and Prevent Escape effects

* pain split / mirror coat interaction

* remove unused various define

* use pain split effect

* remove test
2023-12-10 00:26:03 +01:00