Commit graph

5969 commits

Author SHA1 Message Date
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
57e0d7b20b
Partial fix for Teeter Dance and Ability Dancer interaction (#4129)
* Parial fix for Teeter Dance and Ability Dancer interaction

* Removes rest of teeter dance checks and make it work with effect_confuse

* Update test/battle/ability/dancer.c

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

* Update test/battle/ability/dancer.c

Co-authored-by: ultima-soul <33333039+ultima-soul@users.noreply.github.com>

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
Co-authored-by: ultima-soul <33333039+ultima-soul@users.noreply.github.com>
2024-02-19 13:36:21 +01:00
Eduardo Quezada
5be97faf9d Non-tagged 2024-02-18 22:09:08 -03:00
Eduardo Quezada D'Ottone
bb01ab6ff1
Version 1.7.4 (#4203)
* Version 1.7.4
2024-02-18 21:53:12 -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
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
Eduardo Quezada D'Ottone
3d2e0d2065
Fixed Ursaluna's cry using P_GEN_9_CROSS_EVOS (#4210) 2024-02-18 10:21:56 +01:00
Eduardo Quezada
ebe13ffc3c Merge branch '_RHH/master' into _RHH/upcoming 2024-02-16 11:30:01 -03:00
LOuroboros
1f349e0fb9
Renamed NUM_ABILITY_VANILLA to NUM_ABILITY_PERSONALITY (#4196) 2024-02-15 15:22:25 +01:00
psf
cc22fef6c8
- Fixes Seedot and Lotad House to give measurements based on the unit system and decimal seperator chosen by the developer. (#4193)
- Created `ConvertMonHeightToString` and `ConvertMonWeightToString` for developers to use
2024-02-15 10:23:11 +01:00
LOuroboros
eb7ddeb66c
Updated the way in which ScriptGiveMonParameterized and ScrCmd_givemon chooe a default ability (#4192)
* Updated the way in which ScrCmd_givemon and ScriptGiveMon assign a default ability
When an abilityNum is not assigned in a call to givemon performed inside of an overworld script, ScriptGiveMonParameterized will make sure to generate an abilityNum of 0 or 1 in the same way vanilla does it; by defaulting to 0, and then tweaking it based on the least relevant bit of the Pokémon's personality.
ScriptGiveMon will set the default ability of a Pokémon in the same way now too, because even though it was rewritten in #3924, it should ideally produce a Pokémon in a similar way than vanilla does it.

* Removed pointless abilityNum setup in ScriptGiveMonParameterized
2024-02-15 08:01:34 +01:00
psf
7f6e1e2aea
Add configs for measurement systems and decimal separators (#4183)
* Allow developers to choose metric or imperial, and their decimal seperator of choice for Pokédex entries
- Creates  which cleans up the existing implementing of printing height and weight to the pokedex
- Developers can choose to use metric or imperial units of measurement in the Pokédex
- - Developers can choose to use any character as a decimal seperator in the Pokédex
- Allows users to define units and decimal seperators independently
- Fixes a bug in Lotad / Seedot house

* Fixed compilation issue with agbcc

* Updated to include HGSS Dex and address PR Feedback
2024-02-14 10:17:23 +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
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
Nopinou
de0f94406a
Add shouldDynamax & shouldTerastal bits to TrainerMon (#4169) 2024-02-11 21:36:35 +01:00
Alex
3598a18703
Adds config for Soundproof change during Uproar status (#4174) 2024-02-11 10:40:30 +01:00
Eduardo Quezada
ec83b11354 Merge branch '_pret/master' into _RHH/pr/upcoming/pret_20240210
# Conflicts:
#	gflib/malloc.c
2024-02-10 18:05:20 -03:00
Alex
97e4aa514a
Reverted Intrepid Sword and Dauntless Shield field unification (#4171)
* Reverts back Intrepid Sword and Dauntless Shield field unification

* fixes
2024-02-10 16:15:21 -03:00
Martin Griffin
311d732359
Save-compatible SaveBlock3 (#4112)
* SaveBlock3 in sector footers

* Update load_save.c

Since mgriffin is currently not available I took the liberty to edit the file. Hope it's fine.

* SaveBlock3 in debug menu (#3)

---------

Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
Co-authored-by: psf <77138753+pkmnsnfrn@users.noreply.github.com>
2024-02-10 18:14:36 +01:00
MartyKen
81fdfdd90b
PLA aux item sprites (#4160)
* PLA aux item sprites

* Sprite sharing
2024-02-10 18:08:09 +01: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
Eduardo Quezada
67f1772f1e Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts:
#	src/battle_util.c
#	test/battle/item_effect/heal_and_cure_status.c
2024-02-09 17:02:56 -03:00
Eduardo Quezada D'Ottone
6da1be01a9
Added Indigo Disk cries (#4164) 2024-02-09 19:46:09 +01:00
Alex
e89f8e00ed
Fixes Hit Escape moves interaction with hold effects and switch in ab… (#4091)
* Fixes Hit Escape moves interaction with hold effects and switch in abilities

* leftover

* fix spelling

* fix desc.
2024-02-09 14:00:42 +01:00
ghoulslash
d2690278b0
Implement ghoul's save block branch (#4113)
Implement ghoul's save block branch
2024-02-08 10:54:15 -05:00
Bassoonian
5d5cc76a2c
Teachable learnset helper mechanics (#3856)
* Teachable learnset helper mechanics

* Rename folder and python script

* Some teachable learnset work

* Update PoryMoves file labels

* Add header and make custom json

* Include found moves in output file

* Update SV file to latest version

* Don't run if there are no jsons to be found

* Add Basculin duplication in json

* Add universal move support to

* Ignore and skip Mew

* Integrate tool in Makefile

* Condense Basculin learnsets

* Split Oinkologne for easier generation

* Add Deoxys' XD move tutor data

* Add missing Darumaka/Yamask Galarian SwSh TMs

* Add TID species to sv.json

* Update sv.json to The Indigo Disk data

* Add Python install instructions

* Fix Makefile

* Expand header with more information

* Add config to allow disabling the learnset helper

* Update include/config/pokemon.h

Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>

* Don't crash if the config is missing

---------

Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2024-02-08 11:32:48 -03:00
ghoulslash
4bfe6d3c6d
Merge branch 'upcoming' into ghoulsaveblock 2024-02-08 08:37:57 -05:00
MartyKen
51cbf92ed0
Lvl up learnsets by generation (#4049)
* Lvl up learnsets by generation

I think the title sums it up pretty nicely

* Update level_up_learnsets.h

forgot some newer pokemon

* divided the learnset file into generations

* Separated learnsets by generation

Separated the learnsets by generation, added a bit more documentation in the config file

* Update src/pokemon.c

Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>

* Update include/config/pokemon.h

Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>

---------

Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2024-02-08 09:02:02 -03:00
LOuroboros
916e4814bd
Implemented Custom/Complex/Expanded GiveMon scripting command (#3924)
* Introducing an expanded givemon

* Added debug features to check a Pokémon's EV and IV

* Added a parameter to set a custom mon's gender

* Added a debug feature to clear the party

* Defined the EV/IV getters in gSpecials

* Added Gigantamax Factor toggle to givecustommon

* Updated Gigantamax Factor label in givecustommon macro

* Added tera type parameter to givecustommon

Misc. changes:
-Added a few harmless comments to CreateCustomMon for consistency reasons.

* Cleaned up the code inside CreateCustomMon a bit

Also updated the values assigned to the parameters of ScriptGiveCustomMon
This is temporary though. I'll probably end up turning them into 2byte parameters so they can be filled when the scripting command is called by using variables once I solve the bigger problem that the scripting command is currently facing.

* Foolproofed the Poké Ball check in CreateCustomMon

* Assigned a default gender to givecustommon
This solved the nasty issue by which the command wasn't working properly if you didn't fill in each parameter when calling givecustommon in a script.

* Reinforced the gender checks at CreateCustomMon

* Re-reinforced the gender checks at CreateCustomMon

* Compressed givecustommon and added tests

-Made givecustommon skip unspecified parameters.
-Added scripting variables support for every parameter.
-Added tests.

* Updated the default values of some ScriptGiveCustomMon parameters

* Replaced vanilla's givemon with givecustommon

Misc. Changes:
-Renamed CreateCustomMon to ScriptGiveMonParameterized.
 -The truth is that the function was never limited to creating the skeleton of a Pokémon like the actual CreateMon functions do, so that label was never correct. The function was always an expanded ScriptGiveMon.
-Moved the core functions to src/script_pokemon_util.c which is where they actually belong.
-Updated ScriptGiveMonParameterized a little to incorporateb changes that were applied to the original ScriptGiveMon, namely, Synchronize ability and form change handling.
-Introduced a new ScriptGiveMon to replace the original one.

* Corrected givecustommon tests

* Fixed the default IV values for the new givemon

* Updated DebugAction_Party_ClearParty for consistency with the other debug functions

* Updated the text strings used by the Check EV/IV debug features

---------

Co-authored-by: Martin Griffin <martinrgriffin@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-02-08 09:11:13 +01:00
Bassoonian
84686d15d8
Merge branch 'upcoming' into ghoulsaveblock 2024-02-06 23:36:46 +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
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
ghoulslash
c2c97d3c1c
GetBattleAnimMoveTargets fill absolute battler ids instead of relative anim ids (#4139)
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
2024-02-06 09:05:26 +01:00
Eduardo Quezada
f89efad082 Merge branch '_RHH/master' into _RHH/upcoming 2024-02-05 17:52:34 -03:00
DizzyEggg
065c0ec588
Fairy Lock animation fix (#4111)
* Fairy Lock animation fix

* remove comment

* fairy lock anim hopefully works

---------

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2024-02-04 23:23:03 +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
LOuroboros
691b1879f8
Renamed VAR_TERRAIN to B_VAR_TERRAIN and added a var-based field terrain timer (#4132)
* Renamed VAR_TERRAIN and introduced a var-based field terrains timer

* Fixed sky battle configs alignment and syntax

* Added B_VAR_TERRAIN_TIMER handling to Overworld_ResetBattleFlagsAndVars

* Removed pointless edits to EndTurnTerrain

* Updated B_VAR_TERRAIN_TIMER's comment

* Updated the syntax of ABILITYEFFECT_SWITCH_IN_TERRAIN to comply with Agbcc

* Nuked pointless VarGet calls in the case ABILITYEFFECT_SWITCH_IN_TERRAIN of AbilityBattleEffects

* Reverted changes made to BS_SetRemoveTerrain
I shouldn't have touched it at all since it's not involved with B_VAR_TERRAIN functionality.

* Removed trailing spaces in the case ABILITYEFFECT_SWITCH_IN_TERRAIN of AbilityBattleEffects
2024-02-04 13:04:55 +01:00
DizzyEggg
85eea4869d
Fix move animation crashing on some emulators because of division by zero (#4121)
* fix flip turn div by zero

* fix incinerate move anim div by zero
2024-02-03 16:56:50 +01: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
DizzyEggg
132ca1be14
Change Safe Div to explicitly check b != 0 2024-02-02 22:57:02 +01:00
Bassoonian
adc3308d13 Actually multi battles seem to work fine too 2024-02-02 16:52:39 +01:00
Bassoonian
6c1a111c14 No questionnaires are actually broken 2024-02-02 16:45:58 +01:00
Bassoonian
06d04c1194 Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into ghoulsaveblock 2024-02-02 16:39:15 +01:00
Bassoonian
b8b7dd304b Add final config documentation 2024-02-02 16:38:33 +01:00
Bassoonian
6f668fb31d Add FREE_MYSTERY_GIFT 2024-02-02 16:31:19 +01:00
Bassoonian
4092d0283a Fix FREE_BATTLE_TOWER_E_READER 2024-02-02 15:58:27 +01:00
ghoulslash
83b9b95662
add supersweet syrup, unify single-use entry abilities to single field (#4115)
Co-authored-by: ghoulslash <pokevoyager0@gmail.com>
2024-02-02 15:44:14 +01:00
Bassoonian
db95a06ae0 Fix FREE_TRAINER_HILL 2024-02-02 15:24:46 +01:00