Merge branch 'dev' into AI
@ -106,7 +106,7 @@ cd /mnt/c/Users/<user>/Desktop/decomps
|
||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
|
||||
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||
</details>
|
||||
|
||||
|
||||
If this works, then proceed to [Installation](#installation).
|
||||
|
||||
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2).
|
||||
@ -216,7 +216,7 @@ Note that the directory **must exist** in Windows. If you want to store pokeemer
|
||||
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
|
||||
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||
</details>
|
||||
|
||||
|
||||
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
|
||||
|
||||
## macOS
|
||||
@ -539,7 +539,7 @@ devkitARM is now installed.
|
||||
devkitARM is now installed.
|
||||
|
||||
### Installing devkitARM on Arch Linux
|
||||
|
||||
|
||||
1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages.
|
||||
2. Install `gba-dev`: run the following command as root.
|
||||
|
||||
|
||||
4
Makefile
@ -254,7 +254,7 @@ tidynonmodern:
|
||||
tidymodern:
|
||||
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
|
||||
rm -rf $(MODERN_OBJ_DIR_NAME)
|
||||
|
||||
|
||||
ifneq ($(MODERN),0)
|
||||
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
|
||||
endif
|
||||
@ -412,7 +412,7 @@ LD_SCRIPT := ld_script.txt
|
||||
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||
else
|
||||
LD_SCRIPT := ld_script_modern.txt
|
||||
LD_SCRIPT_DEPS :=
|
||||
LD_SCRIPT_DEPS :=
|
||||
endif
|
||||
|
||||
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
||||
|
||||
29
README.md
@ -2,14 +2,27 @@
|
||||
|
||||
## What is the pokeemerald Expansion?
|
||||
|
||||
The pokeemerald Expansion is a collection of feature branches that can be integrated into existing [pokeemerald](https://github.com/pret/pokeemerald) projects.
|
||||
The Pokeemerald Expansion is a collection of feature branches that can be integrated into existing [pokeemerald](https://github.com/pret/pokeemerald) projects.
|
||||
|
||||
## What feature branches are included?
|
||||
## What features are included?
|
||||
- Upgraded battle engine.
|
||||
- Fairy Type.
|
||||
- Physical/Special/Status Category Split.
|
||||
- New moves and abilities up to SwSh.
|
||||
- Options to change behaviors and data by generation.
|
||||
- Mega Evolution and Primal Reversion
|
||||
- Z-Moves
|
||||
- Pokémon Species from newer Generations (with the option to disable them if needed).
|
||||
- Updates Hoenn's Regional Dex to match ORAS'.
|
||||
- Updates National Dex incorporating all the new species.
|
||||
- Option to change base stats by generation.
|
||||
- New evolution methods.
|
||||
- Hidden Abilities data (How to make them available is up to the user).
|
||||
- Items from newer Generations and updated item effects for battle and field use.
|
||||
|
||||
- **[Battle Engine Upgrade](../tree/battle_engine):** Upgrades the battle engine in pokeemerald to newer Generation games' standards. It also adds newer moves and abilities.
|
||||
- **[Pokémon Expansion](../tree/pokemon_expansion):** Adds Pokémon from newer Generations and makes them available in the National Dex. It also updates base stats and other Pokémon info.
|
||||
- **[Item Expansion](../tree/item_expansion):** Adds items from newer Generations and also updates item effects for field use.
|
||||
- **[master](../tree/master):** Combines the above branches into one single branch for the sake of convenience. Note that this branch is only updated once in a while, so you must merge manually if you want the latest features.
|
||||
Certain mechanics, moves, abilities and species sprites are missing. For more information, see [the project's milestones](https://github.com/rh-hideout/pokeemerald-expansion/milestones).
|
||||
|
||||
### [Documentation on features can be found here](https://github.com/rh-hideout/pokeemerald-expansion/wiki)
|
||||
|
||||
## Who maintains the project?
|
||||
|
||||
@ -17,9 +30,11 @@ The project was originally started by DizzyEgg alongside other contributors.
|
||||
|
||||
The project has now gotten larger and DizzyEgg is now maintaining the project as part of the ROM Hacking Hideout community. Some members of this community are taking on larger roles to help maintain the project.
|
||||
|
||||
### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :)
|
||||
|
||||
## Can I contribute even if I'm not a member of ROM Hacking Hideout?
|
||||
|
||||
Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Please note that PRs to master are not accepted, as master is only intended to be a merged branch.
|
||||
Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Don't feel discouraged if we take a bit to review your PR, we'll get to it.
|
||||
|
||||
## What is ROM Hacking Hideout?
|
||||
|
||||
|
||||
@ -558,151 +558,151 @@
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_ally_chosen_move
|
||||
.byte 0x63
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_no_attacking_moves battler:req, param1:req
|
||||
.byte 0x64
|
||||
.byte \battler
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_hazards_count battler:req, effect:req
|
||||
.byte 0x65
|
||||
.byte \battler
|
||||
.2byte \effect
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_doesnt_hold_berry battler:req, ptr:req
|
||||
.byte 0x66
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_share_type battler1:req, battler2:req, ptr:req
|
||||
.byte 0x67
|
||||
.byte \battler1
|
||||
.byte \battler2
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_cant_use_last_resort battler:req, ptr:req
|
||||
.byte 0x68
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_move_with_split battler:req, split:req, ptr:req
|
||||
.byte 0x69
|
||||
.byte \battler
|
||||
.byte \split
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_no_move_with_split battler:req, split:req, ptr:req
|
||||
.byte 0x6A
|
||||
.byte \battler
|
||||
.byte \split
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_physical_moves_unusable attacker:req, target:req, ptr:req
|
||||
.byte 0x6B
|
||||
.byte \attacker
|
||||
.byte \target
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_ai_can_go_down ptr:req
|
||||
.byte 0x6C
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_move_with_type battler:req, type:req, ptr:req
|
||||
.byte 0x6D
|
||||
.byte \battler
|
||||
.byte \type
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_no_move_used battler:req, ptr:req
|
||||
.byte 0x6E
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_move_with_flag battler:req, flag:req, ptr:req
|
||||
.byte 0x6F
|
||||
.byte \battler
|
||||
.4byte \flag
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_battler_absent battler:req, ptr:req
|
||||
.byte 0x70
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_grounded battler:req, ptr:req
|
||||
.byte 0x71
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_best_dmg_hp_percent
|
||||
.byte 0x72
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_curr_dmg_hp_percent
|
||||
.byte 0x73
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_move_split_from_result
|
||||
.byte 0x74
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_considered_move_split
|
||||
.byte 0x75
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_considered_move_target
|
||||
.byte 0x76
|
||||
.endm
|
||||
|
||||
|
||||
.macro compare_speeds battler1:req, battler2:req
|
||||
.byte 0x77
|
||||
.byte \battler1
|
||||
.byte \battler2
|
||||
.endm
|
||||
|
||||
|
||||
.macro is_wakeup_turn battler:req
|
||||
.byte 0x78
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req
|
||||
.byte 0x79
|
||||
.byte \battler
|
||||
.byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
|
||||
@ useful script macros
|
||||
.macro if_has_physical_move battler:req, ptr:req
|
||||
if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_no_physical_move battler:req, ptr:req
|
||||
if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_special_move battler:req, ptr:req
|
||||
if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_has_no_special_move battler:req, ptr:req
|
||||
if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||
.endm
|
||||
@ -714,33 +714,33 @@
|
||||
.macro get_curr_move_type
|
||||
get_type AI_TYPE_MOVE
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_user_type1
|
||||
get_type AI_TYPE1_USER
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_user_type2
|
||||
get_type AI_TYPE2_USER
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_target_type1
|
||||
get_type AI_TYPE1_TARGET
|
||||
.endm
|
||||
|
||||
|
||||
.macro get_target_type2
|
||||
get_type AI_TYPE2_TARGET
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_ability battler:req, ability:req, ptr:req
|
||||
check_ability \battler, \ability
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_no_ability battler:req, ability:req, ptr:req
|
||||
check_ability \battler, \ability
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_type battler:req, type:req, ptr:req
|
||||
is_of_type \battler, \type
|
||||
if_equal 1, \ptr
|
||||
@ -750,20 +750,20 @@
|
||||
is_of_type \battler, \type
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_target_faster ptr:req
|
||||
if_user_goes 1, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_user_faster ptr:req
|
||||
if_user_goes 0, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_double_battle ptr:req
|
||||
is_double_battle
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_not_double_battle ptr:req
|
||||
is_double_battle
|
||||
if_equal 0, \ptr
|
||||
@ -772,11 +772,11 @@
|
||||
.macro if_any_move_disabled battler:req, ptr:req
|
||||
if_any_move_disabled_or_encored \battler, 0, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro if_any_move_encored battler:req, ptr:req
|
||||
if_any_move_disabled_or_encored \battler, 1, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro call_if_always_hit ptr:req
|
||||
get_move_accuracy
|
||||
call_if_eq 0, \ptr
|
||||
|
||||
@ -270,20 +270,20 @@
|
||||
.macro stopsound
|
||||
.byte 0x2f
|
||||
.endm
|
||||
|
||||
|
||||
@ useful macros
|
||||
.macro jumpreteq value:req, ptr:req
|
||||
jumpargeq ARG_RET_ID, \value, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro jumprettrue ptr:req
|
||||
jumpreteq TRUE, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro jumpretfalse ptr:req
|
||||
jumpreteq FALSE, \ptr
|
||||
.endm
|
||||
|
||||
|
||||
.macro jumpifdoublebattle ptr:req
|
||||
createvisualtask AnimTask_IsDoubleBattle, 0
|
||||
jumprettrue \ptr
|
||||
@ -305,7 +305,7 @@
|
||||
.hword \launchtemplatearg7
|
||||
.hword \launchtemplatearg8
|
||||
.endm
|
||||
|
||||
|
||||
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
|
||||
.byte 0x3
|
||||
.word \launchtaskPtr
|
||||
@ -321,7 +321,7 @@
|
||||
.hword \launchtaskarg7
|
||||
.hword \launchtaskarg8
|
||||
.endm
|
||||
|
||||
|
||||
.macro setblends setblends_value
|
||||
.byte 0xC
|
||||
.hword \setblends_value
|
||||
|
||||
@ -89,15 +89,15 @@
|
||||
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA
|
||||
special CallBattleTowerFunc
|
||||
.endm
|
||||
|
||||
|
||||
@Custom multi-battle commands
|
||||
|
||||
|
||||
.macro choose_mons
|
||||
fadescreen 1
|
||||
special ChooseHalfPartyForBattle @ choose 3 mons for battle
|
||||
waitstate
|
||||
.endm
|
||||
|
||||
|
||||
.macro multi_do type:req, partnerId:req, partnerPicId:req
|
||||
special ReducePlayerPartyToSelectedMons
|
||||
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA
|
||||
@ -113,26 +113,26 @@
|
||||
special CallFrontierUtilFunc
|
||||
special LoadPlayerParty
|
||||
.endm
|
||||
|
||||
|
||||
.macro multi_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
|
||||
special SavePlayerParty
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
|
||||
multi_do MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
|
||||
.endm
|
||||
|
||||
|
||||
.macro multi_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
|
||||
special SavePlayerParty
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||
multi_do MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
|
||||
.endm
|
||||
|
||||
|
||||
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
|
||||
.macro multi_wild partnerId:req, partnerPicId:req
|
||||
special SavePlayerParty
|
||||
multi_do MULTI_BATTLE_2_VS_WILD, \partnerId, \partnerPicId
|
||||
.endm
|
||||
|
||||
|
||||
.macro multi_do_fixed type:req, partnerId:req, partnerPicId:req
|
||||
setvar VAR_0x8004, SPECIAL_BATTLE_MULTI
|
||||
setvar VAR_0x8005, \type
|
||||
@ -144,20 +144,20 @@
|
||||
special CallFrontierUtilFunc
|
||||
special LoadPlayerParty
|
||||
.endm
|
||||
|
||||
|
||||
.macro multi_fixed_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
|
||||
special SavePlayerParty
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
|
||||
multi_do_fixed MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
|
||||
.endm
|
||||
|
||||
|
||||
.macro multi_fixed_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
|
||||
special SavePlayerParty
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||
multi_do_fixed MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
|
||||
.endm
|
||||
|
||||
|
||||
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
|
||||
.macro multi_fixed_wild partnerId:req, partnerPicId:req
|
||||
special SavePlayerParty
|
||||
|
||||
@ -1186,11 +1186,11 @@
|
||||
.byte 0xe5
|
||||
.endm
|
||||
|
||||
.macro docastformchangeanimation
|
||||
.macro doweatherformchangeanimation
|
||||
.byte 0xe6
|
||||
.endm
|
||||
|
||||
.macro trycastformdatachange
|
||||
.macro tryweatherformdatachange
|
||||
.byte 0xe7
|
||||
.endm
|
||||
|
||||
@ -1788,7 +1788,7 @@
|
||||
.macro setzeffect
|
||||
various BS_ATTACKER, VARIOUS_SET_Z_EFFECT
|
||||
.endm
|
||||
|
||||
|
||||
.macro consumeberry battler:req, restoreItem=FALSE
|
||||
various \battler, VARIOUS_CONSUME_BERRY
|
||||
.byte \restoreItem
|
||||
|
||||
@ -276,7 +276,7 @@
|
||||
.2byte SPECIAL_\function
|
||||
.endm
|
||||
|
||||
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
|
||||
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
|
||||
@ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue.
|
||||
.macro waitstate
|
||||
.byte 0x27
|
||||
@ -985,7 +985,7 @@
|
||||
.endm
|
||||
|
||||
@ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters.
|
||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||
.macro givemon species:req, level:req, item=ITEM_NONE
|
||||
.byte 0x79
|
||||
.2byte \species
|
||||
@ -997,7 +997,7 @@
|
||||
.endm
|
||||
|
||||
@ Gives the player an Egg of the specified species.
|
||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||
.macro giveegg species:req
|
||||
.byte 0x7a
|
||||
.2byte \species
|
||||
@ -1415,7 +1415,7 @@
|
||||
.2byte \out
|
||||
.endm
|
||||
|
||||
@ Gives 'count' coins to the player, up to a total of MAX_COINS.
|
||||
@ Gives 'count' coins to the player, up to a total of MAX_COINS.
|
||||
@ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE.
|
||||
.macro addcoins count:req
|
||||
.byte 0xb4
|
||||
@ -1893,7 +1893,7 @@
|
||||
|
||||
@ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare.
|
||||
@ If the player doesn't have space for all the items then as many are added as possible, the
|
||||
@ message indicates there is no room, and VAR_RESULT is set to FALSE.
|
||||
@ message indicates there is no room, and VAR_RESULT is set to FALSE.
|
||||
@ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s).
|
||||
.macro giveitem item:req, amount=1
|
||||
setorcopyvar VAR_0x8000, \item
|
||||
|
||||
@ -150,13 +150,13 @@
|
||||
.4byte \sample
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
.endm
|
||||
|
||||
|
||||
.macro cry_uncomp sample @ not compressed
|
||||
.byte 0x0, 60, 0, 0
|
||||
.4byte \sample
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
.endm
|
||||
|
||||
|
||||
.macro cry_reverse_uncomp sample @ not compressed
|
||||
.byte 0x10, 60, 0, 0
|
||||
.4byte \sample
|
||||
|
||||
@ -79,6 +79,7 @@ SUPER_RE = A0
|
||||
'?' = AC
|
||||
'.' = AD
|
||||
'-' = AE
|
||||
'_' = AE @ For autogenerating strings based on label names. Not using {UNDERSCORE} on purpose due to how bad it looks.
|
||||
'·' = AF
|
||||
'…' = B0
|
||||
'“' = B1
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/rgb.h"
|
||||
@ -779,6 +780,31 @@ gBattleAnims_Moves::
|
||||
.4byte Move_GLACIAL_LANCE
|
||||
.4byte Move_ASTRAL_BARRAGE
|
||||
.4byte Move_EERIE_SPELL
|
||||
@@@@LA MOVES
|
||||
.4byte Move_DIRE_CLAW
|
||||
.4byte Move_PSYSHIELD_BASH
|
||||
.4byte Move_POWER_SHIFT
|
||||
.4byte Move_STONE_AXE
|
||||
.4byte Move_SPRINGTIDE_STORM
|
||||
.4byte Move_MYSTICAL_POWER
|
||||
.4byte Move_RAGING_FURY
|
||||
.4byte Move_WAVE_CRASH
|
||||
.4byte Move_CHLOROBLAST
|
||||
.4byte Move_MOUNTAIN_GALE
|
||||
.4byte Move_VICTORY_DANCE
|
||||
.4byte Move_HEADLONG_RUSH
|
||||
.4byte Move_BARB_BARRAGE
|
||||
.4byte Move_ESPER_WING
|
||||
.4byte Move_BITTER_MALICE
|
||||
.4byte Move_SHELTER
|
||||
.4byte Move_TRIPLE_ARROWS
|
||||
.4byte Move_INFERNAL_PARADE
|
||||
.4byte Move_CEASELESS_EDGE
|
||||
.4byte Move_BLEAKWIND_STORM
|
||||
.4byte Move_WILDBOLT_STORM
|
||||
.4byte Move_SANDSEAR_STORM
|
||||
.4byte Move_LUNAR_BLESSING
|
||||
.4byte Move_TAKE_HEART
|
||||
@@@@ Z MOVES
|
||||
.4byte Move_BREAKNECK_BLITZ
|
||||
.4byte Move_ALL_OUT_PUMMELING
|
||||
@ -833,7 +859,7 @@ gBattleAnims_StatusConditions::
|
||||
|
||||
.align 2
|
||||
gBattleAnims_General::
|
||||
.4byte General_CastformChange @ B_ANIM_CASTFORM_CHANGE
|
||||
.4byte General_WeatherFormChange @ B_ANIM_CASTFORM_CHANGE
|
||||
.4byte General_StatsChange @ B_ANIM_STATS_CHANGE
|
||||
.4byte General_SubstituteFade @ B_ANIM_SUBSTITUTE_FADE
|
||||
.4byte General_SubstituteAppear @ B_ANIM_SUBSTITUTE_APPEAR
|
||||
@ -868,7 +894,8 @@ gBattleAnims_General::
|
||||
.4byte General_AquaRingHeal @ B_ANIM_AQUA_RING_HEAL
|
||||
.4byte General_BeakBlastSetUp @ B_ANIM_BEAK_BLAST_SETUP
|
||||
.4byte General_ShellTrapSetUp @ B_ANIM_SHELL_TRAP_SETUP
|
||||
.4byte General_ZMoveActivate @ B_ANIM_ZMOVE_ACTIVATE
|
||||
.4byte General_ZMoveActivate @ B_ANIM_ZMOVE_ACTIVATE
|
||||
.4byte General_AffectionHangedOn @ B_ANIM_AFFECTION_HANGED_ON
|
||||
|
||||
.align 2
|
||||
gBattleAnims_Special::
|
||||
@ -1158,9 +1185,9 @@ Move_TAILWIND:
|
||||
end
|
||||
|
||||
Move_ACUPRESSURE:
|
||||
loadspritegfx ANIM_TAG_ACCUPRESSURE
|
||||
loadspritegfx ANIM_TAG_ACUPRESSURE
|
||||
loadspritegfx ANIM_TAG_SPARK_2
|
||||
createsprite gAccupressureSpriteTemplate, ANIM_ATTACKER, 40, 0, -40, 40
|
||||
createsprite gAcupressureSpriteTemplate, ANIM_ATTACKER, 40, 0, -40, 40
|
||||
waitforvisualfinish
|
||||
call ElectricityEffect
|
||||
end
|
||||
@ -4310,7 +4337,7 @@ Move_LUNAR_DANCE:
|
||||
|
||||
Move_CRUSH_GRIP:
|
||||
loadspritegfx ANIM_TAG_EXPLOSION
|
||||
loadspritegfx ANIM_TAG_ACCUPRESSURE
|
||||
loadspritegfx ANIM_TAG_ACUPRESSURE
|
||||
loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE
|
||||
setalpha 15, 0
|
||||
createsprite gCrushGripHandTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 0x101
|
||||
@ -14169,7 +14196,7 @@ TerrainPulseElectric:
|
||||
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(27, 27, 0)
|
||||
goto TerrainPulseEnd
|
||||
|
||||
|
||||
TerrainPulseGrass:
|
||||
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(11, 26, 11)
|
||||
waitforvisualfinish
|
||||
@ -14191,7 +14218,7 @@ TerrainPulseFairy:
|
||||
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(31, 24, 31)
|
||||
goto TerrainPulseEnd
|
||||
|
||||
|
||||
TerrainPulsePsychic:
|
||||
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(27, 0, 13)
|
||||
waitforvisualfinish
|
||||
@ -14269,55 +14296,51 @@ Move_POLTERGEIST::
|
||||
end
|
||||
|
||||
Move_CORROSIVE_GAS::
|
||||
end @to do:
|
||||
|
||||
Move_COACHING::
|
||||
end @to do:
|
||||
|
||||
Move_FLIP_TURN::
|
||||
end @to do:
|
||||
|
||||
Move_TRIPLE_AXEL::
|
||||
end @to do:
|
||||
|
||||
Move_DUAL_WINGBEAT::
|
||||
end @to do:
|
||||
|
||||
Move_SCORCHING_SANDS::
|
||||
end @to do:
|
||||
end @to do
|
||||
|
||||
Move_JUNGLE_HEALING::
|
||||
goto Move_AROMATHERAPY
|
||||
|
||||
Move_WICKED_BLOW::
|
||||
end @to do:
|
||||
|
||||
Move_SURGING_STRIKES::
|
||||
end @to do:
|
||||
|
||||
Move_THUNDER_CAGE::
|
||||
end @to do:
|
||||
|
||||
Move_DRAGON_ENERGY::
|
||||
end @to do:
|
||||
|
||||
Move_FREEZING_GLARE::
|
||||
end @to do:
|
||||
|
||||
Move_FIERY_WRATH::
|
||||
end @to do:
|
||||
|
||||
Move_THUNDEROUS_KICK::
|
||||
end @to do:
|
||||
|
||||
Move_GLACIAL_LANCE::
|
||||
end @to do:
|
||||
|
||||
Move_ASTRAL_BARRAGE::
|
||||
end @to do:
|
||||
|
||||
Move_EERIE_SPELL::
|
||||
end @to do:
|
||||
Move_DIRE_CLAW::
|
||||
Move_PSYSHIELD_BASH::
|
||||
Move_POWER_SHIFT::
|
||||
Move_STONE_AXE::
|
||||
Move_SPRINGTIDE_STORM::
|
||||
Move_MYSTICAL_POWER::
|
||||
Move_RAGING_FURY::
|
||||
Move_WAVE_CRASH::
|
||||
Move_CHLOROBLAST::
|
||||
Move_MOUNTAIN_GALE::
|
||||
Move_VICTORY_DANCE::
|
||||
Move_HEADLONG_RUSH::
|
||||
Move_BARB_BARRAGE::
|
||||
Move_ESPER_WING::
|
||||
Move_BITTER_MALICE::
|
||||
Move_SHELTER::
|
||||
Move_TRIPLE_ARROWS::
|
||||
Move_INFERNAL_PARADE::
|
||||
Move_CEASELESS_EDGE::
|
||||
Move_BLEAKWIND_STORM::
|
||||
Move_WILDBOLT_STORM::
|
||||
Move_SANDSEAR_STORM::
|
||||
Move_LUNAR_BLESSING::
|
||||
Move_TAKE_HEART::
|
||||
end @to do
|
||||
|
||||
@@@@@@@@@@@@@@@@@@@@@@@ GEN 1-3 @@@@@@@@@@@@@@@@@@@@@@@
|
||||
Move_NONE:
|
||||
@ -14697,14 +14720,14 @@ Move_DOUBLE_EDGE:
|
||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0
|
||||
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0
|
||||
createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1
|
||||
createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1
|
||||
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1
|
||||
waitforvisualfinish
|
||||
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5
|
||||
delay 3
|
||||
@ -16341,7 +16364,7 @@ Move_HORN_ATTACK:
|
||||
Move_FURY_ATTACK:
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
loadspritegfx ANIM_TAG_HORN_HIT
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, 0, 2
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, ANIM_ATTACKER, 2
|
||||
choosetwoturnanim FuryAttackRight, FuryAttackLeft
|
||||
FuryAttackContinue:
|
||||
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1
|
||||
@ -16490,7 +16513,7 @@ Move_LOW_KICK:
|
||||
createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0
|
||||
delay 4
|
||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2
|
||||
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
|
||||
waitforvisualfinish
|
||||
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4
|
||||
@ -16735,7 +16758,7 @@ SkullBashSetUpHeadDown:
|
||||
createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0
|
||||
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 2
|
||||
waitforvisualfinish
|
||||
createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1
|
||||
waitforvisualfinish
|
||||
@ -17854,7 +17877,7 @@ Move_MIST_BALL:
|
||||
createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16
|
||||
delay 0
|
||||
playsewithpan SE_M_HAZE, 0
|
||||
createvisualtask AnimTask_LoadMistTiles, 5
|
||||
createvisualtask AnimTask_MistBallFog, 5
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 3, 0, 16, RGB_WHITE
|
||||
delay 8
|
||||
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0
|
||||
@ -22454,14 +22477,14 @@ Move_ARM_THRUST:
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
splitbgprio ANIM_TARGET
|
||||
setalpha 12, 8
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 0
|
||||
delay 6
|
||||
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3
|
||||
delay 4
|
||||
playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET
|
||||
createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 1
|
||||
playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET
|
||||
choosetwoturnanim ArmThrustRight, ArmThrustLeft
|
||||
ArmThrustContinue:
|
||||
@ -23548,26 +23571,25 @@ Move_SECRET_POWER:
|
||||
jumpargeq 0, BATTLE_TERRAIN_PUDDLE, Move_MUD_SHOT
|
||||
jumpargeq 0, BATTLE_TERRAIN_MARSH, Move_MUD_SHOT
|
||||
jumpargeq 0, BATTLE_TERRAIN_SWAMP, Move_MUD_SHOT
|
||||
.if B_SECRET_POWER_ANIMATION >= GEN_7
|
||||
jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_ICE_SHARD
|
||||
.else
|
||||
jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE
|
||||
.endif
|
||||
jumpargeq 0, BATTLE_TERRAIN_ICE, Move_ICE_SHARD
|
||||
jumpargeq 0, BATTLE_TERRAIN_VOLCANO, Move_INCINERATE
|
||||
jumpargeq 0, BATTLE_TERRAIN_DISTORTION_WORLD, Move_POUND
|
||||
jumpargeq 0, BATTLE_TERRAIN_SPACE, Move_SWIFT
|
||||
jumpargeq 0, BATTLE_TERRAIN_ULTRA_SPACE, Move_PSYWAVE
|
||||
.if B_SECRET_POWER_ANIMATION >= GEN_7
|
||||
jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_ICE_SHARD
|
||||
jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_SPIT_UP
|
||||
goto Move_SPIT_UP
|
||||
.elseif B_SECRET_POWER_ANIMATION == GEN_6
|
||||
.elseif B_SECRET_POWER_ANIMATION >= GEN_6
|
||||
jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE
|
||||
jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_BODY_SLAM
|
||||
goto Move_BODY_SLAM
|
||||
.elseif B_SECRET_POWER_ANIMATION == GEN_5 || B_SECRET_POWER_ANIMATION == GEN_4
|
||||
.elseif B_SECRET_POWER_ANIMATION >= GEN_4
|
||||
jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE
|
||||
jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_BODY_SLAM
|
||||
goto Move_MUD_SLAP
|
||||
.else
|
||||
jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE
|
||||
jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_STRENGTH
|
||||
goto Move_SLAM
|
||||
.endif
|
||||
@ -24225,11 +24247,11 @@ Status_Nightmare:
|
||||
Status_Powder:
|
||||
end
|
||||
|
||||
General_CastformChange:
|
||||
General_WeatherFormChange:
|
||||
createvisualtask AnimTask_IsMonInvisible, 2
|
||||
jumpreteq TRUE, CastformChangeSkipAnim
|
||||
goto CastformChangeContinue
|
||||
CastformChangeContinue:
|
||||
jumpreteq TRUE, WeatherFormChangeSkipAnim
|
||||
goto WeatherFormChangeContinue
|
||||
WeatherFormChangeContinue:
|
||||
monbg ANIM_ATTACKER
|
||||
playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER
|
||||
waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48
|
||||
@ -24237,7 +24259,7 @@ CastformChangeContinue:
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_ATTACKER
|
||||
end
|
||||
CastformChangeSkipAnim:
|
||||
WeatherFormChangeSkipAnim:
|
||||
createvisualtask AnimTask_CastformGfxDataChange, 2, 1
|
||||
end
|
||||
|
||||
@ -24718,7 +24740,7 @@ General_RestoreBg:
|
||||
restorebg
|
||||
waitbgfadein
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
General_ZMoveActivate:
|
||||
@ -24817,15 +24839,15 @@ General_PrimalReversion::
|
||||
jumpargeq 0x1, ITEM_BLUE_ORB, General_PrimalReversion_Alpha
|
||||
General_PrimalReversion_Alpha:
|
||||
loadspritegfx ANIM_TAG_ALPHA_STONE
|
||||
loadspritegfx ANIM_TAG_PRIMAL_PARTICLES
|
||||
loadspritegfx ANIM_TAG_MEGA_PARTICLES
|
||||
loadspritegfx ANIM_TAG_ALPHA_SYMBOL
|
||||
monbg ANIM_ATTACKER
|
||||
setalpha 12, 8
|
||||
loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, RGB(31, 31, 11)
|
||||
call PrimalReversionParticles
|
||||
call PrimalReversionParticles
|
||||
call PrimalReversionParticles
|
||||
call MegaEvolutionParticles
|
||||
call MegaEvolutionParticles
|
||||
call MegaEvolutionParticles
|
||||
waitforvisualfinish
|
||||
playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER
|
||||
createsprite gAlphaStoneSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0
|
||||
@ -24843,15 +24865,15 @@ General_PrimalReversion_Alpha:
|
||||
end
|
||||
General_PrimalReversion_Omega:
|
||||
loadspritegfx ANIM_TAG_OMEGA_STONE
|
||||
loadspritegfx ANIM_TAG_PRIMAL_PARTICLES
|
||||
loadspritegfx ANIM_TAG_MEGA_PARTICLES
|
||||
loadspritegfx ANIM_TAG_OMEGA_SYMBOL
|
||||
monbg ANIM_ATTACKER
|
||||
setalpha 12, 8
|
||||
loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, RGB(31, 31, 11)
|
||||
call PrimalReversionParticles
|
||||
call PrimalReversionParticles
|
||||
call PrimalReversionParticles
|
||||
call MegaEvolutionParticles
|
||||
call MegaEvolutionParticles
|
||||
call MegaEvolutionParticles
|
||||
waitforvisualfinish
|
||||
playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER
|
||||
createsprite gOmegaStoneSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0
|
||||
@ -24867,22 +24889,27 @@ General_PrimalReversion_Omega:
|
||||
clearmonbg ANIM_ATK_PARTNER
|
||||
blendoff
|
||||
end
|
||||
PrimalReversionParticles:
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 40, -10, 13
|
||||
delay 3
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, -35, -10, 13
|
||||
delay 3
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 15, -40, 13
|
||||
delay 3
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, -10, -32, 13
|
||||
delay 3
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 25, -20, 13
|
||||
delay 3
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, -40, -20, 13
|
||||
delay 3
|
||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 5, -40, 13
|
||||
delay 3
|
||||
return
|
||||
|
||||
General_AffectionHangedOn::
|
||||
loadspritegfx ANIM_TAG_RED_HEART
|
||||
loopsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER, 12, 3
|
||||
createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER
|
||||
delay 15
|
||||
launchtask AnimTask_AffectionHangedOn 0x5 0x0
|
||||
jumpargeq 0x0, FRIENDSHIP_100_TO_149, General_AffectionHangedOn_3Hearts
|
||||
jumpargeq 0x0, FRIENDSHIP_150_TO_199, General_AffectionHangedOn_4Hearts
|
||||
jumpargeq 0x0, FRIENDSHIP_200_TO_254, General_AffectionHangedOn_5Hearts
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -384, -31
|
||||
General_AffectionHangedOn_5Hearts:
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -128, -22
|
||||
General_AffectionHangedOn_4Hearts:
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, 416, -38
|
||||
General_AffectionHangedOn_3Hearts:
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, 160, -32
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -256, -40
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, 128, -16
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
SnatchMoveTrySwapFromSubstitute:
|
||||
createvisualtask AnimTask_IsAttackerBehindSubstitute, 2
|
||||
@ -25220,8 +25247,8 @@ FinishSupersonicSkystrike:
|
||||
call UnsetPsychicBg
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
Move_ACID_DOWNPOUR:
|
||||
loadspritegfx ANIM_TAG_BLUE_ORB @ reversal
|
||||
loadspritegfx ANIM_TAG_POISON_JAB @ poison jab
|
||||
@ -25908,7 +25935,7 @@ NeverendingNightmareGeyser:
|
||||
createsprite gNeverEndingNightmareGeyserHexSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0xfff0, 0x10
|
||||
return
|
||||
|
||||
|
||||
|
||||
Move_CORKSCREW_CRASH::
|
||||
loadspritegfx ANIM_TAG_SPIKES @metal bits
|
||||
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge
|
||||
@ -26626,7 +26653,7 @@ HavocSpearSparkTarget:
|
||||
@ launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
|
||||
launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
|
||||
return
|
||||
|
||||
|
||||
|
||||
Move_SHATTERED_PSYCHE::
|
||||
loadspritegfx ANIM_TAG_IMPACT @hit
|
||||
@ -29084,7 +29111,7 @@ OceanicOperettaExplosion:
|
||||
launchtemplate gOceanOperaExplosionSpriteTemplate 0x33 0x4 0x10 0x10 ANIM_TARGET 0x1
|
||||
delay 0x6
|
||||
return
|
||||
|
||||
|
||||
|
||||
Move_SPLINTERED_STORMSHARDS::
|
||||
loadspritegfx ANIM_TAG_ROCKS @rock
|
||||
@ -29345,7 +29372,7 @@ SplinteredStormshardsFinishFadeReturn:
|
||||
return
|
||||
|
||||
|
||||
Move_LETS_SNUGGLE_FOREVER::
|
||||
Move_LETS_SNUGGLE_FOREVER::
|
||||
loadspritegfx ANIM_TAG_MAGENTA_HEART @sharm
|
||||
loadspritegfx ANIM_TAG_MUSIC_NOTES @music note
|
||||
loadspritegfx ANIM_TAG_SMALL_BUBBLES @fake tears
|
||||
@ -30424,11 +30451,11 @@ LightThatBurnsTheSkyGreenSparks:
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x0 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x40 0x28 0x1 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x80 0x28 0x0 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c SOUND_PAN_ATTACKER 0x28 0x2 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x2 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x0 0x28 0x0 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x40 0x28 0x1 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x80 0x28 0x0 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c SOUND_PAN_ATTACKER 0x28 0x2 0x3
|
||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x0 0x28 0x2 0x3
|
||||
delay 0x10
|
||||
return
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "constants/global.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/pokemon.h"
|
||||
@ -415,6 +416,41 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectExtremeEvoboost @ EFFECT_EXTREME_EVOBOOST
|
||||
.4byte BattleScript_EffectTerrainHit @ EFFECT_DAMAGE_SET_TERRAIN
|
||||
|
||||
BattleScript_AffectionBasedEndurance::
|
||||
playanimation BS_TARGET, B_ANIM_AFFECTION_HANGED_ON
|
||||
printstring STRINGID_TARGETTOUGHEDITOUT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_AffectionBasedStatusHeal::
|
||||
jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AffectionBasedStatus_HealPoisonString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_AffectionBasedStatus_HealSleepString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_PARALYSIS, BattleScript_AffectionBasedStatus_HealParalysisString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_BURN, BattleScript_AffectionBasedStatus_HealBurnString
|
||||
jumpifstatus BS_ATTACKER, STATUS1_FREEZE, BattleScript_AffectionBasedStatus_HealFreezeString
|
||||
end2
|
||||
BattleScript_AffectionBasedStatus_HealPoisonString:
|
||||
printstring STRINGID_ATTACKEREXPELLEDTHEPOISON
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealSleepString:
|
||||
printstring STRINGID_ATTACKERSHOOKITSELFAWAKE
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealParalysisString:
|
||||
printstring STRINGID_ATTACKERBROKETHROUGHPARALYSIS
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealBurnString:
|
||||
printstring STRINGID_ATTACKERHEALEDITSBURN
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealFreezeString:
|
||||
printstring STRINGID_ATTACKERMELTEDTHEICE
|
||||
BattleScript_AffectionBasedStatusHeal_Continue:
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
clearstatus BS_ATTACKER
|
||||
waitstate
|
||||
updatestatusicon BS_ATTACKER
|
||||
waitstate
|
||||
end2
|
||||
|
||||
BattleScript_EffectSteelBeam::
|
||||
attackcanceler
|
||||
attackstring
|
||||
@ -475,7 +511,7 @@ BattleScript_BeakBlastSetUp::
|
||||
setbeakblast BS_ATTACKER
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 1
|
||||
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
||||
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
||||
printstring STRINGID_HEATUPBEAK
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
@ -565,7 +601,7 @@ BattleScript_ScaleShotEnd::
|
||||
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
||||
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
|
||||
end
|
||||
|
||||
|
||||
BattleScript_EffectSkyDrop:
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
|
||||
attackcanceler
|
||||
@ -1981,12 +2017,11 @@ BattleScript_EffectHitSwitchTarget:
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_TARGET
|
||||
moveendcase MOVEEND_MAGICIAN @ possibly others?
|
||||
moveendall
|
||||
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
||||
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
||||
tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd
|
||||
BattleScript_EffectHitSwitchTargetMoveEnd:
|
||||
moveendall
|
||||
end
|
||||
|
||||
BattleScript_EffectClearSmog:
|
||||
@ -5613,7 +5648,7 @@ BattleScript_EffectRolePlay::
|
||||
pause 20
|
||||
destroyabilitypopup
|
||||
pause 40
|
||||
.endif
|
||||
.endif
|
||||
printstring STRINGID_PKMNCOPIEDFOE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
switchinabilities BS_ATTACKER
|
||||
@ -6532,11 +6567,9 @@ BattleScript_LearnMoveReturn::
|
||||
BattleScript_RainContinuesOrEnds::
|
||||
printfromtable gRainContinuesStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainEnds
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainContinuesOrEndsEnd
|
||||
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES
|
||||
end2
|
||||
BattleScript_RainEnds::
|
||||
call BattleScript_WeatherFormChanges
|
||||
BattleScript_RainContinuesOrEndsEnd::
|
||||
end2
|
||||
|
||||
BattleScript_DamagingWeatherContinues::
|
||||
@ -6575,7 +6608,6 @@ BattleScript_DamagingWeatherContinuesEnd::
|
||||
BattleScript_SandStormHailEnds::
|
||||
printfromtable gSandStormHailEndStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_WeatherFormChanges
|
||||
end2
|
||||
|
||||
BattleScript_SunlightContinues::
|
||||
@ -6587,7 +6619,6 @@ BattleScript_SunlightContinues::
|
||||
BattleScript_SunlightFaded::
|
||||
printstring STRINGID_SUNLIGHTFADED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_WeatherFormChanges
|
||||
end2
|
||||
|
||||
BattleScript_OverworldWeatherStarts::
|
||||
@ -7257,6 +7288,10 @@ BattleScript_SelectingNotAllowedStuffCheeks::
|
||||
printselectionstring STRINGID_STUFFCHEEKSCANTSELECT
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedStuffCheeksInPalace::
|
||||
printstring STRINGID_STUFFCHEEKSCANTSELECT
|
||||
goto BattleScript_SelectingUnusableMoveInPalace
|
||||
|
||||
BattleScript_SelectingNotAllowedBelch::
|
||||
printselectionstring STRINGID_BELCHCANTSELECT
|
||||
endselectionscript
|
||||
@ -7417,6 +7452,7 @@ BattleScript_MagicCoatBounce::
|
||||
printfromtable gMagicCoatBounceStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
|
||||
bicword gHitMarker, HITMARKER_NO_ATTACKSTRING
|
||||
setmagiccoattarget BS_ATTACKER
|
||||
return
|
||||
|
||||
@ -8188,19 +8224,30 @@ BattleScript_ShedSkinActivates::
|
||||
BattleScript_WeatherFormChanges::
|
||||
setbyte sBATTLER, 0
|
||||
BattleScript_WeatherFormChangesLoop::
|
||||
trycastformdatachange
|
||||
tryweatherformdatachange
|
||||
addbyte sBATTLER, 1
|
||||
jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_WeatherFormChangesLoop
|
||||
return
|
||||
|
||||
BattleScript_CastformChange::
|
||||
call BattleScript_DoCastformChange
|
||||
BattleScript_WeatherFormChange::
|
||||
call BattleScript_DoWeatherFormChange
|
||||
end3
|
||||
|
||||
BattleScript_DoCastformChange::
|
||||
BattleScript_DoWeatherFormChange::
|
||||
copybyte gBattlerAbility, sBATTLER
|
||||
.if B_WEATHER_FORMS >= GEN_5
|
||||
jumpifspecies BS_SCRIPTING, SPECIES_CASTFORM, BattleScript_DoWeatherFormChange_ForecastCheck
|
||||
BattleScript_DoWeatherFormChange_FlowerGiftCheck:
|
||||
jumpifability BS_SCRIPTING, ABILITY_FLOWER_GIFT, BattleScript_DoWeatherFormChange_PopUp
|
||||
goto BattleScript_DoWeatherFormChange_AfterPopUp
|
||||
.endif
|
||||
BattleScript_DoWeatherFormChange_ForecastCheck:
|
||||
jumpifability BS_SCRIPTING, ABILITY_FORECAST, BattleScript_DoWeatherFormChange_PopUp
|
||||
goto BattleScript_DoWeatherFormChange_AfterPopUp
|
||||
BattleScript_DoWeatherFormChange_PopUp:
|
||||
call BattleScript_AbilityPopUp
|
||||
docastformchangeanimation
|
||||
BattleScript_DoWeatherFormChange_AfterPopUp:
|
||||
doweatherformchangeanimation
|
||||
waitstate
|
||||
printstring STRINGID_PKMNTRANSFORMED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
@ -9197,14 +9244,34 @@ BattleScript_SelectingNotAllowedMoveChoiceItem::
|
||||
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveChoiceItemInPalace::
|
||||
printstring STRINGID_ITEMALLOWSONLYYMOVE
|
||||
goto BattleScript_SelectingUnusableMoveInPalace
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveGorillaTactics::
|
||||
printselectionstring STRINGID_ABILITYALLOWSONLYMOVE
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveGorillaTacticsInPalace::
|
||||
printstring STRINGID_ABILITYALLOWSONLYMOVE
|
||||
goto BattleScript_SelectingUnusableMoveInPalace
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveAssaultVest::
|
||||
printselectionstring STRINGID_ASSAULTVESTDOESNTALLOW
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveAssaultVestInPalace::
|
||||
printstring STRINGID_ASSAULTVESTDOESNTALLOW
|
||||
goto BattleScript_SelectingUnusableMoveInPalace
|
||||
|
||||
BattleScript_SelectingNotAllowedPlaceholder::
|
||||
printselectionstring STRINGID_NOTDONEYET
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedPlaceholderInPalace::
|
||||
printstring STRINGID_NOTDONEYET
|
||||
goto BattleScript_SelectingUnusableMoveInPalace
|
||||
|
||||
BattleScript_HangedOnMsg::
|
||||
playanimation BS_TARGET, B_ANIM_HANGED_ON
|
||||
printstring STRINGID_PKMNHUNGONWITHX
|
||||
@ -9558,7 +9625,7 @@ BattleScript_StatUpZMove::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_StatUpZMoveEnd:
|
||||
return
|
||||
|
||||
|
||||
BattleScript_HealReplacementZMove::
|
||||
playanimation BS_SCRIPTING B_ANIM_WISH_HEAL 0x0
|
||||
printfromtable gZEffectStringIds
|
||||
@ -9769,7 +9836,7 @@ BattleScript_NeutralizingGasExitsLoop:
|
||||
jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic.
|
||||
restoretarget
|
||||
return
|
||||
|
||||
|
||||
BattleScript_MagicianActivates::
|
||||
call BattleScript_AbilityPopUp
|
||||
call BattleScript_ItemSteal
|
||||
|
||||
@ -435,11 +435,15 @@ AI_CGM_BetterWhenAudienceExcited:
|
||||
AI_CGM_BetterWhenAudienceExcited_1stUp:
|
||||
@ BUG: Should be if_appeal_num_eq 0
|
||||
@ 1st up on 1st appeal excitement will always be 0
|
||||
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_Not1stAppeal
|
||||
.ifdef BUGFIX
|
||||
if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
|
||||
.else
|
||||
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
|
||||
.endif
|
||||
if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax
|
||||
if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax
|
||||
end
|
||||
AI_CGM_BetterWhenAudienceExcited_Not1stAppeal:
|
||||
AI_CGM_BetterWhenAudienceExcited_1stAppeal:
|
||||
if_random_less_than 125, AI_CGM_End
|
||||
score -15
|
||||
end
|
||||
@ -542,7 +546,11 @@ AI_CGM_TargetMonWithJudgesAttention:
|
||||
end
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
|
||||
if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
.ifdef BUGFIX
|
||||
if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
.else
|
||||
if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
.endif
|
||||
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
score +2
|
||||
if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
@ -551,7 +559,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
|
||||
if_user_order_eq MON_2, AI_CGM_End
|
||||
if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
.ifdef BUGFIX
|
||||
if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
.else
|
||||
if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
.endif
|
||||
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
score +2
|
||||
if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
@ -560,7 +572,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon3:
|
||||
if_user_order_eq MON_3, AI_CGM_End
|
||||
if_cannot_participate MON_3, AI_CGM_End
|
||||
.ifdef BUGFIX
|
||||
if_not_used_combo_starter MON_3, AI_CGM_End
|
||||
.else
|
||||
if_used_combo_starter MON_3, AI_CGM_End
|
||||
.endif
|
||||
if_random_less_than 125, AI_CGM_End
|
||||
score +2
|
||||
if_not_completed_combo MON_3, AI_CGM_End
|
||||
|
||||
@ -577,6 +577,8 @@ gStdScripts_End::
|
||||
.include "data/scripts/new_game.inc"
|
||||
.include "data/scripts/hall_of_fame.inc"
|
||||
|
||||
.include "data/scripts/debug.inc"
|
||||
|
||||
EventScript_WhiteOut::
|
||||
call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour
|
||||
goto EventScript_ResetMrBriney
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_18"
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM18"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_Room_B1F_EventScript_ItemTM13",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_13"
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM13"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
@ -225,6 +225,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType::
|
||||
call_if_eq VAR_0x8005, TYPE_ICE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce
|
||||
call_if_eq VAR_0x8005, TYPE_DRAGON, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon
|
||||
call_if_eq VAR_0x8005, TYPE_DARK, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark
|
||||
call_if_eq VAR_0x8005, TYPE_FAIRY, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFairy
|
||||
call_if_eq VAR_0x8005, NUMBER_OF_MON_TYPES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType
|
||||
return
|
||||
|
||||
@ -296,6 +297,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark::
|
||||
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType, MSGBOX_DEFAULT
|
||||
return
|
||||
|
||||
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFairy::
|
||||
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFairyType, MSGBOX_DEFAULT
|
||||
return
|
||||
|
||||
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType::
|
||||
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerHasNoClearFavorite, MSGBOX_DEFAULT
|
||||
return
|
||||
@ -559,6 +564,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType:
|
||||
.string "The TRAINER is apparently skilled\n"
|
||||
.string "in the handling of the DARK type.$"
|
||||
|
||||
BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFairyType:
|
||||
.string "The TRAINER is apparently skilled\n"
|
||||
.string "in the handling of the FAIRY type.$"
|
||||
|
||||
BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInSteelType:
|
||||
.string "The TRAINER is apparently skilled\n"
|
||||
.string "in the handling of the STEEL type.$"
|
||||
|
||||
@ -67,51 +67,61 @@ BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove::
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_Softboiled::
|
||||
setvar VAR_0x8008, 16
|
||||
setvar VAR_0x8005, MOVE_SOFT_BOILED
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_SeismicToss::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_SEISMIC_TOSS
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_DreamEater::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_DREAM_EATER
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_MegaPunch::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_MEGA_PUNCH
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_MegaKick::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_MEGA_KICK
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_BodySlam::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_BODY_SLAM
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_RockSlide::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_ROCK_SLIDE
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_Counter::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_COUNTER
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_ThunderWave::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_THUNDER_WAVE
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_SwordsDance::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_SWORDS_DANCE
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
@ -135,7 +145,6 @@ BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove::
|
||||
waitmessage
|
||||
special ShowBattlePointsWindow
|
||||
setvar VAR_TEMP_E, 1
|
||||
setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_2
|
||||
setvar VAR_0x8006, 0
|
||||
special ShowScrollableMultichoice
|
||||
waitstate
|
||||
@ -159,7 +168,6 @@ BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove::
|
||||
message BattleFrontier_Lounge7_Text_TeachWhichMove
|
||||
waitmessage
|
||||
setvar VAR_TEMP_E, 1
|
||||
setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_2
|
||||
setvar VAR_0x8006, 1
|
||||
special ShowScrollableMultichoice
|
||||
waitstate
|
||||
@ -181,51 +189,61 @@ BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove::
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_DefenseCurl::
|
||||
setvar VAR_0x8008, 16
|
||||
setvar VAR_0x8005, MOVE_DEFENSE_CURL
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_Snore::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_SNORE
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_MudSlap::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_MUD_SLAP
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_Swift::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_SWIFT
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_IcyWind::
|
||||
setvar VAR_0x8008, 24
|
||||
setvar VAR_0x8005, MOVE_ICY_WIND
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_Endure::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_ENDURE
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_PsychUp::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_PSYCH_UP
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_IcePunch::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_ICE_PUNCH
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_ThunderPunch::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_THUNDER_PUNCH
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_FirePunch::
|
||||
setvar VAR_0x8008, 48
|
||||
setvar VAR_0x8005, MOVE_FIRE_PUNCH
|
||||
goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection
|
||||
end
|
||||
|
||||
@ -246,11 +264,8 @@ BattleFrontier_Lounge7_EventScript_CancelChooseMon::
|
||||
@ VAR_TEMP_D is the move selection
|
||||
@ VAR_TEMP_E is which move tutor was spoken to
|
||||
BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection::
|
||||
copyvar VAR_0x8004, VAR_TEMP_D
|
||||
copyvar VAR_0x8005, VAR_TEMP_E
|
||||
special BufferBattleFrontierTutorMoveName
|
||||
buffernumberstring STR_VAR_2, VAR_0x8008
|
||||
copyvar VAR_0x8004, VAR_TEMP_C
|
||||
msgbox BattleFrontier_Lounge7_Text_MoveWillBeXBattlePoints, MSGBOX_YESNO
|
||||
goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge7_EventScript_ChooseNewMove
|
||||
specialvar VAR_TEMP_1, GetFrontierBattlePoints
|
||||
@ -261,7 +276,6 @@ BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection::
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_TeachTutorMove::
|
||||
msgbox BattleFrontier_Lounge7_Text_TeachMoveToWhichMon, MSGBOX_DEFAULT
|
||||
special GetBattleFrontierTutorMoveIndex
|
||||
fadescreen FADE_TO_BLACK
|
||||
special CloseBattlePointsWindow
|
||||
special CloseBattleFrontierTutorWindow
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_1F_1R_EventScript_ItemTM23",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM_23"
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM23"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_B1F_2R_EventScript_ItemTM02",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_02"
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM02"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_6F_EventScript_ItemTM30",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_6F_TM_30"
|
||||
"flag": "FLAG_ITEM_MT_PYRE_6F_TM30"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_PSYCHIC_M",
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_Exterior_EventScript_ItemTM48",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM_48"
|
||||
"flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM48"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
@ -158,7 +158,7 @@
|
||||
"y": 9,
|
||||
"elevation": 0,
|
||||
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
|
||||
"script": "OldaleTown_EventScript_CitySign"
|
||||
"script": "OldaleTown_EventScript_TownSign"
|
||||
},
|
||||
{
|
||||
"type": "sign",
|
||||
|
||||
@ -29,8 +29,8 @@ OldaleTown_EventScript_MoveMartEmployee::
|
||||
setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN
|
||||
return
|
||||
|
||||
OldaleTown_EventScript_CitySign::
|
||||
msgbox OldaleTown_Text_CitySign, MSGBOX_SIGN
|
||||
OldaleTown_EventScript_TownSign::
|
||||
msgbox OldaleTown_Text_TownSign, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
OldaleTown_EventScript_Girl::
|
||||
@ -395,7 +395,7 @@ OldaleTown_Text_BrendanLetsGoBack:
|
||||
.string "LAB now.\l"
|
||||
.string "{PLAYER}, you should hustle back, too.$"
|
||||
|
||||
OldaleTown_Text_CitySign:
|
||||
OldaleTown_Text_TownSign:
|
||||
.string "OLDALE TOWN\n"
|
||||
.string "“Where things start off scarce.”$"
|
||||
|
||||
|
||||
@ -11,9 +11,9 @@ PacifidlogTown_House2_EventScript_FanClubYoungerBrother::
|
||||
call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment
|
||||
setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
|
||||
specialvar VAR_RESULT, GetLeadMonFriendshipScore
|
||||
goto_if_ge VAR_RESULT, 4, PacifidlogTown_House2_EventScript_GiveReturn
|
||||
goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, PacifidlogTown_House2_EventScript_GiveReturn
|
||||
specialvar VAR_RESULT, GetLeadMonFriendshipScore
|
||||
goto_if_ge VAR_RESULT, 2, PacifidlogTown_House2_EventScript_PutInEffort
|
||||
goto_if_ge VAR_RESULT, FRIENDSHIP_50_TO_99, PacifidlogTown_House2_EventScript_PutInEffort
|
||||
goto PacifidlogTown_House2_EventScript_GiveFrustration
|
||||
end
|
||||
|
||||
|
||||
@ -262,7 +262,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "Route111_EventScript_ItemTM37",
|
||||
"flag": "FLAG_ITEM_ROUTE_111_TM_37"
|
||||
"flag": "FLAG_ITEM_ROUTE_111_TM37"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_BERRY_TREE",
|
||||
|
||||
@ -451,7 +451,7 @@
|
||||
"y": 5,
|
||||
"elevation": 3,
|
||||
"item": "ITEM_TM32",
|
||||
"flag": "FLAG_HIDDEN_ITEM_ROUTE_113_TM_32"
|
||||
"flag": "FLAG_HIDDEN_ITEM_ROUTE_113_TM32"
|
||||
},
|
||||
{
|
||||
"type": "hidden_item",
|
||||
|
||||
@ -166,7 +166,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "Route115_EventScript_ItemTM01",
|
||||
"flag": "FLAG_ITEM_ROUTE_115_TM_01"
|
||||
"flag": "FLAG_ITEM_ROUTE_115_TM01"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "SafariZone_Northwest_EventScript_ItemTM22",
|
||||
"flag": "FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM_22"
|
||||
"flag": "FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM22"
|
||||
}
|
||||
],
|
||||
"warp_events": [],
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "ScorchedSlab_EventScript_ItemTM11",
|
||||
"flag": "FLAG_ITEM_SCORCHED_SLAB_TM_11"
|
||||
"flag": "FLAG_ITEM_SCORCHED_SLAB_TM11"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
@ -90,7 +90,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "SeafloorCavern_Room9_EventScript_ItemTM26",
|
||||
"flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26"
|
||||
"flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM26"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP",
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "ShoalCave_LowTideIceRoom_EventScript_ItemTM07",
|
||||
"flag": "FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM_07"
|
||||
"flag": "FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM07"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
"x": 14,
|
||||
"y": 9,
|
||||
"elevation": 3,
|
||||
"var": "VAR_SKY_PILLAR_RAQUAZA_CRY_DONE",
|
||||
"var": "VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE",
|
||||
"var_value": "0",
|
||||
"script": "SkyPillar_Top_EventScript_AwakenRayquaza"
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ SkyPillar_Top_EventScript_AwakenRayquaza::
|
||||
special RemoveCameraObject
|
||||
setvar VAR_SOOTOPOLIS_CITY_STATE, 5
|
||||
setvar VAR_SKY_PILLAR_STATE, 1
|
||||
setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1
|
||||
setvar VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE, 1
|
||||
releaseall
|
||||
end
|
||||
|
||||
|
||||
@ -192,7 +192,7 @@ SlateportCity_PokemonFanClub_EventScript_SootheBellWoman::
|
||||
goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell
|
||||
msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT
|
||||
specialvar VAR_RESULT, GetLeadMonFriendshipScore
|
||||
goto_if_ge VAR_RESULT, 4, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell
|
||||
goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@ -7,13 +7,13 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater::
|
||||
msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT
|
||||
specialvar VAR_RESULT, GetLeadMonFriendshipScore
|
||||
switch VAR_RESULT
|
||||
case 0, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou
|
||||
case 1, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary
|
||||
case 2, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou
|
||||
case 3, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou
|
||||
case 4, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot
|
||||
case 5, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy
|
||||
case 6, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou
|
||||
case FRIENDSHIP_NONE, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou
|
||||
case FRIENDSHIP_1_TO_49, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary
|
||||
case FRIENDSHIP_50_TO_99, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou
|
||||
case FRIENDSHIP_100_TO_149, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou
|
||||
case FRIENDSHIP_150_TO_199, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot
|
||||
case FRIENDSHIP_200_TO_254, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy
|
||||
case FRIENDSHIP_MAX, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@ -246,7 +246,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "VictoryRoad_B1F_EventScript_ItemTM29",
|
||||
"flag": "FLAG_ITEM_VICTORY_ROAD_B1F_TM_29"
|
||||
"flag": "FLAG_ITEM_VICTORY_ROAD_B1F_TM29"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
|
||||
79
data/scripts/debug.inc
Normal file
@ -0,0 +1,79 @@
|
||||
Debug_ShowFieldMessageStringVar4::
|
||||
special ShowFieldMessageStringVar4
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
releaseall
|
||||
end
|
||||
|
||||
Debug_CheatStart::
|
||||
lockall
|
||||
setflag FLAG_SYS_POKEMON_GET
|
||||
setflag FLAG_RESCUED_BIRCH
|
||||
setflag FLAG_HIDE_ROUTE_101_BIRCH_ZIGZAGOON_BATTLE
|
||||
setflag FLAG_ADVENTURE_STARTED
|
||||
clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_BIRCH
|
||||
setflag FLAG_HIDE_ROUTE_101_BIRCH_STARTERS_BAG
|
||||
setvar VAR_BIRCH_LAB_STATE, 2
|
||||
setvar VAR_ROUTE101_STATE, 3
|
||||
givemon SPECIES_TREECKO, 20, ITEM_NONE
|
||||
givemon SPECIES_TORCHIC, 20, ITEM_NONE
|
||||
givemon SPECIES_MUDKIP, 20, ITEM_NONE
|
||||
setflag FLAG_SYS_POKEDEX_GET
|
||||
special SetUnlockedPokedexFlags
|
||||
setflag FLAG_RECEIVED_POKEDEX_FROM_BIRCH
|
||||
setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1
|
||||
setflag FLAG_SYS_NATIONAL_DEX
|
||||
special EnableNationalPokedex
|
||||
setflag FLAG_RECEIVED_RUNNING_SHOES
|
||||
setflag FLAG_SYS_B_DASH
|
||||
setvar VAR_LITTLEROOT_TOWN_STATE, 4 @ 4: Received Running Shoes
|
||||
setvar VAR_LITTLEROOT_INTRO_STATE, 7 @ 7: Told to go meet rival
|
||||
setvar VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 2 @ 2: Met Rival's Mom (and is corresponding gender)
|
||||
setvar VAR_LITTLEROOT_HOUSES_STATE_MAY, 2 @ 2: Met Rival's Mom (and is corresponding gender)
|
||||
setvar VAR_LITTLEROOT_RIVAL_STATE, 4 @ 4: Received Pokedex
|
||||
setflag FLAG_RECEIVED_BIKE
|
||||
additem ITEM_ACRO_BIKE
|
||||
setvar VAR_BRINEY_HOUSE_STATE, 1
|
||||
setvar VAR_ROUTE116_STATE, 2
|
||||
setflag FLAG_HIDE_ROUTE_116_MR_BRINEY
|
||||
clearflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY
|
||||
clearflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO
|
||||
release
|
||||
end
|
||||
|
||||
Debug_FlagsNotSetMessage::
|
||||
lockall
|
||||
message Debug_FlagsNotSetMessage_Text
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
releaseall
|
||||
end
|
||||
|
||||
Debug_FlagsNotSetMessage_Text:
|
||||
.string "Feature unavailable!\n"
|
||||
.string "Please define a usable flag in:\l"
|
||||
.string "'include/constants/overworld{UNDERSCORE}config.h'!$"
|
||||
|
||||
Debug_Script_1::
|
||||
end
|
||||
|
||||
Debug_Script_2::
|
||||
end
|
||||
|
||||
Debug_Script_3::
|
||||
end
|
||||
|
||||
Debug_Script_4::
|
||||
end
|
||||
|
||||
Debug_Script_5::
|
||||
end
|
||||
|
||||
Debug_Script_6::
|
||||
end
|
||||
|
||||
Debug_Script_7::
|
||||
end
|
||||
|
||||
Debug_Script_8::
|
||||
end
|
||||
@ -7,7 +7,7 @@ SlateportCity_PokemonFanClub_EventScript_SwaggerTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SwaggerDeclined
|
||||
msgbox MoveTutor_Text_SwaggerWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_SWAGGER
|
||||
setvar VAR_0x8005, MOVE_SWAGGER
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SwaggerDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_SWAGGER
|
||||
@ -33,7 +33,7 @@ MauvilleCity_EventScript_RolloutTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_RolloutDeclined
|
||||
msgbox MoveTutor_Text_RolloutWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_ROLLOUT
|
||||
setvar VAR_0x8005, MOVE_ROLLOUT
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_RolloutDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT
|
||||
@ -59,7 +59,7 @@ VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_FuryCutterDeclined
|
||||
msgbox MoveTutor_Text_FuryCutterWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_FURY_CUTTER
|
||||
setvar VAR_0x8005, MOVE_FURY_CUTTER
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_FuryCutterDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER
|
||||
@ -85,7 +85,7 @@ LavaridgeTown_House_EventScript_MimicTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MimicDeclined
|
||||
msgbox MoveTutor_Text_MimicWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_MIMIC
|
||||
setvar VAR_0x8005, MOVE_MIMIC
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MimicDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_MIMIC
|
||||
@ -111,7 +111,7 @@ FallarborTown_Mart_EventScript_MetronomeTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MetronomeDeclined
|
||||
msgbox MoveTutor_Text_MetronomeWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_METRONOME
|
||||
setvar VAR_0x8005, MOVE_METRONOME
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MetronomeDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_METRONOME
|
||||
@ -137,7 +137,7 @@ FortreeCity_House2_EventScript_SleepTalkTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SleepTalkDeclined
|
||||
msgbox MoveTutor_Text_SleepTalkWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_SLEEP_TALK
|
||||
setvar VAR_0x8005, MOVE_SLEEP_TALK
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SleepTalkDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK
|
||||
@ -163,7 +163,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SubstituteDeclined
|
||||
msgbox MoveTutor_Text_SubstituteWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_SUBSTITUTE
|
||||
setvar VAR_0x8005, MOVE_SUBSTITUTE
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SubstituteDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE
|
||||
@ -189,7 +189,7 @@ MossdeepCity_EventScript_DynamicPunchTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DynamicPunchDeclined
|
||||
msgbox MoveTutor_Text_DynamicPunchWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_DYNAMIC_PUNCH
|
||||
setvar VAR_0x8005, MOVE_DYNAMIC_PUNCH
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DynamicPunchDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH
|
||||
@ -215,7 +215,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DoubleEdgeDeclined
|
||||
msgbox MoveTutor_Text_DoubleEdgeWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_DOUBLE_EDGE
|
||||
setvar VAR_0x8005, MOVE_DOUBLE_EDGE
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DoubleEdgeDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE
|
||||
@ -241,7 +241,7 @@ PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor::
|
||||
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
|
||||
goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_ExplosionDeclined
|
||||
msgbox MoveTutor_Text_ExplosionWhichMon, MSGBOX_DEFAULT
|
||||
setvar VAR_0x8005, TUTOR_MOVE_EXPLOSION
|
||||
setvar VAR_0x8005, MOVE_EXPLOSION
|
||||
call MoveTutor_EventScript_OpenPartyMenu
|
||||
goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_ExplosionDeclined
|
||||
setflag FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION
|
||||
|
||||
@ -38,7 +38,7 @@ EventScript_ResetAllBerries::
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
|
||||
|
||||
@ Route 112
|
||||
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
|
||||
@ -22,7 +22,7 @@ Roulette_EventScript_Play::
|
||||
special PlayRoulette
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
Roulette_Text_PlayMinimumWagerIsX::
|
||||
.string "The minimum wager at this table\n"
|
||||
.string "is {STR_VAR_1}. Do you want to play?$"
|
||||
|
||||
@ -486,7 +486,6 @@ gSpecials::
|
||||
def_special CloseBattleFrontierTutorWindow
|
||||
def_special ScrollableMultichoice_RedrawPersistentMenu
|
||||
def_special ChooseMonForMoveTutor
|
||||
def_special GetBattleFrontierTutorMoveIndex
|
||||
def_special ScrollableMultichoice_ClosePersistentMenu
|
||||
def_special DoDeoxysRockInteraction
|
||||
def_special SetDeoxysRockPalette
|
||||
|
||||
@ -17,8 +17,8 @@
|
||||
cd /mnt/c/Users/<user>/Downloads
|
||||
```
|
||||
|
||||
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
|
||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
|
||||
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
|
||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
|
||||
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||
|
||||
4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM.
|
||||
|
||||
@ -103,7 +103,7 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *);
|
||||
#define DUMMY_OAM_DATA \
|
||||
{ \
|
||||
.y = DISPLAY_HEIGHT, \
|
||||
.affineMode = 0, \
|
||||
.affineMode = ST_OAM_AFFINE_OFF, \
|
||||
.objMode = 0, \
|
||||
.mosaic = FALSE, \
|
||||
.bpp = 0, \
|
||||
|
||||
@ -73,7 +73,7 @@ static const u8 sDarkDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow_alt
|
||||
static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
|
||||
static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
|
||||
static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 };
|
||||
static const u8 sWindowVerticalScrollSpeeds[] = {
|
||||
static const u8 sWindowVerticalScrollSpeeds[] = {
|
||||
[OPTIONS_TEXT_SPEED_SLOW] = 1,
|
||||
[OPTIONS_TEXT_SPEED_MID] = 2,
|
||||
[OPTIONS_TEXT_SPEED_FAST] = 4,
|
||||
@ -299,7 +299,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi
|
||||
else
|
||||
{
|
||||
sTempTextPrinter.textSpeed = 0;
|
||||
|
||||
|
||||
// Render all text (up to limit) at once
|
||||
for (j = 0; j < 0x400; ++j)
|
||||
{
|
||||
|
||||
@ -148,7 +148,6 @@ void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
|
||||
void DecompressGlyphTile(const void *src_, void *dest_);
|
||||
void CopyGlyphToWindow(struct TextPrinter *x);
|
||||
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
|
||||
u8 GetMenuCursorDimensionByFont(u8, u8);
|
||||
|
||||
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
|
||||
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
|
||||
|
||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 984 B After Width: | Height: | Size: 984 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 519 B After Width: | Height: | Size: 519 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 540 B |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |