Commit graph

305 commits

Author SHA1 Message Date
DizzyEggg
1f1d24b3e4
Fix Primal Reversion not activating when switching in after fainting (#3141)
* Fixed Primal Reversion not activating when switching in after a fainting
* add tests for primal reversion

Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
2023-07-16 12:26:54 +01:00
Martin Griffin
17f8f50a59 Merge remote-tracking branch 'rhh/master' into upcoming 2023-07-16 07:46:34 +01:00
Martin Griffin
58ede15263
Fix Roullout Fury Cutter AI power calc (#3110) 2023-07-16 06:45:35 +01:00
DizzyEggg
2a249654e7 fix mirror move/metronome powder/multi hit moves & tests 2023-07-15 14:00:55 +02:00
sbird
6482279fa3 [battle, math] refactor damage calculation to use proper fp type and inlined multiplication 2023-07-07 18:51:23 +02:00
DizzyEggg
9a09f1e3b9 Fix Roullout Fury Cutter AI power calc 2023-07-06 13:41:16 +02:00
ghoulslash
cc3a6d4d94
make special case ABILITYEFFECT_xx ids their own caseId switch cases to fix potential overlap with ability IDs 0xFF etc (#3083)
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
2023-07-03 10:03:50 +02:00
Eduardo Quezada D'Ottone
1fa9a05470
Convert move flags and bans into GCC bitfields (#2952)
* Slicing moves to new bitfield

* Wind moves to new bitfield

* Two-strike moves to new bitfield

* Forgot to add flagTwoStrikes to battle_moves.h

* Removed "flag" from field names

* FLAG_HIT_IN_SUBSTITUTE and FLAG_THAW_USER

* Airborne moves

* FLAG_POWDER, FLAG_TARGET_ABILITY_IGNORED and FLAG_DANCE

* FLAG_BALLISTIC and FLAG_PROTECTION_MOVE

* Fixed missing uses of MOVE_UNAVAILABLE in battle_ai_util.c

* FLAG_SOUND

* FLAG_DMG_UNDERGROUND and FLAG_DMG_UNDERWATER

* FLAG_DMG_MINIMIZE

* Cleanup

* FLAG_STAT_STAGES_IGNORED

* Updated Pollen Puff's ballistic flag

* FLAG_STRONG_JAW_BOOST and FLAG_MEGA_LAUNCHER_BOOST

* thaw

* FLAG_THREE_STRIKES

* FLAG_IRON_FIST_BOOST

* FLAG_RECKLESS_BOOST

* FLAG_HIGH_CRIT

* Removed empty flags

* Moves that fail when called by Me First + added missing Shell Trap

* Moves that fail when Gravity is active

* Better names for banned fields

* Moves that fail when called by Instruct

* Cleanup

* Contact Moves + Fixed Wandering Spirit skipping contact checks

* Inverted FLAG_PROTECT_AFFECTED so that there's a flag for moves that SKIP protect.

* Simplified B_MOVE_FLAGS configs

* FORBIDDEN_METRONOME

* Renamed hitsPastSubstitute to ignoresSubstitute

* FORBIDDEN_PARENTAL_BOND

* Struggle uncallable by Metronome

* FORBIDDEN_MIMIC

* FLAG_KINGS_ROCK_AFFECTED

* Made a single config for move flags

* Macro for checking move flags

* FLAG_MAGIC_COAT_AFFECTED

* Fixed HasMagicCoatAffectedMove

* FLAG_SNATCH_AFFECTED

* Removed unused EFFECT_FLINCH_MINIMIZE_HIT

* Fixed Stench/King's Rock interaction

* Removed sMovesNotAffectedByStench in favor of checking move effects

* Removed EFFECT_TWISTER, which was a repeat of EFFECT_FLINCH_HIT

* Changed Gen2 configs to less than Gen 3

* FORBIDDEN_SLEEP_TALK

* Cleanup

* Inverted FLAG_MIRROR_MOVE_AFFECTED

* FLAG_SHEER_FORCE_BOOST

* Ordered

* FORBIDDEN_ASSIST and FORBIDDEN_COPYCAT

* Removed TestMoveFlags and TestMoveFlagsInMoveset + flags field

* Fixed Triple Arrows test
2023-07-03 10:01:59 +02:00
Eduardo Quezada
ca1d9f5393 Merge branch 'RHH/master' into RHH/upcoming
# Conflicts:
#	include/battle_util.h
2023-06-21 15:01:14 -04:00
ghoulslash
7371a9e401
Add many gen 8 move animations (#2861)
* port many gen8 and 9 move anims from cfru

* fix thunder cage, shell smash, shelter anims. update anim credits

---------

Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2023-06-21 13:19:54 -04:00
Pawkkie
62ae3b1df1
Fix bug due to variable overflow when AI chooses new Pokemon to send out (#3068) 2023-06-21 12:59:30 -04:00
LOuroboros
2bf88502a7 More corrections 2023-06-19 04:18:53 -03:00
LOuroboros
9896f20eb8 Applied fixes and corrections (Jun 2023) 2023-06-15 09:22:26 -03:00
LOuroboros
313f522622 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into gen_9_move_effects_batch2 2023-06-13 05:44:37 -03:00
Eduardo Quezada D'Ottone
d0e6ea7612
Optimized battle gender checks (#3020)
* Optimized battle gender checks

* Apply suggestions from code review

Co-authored-by: AgustinGDLV <103095241+AgustinGDLV@users.noreply.github.com>

---------

Co-authored-by: AgustinGDLV <103095241+AgustinGDLV@users.noreply.github.com>
2023-05-27 17:23:02 -04:00
AgustinGDLV
785b100693 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into castform_fix 2023-05-16 16:29:38 -07:00
Eduardo Quezada D'Ottone
2aca82300c
Merge branch 'upcoming' into mega_evo_issues 2023-05-14 22:33:01 -04:00
AgustinGDLV
a5f28afe42 fixed Forecast and Flower Gift 2023-05-04 17:04:54 -07:00
ghoulslash
8cce130643
Add Frostbite status (#2942) 2023-05-01 09:45:47 -04:00
Bassoonian
39b50d09dd Add missing CanGetFrostbite 2023-05-01 11:19:10 +02:00
Bassoonian
c279830892 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into formbattlechangecontribution 2023-04-27 10:50:32 +02:00
Martin Griffin
4a0abc5129
Merge branch 'upcoming' into rhh-get-party 2023-04-26 12:12:03 +01:00
Salem
78c4d07b23
Add Berserk Gene Item (#2893)
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2023-04-25 15:03:57 -04:00
Alex
3aec63b8cf new define to restore items after battle 2023-04-20 15:08:42 +02:00
LOuroboros
b09ab5a3ee Updated Triple Arrows' effect's code and tests yet again
Also added a function to get a move's secondaryEffectChance, meant to handle abilities, side statuses and the like that modify it.
2023-04-19 01:57:34 -03:00
Martin Griffin
aefe582596 GetSideParty/GetBattlerParty
Inline GetBattlerPartyData into its callers because its name is
confusing and we couldn't think of a better one.

This seems to fix a bug in one place where GetBattlerPartyData was being
used as if it had GetBattlerParty semantics.
2023-04-15 23:04:13 +01:00
DizzyEggg
f6089a0057 Mega Evolution after switching and based on speed 2023-03-07 22:34:57 +01:00
Eduardo Quezada
5ca9213d07 Merge branch 'RHH/upcoming' into RHH/pr/feature/formBattleChange
# Conflicts:
#	src/battle_script_commands.c
2023-02-21 17:47:02 -03:00
DizzyEggg
380af442c3
Fix buggy pokemon anims with Illusion (#2639)
* try illusion fix

* fix
2023-02-19 12:05:56 +01:00
DizzyEggg
0c523f9518
Fix Magic bounce powder moves against grass types (#2633)
* Fix Magic bounce powder moves against grass types
2023-02-17 13:55:51 +00:00
Eduardo Quezada
ac4825ad28 Merge branch 'RHH/upcoming' into RHH/pr/feature/formBattleChange
# Conflicts:
#	src/battle_util.c
2023-01-13 11:50:47 -03:00
LOuroboros
620a6a5e90 Extra review changes
-Foolproofed the ability checks in ABILITYEFFECT_ON_WEATHER and ABILITYEFFECT_ON_TERRAIN
-Made BattleScript_OverworldWeatherStarts and BattleScript_OverworldTerrain call the battle scripts that handle weather form changes, weather abilities, terrain seeds and terrain abilities.
-Consequentially, I removed the activation for weather and terrain abilities that I added to TryDoEventsBeforeFirstTurn, and the activation of Protosynthesis in ABILITYEFFECT_ON_SWITCHIN.
-Added a weatherAbilityDone to prevent abilities that lack self-checks like Protosynthesis from getting stuck in a loop.
-Removed now pointless ABILITYEFFECT_WEATHER_FORM. I think Duke/Sneed69 added it to fix Castform's form change, but it no longer serves a purpose.
2023-01-09 14:22:14 -03:00
LOuroboros
c32f584940 Applied review changes 2023-01-08 19:50:27 -03:00
LOuroboros
d0f5653f5e Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into mimicry 2023-01-02 19:00:41 -03:00
Eduardo Quezada
a23501a4a3 Merge remote-tracking branch 'RHH_origin/upcoming' into RHH/pr/feature/formBattleChange
# Conflicts:
#	src/battle_script_commands.c
2023-01-02 18:54:57 -03:00
LOuroboros
13d8c0d167 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into dev_gen9_abilities 2023-01-02 14:34:24 -03:00
Eduardo Quezada
16e8a5dd7f Merge remote-tracking branch 'RHH_origin/upcoming' into RHH/pr/feature/formBattleChange
# Conflicts:
#	include/battle_util.h
2023-01-01 16:02:40 -03:00
Eduardo Quezada D'Ottone
0e1836d42b
Merge pull request #2106 from Sneed69/PartyBattlerShouldAvoidHazards
PartyBattlerShouldAvoidHazards rewrite
2022-12-30 17:55:53 -03:00
LOuroboros
e8dfb66c30 Adding ability effect triggers for terrains and weather
A new, probably better way to handle the announcement trigger that abilities such as Protosynthesis and Quark Drive have, when the battle weather or the field terrain change.

Misc. changes:
-EFFECT_DAMAGE_SET_TERRAIN -> EFFECT_HIT_SET_REMOVE_TERRAIN
 -It's more appropriate as the effect can be used to force set a terrain or simply to remove an active terrain, after all.
 -The main reason for the rename was the inconsistency with the battle script's label.
-Reverted accidentally committed change to B_DOUBLE_WILD_CHANCE, performed back in c8abf00c.
2022-12-30 03:25:16 -03:00
Eduardo Quezada
1580f892a5 Merge branch 'RHH/upcoming' into RHH/pr/feature/formBattleChange
# Conflicts:
#	include/constants/pokemon.h
#	src/battle_script_commands.c
2022-12-19 18:53:26 -03:00
LOuroboros
a56cfd1aa7 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into dev_gen9_abilities 2022-12-12 19:55:48 -03:00
LOuroboros
0d1f9d9613 Reimplemented Mimicry 2022-12-09 20:46:18 -03:00
LOuroboros
107ace784b Implemented Mycelium Might's effect 2022-12-06 06:18:18 -03:00
LOuroboros
aa051dab02 Implemented Costar's effect 2022-12-06 05:23:30 -03:00
LOuroboros
31a602f3b6 Optimized Intimidate's code 2022-11-12 18:03:46 -03:00
Eduardo Quezada
57bdb683ec DoBurmyFormChange handled by FORM_CHANGE_END_BATTLE_TERRAIN 2022-11-05 23:27:40 -03:00
Eduardo Quezada
ceb5c8a00a Merge remote-tracking branch 'RHH_origin/upcoming' into RHH/pr/feature/formBattleChange
# Conflicts:
#	include/battle_util.h
#	src/battle_util.c
2022-11-05 20:11:33 -03:00
Eduardo Quezada
42f8e8c114 Multiple refactors
- Added a general GetBattleFormChangeTargetSpecies instead of getting specific ones for Mega Evolution and Primal Reversion.
- Added FORM_CHANGE_BATTLE_HP_PERCENT, to replace ShouldChangeFormHpBased.
- Cleaned ifdefs for hold effects.
- Finally removed UndoMegaEvolution.
- FORM_CHANGE_FAINT and FORM_CHANGE_BATTLE_END restore to the first form before a battle form change if species isn't specified.
- When changing from a form with more HP to one with less, now current HP is kept to fix Zygarde edge case. (Will likely need to be reworked for Dynamax, as it behaves differently)
- Uses DoesSpeciesUseHoldItemToChangeForm in CanBattlerGetOrLoseItem.
2022-11-05 20:00:12 -03:00
ghoulslash
1e6903840a Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into be/bugbite 2022-11-04 09:29:45 -04:00
ghoulslash
d13431b4ab merge w rhh master 2022-11-04 09:29:39 -04:00
Eduardo Quezada
15c12af2cf Using TryBattleFormChange in place of certain TryFormChange 2022-11-01 23:50:26 -03:00
Eduardo Quezada
797c5514d3 Mega Evolution in form change tables 2022-11-01 18:37:23 -03:00
BuffelSaft
6035c5a280 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald into multistrike 2022-10-22 14:31:13 +13:00
Eduardo Quezada
0a79390ec0 Primal Reversion in Form Change tables 2022-10-21 02:08:37 -03:00
Eduardo Quezada
861590f747 Form change when fainting. Goodbye UndoFormChange! 2022-10-20 18:53:12 -03:00
Eduardo Quezada
620e69945d Form change for starting and ending battles. Adjusted PP for Iron Head/Behemoth moves 2022-10-20 16:40:24 -03:00
LOuroboros
02c6bc64b2 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into becomingAHero 2022-10-07 12:20:52 -03:00
ghoulslash
354a8256e4
Merge pull request #2226 from Porygon23/AI-Logic-Updates
Added corner case logic for AI Switching.
2022-09-15 17:56:35 -04:00
Eduardo Quezada D'Ottone
47a50b3dac
Merge branch 'master' into weather_forms_fixes 2022-09-07 23:07:25 -04:00
Porygon23
ba6aad5bcc
Merge branch 'master' into AI-Logic-Updates 2022-09-02 14:44:47 -06:00
LOuroboros
922bbacd71 Updated GetMonFriendshipScore
-Moved it to src/pokemon.c
-Made a battle specific variant called GetBattlerFriendshipScore.
-Made that variant return 0 for Mega Evolved 'mons and if called on link battles.
2022-08-26 21:33:43 -03:00
Eduardo Quezada D'Ottone
bee36edd9c
Merge pull request #2173 from LOuroboros/yourAffection
Implement affection-now-friendship mechanics
2022-08-26 14:54:32 -04:00
Eduardo Quezada
eea718cfc6 Placeholder moves can't be used in battle. 2022-08-24 00:30:49 -04:00
Eduardo Quezada
56a2e91518 Updated move limitations 2022-08-23 22:40:04 -04:00
Eduardo Quezada
afcc1178b2 Merge remote-tracking branch 'pret/master' into MergedBranchUltimate
# Conflicts:
#	data/battle_ai_scripts.s
#	data/battle_scripts_1.s
#	include/battle_controllers.h
#	include/battle_script_commands.h
#	include/battle_util.h
#	include/constants/battle_script_commands.h
#	include/constants/global.h
#	include/decompress.h
#	src/battle_anim_effects_1.c
#	src/battle_anim_normal.c
#	src/battle_anim_poison.c
#	src/battle_anim_water.c
#	src/battle_arena.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_gfx_sfx_util.c
#	src/battle_interface.c
#	src/battle_main.c
#	src/battle_message.c
#	src/battle_script_commands.c
#	src/battle_util.c
#	src/berry.c
#	src/data/trainers.h
#	src/decompress.c
#	src/field_effect.c
#	src/hall_of_fame.c
#	src/overworld.c
#	src/pokeball.c
#	src/pokemon.c
#	src/pokemon_icon.c
#	src/pokemon_storage_system.c
#	src/scrcmd.c
2022-08-22 20:30:45 -04:00
Ct11217
b95e450cb6 Added corner case logic for AI Switching.
1. Refactor Perish Song
2. Yawn
3. Secondary Damage (Leech Seed, Cursed etc).
4. Added Preliminary logic to help AI be smarter against semi-invulnerable

Added AI logic regarding abilities that benefit from switching
1. Natural Cure
2. Regenerator
2022-08-11 22:48:36 -06:00
Eduardo Quezada
4b08a511c3 Cleanup from https://github.com/pret/pokefirered/pull/532 2022-08-07 22:40:15 -04:00
Eduardo Quezada
7b3401ee27 Standarized use of star in pointer types 2022-07-29 10:17:58 -04:00
LOuroboros
032b7b2ab9 Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald-expansion into yourAffection 2022-07-25 10:24:19 -03:00
Eduardo Quezada D'Ottone
fe63dafcc1 Merge branch 'battle_engine' into BE_pretmerge
# Conflicts:
#	src/battle_anim_fire.c
#	src/battle_controller_player.c
2022-07-20 08:50:30 -04:00
ghoulslash
6b84a9f0b3 merge w be 2022-07-17 12:40:43 -04:00
Eduardo Quezada D'Ottone
e791cf90ad Merge tag 'pretmaster' into BE_pretmerge2
# Conflicts:
#	data/battle_anim_scripts.s
#	include/battle_anim.h
#	include/battle_controllers.h
#	include/battle_interface.h
#	include/battle_main.h
#	include/battle_setup.h
#	include/constants/battle_anim.h
#	include/constants/battle_string_ids.h
#	src/battle_ai_switch_items.c
#	src/battle_anim_fire.c
#	src/battle_anim_normal.c
#	src/battle_controllers.c
#	src/battle_dome.c
#	src/battle_gfx_sfx_util.c
#	src/battle_interface.c
#	src/battle_message.c
#	src/battle_script_commands.c
#	src/battle_util.c
#	src/pokemon.c
2022-07-15 12:58:46 -04:00
LOuroboros
aa5c6a3f01 Implemented affection-now-friendship mechanics 2022-06-22 00:18:01 -03:00
ghoulslash
c694e0cb90 merge w be 2022-06-05 08:22:24 -04:00
GriffinR
5e6d8a77e4 Document some generic argument names 2022-05-31 14:34:25 -04:00
BuffelSaft
16570e8c3f Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald into multistrike 2022-05-22 12:55:55 +12:00
Sneed69
d0a2be9630 weather forms fixes and config 2022-05-22 03:20:48 +03:00
ghoulslash
f6f4227f49 better bug bite impl, fix item removal 2022-05-13 16:21:41 -04:00
Eduardo Quezada D'Ottone
989ec641f4
Merge pull request #2120 from ghoulslash/be/healblock
Heal Block AI and Pollen Puff Selection Prevention
2022-05-07 19:29:24 -04:00
Eduardo Quezada D'Ottone
cbe73de8c8
Merge pull request #1861 from LOuroboros/primalReversionTweaks
Primal Reversion Tweaks
2022-05-07 11:04:23 -04:00
ghoulslash
07579bd42b prevent ally pollen puff selection under heal block. add some ai checks for heal block 2022-05-07 09:56:32 -04:00
BuffelSaft
8693db632b Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald into multistrike 2022-05-07 12:27:20 +12:00
sneed
23870a40a8 Initial commit 2022-05-02 06:04:16 +03:00
ExpoSeed
f50a406b18 Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald-expansion into BE/z-moves 2022-03-22 12:56:23 -05:00
Eduardo Quezada D'Ottone
0dd2de988a
Merge branch 'battle_engine' into primalReversionTweaks 2022-02-12 23:08:12 -03:00
BuffelSaft
9d1800f53e Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald-expansion into gen_8_moves_batch2 2022-01-27 17:18:51 +13:00
ghoulslash
035b2332af cache ai damage, effectiveness calcs 2022-01-13 11:28:27 -05:00
Eduardo Quezada D'Ottone
4ab4250d5d
Merge branch 'battle_engine' into be/sports 2021-12-19 20:42:15 -03:00
ExpoSeed
d6747527da Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald-expansion into BE/z-moves 2021-12-16 21:44:01 -06:00
ultima-soul
7369f60c06 Merge branch 'battle_engine' of github.com:rh-hideout/pokeemerald-expansion into battle_engine_sync 2021-12-03 17:30:45 -08:00
LOuroboros
19af517bbb Edited pointless or useless Primal Reversion code
Also added an equivalent to GetMegaEvolutionSpecies and GetWishMegaEvolutionSpecies for Primal Reversion.
Also also modified how CanBattlerGetOrLoseItem checks for Primal Reversion.
Also also also rewrote the check that triggers Primal Reversion in TryDoEventsBeforeFirstTurn.
2021-12-01 00:56:33 -03:00
ghoulslash
5c52abd856 gen3 sport move functionality behind config 2021-11-23 21:20:32 -05:00
BuffelSaft
cca7ec8c58 Fix and rename GetMoveTargetType
Change name to GetBattlerMoveTargetType and make it actually use the battlerId argument.
2021-11-24 12:09:54 +13:00
BuffelSaft
fa0b5188bb Dynamic move targeting
Properly implement Expanding Force by replacing all  instances that read move target from gBattleMoves with a function.
2021-11-23 16:56:11 +13:00
ultima-soul
3ed51d6d91 Merge branch 'master' of github.com:pret/pokeemerald into battle_engine_sync 2021-11-21 10:40:26 -08:00
BuffelSaft
16a4fc9062 Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald into multistrike 2021-11-19 16:33:24 +13:00
ghoulslash
940a165be7 merge w be 2021-11-13 09:09:15 -05:00
kleeenexfeu
f808710932
Moving IsBattlerProtected 2021-11-13 13:38:07 +01:00
BuffelSaft
72d12a575d Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald into multistrike 2021-11-07 12:13:18 +13:00
ghoulslash
41bf1dc2f4 merge w be 2021-11-06 10:40:57 -04:00