52 Commits

Author SHA1 Message Date
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
06153e4280 Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	include/battle.h
#	include/constants/battle_script_commands.h
#	include/constants/pokemon.h
#	src/battle_ai_util.c
#	src/battle_main.c
#	src/battle_util.c
#	test/battle/ai.c
2024-06-13 11:44:28 -04:00
Alex
9c72392891
Fixes Shell Side Arm (#4753)
* Fixes Shell Side Arm

* Fixes to random call

* hardcoded the effect to the move

* minor change

* minor change 2

* applied reviews
2024-06-12 11:21:44 +02:00
sneed
fa81861593
Add newer generation Heal Bell interactions with Soundproof (#4732)
* 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
2024-06-07 18:51:21 +02:00
cawtds
97143e020f
Refactor move animations (#4683)
* 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>
2024-06-02 08:18:13 +02:00
Eduardo Quezada
c79188e3b3 Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	src/battle_ai_util.c
#	src/battle_util.c
2024-05-31 12:04:33 -04:00
Alex
7a393a974a
Adds Dragon Darts effect (CFRU port) (#4612)
* Adds Dragon Darts effect (CFRU port)

* fix test compile

* review
2024-05-28 11:34:56 +02:00
Alex
df6fab7284
Missing ignoreSubstitute flags (#4623)
* Missing ignoreSubstitute flags

* update defog flag
2024-05-28 10:29:37 +02:00
Eduardo Quezada
80b193280d Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	src/battle_main.c
#	src/data/item_icon_table.h
#	src/data/pokemon/species_info/gen_9_families.h
2024-05-27 10:13:42 -04:00
Rachel
c129423a69
Fix move descriptions for Feint and Feint Attack (#4617) 2024-05-24 11:19:55 +02:00
Alex
635db6312c
AI respects partner when using spread moves in double battles (#4518)
* Fixes Earthquake AI in double battles

* earthquake_ai_fix

* Use CompareDamagingMoves to fix spread damage issue
2024-05-17 00:41:55 +02:00
Alex
faf61e62fb
Adds move Spicy Extract (#4211)
* Adds move Spicy Extract

* remove uneeded line

* anim, new tests, acc change

* Clear Amulet, Contrary interaction

* ai

* correction

* simplify script a bit

* clean up

* Spicy Extract script overhaul

* merge rhh/upcoming

* alignment

* AI changes/additions

* add Foul Play check

* Remove useless ai checks

* remove wrong test

* review issues
2024-05-16 11:03:50 +02:00
TheLastMudkip
d591f25829
Update Avalanche to be Single Target (#4581)
Avalanche is a single target move in doubles.
Currently it is bugged to be a spread move this change corrects that.

Source:
https://bulbapedia.bulbagarden.net/wiki/Avalanche_(move)
2024-05-15 08:51:59 +02:00
sneed
a8bb82778a
Remove and replace MOVE_EFFECT_SP_ATK_TWO_DOWN (#4557) 2024-05-12 15:07:43 +02:00
Eduardo Quezada
d5a72ec685 Merge branch '_RHH/master' into _RHH/upcoming 2024-05-05 19:50:12 -04:00
PhallenTree
ff2d1bb02c
Fixes Assist (#4491) 2024-05-04 16:59:47 +02:00
PhallenTree
adbb5a44c8
Fixes no effect on Diamond Storm, typo on Mortal Spin (#4489) 2024-05-04 15:11:32 +02:00
kittenchilly
64b28124fb
Add Tera Starstorm move + make Tera Blast displayed type reflect current type due to tera state (#4447)
* Add Tera Starstorm move + make Tera Blast/Tera Starstorm displayed type reflect tera type

* Ooops

* Curse tests
2024-04-27 19:35:29 +02:00
Eduardo Quezada
dd098baf77
Official GF names by default (#4241) 2024-04-25 14:23:08 -04:00
Martin Griffin
738fade50a Fix expanded move names 2024-04-25 18:40:37 +01: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
LOuroboros
9097f438f1
Fixes Will-O-Wisp's capitalization in gMovesInfo (#4425) 2024-04-22 09:58:17 +02: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
kittenchilly
3fb52b6b0e
Change Frostbite abbreviation from FSB to FRB (#4355)
* Change Frostbite abbreviation from FSB to FRB

* Melted the ice is actually the one used

* Update moves_info.h

* Update moves_info.h

* Update items.h
2024-04-10 09:16:32 +02:00
Alex
c740c4ba19
Disguise fixes + gen8 hp loss config (#4360)
* Disguise fixes + gen8 hp loss config

* fix battler arg

* Update test/battle/ability/disguise.c

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-04-07 00:07:55 +02:00
Alex
92e23415ab
Change freeze dry to allow easier extendebility (#4312)
* Change freeze dry to allow easier extensibility

* give body press the foul play treatment

* Tests
2024-03-31 19:15:18 +02:00
Nephrite
46b67355a5 Merge remote-tracking branch 'rhh/upcoming' into battlemove_refactored 2024-02-26 14:23:53 +09:00
Nephrite
7592ec5973 Revert moves_info.h reorder 2024-02-25 17:49:13 +09:00
Eduardo Quezada
75ad61e5bf Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	data/battle_scripts_1.s
#	include/constants/battle_move_effects.h
#	src/battle_ai_main.c
#	src/battle_ai_util.c
#	src/battle_tv.c
#	src/data/battle_moves.h
#	src/data/graphics/pokemon.h
2024-02-19 10:13:13 -03:00
Alex
cd596fdd80
Adds Tidy Up + minor Dragon Cheer follow up (#4136)
* 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
2024-02-18 20:00:36 +01:00
Alex
7694628296
Adds Powerful status move flag (#4125)
* Adds Powerful status move flag

* fix flag

* fixed final issues

* review changes
2024-02-18 15:05:08 +01:00
Alex
d102467d8d
AI PR 4036 follow up (#4199) 2024-02-16 19:18:43 +01:00
Eduardo Quezada D'Ottone
fcc2839346
Fixed missing Z-Move power override (#4201) 2024-02-16 19:18:26 +01:00
Nephrite
1ac9934742 Reverted forcePressure flag move 2024-02-13 12:19:27 +09:00
LOuroboros
e73c58ed2e
Made EFFECT_WRING_OUT read the max power from the move's argument field (#4180)
* Made EFFECT_WRING_OUT read the max power from the move's argument field

* Renamed EFFECT_WRING_OUT to EFFECT_VARY_POWER_BASED_ON_HP
2024-02-12 22:39:15 +01:00
Nephrite
3537a37e12 Re-added missing linebreaks 2024-02-12 22:31:26 +09:00
Nephrite
16ab876241 Swapped power/accuracy and type/split
Also moved one bit from power to accuracy; raises BP limit to 511, decreases accuracy limit to 127 (which is already more than necessary).
2024-02-12 21:47:07 +09:00
Nephrite
b665e7245b Merge remote-tracking branch 'rhh/upcoming' into battlemove_refactored 2024-02-12 16:15:53 +09:00
Nephrite
3695f0317b Reordered everything in moves_info.h to be in struct order 2024-02-12 16:13:15 +09:00
Eduardo Quezada D'Ottone
af95a09961
Last Respects effect + Fixed Supreme Overlord (#4151)
* 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
2024-02-10 10:58:41 +01:00
Nephrite
ce4dd729f4 Merged from upcoming 2024-02-09 23:00:36 +09:00
Nephrite
f7ec44c2ea
Fixed Shield Dust, added tests (#4137)
* Fixed Shield Dust, added tests

Also fixed a duplicate macro caused by near-simultaneous PR merges (oops)

* Added KNOWN_FAILING Sparkling Aria test

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-02-06 09:19:37 +01:00
Nephrite
65c508d193
Secondary effects overhaul minor follow-up (#4062)
* settwoturnstring command

* Unified two-turn attacks and Meteor Beam

To do: Solar Beam

* Solar Beam

Also fixed various function, removed EFFECT_GUST (who knows why that exists?)

* Updated Solar Beam + tests

* Redid two turn move + animations logic

Removed pointless various function; to do: remove Skull Bash, fix AI test

* Removed now-pointless flag

* Removed Skull Bash

And temporarily commented out failing AI tests

* Removed Sky Uppercut effect

Not sure when or why this was ever necessary

* Removed BattleScript_EffectSemiInvulnerable

Now uses BattleScript_EffectTwoTurnsAttack. Kept the effect; used the argument field to determine which STATUS3 such moves should apply but added a function to jump over weather checks in BattleScript_EffectTwoTurnsAttack if the current move is semi-invulnerable (since the instant-fire weather check and STATUS3 use the same field)

* Applied review changes

* Replaced VARIOUS with callnative

Tried to fix test but couldn't :/ wtf is going on

* Fixed one AI test

Cant fix the other...

* Added KNOWN_FAILING to failing AI tests

Separated them out into their own test

* Optimised script, overhauled charge turn string setting

Condensed multiple confusing macros into one, jumpifweathercheckchargeeffects. Script now tweaked and trimmed, string ids for charge turns now added to argument along with status3 (thanks to compression macro) and instant-fire-weather for semi-invulnerable and two-turn moves respectively. Also introduced a savedStringId in gBattleScripting to make string selection work.

* Unified two turn move tests + minor corrections

* Added semi-invulnerable move tests

Set the Razor Wind test to known failing - something to do with its animation?

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-02-04 23:02:59 +01:00
Nephrite
7ae50ea507
Metaprogram (#3968)
* metaprogram.h

Created by Mr. Griffin. Removed non-relevant parts

* Added DEFAULT/DEFAULT_2 macros

Also added a demonstration in battle_main

* Removed GET_ARGS

* Expanded DEFAULT

Because why not?

* Added EXCEPT

Expands to everything but the first x arguments.

* Added BIT_INDEX (thanks to MGriffin) and COMPRESS_BIT macros

These let you compress a bit up to a word in size inside a single byte and uncompress at the same time. BIT_INDEX just tells you where the bit is.

* Updated HANDLE_EXPANDED_MOVE_NAME

---------

Co-authored-by: Martin Griffin <martinrgriffin@gmail.com>
2024-02-04 16:28:27 -03:00
Alex
ab2774f8c7
Adds Dragon Cheer (#4122)
* Adds Dragon Cheer

* fix assumptions

---------

Co-authored-by: ghoulslash <41651341+ghoulslash@users.noreply.github.com>
2024-02-03 08:00:41 -07:00
ZnogyroP
71b49a114f
Adds move Upper Hand (#4085)
* Remove non-existent tilesets from label comments and alphabetize

* Fixed braces style

* gbagfx bit depth upconversion fix

* jsonproc: filter out every non-alphanumeric character

* fix(linking): link gflib/malloc.c at top of EWRAM in ld_script_modern.ld

* Adds move Upper Hand

* Requested changes

- Tabs / spaces where proper
- HitFromAtkString -> HitFromAccCheck
- Actually compiles now lol
- Moved assumes into relevant tests
- Cleaned up the check for TryUpperHand

* Fixed || positioning

* Update upper_hand.c

* Revert "Merge remote-tracking branch 'upstream/master' into upper-hand"

This reverts commit b21275dfe9a8c106069a5d34ecba9c84064f599f, reversing
changes made to 89b1ad1ea1655bf30c51a7f0f7a0b176cc64635a.

* AI logic and conflicts solved

* Test fix

* Fix Sheer Force test

* Requested changes

* Requested changes

* Update battle_script_commands.c

---------

Co-authored-by: GriffinR <griffin.g.richards@gmail.com>
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
Co-authored-by: Sierraffinity <sierra@domoreaweso.me>
Co-authored-by: sbird <sbird@no.tld>
2024-02-01 12:23:58 +01:00
Alex
6d3fa525d5
Rename EFFECT_FAKE_OUT to EFFECT_FIRST_TURN_ONLY (#4081)
* Splits First Impression effect from Fake Out

* Fix test failing

* rename EFFECT_FAKE_OUT

* use moveeffect chance for fake out and priority field for first impression

* rename rest of fake out

* messed up merge

* remove useful comment

---------

Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2024-01-31 09:32:58 -03:00
Nephrite
086375ab13 Moved a couple more flags 2024-01-30 18:05:52 +09:00
Nephrite
02ffd05aea Removed Sheer Force flag 2024-01-30 13:37:38 +09:00