Merge branch '_RHH/upcoming' into _RHH/pr/master/1.10.0
23
.github/workflows/build.yml
vendored
@ -15,19 +15,12 @@ jobs:
|
||||
GAME_VERSION: EMERALD
|
||||
GAME_REVISION: 0
|
||||
GAME_LANGUAGE: ENGLISH
|
||||
MODERN: 0
|
||||
COMPARE: 0
|
||||
UNUSED_ERROR: 1
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Checkout agbcc
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: agbcc
|
||||
repository: pret/agbcc
|
||||
|
||||
- name: Install binutils
|
||||
run: |
|
||||
sudo apt update
|
||||
@ -36,27 +29,13 @@ jobs:
|
||||
# gcc-arm-none-eabi is only needed for the modern build
|
||||
# as an alternative to dkP
|
||||
|
||||
- name: Install agbcc
|
||||
run: |
|
||||
./build.sh
|
||||
./install.sh ../
|
||||
working-directory: agbcc
|
||||
|
||||
- name: Agbcc
|
||||
- name: ROM
|
||||
env:
|
||||
MODERN: 0
|
||||
COMPARE: 0
|
||||
run: make -j${nproc} -O all
|
||||
|
||||
- name: Modern
|
||||
env:
|
||||
MODERN: 1
|
||||
COMPARE: 0
|
||||
run: make -j${nproc} -O all
|
||||
|
||||
- name: Test
|
||||
env:
|
||||
MODERN: 1
|
||||
TEST: 1
|
||||
run: |
|
||||
make -j${nproc} check
|
||||
|
||||
1
.gitignore
vendored
@ -39,6 +39,5 @@ prefabs.json
|
||||
*.sym
|
||||
*.js
|
||||
/pokeemerald-*.png
|
||||
/pokeemerald_agbcc-*.png
|
||||
src/data/map_group_count.h
|
||||
tools/trainerproc/trainerproc
|
||||
|
||||
52
INSTALL.md
@ -596,58 +596,6 @@ To build **pokeemerald.elf** with debug symbols under a modern toolchain:
|
||||
```bash
|
||||
make DINFO=1
|
||||
```
|
||||
Note that this is not necessary for a non-modern (agbcc) build since those are built with debug symbols by default.
|
||||
|
||||
### agbcc
|
||||
|
||||
<details>
|
||||
<summary><i>Deprecated; installing agbcc is optional since 1.7.0</i>.</summary>
|
||||
|
||||
1. Install agbcc into pokeemerald-expansion. The commands to run depend on certain conditions. **You should only follow one of the listed instructions**:
|
||||
- If agbcc has **not been built before** in the folder where you chose to store pokeemerald Expansion, run the following commands to build and install it into pokeemerald-expansion:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/pret/agbcc
|
||||
cd agbcc
|
||||
./build.sh
|
||||
./install.sh ../pokeemerald-expansion
|
||||
```
|
||||
|
||||
- **Otherwise**, if agbcc has been built before (e.g. if the git clone above fails), but was **last built on a different terminal** than the one currently used (only relevant to Windows, e.g. switching from msys2 to WSL1), then run the following commands to build and install it into pokeemerald-expansion:
|
||||
|
||||
```bash
|
||||
cd agbcc
|
||||
git clean -fX
|
||||
./build.sh
|
||||
./install.sh ../pokeemerald-expansion
|
||||
```
|
||||
|
||||
- **Otherwise**, if agbcc has been built before on the same terminal, run the following commands to install agbcc into pokeemerald-expansion:
|
||||
|
||||
```bash
|
||||
cd agbcc
|
||||
./install.sh ../pokeemerald-expansion
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary><i>Note...</i></summary>
|
||||
|
||||
> If building agbcc or pokeemerald results in an error, try deleting the agbcc folder and re-installing agbcc as if it has not been built before.
|
||||
</details>
|
||||
|
||||
2. Once agbcc is installed, change directory back to the base directory where pokeemerald-expansion and agbcc are stored:
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
```
|
||||
|
||||
3. To compile with agbcc:
|
||||
|
||||
```bash
|
||||
make agbcc
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
# Useful additional tools
|
||||
|
||||
|
||||
156
Makefile
@ -5,12 +5,10 @@ MAKER_CODE := 01
|
||||
REVISION := 0
|
||||
KEEP_TEMPS ?= 0
|
||||
|
||||
# `File name`.gba ('_agbcc' will be appended to the non-modern builds)
|
||||
# `File name`.gba
|
||||
FILE_NAME := pokeemerald
|
||||
BUILD_DIR := build
|
||||
|
||||
# Builds the ROM using a modern compiler
|
||||
MODERN ?= 1
|
||||
# Compares the ROM to a checksum of the original - only makes sense using when non-modern
|
||||
COMPARE ?= 0
|
||||
# Executes the Test Runner System that checks that all mechanics work as expected
|
||||
@ -19,16 +17,18 @@ TEST ?= 0
|
||||
ANALYZE ?= 0
|
||||
# Count unused warnings as errors. Used by RH-Hideout's repo
|
||||
UNUSED_ERROR ?= 0
|
||||
# Adds -Og and -g flags, which optimize the build for debugging and include debug info respectively
|
||||
DEBUG ?= 0
|
||||
|
||||
ifeq (agbcc,$(MAKECMDGOALS))
|
||||
MODERN := 0
|
||||
endif
|
||||
ifeq (compare,$(MAKECMDGOALS))
|
||||
COMPARE := 1
|
||||
endif
|
||||
ifeq (check,$(MAKECMDGOALS))
|
||||
TEST := 1
|
||||
endif
|
||||
ifeq (debug,$(MAKECMDGOALS))
|
||||
DEBUG := 1
|
||||
endif
|
||||
|
||||
# Default make rule
|
||||
all: rom
|
||||
@ -58,52 +58,27 @@ ifeq ($(OS),Windows_NT)
|
||||
EXE := .exe
|
||||
endif
|
||||
|
||||
# use arm-none-eabi-cpp for macOS
|
||||
# as macOS's default compiler is clang
|
||||
# and clang's preprocessor will warn on \u
|
||||
# when preprocessing asm files, expecting a unicode literal
|
||||
# we can't unconditionally use arm-none-eabi-cpp
|
||||
# as installations which install binutils-arm-none-eabi
|
||||
# don't come with it
|
||||
ifneq ($(MODERN),1)
|
||||
ifeq ($(shell uname -s),Darwin)
|
||||
CPP := $(PREFIX)cpp
|
||||
else
|
||||
CPP := $(CC) -E
|
||||
endif
|
||||
else
|
||||
CPP := $(PREFIX)cpp
|
||||
endif
|
||||
CPP := $(PREFIX)cpp
|
||||
|
||||
ROM_NAME := $(FILE_NAME)_agbcc.gba
|
||||
OBJ_DIR_NAME := $(BUILD_DIR)/emerald
|
||||
OBJ_DIR_NAME_TEST := $(BUILD_DIR)/test
|
||||
MODERN_ROM_NAME := $(FILE_NAME).gba
|
||||
MODERN_OBJ_DIR_NAME := $(BUILD_DIR)/modern
|
||||
MODERN_OBJ_DIR_NAME_TEST := $(BUILD_DIR)/modern-test
|
||||
ROM_NAME := $(FILE_NAME).gba
|
||||
OBJ_DIR_NAME := $(BUILD_DIR)/modern
|
||||
OBJ_DIR_NAME_TEST := $(BUILD_DIR)/modern-test
|
||||
OBJ_DIR_NAME_DEBUG := $(BUILD_DIR)/modern-debug
|
||||
|
||||
ELF_NAME := $(ROM_NAME:.gba=.elf)
|
||||
MAP_NAME := $(ROM_NAME:.gba=.map)
|
||||
MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf)
|
||||
MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map)
|
||||
TESTELF = $(MODERN_ROM_NAME:.gba=-test.elf)
|
||||
HEADLESSELF = $(MODERN_ROM_NAME:.gba=-test-headless.elf)
|
||||
TESTELF = $(ROM_NAME:.gba=-test.elf)
|
||||
HEADLESSELF = $(ROM_NAME:.gba=-test-headless.elf)
|
||||
|
||||
# Pick our active variables
|
||||
ifeq ($(MODERN),0)
|
||||
ROM := $(ROM_NAME)
|
||||
ifeq ($(TEST), 0)
|
||||
OBJ_DIR := $(OBJ_DIR_NAME)
|
||||
else
|
||||
OBJ_DIR := $(OBJ_DIR_NAME_TEST)
|
||||
endif
|
||||
ROM := $(ROM_NAME)
|
||||
ifeq ($(TEST), 0)
|
||||
OBJ_DIR := $(OBJ_DIR_NAME)
|
||||
else
|
||||
ROM := $(MODERN_ROM_NAME)
|
||||
ifeq ($(TEST), 0)
|
||||
OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
|
||||
else
|
||||
OBJ_DIR := $(MODERN_OBJ_DIR_NAME_TEST)
|
||||
endif
|
||||
OBJ_DIR := $(OBJ_DIR_NAME_TEST)
|
||||
endif
|
||||
ifeq ($(DEBUG),1)
|
||||
OBJ_DIR := $(OBJ_DIR_NAME_DEBUG)
|
||||
endif
|
||||
ifeq ($(TESTELF),$(MAKECMDGOALS))
|
||||
TEST := 1
|
||||
@ -131,41 +106,45 @@ TEST_BUILDDIR = $(OBJ_DIR)/$(TEST_SUBDIR)
|
||||
SHELL := bash -o pipefail
|
||||
|
||||
# Set flags for tools
|
||||
ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN)
|
||||
ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=1
|
||||
|
||||
INCLUDE_DIRS := include
|
||||
INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %)
|
||||
INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %)
|
||||
|
||||
O_LEVEL ?= 2
|
||||
CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=$(MODERN) -DTESTING=$(TEST)
|
||||
ifeq ($(MODERN),0)
|
||||
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef
|
||||
CC1 := tools/agbcc/bin/agbcc$(EXE)
|
||||
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O$(O_LEVEL) -fhex-asm -g
|
||||
LIBPATH := -L ../../tools/agbcc/lib
|
||||
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
|
||||
ifeq ($(DEBUG),1)
|
||||
O_LEVEL ?= g
|
||||
else
|
||||
# Note: The makefile must be set up to not call these if modern == 0
|
||||
MODERNCC := $(PREFIX)gcc
|
||||
PATH_MODERNCC := PATH="$(PATH)" $(MODERNCC)
|
||||
CC1 := $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O$(O_LEVEL) -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init
|
||||
ifeq ($(ANALYZE),1)
|
||||
override CFLAGS += -fanalyzer
|
||||
endif
|
||||
# Only throw an error for unused elements if its RH-Hideout's repo
|
||||
ifeq ($(UNUSED_ERROR),0)
|
||||
ifneq ($(GITHUB_REPOSITORY_OWNER),rh-hideout)
|
||||
override CFLAGS += -Wno-error=unused-variable -Wno-error=unused-const-variable -Wno-error=unused-parameter -Wno-error=unused-function -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=unused-local-typedefs
|
||||
endif
|
||||
endif
|
||||
LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))"
|
||||
LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall
|
||||
O_LEVEL ?= 2
|
||||
endif
|
||||
CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST)
|
||||
ARMCC := $(PREFIX)gcc
|
||||
PATH_ARMCC := PATH="$(PATH)" $(ARMCC)
|
||||
CC1 := $(shell $(PATH_ARMCC) --print-prog-name=cc1) -quiet
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O$(O_LEVEL) -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init
|
||||
ifeq ($(ANALYZE),1)
|
||||
override CFLAGS += -fanalyzer
|
||||
endif
|
||||
# Only throw an error for unused elements if its RH-Hideout's repo
|
||||
ifeq ($(UNUSED_ERROR),0)
|
||||
ifneq ($(GITHUB_REPOSITORY_OWNER),rh-hideout)
|
||||
override CFLAGS += -Wno-error=unused-variable -Wno-error=unused-const-variable -Wno-error=unused-parameter -Wno-error=unused-function -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=unused-local-typedefs
|
||||
endif
|
||||
endif
|
||||
LIBPATH := -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libc.a))"
|
||||
LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall
|
||||
# Enable debug info if set
|
||||
ifeq ($(DINFO),1)
|
||||
override CFLAGS += -g
|
||||
else
|
||||
ifeq ($(DEBUG),1)
|
||||
override CFLAGS += -g
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(NOOPT),1)
|
||||
override CFLAGS := $(filter-out -O1 -Og -O2,$(CFLAGS))
|
||||
override CFLAGS += -O0
|
||||
endif
|
||||
|
||||
# Variable filled out in other make files
|
||||
@ -198,8 +177,8 @@ MAKEFLAGS += --no-print-directory
|
||||
# Delete files that weren't built properly
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidynonmodern tidycheck generated clean-generated $(TESTELF)
|
||||
.PHONY: all rom agbcc modern compare check
|
||||
RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck generated clean-generated $(TESTELF)
|
||||
.PHONY: all rom agbcc modern compare check debug
|
||||
.PHONY: $(RULES_NO_SCAN)
|
||||
|
||||
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
||||
@ -269,6 +248,7 @@ $(shell mkdir -p $(SUBDIRS))
|
||||
# Pretend rules that are actually flags defer to `make all`
|
||||
modern: all
|
||||
compare: all
|
||||
debug: all
|
||||
# Uncomment the next line, and then comment the 4 lines after it to reenable agbcc.
|
||||
#agbcc: all
|
||||
agbcc:
|
||||
@ -317,21 +297,19 @@ clean-assets:
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
|
||||
|
||||
tidy: tidynonmodern tidymodern tidycheck
|
||||
tidy: tidymodern tidycheck tidydebug
|
||||
|
||||
tidynonmodern:
|
||||
tidymodern:
|
||||
rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME)
|
||||
rm -rf $(OBJ_DIR_NAME)
|
||||
|
||||
tidymodern:
|
||||
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
|
||||
rm -rf $(MODERN_OBJ_DIR_NAME)
|
||||
|
||||
tidycheck:
|
||||
rm -f $(TESTELF) $(HEADLESSELF)
|
||||
rm -rf $(MODERN_OBJ_DIR_NAME_TEST)
|
||||
rm -rf $(OBJ_DIR_NAME_TEST)
|
||||
|
||||
tidydebug:
|
||||
rm -rf $(DEBUG_OBJ_DIR_NAME)
|
||||
|
||||
# Other rules
|
||||
include graphics_file_rules.mk
|
||||
include map_data_rules.mk
|
||||
@ -366,24 +344,11 @@ ifeq ($(COMPETITIVE_PARTY_SYNTAX),1)
|
||||
%.h: %.party ; $(CPP) $(CPPFLAGS) -traditional-cpp - < $< | $(TRAINERPROC) -o $@ -i $< -
|
||||
endif
|
||||
|
||||
ifeq ($(MODERN),0)
|
||||
$(C_BUILDDIR)/libc.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE)
|
||||
$(C_BUILDDIR)/libc.o: CFLAGS := -O2
|
||||
$(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork
|
||||
$(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
|
||||
$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
|
||||
$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
|
||||
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
|
||||
$(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding
|
||||
$(C_BUILDDIR)/librfu_intr.o: CC1 := $(TOOLS_DIR)/agbcc/bin/agbcc_arm$(EXE)
|
||||
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
|
||||
else
|
||||
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
|
||||
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
|
||||
$(C_BUILDDIR)/pokedex_plus_hgss.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init
|
||||
# Annoyingly we can't turn this on just for src/data/trainers.h
|
||||
$(C_BUILDDIR)/data.o: CFLAGS += -fno-show-column -fno-diagnostics-show-caret
|
||||
endif
|
||||
|
||||
# Dependency rules (for the *.c & *.s sources to .o files)
|
||||
# Have to be explicit or else missing files won't be reported.
|
||||
@ -464,18 +429,13 @@ $(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(DATA_ASM_BUILDDIR)/event_scr
|
||||
python3 $(TOOLS_DIR)/learnset_helpers/teachable.py
|
||||
|
||||
# Linker script
|
||||
ifeq ($(MODERN),0)
|
||||
LD_SCRIPT := ld_script.ld
|
||||
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||
else
|
||||
LD_SCRIPT := ld_script_modern.ld
|
||||
LD_SCRIPT_DEPS :=
|
||||
endif
|
||||
|
||||
# Final rules
|
||||
|
||||
libagbsyscall:
|
||||
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
|
||||
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=1
|
||||
|
||||
# Elf from object files
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
|
||||
@ -1349,7 +1349,6 @@
|
||||
.4byte \func
|
||||
.endm
|
||||
|
||||
@ callnative macros
|
||||
.macro savetarget
|
||||
callnative BS_SaveTarget
|
||||
.endm
|
||||
@ -1677,6 +1676,48 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifteainvulnerable battler:req, jumpInstr:req
|
||||
callnative BS_TeatimeInvul
|
||||
.byte \battler
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifteanoberry failInstr:req
|
||||
callnative BS_TeatimeTargets
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trywindriderpower battler:req, failInstr:req
|
||||
callnative BS_TryWindRiderPower
|
||||
.byte \battler
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro activateweatherchangeabilities battler:req
|
||||
callnative BS_ActivateWeatherChangeAbilities
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro activateterrainchangeabilities battler:req
|
||||
callnative BS_ActivateTerrainChangeAbilities
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
@ Stores Healing Wish effect.
|
||||
.macro storehealingwish battler:req
|
||||
callnative BS_StoreHealingWish
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro hitswitchtargetfailed
|
||||
callnative BS_HitSwitchTargetFailed
|
||||
.endm
|
||||
|
||||
.macro tryrevivalblessing, failInstr:req
|
||||
callnative BS_TryRevivalBlessing
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifblockedbysoundproof battler:req, failInstr:req
|
||||
callnative BS_JumpIfBlockedBySoundproof
|
||||
.byte \battler
|
||||
@ -1692,16 +1733,37 @@
|
||||
callnative BS_SetMagicCoatTarget
|
||||
.endm
|
||||
|
||||
.macro jumpifcommanderactive jumpInstr:req
|
||||
callnative BS_JumpIfCommanderActive
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro checkpokeflute
|
||||
callnative BS_CheckPokeFlute
|
||||
.endm
|
||||
|
||||
.macro waitfanfare
|
||||
callnative BS_WaitFanfare
|
||||
.endm
|
||||
|
||||
.macro setbeakblast
|
||||
callnative BS_SetBeakBlast
|
||||
.endm
|
||||
|
||||
.macro cantarshotwork failInstr:req
|
||||
callnative BS_CanTarShotWork
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro removeterrain
|
||||
callnative BS_RemoveTerrain
|
||||
.endm
|
||||
|
||||
@ various command changed to more readable macros
|
||||
.macro cancelmultiturnmoves battler:req
|
||||
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
||||
.endm
|
||||
|
||||
@ Stores Healing Wish effect.
|
||||
.macro storehealingwish battler:req
|
||||
various \battler, VARIOUS_STORE_HEALING_WISH
|
||||
.endm
|
||||
|
||||
.macro getifcantrunfrombattle battler:req
|
||||
various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
|
||||
.endm
|
||||
@ -2167,10 +2229,6 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro removeterrain
|
||||
various BS_ATTACKER, VARIOUS_REMOVE_TERRAIN
|
||||
.endm
|
||||
|
||||
.macro trytoclearprimalweather
|
||||
various BS_ATTACKER, VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER
|
||||
.endm
|
||||
@ -2219,11 +2277,6 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro cantarshotwork battler:req, failInstr:req
|
||||
various \battler, VARIOUS_CAN_TAR_SHOT_WORK
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro checkpoltergeist battler:req, failInstr:req
|
||||
various \battler, VARIOUS_CHECK_POLTERGEIST
|
||||
.4byte \failInstr
|
||||
@ -2234,16 +2287,6 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifteanoberry jumpInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TEATIME_TARGETS
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifteainvulnerable battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_TEATIME_INVUL
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro curecertainstatuses battler:req
|
||||
various \battler, VARIOUS_CURE_CERTAIN_STATUSES
|
||||
.endm
|
||||
@ -2275,10 +2318,6 @@
|
||||
various \battler, VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM
|
||||
.endm
|
||||
|
||||
.macro setbeakblast battler:req
|
||||
various \battler, VARIOUS_SET_BEAK_BLAST
|
||||
.endm
|
||||
|
||||
.macro swapsidestatuses
|
||||
various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES
|
||||
.endm
|
||||
@ -2288,19 +2327,6 @@
|
||||
.byte \stat
|
||||
.endm
|
||||
|
||||
.macro trywindriderpower battler:req, failInstr:req
|
||||
various \battler, VARIOUS_TRY_WIND_RIDER_POWER
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro activateweatherchangeabilities battler:req
|
||||
various \battler, VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES
|
||||
.endm
|
||||
|
||||
.macro activateterrainchangeabilities battler:req
|
||||
various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES
|
||||
.endm
|
||||
|
||||
@ helpful macros
|
||||
.macro setstatchanger stat:req, stages:req, down:req
|
||||
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
|
||||
@ -2495,15 +2521,6 @@
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
.endm
|
||||
|
||||
.macro hitswitchtargetfailed
|
||||
various 0, VARIOUS_HIT_SWITCH_TARGET_FAILED
|
||||
.endm
|
||||
|
||||
.macro tryrevivalblessing, jumpInstr:req
|
||||
various 0, VARIOUS_TRY_REVIVAL_BLESSING
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
@ Will jump to script pointer if the specified battler has or has not fainted.
|
||||
.macro jumpiffainted battler:req, value:req, ptr:req
|
||||
getbattlerfainted \battler
|
||||
|
||||
@ -1798,7 +1798,7 @@
|
||||
.4byte \text
|
||||
.endm
|
||||
|
||||
@ Equivalent to fadescreen but copies gPlttBufferUnfaded to gPaletteDecompressionBuffer on the fade out
|
||||
@ Equivalent to fadescreen but copies gPlttBufferUnfaded to gDecompressionBuffer on the fade out
|
||||
@ and the reverse on the fade in, in effect saving gPlttBufferUnfaded to restore it.
|
||||
.macro fadescreenswapbuffers mode:req
|
||||
.byte 0xdc
|
||||
@ -2321,3 +2321,112 @@
|
||||
.macro togglefakertc
|
||||
callnative Script_ToggleFakeRtc
|
||||
.endm
|
||||
|
||||
@ ============================ @
|
||||
@ ITEM DESCRIPTION HEADER MACROS
|
||||
@ Used with OW_SHOW_ITEM_DESCRIPTIONS config
|
||||
.macro showitemdescription
|
||||
callnative ScriptShowItemDescription
|
||||
.byte 0
|
||||
.endm
|
||||
|
||||
.macro showberrydescription
|
||||
callnative ScriptShowItemDescription
|
||||
.byte 1
|
||||
.endm
|
||||
|
||||
.macro hideitemdescription
|
||||
callnative ScriptHideItemDescription
|
||||
.endm
|
||||
|
||||
@ Remove all of specified item from the player's bag and return the number of removed items to VAR_RESULT
|
||||
.macro removeallitem itemId:req
|
||||
callnative ScrCmd_removeallitem
|
||||
.2byte \itemId
|
||||
.endm
|
||||
|
||||
@ Stores the position of the given object in destX and destY. Mode CURRENT_POSITION will take the object's current position. Mode TEMPLATE_POSITION will take the object's template position.
|
||||
.macro getobjectxy localId:req, posType:req, destX:req, destY:req
|
||||
callnative ScrCmd_getobjectxy
|
||||
.2byte \localId
|
||||
.2byte \posType
|
||||
.2byte \destX
|
||||
.2byte \destY
|
||||
.endm
|
||||
|
||||
.macro getobjecttemplatexy localId:req, posType = TEMPLATE_POSITION, destX:req, destY:req
|
||||
callnative ScrCmd_getobjectxy
|
||||
.2byte \localId
|
||||
.2byte \posType
|
||||
.2byte \destX
|
||||
.2byte \destY
|
||||
.endm
|
||||
|
||||
.macro getobjectcurrentxy localId:req, posType = CURRENT_POSITION, destX:req, destY:req
|
||||
callnative ScrCmd_getobjectxy
|
||||
.2byte \localId
|
||||
.2byte \posType
|
||||
.2byte \destX
|
||||
.2byte \destY
|
||||
.endm
|
||||
|
||||
@ Return TRUE to dest if there is an object at the position x and y.
|
||||
.macro checkobjectat x:req, y:req, dest = VAR_RESULT
|
||||
callnative ScrCmd_checkobjectat
|
||||
.2byte \x
|
||||
.2byte \y
|
||||
.2byte \dest
|
||||
.endm
|
||||
|
||||
@ Returns the state of the Pokedex Seen Flag to VAR_RESULT for the Pokemon with speciesId
|
||||
.macro getseenmon species:req
|
||||
callnative Scrcmd_getsetpokedexflag
|
||||
.2byte \species
|
||||
.2byte FLAG_GET_SEEN
|
||||
.endm
|
||||
|
||||
@ Returns the state of the Pokedex Caught Flag to VAR_RESULT for the Pokemon with speciesId
|
||||
.macro getcaughtmon species:req
|
||||
callnative Scrcmd_getsetpokedexflag
|
||||
.2byte \species
|
||||
.2byte FLAG_GET_CAUGHT
|
||||
.endm
|
||||
|
||||
@ Sets the Pokedex Seen Flag for the Pokemon with speciesId
|
||||
.macro setseenmon species:req
|
||||
callnative Scrcmd_getsetpokedexflag
|
||||
.2byte \species
|
||||
.2byte FLAG_SET_SEEN
|
||||
.endm
|
||||
|
||||
@ Sets the Pokedex Caught Flag for the Pokemon with speciesId
|
||||
.macro setcaughtmon species:req
|
||||
callnative Scrcmd_getsetpokedexflag
|
||||
.2byte \species
|
||||
.2byte FLAG_SET_CAUGHT
|
||||
.endm
|
||||
|
||||
@ Check if the Player has speciesId in their party. OPEN_PARTY_SCREEN will have the player select a mon from their party. NO_PARTY_SCREEN will automatically check every mon in the player's party.
|
||||
.macro checkspecies speciesId:req, mode=NO_PARTY_SCREEN
|
||||
.if \mode == OPEN_PARTY_SCREEN
|
||||
special ChoosePartyMon
|
||||
waitstate
|
||||
callnative Scrcmd_checkspecies_choose
|
||||
.2byte \speciesId
|
||||
.else
|
||||
callnative Scrcmd_checkspecies
|
||||
.2byte \speciesId
|
||||
.endif
|
||||
.endm
|
||||
|
||||
.macro checkspecies_choose speciesId:req
|
||||
checkspecies \speciesId, OPEN_PARTY_SCREEN
|
||||
.endm
|
||||
|
||||
@ Gets the facing direction of a given event object and stores it in the variable dest.
|
||||
.macro getobjectfacingdirection localId:req, dest:req
|
||||
callnative Scrcmd_getobjectfacingdirection
|
||||
.2byte \localId
|
||||
.2byte \dest
|
||||
.endm
|
||||
|
||||
|
||||
11
charmap.txt
@ -45,6 +45,7 @@ SUPER_ER = 2C
|
||||
LV = 34
|
||||
'=' = 35
|
||||
';' = 36
|
||||
V_D_ARROW = 38
|
||||
'¿' = 51
|
||||
'¡' = 52
|
||||
PK = 53
|
||||
@ -369,7 +370,7 @@ B_ATK_NAME_WITH_PREFIX = FD 0F
|
||||
B_DEF_NAME_WITH_PREFIX = FD 10
|
||||
B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler
|
||||
@ FD 12 - preiously gActiveBattler with prefix
|
||||
B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13
|
||||
B_SCR_NAME_WITH_PREFIX = FD 13
|
||||
B_CURRENT_MOVE = FD 14
|
||||
B_LAST_MOVE = FD 15
|
||||
B_LAST_ITEM = FD 16
|
||||
@ -412,6 +413,14 @@ B_DEF_TEAM1 = FD 3A
|
||||
B_DEF_TEAM2 = FD 3B
|
||||
@ FD 3C - preiously gActiveBattler
|
||||
@ FD 3D - preiously gActiveBattler without Illusion Check
|
||||
B_ATK_NAME_WITH_PREFIX2 = FD 3E
|
||||
B_DEF_NAME_WITH_PREFIX2 = FD 3F
|
||||
B_EFF_NAME_WITH_PREFIX2 = FD 40
|
||||
B_SCR_NAME_WITH_PREFIX2 = FD 41
|
||||
B_TRAINER1_NAME_WITH_CLASS = FD 42
|
||||
B_TRAINER2_NAME_WITH_CLASS = FD 43
|
||||
B_PARTNER_NAME_WITH_CLASS = FD 44
|
||||
B_ATK_TRAINER_NAME_WITH_CLASS = FD 45
|
||||
|
||||
@ indicates the end of a town/city name (before " TOWN" or " CITY")
|
||||
NAME_END = FC 00
|
||||
|
||||
@ -579,7 +579,7 @@ BattleScript_Teatimerod:
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TeatimeBuffer
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TeatimeBuffer
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
moveendto MOVEEND_NEXT_TARGET
|
||||
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
||||
moveendcase MOVEEND_CLEAR_BITS
|
||||
@ -591,7 +591,7 @@ BattleScript_Teatimemotor:
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TeatimeBuffer
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TeatimeBuffer
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
moveendto MOVEEND_NEXT_TARGET
|
||||
jumpifnexttargetvalid BattleScript_TeatimeLoop
|
||||
moveendcase MOVEEND_CLEAR_BITS
|
||||
@ -670,7 +670,7 @@ BattleScript_EffectCourtChange::
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_BeakBlastSetUp::
|
||||
setbeakblast BS_ATTACKER
|
||||
setbeakblast
|
||||
flushtextbox
|
||||
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
||||
printstring STRINGID_HEATUPBEAK
|
||||
@ -891,7 +891,7 @@ BattleScript_EffectTarShot::
|
||||
attackcanceler
|
||||
jumpifsubstituteblocks BattleScript_FailedFromAtkString
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
cantarshotwork BS_TARGET, BattleScript_FailedFromAtkString
|
||||
cantarshotwork BattleScript_FailedFromAtkString
|
||||
attackstring
|
||||
ppreduce
|
||||
setstatchanger STAT_SPEED, 1, TRUE
|
||||
@ -3011,30 +3011,17 @@ BattleScript_CantMakeAsleep::
|
||||
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectAbsorb::
|
||||
call BattleScript_EffectHit_Ret
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_AbsorbHealBlock
|
||||
setdrainedhp
|
||||
manipulatedamage DMG_BIG_ROOT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
||||
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB
|
||||
goto BattleScript_AbsorbUpdateHp
|
||||
BattleScript_AbsorbLiquidOoze::
|
||||
BattleScript_EffectAbsorbLiquidOoze::
|
||||
call BattleScript_AbilityPopUpTarget
|
||||
manipulatedamage DMG_CHANGE_SIGN
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE
|
||||
BattleScript_AbsorbUpdateHp::
|
||||
goto BattleScript_EffectAbsorb
|
||||
|
||||
BattleScript_EffectAbsorb::
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
jumpifmovehadnoeffect BattleScript_AbsorbTryFainting
|
||||
printfromtable gAbsorbDrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_AbsorbTryFainting::
|
||||
tryfaintmon BS_ATTACKER
|
||||
BattleScript_AbsorbHealBlock::
|
||||
tryfaintmon BS_TARGET
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectExplosion::
|
||||
attackcanceler
|
||||
@ -3093,7 +3080,7 @@ BattleScript_DreamEaterWorked:
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd
|
||||
printstring STRINGID_PKMNDREAMEATEN
|
||||
printstring STRINGID_PKMNENERGYDRAINED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DreamEaterTryFaintEnd:
|
||||
tryfaintmon BS_TARGET
|
||||
@ -3276,6 +3263,7 @@ BattleScript_EffectRoar::
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifroarfails BattleScript_ButItFailed
|
||||
jumpifcommanderactive BattleScript_ButItFailed
|
||||
jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_ButItFailed
|
||||
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
||||
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
||||
@ -4702,6 +4690,9 @@ BattleScript_ButItFailed::
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_RestoreAttackerButItFailed:
|
||||
restoreattacker
|
||||
goto BattleScript_ButItFailed
|
||||
|
||||
BattleScript_NotAffected::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
@ -5956,7 +5947,7 @@ BattleScript_OverworldWeatherStarts::
|
||||
end3
|
||||
|
||||
BattleScript_OverworldTerrain::
|
||||
printfromtable gTerrainStringIds
|
||||
printfromtable gTerrainStartsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_BATTLER_0, B_ANIM_RESTORE_BG
|
||||
call BattleScript_ActivateTerrainEffects
|
||||
@ -6038,33 +6029,34 @@ BattleScript_SafeguardEnds::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_LeechSeedTurnDrain::
|
||||
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
copyword gBattleMoveDamage, gHpDealt
|
||||
jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_DRAIN
|
||||
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_LeechSeedHealBlock
|
||||
manipulatedamage DMG_BIG_ROOT
|
||||
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
|
||||
BattleScript_LeechSeedTurnPrintLiquidOoze::
|
||||
BattleScript_LeechSeedTurnDrainLiquidOoze::
|
||||
call BattleScript_LeechSeedTurnDrain
|
||||
manipulatedamage DMG_CHANGE_SIGN
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
call BattleScript_AbilityPopUp
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_OOZE
|
||||
BattleScript_LeechSeedTurnPrintAndUpdateHp::
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
goto BattleScript_LeechSeedTurnDrainGainHp
|
||||
|
||||
BattleScript_LeechSeedTurnDrainHealBlock::
|
||||
call BattleScript_LeechSeedTurnDrain
|
||||
end2
|
||||
|
||||
BattleScript_LeechSeedTurnDrainRecovery::
|
||||
call BattleScript_LeechSeedTurnDrain
|
||||
BattleScript_LeechSeedTurnDrainGainHp:
|
||||
manipulatedamage DMG_BIG_ROOT
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
printfromtable gLeechSeedStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_ATTACKER
|
||||
tryfaintmon BS_TARGET
|
||||
end2
|
||||
BattleScript_LeechSeedHealBlock:
|
||||
setword gBattleMoveDamage, 0
|
||||
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
|
||||
|
||||
BattleScript_LeechSeedTurnDrain:
|
||||
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
tryfaintmon BS_ATTACKER
|
||||
return
|
||||
|
||||
BattleScript_BideStoringEnergy::
|
||||
printstring STRINGID_PKMNSTORINGENERGY
|
||||
@ -6436,12 +6428,14 @@ BattleScript_SeedSowerActivates::
|
||||
return
|
||||
|
||||
BattleScript_AngerShellActivates::
|
||||
saveattacker
|
||||
copybyte gBattlerAttacker, gBattlerTarget
|
||||
call BattleScript_AbilityPopUp
|
||||
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
|
||||
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
|
||||
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
|
||||
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_AngerShellTryDef
|
||||
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_ButItFailed
|
||||
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_RestoreAttackerButItFailed
|
||||
BattleScript_AngerShellTryDef::
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
modifybattlerstatstage BS_ATTACKER, STAT_DEF, DECREASE, 1, BattleScript_AngerShellTrySpDef, ANIM_ON
|
||||
@ -6455,6 +6449,7 @@ BattleScript_AngerShellTrySpAtk:
|
||||
BattleScript_AngerShellTrySpeed:
|
||||
modifybattlerstatstage BS_ATTACKER, STAT_SPEED, INCREASE, 1, BattleScript_AngerShellRet, ANIM_ON
|
||||
BattleScript_AngerShellRet:
|
||||
restoreattacker
|
||||
return
|
||||
|
||||
BattleScript_WindPowerActivates::
|
||||
@ -6979,26 +6974,17 @@ BattleScript_WishMegaEvolution::
|
||||
goto BattleScript_MegaEvolutionAfterString
|
||||
|
||||
BattleScript_PrimalReversion::
|
||||
call BattleScript_PrimalReversionRet
|
||||
end3
|
||||
|
||||
BattleScript_PrimalReversionRestoreAttacker::
|
||||
call BattleScript_PrimalReversionRet
|
||||
copybyte gBattlerAttacker, sSAVED_BATTLER
|
||||
end3
|
||||
|
||||
BattleScript_PrimalReversionRet::
|
||||
flushtextbox
|
||||
setbyte gIsCriticalHit, 0
|
||||
handleprimalreversion BS_ATTACKER, 0
|
||||
handleprimalreversion BS_ATTACKER, 1
|
||||
playanimation BS_ATTACKER, B_ANIM_PRIMAL_REVERSION
|
||||
handleprimalreversion BS_SCRIPTING, 0
|
||||
handleprimalreversion BS_SCRIPTING, 1
|
||||
playanimation BS_SCRIPTING, B_ANIM_PRIMAL_REVERSION
|
||||
waitanimation
|
||||
handleprimalreversion BS_ATTACKER, 2
|
||||
handleprimalreversion BS_SCRIPTING, 2
|
||||
printstring STRINGID_PKMNREVERTEDTOPRIMAL
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
switchinabilities BS_ATTACKER
|
||||
return
|
||||
switchinabilities BS_SCRIPTING
|
||||
end3
|
||||
|
||||
BattleScript_UltraBurst::
|
||||
flushtextbox
|
||||
@ -8036,11 +8022,52 @@ BattleScript_CostarActivates::
|
||||
|
||||
BattleScript_ZeroToHeroActivates::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
call BattleScript_AbilityPopUpScripting
|
||||
printstring STRINGID_ZEROTOHEROTRANSFORMATION
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end3
|
||||
|
||||
BattleScript_CommanderActivates::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUpScripting
|
||||
printstring STRINGID_COMMANDERACTIVATES
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_CommanderAtkIncrease:
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPATK | BIT_SPDEF | BIT_SPEED, STAT_CHANGE_BY_TWO
|
||||
setstatchanger STAT_ATK, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderDefIncrease
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderDefIncrease
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_CommanderDefIncrease:
|
||||
setstatchanger STAT_DEF, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpAtkIncrease
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderSpAtkIncrease
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_CommanderSpAtkIncrease:
|
||||
setstatchanger STAT_SPATK, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpDefIncrease
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderSpDefIncrease
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_CommanderSpDefIncrease:
|
||||
setstatchanger STAT_SPDEF, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpeedIncrease
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderSpeedIncrease
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_CommanderSpeedIncrease:
|
||||
setstatchanger STAT_SPEED, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderEnd
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderEnd
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_CommanderEnd:
|
||||
restoreattacker
|
||||
end3
|
||||
|
||||
BattleScript_HospitalityActivates::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
@ -9042,8 +9069,6 @@ BattleScript_BerryConfuseHealEnd2_Anim:
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_FORXCOMMAYZ
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
seteffectprimary MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER
|
||||
removeitem BS_SCRIPTING
|
||||
end2
|
||||
@ -9060,8 +9085,6 @@ BattleScript_BerryConfuseHealRet_Anim:
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_FORXCOMMAYZ
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
seteffectprimary MOVE_EFFECT_CONFUSION | MOVE_EFFECT_CERTAIN
|
||||
removeitem BS_TARGET
|
||||
return
|
||||
@ -9558,6 +9581,14 @@ BattleScript_StickyBarbTransfer::
|
||||
removeitem BS_TARGET
|
||||
return
|
||||
|
||||
BattleScript_RedCardActivationNoSwitch::
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_REDCARDACTIVATE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
removeitem BS_SCRIPTING
|
||||
restoretarget
|
||||
return
|
||||
|
||||
BattleScript_RedCardActivates::
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_REDCARDACTIVATE
|
||||
|
||||
@ -25,6 +25,7 @@ gBattlescriptsForUsingItem::
|
||||
.4byte BattleScript_ItemRestoreHP @ EFFECT_ITEM_REVIVE
|
||||
.4byte BattleScript_ItemRestorePP @ EFFECT_ITEM_RESTORE_PP
|
||||
.4byte BattleScript_ItemIncreaseAllStats @ EFFECT_ITEM_INCREASE_ALL_STATS
|
||||
.4byte BattleScript_UsePokeFlute @ EFFECT_ITEM_USE_POKE_FLUTE
|
||||
|
||||
.align 2
|
||||
gBattlescriptsForSafariActions::
|
||||
@ -110,6 +111,25 @@ BattleScript_ItemIncreaseStat::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_UsePokeFlute::
|
||||
checkpokeflute
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 1, BattleScript_PokeFluteWakeUp
|
||||
printstring STRINGID_POKEFLUTECATCHY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_PokeFluteEnd
|
||||
|
||||
BattleScript_PokeFluteWakeUp::
|
||||
printstring STRINGID_POKEFLUTE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
fanfare MUS_RG_POKE_FLUTE
|
||||
waitfanfare
|
||||
printstring STRINGID_MONHEARINGFLUTEAWOKE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_PLAYER2
|
||||
waitstate
|
||||
BattleScript_PokeFluteEnd::
|
||||
finishaction
|
||||
|
||||
BattleScript_ItemSetMist::
|
||||
call BattleScript_UseItemMessage
|
||||
setmist
|
||||
|
||||
@ -42,6 +42,7 @@
|
||||
#include "constants/metatile_labels.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/party_menu.h"
|
||||
#include "constants/pokedex.h"
|
||||
#include "constants/pokemon.h"
|
||||
#include "constants/roulette.h"
|
||||
#include "constants/script_menu.h"
|
||||
@ -587,6 +588,37 @@ EventScript_WhiteOut::
|
||||
goto EventScript_ResetMrBriney
|
||||
end
|
||||
|
||||
EventScript_AfterWhiteOutHeal::
|
||||
lockall
|
||||
msgbox gText_FirstShouldRestoreMonsHealth
|
||||
call EventScript_PkmnCenterNurse_TakeAndHealPkmn
|
||||
call_if_unset FLAG_DEFEATED_RUSTBORO_GYM, EventScript_AfterWhiteOutHealMsgPreRoxanne
|
||||
call_if_set FLAG_DEFEATED_RUSTBORO_GYM, EventScript_AfterWhiteOutHealMsg
|
||||
applymovement VAR_LAST_TALKED, Movement_PkmnCenterNurse_Bow
|
||||
waitmovement 0
|
||||
fadedefaultbgm
|
||||
releaseall
|
||||
end
|
||||
|
||||
EventScript_AfterWhiteOutHealMsgPreRoxanne::
|
||||
msgbox gText_MonsHealedShouldBuyPotions
|
||||
return
|
||||
|
||||
EventScript_AfterWhiteOutHealMsg::
|
||||
msgbox gText_MonsHealed
|
||||
return
|
||||
|
||||
EventScript_AfterWhiteOutMomHeal::
|
||||
lockall
|
||||
applymovement LOCALID_MOM, Common_Movement_WalkInPlaceFasterDown
|
||||
waitmovement 0
|
||||
msgbox gText_HadQuiteAnExperienceTakeRest
|
||||
call Common_EventScript_OutOfCenterPartyHeal
|
||||
msgbox gText_MomExplainHPGetPotions
|
||||
fadedefaultbgm
|
||||
releaseall
|
||||
end
|
||||
|
||||
EventScript_ResetMrBriney::
|
||||
goto_if_eq VAR_BRINEY_LOCATION, 1, EventScript_MoveMrBrineyToHouse
|
||||
goto_if_eq VAR_BRINEY_LOCATION, 2, EventScript_MoveMrBrineyToDewford
|
||||
@ -693,6 +725,11 @@ EventScript_BackupMrBrineyLocation::
|
||||
.include "data/scripts/rival_graphics.inc"
|
||||
.include "data/scripts/set_gym_trainers.inc"
|
||||
|
||||
EventScript_CancelMessageBox::
|
||||
special UseBlankMessageToCancelPokemonPic
|
||||
release
|
||||
end
|
||||
|
||||
Common_EventScript_ShowBagIsFull::
|
||||
msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT
|
||||
release
|
||||
@ -887,6 +924,48 @@ gText_PlayerWhitedOut::
|
||||
.string "{PLAYER} is out of usable\n"
|
||||
.string "POKéMON!\p{PLAYER} whited out!$"
|
||||
|
||||
gText_FirstShouldRestoreMonsHealth::
|
||||
.string "First, you should restore your\n"
|
||||
.string "POKéMON to full health.$"
|
||||
|
||||
gText_MonsHealedShouldBuyPotions::
|
||||
.string "Your POKéMON have been healed\n"
|
||||
.string "to perfect health.\p"
|
||||
.string "If your POKéMON's energy, HP,\n"
|
||||
.string "is down, please come see us.\p"
|
||||
.string "If you're planning to go far in the\n"
|
||||
.string "field, you should buy some POTIONS\l"
|
||||
.string "at the POKéMON MART.\p"
|
||||
.string "We hope you excel!$"
|
||||
|
||||
gText_MonsHealed::
|
||||
.string "Your POKéMON have been healed\n"
|
||||
.string "to perfect health.\p"
|
||||
.string "We hope you excel!$"
|
||||
|
||||
gText_HadQuiteAnExperienceTakeRest::
|
||||
.string "MOM: {PLAYER}!\n"
|
||||
.string "Welcome home.\p"
|
||||
.string "It sounds like you had quite\n"
|
||||
.string "an experience.\p"
|
||||
.string "Maybe you should take a quick\n"
|
||||
.string "rest.$"
|
||||
|
||||
gText_MomExplainHPGetPotions::
|
||||
.string "MOM: Oh, good! You and your\n"
|
||||
.string "POKéMON are looking great.\p"
|
||||
.string "I just heard from PROF. BIRCH.\p"
|
||||
.string "He said that POKéMON's energy is\n"
|
||||
.string "measured in HP.\p"
|
||||
.string "If your POKéMON lose their HP,\n"
|
||||
.string "you can restore them at any\l"
|
||||
.string "POKéMON CENTER.\p"
|
||||
.string "If you're going to travel far away,\n"
|
||||
.string "the smart TRAINER stocks up on\l"
|
||||
.string "POTIONS at the POKéMON MART.\p"
|
||||
.string "Make me proud, honey!\p"
|
||||
.string "Take care!$"
|
||||
|
||||
gText_RegisteredTrainerinPokeNav::
|
||||
.string "Registered {STR_VAR_1} {STR_VAR_2}\n"
|
||||
.string "in the POKéNAV.$"
|
||||
@ -1030,7 +1109,6 @@ EventScript_VsSeekerChargingDone::
|
||||
.include "data/text/contest_strings.inc"
|
||||
.include "data/text/contest_link.inc"
|
||||
.include "data/text/contest_painting.inc"
|
||||
.include "data/text/trick_house_mechadolls.inc"
|
||||
.include "data/scripts/tv.inc"
|
||||
.include "data/text/tv.inc"
|
||||
.include "data/scripts/interview.inc"
|
||||
@ -1071,6 +1149,5 @@ EventScript_VsSeekerChargingDone::
|
||||
.include "data/scripts/trainer_hill.inc"
|
||||
.include "data/scripts/test_signpost.inc"
|
||||
.include "data/scripts/follower.inc"
|
||||
.include "data/text/frontier_brain.inc"
|
||||
.include "data/text/save.inc"
|
||||
.include "data/text/birch_speech.inc"
|
||||
|
||||
@ -111,6 +111,7 @@ MtChimney_EventScript_LavaCookieLady::
|
||||
msgbox MtChimney_Text_ThankYouDear, MSGBOX_DEFAULT
|
||||
checkitemspace ITEM_LAVA_COOKIE
|
||||
call_if_eq VAR_RESULT, TRUE, MtChimney_EventScript_RemoveMoney
|
||||
.if OW_SHOW_ITEM_DESCRIPTIONS == OW_ITEM_DESCRIPTIONS_OFF
|
||||
giveitem ITEM_LAVA_COOKIE
|
||||
goto_if_eq VAR_RESULT, FALSE, MtChimney_EventScript_BagIsFull
|
||||
hidemoneybox
|
||||
@ -122,6 +123,19 @@ MtChimney_EventScript_BagIsFull::
|
||||
hidemoneybox
|
||||
release
|
||||
end
|
||||
.else
|
||||
hidemoneybox
|
||||
giveitem ITEM_LAVA_COOKIE
|
||||
goto_if_eq VAR_RESULT, FALSE, MtChimney_EventScript_BagIsFull
|
||||
release
|
||||
end
|
||||
|
||||
MtChimney_EventScript_BagIsFull::
|
||||
msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
.endif @ OW_SHOW_ITEM_DESCRIPTIONS
|
||||
|
||||
|
||||
MtChimney_EventScript_RemoveMoney::
|
||||
removemoney 200
|
||||
|
||||
@ -52,8 +52,13 @@ Route109_SeashoreHouse_EventScript_BuySodaPop::
|
||||
msgbox Route109_SeashoreHouse_Text_HereYouGo, MSGBOX_DEFAULT
|
||||
removemoney 300
|
||||
updatemoneybox
|
||||
.if OW_SHOW_ITEM_DESCRIPTIONS != OW_ITEM_DESCRIPTIONS_OFF
|
||||
hidemoneybox
|
||||
giveitem ITEM_SODA_POP
|
||||
.else
|
||||
giveitem ITEM_SODA_POP
|
||||
hidemoneybox
|
||||
.endif
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@ -176,6 +176,8 @@ BerryTree_EventScript_PickBerry::
|
||||
special IncrementDailyPickedBerries
|
||||
special ObjectEventInteractionRemoveBerryTree
|
||||
message BerryTree_Text_PickedTheBerry
|
||||
delay 10
|
||||
showberrydescription
|
||||
playfanfare MUS_OBTAIN_BERRY
|
||||
waitmessage
|
||||
waitfanfare
|
||||
@ -183,6 +185,7 @@ BerryTree_EventScript_PickBerry::
|
||||
message BerryTree_Text_PutAwayBerry
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
hideitemdescription
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@ -1258,7 +1258,11 @@ EventScript_CloseMossdeepGameCornerBarrier::
|
||||
|
||||
CableClub_OnResume:
|
||||
special InitUnionRoom
|
||||
.if OW_FLAG_MOVE_UNION_ROOM_CHECK != 0
|
||||
return
|
||||
.else
|
||||
end
|
||||
.endif
|
||||
|
||||
MossdeepCity_GameCorner_1F_EventScript_InfoMan2::
|
||||
lock
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
.if DEBUG_OVERWORLD_MENU == TRUE
|
||||
Debug_MessageEnd:
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
@ -448,5 +447,3 @@ Debug_EventScript_EWRAMCounters::
|
||||
Debug_EventScript_EWRAMCounters_Text::
|
||||
.string "Follower Steps: {STR_VAR_1}.\n"
|
||||
.string "Fishing Chain: {STR_VAR_2}.$"
|
||||
|
||||
.endif
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
.set AMOUNT, VAR_0x8001
|
||||
|
||||
Std_ObtainItem::
|
||||
copyvar VAR_0x8006, ITEMID
|
||||
additem ITEMID, AMOUNT
|
||||
copyvar VAR_0x8007, VAR_RESULT
|
||||
call EventScript_ObtainItemMessage
|
||||
@ -58,8 +59,11 @@ EventScript_ObtainedItem::
|
||||
EventScript_ObtainedItemMessage:
|
||||
message gText_ObtainedTheItem
|
||||
EventScript_ContinueObtainedItem:
|
||||
delay 10
|
||||
showitemdescription
|
||||
waitfanfare
|
||||
msgbox gText_PutItemInPocket, MSGBOX_DEFAULT
|
||||
hideitemdescription
|
||||
setvar VAR_RESULT, TRUE
|
||||
return
|
||||
|
||||
@ -103,6 +107,7 @@ Std_FindItem::
|
||||
lock
|
||||
faceplayer
|
||||
waitse
|
||||
copyvar VAR_0x8006, ITEMID
|
||||
copyvar VAR_0x8004, ITEMID
|
||||
copyvar VAR_0x8005, AMOUNT
|
||||
checkitemspace ITEMID, AMOUNT
|
||||
@ -118,20 +123,25 @@ Std_FindItem::
|
||||
EventScript_PickUpItem::
|
||||
removeobject VAR_LAST_TALKED
|
||||
additem VAR_0x8004, VAR_0x8005
|
||||
copyvar VAR_0x8006 VAR_0x8004
|
||||
specialvar VAR_RESULT, BufferTMHMMoveName
|
||||
copyvar VAR_0x8008, VAR_RESULT
|
||||
call_if_eq VAR_0x8008, TRUE, EventScript_FoundTMHM
|
||||
call_if_eq VAR_0x8008, FALSE, EventScript_FoundItem
|
||||
delay 10
|
||||
showitemdescription
|
||||
waitfanfare
|
||||
waitmessage
|
||||
bufferitemnameplural STR_VAR_2, VAR_0x8004, VAR_0x8005
|
||||
pyramid_inchallenge
|
||||
goto_if_eq VAR_RESULT, TRUE, EventScript_PutBattlePyramidItemInBag
|
||||
msgbox gText_PutItemInPocket, MSGBOX_DEFAULT
|
||||
hideitemdescription
|
||||
return
|
||||
|
||||
EventScript_PutBattlePyramidItemInBag::
|
||||
msgbox gText_PlayerPutItemInBag, MSGBOX_DEFAULT
|
||||
hideitemdescription
|
||||
return
|
||||
|
||||
EventScript_FoundTMHM::
|
||||
@ -165,6 +175,7 @@ EventScript_NoRoomToPickUpItem::
|
||||
EventScript_HiddenItemScript::
|
||||
lockall
|
||||
waitse
|
||||
copyvar VAR_0x8006, VAR_0x8005
|
||||
additem VAR_0x8005
|
||||
copyvar VAR_0x8007, VAR_RESULT
|
||||
bufferitemnameplural STR_VAR_2, VAR_0x8005, 1
|
||||
@ -194,11 +205,14 @@ EventScript_FoundHiddenItem::
|
||||
end
|
||||
|
||||
EventScript_PutHiddenItemInPocket::
|
||||
delay 10
|
||||
showitemdescription
|
||||
waitmessage
|
||||
waitfanfare
|
||||
bufferitemnameplural STR_VAR_2, VAR_0x8004, 1
|
||||
copyvar VAR_0x8004, VAR_0x8008
|
||||
msgbox gText_PutItemInPocket, MSGBOX_DEFAULT
|
||||
hideitemdescription
|
||||
special TryPutTreasureInvestigatorsOnAir
|
||||
special SetHiddenItemFlag
|
||||
releaseall
|
||||
|
||||
@ -36,6 +36,11 @@ EventScript_PkmnCenterNurse_TakeAndHealPkmn::
|
||||
applymovement VAR_0x800B, Movement_PkmnCenterNurse_Turn @ Changed from Common_Movement_WalkInPlaceFasterLeft to force the follower to enter their Poké Ball
|
||||
waitmovement 0
|
||||
dofieldeffect FLDEFF_POKECENTER_HEAL
|
||||
.if OW_UNION_DISABLE_CHECK == FALSE && OW_FLAG_MOVE_UNION_ROOM_CHECK != 0
|
||||
setflag OW_FLAG_MOVE_UNION_ROOM_CHECK
|
||||
call CableClub_OnResume
|
||||
clearflag OW_FLAG_MOVE_UNION_ROOM_CHECK
|
||||
.endif
|
||||
waitfieldeffect FLDEFF_POKECENTER_HEAL
|
||||
applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterDown
|
||||
waitmovement 0
|
||||
|
||||
@ -553,3 +553,4 @@ gSpecials::
|
||||
def_special Script_GetChosenMonDefensiveEVs
|
||||
def_special Script_GetChosenMonOffensiveIVs
|
||||
def_special Script_GetChosenMonDefensiveIVs
|
||||
def_special UseBlankMessageToCancelPokemonPic
|
||||
|
||||
@ -1,108 +0,0 @@
|
||||
@ Battle Tower
|
||||
gText_AnabelWonSilver::
|
||||
.string "It's very disappointing…$"
|
||||
|
||||
gText_AnabelDefeatSilver::
|
||||
.string "Okay, I understand…$"
|
||||
|
||||
gText_AnabelWonGold::
|
||||
.string "I'm terribly sorry…$"
|
||||
|
||||
gText_AnabelDefeatGold::
|
||||
.string "Thank you…$"
|
||||
|
||||
@ Battle Dome
|
||||
gText_TuckerWonSilver::
|
||||
.string "Ahahaha! Aren't you embarrassed?\n"
|
||||
.string "Everyone's watching!$"
|
||||
|
||||
gText_TuckerDefeatSilver::
|
||||
.string "Grr…\n"
|
||||
.string "What the…$"
|
||||
|
||||
gText_TuckerWonGold::
|
||||
.string "My DOME ACE title isn't just for show!$"
|
||||
|
||||
gText_TuckerDefeatGold::
|
||||
.string "Ahahaha!\n"
|
||||
.string "You're inspiring!$"
|
||||
|
||||
@ Battle Factory
|
||||
gText_NolandWonSilver::
|
||||
.string "Way to work!\n"
|
||||
.string "That was a good lesson, eh?$"
|
||||
|
||||
gText_NolandDefeatSilver::
|
||||
.string "Good job!\n"
|
||||
.string "You know what you're doing!$"
|
||||
|
||||
gText_NolandWonGold::
|
||||
.string "Hey, hey, hey!\n"
|
||||
.string "You're finished already?$"
|
||||
|
||||
gText_NolandDefeatGold::
|
||||
.string "What happened here?$"
|
||||
|
||||
@ Battle Pike
|
||||
gText_LucyWonSilver::
|
||||
.string "Humph…$"
|
||||
|
||||
gText_LucyDefeatSilver::
|
||||
.string "Urk…$"
|
||||
|
||||
gText_LucyWonGold::
|
||||
.string "Hah!$"
|
||||
|
||||
gText_LucyDefeatGold::
|
||||
.string "Darn!$"
|
||||
|
||||
@ Battle Arena
|
||||
gText_GretaWonSilver::
|
||||
.string "Oh, come on!\n"
|
||||
.string "You have to try harder than that!$"
|
||||
|
||||
gText_GretaDefeatSilver::
|
||||
.string "No way!\n"
|
||||
.string "Good job!$"
|
||||
|
||||
gText_GretaWonGold::
|
||||
.string "Heheh!\n"
|
||||
.string "What did you expect?$"
|
||||
|
||||
gText_GretaDefeatGold::
|
||||
.string "Huh?\n"
|
||||
.string "Are you serious?!$"
|
||||
|
||||
@ Battle Palace
|
||||
gText_SpenserWonSilver::
|
||||
.string "Your POKéMON are wimpy because\n"
|
||||
.string "you're wimpy as a TRAINER!$"
|
||||
|
||||
gText_SpenserDefeatSilver::
|
||||
.string "Ah…\n"
|
||||
.string "Now this is something else…$"
|
||||
|
||||
gText_SpenserWonGold::
|
||||
.string "Gwahahaha!\n"
|
||||
.string "My brethren, we have nothing to fear!$"
|
||||
|
||||
gText_SpenserDefeatGold::
|
||||
.string "Gwah!\n"
|
||||
.string "Hahahaha!$"
|
||||
|
||||
@ Battle Pyramid
|
||||
gText_BrandonWonSilver::
|
||||
.string "Hey! What's wrong with you!\n"
|
||||
.string "Let's see some effort! Get up!$"
|
||||
|
||||
gText_BrandonDefeatSilver::
|
||||
.string "That's it! You've done great!\n"
|
||||
.string "You've worked hard for this!$"
|
||||
|
||||
gText_BrandonWonGold::
|
||||
.string "Hey! Don't you give up now!\n"
|
||||
.string "Get up! Don't lose faith in yourself!$"
|
||||
|
||||
gText_BrandonDefeatGold::
|
||||
.string "That's it! You've done it!\n"
|
||||
.string "You kept working for this!$"
|
||||
@ -1,134 +0,0 @@
|
||||
gTrickHouse_Mechadoll_Oddish::
|
||||
.string "ODDISH$"
|
||||
|
||||
gTrickHouse_Mechadoll_Poochyena::
|
||||
.string "POOCHYENA$"
|
||||
|
||||
gTrickHouse_Mechadoll_Taillow::
|
||||
.string "TAILLOW$"
|
||||
|
||||
gTrickHouse_Mechadoll_Azurill::
|
||||
.string "AZURILL$"
|
||||
|
||||
gTrickHouse_Mechadoll_Lotad::
|
||||
.string "LOTAD$"
|
||||
|
||||
gTrickHouse_Mechadoll_Wingull::
|
||||
.string "WINGULL$"
|
||||
|
||||
gTrickHouse_Mechadoll_Dustox::
|
||||
.string "DUSTOX$"
|
||||
|
||||
gTrickHouse_Mechadoll_Zubat::
|
||||
.string "ZUBAT$"
|
||||
|
||||
gTrickHouse_Mechadoll_Nincada::
|
||||
.string "NINCADA$"
|
||||
|
||||
gTrickHouse_Mechadoll_Ralts::
|
||||
.string "RALTS$"
|
||||
|
||||
gTrickHouse_Mechadoll_Zigzagoon::
|
||||
.string "ZIGZAGOON$"
|
||||
|
||||
gTrickHouse_Mechadoll_Slakoth::
|
||||
.string "SLAKOTH$"
|
||||
|
||||
gTrickHouse_Mechadoll_Poochyena2::
|
||||
.string "POOCHYENA$"
|
||||
|
||||
gTrickHouse_Mechadoll_Shroomish::
|
||||
.string "SHROOMISH$"
|
||||
|
||||
gTrickHouse_Mechadoll_Zigzagoon2::
|
||||
.string "ZIGZAGOON$"
|
||||
|
||||
gTrickHouse_Mechadoll_Poochyena3::
|
||||
.string "POOCHYENA$"
|
||||
|
||||
gTrickHouse_Mechadoll_Zubat2::
|
||||
.string "ZUBAT$"
|
||||
|
||||
gTrickHouse_Mechadoll_Carvanha::
|
||||
.string "CARVANHA$"
|
||||
|
||||
gTrickHouse_Mechadoll_BurnHeal::
|
||||
.string "BURN HEAL$"
|
||||
|
||||
gTrickHouse_Mechadoll_HarborMail::
|
||||
.string "HARBOR MAIL$"
|
||||
|
||||
gTrickHouse_Mechadoll_SamePrice::
|
||||
.string "Same price$"
|
||||
|
||||
gTrickHouse_Mechadoll_60Yen::
|
||||
.string "¥60$"
|
||||
|
||||
gTrickHouse_Mechadoll_55Yen::
|
||||
.string "¥55$"
|
||||
|
||||
gTrickHouse_Mechadoll_Nothing::
|
||||
.string "Nothing$"
|
||||
|
||||
gTrickHouse_Mechadoll_CostMore::
|
||||
.string "They will cost more.$"
|
||||
|
||||
gTrickHouse_Mechadoll_CostLess::
|
||||
.string "They will cost less.$"
|
||||
|
||||
gTrickHouse_Mechadoll_SamePrice2::
|
||||
.string "Same price$"
|
||||
|
||||
gTrickHouse_Mechadoll_Male::
|
||||
.string "Male$"
|
||||
|
||||
gTrickHouse_Mechadoll_Female::
|
||||
.string "Female$"
|
||||
|
||||
gTrickHouse_Mechadoll_Neither::
|
||||
.string "Neither$"
|
||||
|
||||
gTrickHouse_Mechadoll_ElderlyMen::
|
||||
.string "Elderly men$"
|
||||
|
||||
gTrickHouse_Mechadoll_ElderlyLadies::
|
||||
.string "Elderly ladies$"
|
||||
|
||||
gTrickHouse_Mechadoll_SameNumber::
|
||||
.string "Same number$"
|
||||
|
||||
gTrickHouse_Mechadoll_None::
|
||||
.string "None$"
|
||||
|
||||
gTrickHouse_Mechadoll_One::
|
||||
.string "1$"
|
||||
|
||||
gTrickHouse_Mechadoll_Two::
|
||||
.string "2$"
|
||||
|
||||
gTrickHouse_Mechadoll_Two2::
|
||||
.string "2$"
|
||||
|
||||
gTrickHouse_Mechadoll_Three::
|
||||
.string "3$"
|
||||
|
||||
gTrickHouse_Mechadoll_Four::
|
||||
.string "4$"
|
||||
|
||||
gTrickHouse_Mechadoll_Six::
|
||||
.string "6$"
|
||||
|
||||
gTrickHouse_Mechadoll_Seven::
|
||||
.string "7$"
|
||||
|
||||
gTrickHouse_Mechadoll_Eight::
|
||||
.string "8$"
|
||||
|
||||
gTrickHouse_Mechadoll_Six2::
|
||||
.string "6$"
|
||||
|
||||
gTrickHouse_Mechadoll_Seven2::
|
||||
.string "7$"
|
||||
|
||||
gTrickHouse_Mechadoll_Eight2::
|
||||
.string "8$"
|
||||
21
dev_scripts/competitive_defines/rename_subfolders.py
Normal file
@ -0,0 +1,21 @@
|
||||
import glob
|
||||
import re
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def rename_subdirs(rootDir, old, new):
|
||||
for root, dirs, files in os.walk(rootDir):
|
||||
for name in files:
|
||||
originalName = os.path.join(root, name)
|
||||
if root.endswith(old) and os.path.isfile(originalName):
|
||||
newName = originalName.replace(old + '/', new + '/')
|
||||
print(originalName + " -> " + newName)
|
||||
if (not os.path.isdir(root.replace(old, '') + new)):
|
||||
os.mkdir(root.replace(old, '') + new)
|
||||
os.rename(originalName, newName)
|
||||
|
||||
rename_subdirs("graphics/pokemon", '/alolan', "/alola")
|
||||
rename_subdirs("graphics/pokemon", '/galarian', "/galar")
|
||||
rename_subdirs("graphics/pokemon", '/hisuian', "/hisui")
|
||||
rename_subdirs("graphics/pokemon", '/gigantamax', "/gmax")
|
||||
21
dev_scripts/gba_gfx/delete_files_of_same_name.py
Normal file
@ -0,0 +1,21 @@
|
||||
import glob
|
||||
import re
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
# THIS IS A TEMPORARY SCRIPT MADE TO DELETE FILES WITH THE "footprint.png" NAME
|
||||
# FROM THE "graphics/pokemon_old" folder, AS MOST OF THEM ALREADY EXISTED IN "graphics/pokemon".
|
||||
#
|
||||
# I'M SAVING IT HERE IN CASE IT'S NEEDED SOMEWHERE IN THE FUTURE, THOUGH TWEAKING MIGHT BE NEEDED.
|
||||
# - AsparagusEduardo
|
||||
|
||||
def rename_files(dir, filename):
|
||||
for root, dirs, files in os.walk(dir):
|
||||
for name in files:
|
||||
if name.endswith(filename):
|
||||
fullName = os.path.join(root, name)
|
||||
print(fullName + " deleted.")
|
||||
os.remove(fullName)
|
||||
|
||||
rename_files("graphics/pokemon_old", 'footprint.png')
|
||||
22
dev_scripts/gba_gfx/rename_files_of_same_name.py
Normal file
@ -0,0 +1,22 @@
|
||||
import glob
|
||||
import re
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def rename_files(dirOld, dirNew, old, new):
|
||||
for root, dirs, files in os.walk(dirOld):
|
||||
for name in files:
|
||||
if name.endswith(old):
|
||||
originalName = os.path.join(root, name)
|
||||
newName = originalName.replace(old, new)
|
||||
newName = newName.replace(dirOld, dirNew)
|
||||
print(originalName + " -> " + newName)
|
||||
os.rename(originalName, newName)
|
||||
|
||||
rename_files("graphics/pokemon_old", "graphics/pokemon", 'anim_front.png', "anim_front_gba.png")
|
||||
rename_files("graphics/pokemon_old", "graphics/pokemon", 'normal.pal', "normal_gba.pal")
|
||||
rename_files("graphics/pokemon_old", "graphics/pokemon", 'shiny.pal', "shiny_gba.pal")
|
||||
rename_files("graphics/pokemon_old", "graphics/pokemon", 'back.png', "back_gba.png")
|
||||
rename_files("graphics/pokemon_old", "graphics/pokemon", 'icon.png', "icon_gba.png")
|
||||
rename_files("graphics/pokemon_old", "graphics/pokemon", 'footprint.png', "footprint_gba.png")
|
||||
300
docs/mmbn_style_names.md
Normal file
@ -0,0 +1,300 @@
|
||||
# Megaman Battle Network Style Names
|
||||
|
||||
Prior to 1.10, names in expansion that were too long for the game's UIs were truncated to fit using the naming conventions from the [Megaman Battle Network](<https://www.therockmanexezone.com/wiki/The_Rockman_EXE_Zone_Wiki>) series.
|
||||
|
||||
These were removed as part of https://github.com/rh-hideout/pokeemerald-expansion/pull/5240. They are stored here for users that may want to refer back to them or restore them.
|
||||
|
||||
# Table
|
||||
|
||||
Attribute | MMBN | Official
|
||||
-- | -- | --
|
||||
Item | PewtrCrnches | Pewter Crunchies
|
||||
Item | RageCandyBar | Rage Candy Bar
|
||||
Item | LumioseGlete | Lumiose Galette
|
||||
Item | ShalourSable | Shalour Sable
|
||||
Item | HealthFeather | Health Feather
|
||||
Item | MuscleFeather | Muscle Feather
|
||||
Item | ResistFeather | Resist Feather
|
||||
Item | GeniusFeather | Genius Feather
|
||||
Item | CleverFeather | Clever Feather
|
||||
Item | SwiftFeather | Swift Feather
|
||||
Item | AbilityCapsle | Ability Capsule
|
||||
Item | AbilityPatch | Ability Patch
|
||||
Item | AbilityPatches | Ability Patches
|
||||
Item | Exp.Candy XS | Exp. Candy XS
|
||||
Item | Exp.Candies XS | Exp. Candies XS
|
||||
Item | Exp.Candy S | Exp. Candy S
|
||||
Item | Exp.Candies S | Exp. Candies S
|
||||
Item | Exp.Candy M | Exp. Candy M
|
||||
Item | Exp.Candies M | Exp. Candies M
|
||||
Item | Exp.Candy L | Exp. Candy L
|
||||
Item | Exp.Candies L | Exp. Candies L
|
||||
Item | Exp.Candy XL | Exp. Candy XL
|
||||
Item | Exp.Candies XL | Exp. Candies XL
|
||||
Item | DynamaxCandy | Dynamax Candy
|
||||
Item | DynamaxCandies | Dynamax Candies
|
||||
Item | MaxMushrooms | Max Mushrooms
|
||||
Item | GoldBottlCap | Gold Bottle Cap
|
||||
Item | PrettyFeather | Pretty Feather
|
||||
Item | StrngeSouvnr | Strange Souvenir
|
||||
Item | FosslzedBird | Fossilized Bird
|
||||
Item | FosslzedFish | Fossilized Fish
|
||||
Item | FosslzedFishes | Fossilized Fishes
|
||||
Item | FosslzedDrke | Fossilized Drake
|
||||
Item | FosslzedDino | Fossilized Dino
|
||||
Item | SurprseMulch | Surprise Mulch
|
||||
Item | YellwApricorn | Yellow Apricorn
|
||||
Item | GreenApricorn | Green Apricorn
|
||||
Item | WhiteApricorn | White Apricorn
|
||||
Item | BlackApricorn | Black Apricorn
|
||||
Item | WishingPiece | Wishing Piece
|
||||
Item | GalaricaTwig | Galarica Twig
|
||||
Item | GalaricaCuff | Galarica Cuff
|
||||
Item | GalrcaWreath | Galarica Wreath
|
||||
Item | GalrcaWreathes | Galarica Wreathes
|
||||
Item | StrwbrySweet | Strawberry Sweet
|
||||
Item | ElectrcMemory | Electric Memory
|
||||
Item | ElectrcMemories | Electric Memories
|
||||
Item | FightngMemory | Fighting Memory
|
||||
Item | FightngMemories | Fighting Memories
|
||||
Item | PsychicMemory | Psychic Memory
|
||||
Item | PsychicMemories | Psychic Memories
|
||||
Item | RustedSword | Rusted Sword
|
||||
Item | RustedShield | Rusted Shield
|
||||
Item | CharizarditeX | Charizardite X
|
||||
Item | CharizarditeY | Charizardite Y
|
||||
Item | U-Necrozium Z | Ultranecrozium Z
|
||||
Item | DeepSeaScale | Deep Sea Scale
|
||||
Item | DeepSeaTooth | Deep Sea Tooth
|
||||
Item | Never-MeltIce | Never-Melt Ice
|
||||
Item | WeaknssPolicy | Weakness Policy
|
||||
Item | WeaknssPolicies | Weakness Policies
|
||||
Item | SafetyGoggles | Safety Goggles
|
||||
Item | AdrenalineOrb | Adrenaline Orb
|
||||
Item | TerainExtendr | Terrain Extender
|
||||
Item | ProtectvePads | Protective Pads
|
||||
Item | Heavy-DtyBts | Heavy-Duty Boots
|
||||
Item | BlundrPolicy | Blunder Policy
|
||||
Item | BlundrPolicies | Blunder Policies
|
||||
Item | UtltyUmbrlla | Utility Umbrella
|
||||
Item | CatchngCharm | Catching Charm
|
||||
Item | RotomCatalog | Rotom Catalog
|
||||
Item | ReinsOfUnity | Reins of Unity
|
||||
Item | Dowsing MCHN | Dowsing Machine
|
||||
Item | AbilityShield | Ability Shield
|
||||
Item | PunchingGlove | Punching Glove
|
||||
Item | AuspciousArmr | Auspicious Armor
|
||||
Item | BoosterEnergy | Booster Energy
|
||||
Item | BoosterEnergies | Booster Energies
|
||||
Item | BigBmbooShoot | Big Bamboo Shoot
|
||||
Item | GimighoulCoin | Gimmighoul Coin
|
||||
Item | Leader'sCrest | Leader's Crest
|
||||
Item | MaliciousArmr | Malicious Armor
|
||||
Item | ScrllOfDrknss | Scroll of Darkness
|
||||
Item | ScrllsOfDrknss | Scrolls of Darkness
|
||||
Item | ScrollOfWatrs | Scroll of Waters
|
||||
Item | ScrollsOfWatrs | Scrolls of Waters
|
||||
Item | TinyBmbooShot | Tiny Bamboo Shoot
|
||||
Item | Bug TeraShard | Bug Tera Shard
|
||||
Item | DarkTeraShard | Dark Tera Shard
|
||||
Item | DragnTeraShrd | Dragon Tera Shard
|
||||
Item | EltrcTeraShrd | Electric Tera Shard
|
||||
Item | FairyTeraShrd | Fairy Tera Shard
|
||||
Item | FghtngTerShrd | Fighting Tera Shard
|
||||
Item | FireTeraShard | Fire Tera Shard
|
||||
Item | FlyngTeraShrd | Flying Tera Shard
|
||||
Item | GhostTeraShrd | Ghost Tera Shard
|
||||
Item | GrassTeraShrd | Grass Tera Shard
|
||||
Item | GrondTeraShrd | Ground Tera Shard
|
||||
Item | Ice TeraShard | Ice Tera Shard
|
||||
Item | NormlTeraShrd | Normal Tera Shard
|
||||
Item | PoisnTeraShrd | Poison Tera Shard
|
||||
Item | PschcTeraShrd | Psychic Tera Shard
|
||||
Item | RockTeraShard | Rock Tera Shard
|
||||
Item | SteelTeraShrd | Steel Tera Shard
|
||||
Item | WaterTeraShrd | Water Tera Shard
|
||||
Item | AdamantCrystl | Adamant Crystal
|
||||
Item | LustrousGlobe | Lustrous Globe
|
||||
Item | BlackAugurite | Black Augurite
|
||||
Item | UnrmkblTeacup | Unremarkable Teacup
|
||||
Item | MstrpceTeacup | Masterpiece Teacup
|
||||
Item | CornrstneMask | Cornerstone Mask
|
||||
Item | WellsprngMask | Wellspring Mask
|
||||
Item | HrthflameMask | Hearthflame Mask
|
||||
Item | FrshStrtMochi | Fresh Start Mochi
|
||||
Item | GlmmringCharm | Glimmering Charm
|
||||
Item | StllrTeraShrd | Stellar Tera Shard
|
||||
Item | JublifeMuffin | Jubilife Muffin
|
||||
Item | AuxPowerguard | Aux Powerguard
|
||||
Item | ChoiceDumplng | Choice Dumpling
|
||||
Item | 2xSpicedRadsh | Twice-Spiced Radish
|
||||
Move | ThunderPunch | Thunder Punch
|
||||
Move | PoisonPowder | Poison Powder
|
||||
Move | ThunderShock | Thunder Shock
|
||||
Move | SelfDestruct | Self-Destruct
|
||||
Move | HighJumpKick | High Jump Kick
|
||||
Move | DynamicPunch | Dynamic Punch
|
||||
Move | DragonBreath | Dragon Breath
|
||||
Move | ExtremeSpeed | Extreme Speed
|
||||
Move | AncientPower | Ancient Power
|
||||
Move | SmellngSalts | Smelling Salts
|
||||
Move | FeatherDance | Feather Dance
|
||||
Move | GrassWhistle | Grass Whistle
|
||||
Move | PhantomForce | Phantom Force
|
||||
Move | TrickOrTreat | Trick-or-Treat
|
||||
Move | ParabolcChrg | Parabolic Charge
|
||||
Move | Forest'sCurs | Forest's Curse
|
||||
Move | PetalBlizzrd | Petal Blizzard
|
||||
Move | DisrmngVoice | Disarming Voice
|
||||
Move | DrainingKiss | Draining Kiss
|
||||
Move | CraftyShield | Crafty Shield
|
||||
Move | FlowerShield | Flower Shield
|
||||
Move | GrssyTerrain | Grassy Terrain
|
||||
Move | MistyTerrain | Misty Terrain
|
||||
Move | King'sShield | King's Shield
|
||||
Move | DiamondStorm | Diamond Storm
|
||||
Move | SteamErption | Steam Eruption
|
||||
Move | HyprspceHole | Hyperspace Hole
|
||||
Move | WatrShuriken | Water Shuriken
|
||||
Move | MysticalFire | Mystical Fire
|
||||
Move | AromaticMist | Aromatic Mist
|
||||
Move | EerieImpulse | Eerie Impulse
|
||||
Move | MagneticFlux | Magnetic Flux
|
||||
Move | ElctrcTrrain | Electric Terrain
|
||||
Move | DazzlngGleam | Dazzling Gleam
|
||||
Move | BabyDollEyes | Baby-Doll Eyes
|
||||
Move | PowerUpPunch | Power-Up Punch
|
||||
Move | OblivionWing | Oblivion Wing
|
||||
Move | ThousndArrws | Thousand Arrows
|
||||
Move | ThousndWaves | Thousand Waves
|
||||
Move | LightOfRuin | Light Of Ruin
|
||||
Move | PrcipceBldes | Precipice Blades
|
||||
Move | DragonAscent | Dragon Ascent
|
||||
Move | HyprspceFury | Hyperspace Fury
|
||||
Move | FrstImpressn | First Impression
|
||||
Move | BanefulBunkr | Baneful Bunker
|
||||
Move | SpiritShackl | Spirit Shackle
|
||||
Move | DarkstLariat | Darkest Lariat
|
||||
Move | SparklngAria | Sparkling Aria
|
||||
Move | FloralHealng | Floral Healing
|
||||
Move | HighHorsepwr | High Horsepower
|
||||
Move | PsychcTrrain | Psychic Terrain
|
||||
Move | RvlationDnce | Revelation Dance
|
||||
Move | CoreEnforcer | Core Enforcer
|
||||
Move | ClngngScales | Clanging Scales
|
||||
Move | DragonHammer | Dragon Hammer
|
||||
Move | PsychicFangs | Psychic Fangs
|
||||
Move | StmpngTantrm | Stomping Tantrum
|
||||
Move | PrsmaticLasr | Prismatic Laser
|
||||
Move | SpectrlThief | Spectral Thief
|
||||
Move | SnsteelStrke | Sunsteel Strike
|
||||
Move | MoongestBeam | Moongeist Beam
|
||||
Move | Natur'sMadns | Nature's Madness
|
||||
Move | PhotonGeyser | Photon Geyser
|
||||
Move | SplishySplsh | Splishy Splash
|
||||
Move | BouncyBubble | Bouncy Bubble
|
||||
Move | SparklySwirl | Sparkly Swirl
|
||||
Move | VeeveeVolley | Veevee Volley
|
||||
Move | DublIronBash | Double Iron Bash
|
||||
Move | DynamxCannon | Dynamax Cannon
|
||||
Move | FishiousRend | Fishious Rend
|
||||
Move | ClngrousSoul | Clangorous Soul
|
||||
Move | BehemthBlade | Behemoth Blade
|
||||
Move | BehemothBash | Behemoth Bash
|
||||
Move | BreakngSwipe | Breaking Swipe
|
||||
Move | StrangeSteam | Strange Steam
|
||||
Move | FalsSurrendr | False Surrender
|
||||
Move | MeteorAssalt | Meteor Assault
|
||||
Move | ExpandngForc | Expanding Force
|
||||
Move | ShellSideArm | Shell Side Arm
|
||||
Move | MstyExplsion | Misty Explosion
|
||||
Move | RisngVoltage | Rising Voltage
|
||||
Move | TerrainPulse | Terrain Pulse
|
||||
Move | SkitterSmack | Skitter Smack
|
||||
Move | BrningJelosy | Burning Jealousy
|
||||
Move | CorrosiveGas | Corrosive Gas
|
||||
Move | DualWingbeat | Dual Wingbeat
|
||||
Move | ScorchngSnds | Scorching Sands
|
||||
Move | JungleHealng | Jungle Healing
|
||||
Move | SurgngStrkes | Surging Strikes
|
||||
Move | DragonEnergy | Dragon Energy
|
||||
Move | FreezngGlare | Freezing Glare
|
||||
Move | ThnderusKick | Thunderous Kick
|
||||
Move | GlacialLance | Glacial Lance
|
||||
Move | AstrlBarrage | Astral Barrage
|
||||
Move | PsyshieldBsh | Psyshield Bash
|
||||
Move | SprngtdeStrm | Springtide Storm
|
||||
Move | MystcalPower | Mystical Power
|
||||
Move | MountainGale | Mountain Gale
|
||||
Move | VictoryDance | Victory Dance
|
||||
Move | HeadlongRush | Headlong Rush
|
||||
Move | BitterMalice | Bitter Malice
|
||||
Move | TripleArrows | Triple Arrows
|
||||
Move | InfrnlParade | Infernal Parade
|
||||
Move | CeaslessEdge | Ceaseless Edge
|
||||
Move | BlekwndStorm | Bleakwind Storm
|
||||
Move | WildbltStorm | Wildbolt Storm
|
||||
Move | SndsearStorm | Sandsear Storm
|
||||
Move | LunarBlessng | Lunar Blessing
|
||||
Move | LastRespects | Last Respects
|
||||
Move | SpicyExtract | Spicy Extract
|
||||
Move | PoplatinBomb | Population Bomb
|
||||
Move | RevivlBlesng | Revival Blessing
|
||||
Move | KowtowCleave | Kowtow Cleave
|
||||
Move | ColisinCours | Collision Course
|
||||
Move | ElectroDrift | Electro Drift
|
||||
Move | ChilReceptin | Chilly Reception
|
||||
Move | ChillingWatr | Chilling Water
|
||||
Move | GigatonHammr | Gigaton Hammer
|
||||
Move | BlazngTorque | Blazing Torque
|
||||
Move | WickedTorque | Wicked Torque
|
||||
Move | NoxiusTorque | Noxious Torque
|
||||
Move | CombatTorque | Combat Torque
|
||||
Move | MagiclTorque | Magical Torque
|
||||
Move | MatchaGotcha | Matcha Gotcha
|
||||
Move | TeraStarstrm | Tera Starstorm
|
||||
Move | BurnngBulwrk | Burning Bulwark
|
||||
Move | MightyCleave | Mighty Cleave
|
||||
Move | TachyonCuttr | Tachyon Cutter
|
||||
Move | AllurngVoice | Alluring Voice
|
||||
Move | SuprcellSlam | Supercell Slam
|
||||
Move | PsychicNoise | Psychic Noise
|
||||
Move | MalignntChan | Malignant Chain
|
||||
Species | Dudunsprce | Dudunsparce
|
||||
Species | Corvisquir | Corvisquire
|
||||
Species | Corviknigh | Corviknight
|
||||
Species | Barraskewd | Barraskewda
|
||||
Species | Centiskorc | Centiskorch
|
||||
Species | Polteageis | Polteageist
|
||||
Species | Stonjourne | Stonjourner
|
||||
Species | Meowscarad | Meowscarada
|
||||
Species | Sqawkabily | Squawkabilly
|
||||
Species | Kilowatrel | Kilowattrel
|
||||
Species | Brmblghast | Brambleghast
|
||||
Species | ScreamTail | Scream Tail
|
||||
Species | BruteBonet | Brute Bonnet
|
||||
Species | FluttrMane | Flutter Mane
|
||||
Species | SlithrWing | Slither Wing
|
||||
Species | SndyShocks | Sandy Shocks
|
||||
Species | IronTreads | Iron Treads
|
||||
Species | IronBundle | Iron Bundle
|
||||
Species | IronJuguls | Iron Jugulis
|
||||
Species | IronThorns | Iron Thorns
|
||||
Species | RoarngMoon | Roaring Moon
|
||||
Species | IronVliant | Iron Valiant
|
||||
Species | WalkngWake | Walking Wake
|
||||
Species | IronLeaves | Iron Leaves
|
||||
Species | Ptchageist | Poltchageist
|
||||
Species | Fezndipiti | Fezandipiti
|
||||
Species | GouginFire | Gouging Fire
|
||||
Species | RagingBolt | Raging Bolt
|
||||
Species | IronBouldr | Iron Boulder
|
||||
Species | Crabminabl | Crabominable
|
||||
Species | Blacephaln | Blacephalon
|
||||
Species | Bsculegion | Basculegion
|
||||
Species | Flechinder | Fletchinder
|
||||
Type | Fight | Fighting
|
||||
Type | Electr | Electric
|
||||
Type | Psychc | Psychic
|
||||
Type | Stellr | Stellar
|
||||
|
||||
@ -27,6 +27,16 @@ If you are not using competitive syntax parties, instead access the trainer data
|
||||
# What AI Flags does pokeemerald-expansion have?
|
||||
This section lists all of expansion’s AI Flags and briefly describes the effect they have on the AI’s behaviour. In all cases, please check the corresponding function or surrounding code around their implementation for more details. Some of these functions are vanilla, some share a name with vanilla but have been modified to varying degrees, and some are completely new.
|
||||
|
||||
## Composite AI Flags
|
||||
|
||||
Expansion has two "composite" AI flags, `AI_FLAG_BASIC_TRAINER` and `AI_FLAG_SMART_TRAINER`. This means that these flags have no unique functionality themselves, and can instead be thought of as groups of other flags that are all enabled when this flag is enabled. The idea behind these flags is that if you don't care to manage the detailed behaviour of a particular trainer, you can use these as a baseline instead, and expansion will keep them updated for you.
|
||||
|
||||
`AI_FLAG_BASIC_TRAINER` is expansion's version of generic, normal AI behaviour. It includes `AI_FLAG_CHECK_BAD_MOVE` (don't use bad moves), `AI_FLAG_TRY_TO_FAINT` (faint the player where possible), and `AI_FLAG_CHECK_VIABILITY` (choose the most effective move to use in the current context). Trainers with this flag will still be smarter than they are in vanilla as there have been dramatic improvements made to move selection, but not incredibly so. Trainers with this flag should feel like normal trainers. In general we recommend these three flags be used in all cases, unless you specifically want a trainer who makes obvious mistakes in battle.
|
||||
|
||||
`AI_FLAG_SMART_TRAINER` is expansion's version of a "smart AI". It includes everything in `AI_FLAG_BASIC_TRAINER` along with `AI_FLAG_SMART_SWITCHING` (make smart decisions about when to switch), `AI_FLAG_SMART_MON_CHOICES` (make smart decisions about what mon to send in after a switch / KO), and `AI_FLAG_OMNISCIENT` (awareness of what moves, items, and abilities the player's mons have to better inform decisions). Expansion will keep this updated to represent the most objectively intelligent behaviour our flags are capable of producing.
|
||||
|
||||
Expansion has LOADS of flags, which will be covered in the rest of this guide. If you don't want to engage with detailed trainer AI tuning though, you can just use these two composite flags, and trust that expansion will keep their contents updated to always represent the most standard and the smartest behaviour we can.
|
||||
|
||||
## `AI_FLAG_CHECK_BAD_MOVE`
|
||||
The AI will avoid using moves that are likely to fail in the current situation. This flag helps prevent the AI from making ineffective choices, such as using moves into immunities, into invulnerable states, or when the moves are otherwise hindered by abilities, terrain, or status conditions.
|
||||
|
||||
@ -42,8 +52,8 @@ This flag is divided into two components to calculate the best available move fo
|
||||
|
||||
This is different to `AI_FLAG_CHECK_BAD_MOVE` as it calculates how poor a move is and not whether it will fail or not.
|
||||
|
||||
## `AI_FLAG_SETUP_FIRST_TURN`
|
||||
AI will prioritize using setup moves on the first turn. These include stat buffs, field effects, status moves, etc.
|
||||
## `AI_FLAG_FORCE_SETUP_FIRST_TURN`
|
||||
AI will prioritize using setup moves on the first turn at the expense of all else. These include stat buffs, field effects, status moves, etc. AI_FLAG_CHECK_VIABILITY will instead do this when the AI determines it makes sense.
|
||||
|
||||
This is just a flat increase without any consideration of whether it makes sense to use the move or not. For better move choice quality for those moves, `AI_FLAG_CHECK_VIABILITY` should be used.
|
||||
|
||||
@ -124,7 +134,10 @@ Affects when the AI chooses to switch. AI will make smarter decisions about when
|
||||
* The current mon loses the 1v1 quickly and has at least ½ HP, or ¼ and Regenerator
|
||||
|
||||
## `AI_FLAG_ACE_POKEMON`
|
||||
Marks the last Pokemon in the party as the Ace Pokemon. It will not be used unless it is the last one remaining, or is forced to be switched in (Roar, U-Turn with 1 mon remaining, etc.)
|
||||
Marks the last Pokemon in the party as the Ace Pokemon. It will not be used unless it is the last one remaining, or is forced to be switched in (Roar, U-Turn with 1 mon remaining, etc.). If you are challenged by two different trainers at the same time, only the ones with this flag will have Ace Pokémon. For example vs one trainer with `AI_FLAG_ACE_POKEMON`and the other without, there will be a total of 1 Ace Pokémon.
|
||||
|
||||
## `AI_FLAG_DOUBLE_ACE_POKEMON`
|
||||
Marks the last two Pokémon in the party as Ace Pokémon, with the same behaviour as `AI_FLAG_ACE_POKEMON`. Intented for double battles where you battle one trainer id that represents two trainers, ie Twins, Couples. If you apply this flag to trainers outside of double battles or in cases where two trainers can challenge you at the same time, it has the same behaviour. For example vs two trainers with `AI_FLAG_DOUBLE_ACE_POKEMON` there will be a total of 4 Ace Pokémon.
|
||||
|
||||
## `AI_FLAG_OMNISCIENT`
|
||||
AI has full knowledge of player moves, abilities, and hold items, and can use this knowledge when making decisions.
|
||||
|
||||
1163
docs/tutorials/how_to_new_pokemon_1_10_0.md
Normal file
@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("Stun Spore inflicts paralysis")
|
||||
TURN { MOVE(player, MOVE_STUN_SPORE); } // 3.
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player);
|
||||
MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); // 4
|
||||
MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); // 4
|
||||
STATUS_ICON(opponent, paralysis: TRUE); // 4.
|
||||
}
|
||||
}
|
||||
@ -86,7 +86,7 @@ SINGLE_BATTLE_TEST("Stun Spore does not affect Grass-types")
|
||||
TURN { MOVE(player, MOVE_STUN_SPORE); } // 3.
|
||||
} SCENE {
|
||||
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); // 4.
|
||||
MESSAGE("It doesn't affect Foe Oddish…"); // 5.
|
||||
MESSAGE("It doesn't affect the opposing Oddish…"); // 5.
|
||||
}
|
||||
}
|
||||
```
|
||||
@ -226,7 +226,7 @@ SINGLE_BATTLE_TEST("Paralysis has a 25% chance of skipping the turn")
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_CELEBRATE); }
|
||||
} SCENE {
|
||||
MESSAGE("Wobbuffet is paralyzed! It can't move!");
|
||||
MESSAGE("Wobbuffet couldn't move because it's paralyzed!");
|
||||
}
|
||||
}
|
||||
```
|
||||
@ -428,7 +428,7 @@ Spaces in pattern match newlines (\n, \l, and \p) in the message.
|
||||
Often used to check that a battler took its turn but it failed, e.g.:
|
||||
```
|
||||
MESSAGE("Wobbuffet used Dream Eater!");
|
||||
MESSAGE("Foe Wobbuffet wasn't affected!");
|
||||
MESSAGE("The opposing Wobbuffet wasn't affected!");
|
||||
```
|
||||
|
||||
### `STATUS_ICON`
|
||||
@ -452,7 +452,7 @@ Causes the test to fail if the `SCENE` command succeeds before the following com
|
||||
```
|
||||
// Our Wobbuffet does not Celebrate before the foe's.
|
||||
NOT MESSAGE("Wobbuffet used Celebrate!");
|
||||
MESSAGE("Foe Wobbuffet used Celebrate!");
|
||||
MESSAGE("The opposing Wobbuffet used Celebrate!");
|
||||
```
|
||||
**NOTE**: If this condition fails, the viewable ROM freezes at the NOT command.
|
||||
**WARNING: `NOT` is an alias of `NONE_OF`, so it behaves surprisingly when applied to multiple commands wrapped in braces.**
|
||||
@ -467,7 +467,7 @@ Causes the test to fail unless one of the `SCENE` commands succeeds.
|
||||
```
|
||||
ONE_OF {
|
||||
MESSAGE("Wobbuffet used Celebrate!");
|
||||
MESSAGE("Wobbuffet is paralyzed! It can't move!");
|
||||
MESSAGE("Wobbuffet couldn't move because it's paralyzed!");
|
||||
}
|
||||
```
|
||||
|
||||
@ -482,9 +482,9 @@ Causes the test to fail if one of the `SCENE` commands succeeds before the comma
|
||||
// Our Wobbuffet does not move before the foe's.
|
||||
NONE_OF {
|
||||
MESSAGE("Wobbuffet used Celebrate!");
|
||||
MESSAGE("Wobbuffet is paralyzed! It can't move!");
|
||||
MESSAGE("Wobbuffet couldn't move because it's paralyzed!");
|
||||
}
|
||||
MESSAGE("Foe Wobbuffet used Celebrate!");
|
||||
MESSAGE("The opposing Wobbuffet used Celebrate!");
|
||||
```
|
||||
|
||||
### `PLAYER_PARTY`
|
||||
|
||||
BIN
graphics/balls/strange.png
Normal file
|
After Width: | Height: | Size: 358 B |
BIN
graphics/battle_anims/backgrounds/new_electric_terrain.bin
Normal file
19
graphics/battle_anims/backgrounds/new_electric_terrain.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
237 28 36
|
||||
251 239 143
|
||||
247 228 69
|
||||
234 209 76
|
||||
222 186 48
|
||||
160 113 22
|
||||
255 255 16
|
||||
213 222 32
|
||||
255 255 255
|
||||
222 153 4
|
||||
222 171 55
|
||||
230 188 67
|
||||
247 210 69
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
graphics/battle_anims/backgrounds/new_electric_terrain.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
graphics/battle_anims/backgrounds/new_grassy_terrain.bin
Normal file
19
graphics/battle_anims/backgrounds/new_grassy_terrain.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
237 28 36
|
||||
185 255 175
|
||||
142 243 140
|
||||
56 177 78
|
||||
78 214 109
|
||||
48 126 26
|
||||
44 177 68
|
||||
65 206 48
|
||||
8 248 0
|
||||
24 189 2
|
||||
90 189 77
|
||||
97 210 101
|
||||
137 226 120
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
graphics/battle_anims/backgrounds/new_grassy_terrain.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
graphics/battle_anims/backgrounds/new_misty_terrain.bin
Normal file
19
graphics/battle_anims/backgrounds/new_misty_terrain.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
237 28 36
|
||||
253 242 242
|
||||
251 225 225
|
||||
255 210 226
|
||||
255 198 218
|
||||
255 181 206
|
||||
244 159 183
|
||||
247 187 187
|
||||
249 210 210
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
graphics/battle_anims/backgrounds/new_misty_terrain.png
Normal file
|
After Width: | Height: | Size: 1003 B |
BIN
graphics/battle_anims/backgrounds/new_psychic_terrain.bin
Normal file
19
graphics/battle_anims/backgrounds/new_psychic_terrain.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
237 28 36
|
||||
213 206 232
|
||||
206 186 224
|
||||
203 168 232
|
||||
204 145 230
|
||||
192 87 219
|
||||
156 51 183
|
||||
111 36 130
|
||||
210 51 171
|
||||
247 4 107
|
||||
67 21 79
|
||||
203 113 225
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
BIN
graphics/battle_anims/backgrounds/new_psychic_terrain.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
graphics/battle_anims/backgrounds/swampswizzle.bin
Normal file
19
graphics/battle_anims/backgrounds/swampswizzle.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
255 0 0
|
||||
140 214 132
|
||||
115 181 132
|
||||
115 181 99
|
||||
90 148 90
|
||||
90 148 74
|
||||
74 115 41
|
||||
74 107 57
|
||||
57 82 24
|
||||
49 82 41
|
||||
66 74 33
|
||||
33 57 16
|
||||
41 49 16
|
||||
49 41 8
|
||||
16 24 0
|
||||
140 222 173
|
||||
BIN
graphics/battle_anims/backgrounds/swampswizzle.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
graphics/battle_anims/sprites/pinkvio_orb.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 341 B |
BIN
graphics/battle_interface/enemy_mon_shadows_sized.png
Normal file
|
After Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 4.6 KiB |
19
graphics/items/icon_palettes/strange_ball.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
180 180 180
|
||||
164 226 197
|
||||
238 242 230
|
||||
139 170 180
|
||||
8 113 115
|
||||
0 157 156
|
||||
106 222 172
|
||||
41 182 189
|
||||
90 206 172
|
||||
90 182 180
|
||||
8 0 0
|
||||
65 190 189
|
||||
115 194 189
|
||||
0 117 131
|
||||
0 129 131
|
||||
0 12 0
|
||||
BIN
graphics/items/icons/strange_ball.png
Normal file
|
After Width: | Height: | Size: 304 B |
BIN
graphics/pokemon/abomasnow/overworldf.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
graphics/pokemon/abra/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 698 B |
BIN
graphics/pokemon/abra/back_gba.png
Normal file
|
After Width: | Height: | Size: 616 B |
BIN
graphics/pokemon/abra/icon_gba.png
Normal file
|
After Width: | Height: | Size: 327 B |
19
graphics/pokemon/abra/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
246 246 246
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 0 255
|
||||
213 180 82
|
||||
172 131 41
|
||||
148 106 16
|
||||
98 49 0
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 255 123
|
||||
255 238 41
|
||||
213 180 0
|
||||
139 98 0
|
||||
16 16 16
|
||||
19
graphics/pokemon/abra/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
246 246 246
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 0 255
|
||||
205 180 180
|
||||
172 148 148
|
||||
148 115 123
|
||||
106 49 123
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 255 222
|
||||
255 255 115
|
||||
246 180 41
|
||||
164 82 0
|
||||
16 16 16
|
||||
BIN
graphics/pokemon/absol/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
graphics/pokemon/absol/back_gba.png
Normal file
|
After Width: | Height: | Size: 673 B |
BIN
graphics/pokemon/absol/icon_gba.png
Normal file
|
After Width: | Height: | Size: 371 B |
19
graphics/pokemon/absol/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
123 156 180
|
||||
255 255 255
|
||||
222 222 238
|
||||
197 197 213
|
||||
148 148 172
|
||||
255 123 115
|
||||
205 41 32
|
||||
123 41 49
|
||||
172 172 205
|
||||
131 131 172
|
||||
90 90 131
|
||||
41 57 57
|
||||
148 164 164
|
||||
115 131 131
|
||||
82 98 98
|
||||
0 0 0
|
||||
19
graphics/pokemon/absol/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
123 156 180
|
||||
255 255 255
|
||||
238 222 230
|
||||
222 189 213
|
||||
197 156 189
|
||||
49 180 255
|
||||
0 115 189
|
||||
123 41 49
|
||||
172 172 205
|
||||
131 131 172
|
||||
90 90 131
|
||||
41 57 57
|
||||
205 115 98
|
||||
172 82 65
|
||||
131 41 24
|
||||
0 0 0
|
||||
BIN
graphics/pokemon/aerodactyl/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
graphics/pokemon/aerodactyl/back_gba.png
Normal file
|
After Width: | Height: | Size: 602 B |
BIN
graphics/pokemon/aerodactyl/icon_gba.png
Normal file
|
After Width: | Height: | Size: 369 B |
19
graphics/pokemon/aerodactyl/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
213 213 189
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 0 255
|
||||
197 139 205
|
||||
148 98 180
|
||||
115 65 148
|
||||
65 16 98
|
||||
222 98 98
|
||||
139 49 49
|
||||
16 16 16
|
||||
238 246 255
|
||||
205 213 222
|
||||
148 172 180
|
||||
49 82 90
|
||||
255 255 255
|
||||
19
graphics/pokemon/aerodactyl/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
213 213 189
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 0 255
|
||||
98 148 255
|
||||
65 115 230
|
||||
16 65 180
|
||||
24 24 106
|
||||
222 98 98
|
||||
139 49 49
|
||||
16 16 16
|
||||
255 222 255
|
||||
238 180 230
|
||||
180 123 180
|
||||
123 57 131
|
||||
255 255 255
|
||||
BIN
graphics/pokemon/aggron/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
graphics/pokemon/aggron/back_gba.png
Normal file
|
After Width: | Height: | Size: 860 B |
BIN
graphics/pokemon/aggron/icon_gba.png
Normal file
|
After Width: | Height: | Size: 367 B |
19
graphics/pokemon/aggron/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
148 172 156
|
||||
74 74 65
|
||||
106 106 106
|
||||
139 139 139
|
||||
172 172 172
|
||||
57 57 65
|
||||
123 106 106
|
||||
156 139 139
|
||||
189 172 172
|
||||
222 205 205
|
||||
255 255 255
|
||||
172 57 74
|
||||
222 106 106
|
||||
255 131 131
|
||||
106 189 255
|
||||
0 0 0
|
||||
19
graphics/pokemon/aggron/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
148 172 156
|
||||
32 90 90
|
||||
65 123 115
|
||||
90 156 148
|
||||
148 197 205
|
||||
74 41 24
|
||||
123 123 90
|
||||
156 156 123
|
||||
189 189 156
|
||||
222 222 197
|
||||
255 255 255
|
||||
172 57 74
|
||||
222 106 106
|
||||
255 131 131
|
||||
255 123 82
|
||||
0 0 0
|
||||
BIN
graphics/pokemon/aipom/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 924 B |
BIN
graphics/pokemon/aipom/back_gba.png
Normal file
|
After Width: | Height: | Size: 592 B |
BIN
graphics/pokemon/aipom/icon_gba.png
Normal file
|
After Width: | Height: | Size: 399 B |
19
graphics/pokemon/aipom/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
205 205 172
|
||||
255 255 255
|
||||
213 131 255
|
||||
180 98 230
|
||||
139 57 180
|
||||
82 32 106
|
||||
255 246 197
|
||||
255 238 164
|
||||
238 197 90
|
||||
197 156 82
|
||||
139 106 65
|
||||
255 0 255
|
||||
213 213 213
|
||||
123 123 123
|
||||
90 90 90
|
||||
0 0 0
|
||||
BIN
graphics/pokemon/aipom/overworldf.png
Normal file
|
After Width: | Height: | Size: 848 B |
19
graphics/pokemon/aipom/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
205 205 172
|
||||
255 255 255
|
||||
255 131 164
|
||||
230 98 139
|
||||
189 57 106
|
||||
115 32 65
|
||||
255 238 230
|
||||
255 222 213
|
||||
238 189 180
|
||||
222 123 131
|
||||
189 82 90
|
||||
255 0 255
|
||||
213 213 213
|
||||
123 123 123
|
||||
90 90 90
|
||||
16 16 16
|
||||
BIN
graphics/pokemon/alakazam/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
graphics/pokemon/alakazam/back_gba.png
Normal file
|
After Width: | Height: | Size: 864 B |
BIN
graphics/pokemon/alakazam/icon_gba.png
Normal file
|
After Width: | Height: | Size: 401 B |
19
graphics/pokemon/alakazam/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
230 230 230
|
||||
255 255 255
|
||||
222 222 222
|
||||
180 180 180
|
||||
90 90 90
|
||||
213 180 82
|
||||
172 131 41
|
||||
139 98 16
|
||||
98 49 0
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 255 123
|
||||
255 238 41
|
||||
213 180 0
|
||||
139 98 0
|
||||
16 16 16
|
||||
BIN
graphics/pokemon/alakazam/overworldf.png
Normal file
|
After Width: | Height: | Size: 842 B |
19
graphics/pokemon/alakazam/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
230 230 230
|
||||
255 255 255
|
||||
222 222 222
|
||||
180 180 180
|
||||
90 90 90
|
||||
230 123 189
|
||||
189 82 148
|
||||
131 41 106
|
||||
82 0 41
|
||||
255 0 255
|
||||
255 0 255
|
||||
255 205 74
|
||||
213 172 0
|
||||
172 115 0
|
||||
123 32 0
|
||||
16 16 16
|
||||
|
Before Width: | Height: | Size: 514 B After Width: | Height: | Size: 514 B |
|
Before Width: | Height: | Size: 815 B After Width: | Height: | Size: 815 B |
|
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 484 B |
BIN
graphics/pokemon/altaria/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
graphics/pokemon/altaria/back_gba.png
Normal file
|
After Width: | Height: | Size: 685 B |
BIN
graphics/pokemon/altaria/icon_gba.png
Normal file
|
After Width: | Height: | Size: 419 B |
19
graphics/pokemon/altaria/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
115 205 139
|
||||
255 255 255
|
||||
131 131 148
|
||||
197 197 213
|
||||
255 164 131
|
||||
255 98 65
|
||||
131 32 8
|
||||
172 213 255
|
||||
115 180 238
|
||||
98 139 197
|
||||
65 106 156
|
||||
238 246 255
|
||||
222 222 238
|
||||
172 180 197
|
||||
41 57 90
|
||||
0 0 0
|
||||
19
graphics/pokemon/altaria/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
115 205 139
|
||||
255 255 255
|
||||
131 131 148
|
||||
197 197 213
|
||||
255 164 131
|
||||
255 98 65
|
||||
131 32 8
|
||||
255 238 131
|
||||
255 205 98
|
||||
222 172 65
|
||||
156 106 0
|
||||
238 246 255
|
||||
222 222 238
|
||||
172 180 197
|
||||
123 74 0
|
||||
0 0 0
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
BIN
graphics/pokemon/ambipom/overworldf.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
graphics/pokemon/ampharos/anim_front_gba.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
graphics/pokemon/ampharos/back_gba.png
Normal file
|
After Width: | Height: | Size: 714 B |
BIN
graphics/pokemon/ampharos/icon_gba.png
Normal file
|
After Width: | Height: | Size: 430 B |
19
graphics/pokemon/ampharos/normal_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
205 205 172
|
||||
255 255 255
|
||||
255 238 74
|
||||
255 197 16
|
||||
213 148 0
|
||||
148 74 0
|
||||
255 0 255
|
||||
230 230 230
|
||||
172 172 172
|
||||
98 106 106
|
||||
16 16 16
|
||||
255 98 0
|
||||
197 65 0
|
||||
139 32 0
|
||||
90 0 0
|
||||
255 0 255
|
||||
19
graphics/pokemon/ampharos/shiny_gba.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
205 205 172
|
||||
255 255 255
|
||||
246 180 213
|
||||
213 148 180
|
||||
189 115 156
|
||||
139 82 106
|
||||
255 0 255
|
||||
230 230 230
|
||||
172 172 172
|
||||
98 106 106
|
||||
16 16 16
|
||||
131 205 246
|
||||
65 106 205
|
||||
32 65 156
|
||||
49 74 139
|
||||
255 0 255
|
||||