diff --git a/.all-contributorsrc b/.all-contributorsrc
index aa76ec1a65..55ff294842 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -478,6 +478,33 @@
"doc",
"data"
]
+ },
+ {
+ "login": "shachar700",
+ "name": "shachar700",
+ "avatar_url": "https://avatars.githubusercontent.com/u/48739719?v=4",
+ "profile": "https://github.com/shachar700",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "purrfectdoodle",
+ "name": "Eva",
+ "avatar_url": "https://avatars.githubusercontent.com/u/105788407?v=4",
+ "profile": "http://purrfectdoodle.com",
+ "contributions": [
+ "design"
+ ]
+ },
+ {
+ "login": "amiosi",
+ "name": "amiosi",
+ "avatar_url": "https://avatars.githubusercontent.com/u/44352097?v=4",
+ "profile": "https://github.com/amiosi",
+ "contributions": [
+ "data"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/.gitattributes b/.gitattributes
index 1f2aa0c6da..a2dcec5e5d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -18,6 +18,9 @@ Makefile text eol=lf
*.md text eol=lf
*.ps1 text eol=crlf
*.yml text eol=lf
+*.party text eol=lf
+*.cfg text eol=lf
+*.ld text eol=lf
*.png binary
*.bin binary
diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml
index 4564bad007..2f25421ea0 100644
--- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml
+++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml
@@ -43,17 +43,16 @@ body:
label: Version
description: What version of pokeemerald-expansion are you using?
options:
- - 1.13.3 (Latest release)
+ - 1.14.1 (Latest release)
- master (default, unreleased bugfixes)
- upcoming (Edge)
+ - 1.14.0
+ - 1.13.4
+ - 1.13.3
- 1.13.2
- 1.13.1
- 1.13.0
- - 1.12.3
- - 1.12.2
- - 1.12.1
- - 1.12.0
- - pre-1.12.0
+ - pre-1.13.0
validations:
required: true
- type: input
diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml
index 8ee1d1cc17..b0ee167021 100644
--- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml
+++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml
@@ -43,17 +43,16 @@ body:
label: Version
description: What version of pokeemerald-expansion are you using?
options:
- - 1.13.3 (Latest release)
+ - 1.14.1 (Latest release)
- master (default, unreleased bugfixes)
- upcoming (Edge)
+ - 1.14.0
+ - 1.13.4
+ - 1.13.3
- 1.13.2
- 1.13.1
- 1.13.0
- - 1.12.3
- - 1.12.2
- - 1.12.1
- - 1.12.0
- - pre-1.12.0
+ - pre-1.13.0
validations:
required: true
- type: input
diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml
index 5791967807..4dcb2b3093 100644
--- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml
+++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml
@@ -43,17 +43,16 @@ body:
label: Version
description: What version of pokeemerald-expansion are you using?
options:
- - 1.13.3 (Latest release)
+ - 1.14.1 (Latest release)
- master (default, unreleased bugfixes)
- upcoming (Edge)
+ - 1.14.0
+ - 1.13.4
+ - 1.13.3
- 1.13.2
- 1.13.1
- 1.13.0
- - 1.12.3
- - 1.12.2
- - 1.12.1
- - 1.12.0
- - pre-1.12.0
+ - pre-1.13.0
validations:
required: true
- type: input
diff --git a/.github/docs_validate/inclusive_summary.py b/.github/docs_validate/inclusive_summary.py
new file mode 100755
index 0000000000..76e0218abc
--- /dev/null
+++ b/.github/docs_validate/inclusive_summary.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python3
+
+"""
+Checks that all documentation pages that should be mentioned in
+`docs/SUMMARY.md` are mentioned the file
+"""
+
+import glob
+import re
+import os
+from pathlib import Path
+
+errorLines = []
+
+if not os.path.exists("Makefile"):
+ errorLines.append("Please run this script from your root folder.")
+
+summaryFile = Path("docs/SUMMARY.md")
+if not errorLines:
+ if not summaryFile.is_file():
+ errorLines.append("docs/SUMMARY.md missing")
+
+summaryContents = []
+if not errorLines:
+ with open(summaryFile, 'r', encoding='UTF-8') as file:
+ entry_pattern = re.compile(r" *\- \[[^\]]*\]\(([^\)]*)\)\n")
+ lineNo = 0
+ while line:=file.readline():
+ lineNo = lineNo + 1
+ if line == "# Summary\n" or line == "\n":
+ pass
+ elif match:=entry_pattern.match(line):
+ if "" != match.group(1):
+ summaryContents.append(Path(match.group(1)))
+ else:
+ if not errorLines:
+ errorLines.append("## Unexpected lines in docs/SUMMARY.md")
+ errorLines.append(f"- {lineNo}: {line.strip()}")
+
+if not errorLines:
+ for pathName in glob.glob("**/*.md", root_dir="docs", recursive=True):
+ path = Path(pathName)
+ if path == Path("SUMMARY.md"):
+ pass
+ elif path == Path("changelogs/template.md"):
+ pass
+ elif path in summaryContents:
+ pass
+ else:
+ if not errorLines:
+ errorLines.append("## `docs/**/*.md` files present but not mentioned in `docs/SUMMARY.md`")
+ errorLines.append("- " + str(path))
+
+if errorLines:
+ for line in errorLines:
+ print(line)
+
+ if 'GITHUB_STEP_SUMMARY' in os.environ:
+ with open(os.environ['GITHUB_STEP_SUMMARY'], 'w', encoding='UTF-8') as file:
+ for line in errorLines:
+ file.write(line)
+ file.write('\n')
+
+ quit(1)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8620999045..da1a943e83 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -43,6 +43,18 @@ jobs:
TEST: 1
run: |
make -j${nproc} check
+
+ docs_validate:
+ if: github.actor != 'allcontributors[bot]'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Check that SUMMARY.md includes markdown doc files
+ run: |
+ .github/docs_validate/inclusive_summary.py
+
allcontributors:
if: github.actor == 'allcontributors[bot]'
runs-on: ubuntu-latest
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index e02d931e28..09e7c78c0c 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -17,7 +17,7 @@ jobs:
fetch-depth: 0
- name: Install latest mdbook
run: |
- tag="v0.5.0-beta.1"
+ tag="v0.5.1"
url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz"
mkdir mdbook
curl -sSL $url | tar -xz --directory=./mdbook
diff --git a/CREDITS.md b/CREDITS.md
index e9d1e53354..dfec2d747c 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -78,6 +78,11 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 cawtds 💻 |
 Frank DeBlasio 💻 |
 leo60228 📖 🔣 |
+  shachar700 💻 |
+
+
+  Eva 🎨 |
+  amiosi 🔣 |
diff --git a/INSTALL.md b/INSTALL.md
index 072d43a858..47f00cf78f 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -32,6 +32,7 @@ Distributions with instructions:
- [Debian](docs/install/linux/DEBIAN.md)
- [Arch Linux](docs/install/linux/ARCH_LINUX.md)
- [NixOS](docs/install/linux/NIXOS.md)
+- [Fedora](docs/install/linux/FEDORA.md)
Other distributions have to infer what to do from [general instructions](docs/install/linux/OTHERS.md).
diff --git a/Makefile b/Makefile
index 9423d16e1a..bb5b21ee1a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,32 @@
+GAME_VERSION ?= EMERALD
+TITLE ?= POKEMON EMER
+GAME_CODE ?= BPEE
+BUILD_NAME ?= emerald
+MAP_VERSION ?= emerald
+
+ifeq (firered,$(MAKECMDGOALS))
+ GAME_VERSION := FIRERED
+ TITLE := POKEMON FIRE
+ GAME_CODE := BPRE
+ BUILD_NAME := firered
+ MAP_VERSION := firered
+else
+ifeq (leafgreen,$(MAKECMDGOALS))
+ GAME_VERSION := LEAFGREEN
+ TITLE := POKEMON LEAF
+ GAME_CODE := BPGE
+ BUILD_NAME := leafgreen
+ MAP_VERSION := firered
+endif
+endif
+
# GBA rom header
-TITLE := POKEMON EMER
-GAME_CODE := BPEE
MAKER_CODE := 01
REVISION := 0
KEEP_TEMPS ?= 0
# `File name`.gba
-FILE_NAME := pokeemerald
+FILE_NAME := poke$(BUILD_NAME)
BUILD_DIR := build
# Compares the ROM to a checksum of the original - only makes sense using when non-modern
@@ -21,6 +41,9 @@ UNUSED_ERROR ?= 0
DEBUG ?= 0
# Adds -flto flag, which increases link time but results in a more efficient binary (especially in audio processing)
LTO ?= 0
+# Makes an optimized build for release, also enabling NDEBUG macro and disabling other debugging features
+# Enables LTO by default, but can be changed in the config.mk file
+RELEASE ?= 0
ifeq (compare,$(MAKECMDGOALS))
COMPARE := 1
@@ -31,6 +54,11 @@ endif
ifeq (debug,$(MAKECMDGOALS))
DEBUG := 1
endif
+ifneq (,$(filter release tidyrelease,$(MAKECMDGOALS)))
+ RELEASE := 1
+endif
+
+include config.mk
# Default make rule
all: rom
@@ -63,10 +91,15 @@ endif
CPP := $(PREFIX)cpp
+ifeq ($(RELEASE),1)
+ FILE_NAME := $(FILE_NAME)-release
+endif
+
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
+OBJ_DIR_NAME := $(BUILD_DIR)/$(BUILD_NAME)
+OBJ_DIR_NAME_TEST := $(BUILD_DIR)/$(BUILD_NAME)-test
+OBJ_DIR_NAME_DEBUG := $(BUILD_DIR)/$(BUILD_NAME)-debug
+OBJ_DIR_NAME_RELEASE := $(BUILD_DIR)/$(BUILD_NAME)-release
ELF_NAME := $(ROM_NAME:.gba=.elf)
MAP_NAME := $(ROM_NAME:.gba=.map)
@@ -86,6 +119,9 @@ endif
ifeq ($(DEBUG),1)
OBJ_DIR := $(OBJ_DIR_NAME_DEBUG)
endif
+ifeq ($(RELEASE),1)
+ OBJ_DIR := $(OBJ_DIR_NAME_RELEASE)
+endif
ELF := $(ROM:.gba=.elf)
MAP := $(ROM:.gba=.map)
SYM := $(ROM:.gba=.sym)
@@ -110,7 +146,7 @@ TEST_BUILDDIR = $(OBJ_DIR)/$(TEST_SUBDIR)
SHELL := bash -o pipefail
# Set flags for tools
-ASFLAGS := -mcpu=arm7tdmi -march=armv4t -meabi=5 --defsym MODERN=1
+ASFLAGS := -mcpu=arm7tdmi -march=armv4t -meabi=5 --defsym MODERN=1 --defsym $(GAME_VERSION)=1
INCLUDE_DIRS := include
INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %)
@@ -121,7 +157,13 @@ O_LEVEL ?= g
else
O_LEVEL ?= 2
endif
-CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST) -std=gnu17
+CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST) -D$(GAME_VERSION) -std=gnu17
+ifeq ($(RELEASE),1)
+ override CPPFLAGS += -DRELEASE
+ ifeq ($(USE_LTO_ON_RELEASE),1)
+ LTO := 1
+ endif
+endif
ARMCC := $(PREFIX)gcc
PATH_ARMCC := PATH="$(PATH)" $(ARMCC)
CC1 := $(shell $(PATH_ARMCC) --print-prog-name=cc1) -quiet
@@ -166,7 +208,7 @@ include make_tools.mk
SMOLTM := $(TOOLS_DIR)/compresSmol/compresSmolTilemap$(EXE)
SMOL := $(TOOLS_DIR)/compresSmol/compresSmol$(EXE)
GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE)
-AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE)
+WAV2AGB := $(TOOLS_DIR)/wav2agb/wav2agb$(EXE)
MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE)
SCANINC := $(TOOLS_DIR)/scaninc/scaninc$(EXE)
PREPROC := $(TOOLS_DIR)/preproc/preproc$(EXE)
@@ -201,7 +243,7 @@ MISC_TOOL_DIR := $(TOOLS_DIR)/misc
AUTO_GEN_TARGETS += $(INCLUDE_DIRS)/constants/script_commands.h
$(DATA_SRC_SUBDIR)/wild_encounters.h: $(DATA_SRC_SUBDIR)/wild_encounters.json $(WILD_ENCOUNTERS_TOOL_DIR)/wild_encounters_to_header.py $(INCLUDE_DIRS)/config/overworld.h $(INCLUDE_DIRS)/config/dexnav.h
- python3 $(WILD_ENCOUNTERS_TOOL_DIR)/wild_encounters_to_header.py > $@
+ python3 $(WILD_ENCOUNTERS_TOOL_DIR)/wild_encounters_to_header.py
$(INCLUDE_DIRS)/constants/script_commands.h: $(MISC_TOOL_DIR)/make_scr_cmd_constants.py $(DATA_ASM_SUBDIR)/script_cmd_table.inc
python3 $(MISC_TOOL_DIR)/make_scr_cmd_constants.py
@@ -222,8 +264,8 @@ MAKEFLAGS += --no-print-directory
# Delete files that weren't built properly
.DELETE_ON_ERROR:
-RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck generated clean-generated
-.PHONY: all rom agbcc modern compare check debug
+RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck tidyrelease generated clean-generated
+.PHONY: all rom agbcc modern compare check debug release
.PHONY: $(RULES_NO_SCAN)
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@@ -250,7 +292,7 @@ ifeq ($(SETUP_PREREQS),1)
$(error Errors occurred while building tools. See error messages above for more details)
endif
# Oh and also generate mapjson sources before we use `SCANINC`.
- $(foreach line, $(shell $(MAKE) generated | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
+ $(foreach line, $(shell $(MAKE) MAP_VERSION=$(MAP_VERSION) generated | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
ifneq ($(.SHELLSTATUS),0)
$(error Errors occurred while generating map-related sources. See error messages above for more details)
endif
@@ -294,6 +336,7 @@ $(shell mkdir -p $(SUBDIRS))
modern: all
compare: all
debug: all
+release: all
# Uncomment the next line, and then comment the 4 lines after it to reenable agbcc.
#agbcc: all
agbcc:
@@ -344,7 +387,7 @@ clean-assets:
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.smol' -o -iname '*.fastSmol' -o -iname '*.smolTM' -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: tidymodern tidycheck tidydebug
+tidy: tidymodern tidycheck tidydebug tidyrelease
tidymodern:
rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME)
@@ -357,6 +400,14 @@ tidycheck:
tidydebug:
rm -rf $(DEBUG_OBJ_DIR_NAME)
+tidyrelease:
+ifeq ($(RELEASE),1)
+ rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME)
+else # Manually remove the release files on clean/tidy
+ rm -f $(FILE_NAME)-release.gba $(FILE_NAME)-release.elf $(FILE_NAME)-release.map
+endif
+ rm -rf $(OBJ_DIR_NAME_RELEASE)
+
# Other rules
include graphics_file_rules.mk
include map_data_rules.mk
@@ -374,7 +425,7 @@ generated: $(AUTO_GEN_TARGETS)
%.s: ;
%.png: ;
%.pal: ;
-%.aif: ;
+%.wav: ;
%.1bpp: %.png ; $(GFX) $< $@
%.4bpp: %.png ; $(GFX) $< $@
@@ -453,7 +504,7 @@ ifneq ($(NODEP),1)
endif
$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s
- $(PREPROC) $< charmap.txt | $(CPP) $(INCLUDE_SCANINC_ARGS) - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@
+ $(PREPROC) $< charmap.txt | $(CPP) $(CPPFLAGS) $(INCLUDE_SCANINC_ARGS) - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@
$(C_BUILDDIR)/%.d: $(C_SUBDIR)/%.s
$(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I "" $<
@@ -463,7 +514,7 @@ ifneq ($(NODEP),1)
endif
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s
- $(PREPROC) $< charmap.txt | $(CPP) $(INCLUDE_SCANINC_ARGS) - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@
+ $(PREPROC) $< charmap.txt | $(CPP) $(CPPFLAGS) $(INCLUDE_SCANINC_ARGS) - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@
$(DATA_ASM_BUILDDIR)/%.d: $(DATA_ASM_SUBDIR)/%.s
$(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I "" $<
@@ -522,6 +573,9 @@ $(ROM): $(ELF)
$(OBJCOPY) -O binary $< $@
$(FIX) $@ -p --silent
+emerald: all
+firered: all
+leafgreen: all
# Symbol file (`make syms`)
$(SYM): $(ELF)
$(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@
diff --git a/README.md b/README.md
index 2389dfe26a..8094c29e85 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
If you use **`pokeemerald-expansion`**, please credit **RHH (Rom Hacking Hideout)**. Optionally, include the version number for clarity.
```
-Based off RHH's pokeemerald-expansion 1.13.3 https://github.com/rh-hideout/pokeemerald-expansion/
+Based off RHH's pokeemerald-expansion 1.14.1 https://github.com/rh-hideout/pokeemerald-expansion/
```
Please consider [crediting all contributors](CREDITS.md) involved in the project!
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc
index 754a5221f6..7eb3b9d064 100644
--- a/asm/macros/battle_script.inc
+++ b/asm/macros/battle_script.inc
@@ -9,11 +9,11 @@
.2byte \move
.endm
- .macro attackstring
+ .macro printattackstring
.byte 0x2
.endm
- .macro ppreduce
+ .macro unused_0x3
.byte 0x3
.endm
@@ -45,14 +45,16 @@
.byte 0xa
.endm
- .macro healthbarupdate battler:req
+ .macro healthbarupdate battler:req updateState:req
.byte 0xb
.byte \battler
+ .byte \updateState
.endm
- .macro datahpupdate battler:req
+ .macro datahpupdate battler:req updateState:req
.byte 0xc
.byte \battler
+ .byte \updateState
.endm
.macro critmessage
@@ -363,9 +365,8 @@
.byte 0x3a
.endm
- .macro absorbhealthbarupdate battler:req
+ .macro isdmgblockedbydisguise
.byte 0x3b
- .byte \battler
.endm
.macro return
@@ -678,10 +679,8 @@
.byte 0x75
.endm
- .macro various battler:req, id:req
+ .macro unused_0x78
.byte 0x76
- .byte \battler
- .byte \id
.endm
.macro setprotectlike
@@ -701,10 +700,10 @@
.4byte \jumpInstr
.endm
- .macro tryhealhalfhealth failInstr:req, battler:req
+ .macro tryhealhalfhealth battler:req, failInstr:req
.byte 0x7b
- .4byte \failInstr
.byte \battler
+ .4byte \failInstr
.endm
.macro trymirrormove
@@ -729,14 +728,12 @@
.byte \mode
.endm
- .macro trysetrest failInstr:req
+ .macro trysetrest
.byte 0x81
- .4byte \failInstr
.endm
- .macro jumpifnotfirstturn jumpInstr:req
+ .macro unused_0x82
.byte 0x82
- .4byte \jumpInstr
.endm
.macro unused_0x83
@@ -753,9 +750,8 @@
.byte \id
.endm
- .macro stockpiletobasedamage failInstr:req
+ .macro stockpiletobasedamage
.byte 0x86
- .4byte \failInstr
.endm
.macro stockpiletohpheal failInstr:req
@@ -767,7 +763,7 @@
callnative BS_RemoveStockpileCounters
.endm
- .macro setdrainedhp
+ .macro unused_0x88
.byte 0x88
.endm
@@ -882,7 +878,7 @@
.4byte \failInstr
.endm
- .macro metronome
+ .macro setcalledmove
.byte 0x9e
.endm
@@ -943,7 +939,7 @@
.4byte \failInstr
.endm
- .macro trysetdestinybondtohappen
+ .macro unused_0xab
.byte 0xab
.endm
@@ -1019,8 +1015,10 @@
.4byte \jumpInstr
.endm
- .macro tryrestorehpberry
+ .macro tryactivateitem battler:req, flag:req
.byte 0xbb
+ .byte \battler
+ .byte \flag
.endm
.macro halvehp failInstr:req
@@ -1050,9 +1048,8 @@
.byte 0xc2
.endm
- .macro trysetfutureattack failInstr:req
+ .macro setfutureattack
.byte 0xc3
- .4byte \failInstr
.endm
.macro trydobeatup endInstr:req, failInstr:req
@@ -1102,7 +1099,7 @@
.byte 0xca
.endm
- .macro setcharge battler:req
+ .macro unused_0xcb battler:req
.byte 0xcb
.byte \battler
.endm
@@ -1229,10 +1226,8 @@
.4byte \jumpInstr
.endm
- .macro jumpifnotcurrentmoveargtype battler:req, failInstr:req
+ .macro unused_0xE4
.byte 0xe4
- .byte \battler
- .4byte \failInstr
.endm
.macro pickup
@@ -1302,7 +1297,7 @@
.byte 0xf3
.endm
- .macro subattackerhpbydmg
+ .macro unused_0xf4
.byte 0xf4
.endm
@@ -1348,7 +1343,7 @@
.byte \trigger
.endm
- .macro tryworryseed failInstr:req
+ .macro tryoverwriteability failInstr:req
.byte 0xfe
.4byte \failInstr
.endm
@@ -1383,17 +1378,6 @@
.4byte \failInstr
.endm
- .macro jumpifcantfling battler:req, jumpInstr:req
- callnative BS_JumpIfCantFling
- .byte \battler
- .4byte \jumpInstr
- .endm
-
- .macro itemstatchangeeffects battler:req
- callnative BS_RunStatChangeItems
- .byte \battler
- .endm
-
.macro allyswitchswapbattlers
callnative BS_AllySwitchSwapBattler
.endm
@@ -1421,9 +1405,10 @@
.4byte \restoreBattlerInstr
.endm
- .macro itemcurestatus jumpInstr:req
+ .macro itemcurestatus jumpInstr:req, restoreBattlerInstr:req
callnative BS_ItemCureStatus
.4byte \jumpInstr
+ .4byte \restoreBattlerInstr
.endm
.macro itemincreasestat
@@ -1443,26 +1428,17 @@
.4byte \failInstr
.endm
- .macro setglaiverush
- callnative BS_SetGlaiveRush
- .endm
-
.macro setpledge jumpInstr:req
callnative BS_SetPledge
.4byte \jumpInstr
.endm
- .macro setpledgestatus battler:req sidestatus:req
+ .macro setpledgestatus battler:req, sidestatus:req
callnative BS_SetPledgeStatus
.byte \battler
.4byte \sidestatus
.endm
- .macro trycopycat failInstr:req
- callnative BS_TryCopycat
- .4byte \failInstr
- .endm
-
.macro setzeffect
callnative BS_SetZEffect
.endm
@@ -1645,14 +1621,6 @@
.4byte \failInstr
.endm
- .macro tryupdaterecoiltracker
- callnative BS_TryUpdateRecoilTracker
- .endm
-
- .macro tryupdateleaderscresttracker
- callnative BS_TryUpdateLeadersCrestTracker
- .endm
-
.macro trytidyup clear:req, jumpInstr:req
callnative BS_TryTidyUp
.byte \clear
@@ -1765,10 +1733,6 @@
callnative BS_WaitFanfare
.endm
- .macro setbeakblast
- callnative BS_SetBeakBlast
- .endm
-
.macro cantarshotwork failInstr:req
callnative BS_CanTarShotWork
.4byte \failInstr
@@ -1792,6 +1756,10 @@
.2byte \flags
.endm
+ .macro clearspecialstatuses
+ callnative BS_ClearSpecialStatuses
+ .endm
+
.macro clearmoveresultflags flags:req
callnative BS_ClearMoveResultFlags
.2byte \flags
@@ -1803,8 +1771,8 @@
.4byte \failInstr
.endm
- .macro jumpifcriticalhit failInstr:req
- callnative BS_JumpIfCriticalHit
+ .macro jumpifnotcriticalhit failInstr:req
+ callnative BS_JumpIfNotCriticalHit
.4byte \failInstr
.endm
@@ -1814,11 +1782,8 @@
.4byte \jumpInstr
.endm
- .macro jumpiflastuseditemholdeffect holdEffect:req, secondaryId:req, jumpInstr:req
- callnative BS_JumpIfLastUsedItemHoldEffect
- .byte \holdEffect
- .2byte \secondaryId
- .4byte \jumpInstr
+ .macro tryflingholdeffect
+ callnative BS_TryFlingHoldEffect
.endm
.macro swapsidestatuses
@@ -1924,8 +1889,8 @@
1:
.endm
- .macro jumpifabilitycantbesuppressed battler:req, jumpInstr:req
- callnative BS_JumpIfAbilityCantBeSuppressed
+ .macro jumpifabilitycantbereactivated battler:req, jumpInstr:req
+ callnative BS_JumpIfAbilityCantBeReactivated
.byte \battler
.4byte \jumpInstr
.endm
@@ -2181,16 +2146,6 @@
.4byte \failInstr
.endm
- .macro suckerpunchcheck failInstr:req
- callnative BS_SuckerPunchCheck
- .4byte \failInstr
- .endm
-
- .macro setsimplebeam failInstr:req
- callnative BS_SetSimpleBeam
- .4byte \failInstr
- .endm
-
.macro tryentrainment failInstr:req
callnative BS_TryEntrainment
.4byte \failInstr
@@ -2204,11 +2159,6 @@
callnative BS_InvertStatStages
.endm
- .macro trymefirst failInstr:req
- callnative BS_TryMeFirst
- .4byte \failInstr
- .endm
-
.macro tryelectrify failInstr:req
callnative BS_TryElectrify
.4byte \failInstr
@@ -2225,11 +2175,6 @@
.byte \case_
.endm
- .macro trylastresort failInstr:req
- callnative BS_TryLastResort
- .4byte \failInstr
- .endm
-
.macro tryautotomize failInstr:req
callnative BS_TryAutotomize
.4byte \failInstr
@@ -2418,20 +2363,11 @@
.4byte \failInstr
.endm
- .macro checkpoltergeist failInstr:req
- callnative BS_CheckPoltergeist
+ .macro setpoltergeistmessage failInstr:req
+ callnative BS_SetPoltergeistMessage
.4byte \failInstr
.endm
- .macro trynoretreat failInstr:req
- callnative BS_TryNoRetreat
- .4byte \failInstr
- .endm
-
- .macro curecertainstatuses
- callnative BS_CureCertainStatuses
- .endm
-
.macro tryresetnegativestatstages
callnative BS_TryResetNegativeStatStages
.endm
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 6e08a3cdff..6abaeff265 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -2332,6 +2332,11 @@
callnative ScriptSetDoubleBattleFlag, requests_effects=1
.endm
+ @ Stop using the ORAS dowsing machine.
+ .macro stoporasdowsing
+ callnative EndORASDowsing
+ .endm
+
@ ============================ @
@ FAKE RTC MACROS
@ Will only function if OW_USE_FAKE_RTC is true. If it has any additional requirements, it will be listed accordingly.
@@ -2674,8 +2679,34 @@
.2byte \battlePartner
.endm
+ @ Manually buffer a string as the speaker's name for namebox.
+ @ The next shown message/msgbox will include a namebox, if the provided string is not NULL.
+ @ An SP_NAME_* constant can also be used, it'll take the name from gSpeakerNamesTable instead.
+ .macro setspeaker name:req
+ callnative SetSpeaker
+ .4byte \name
+ .endm
+
@ VS Seeker
.macro vsseeker_rematchid rematchId:req
callnative NativeVsSeekerRematchId, requests_effects=1
.2byte \rematchId
.endm
+
+ @ Sets the move relearner state
+ .macro setmoverelearnerstate state:req
+ callnative ScrCmd_setmoverelearnerstate, requests_effects=1
+ .2byte \state
+ .endm
+
+ @ Retrieves the move relearner state and stores it in the specified var
+ .macro getmoverelearnerstate varId:req
+ callnative ScrCmd_getmoverelearnerstate, requests_effects=1
+ .4byte \varId
+ .endm
+
+ @ Execute script if bag has TMs and/or HMs
+ .macro istmrelearneractive destination:req
+ callnative ScrCmd_istmrelearneractive, requests_effects=1
+ .4byte \destination
+ .endm
diff --git a/audio_rules.mk b/audio_rules.mk
index 3fce08ed3a..70d4466409 100644
--- a/audio_rules.mk
+++ b/audio_rules.mk
@@ -20,16 +20,17 @@ $(MID_BUILDDIR)/%.o: $(MID_ASM_DIR)/%.s
$(AS) $(ASFLAGS) -I sound -o $@ $<
# Compressed cries
-$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.aif
- $(AIF) $< $@ --compress
+$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.wav
+# NOTE: If using ipatix's High Quality Audio Mixer, remove "--no-pad" below.
+ $(WAV2AGB) -b -c -l 1 --no-pad $< $@
# Uncompressed cries
$(CRY_BIN_DIR)/uncomp_%.bin: $(CRY_SUBDIR)/uncomp_%.aif
$(AIF) $< $@
# Uncompressed sounds
-$(SOUND_BIN_DIR)/%.bin: sound/%.aif
- $(AIF) $< $@
+$(SOUND_BIN_DIR)/%.bin: sound/%.wav
+ $(WAV2AGB) -b $< $@
# For each line in midi.cfg, we do some trickery to convert it into a make rule for the `.mid` file described on the line
# Data following the colon in said file corresponds to arguments passed into mid2agb
diff --git a/charmap.txt b/charmap.txt
index df9ba3b5a2..a6b688f553 100644
--- a/charmap.txt
+++ b/charmap.txt
@@ -456,6 +456,13 @@ JPN = FC 15
ENG = FC 16
PAUSE_MUSIC = FC 17
RESUME_MUSIC = FC 18
+SPEAKER = FC 19
+
+@ Speaker names, the order must be matching with include/constants/speaker_names.h
+NAME_NONE = 00
+NAME_MOM = 01
+NAME_PLAYER = 02
+NAME_COUNT = 03
@ fonts
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000000..7360c158ef
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,2 @@
+# Enable LTO when making a release build. Disable by setting to 0.
+USE_LTO_ON_RELEASE ?= 1
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index b546558daa..5623654048 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -3361,6 +3361,7 @@ gBattleAnimMove_AquaJet::
visible ANIM_ATTACKER
clearmonbg ANIM_DEF_PARTNER
blendoff
+ setarg 7, 0x1000
end
gBattleAnimMove_AttackOrder::
@@ -31083,6 +31084,17 @@ gBattleAnimStatus_Nightmare::
clearmonbg ANIM_DEF_PARTNER
end
+gBattleAnimStatus_Frostbite::
+ playsewithpan SE_M_ICY_WIND, 0
+ loadspritegfx ANIM_TAG_ICE_CRYSTALS
+ monbg ANIM_DEF_PARTNER
+ splitbgprio ANIM_TARGET
+ call IceCrystalEffectShort
+ createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 5, 7, 0, RGB(0, 20, 31)
+ waitforvisualfinish
+ clearmonbg ANIM_DEF_PARTNER
+ end
+
gBattleAnimGeneral_StatsChange::
createvisualtask AnimTask_StatsChange, 5
waitforvisualfinish
@@ -32122,6 +32134,16 @@ gBattleAnimGeneral_Swamp::
blendoff
end
+gBattleAnimGeneral_SwapToSubstitute::
+ createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, FALSE
+ waitforvisualfinish
+ end
+
+gBattleAnimGeneral_SwapFromSubstitute::
+ createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE
+ waitforvisualfinish
+ end
+
SnatchMoveTrySwapFromSubstitute:
createvisualtask AnimTask_IsAttackerBehindSubstitute, 2
jumprettrue SnatchMoveSwapSubstituteForMon
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 638f81bf7b..6a3e29d17f 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -23,8 +23,6 @@
BattleScript_EffectFickleBeam::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
ficklebeamdamagecalculation
goto BattleScript_HitFromCritCalc
@@ -81,19 +79,14 @@ BattleScript_LowerAtkSpAtkEnd:
BattleScript_EffectSpicyExtract::
attackcanceler
jumpifsubstituteblocks BattleScript_ButItFailed
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_SpicyExtract_CheckShouldSkipAttackAnim
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_SpicyExtract_CheckShouldSkipAttackAnim
goto BattleScript_ButItFailed
BattleScript_SpicyExtract_CheckShouldSkipAttackAnim:
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_SpicyExtract_RaiseAtk
- attackstring
- ppreduce
- bicword gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT
goto BattleScript_SpicyExtract_SkipAttackAnim
BattleScript_SpicyExtract_RaiseAtk:
- attackstring
- ppreduce
attackanimation
waitanimation
BattleScript_SpicyExtract_SkipAttackAnim:
@@ -111,9 +104,7 @@ BattleScript_EffectSpicyExtract_End:
BattleScript_EffectTidyUp::
attackcanceler
- attackstring
pause B_WAIT_TIME_MED
- ppreduce
waitstate
saveattacker
savetarget
@@ -132,31 +123,27 @@ BattleScript_EffectTidyUpDoMoveAnimation::
restoretarget
goto BattleScript_EffectDragonDanceFromStatUp
-BattleScript_EffectUpperHand::
- attackcanceler
- tryupperhand BattleScript_FailedFromAtkString
- goto BattleScript_HitFromAccCheck
-
BattleScript_EffectShedTail::
attackcanceler
- attackstring
- ppreduce
waitstate
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
setsubstitute
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString
- orword gHitMarker, HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_SHEDITSTAIL
waitmessage B_WAIT_TIME_LONG
moveendto MOVEEND_ATTACKER_VISIBLE
moveendfrom MOVEEND_TARGET_VISIBLE
- goto BattleScript_MoveSwitchOpenPartyScreen
+ call BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim
+ switchinanim BS_ATTACKER, FALSE, TRUE
+ waitstate
+ switchineffects BS_ATTACKER
+ end
BattleScript_EffectPsychicNoise::
printstring STRINGID_PKMNPREVENTEDFROMHEALING
@@ -165,14 +152,11 @@ BattleScript_EffectPsychicNoise::
BattleScript_EffectFilletAway::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_FilletAwayTryAttack
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_FilletAwayTryAttack
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ButItFailed
BattleScript_FilletAwayTryAttack::
halvehp BattleScript_ButItFailed
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
setstatchanger STAT_ATK, 2, FALSE
@@ -191,14 +175,12 @@ BattleScript_FilletAwayTrySpeed::
waitmessage B_WAIT_TIME_LONG
BattleScript_FilletAwayEnd::
clearmoveresultflags MOVE_RESULT_NO_EFFECT
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
goto BattleScript_MoveEnd
BattleScript_EffectDoodle::
attackcanceler
- attackstring
- ppreduce
trycopyability BS_ATTACKER, BattleScript_ButItFailed
saveattacker
attackanimation
@@ -208,10 +190,8 @@ BattleScript_EffectDoodle::
BattleScript_EffectDoodle_CopyAbility:
trycopyability BS_ATTACKER, BattleScript_EffectDoodleMoveEnd
BattleScript_EffectDoodle_AfterCopy:
-.if B_ABILITY_POP_UP == TRUE
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
recordability BS_ATTACKER
printstring STRINGID_PKMNCOPIEDFOE
waitmessage B_WAIT_TIME_LONG
@@ -227,7 +207,7 @@ BattleScript_EffectDoodleMoveEnd:
BattleScript_EffectGlaiveRush::
call BattleScript_EffectHit_Ret
jumpifmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TryFaintMon
- setglaiverush
+ setvolatile BS_ATTACKER, VOLATILE_GLAIVE_RUSH, 2
goto BattleScript_TryFaintMon
BattleScript_SyrupBombActivates::
@@ -249,7 +229,6 @@ BattleScript_EffectChillyReception::
printstring STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE
waitmessage B_WAIT_TIME_LONG
attackcanceler
- ppreduce
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalSun
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalRain
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_EffectChillyReceptionBlockedByStrongWinds
@@ -262,7 +241,6 @@ BattleScript_EffectChillyReception::
call BattleScript_MoveWeatherChangeRet
goto BattleScript_MoveSwitch
BattleScript_EffectChillyReceptionPlayAnimation:
- attackstring
attackanimation
waitanimation
return
@@ -279,8 +257,8 @@ BattleScript_EffectChillyReceptionBlockedByStrongWinds:
call BattleScript_MysteriousAirCurrentBlowsOnRet
goto BattleScript_MoveSwitch
BattleScript_EffectChillyReceptionTrySwitchWeatherFailed:
- jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_FailedFromAtkString
- jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_FailedFromAtkString
+ jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
+ jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
call BattleScript_EffectChillyReceptionPlayAnimation
return
@@ -308,6 +286,14 @@ BattleScript_MoveSwitch:
printstring STRINGID_PKMNWENTBACK
waitmessage B_WAIT_TIME_SHORT
BattleScript_MoveSwitchOpenPartyScreen::
+ call BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim
+ switchinanim BS_ATTACKER, FALSE, FALSE
+ waitstate
+ switchineffects BS_ATTACKER
+BattleScript_MoveSwitchEnd:
+ end
+
+BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim:
openpartyscreen BS_ATTACKER, BattleScript_MoveSwitchEnd
waitstate
returntoball BS_ATTACKER, FALSE
@@ -320,18 +306,12 @@ BattleScript_MoveSwitchOpenPartyScreen::
printstring STRINGID_EMPTYSTRING3
waitmessage 1
printstring STRINGID_SWITCHINMON
- switchinanim BS_ATTACKER, FALSE, TRUE
- waitstate
- switchineffects BS_ATTACKER
-BattleScript_MoveSwitchEnd:
- end
+ return
BattleScript_EffectPledge::
attackcanceler
setpledge BattleScript_HitFromAccCheck
- attackstring
pause B_WAIT_TIME_MED
- ppreduce
printstring STRINGID_WAITINGFORPARTNERSMOVE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
@@ -402,26 +382,17 @@ BattleScript_MoveEffectSaltCure::
BattleScript_SaltCureExtraDamage::
playanimation BS_ATTACKER, B_ANIM_SALT_CURE_DAMAGE, NULL
waitanimation
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_TARGETISHURTBYSALTCURE
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
- tryrestorehpberry
+ tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
end2
-BattleScript_HurtTarget_NoString:
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
- return
-
BattleScript_EffectCorrosiveGas::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifsubstituteblocks BattleScript_CorrosiveGasFail
jumpifcantloseitem BS_TARGET, BattleScript_CorrosiveGasFail
attackanimation
@@ -442,8 +413,6 @@ BattleScript_CorrosiveGasFail:
BattleScript_EffectTakeHeart::
attackcanceler
- attackstring
- ppreduce
curestatuswithmove BattleScript_CalmMindTryToRaiseStats
attackanimation
waitanimation
@@ -456,8 +425,6 @@ BattleScript_EffectTakeHeart::
BattleScript_EffectRevivalBlessing::
attackcanceler
- attackstring
- ppreduce
tryrevivalblessing BattleScript_ButItFailed
attackanimation
waitanimation
@@ -490,8 +457,6 @@ BattleScript_SpikesActivates::
BattleScript_EffectAttackUpUserAlly::
jumpifnoally BS_ATTACKER, BattleScript_EffectAttackUp
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_EffectAttackUpUserAlly_Works
jumpifstat BS_ATTACKER_PARTNER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_ButItFailed
BattleScript_EffectAttackUpUserAlly_Works:
@@ -509,7 +474,7 @@ BattleScript_EffectAttackUpUserAlly_TryAlly_:
jumpifblockedbysoundproof BS_ATTACKER_PARTNER, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_End
- jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectAttackUpUserAlly_AllyString
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectAttackUpUserAlly_AllyString
pause B_WAIT_TIME_SHORTEST
printstring STRINGID_TARGETSTATWONTGOHIGHER
waitmessage B_WAIT_TIME_LONG
@@ -528,8 +493,6 @@ BattleScript_EffectAttackUpUserAlly_TryAllyBlocked:
BattleScript_EffectTeatime::
attackcanceler
- attackstring
- ppreduce
jumpifteanoberry BattleScript_ButItFailed
@ at least one battler is affected
attackanimation
@@ -540,10 +503,8 @@ BattleScript_TeatimeLoop:
jumpifelectricabilityaffected BS_TARGET, ABILITY_VOLT_ABSORB, BattleScript_Teatimesorb
jumpifelectricabilityaffected BS_TARGET, ABILITY_MOTOR_DRIVE, BattleScript_Teatimemotor
jumpifteainvulnerable BS_TARGET, BattleScript_Teatimevul @ in semi-invulnerable state OR held item is not a Berry
- orword gHitMarker, HITMARKER_DISABLE_ANIMATION | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries
consumeberry BS_TARGET, TRUE @ consume the berry, then restore the item from changedItems
- bicword gHitMarker, HITMARKER_DISABLE_ANIMATION | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
setbyte sBERRY_OVERRIDE, FALSE
removeitem BS_TARGET
moveendto MOVEEND_NEXT_TARGET
@@ -558,8 +519,8 @@ BattleScript_Teatimevul:
BattleScript_Teatimesorb:
call BattleScript_AbilityPopUpTarget
tryhealquarterhealth BS_TARGET, BattleScript_Teatimesorb_end
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
BattleScript_Teatimesorb_end:
@@ -644,17 +605,13 @@ BattleScript_ShellTrapSetUp::
BattleScript_EffectShellTrap::
attackcanceler
jumpifshelltrap BS_ATTACKER, BattleScript_HitFromAccCheck
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_MoveEnd
- ppreduce
printstring STRINGID_SHELLTRAPDIDNTWORK
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectCourtChange::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
swapsidestatuses
attackanimation
waitanimation
@@ -663,7 +620,6 @@ BattleScript_EffectCourtChange::
goto BattleScript_MoveEnd
BattleScript_BeakBlastSetUp::
- setbeakblast
flushtextbox
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
printstring STRINGID_HEATUPBEAK
@@ -679,9 +635,7 @@ BattleScript_BeakBlastBurn::
BattleScript_EffectSkyDrop::
attackcanceler
jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_SkyDropTurn2
- ppreduce
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifsubstituteblocks BattleScript_ButItFailed
jumpiftargetally BattleScript_ButItFailed
jumpifunder200 BattleScript_SkyDropWork
@@ -696,7 +650,6 @@ BattleScript_SkyDropWork:
goto BattleScript_MoveEnd
BattleScript_SkyDropTurn2:
call BattleScript_TwoTurnMovesSecondTurnRet
- attackstring
clearskydrop BattleScript_SkyDropChangedTarget
jumpiftype BS_TARGET, TYPE_FLYING, BattleScript_SkyDropFlyingType
goto BattleScript_HitFromCritCalc
@@ -726,14 +679,11 @@ BattleScript_SkyDropFlyingAlreadyConfused:
BattleScript_EffectFling::
attackcanceler
- jumpifcantfling BS_ATTACKER, BattleScript_FailedFromAtkString
setlastuseditem BS_ATTACKER
accuracycheck BattleScript_FlingMissed, ACC_CURR_MOVE
- attackstring
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNFLUNG
waitmessage B_WAIT_TIME_SHORT
- ppreduce
critcalc
damagecalc
adjustdamage
@@ -743,28 +693,22 @@ BattleScript_EffectFling::
effectivenesssound
hitanimation BS_TARGET
waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
+ datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
critmessage
waitmessage B_WAIT_TIME_MED
resultmessage
waitmessage B_WAIT_TIME_MED
jumpiflastuseditemberry BattleScript_EffectFlingConsumeBerry
- jumpifability BS_TARGET, ABILITY_SHIELD_DUST, BattleScript_FlingBlockedByShieldDust
- jumpiflastuseditemholdeffect HOLD_EFFECT_FLAME_ORB, 0, BattleScript_FlingFlameOrb
- jumpiflastuseditemholdeffect HOLD_EFFECT_FLINCH, 0, BattleScript_FlingFlinch
- jumpiflastuseditemholdeffect HOLD_EFFECT_LIGHT_BALL, 0, BattleScript_FlingLightBall
- jumpiflastuseditemholdeffect HOLD_EFFECT_MENTAL_HERB, 0, BattleScript_FlingMentalHerb
- jumpiflastuseditemholdeffect HOLD_EFFECT_TYPE_POWER, TYPE_POISON, BattleScript_FlingPoisonBarb
- jumpiflastuseditemholdeffect HOLD_EFFECT_TOXIC_ORB, 0, BattleScript_FlingToxicOrb
- jumpiflastuseditemholdeffect HOLD_EFFECT_WHITE_HERB, 0, BattleScript_FlingWhiteHerb
+ tryflingholdeffect
goto BattleScript_FlingEnd
+
BattleScript_EffectFlingConsumeBerry:
savebattleritem
battleritemtolastuseditem
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
orword gHitMarker, HITMARKER_DISABLE_ANIMATION
- consumeberry BS_TARGET, TRUE
+ consumeberry BS_TARGET, FALSE
bicword gHitMarker, HITMARKER_DISABLE_ANIMATION
setbyte sBERRY_OVERRIDE, 0
restorebattleritem
@@ -775,76 +719,31 @@ BattleScript_FlingEnd:
BattleScript_FlingFailConsumeItem::
removeitem BS_ATTACKER
- goto BattleScript_FailedFromAtkString
+ goto BattleScript_ButItFailed
BattleScript_FlingBlockedByShieldDust::
printstring STRINGID_ITEMWASUSEDUP
waitmessage B_WAIT_TIME_LONG
goto BattleScript_FlingEnd
-BattleScript_FlingFlameOrb:
- seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_BURN
- goto BattleScript_FlingEnd
-BattleScript_FlingFlinch:
- seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_FLINCH
- goto BattleScript_FlingEnd
-BattleScript_FlingLightBall:
- seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_PARALYSIS
- goto BattleScript_FlingEnd
-BattleScript_FlingMentalHerb:
- curecertainstatuses
- saveattacker
- copybyte gBattlerAttacker, gBattlerTarget
- playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL
- printfromtable gMentalHerbCureStringIds
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_ATTACKER
- restoreattacker
- goto BattleScript_FlingEnd
-BattleScript_FlingPoisonBarb:
- seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_POISON
- goto BattleScript_FlingEnd
-BattleScript_FlingToxicOrb:
- seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_TOXIC
- goto BattleScript_FlingEnd
-BattleScript_FlingWhiteHerb:
- tryresetnegativestatstages
- swapattackerwithtarget
- printstring STRINGID_PKMNSTATUSNORMAL
- waitmessage B_WAIT_TIME_MED
- swapattackerwithtarget
- goto BattleScript_FlingEnd
-
BattleScript_FlingMissed:
removeitem BS_ATTACKER
- attackstring
- ppreduce
goto BattleScript_MoveMissedPause
-BattleScript_EffectAuraWheel:: @ Aura Wheel can only be used by Morpeko
- jumpifspecies SPECIES_MORPEKO_FULL_BELLY, BattleScript_EffectHit
- jumpifspecies SPECIES_MORPEKO_HANGRY, BattleScript_EffectHit
- goto BattleScript_PokemonCantUseTheMove
-
BattleScript_EffectClangorousSoul::
attackcanceler
- attackstring
- ppreduce
cutonethirdhpandraisestats BattleScript_ButItFailed
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_BIDE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
attackanimation
waitanimation
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
call BattleScript_AllStatsUp
goto BattleScript_MoveEnd
BattleScript_EffectOctolock::
attackcanceler
- jumpifsubstituteblocks BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ jumpifsubstituteblocks BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
trysetoctolock BattleScript_ButItFailed
attackanimation
waitanimation
@@ -867,21 +766,17 @@ BattleScript_OctlockTurnDmgEnd:
BattleScript_EffectPoltergeist::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
- checkpoltergeist BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ setpoltergeistmessage BattleScript_ButItFailed
printstring STRINGID_ABOUTTOUSEPOLTERGEIST
waitmessage B_WAIT_TIME_LONG
goto BattleScript_HitFromCritCalc
BattleScript_EffectTarShot::
attackcanceler
- jumpifsubstituteblocks BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- cantarshotwork BattleScript_FailedFromAtkString
- attackstring
- ppreduce
+ jumpifsubstituteblocks BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ cantarshotwork BattleScript_ButItFailed
setstatchanger STAT_SPEED, 1, TRUE
attackanimation
waitanimation
@@ -896,10 +791,9 @@ BattleScript_TryTarShot:
BattleScript_EffectNoRetreat::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
- trynoretreat BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ jumpifvolatile BS_TARGET, VOLATILE_NO_RETREAT, BattleScript_ButItFailed
+ setvolatile BS_TARGET, VOLATILE_NO_RETREAT
attackanimation
waitanimation
call BattleScript_AllStatsUp
@@ -956,9 +850,6 @@ BattleScript_MoveEffectLightScreen::
BattleScript_EffectStuffCheeks::
attackcanceler
- attackstring
- ppreduce
- jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
setbyte sBERRY_OVERRIDE, 1
@@ -976,11 +867,9 @@ BattleScript_StuffCheeksEnd:
BattleScript_EffectDecorate::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
- jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 12, BattleScript_DecorateBoost
- jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, 12, BattleScript_DecorateBoost
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_DecorateBoost
+ jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_DecorateBoost
goto BattleScript_ButItFailed
BattleScript_DecorateBoost:
attackanimation
@@ -1000,8 +889,6 @@ BattleScript_DecorateBoostSpAtk:
BattleScript_EffectCoaching::
attackcanceler
- attackstring
- ppreduce
jumpifnoally BS_ATTACKER, BattleScript_ButItFailed
copybyte gBattlerTarget, gBattlerAttacker
setallytonexttarget EffectCoaching_CheckAllyStats
@@ -1029,8 +916,6 @@ BattleScript_CoachingBoostDef:
BattleScript_EffectJungleHealing::
attackcanceler
- attackstring
- ppreduce
jumpifteamhealthy BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1039,9 +924,8 @@ BattleScript_EffectJungleHealing::
JungleHealing_RestoreTargetHealth:
copybyte gBattlerAttacker, gBattlerTarget
tryhealquarterhealth BS_TARGET, BattleScript_JungleHealing_TryCureStatus
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
BattleScript_JungleHealing_TryCureStatus:
@@ -1061,8 +945,6 @@ BattleScript_JungleHealingTryRestoreAlly:
BattleScript_EffectLifeDew::
attackcanceler
- attackstring
- ppreduce
jumpiffullhp BS_ATTACKER, BattleScript_EffectLifeDewCheckPartner
copybyte gBattlerTarget, gBattlerAttacker
attackanimation
@@ -1084,19 +966,16 @@ BattleScript_EffectLifeDewCheckPartner:
setallytonexttarget BattleScript_EffectLifeDewNextTarget
BattleScript_EffectLifeDewHealing:
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
tryhealquarterhealth BS_TARGET, BattleScript_EffectLifeDewEnd
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
return
BattleScript_EffectAllySwitch::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
tryallyswitch BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1108,9 +987,7 @@ BattleScript_EffectAllySwitch::
BattleScript_EffectFairyLock::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
trysetfairylock BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1118,14 +995,6 @@ BattleScript_EffectFairyLock::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_FailIfNotArgType::
- attackcanceler
- attackstring
- ppreduce
- jumpifnotcurrentmoveargtype BS_ATTACKER, BattleScript_ButItFailed
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- goto BattleScript_HitFromCritCalc
-
BattleScript_RemoveFireType::
printstring STRINGID_ATTACKERLOSTFIRETYPE
waitmessage B_WAIT_TIME_LONG
@@ -1148,8 +1017,6 @@ BattleScript_DefDown_Ret:
BattleScript_EffectPurify::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_PurifyWorks
goto BattleScript_ButItFailed
@@ -1160,21 +1027,20 @@ BattleScript_PurifyWorks:
updatestatusicon BS_TARGET
printstring STRINGID_ATTACKERCUREDTARGETSTATUS
waitmessage B_WAIT_TIME_LONG
- tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
+ tryhealhalfhealth BS_ATTACKER, BattleScript_AlreadyAtFullHp
goto BattleScript_RestoreHp
BattleScript_EffectStrengthSap::
setstatchanger STAT_ATK, 1, TRUE
attackcanceler
- jumpifsubstituteblocks BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ jumpifsubstituteblocks BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MIN_STAT_STAGE, BattleScript_StrengthSapTryLower
pause B_WAIT_TIME_SHORT
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
+ setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
goto BattleScript_MoveEnd
BattleScript_StrengthSapTryLower:
getstatvalue STAT_ATK
@@ -1183,7 +1049,7 @@ BattleScript_StrengthSapAnimation:
attackanimation
waitanimation
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_StrengthSapHp
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StrengthSapHp
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_StrengthSapHp
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
@ Drain HP without lowering a stat
@@ -1193,10 +1059,9 @@ BattleScript_StrengthSapHp:
jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd
BattleScript_StrengthSapManipulateDmg:
manipulatedamage DMG_BIG_ROOT
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_StrengthSapLiquidOoze
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNENERGYDRAINED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
@@ -1204,15 +1069,15 @@ BattleScript_StrengthSapLiquidOoze:
call BattleScript_AbilityPopUpTarget
manipulatedamage DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printfromtable gAbsorbDrainStringIds
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_StrengthSapMustLower:
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_MoveEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_MoveEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_MoveEnd
goto BattleScript_StrengthSapAnimation
BattleScript_MoveEffectIncinerate::
@@ -1245,8 +1110,6 @@ BattleScript_CoreEnforcerRet:
BattleScript_EffectLaserFocus::
attackcanceler
- attackstring
- ppreduce
trysetvolatile BS_ATTACKER, VOLATILE_LASER_FOCUS, BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1261,19 +1124,19 @@ BattleScript_VCreateStatLoss::
BattleScript_VCreateStatAnim:
setstatchanger STAT_DEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_VCreateTrySpDef, BIT_SPDEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VCreateTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VCreateTrySpDef
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VCreateTrySpDef:
setstatchanger STAT_SPDEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_VCreateTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VCreateTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VCreateTrySpeed
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VCreateTrySpeed:
setstatchanger STAT_SPEED, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_VCreateStatLossRet
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VCreateStatLossRet
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VCreateStatLossRet
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VCreateStatLossRet:
@@ -1293,9 +1156,7 @@ BattleScript_SpectralThiefSteal::
BattleScript_EffectSpectralThief::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
tryspectralthiefsteal BattleScript_SpectralThiefSteal
BattleScript_EffectSpectralThiefFromDamage:
@@ -1309,12 +1170,10 @@ BattleScript_EffectSpectralThiefFromDamage:
BattleScript_EffectPartingShot::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotTryAtk
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
BattleScript_EffectPartingShotTryAtk:
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
attackanimation
waitanimation
setstatchanger STAT_ATK, 1, TRUE
@@ -1332,9 +1191,7 @@ BattleScript_EffectPartingShotSwitch:
BattleScript_EffectPowder::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, NO_ACC_CALC_CHECK_LOCK_ON
jumpifvolatile BS_TARGET, VOLATILE_POWDER, BattleScript_ButItFailed
setvolatile BS_TARGET, VOLATILE_POWDER
attackanimation
@@ -1345,8 +1202,6 @@ BattleScript_EffectPowder::
BattleScript_EffectAromaticMist::
attackcanceler
- attackstring
- ppreduce
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
jumpiftargetally BattleScript_EffectAromaticMistWorks
goto BattleScript_ButItFailed
@@ -1364,12 +1219,11 @@ BattleScript_EffectAromaticMistWontGoHigher:
pause B_WAIT_TIME_SHORTEST
printstring STRINGID_TARGETSTATWONTGOHIGHER
waitmessage B_WAIT_TIME_LONG
+ setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
goto BattleScript_EffectAromaticMistEnd
BattleScript_EffectMagneticFlux::
attackcanceler
- attackstring
- ppreduce
setbyte gBattleCommunication, 0
BattleScript_EffectMagneticFluxStart:
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectMagneticFluxCheckStats
@@ -1385,14 +1239,14 @@ BattleScript_EffectMagneticFluxTryDef:
BattleScript_EffectMagneticFluxSkipAnim:
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMagneticFluxTrySpDef, BIT_SPDEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectMagneticFluxTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectMagneticFluxTrySpDef
addbyte gBattleCommunication, 1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectMagneticFluxTrySpDef:
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMagneticFluxLoop
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectMagneticFluxLoop
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectMagneticFluxLoop
addbyte gBattleCommunication, 1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
@@ -1405,8 +1259,6 @@ BattleScript_EffectMagneticFluxEnd:
BattleScript_EffectGearUp::
attackcanceler
- attackstring
- ppreduce
setbyte gBattleCommunication, 0
BattleScript_EffectGearUpStart:
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectGearUpCheckStats
@@ -1422,14 +1274,14 @@ BattleScript_EffectGearUpTryAtk:
BattleScript_EffectGearUpSkipAnim:
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectGearUpTrySpAtk, BIT_SPATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectGearUpTrySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectGearUpTrySpAtk
addbyte gBattleCommunication, 1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectGearUpTrySpAtk:
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectGearUpLoop
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectGearUpLoop
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectGearUpLoop
addbyte gBattleCommunication, 1
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
@@ -1443,10 +1295,8 @@ BattleScript_EffectGearUpEnd:
BattleScript_EffectAcupressure::
attackcanceler
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectAcupressureTry
- jumpifvolatile BS_TARGET, VOLATILE_SUBSTITUTE, BattleScript_PrintMoveMissed
+ jumpifvolatile BS_TARGET, VOLATILE_SUBSTITUTE, BattleScript_MoveMissedPause
BattleScript_EffectAcupressureTry:
- attackstring
- ppreduce
tryacupressure BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1462,9 +1312,7 @@ BattleScript_MoveEffectFeint::
BattleScript_EffectThirdType::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
trythirdtype BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1474,8 +1322,6 @@ BattleScript_EffectThirdType::
BattleScript_EffectFlowerShield::
attackcanceler
- attackstring
- ppreduce
savetarget
selectfirstvalidtarget
BattleScript_FlowerShieldIsAnyValidTarget:
@@ -1494,8 +1340,8 @@ BattleScript_FlowerShieldLoop:
BattleScript_FlowerShieldLoop2:
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_FlowerShieldMoveTargetEnd
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlowerShieldDoAnim
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_FlowerShieldMoveTargetEnd
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_FlowerShieldDoAnim
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_FlowerShieldMoveTargetEnd
pause 21
goto BattleScript_FlowerShieldString
BattleScript_FlowerShieldDoAnim:
@@ -1509,13 +1355,11 @@ BattleScript_FlowerShieldMoveTargetEnd:
moveendto MOVEEND_NEXT_TARGET
jumpifnexttargetvalid BattleScript_FlowerShieldLoop
restoretarget
- moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER
+ moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_1
end
BattleScript_EffectRototiller::
attackcanceler
- attackstring
- ppreduce
getrototillertargets BattleScript_ButItFailed
@ at least one battler is affected
attackanimation
@@ -1530,13 +1374,13 @@ BattleScript_RototillerCheckAffected:
jumpifnotrototilleraffected BattleScript_RototillerNoEffect
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerTrySpAtk, BIT_SPATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RototillerTrySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RototillerTrySpAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_RototillerTrySpAtk::
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerMoveTargetEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RototillerMoveTargetEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RototillerMoveTargetEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_RototillerMoveTargetEnd:
@@ -1560,23 +1404,20 @@ BattleScript_RototillerNoEffect:
BattleScript_EffectBestow::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, NO_ACC_CALC_CHECK_LOCK_ON
jumpifsubstituteblocks BattleScript_ButItFailed
trybestow BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_BESTOWITEMGIVING
waitmessage B_WAIT_TIME_LONG
+ tryactivateitem BS_TARGET, ACTIVATION_ON_USABLE_AGAIN
trysymbiosis BS_ATTACKER
goto BattleScript_MoveEnd
BattleScript_EffectAfterYou::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
tryafteryou BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1587,17 +1428,14 @@ BattleScript_EffectAfterYou::
BattleScript_MoveEffectFlameBurst::
printstring STRINGID_BURSTINGFLAMESHIT
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
tryfaintmon BS_SCRIPTING
return
BattleScript_EffectPowerTrick::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
powertrick
attackanimation
waitanimation
@@ -1607,9 +1445,7 @@ BattleScript_EffectPowerTrick::
BattleScript_EffectPsychoShift::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifstatus BS_ATTACKER, STATUS1_ANY, BattleScript_EffectPsychoShiftCanWork
goto BattleScript_ButItFailed
BattleScript_EffectPsychoShiftCanWork:
@@ -1631,9 +1467,7 @@ BattleScript_EffectPsychoShiftCanWork:
BattleScript_EffectSynchronoise::
attackcanceler
- attackstring
pause B_WAIT_TIME_MED
- ppreduce
trysynchronoise BattleScript_MoveEnd
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
@@ -1659,23 +1493,29 @@ BattleScript_EffectHitEnemyHealAlly::
BattleScript_EffectDefog::
setstatchanger STAT_EVASION, 1, TRUE
attackcanceler
+ jumpifgenconfiglowerthan CONFIG_DEFOG_EFFECT_CLEARING, GEN_5, BattleScript_DefogAfterSubstituteCheck
jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards
+BattleScript_DefogAfterSubstituteCheck:
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, MIN_STAT_STAGE, BattleScript_DefogWorks
BattleScript_DefogIfCanClearHazards:
- trydefog FALSE, BattleScript_FailedFromAtkString
+ trydefog FALSE, BattleScript_ButItFailed
BattleScript_DefogWorks:
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ jumpifgenconfiglowerthan CONFIG_DEFOG_EFFECT_CLEARING, GEN_5, BattleScript_DefogWorksAfterSubstituteCheck
+ jumpifsubstituteblocks BattleScript_DefogTryHazardsWithAnim
+BattleScript_DefogWorksAfterSubstituteCheck:
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_DefogTryHazardsWithAnim
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefogDoAnim
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_DefogTryHazardsWithAnim
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefogDoAnim
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_DefogTryHazardsWithAnim
pause B_WAIT_TIME_SHORT
+ setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
goto BattleScript_DefogPrintString
BattleScript_DefogDoAnim::
attackanimation
waitanimation
+ call BattleScript_SwapFromSubstitute
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_DefogTryHazards
+ call BattleScript_SwapToSubstitute
BattleScript_DefogPrintString::
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
@@ -1695,23 +1535,9 @@ BattleScript_MoveEffectDefog::
restoreattacker
return
-BattleScript_EffectCopycat::
- attackcanceler
- attackstring
- pause 5
- trycopycat BattleScript_CopycatFail
- attackanimation
- waitanimation
- jumptocalledmove TRUE
-BattleScript_CopycatFail:
- ppreduce
- goto BattleScript_ButItFailed
-
BattleScript_EffectInstruct::
attackcanceler
- attackstring
- ppreduce
- pause 5
+ pause B_WAIT_TIME_SHORT
tryinstruct BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1724,10 +1550,8 @@ BattleScript_EffectInstruct::
BattleScript_EffectAutotomize::
setstatchanger STAT_SPEED, 2, FALSE
attackcanceler
- attackstring
- ppreduce
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_AutotomizeWeightLoss
- jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AutotomizeAttackAnim
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AutotomizeAttackAnim
pause B_WAIT_TIME_SHORT
goto BattleScript_AutotomizePrintString
BattleScript_AutotomizeAttackAnim::
@@ -1746,8 +1570,8 @@ BattleScript_AutotomizeWeightLoss::
BattleScript_FinalGambit::
setatkhptozero
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
return
@@ -1765,17 +1589,15 @@ BattleScript_HitSwitchTargetForceRandomSwitchFailed:
BattleScript_EffectToxicThread::
setstatchanger STAT_SPEED, 1, TRUE
attackcanceler
- jumpifsubstituteblocks BattleScript_FailedFromAtkString
+ jumpifsubstituteblocks BattleScript_ButItFailed
checknonvolatiletrigger MOVE_EFFECT_POISON, BattleScript_EffectStatDownFromAccCheck
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
attackanimation
waitanimation
setstatchanger STAT_SPEED, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_ToxicThreadTryPsn
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_ToxicThreadDoAnim
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_ToxicThreadTryPsn
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ToxicThreadDoAnim
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_ToxicThreadTryPsn
pause B_WAIT_TIME_SHORT
goto BattleScript_ToxicThreadPrintString
BattleScript_ToxicThreadDoAnim::
@@ -1789,8 +1611,6 @@ BattleScript_ToxicThreadTryPsn::
BattleScript_EffectVenomDrench::
attackcanceler
- attackstring
- ppreduce
jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_EffectVenomDrenchCanBeUsed
goto BattleScript_ButItFailed
BattleScript_EffectVenomDrenchCanBeUsed:
@@ -1803,19 +1623,19 @@ BattleScript_VenomDrenchDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpAtk, BIT_SPATK | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchTryLowerSpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VenomDrenchTryLowerSpAtk
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VenomDrenchTryLowerSpAtk::
setstatchanger STAT_SPATK, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchTryLowerSpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VenomDrenchTryLowerSpeed
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VenomDrenchTryLowerSpeed::
setstatchanger STAT_SPEED, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_VenomDrenchEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VenomDrenchEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VenomDrenchEnd::
@@ -1823,8 +1643,6 @@ BattleScript_VenomDrenchEnd::
BattleScript_EffectNobleRoar::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_NobleRoarDoMoveAnim
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
BattleScript_NobleRoarDoMoveAnim::
@@ -1833,13 +1651,13 @@ BattleScript_NobleRoarDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_NobleRoarTryLowerSpAtk, BIT_SPATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_NobleRoarTryLowerSpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_NobleRoarTryLowerSpAtk
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_NobleRoarTryLowerSpAtk::
setstatchanger STAT_SPATK, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_NobleRoarEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_NobleRoarEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_NobleRoarEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_NobleRoarEnd::
@@ -1847,8 +1665,6 @@ BattleScript_NobleRoarEnd::
BattleScript_EffectShellSmash::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef
@@ -1859,48 +1675,38 @@ BattleScript_ShellSmashTryDef::
waitanimation
setstatchanger STAT_DEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_ShellSmashTrySpDef, BIT_SPDEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShellSmashTrySpDef:
setstatchanger STAT_SPDEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_ShellSmashTryAttack
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTryAttack
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTryAttack
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShellSmashTryAttack:
setstatchanger STAT_ATK, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashTrySpAtk, BIT_SPATK | BIT_SPEED,
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTrySpAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShellSmashTrySpAtk:
setstatchanger STAT_SPATK, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShellSmashTrySpeed:
setstatchanger STAT_SPEED, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShellSmashEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShellSmashEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShellSmashEnd:
goto BattleScript_MoveEnd
-BattleScript_EffectLastResort::
- attackcanceler
- attackstring
- ppreduce
- trylastresort BattleScript_ButItFailed
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- goto BattleScript_HitFromCritCalc
-
BattleScript_EffectGrowth::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_GrowthDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
BattleScript_GrowthDoMoveAnim::
@@ -1913,7 +1719,7 @@ BattleScript_GrowthAtk2:
setstatchanger STAT_ATK, 2, FALSE
BattleScript_GrowthAtk:
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GrowthTrySpAtk, BIT_SPATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GrowthTrySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GrowthTrySpAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_GrowthTrySpAtk::
@@ -1924,7 +1730,7 @@ BattleScript_GrowthSpAtk2:
setstatchanger STAT_SPATK, 2, FALSE
BattleScript_GrowthSpAtk:
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GrowthEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GrowthEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GrowthEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_GrowthEnd:
@@ -1932,9 +1738,7 @@ BattleScript_GrowthEnd:
BattleScript_EffectSoak::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifability BS_TARGET, ABILITY_MULTITYPE, BattleScript_ButItFailed
jumpifability BS_TARGET, ABILITY_RKS_SYSTEM, BattleScript_ButItFailed
jumpifsubstituteblocks BattleScript_ButItFailed
@@ -1947,9 +1751,7 @@ BattleScript_EffectSoak::
BattleScript_EffectReflectType::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
tryreflecttype BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1959,9 +1761,7 @@ BattleScript_EffectReflectType::
BattleScript_EffectElectrify::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
tryelectrify BattleScript_ButItFailed
attackanimation
waitanimation
@@ -1971,8 +1771,6 @@ BattleScript_EffectElectrify::
BattleScript_EffectShiftGear::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ShiftGearDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
BattleScript_ShiftGearDoMoveAnim:
@@ -1985,13 +1783,13 @@ BattleScript_ShiftGearSpeedBy1:
setstatchanger STAT_SPEED, 1, FALSE
BattleScript_ShiftGearDoSpeed:
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShiftGearTryAtk, BIT_ATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShiftGearTryAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShiftGearTryAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShiftGearTryAtk:
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_ShiftGearEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShiftGearEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_ShiftGearEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_ShiftGearEnd:
@@ -1999,8 +1797,6 @@ BattleScript_ShiftGearEnd:
BattleScript_EffectCoil::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_CoilDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CoilDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
@@ -2009,19 +1805,19 @@ BattleScript_CoilDoMoveAnim:
waitanimation
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CoilTryDef, BIT_DEF | BIT_ACC
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilTryDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CoilTryDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CoilTryDef:
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CoilTryAcc, BIT_ACC
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilTryAcc
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CoilTryAcc
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CoilTryAcc:
setstatchanger STAT_ACC, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CoilEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CoilEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CoilEnd:
@@ -2029,8 +1825,6 @@ BattleScript_CoilEnd:
BattleScript_EffectQuiverDance::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_QuiverDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_QuiverDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
@@ -2039,19 +1833,19 @@ BattleScript_QuiverDanceDoMoveAnim::
waitanimation
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceTrySpDef, BIT_SPDEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_QuiverDanceTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_QuiverDanceTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_QuiverDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_QuiverDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_QuiverDanceEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_QuiverDanceEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_QuiverDanceEnd::
@@ -2059,8 +1853,6 @@ BattleScript_QuiverDanceEnd::
BattleScript_EffectVictoryDance::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_VictoryDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_VictoryDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
@@ -2069,36 +1861,26 @@ BattleScript_VictoryDanceDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceTryDef, BIT_DEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VictoryDanceTryDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VictoryDanceTryDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VictoryDanceTryDef::
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VictoryDanceTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VictoryDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VictoryDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_VictoryDanceEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VictoryDanceEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_VictoryDanceEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_VictoryDanceEnd::
goto BattleScript_MoveEnd
-BattleScript_EffectMeFirst::
- attackcanceler
- attackstring
- trymefirst BattleScript_FailedFromPpReduce
- attackanimation
- waitanimation
- jumptocalledmove TRUE
-
BattleScript_EffectAttackSpAttackUp::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AttackSpAttackUpDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
BattleScript_AttackSpAttackUpDoMoveAnim::
@@ -2106,13 +1888,13 @@ BattleScript_AttackSpAttackUpDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackSpAttackUpTrySpAtk, BIT_SPATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackSpAttackUpTrySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackSpAttackUpTrySpAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_AttackSpAttackUpTrySpAtk::
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackSpAttackUpEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackSpAttackUpEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackSpAttackUpEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_AttackSpAttackUpEnd:
@@ -2120,8 +1902,6 @@ BattleScript_AttackSpAttackUpEnd:
BattleScript_EffectAttackAccUp::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AttackAccUpDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
BattleScript_AttackAccUpDoMoveAnim::
@@ -2129,13 +1909,13 @@ BattleScript_AttackAccUpDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackAccUpTryAcc, BIT_ACC
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackAccUpTryAcc
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackAccUpTryAcc
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_AttackAccUpTryAcc::
setstatchanger STAT_ACC, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_AttackAccUpEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackAccUpEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackAccUpEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_AttackAccUpEnd:
@@ -2146,8 +1926,6 @@ BattleScript_EffectGrassyTerrain::
BattleScript_EffectElectricTerrain::
BattleScript_EffectPsychicTerrain::
attackcanceler
- attackstring
- ppreduce
setterrain BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2159,8 +1937,6 @@ BattleScript_EffectPsychicTerrain::
BattleScript_EffectTopsyTurvy::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 6, BattleScript_EffectTopsyTurvyWorks
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_DEF, 6, BattleScript_EffectTopsyTurvyWorks
@@ -2179,9 +1955,7 @@ BattleScript_EffectTopsyTurvyWorks:
BattleScript_EffectIonDeluge::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
orword gFieldStatuses, STATUS_FIELD_ION_DELUGE
attackanimation
waitanimation
@@ -2191,9 +1965,7 @@ BattleScript_EffectIonDeluge::
BattleScript_EffectQuash::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
tryquash BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2203,8 +1975,6 @@ BattleScript_EffectQuash::
BattleScript_EffectHealPulse::
attackcanceler
- attackstring
- ppreduce
jumpifvolatile BS_ATTACKER, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
jumpifvolatile BS_TARGET, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
@@ -2212,21 +1982,19 @@ BattleScript_EffectHealPulse::
tryhealpulse BattleScript_AlreadyAtFullHp
attackanimation
waitanimation
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectEntrainment::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
tryentrainment BattleScript_ButItFailed
attackanimation
waitanimation
- setlastusedability
+ switchinabilities BS_TARGET
printstring STRINGID_PKMNACQUIREDABILITY
waitmessage B_WAIT_TIME_LONG
trytoclearprimalweather
@@ -2235,37 +2003,8 @@ BattleScript_EffectEntrainment::
tryendneutralizinggas
goto BattleScript_MoveEnd
-BattleScript_EffectSimpleBeam::
- attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
- setsimplebeam BattleScript_ButItFailed
- attackanimation
- waitanimation
-.if B_ABILITY_POP_UP == TRUE
- copybyte gBattlerAbility, gBattlerTarget
- call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
- recordability BS_TARGET
- printstring STRINGID_PKMNACQUIREDSIMPLE
- waitmessage B_WAIT_TIME_LONG
- trytoclearprimalweather
- tryrevertweatherform
- flushtextbox
- tryendneutralizinggas
- goto BattleScript_MoveEnd
-
-BattleScript_EffectSuckerPunch::
- attackcanceler
- suckerpunchcheck BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- goto BattleScript_HitFromAtkString
-
BattleScript_EffectLuckyChant::
attackcanceler
- attackstring
- ppreduce
setluckychant BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2275,10 +2014,8 @@ BattleScript_EffectLuckyChant::
BattleScript_EffectMetalBurst::
attackcanceler
- metalburstdamagecalculator BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ metalburstdamagecalculator BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
adjustdamage
@@ -2286,16 +2023,14 @@ BattleScript_EffectMetalBurst::
BattleScript_EffectHealingWish::
attackcanceler
- jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_FailedFromAtkString
- attackstring
- ppreduce
+ jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
instanthpdrop
setatkhptozero
tryfaintmon BS_ATTACKER
storehealingwish BS_ATTACKER
- jumpifgenconfiglowerthan GEN_CONFIG_HEALING_WISH_SWITCH, GEN_5, BattleScript_EffectHealingWishGen4
+ jumpifgenconfiglowerthan CONFIG_HEALING_WISH_SWITCH, GEN_5, BattleScript_EffectHealingWishGen4
BattleScript_EffectHealingWishEnd:
moveendall
end
@@ -2331,8 +2066,8 @@ BattleScript_EffectHealingWishRestore:
waitanimation
dmgtomaxattackerhp
manipulatedamage DMG_CHANGE_SIGN
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
clearstatus
waitstate
updatestatusicon BS_ATTACKER
@@ -2341,18 +2076,14 @@ BattleScript_EffectHealingWishRestore:
waitmessage B_WAIT_TIME_LONG
return
-BattleScript_EffectWorrySeed::
+BattleScript_EffectOverwriteAbility::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
- tryworryseed BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ tryoverwriteability BattleScript_ButItFailed
attackanimation
waitanimation
-.if B_ABILITY_POP_UP == TRUE
copybyte gBattlerAbility, gBattlerTarget
call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
recordability BS_TARGET
printstring STRINGID_PKMNACQUIREDABILITY
waitmessage B_WAIT_TIME_LONG
@@ -2364,8 +2095,6 @@ BattleScript_EffectWorrySeed::
BattleScript_EffectPowerSplit::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
averagestats STAT_ATK
averagestats STAT_SPATK
@@ -2377,8 +2106,6 @@ BattleScript_EffectPowerSplit::
BattleScript_EffectGuardSplit::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
averagestats STAT_DEF
averagestats STAT_SPDEF
@@ -2390,8 +2117,6 @@ BattleScript_EffectGuardSplit::
BattleScript_EffectHeartSwap::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
swapstatstages STAT_ATK
swapstatstages STAT_DEF
@@ -2408,8 +2133,6 @@ BattleScript_EffectHeartSwap::
BattleScript_EffectPowerSwap::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
swapstatstages STAT_ATK
swapstatstages STAT_SPATK
@@ -2421,8 +2144,6 @@ BattleScript_EffectPowerSwap::
BattleScript_EffectGuardSwap::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
swapstatstages STAT_DEF
swapstatstages STAT_SPDEF
@@ -2434,8 +2155,6 @@ BattleScript_EffectGuardSwap::
BattleScript_EffectSpeedSwap::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
swapstats STAT_SPEED
attackanimation
@@ -2446,9 +2165,7 @@ BattleScript_EffectSpeedSwap::
BattleScript_EffectTelekinesis::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, NO_ACC_CALC_CHECK_LOCK_ON
settelekinesis BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2458,8 +2175,6 @@ BattleScript_EffectTelekinesis::
BattleScript_EffectStealthRock::
attackcanceler
- attackstring
- ppreduce
setstealthrock BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2469,8 +2184,6 @@ BattleScript_EffectStealthRock::
BattleScript_EffectStickyWeb::
attackcanceler
- attackstring
- ppreduce
setstickyweb BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2480,9 +2193,7 @@ BattleScript_EffectStickyWeb::
BattleScript_EffectGastroAcid::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifvolatile BS_TARGET, VOLATILE_GASTRO_ACID, BattleScript_ButItFailed
setgastroacid BattleScript_ButItFailed
attackanimation
@@ -2497,8 +2208,6 @@ BattleScript_EffectGastroAcid::
BattleScript_EffectToxicSpikes::
attackcanceler
- attackstring
- ppreduce
settoxicspikes BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2508,8 +2217,6 @@ BattleScript_EffectToxicSpikes::
BattleScript_EffectMagnetRise::
attackcanceler
- attackstring
- ppreduce
jumpifvolatile BS_ATTACKER, VOLATILE_ROOT, BattleScript_ButItFailed
jumpifvolatile BS_ATTACKER, VOLATILE_SMACK_DOWN, BattleScript_ButItFailed
trysetvolatile BS_ATTACKER, VOLATILE_MAGNET_RISE, BattleScript_ButItFailed
@@ -2521,8 +2228,6 @@ BattleScript_EffectMagnetRise::
BattleScript_EffectTrickRoom::
attackcanceler
- attackstring
- ppreduce
setroom
attackanimation
waitanimation
@@ -2547,8 +2252,6 @@ BattleScript_RoomServiceLoop_NextBattler:
BattleScript_EffectWonderRoom::
BattleScript_EffectMagicRoom::
attackcanceler
- attackstring
- ppreduce
setroom
attackanimation
waitanimation
@@ -2558,8 +2261,6 @@ BattleScript_EffectMagicRoom::
BattleScript_EffectAquaRing::
attackcanceler
- attackstring
- ppreduce
setvolatile BS_ATTACKER, VOLATILE_AQUA_RING
attackanimation
waitanimation
@@ -2569,9 +2270,7 @@ BattleScript_EffectAquaRing::
BattleScript_EffectEmbargo::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
setembargo BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2581,8 +2280,6 @@ BattleScript_EffectEmbargo::
BattleScript_EffectTailwind::
attackcanceler
- attackstring
- ppreduce
settailwind BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2611,26 +2308,23 @@ BattleScript_TryTailwindAbilitiesLoop_WindRider:
BattleScript_TryTailwindAbilitiesLoop_WindPower:
call BattleScript_AbilityPopUp
- setcharge BS_TARGET
+ setvolatile BS_TARGET, VOLATILE_CHARGE_TIMER, 2
printstring STRINGID_BEINGHITCHARGEDPKMNWITHPOWER
waitmessage B_WAIT_TIME_LONG
goto BattleScript_TryTailwindAbilitiesLoop_Increment
BattleScript_EffectMiracleEye::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
setvolatile BS_TARGET, VOLATILE_MIRACLE_EYE
goto BattleScript_IdentifiedFoe
+
BattleScript_EffectGravity::
call BattleScript_EffectGravityInternal
goto BattleScript_MoveEnd
BattleScript_EffectGravityInternal:
attackcanceler
- attackstring
- ppreduce
setgravity BattleScript_ButItFailed
attackanimation
waitanimation
@@ -2657,29 +2351,23 @@ BattleScript_GravityLoopEnd:
BattleScript_EffectRoost::
attackcanceler
- attackstring
- ppreduce
- tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
+ tryhealhalfhealth BS_TARGET, BattleScript_AlreadyAtFullHp
setroost
goto BattleScript_PresentHealTarget
BattleScript_EffectCaptivate::
setstatchanger STAT_SPATK, 2, TRUE
attackcanceler
- attackstring
- ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
jumpifcaptivateaffected BattleScript_CaptivateCheckAcc
goto BattleScript_ButItFailed
BattleScript_CaptivateCheckAcc:
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
- goto BattleScript_StatDownFromAttackString
+ goto BattleScript_EffectStatDownFromStatBuffChange
BattleScript_EffectHealBlock::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
sethealblock BattleScript_ButItFailed
attackanimation
@@ -2698,8 +2386,6 @@ BattleScript_HitEscapeSwitch:
BattleScript_EffectPlaceholder::
attackcanceler
- attackstring
- ppreduce
pause 5
printstring STRINGID_NOTDONEYET
goto BattleScript_MoveEnd
@@ -2707,10 +2393,7 @@ BattleScript_EffectPlaceholder::
BattleScript_EffectHit::
attackcanceler
BattleScript_HitFromAccCheck::
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
-BattleScript_HitFromAtkString::
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
BattleScript_HitFromCritCalc::
critcalc
damagecalc
@@ -2726,9 +2409,7 @@ BattleScript_MoveEnd::
BattleScript_EffectHit_Ret::
attackcanceler
BattleScript_EffectHit_RetFromAccCheck::
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
BattleScript_EffectHit_RetFromCritCalc::
critcalc
damagecalc
@@ -2739,8 +2420,8 @@ BattleScript_Hit_RetFromAtkAnimation::
effectivenesssound
hitanimation BS_TARGET
waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
+ datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
@@ -2750,8 +2431,6 @@ BattleScript_Hit_RetFromAtkAnimation::
BattleScript_EffectNaturalGift::
attackcanceler
- attackstring
- ppreduce
jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_MAGIC_ROOM, BattleScript_ButItFailed
jumpifability BS_ATTACKER, ABILITY_KLUTZ, BattleScript_ButItFailed
@@ -2761,9 +2440,6 @@ BattleScript_EffectNaturalGift::
BattleScript_MakeMoveMissed::
setmoveresultflags MOVE_RESULT_MISSED
-BattleScript_PrintMoveMissed::
- attackstring
- ppreduce
BattleScript_MoveMissedPause::
pause B_WAIT_TIME_SHORT
BattleScript_MoveMissed::
@@ -2781,7 +2457,7 @@ BattleScript_TerrainPreventsEnd2::
BattleScript_ImmunityProtectedEnd2::
call BattleScript_AbilityPopUp
pause B_WAIT_TIME_SHORT
- printfromtable gStatusPreventionStringIds
+ printstring STRINGID_ITDOESNTAFFECT
waitmessage B_WAIT_TIME_LONG
end2
@@ -2835,14 +2511,6 @@ BattleScript_AromaVeilProtects:
setmoveresultflags MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
-BattleScript_PastelVeilProtects:
- pause B_WAIT_TIME_SHORT
- call BattleScript_AbilityPopUp
- printstring STRINGID_PASTELVEILPROTECTED
- waitmessage B_WAIT_TIME_LONG
- setmoveresultflags MOVE_RESULT_FAILED
- goto BattleScript_MoveEnd
-
BattleScript_AbilityProtectsDoesntAffectRet::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
@@ -2855,7 +2523,7 @@ BattleScript_AbilityProtectsDoesntAffect::
setmoveresultflags MOVE_RESULT_FAILED
goto BattleScript_MoveEnd
-BattleScript_InsomniaProtects:
+BattleScript_InsomniaProtects::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSTAYEDAWAKEUSING
@@ -2884,24 +2552,21 @@ BattleScript_EffectAbsorbLiquidOoze::
goto BattleScript_EffectAbsorb
BattleScript_EffectAbsorb::
- absorbhealthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printfromtable gAbsorbDrainStringIds
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
- bicword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_PASSIVE_HP_UPDATE
BattleScript_EffectAbsorbRet:
return
BattleScript_EffectExplosion::
attackcanceler
- attackstring
- ppreduce
tryexplosion
setatkhptozero
waitstate
jumpiffainted BS_TARGET, TRUE, BattleScript_MoveEnd
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_FaintAttackerForExplosion::
@@ -2909,30 +2574,20 @@ BattleScript_FaintAttackerForExplosion::
return
BattleScript_MaxHp50Recoil::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
return
BattleScript_EffectDreamEater::
attackcanceler
+.if B_DREAM_EATER_SUBSTITUTE < GEN_5
jumpifsubstituteblocks BattleScript_DoesntAffectTargetAtkString
+.endif
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_HitFromAccCheck
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_HitFromAccCheck
goto BattleScript_DoesntAffectTargetAtkString
-BattleScript_EffectMirrorMove::
- attackcanceler
- attackstring
- pause B_WAIT_TIME_LONG
- trymirrormove
- ppreduce
- setmoveresultflags MOVE_RESULT_FAILED
- printstring STRINGID_MIRRORMOVEFAILED
- waitmessage B_WAIT_TIME_LONG
- goto BattleScript_MoveEnd
-
BattleScript_EffectAttackUp::
setstatchanger STAT_ATK, 1, FALSE
goto BattleScript_EffectStatUp
@@ -2962,11 +2617,10 @@ BattleScript_EffectEvasionUp::
BattleScript_EffectStatUp::
attackcanceler
BattleScript_EffectStatUpAfterAtkCanceler::
- attackstring
- ppreduce
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatUpEnd
- jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpAttackAnim
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpAttackAnim
pause B_WAIT_TIME_SHORT
+ setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
goto BattleScript_StatUpPrintString
BattleScript_StatUpAttackAnim::
attackanimation
@@ -3012,17 +2666,15 @@ BattleScript_EffectEvasionDown::
setstatchanger STAT_EVASION, 1, TRUE
BattleScript_EffectStatDown:
attackcanceler
- jumpifsubstituteblocks BattleScript_FailedFromAtkString
+ jumpifsubstituteblocks BattleScript_ButItFailed
BattleScript_EffectStatDownFromAccCheck:
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
-BattleScript_StatDownFromAttackString:
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
BattleScript_EffectStatDownFromStatBuffChange:
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatDownEnd
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StatDownDoAnim
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StatDownEnd
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatDownDoAnim
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_StatDownEnd
pause B_WAIT_TIME_SHORT
+ setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary?
goto BattleScript_StatDownPrintString
BattleScript_StatDownDoAnim::
attackanimation
@@ -3041,7 +2693,7 @@ BattleScript_MirrorArmorReflect::
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_MirrorArmorDoesntAffect
BattleScript_MirrorArmorReflectStatLoss:
statbuffchange BS_ATTACKER, STAT_CHANGE_MIRROR_ARMOR | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorArmorReflectEnd
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_MirrorArmorReflectPrintString
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_MirrorArmorReflectPrintString
goto BattleScript_MirrorArmorReflectWontFall
BattleScript_MirrorArmorReflectPrintString:
printfromtable gStatDownStringIds
@@ -3075,8 +2727,6 @@ BattleScript_StatDown::
BattleScript_EffectHaze::
attackcanceler
- attackstring
- ppreduce
attackanimation
waitanimation
normalisebuffs
@@ -3086,8 +2736,6 @@ BattleScript_EffectHaze::
BattleScript_EffectBide::
attackcanceler
- attackstring
- ppreduce
attackanimation
waitanimation
setbide
@@ -3095,8 +2743,6 @@ BattleScript_EffectBide::
BattleScript_EffectRoar::
attackcanceler
- attackstring
- ppreduce
jumpifroarfails BattleScript_ButItFailed
jumpifcommanderactive BattleScript_ButItFailed
jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_ButItFailed
@@ -3127,8 +2773,6 @@ BattleScript_ScaleShot::
BattleScript_EffectConversion::
attackcanceler
- attackstring
- ppreduce
tryconversiontypechange BattleScript_ButItFailed
attackanimation
waitanimation
@@ -3138,15 +2782,12 @@ BattleScript_EffectConversion::
BattleScript_EffectRestoreHp::
attackcanceler
- attackstring
- ppreduce
- tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
+ tryhealhalfhealth BS_ATTACKER, BattleScript_AlreadyAtFullHp
attackanimation
waitanimation
BattleScript_RestoreHp:
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
@@ -3160,29 +2801,20 @@ BattleScript_AlreadyPoisoned::
BattleScript_ImmunityProtected::
call BattleScript_AbilityPopUp
- pause B_WAIT_TIME_SHORT
- printfromtable gStatusPreventionStringIds
- waitmessage B_WAIT_TIME_LONG
- goto BattleScript_MoveEnd
+ goto BattleScript_DoesntAffectTargetAtkString
BattleScript_EffectAuroraVeil::
attackcanceler
- attackstring
- ppreduce
setauroraveil
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectLightScreen::
attackcanceler
- attackstring
- ppreduce
setlightscreen
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectRest::
attackcanceler
- attackstring
- ppreduce
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep
jumpifuproarwakes BattleScript_RestCantSleep
@@ -3190,7 +2822,7 @@ BattleScript_EffectRest::
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_InsomniaProtects
jumpifability BS_ATTACKER, ABILITY_PURIFYING_SALT, BattleScript_InsomniaProtects
jumpifabilitypreventsrest BS_TARGET, BattleScript_AbilityPreventsRest
- trysetrest BattleScript_AlreadyAtFullHp
+ trysetrest
pause B_WAIT_TIME_SHORT
printfromtable gRestUsedStringIds
waitmessage B_WAIT_TIME_LONG
@@ -3219,12 +2851,9 @@ BattleScript_AbilityPreventsRest::
BattleScript_EffectOHKO::
attackcanceler
- attackstring
- ppreduce
typecalc
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
tryKO BattleScript_KOFail
- trysetdestinybondtohappen
goto BattleScript_HitFromAtkAnimation
BattleScript_KOFail::
pause B_WAIT_TIME_LONG
@@ -3236,16 +2865,14 @@ BattleScript_RecoilIfMiss::
printstring STRINGID_PKMNCRASHED
waitmessage B_WAIT_TIME_LONG
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_RecoilEnd
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
+BattleScript_RecoilEnd:
return
BattleScript_EffectMist::
attackcanceler
- attackstring
- ppreduce
setmist
attackanimation
waitanimation
@@ -3255,8 +2882,6 @@ BattleScript_EffectMist::
BattleScript_EffectFocusEnergy::
attackcanceler
- attackstring
- ppreduce
jumpifvolatile BS_ATTACKER, VOLATILE_DRAGON_CHEER, BattleScript_ButItFailed
jumpifvolatile BS_ATTACKER, VOLATILE_FOCUS_ENERGY, BattleScript_ButItFailed
setfocusenergy BS_TARGET
@@ -3268,8 +2893,6 @@ BattleScript_EffectFocusEnergy::
BattleScript_EffectConfuse::
attackcanceler
- attackstring
- ppreduce
jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
jumpifsubstituteblocks BattleScript_ButItFailed
jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_AlreadyConfused
@@ -3328,8 +2951,6 @@ BattleScript_EffectEvasionUp2::
BattleScript_EffectTransform::
attackcanceler
- attackstring
- ppreduce
trytoclearprimalweather
tryrevertweatherform
flushtextbox
@@ -3372,8 +2993,6 @@ BattleScript_EffectEvasionDown2::
BattleScript_EffectReflect::
attackcanceler
- attackstring
- ppreduce
setreflect
BattleScript_PrintReflectLightScreenSafeguardString::
attackanimation
@@ -3408,8 +3027,6 @@ BattleScript_PowerHerbActivation:
BattleScript_EffectTwoTurnsAttack::
jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_ATTACKSTRING_PRINTED, BattleScript_EffectHit @ if it's not the first hit
tryfiretwoturnmovewithoutcharging BS_ATTACKER, BattleScript_EffectHit @ e.g. Solar Beam
call BattleScript_FirstChargingTurn
tryfiretwoturnmoveaftercharging BS_ATTACKER, BattleScript_TwoTurnMovesSecondTurn @ e.g. Electro Shot
@@ -3418,7 +3035,6 @@ BattleScript_EffectTwoTurnsAttack::
BattleScript_EffectGeomancy::
jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_GeomancySecondTurn
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_GeomancySecondTurn
call BattleScript_FirstChargingTurn
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
call BattleScript_PowerHerbActivation
@@ -3426,8 +3042,6 @@ BattleScript_GeomancySecondTurn:
attackcanceler
setbyte sB_ANIM_TURN, 1
clearvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS
- orword gHitMarker, HITMARKER_NO_PPDEDUCT
- attackstring
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
@@ -3436,19 +3050,19 @@ BattleScript_GeomancyDoMoveAnim::
waitanimation
setstatchanger STAT_SPATK, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyTrySpDef, BIT_SPDEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GeomancyTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_GeomancyTrySpDef::
setstatchanger STAT_SPDEF, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GeomancyTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_GeomancyTrySpeed::
setstatchanger STAT_SPEED, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_GeomancyEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_GeomancyEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_GeomancyEnd::
@@ -3456,13 +3070,7 @@ BattleScript_GeomancyEnd::
BattleScript_FirstChargingTurn::
attackcanceler
-@ before Gen 5, charge moves did not print an attack string on the charge turn
-.if B_UPDATED_MOVE_DATA >= GEN_5
- flushtextbox
- attackstring
waitmessage B_WAIT_TIME_LONG
-.endif
- ppreduce
BattleScript_FirstChargingTurnAfterAttackString:
setsemiinvulnerablebit @ only for moves with EFFECT_SEMI_INVULNERABLE/EFFECT_SKY_DROP
setchargingturn
@@ -3475,17 +3083,12 @@ BattleScript_TwoTurnMovesSecondPowerHerbActivates:
trygulpmissile @ Edge case for Cramorant ability Gulp Missile
BattleScript_FromTwoTurnMovesSecondTurnRet:
call BattleScript_TwoTurnMovesSecondTurnRet
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
-@ before Gen 5, charge moves did not print an attack string on the charge turn
-.if B_UPDATED_MOVE_DATA < GEN_5
- attackstring
-.endif
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_TwoTurnMovesSecondTurn::
attackcanceler
call BattleScript_TwoTurnMovesSecondTurnRet
- orword gHitMarker, HITMARKER_NO_PPDEDUCT
goto BattleScript_HitFromAccCheck
BattleScript_TwoTurnMovesSecondTurnRet:
@@ -3497,17 +3100,14 @@ BattleScript_TwoTurnMovesSecondTurnRet:
BattleScript_EffectSubstitute::
attackcanceler
- ppreduce
- attackstring
waitstate
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
setsubstitute
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString
- orword gHitMarker, HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
BattleScript_SubstituteString::
pause B_WAIT_TIME_SHORT
printfromtable gSubstituteUsedStringIds
@@ -3529,15 +3129,13 @@ BattleScript_EffectRage::
attackcanceler
accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_RAGE
- goto BattleScript_HitFromAtkString
+ goto BattleScript_HitFromCritCalc
BattleScript_RageMiss::
clearvolatile BS_ATTACKER, VOLATILE_RAGE
- goto BattleScript_PrintMoveMissed
+ goto BattleScript_MoveMissedPause
BattleScript_EffectMimic::
attackcanceler
- attackstring
- ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
mimicattackcopy BattleScript_ButItFailed
@@ -3547,19 +3145,9 @@ BattleScript_EffectMimic::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_EffectMetronome::
- attackcanceler
- attackstring
- pause B_WAIT_TIME_SHORT
- attackanimation
- waitanimation
- metronome
-
BattleScript_EffectLeechSeed::
attackcanceler
- attackstring
pause B_WAIT_TIME_SHORT
- ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE
BattleScript_DoLeechSeed::
@@ -3572,8 +3160,6 @@ BattleScript_DoLeechSeed::
BattleScript_EffectDoNothing::
attackcanceler
- attackstring
- ppreduce
attackanimation
waitanimation
incrementgamestat GAME_STAT_USED_SPLASH
@@ -3583,8 +3169,6 @@ BattleScript_EffectDoNothing::
BattleScript_EffectHoldHands::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed
attackanimation
@@ -3593,8 +3177,6 @@ BattleScript_EffectHoldHands::
BattleScript_EffectCelebrate::
attackcanceler
- attackstring
- ppreduce
attackanimation
waitanimation
printstring STRINGID_CELEBRATEMESSAGE
@@ -3603,8 +3185,6 @@ BattleScript_EffectCelebrate::
BattleScript_EffectHappyHour::
attackcanceler
- attackstring
- ppreduce
attackanimation
waitanimation
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_HAPPY_HOUR
@@ -3612,8 +3192,6 @@ BattleScript_EffectHappyHour::
BattleScript_EffectDisable::
attackcanceler
- attackstring
- ppreduce
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
disablelastusedattack BattleScript_ButItFailed
@@ -3625,10 +3203,8 @@ BattleScript_EffectDisable::
BattleScript_EffectCounter::
attackcanceler
- counterdamagecalculator BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ counterdamagecalculator BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
adjustdamage
@@ -3636,9 +3212,7 @@ BattleScript_EffectCounter::
BattleScript_EffectEncore::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
trysetencore BattleScript_ButItFailed
attackanimation
@@ -3649,43 +3223,30 @@ BattleScript_EffectEncore::
BattleScript_EffectPainSplit::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
painsplitdmgcalc BattleScript_ButItFailed
attackanimation
waitanimation
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_SHAREDPAIN
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSnore::
attackcanceler
- jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_SnoreIsAsleep
- jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
- attackstring
- ppreduce
- goto BattleScript_ButItFailed
-BattleScript_SnoreIsAsleep::
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore
printstring STRINGID_PKMNFASTASLEEP
waitmessage B_WAIT_TIME_LONG
statusanimation BS_ATTACKER
BattleScript_DoSnore::
- attackstring
- ppreduce
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_EffectConversion2::
attackcanceler
- attackstring
- ppreduce
settypetorandomresistance BattleScript_ButItFailed
attackanimation
waitanimation
@@ -3695,8 +3256,6 @@ BattleScript_EffectConversion2::
BattleScript_EffectLockOn::
attackcanceler
- attackstring
- ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
setalwayshitflag
@@ -3708,8 +3267,6 @@ BattleScript_EffectLockOn::
BattleScript_EffectSketch::
attackcanceler
- attackstring
- ppreduce
copymovepermanently BattleScript_ButItFailed
attackanimation
waitanimation
@@ -3717,33 +3274,9 @@ BattleScript_EffectSketch::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_EffectSleepTalk::
- attackcanceler
- jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_SleepTalkIsAsleep
- jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
- attackstring
- ppreduce
- goto BattleScript_ButItFailed
-BattleScript_SleepTalkIsAsleep::
- printstring STRINGID_PKMNFASTASLEEP
- waitmessage B_WAIT_TIME_LONG
- statusanimation BS_ATTACKER
- attackstring
- ppreduce
- orword gHitMarker, HITMARKER_NO_PPDEDUCT
- trychoosesleeptalkmove BattleScript_SleepTalkUsingMove
- pause B_WAIT_TIME_LONG
- goto BattleScript_ButItFailed
-BattleScript_SleepTalkUsingMove::
- attackanimation
- waitanimation
- jumptocalledmove TRUE
-
BattleScript_EffectDestinyBond::
attackcanceler
- attackstring
- ppreduce
- trysetdestinybond BattleScript_ButItFailed
+ setvolatile BS_ATTACKER, VOLATILE_DESTINY_BOND, 2
attackanimation
waitanimation
printstring STRINGID_PKMNTRYINGTOTAKEFOE
@@ -3757,8 +3290,6 @@ BattleScript_MoveEffectEerieSpell::
BattleScript_EffectSpite::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryspiteppreduce BattleScript_ButItFailed
attackanimation
@@ -3770,8 +3301,6 @@ BattleScript_EffectSpite::
@ TODO: Simplfy script
BattleScript_EffectHealBell::
attackcanceler
- attackstring
- ppreduce
attackanimation
waitanimation
healpartystatus
@@ -3804,8 +3333,6 @@ BattleScript_MoveEffectAromatherapy::
BattleScript_EffectMeanLook::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifvolatile BS_TARGET, VOLATILE_ESCAPE_PREVENTION, BattleScript_ButItFailed
jumpifsubstituteblocks BattleScript_ButItFailed
@@ -3821,8 +3348,6 @@ BattleScript_EffectMeanLook::
BattleScript_EffectNightmare::
attackcanceler
- attackstring
- ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
jumpifvolatile BS_TARGET, VOLATILE_NIGHTMARE, BattleScript_ButItFailed
jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
@@ -3839,19 +3364,17 @@ BattleScript_NightmareWorked::
BattleScript_EffectMinimize::
attackcanceler
setvolatile BS_ATTACKER, VOLATILE_MINIMIZE
-.if B_MINIMIZE_EVASION >= GEN_5
+ jumpifgenconfiglowerthan CONFIG_MINIMIZE_EVASION, GEN_5, BattleScript_EffectMinimizeGen4
setstatchanger STAT_EVASION, 2, FALSE
-.else
+ goto BattleScript_EffectStatUpAfterAtkCanceler
+BattleScript_EffectMinimizeGen4:
setstatchanger STAT_EVASION, 1, FALSE
-.endif
goto BattleScript_EffectStatUpAfterAtkCanceler
BattleScript_EffectCurse::
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
attackcanceler
jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_DoGhostCurse
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CurseTrySpeed
jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CurseTrySpeed
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_ButItFailed
@@ -3881,32 +3404,21 @@ BattleScript_GhostCurse::
getmovetarget
BattleScript_DoGhostCurse::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
cursetarget BattleScript_ButItFailed
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
setbyte sB_ANIM_TURN, 0
attackanimation
waitanimation
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNLAIDCURSE
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
goto BattleScript_MoveEnd
-BattleScript_EffectMatBlock::
- attackcanceler
- jumpifnotfirstturn BattleScript_FailedFromAtkString
- goto BattleScript_ProtectLikeAtkString
-
BattleScript_EffectProtect::
BattleScript_EffectEndure::
attackcanceler
-BattleScript_ProtectLikeAtkString:
- attackstring
- ppreduce
setprotectlike
attackanimation
waitanimation
@@ -3916,9 +3428,7 @@ BattleScript_ProtectLikeAtkString:
BattleScript_EffectSpikes::
attackcanceler
- trysetspikes BattleScript_FailedFromAtkString
- attackstring
- ppreduce
+ trysetspikes BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_SPIKESSCATTERED
@@ -3927,8 +3437,6 @@ BattleScript_EffectSpikes::
BattleScript_EffectForesight::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifvolatile BS_TARGET, VOLATILE_FORESIGHT, BattleScript_ButItFailed
setvolatile BS_TARGET, VOLATILE_FORESIGHT
@@ -3941,8 +3449,6 @@ BattleScript_IdentifiedFoe:
BattleScript_EffectPerishSong::
attackcanceler
- attackstring
- ppreduce
trysetperishsong BattleScript_ButItFailed
savetarget
attackanimation
@@ -3972,17 +3478,13 @@ BattleScript_PerishSongNotAffected:
BattleScript_EffectSandstorm::
attackcanceler
- attackstring
- ppreduce
call BattleScript_CheckPrimalWeather
setfieldweather BATTLE_WEATHER_SANDSTORM
goto BattleScript_MoveWeatherChange
BattleScript_EffectRollout::
attackcanceler
- attackstring
jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy
- ppreduce
BattleScript_RolloutCheckAccuracy::
accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE
BattleScript_RolloutHit::
@@ -3993,15 +3495,13 @@ BattleScript_RolloutHit::
BattleScript_EffectSwagger::
attackcanceler
jumpifsubstituteblocks BattleScript_MakeMoveMissed
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifconfusedandstatmaxed STAT_ATK, BattleScript_ButItFailed
attackanimation
waitanimation
setstatchanger STAT_ATK, 2, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_SwaggerTryConfuse
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SwaggerTryConfuse
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_SwaggerTryConfuse
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_SwaggerTryConfuse:
@@ -4012,8 +3512,6 @@ BattleScript_SwaggerTryConfuse:
BattleScript_EffectFuryCutter::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE
BattleScript_FuryCutterHit:
handlefurycutter
@@ -4028,10 +3526,15 @@ BattleScript_TryDestinyKnotTarget:
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
waitanimation
printstring STRINGID_DESTINYKNOTACTIVATES
- tryinfatuating BattleScript_ButItFailed
+ tryinfatuating BattleScript_TryDestinyKnotTargetFailed
volatileanimation BS_TARGET, VOLATILE_INFATUATION
waitanimation
waitmessage B_WAIT_TIME_LONG
+ goto BattleScript_TryDestinyKnotTargetRet
+BattleScript_TryDestinyKnotTargetFailed:
+ pause B_WAIT_TIME_SHORT
+ printstring STRINGID_BUTITFAILED
+ waitmessage B_WAIT_TIME_LONG
BattleScript_TryDestinyKnotTargetRet:
return
@@ -4050,8 +3553,6 @@ BattleScript_TryDestinyKnotAttacker:
BattleScript_EffectAttract::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
tryinfatuating BattleScript_ButItFailed
@@ -4064,36 +3565,26 @@ BattleScript_EffectAttract::
BattleScript_EffectPresent::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
presentdamagecalculation
BattleScript_EffectSafeguard::
attackcanceler
- attackstring
- ppreduce
setsafeguard
goto BattleScript_PrintReflectLightScreenSafeguardString
BattleScript_EffectMagnitude::
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_EffectMagnitudeTarget
attackcanceler
- attackstring
- ppreduce
magnitudedamagecalculation
pause B_WAIT_TIME_SHORT
printstring STRINGID_MAGNITUDESTRENGTH
waitmessage B_WAIT_TIME_LONG
-BattleScript_EffectMagnitudeTarget:
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
goto BattleScript_HitFromCritCalc
BattleScript_EffectBatonPass::
attackcanceler
- attackstring
- ppreduce
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
attackanimation
@@ -4119,15 +3610,11 @@ BattleScript_EffectSynthesis::
BattleScript_EffectMoonlight::
BattleScript_EffectShoreUp::
attackcanceler
- attackstring
- ppreduce
recoverbasedonsunlight BattleScript_AlreadyAtFullHp
goto BattleScript_PresentHealTarget
BattleScript_EffectRainDance::
attackcanceler
- attackstring
- ppreduce
call BattleScript_CheckPrimalWeather
setfieldweather BATTLE_WEATHER_RAIN
BattleScript_MoveWeatherChange::
@@ -4144,8 +3631,6 @@ BattleScript_MoveWeatherChangeRet::
BattleScript_EffectSunnyDay::
attackcanceler
- attackstring
- ppreduce
call BattleScript_CheckPrimalWeather
setfieldweather BATTLE_WEATHER_SUN
goto BattleScript_MoveWeatherChange
@@ -4220,15 +3705,12 @@ BattleScript_BlockedByPrimalWeatherRet::
BattleScript_EffectBellyDrum::
attackcanceler
- attackstring
- ppreduce
jumpifstatignorecontrary BS_ATTACKER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_ButItFailed
halvehp BattleScript_ButItFailed
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
setstatchanger STAT_ATK, MAX_STAT_STAGE, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd
printstring STRINGID_PKMNCUTHPMAXEDATTACK
@@ -4237,8 +3719,6 @@ BattleScript_EffectBellyDrum::
BattleScript_EffectPsychUp::
attackcanceler
- attackstring
- ppreduce
copyfoestats
attackanimation
waitanimation
@@ -4248,10 +3728,8 @@ BattleScript_EffectPsychUp::
BattleScript_EffectMirrorCoat::
attackcanceler
- mirrorcoatdamagecalculator BattleScript_FailedFromAtkString
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ mirrorcoatdamagecalculator BattleScript_ButItFailed
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE
adjustdamage
@@ -4259,9 +3737,7 @@ BattleScript_EffectMirrorCoat::
BattleScript_EffectFutureSight::
attackcanceler
- attackstring
- ppreduce
- trysetfutureattack BattleScript_ButItFailed
+ setfutureattack
attackanimation
waitanimation
printfromtable gFutureMoveUsedStringIds
@@ -4269,7 +3745,7 @@ BattleScript_EffectFutureSight::
goto BattleScript_MoveEnd
BattleScript_EffectTeleport::
- jumpifgenconfiglowerthan GEN_CONFIG_TELEPORT_BEHAVIOR, GEN_8, BattleScript_EffectTeleportGen7
+ jumpifgenconfiglowerthan CONFIG_TELEPORT_BEHAVIOR, GEN_8, BattleScript_EffectTeleportGen7
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_EffectBatonPass
jumpifside BS_ATTACKER, B_SIDE_PLAYER, BattleScript_EffectBatonPass
goto BattleScript_DoEffectTeleport
@@ -4277,8 +3753,6 @@ BattleScript_EffectTeleportGen7::
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FailedFromAtkCanceler
BattleScript_DoEffectTeleport::
attackcanceler
- attackstring
- ppreduce
isrunningimpossible
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FORBIDDEN, BattleScript_ButItFailed
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FAILURE, BattleScript_PrintAbilityMadeIneffective
@@ -4290,46 +3764,23 @@ BattleScript_DoEffectTeleport::
goto BattleScript_MoveEnd
BattleScript_EffectBeatUp::
+ jumpifgenconfiglowerthan CONFIG_BEAT_UP, GEN_5, BattleScript_EffectBeatUpGen3
+ goto BattleScript_EffectHit
+
+BattleScript_EffectBeatUpGen3:
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
pause B_WAIT_TIME_SHORT
- ppreduce
- setbyte gBattleCommunication, 0
-BattleScript_BeatUpLoop::
- movevaluescleanup
- trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed
+ trydobeatup BattleScript_MoveEnd, BattleScript_ButItFailed
printstring STRINGID_PKMNATTACK
- critcalc
- jumpifcriticalhit BattleScript_BeatUpAttack
- manipulatedamage DMG_DOUBLED
-BattleScript_BeatUpAttack::
- adjustdamage
- attackanimation
- waitanimation
- effectivenesssound
- hitanimation BS_TARGET
- waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
- critmessage
- waitmessage B_WAIT_TIME_LONG
- resultmessage
- waitmessage B_WAIT_TIME_LONG
- tryfaintmon BS_TARGET
- moveendto MOVEEND_NEXT_TARGET
- goto BattleScript_BeatUpLoop
-BattleScript_BeatUpEnd::
- end
+ goto BattleScript_HitFromCritCalc
BattleScript_EffectDefenseCurl::
attackcanceler
- attackstring
- ppreduce
setvolatile BS_TARGET, VOLATILE_DEFENSE_CURL
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_DefenseCurlDoStatUpAnim
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpPrintString
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpPrintString
attackanimation
waitanimation
BattleScript_DefenseCurlDoStatUpAnim::
@@ -4337,15 +3788,12 @@ BattleScript_DefenseCurlDoStatUpAnim::
BattleScript_EffectSoftboiled::
attackcanceler
- attackstring
- ppreduce
- tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
+ tryhealhalfhealth BS_TARGET, BattleScript_AlreadyAtFullHp
BattleScript_PresentHealTarget::
attackanimation
waitanimation
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
@@ -4356,17 +3804,8 @@ BattleScript_AlreadyAtFullHp::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_EffectFirstTurnOnly::
- attackcanceler
- jumpifnotfirstturn BattleScript_FailedFromAtkString
- goto BattleScript_EffectHit
-
BattleScript_FailedFromAtkCanceler::
attackcanceler
-BattleScript_FailedFromAtkString::
- attackstring
-BattleScript_FailedFromPpReduce::
- ppreduce
BattleScript_ButItFailed::
pause B_WAIT_TIME_SHORT
setmoveresultflags MOVE_RESULT_FAILED
@@ -4398,23 +3837,12 @@ BattleScript_NotAffectedAbilityPopUp::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_EffectUproar::
- attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_UproarHit
- ppreduce
-BattleScript_UproarHit::
- goto BattleScript_HitFromCritCalc
-
BattleScript_EffectStockpile::
attackcanceler
- attackstring
- ppreduce
stockpile 0
attackanimation
waitanimation
- printfromtable gStockpileUsedStringIds
+ printstring STRINGID_PKMNSTOCKPILED
waitmessage B_WAIT_TIME_LONG
.if B_STOCKPILE_RAISES_DEFS < GEN_4
goto BattleScript_EffectStockpileEnd
@@ -4425,13 +3853,13 @@ BattleScript_EffectStockpile::
BattleScript_EffectStockpileDef:
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileSpDef, BIT_SPDEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectStockpileSpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectStockpileSpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectStockpileSpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectStockpileEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectStockpileEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectStockpileEnd:
@@ -4456,67 +3884,42 @@ BattleScript_StockpileStatChangeDown_Ret:
BattleScript_EffectSpitUp::
attackcanceler
jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_SpitUpFailProtect
- attackstring
- ppreduce
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
damagecalc
adjustdamage
- stockpiletobasedamage BattleScript_SpitUpFail
+ stockpiletobasedamage
call BattleScript_Hit_RetFromAtkAnimation
tryfaintmon BS_TARGET
removestockpilecounters
- goto BattleScript_SpitUpEnd
-BattleScript_SpitUpFail::
- checkparentalbondcounter 2, BattleScript_SpitUpEnd
- pause B_WAIT_TIME_SHORT
- printstring STRINGID_FAILEDTOSPITUP
- waitmessage B_WAIT_TIME_LONG
-BattleScript_SpitUpEnd:
goto BattleScript_MoveEnd
BattleScript_SpitUpFailProtect::
- attackstring
- ppreduce
pause B_WAIT_TIME_LONG
- stockpiletobasedamage BattleScript_SpitUpFail
+ stockpiletobasedamage
resultmessage
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSwallow::
attackcanceler
- attackstring
- ppreduce
- stockpiletohpheal BattleScript_SwallowFail
+ stockpiletohpheal BattleScript_ButItFailed
attackanimation
waitanimation
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
removestockpilecounters
goto BattleScript_MoveEnd
-
-BattleScript_SwallowFail::
- pause B_WAIT_TIME_SHORT
- printfromtable gSwallowFailStringIds
- waitmessage B_WAIT_TIME_LONG
- goto BattleScript_MoveEnd
-
BattleScript_EffectHail::
attackcanceler
- attackstring
- ppreduce
call BattleScript_CheckPrimalWeather
setfieldweather BATTLE_WEATHER_HAIL
goto BattleScript_MoveWeatherChange
BattleScript_EffectTorment::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
settorment BattleScript_ButItFailed
@@ -4529,15 +3932,13 @@ BattleScript_EffectTorment::
BattleScript_EffectFlatter::
attackcanceler
jumpifsubstituteblocks BattleScript_MakeMoveMissed
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
jumpifconfusedandstatmaxed STAT_SPATK, BattleScript_ButItFailed
attackanimation
waitanimation
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_FlatterTryConfuse
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlatterTryConfuse
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_FlatterTryConfuse
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_FlatterTryConfuse::
@@ -4553,8 +3954,6 @@ BattleScript_EffectDarkVoid::
.endif
BattleScript_EffectNonVolatileStatus::
attackcanceler
- attackstring
- ppreduce
trynonvolatilestatus
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
attackanimation
@@ -4575,8 +3974,6 @@ BattleScript_AlreadyBurned::
BattleScript_EffectMemento::
attackcanceler
jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_MementoTargetProtect
- attackstring
- ppreduce
trymemento BattleScript_ButItFailed
setatkhptozero
attackanimation
@@ -4584,15 +3981,15 @@ BattleScript_EffectMemento::
jumpifsubstituteblocks BattleScript_EffectMementoPrintNoEffect
setstatchanger STAT_ATK, 2, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk, BIT_SPATK
-@ Greater than B_MSG_DEFENDER_STAT_FELL is checking if the stat cannot decrease
- jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTrySpAtk
+@ Greater than B_MSG_DEFENDER_STAT_CHANGED is checking if the stat cannot decrease
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_EffectMementoTrySpAtk
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectMementoTrySpAtk:
setstatchanger STAT_SPATK, 2, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTryFaint
-@ Greater than B_MSG_DEFENDER_STAT_FELL is checking if the stat cannot decrease
- jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTryFaint
+@ Greater than B_MSG_DEFENDER_STAT_CHANGED is checking if the stat cannot decrease
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_EffectMementoTryFaint
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectMementoTryFaint:
@@ -4604,8 +4001,6 @@ BattleScript_EffectMementoPrintNoEffect:
goto BattleScript_EffectMementoTryFaint
@ If the target is protected there's no need to check the target's stats or animate, the user will just faint
BattleScript_MementoTargetProtect:
- attackstring
- ppreduce
trymemento BattleScript_MementoTargetProtectEnd
BattleScript_MementoTargetProtectEnd:
setatkhptozero
@@ -4619,18 +4014,12 @@ BattleScript_MementoTargetProtectEnd:
BattleScript_EffectFocusPunch::
attackcanceler
jumpifnodamage BattleScript_HitFromAccCheck
- ppreduce
printstring STRINGID_PKMNLOSTFOCUS
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectFollowMe::
attackcanceler
- attackstring
- ppreduce
- .if B_UPDATED_MOVE_DATA >= GEN_8
- jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_ButItFailed
- .endif
setforcedtarget
attackanimation
waitanimation
@@ -4638,26 +4027,15 @@ BattleScript_EffectFollowMe::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_EffectNaturePower::
- attackcanceler
- attackstring
- pause B_WAIT_TIME_SHORT
- callenvironmentattack
- printstring STRINGID_NATUREPOWERTURNEDINTO
- waitmessage B_WAIT_TIME_LONG
- return
-
BattleScript_EffectCharge::
attackcanceler
- attackstring
- ppreduce
- setcharge BS_ATTACKER
+ setvolatile BS_ATTACKER, VOLATILE_CHARGE_TIMER, 2
attackanimation
waitanimation
.if B_CHARGE_SPDEF_RAISE >= GEN_5
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectChargeString
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectChargeString
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectChargeString
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectChargeString:
@@ -4668,8 +4046,6 @@ BattleScript_EffectChargeString:
BattleScript_EffectTaunt::
attackcanceler
- attackstring
- ppreduce
jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
settaunt BattleScript_ButItFailed
@@ -4681,8 +4057,6 @@ BattleScript_EffectTaunt::
BattleScript_EffectHelpingHand::
attackcanceler
- attackstring
- ppreduce
trysethelpinghand BattleScript_ButItFailed
attackanimation
waitanimation
@@ -4692,8 +4066,6 @@ BattleScript_EffectHelpingHand::
BattleScript_EffectTrick::
attackcanceler
- attackstring
- ppreduce
jumpifsubstituteblocks BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
tryswapitems BattleScript_ButItFailed
@@ -4707,16 +4079,12 @@ BattleScript_EffectTrick::
BattleScript_EffectRolePlay::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
trycopyability BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
-.if B_ABILITY_POP_UP == TRUE
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
recordability BS_ATTACKER
printstring STRINGID_PKMNCOPIEDFOE
waitmessage B_WAIT_TIME_LONG
@@ -4725,25 +4093,13 @@ BattleScript_EffectRolePlay::
BattleScript_EffectWish::
attackcanceler
- attackstring
- ppreduce
trywish BattleScript_ButItFailed
attackanimation
waitanimation
goto BattleScript_MoveEnd
-BattleScript_EffectAssist::
- attackcanceler
- attackstring
- assistattackselect BattleScript_FailedFromPpReduce
- attackanimation
- waitanimation
- jumptocalledmove TRUE
-
BattleScript_EffectIngrain::
attackcanceler
- attackstring
- ppreduce
trysetvolatile BS_ATTACKER, VOLATILE_ROOT, BattleScript_ButItFailed
attackanimation
waitanimation
@@ -4753,9 +4109,7 @@ BattleScript_EffectIngrain::
BattleScript_EffectMagicCoat::
attackcanceler
- trysetmagiccoat BattleScript_FailedFromAtkString
- attackstring
- ppreduce
+ trysetmagiccoat BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNSHROUDEDITSELF
@@ -4764,8 +4118,6 @@ BattleScript_EffectMagicCoat::
BattleScript_EffectRecycle::
attackcanceler
- attackstring
- ppreduce
tryrecycleitem BattleScript_ButItFailed
attackanimation
waitanimation
@@ -4775,9 +4127,7 @@ BattleScript_EffectRecycle::
BattleScript_EffectBrickBreak::
attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
removescreens
critcalc
@@ -4796,8 +4146,8 @@ BattleScript_BrickBreakDoHit::
effectivenesssound
hitanimation BS_TARGET
waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
+ datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
@@ -4808,8 +4158,6 @@ BattleScript_BrickBreakDoHit::
BattleScript_EffectYawn::
attackcanceler
- attackstring
- ppreduce
trynonvolatilestatus
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
setyawn BattleScript_ButItFailed
@@ -4833,8 +4181,6 @@ BattleScript_PrintAbilityMadeIneffective::
BattleScript_EffectEndeavor::
attackcanceler
- attackstring
- ppreduce
setdamagetohealthdifference BattleScript_ButItFailed
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
@@ -4845,20 +4191,16 @@ BattleScript_EffectEndeavor::
BattleScript_EffectSkillSwap::
attackcanceler
- attackstring
- ppreduce
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
tryswapabilities BattleScript_ButItFailed
attackanimation
waitanimation
jumpiftargetally BattleScript_EffectSkillSwap_AfterAbilityPopUp
-.if B_ABILITY_POP_UP == TRUE
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUpOverwriteThenNormal
copybyte gBattlerAbility, gBattlerTarget
copyhword sABILITY_OVERWRITE, gLastUsedAbility
call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
BattleScript_EffectSkillSwap_AfterAbilityPopUp:
recordability BS_ATTACKER
recordability BS_TARGET
@@ -4872,8 +4214,6 @@ BattleScript_EffectSkillSwap_AfterAbilityPopUp:
BattleScript_EffectImprison::
attackcanceler
- attackstring
- ppreduce
tryimprison BattleScript_ButItFailed
attackanimation
waitanimation
@@ -4883,8 +4223,6 @@ BattleScript_EffectImprison::
BattleScript_EffectRefresh::
attackcanceler
- attackstring
- ppreduce
curestatuswithmove BattleScript_ButItFailed
attackanimation
waitanimation
@@ -4895,9 +4233,8 @@ BattleScript_EffectRefresh::
BattleScript_EffectGrudge::
attackcanceler
- attackstring
- ppreduce
- trysetvolatile BS_ATTACKER, VOLATILE_GRUDGE, BattleScript_ButItFailed
+ jumpifvolatile BS_ATTACKER, VOLATILE_GRUDGE, BattleScript_ButItFailed
+ setvolatile BS_ATTACKER, VOLATILE_GRUDGE, 2
attackanimation
waitanimation
printstring STRINGID_PKMNWANTSGRUDGE
@@ -4906,9 +4243,7 @@ BattleScript_EffectGrudge::
BattleScript_EffectSnatch::
attackcanceler
- trysetsnatch BattleScript_FailedFromAtkString
- attackstring
- ppreduce
+ trysetsnatch BattleScript_ButItFailed
attackanimation
waitanimation
pause B_WAIT_TIME_SHORT
@@ -4924,8 +4259,6 @@ BattleScript_EffectStruggle::
BattleScript_EffectMudSport::
BattleScript_EffectWaterSport::
attackcanceler
- attackstring
- ppreduce
settypebasedhalvers BattleScript_ButItFailed
attackanimation
waitanimation
@@ -4935,8 +4268,6 @@ BattleScript_EffectWaterSport::
BattleScript_EffectTickle::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_TickleDoMoveAnim
jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats
BattleScript_TickleDoMoveAnim::
@@ -4945,13 +4276,13 @@ BattleScript_TickleDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TickleTryLowerDef, BIT_DEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleTryLowerDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_TickleTryLowerDef::
setstatchanger STAT_DEF, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TickleEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_TickleEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_TickleEnd::
@@ -4966,8 +4297,6 @@ BattleScript_CantLowerMultipleStats::
BattleScript_EffectCosmicPower::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CosmicPowerDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
BattleScript_CosmicPowerDoMoveAnim::
@@ -4975,13 +4304,13 @@ BattleScript_CosmicPowerDoMoveAnim::
waitanimation
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef, BIT_SPDEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CosmicPowerTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CosmicPowerEnd::
@@ -4989,8 +4318,6 @@ BattleScript_CosmicPowerEnd::
BattleScript_EffectBulkUp::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_BulkUpDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
BattleScript_BulkUpDoMoveAnim::
@@ -4998,13 +4325,13 @@ BattleScript_BulkUpDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpTryDef, BIT_DEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpTryDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_BulkUpTryDef::
setstatchanger STAT_DEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_BulkUpEnd::
@@ -5012,8 +4339,6 @@ BattleScript_BulkUpEnd::
BattleScript_EffectCalmMind::
attackcanceler
- attackstring
- ppreduce
BattleScript_CalmMindTryToRaiseStats::
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CalmMindDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
@@ -5023,13 +4348,13 @@ BattleScript_CalmMindDoMoveAnim::
BattleScript_CalmMindStatRaise::
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindTrySpDef, BIT_SPDEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CalmMindTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CalmMindEnd::
@@ -5044,8 +4369,6 @@ BattleScript_CantRaiseMultipleStats::
BattleScript_EffectDragonDance::
attackcanceler
- attackstring
- ppreduce
BattleScript_EffectDragonDanceFromStatUp::
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_DragonDanceDoMoveAnim
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats
@@ -5054,13 +4377,13 @@ BattleScript_DragonDanceDoMoveAnim::
waitanimation
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_DragonDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_DragonDanceEnd::
@@ -5068,8 +4391,6 @@ BattleScript_DragonDanceEnd::
BattleScript_EffectCamouflage::
attackcanceler
- attackstring
- ppreduce
settypetoenvironment BattleScript_ButItFailed
attackanimation
waitanimation
@@ -5077,39 +4398,22 @@ BattleScript_EffectCamouflage::
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
-BattleScript_FaintAttacker::
- tryillusionoff BS_ATTACKER
+BattleScript_FaintBattler::
+ tryillusionoff BS_FAINTED
tryactivategulpmissile
- playfaintcry BS_ATTACKER
+ playfaintcry BS_FAINTED
pause B_WAIT_TIME_LONG
- dofaintanimation BS_ATTACKER
- printstring STRINGID_ATTACKERFAINTED
- cleareffectsonfaint BS_ATTACKER
+ dofaintanimation BS_FAINTED
+ copybyte sBATTLER, gBattlerFainted @ for message
+ printstring STRINGID_BATTLERFAINTED
+ cleareffectsonfaint BS_FAINTED
trytoclearprimalweather
tryrevertweatherform
flushtextbox
waitanimation
- tryactivatereceiver BS_ATTACKER
+ tryactivatereceiver BS_FAINTED
tryactivatesoulheart
- trytrainerslidemsgfirstoff BS_ATTACKER
- return
-
-BattleScript_FaintTarget::
- tryillusionoff BS_TARGET
- tryactivategulpmissile
- tryupdateleaderscresttracker
- playfaintcry BS_TARGET
- pause B_WAIT_TIME_LONG
- dofaintanimation BS_TARGET
- printstring STRINGID_TARGETFAINTED
- cleareffectsonfaint BS_TARGET
- trytoclearprimalweather
- tryrevertweatherform
- flushtextbox
- waitanimation
- tryactivatereceiver BS_TARGET
- tryactivatesoulheart
- trytrainerslidemsgfirstoff BS_TARGET
+ trytrainerslidemsgfirstoff BS_FAINTED
return
BattleScript_GiveExp::
@@ -5512,11 +4816,11 @@ BattleScript_FogEnded_Ret::
BattleScript_IceBodyHeal::
call BattleScript_AbilityPopUp
playanimation BS_ATTACKER, B_ANIM_SIMPLE_HEAL
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_ICEBODYHPGAIN
waitmessage B_WAIT_TIME_LONG
- end3
+ end2
BattleScript_OverworldStatusStarts::
printfromtable gStartingStatusStringIds
@@ -5580,7 +4884,7 @@ BattleScript_MagicRoomEnds::
setbyte gBattlerTarget, 0
BattleScript_MagicRoomHealingItemsLoop:
copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattlerTarget, 1
- tryrestorehpberry
+ tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN
addbyte gBattlerTarget, 1
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_MagicRoomHealingItemsLoop
end2
@@ -5642,9 +4946,8 @@ BattleScript_LeechSeedTurnDrainHealBlockEnd2:
BattleScript_LeechSeedTurnDrainRecovery::
call BattleScript_LeechSeedTurnDrain
BattleScript_LeechSeedTurnDrainGainHp:
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printfromtable gLeechSeedStringIds
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET
@@ -5652,8 +4955,8 @@ BattleScript_LeechSeedTurnDrainGainHp:
BattleScript_LeechSeedTurnDrain:
playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
return
@@ -5678,8 +4981,8 @@ BattleScript_BideAttack::
effectivenesssound
hitanimation BS_TARGET
waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
+ datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET
@@ -5738,13 +5041,13 @@ BattleScript_WeaknessPolicyAtk:
waitanimation
setstatchanger STAT_ATK, 2, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeaknessPolicySpAtk, BIT_SPATK
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeaknessPolicySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeaknessPolicySpAtk
printstring STRINGID_USINGITEMSTATOFPKMNROSE
waitmessage B_WAIT_TIME_LONG
BattleScript_WeaknessPolicySpAtk:
setstatchanger STAT_SPATK, 2, FALSE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeaknessPolicyRemoveItem
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeaknessPolicyRemoveItem
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeaknessPolicyRemoveItem
printstring STRINGID_USINGITEMSTATOFPKMNROSE
waitmessage B_WAIT_TIME_LONG
BattleScript_WeaknessPolicyRemoveItem:
@@ -5755,7 +5058,7 @@ BattleScript_WeaknessPolicyEnd:
BattleScript_TargetItemStatRaise::
copybyte sBATTLER, gBattlerTarget
statbuffchange BS_TARGET, STAT_CHANGE_ONLY_CHECKING, BattleScript_TargetItemStatRaiseRemoveItemRet
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_TargetItemStatRaiseRemoveItemRet
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_TargetItemStatRaiseRemoveItemRet
playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT
waitanimation
statbuffchange BS_TARGET, 0, BattleScript_TargetItemStatRaiseRemoveItemRet
@@ -5768,7 +5071,7 @@ BattleScript_TargetItemStatRaiseRemoveItemRet:
BattleScript_AttackerItemStatRaise::
copybyte sBATTLER, gBattlerAttacker
statbuffchange BS_ATTACKER, STAT_CHANGE_ONLY_CHECKING, BattleScript_AttackerItemStatRaiseRet
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackerItemStatRaiseRet
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AttackerItemStatRaiseRet
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
waitanimation
statbuffchange BS_ATTACKER, 0, BattleScript_AttackerItemStatRaiseRet
@@ -5827,16 +5130,14 @@ BattleScript_EncoredNoMore::
BattleScript_DestinyBondTakesLife::
printstring STRINGID_PKMNTOOKFOE
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
return
BattleScript_DmgHazardsOnAttacker::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
call BattleScript_PrintHurtByDmgHazards
tryfaintmon BS_ATTACKER
tryfaintmon_spikes BS_ATTACKER, BattleScript_DmgHazardsOnAttackerFainted
@@ -5849,9 +5150,8 @@ BattleScript_DmgHazardsOnAttackerFainted::
goto BattleScript_HandleFaintedMon
BattleScript_DmgHazardsOnTarget::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
call BattleScript_PrintHurtByDmgHazards
tryfaintmon BS_TARGET
tryfaintmon_spikes BS_TARGET, BattleScript_DmgHazardsOnTargetFainted
@@ -5864,9 +5164,8 @@ BattleScript_DmgHazardsOnTargetFainted::
goto BattleScript_HandleFaintedMon
BattleScript_DmgHazardsOnBattlerScripting::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
call BattleScript_PrintHurtByDmgHazards
tryfaintmon BS_SCRIPTING
tryfaintmon_spikes BS_SCRIPTING, BattleScript_DmgHazardsOnBattlerScriptingFainted
@@ -5879,9 +5178,8 @@ BattleScript_DmgHazardsOnBattlerScriptingFainted::
goto BattleScript_HandleFaintedMon
BattleScript_DmgHazardsOnFaintedBattler::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_FAINTED
- datahpupdate BS_FAINTED
+ healthbarupdate BS_FAINTED, PASSIVE_HP_UPDATE
+ datahpupdate BS_FAINTED, PASSIVE_HP_UPDATE
call BattleScript_PrintHurtByDmgHazards
tryfaintmon BS_FAINTED
tryfaintmon_spikes BS_FAINTED, BattleScript_DmgHazardsOnFaintedBattlerFainted
@@ -5928,7 +5226,7 @@ BattleScript_StickyWebOnSwitchIn::
waitmessage B_WAIT_TIME_LONG
jumpifability BS_TARGET, ABILITY_MIRROR_ARMOR, BattleScript_MirrorArmorReflectStickyWeb
statbuffchange BS_TARGET, STAT_CHANGE_CHECK_PREVENTION | STAT_CHANGE_ALLOW_PTR, BattleScript_StickyWebOnSwitchInEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StickyWebOnSwitchInEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_StickyWebOnSwitchInEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_StickyWebOnSwitchInEnd:
@@ -5940,9 +5238,8 @@ BattleScript_StickyWebOnSwitchInEnd:
BattleScript_PerishSongTakesLife::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
end2
@@ -5950,20 +5247,18 @@ BattleScript_PerishBodyActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSWILLPERISHIN3TURNS
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
return
BattleScript_GulpMissileGorging::
call BattleScript_AbilityPopUp
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
waitanimation
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
effectivenesssound
hitanimation BS_ATTACKER
waitstate
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_GulpMissileNoDmgGorging
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
jumpiffainted BS_ATTACKER, TRUE, BattleScript_GulpMissileNoSecondEffectGorging
BattleScript_GulpMissileNoDmgGorging:
@@ -5984,13 +5279,12 @@ BattleScript_GulpMissileGulping::
call BattleScript_AbilityPopUp
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
waitanimation
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
effectivenesssound
hitanimation BS_ATTACKER
waitstate
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_GulpMissileNoDmgGulping
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
jumpiffainted BS_ATTACKER, TRUE, BattleScript_GulpMissileNoSecondEffectGulping
BattleScript_GulpMissileNoDmgGulping:
@@ -6020,32 +5314,39 @@ BattleScript_SeedSowerActivates::
call BattleScript_ActivateTerrainEffects
return
-BattleScript_AngerShellActivates::
+BattleScript_BerserkActivates::
saveattacker
- copybyte gBattlerAttacker, gBattlerTarget
+ copybyte gBattlerAttacker, gEffectBattler
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_RestoreAttackerButItFailed
-BattleScript_AngerShellTryDef::
- modifybattlerstatstage BS_ATTACKER, STAT_DEF, DECREASE, 1, BattleScript_AngerShellTrySpDef, ANIM_ON
-BattleScript_AngerShellTrySpDef:
- modifybattlerstatstage BS_ATTACKER, STAT_SPDEF, DECREASE, 1, BattleScript_AngerShellTryAttack, ANIM_ON
-BattleScript_AngerShellTryAttack:
- modifybattlerstatstage BS_ATTACKER, STAT_ATK, INCREASE, 1, BattleScript_AngerShellTrySpAtk, ANIM_ON
-BattleScript_AngerShellTrySpAtk:
- modifybattlerstatstage BS_ATTACKER, STAT_SPATK, INCREASE, 1, BattleScript_AngerShellTrySpeed, ANIM_ON
-BattleScript_AngerShellTrySpeed:
- modifybattlerstatstage BS_ATTACKER, STAT_SPEED, INCREASE, 1, BattleScript_AngerShellRet, ANIM_ON
-BattleScript_AngerShellRet:
+ statbuffchange BS_EFFECT_BATTLER, STAT_CHANGE_CERTAIN, BattleScript_BerserkActivatesTryBerry
+ call BattleScript_StatUp
+BattleScript_BerserkActivatesTryBerry:
restoreattacker
return
+BattleScript_AngerShellActivates::
+ call BattleScript_AbilityPopUp
+ jumpifstat BS_EFFECT_BATTLER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
+ jumpifstat BS_EFFECT_BATTLER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
+ jumpifstat BS_EFFECT_BATTLER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_AngerShellTryDef
+ jumpifstat BS_EFFECT_BATTLER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_AngerShellTryDef
+ jumpifstat BS_EFFECT_BATTLER, CMP_EQUAL, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_RestoreAttackerButItFailed
+BattleScript_AngerShellTryDef::
+ modifybattlerstatstage BS_EFFECT_BATTLER, STAT_DEF, DECREASE, 1, BattleScript_AngerShellTrySpDef, ANIM_ON
+BattleScript_AngerShellTrySpDef:
+ modifybattlerstatstage BS_EFFECT_BATTLER, STAT_SPDEF, DECREASE, 1, BattleScript_AngerShellTryAttack, ANIM_ON
+BattleScript_AngerShellTryAttack:
+ modifybattlerstatstage BS_EFFECT_BATTLER, STAT_ATK, INCREASE, 1, BattleScript_AngerShellTrySpAtk, ANIM_ON
+BattleScript_AngerShellTrySpAtk:
+ modifybattlerstatstage BS_EFFECT_BATTLER, STAT_SPATK, INCREASE, 1, BattleScript_AngerShellTrySpeed, ANIM_ON
+BattleScript_AngerShellTrySpeed:
+ modifybattlerstatstage BS_EFFECT_BATTLER, STAT_SPEED, INCREASE, 1, BattleScript_AngerShellRet, ANIM_ON
+BattleScript_AngerShellRet:
+ return
+
BattleScript_WindPowerActivates::
call BattleScript_AbilityPopUp
- setcharge BS_TARGET
+ setvolatile BS_TARGET, VOLATILE_CHARGE_TIMER, 1
printstring STRINGID_BEINGHITCHARGEDPKMNWITHPOWER
waitmessage B_WAIT_TIME_LONG
return
@@ -6065,9 +5366,8 @@ BattleScript_EarthEaterActivates::
call BattleScript_AbilityPopUp
pause B_WAIT_TIME_LONG
tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
BattleScript_EarthEaterRet:
@@ -6162,8 +5462,8 @@ BattleScript_DoFutureAttackHit::
effectivenesssound
hitanimation BS_TARGET
waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
+ datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE
critmessage
waitmessage B_WAIT_TIME_LONG
BattleScript_DoFutureAttackResult:
@@ -6172,17 +5472,21 @@ BattleScript_DoFutureAttackResult:
tryfaintmon BS_TARGET
checkteamslost BattleScript_FutureAttackEnd
BattleScript_FutureAttackEnd::
+ moveendcase MOVEEND_SET_VALUES
moveendcase MOVEEND_RAGE
moveendcase MOVEEND_ABILITIES
- moveendfromto MOVEEND_ITEM_EFFECTS_ALL, MOVEEND_UPDATE_LAST_MOVES
- setmoveresultflags 0
- end2
+ moveendcase MOVEEND_COLOR_CHANGE
+ moveendcase MOVEEND_ITEM_EFFECTS_TARGET
+ moveendfromto MOVEEND_SYMBIOSIS, MOVEEND_UPDATE_LAST_MOVES
+ goto BattleScript_FutureAttackClearResults
BattleScript_FutureAttackMiss::
pause B_WAIT_TIME_SHORT
setmoveresultflags MOVE_RESULT_FAILED
resultmessage
waitmessage B_WAIT_TIME_LONG
+BattleScript_FutureAttackClearResults:
setmoveresultflags 0
+ clearspecialstatuses
end2
BattleScript_NoMovesLeft::
@@ -6194,7 +5498,7 @@ BattleScript_SelectingMoveWithNoPP::
endselectionscript
BattleScript_NoPPForMove::
- attackstring
+ printattackstring
pause B_WAIT_TIME_SHORT
printstring STRINGID_BUTNOPPLEFT
waitmessage B_WAIT_TIME_LONG
@@ -6306,9 +5610,8 @@ BattleScript_WishComesTrue::
playanimation BS_TARGET, B_ANIM_WISH_HEAL
printstring STRINGID_PKMNWISHCAMETRUE
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
end2
@@ -6334,9 +5637,8 @@ BattleScript_IngrainTurnHeal::
printstring STRINGID_PKMNABSORBEDNUTRIENTS
BattleScript_TurnHeal:
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
end2
BattleScript_AquaRingHeal::
@@ -6359,7 +5661,7 @@ BattleScript_PrintMonIsRootedRet::
BattleScript_AtkDefDown::
setstatchanger STAT_ATK, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDownTryDef, BIT_DEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDownTryDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_AtkDefDownTryDef
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_AtkDefDownTryDef:
@@ -6373,13 +5675,13 @@ BattleScript_AtkDefDownRet:
BattleScript_DefSpDefDown::
setstatchanger STAT_DEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_DefSpDefDownTrySpDef, BIT_SPDEF
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefSpDefDownTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefSpDefDownTrySpDef
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_DefSpDefDownTrySpDef::
setstatchanger STAT_SPDEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_DefSpDefDownRet
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefSpDefDownRet
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefSpDefDownRet
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_DefSpDefDownRet::
@@ -6391,13 +5693,13 @@ BattleScript_DefDownSpeedUp::
BattleScript_DefDownSpeedUpTryDef::
setstatchanger STAT_DEF, 1, TRUE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_DefDownSpeedUpTrySpeed
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DefDownSpeedUpTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefDownSpeedUpTrySpeed
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_DefDownSpeedUpTrySpeed:
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_CERTAIN, BattleScript_DefDownSpeedUpRet
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DefDownSpeedUpRet
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_DefDownSpeedUpRet
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_DefDownSpeedUpRet::
@@ -6428,31 +5730,21 @@ BattleScript_GrudgeTakesPp::
return
BattleScript_MagicBounce::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNMOVEBOUNCEDABILITY
waitmessage B_WAIT_TIME_LONG
setmagiccoattarget
- orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
- bicword gHitMarker, HITMARKER_NO_ATTACKSTRING
return
BattleScript_MagicCoat::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
setmagiccoattarget
printstring STRINGID_PKMNMOVEBOUNCED
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
- bicword gHitMarker, HITMARKER_NO_ATTACKSTRING
return
BattleScript_MagicCoatPrankster::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNMOVEBOUNCED
waitmessage B_WAIT_TIME_LONG
@@ -6462,13 +5754,10 @@ BattleScript_MagicCoatPrankster::
goto BattleScript_MoveEnd
BattleScript_SnatchedMove::
- attackstring
- ppreduce
snatchsetbattlers
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE
printstring STRINGID_PKMNSNATCHEDMOVE
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
swapattackerwithtarget
return
@@ -6546,7 +5835,7 @@ BattleScript_PowerConstruct::
handleformchange BS_SCRIPTING, 2
printstring STRINGID_POWERCONSTRUCTTRANSFORM
waitmessage B_WAIT_TIME_SHORT
- end3
+ end2
BattleScript_UltraBurst::
flushtextbox
@@ -6584,7 +5873,11 @@ BattleScript_BattlerFormChangeEnd3::
BattleScript_BattlerFormChangeEnd3NoPopup::
call BattleScript_BattlerFormChangeNoPopup
- end3
+ end2
+
+BattleScript_BattlerFormChangeEnd2::
+ call BattleScript_BattlerFormChange
+ end2
BattleScript_BattlerFormChangeWithStringEnd3::
pause 5
@@ -6615,7 +5908,7 @@ BattleScript_BallFetch::
call BattleScript_AbilityPopUp
printstring STRINGID_FETCHEDPOKEBALL
waitmessage B_WAIT_TIME_LONG
- end3
+ end2
BattleScript_CudChewActivates::
pause B_WAIT_TIME_SHORTEST
@@ -6623,13 +5916,12 @@ BattleScript_CudChewActivates::
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
consumeberry BS_ATTACKER, FALSE
setbyte sBERRY_OVERRIDE, 0
- end3
+ end2
BattleScript_ApplyDisguiseFormChangeHPLoss::
- jumpifgenconfiglowerthan GEN_CONFIG_DISGUISE_HP_LOSS, GEN_8, BattleScript_ApplyDisguiseFormChangeHPLossReturn
- orword gHitMarker, HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ jumpifgenconfiglowerthan CONFIG_DISGUISE_HP_LOSS, GEN_8, BattleScript_ApplyDisguiseFormChangeHPLossReturn
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
BattleScript_ApplyDisguiseFormChangeHPLossReturn:
return
@@ -6673,8 +5965,10 @@ BattleScript_IllusionOffEnd3::
BattleScript_IllusionOff::
setspriteignore0hp TRUE
+ call BattleScript_SwapFromSubstitute
playanimation BS_SCRIPTING, B_ANIM_ILLUSION_OFF
waitanimation
+ call BattleScript_SwapToSubstitute
updatenick
waitstate
setspriteignore0hp FALSE
@@ -6693,7 +5987,7 @@ BattleScript_CottonDownLoop:
setstatchanger STAT_SPEED, 1, TRUE
jumpifbyteequal gBattlerTarget, gEffectBattler, BattleScript_CottonDownLoopIncrement
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_CottonDownLoopIncrement
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_CottonDownTargetSpeedCantGoLower
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CottonDownTargetSpeedCantGoLower
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_CottonDownLoopIncrement
@@ -6718,9 +6012,8 @@ BattleScript_AftermathDmg::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUpScripting
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_AFTERMATHDMG
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
@@ -6761,12 +6054,11 @@ BattleScript_PoisonTurnDmg::
BattleScript_DoStatusTurnDmg::
statusanimation BS_ATTACKER
BattleScript_DoTurnDmg:
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
tryfaintmon BS_ATTACKER
checkteamslost BattleScript_DoTurnDmgEnd
- tryrestorehpberry
+ tryactivateitem BS_ATTACKER, ACTIVATION_ON_HP_THRESHOLD
BattleScript_DoTurnDmgEnd:
end2
@@ -6776,9 +6068,8 @@ BattleScript_PoisonHealActivates::
printstring STRINGID_POISONHEALHPUP
waitmessage B_WAIT_TIME_LONG
statusanimation BS_ATTACKER
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
end2
BattleScript_BurnTurnDmg::
@@ -6829,8 +6120,6 @@ BattleScript_MoveUsedIsParalyzed::
goto BattleScript_MoveEnd
BattleScript_PowderMoveNoEffect::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint
jumpifability BS_TARGET, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat
@@ -6856,7 +6145,7 @@ BattleScript_MoveUsedFlinchedEnd:
BattleScript_TryActivateSteadFast:
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_MoveUsedFlinchedEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_MoveUsedFlinchedEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_MoveUsedFlinchedEnd
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveUsedFlinchedEnd
@@ -6890,9 +6179,9 @@ BattleScript_DoSelfConfusionDmg::
effectivenesssound
hitanimation BS_ATTACKER
waitstate
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ isdmgblockedbydisguise
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
@@ -6901,9 +6190,6 @@ BattleScript_MoveUsedIsConfusedRet::
return
BattleScript_MoveUsedPowder::
- bicword gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
cancelmultiturnmoves
volatileanimation BS_ATTACKER, VOLATILE_POWDER
@@ -6911,9 +6197,8 @@ BattleScript_MoveUsedPowder::
effectivenesssound
hitanimation BS_ATTACKER
waitstate
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_POWDEREXPLODES
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
@@ -7014,7 +6299,7 @@ BattleScript_YawnEnd:
BattleScript_EmbargoEndTurn::
printstring STRINGID_EMBARGOENDS
waitmessage B_WAIT_TIME_LONG
- tryrestorehpberry
+ tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN
end2
BattleScript_TelekinesisEndTurn::
@@ -7097,18 +6382,11 @@ BattleScript_MoveEffectConfusion::
return
BattleScript_MoveEffectRecoil::
- jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil
- jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd
- jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_RecoilEnd
-BattleScript_DoRecoil::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNHITWITHRECOIL
waitmessage B_WAIT_TIME_LONG
- tryupdaterecoiltracker
tryfaintmon BS_ATTACKER
-BattleScript_RecoilEnd::
return
BattleScript_ItemSteal::
@@ -7157,10 +6435,8 @@ BattleScript_AbilityPopUpTarget::
copybyte gBattlerAbility, gBattlerTarget
BattleScript_AbilityPopUp::
tryactivateabilityshield BS_ABILITY_BATTLER
- .if B_ABILITY_POP_UP == TRUE
showabilitypopup
pause B_WAIT_TIME_SHORT
- .endif
recordability BS_ABILITY_BATTLER
sethword sABILITY_OVERWRITE, 0
return
@@ -7181,14 +6457,6 @@ BattleScript_AbilityPopUpOverwriteThenNormal:
setbyte sFIXED_ABILITY_POPUP, FALSE
return
-BattleScript_SpeedBoostActivates::
- call BattleScript_AbilityPopUp
- statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_SpeedBoostActivatesEnd
- printstring STRINGID_PKMNRAISEDSPEED
- waitmessage B_WAIT_TIME_LONG
-BattleScript_SpeedBoostActivatesEnd:
- end3
-
@ Can't compare directly to a value, have to compare to value at pointer
sZero:
.byte 0
@@ -7197,25 +6465,23 @@ BattleScript_MoodyActivates::
call BattleScript_AbilityPopUp
jumpifbyteequal sSTATCHANGER, sZero, BattleScript_MoodyLower
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyLower
- jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_ROSE, BattleScript_MoodyLower
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_MoodyLower
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_MoodyLower:
jumpifbyteequal sSAVED_STAT_CHANGER, sZero, BattleScript_MoodyEnd
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyEnd
- jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_MoodyEnd
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_MoodyEnd
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_MoodyEnd:
- end3
+ end2
BattleScript_EmergencyExit::
- .if B_ABILITY_POP_UP == TRUE
pause 5
call BattleScript_AbilityPopUpScripting
pause B_WAIT_TIME_LONG
- .endif
playanimation BS_SCRIPTING, B_ANIM_SLIDE_OFFSCREEN
waitanimation
openpartyscreen BS_SCRIPTING, BattleScript_EmergencyExitRet
@@ -7234,11 +6500,9 @@ BattleScript_EmergencyExitRet:
return
BattleScript_EmergencyExitWild::
- .if B_ABILITY_POP_UP == TRUE
pause 5
call BattleScript_AbilityPopUpScripting
pause B_WAIT_TIME_LONG
- .endif
playanimation BS_SCRIPTING, B_ANIM_SLIDE_OFFSCREEN
waitanimation
setteleportoutcome BS_SCRIPTING
@@ -7297,14 +6561,13 @@ BattleScript_AbilityHpHeal:
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
return
BattleScript_RainDishActivates::
call BattleScript_AbilityHpHeal
- end3
+ end2
BattleScript_CheekPouchActivates::
copybyte sSAVED_BATTLER, gBattlerAttacker
@@ -7319,9 +6582,9 @@ BattleScript_PickupActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_XFOUNDONEY
waitmessage B_WAIT_TIME_LONG
- tryrestorehpberry
+ tryactivateitem BS_ATTACKER, ACTIVATION_ON_PICK_UP
BattleScript_PickupActivatesEnd:
- end3
+ end2
BattleScript_HarvestActivates::
pause 5
@@ -7329,19 +6592,18 @@ BattleScript_HarvestActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_HARVESTBERRY
waitmessage B_WAIT_TIME_LONG
- tryrestorehpberry
+ tryactivateitem BS_ATTACKER, ACTIVATION_ON_HARVEST
BattleScript_HarvestActivatesEnd:
- end3
+ end2
BattleScript_SolarPowerActivates::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
call BattleScript_AbilityPopUp
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_SOLARPOWERHPDROP
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
- end3
+ end2
BattleScript_HealerActivates::
call BattleScript_AbilityPopUp
@@ -7349,7 +6611,7 @@ BattleScript_HealerActivates::
updatestatusicon BS_SCRIPTING
printstring STRINGID_HEALERCURE
waitmessage B_WAIT_TIME_LONG
- end3
+ end2
BattleScript_SandstreamActivates::
pause B_WAIT_TIME_SHORT
@@ -7374,7 +6636,7 @@ BattleScript_ShedSkinActivates::
printstring STRINGID_PKMNSXCUREDYPROBLEM
waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER
- end3
+ end2
BattleScript_ActivateWeatherAbilities:
saveattacker
@@ -7391,7 +6653,6 @@ BattleScript_ActivateWeatherAbilities_Loop:
return
BattleScript_TryIntimidateHoldEffects:
- itemstatchangeeffects BS_TARGET
jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_ADRENALINE_ORB, BattleScript_TryIntimidateHoldEffectsRet
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_TryIntimidateHoldEffectsRet
setstatchanger STAT_SPEED, 1, FALSE
@@ -7418,8 +6679,7 @@ BattleScript_IntimidateEffect:
copybyte sBATTLER, gBattlerAttacker
setstatchanger STAT_ATK, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_IntimidateLoopIncrement
- jumpifability BS_TARGET, ABILITY_CONTRARY, BattleScript_IntimidateContrary
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_IntimidateWontDecrease
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_IntimidateWontDecrease
printstring STRINGID_PKMNCUTSATTACKWITH
BattleScript_IntimidateEffect_WaitString:
waitmessage B_WAIT_TIME_LONG
@@ -7449,10 +6709,6 @@ BattleScript_IntimidateWontDecrease:
printstring STRINGID_STATSWONTDECREASE
goto BattleScript_IntimidateEffect_WaitString
-BattleScript_IntimidateContrary:
- printfromtable gStatUpStringIds
- goto BattleScript_IntimidateEffect_WaitString
-
BattleScript_IntimidateInReverse::
copybyte sBATTLER, gBattlerTarget
call BattleScript_AbilityPopUpTarget
@@ -7475,8 +6731,7 @@ BattleScript_SupersweetSyrupEffect:
copybyte sBATTLER, gBattlerAttacker
setstatchanger STAT_EVASION, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_SupersweetSyrupLoopIncrement
- jumpifability BS_TARGET, ABILITY_CONTRARY, BattleScript_SupersweetSyrupContrary
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SupersweetSyrupWontDecrease
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_SupersweetSyrupWontDecrease
printfromtable gStatDownStringIds
BattleScript_SupersweetSyrupEffect_WaitString:
waitmessage B_WAIT_TIME_LONG
@@ -7500,10 +6755,6 @@ BattleScript_SupersweetSyrupWontDecrease:
printstring STRINGID_STATSWONTDECREASE
goto BattleScript_SupersweetSyrupEffect_WaitString
-BattleScript_SupersweetSyrupContrary:
- printfromtable gStatUpStringIds
- goto BattleScript_SupersweetSyrupEffect_WaitString
-
BattleScript_DroughtActivates::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
@@ -7523,11 +6774,7 @@ BattleScript_DesolateLandActivates::
end3
BattleScript_PrimalWeatherBlocksMove::
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_ATTACKSTRING_PRINTED, BattleScript_MoveEnd @in case of multi-target moves, if move fails once, no point in printing the message twice
- accuracycheck BattleScript_PrintMoveMissed, NO_ACC_CALC_CHECK_LOCK_ON
- attackstring
pause B_WAIT_TIME_SHORT
- ppreduce
printfromtable gPrimalWeatherBlocksStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
@@ -7547,6 +6794,7 @@ BattleScript_DeltaStreamActivates::
printstring STRINGID_MYSTERIOUSAIRCURRENT
waitstate
playanimation BS_ATTACKER, B_ANIM_STRONG_WINDS
+ call BattleScript_ActivateWeatherAbilities
end3
BattleScript_ProtosynthesisActivates::
@@ -7600,31 +6848,31 @@ BattleScript_CommanderActivates::
BattleScript_CommanderAtkIncrease:
setstatchanger STAT_ATK, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderDefIncrease, BIT_DEF | BIT_SPATK | BIT_SPDEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderDefIncrease
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderDefIncrease
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CommanderDefIncrease:
setstatchanger STAT_DEF, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpAtkIncrease, BIT_SPATK | BIT_SPDEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderSpAtkIncrease
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderSpAtkIncrease
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CommanderSpAtkIncrease:
setstatchanger STAT_SPATK, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpDefIncrease, BIT_SPDEF | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderSpDefIncrease
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderSpDefIncrease
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CommanderSpDefIncrease:
setstatchanger STAT_SPDEF, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderSpeedIncrease, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderSpeedIncrease
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderSpeedIncrease
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CommanderSpeedIncrease:
setstatchanger STAT_SPEED, 2, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_CommanderEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CommanderEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_CommanderEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_CommanderEnd:
@@ -7636,10 +6884,9 @@ BattleScript_HospitalityActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_HOSPITALITYRESTORATION
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
playanimation BS_EFFECT_BATTLER, B_ANIM_SIMPLE_HEAL
- healthbarupdate BS_EFFECT_BATTLER
- datahpupdate BS_EFFECT_BATTLER
+ healthbarupdate BS_EFFECT_BATTLER, PASSIVE_HP_UPDATE
+ datahpupdate BS_EFFECT_BATTLER, PASSIVE_HP_UPDATE
end3
BattleScript_AttackWeakenedByStrongWinds::
@@ -7741,9 +6988,8 @@ BattleScript_BadDreams_DmgAfterPopUp:
printstring STRINGID_BADDREAMSDMG
waitmessage B_WAIT_TIME_LONG
dmg_1_8_targethp
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
jumpifhasnohp BS_TARGET, BattleScript_BadDreams_HidePopUp
BattleScript_BadDreamsIncrement:
addbyte gBattlerTarget, 1
@@ -7752,7 +6998,7 @@ BattleScript_BadDreamsIncrement:
destroyabilitypopup
pause 15
BattleScript_BadDreamsEnd:
- end3
+ end2
BattleScript_BadDreams_ShowPopUp:
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUp
@@ -7764,11 +7010,9 @@ BattleScript_BadDreams_HidePopUp:
goto BattleScript_BadDreamsIncrement
BattleScript_TookAttack::
- attackstring
pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXTOOKATTACK
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED
return
BattleScript_SturdyPreventsOHKO::
@@ -7787,24 +7031,17 @@ BattleScript_DampStopsExplosion::
moveendcase MOVEEND_CLEAR_BITS
end
-BattleScript_MoveHPDrain_PPLoss::
- ppreduce
BattleScript_MoveHPDrain::
- attackstring
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage B_WAIT_TIME_LONG
setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
-BattleScript_MoveStatDrain_PPLoss::
- ppreduce
BattleScript_MoveStatDrain::
- attackstring
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveStatDrain_Cont
@@ -7819,10 +7056,7 @@ BattleScript_MoveStatDrain_Cont:
clearsemiinvulnerablebit
goto BattleScript_MoveEnd
-BattleScript_MonMadeMoveUseless_PPLoss::
- ppreduce
BattleScript_MonMadeMoveUseless::
- attackstring
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXMADEYUSELESS
@@ -7830,10 +7064,7 @@ BattleScript_MonMadeMoveUseless::
setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
-BattleScript_FlashFireBoost_PPLoss::
- ppreduce
BattleScript_FlashFireBoost::
- attackstring
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
printfromtable gFlashFireStringIds
@@ -7881,13 +7112,12 @@ BattleScript_FlinchPrevention::
BattleScript_OwnTempoPrevents::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
+ copybyte sBATTLER, gBattlerTarget
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_SoundproofProtected::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXBLOCKSY
@@ -7900,8 +7130,6 @@ BattleScript_IceFaceNullsDamage::
return
BattleScript_DazzlingProtected::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUpScripting
printstring STRINGID_POKEMONCANNOTUSEMOVE
@@ -7909,17 +7137,17 @@ BattleScript_DazzlingProtected::
goto BattleScript_MoveEnd
BattleScript_MoveUsedPsychicTerrainPrevents::
- printstring STRINGID_POKEMONCANNOTUSEMOVE
+ pause B_WAIT_TIME_SHORT
+ printstring STRINGID_PSYCHICTERRAINPREVENTS
waitmessage B_WAIT_TIME_LONG
+ setmoveresultflags MOVE_RESULT_NO_EFFECT
goto BattleScript_MoveEnd
BattleScript_GrassyTerrainHeals::
printstring STRINGID_GRASSYTERRAINHEALS
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
- bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
end2
BattleScript_AbilityNoSpecificStatLoss::
@@ -7927,16 +7155,20 @@ BattleScript_AbilityNoSpecificStatLoss::
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXPREVENTSYLOSS
waitmessage B_WAIT_TIME_LONG
- setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY
+ setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY
setmoveresultflags MOVE_RESULT_NO_EFFECT
return
BattleScript_StickyHoldActivates::
+ call BattleScript_StickyHoldActivatesRet
+ goto BattleScript_MoveEnd
+
+BattleScript_StickyHoldActivatesRet::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSXMADEYINEFFECTIVE
waitmessage B_WAIT_TIME_LONG
- goto BattleScript_MoveEnd
+ return
BattleScript_ColorChangeActivates::
call BattleScript_AbilityPopUp
@@ -7970,13 +7202,11 @@ BattleScript_CursedBodyActivates::
return
BattleScript_MummyActivates::
-.if B_ABILITY_POP_UP == TRUE
setbyte sFIXED_ABILITY_POPUP, TRUE
call BattleScript_AbilityPopUpTarget
copybyte gBattlerAbility, gBattlerAttacker
copyhword sABILITY_OVERWRITE, gLastUsedAbility
call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
recordability BS_TARGET
recordability BS_ATTACKER
printstring STRINGID_ATTACKERACQUIREDABILITY
@@ -7990,14 +7220,12 @@ BattleScript_MummyActivates::
BattleScript_WanderingSpiritActivates::
saveattacker
savetarget
-.if B_ABILITY_POP_UP == TRUE
copybyte gBattlerAbility, gBattlerTarget
sethword sABILITY_OVERWRITE, ABILITY_WANDERING_SPIRIT
call BattleScript_AbilityPopUpOverwriteThenNormal
copybyte gBattlerAbility, gBattlerAttacker
copyhword sABILITY_OVERWRITE, gLastUsedAbility
call BattleScript_AbilityPopUpOverwriteThenNormal
-.endif
recordability BS_TARGET
recordability BS_ATTACKER
printstring STRINGID_SWAPPEDABILITIES
@@ -8022,7 +7250,7 @@ BattleScript_BattlerAbilityStatRaiseOnSwitchIn::
call BattleScript_AbilityPopUpScripting
statbuffchange BS_SCRIPTING, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_CERTAIN, BattleScript_BattlerAbilityStatRaiseOnSwitchInRet
waitanimation
- printstring STRINGID_BATTLERABILITYRAISEDSTAT
+ printstring STRINGID_SCRIPTINGABILITYSTATRAISE
waitmessage B_WAIT_TIME_LONG
BattleScript_BattlerAbilityStatRaiseOnSwitchInRet:
end3
@@ -8043,8 +7271,8 @@ BattleScript_WeakArmorActivates::
call BattleScript_AbilityPopUp
setstatchanger STAT_DEF, 1, TRUE
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesSpeed
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_WeakArmorDefPrintString
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_WeakArmorActivatesSpeed
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeakArmorDefPrintString
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_WeakArmorActivatesSpeed
pause B_WAIT_TIME_SHORTEST
printfromtable gStatDownStringIds
clearmoveresultflags MOVE_RESULT_MISSED @ Set by statbuffchange when stat can't be decreased
@@ -8054,15 +7282,15 @@ BattleScript_WeakArmorDefPrintString:
printstring STRINGID_TARGETABILITYSTATLOWER
waitmessage B_WAIT_TIME_LONG
BattleScript_WeakArmorActivatesSpeed:
- jumpifgenconfiglowerthan GEN_CONFIG_WEAK_ARMOR_SPEED, GEN_7, BattleScript_WeakArmorSetSpeedGen6
+ jumpifgenconfiglowerthan CONFIG_WEAK_ARMOR_SPEED, GEN_7, BattleScript_WeakArmorSetSpeedGen6
setstatchanger STAT_SPEED, 2, FALSE
goto BattleScript_WeakArmorDoSpeed
BattleScript_WeakArmorSetSpeedGen6:
setstatchanger STAT_SPEED, 1, FALSE
BattleScript_WeakArmorDoSpeed:
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesEnd
- jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeakArmorSpeedPrintString
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_WeakArmorActivatesEnd
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_WeakArmorSpeedPrintString
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_WeakArmorActivatesEnd
pause B_WAIT_TIME_SHORTEST
printstring STRINGID_TARGETSTATWONTGOHIGHER
clearmoveresultflags MOVE_RESULT_MISSED
@@ -8095,7 +7323,7 @@ BattleScript_AttackerAbilityStatRaise_End:
BattleScript_FellStingerRaisesStat::
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_FellStingerRaisesAtkEnd
- jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_ROSE, BattleScript_FellStingerRaisesAtkEnd
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_FellStingerRaisesAtkEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_FellStingerRaisesAtkEnd:
@@ -8106,6 +7334,11 @@ BattleScript_AttackerAbilityStatRaiseEnd3::
restoreattacker
end3
+BattleScript_AttackerAbilityStatRaiseEnd2::
+ call BattleScript_AttackerAbilityStatRaise
+ restoreattacker
+ end2
+
BattleScript_SwitchInAbilityMsg::
call BattleScript_AbilityPopUp
printfromtable gSwitchInAbilityStringIds
@@ -8159,9 +7392,8 @@ BattleScript_ImposterActivates::
end3
BattleScript_HurtAttacker:
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNHURTSWITH
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
@@ -8183,10 +7415,9 @@ BattleScript_RockyHelmetActivatesDmg:
BattleScript_SpikyShieldEffect::
jumpifabsent BS_ATTACKER, BattleScript_SpikyShieldRet
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
clearmoveresultflags MOVE_RESULT_NO_EFFECT
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNHURTSWITH
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
@@ -8195,7 +7426,6 @@ BattleScript_SpikyShieldRet::
return
BattleScript_KingsShieldEffect::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
clearmoveresultflags MOVE_RESULT_NO_EFFECT
seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_NONE
copybyte sBATTLER, gBattlerTarget
@@ -8205,7 +7435,6 @@ BattleScript_KingsShieldEffect::
return
BattleScript_BanefulBunkerEffect::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
clearmoveresultflags MOVE_RESULT_NO_EFFECT
setnonvolatilestatus TRIGGER_ON_PROTECT
setmoveresultflags MOVE_RESULT_MISSED
@@ -8252,19 +7481,19 @@ BattleScript_EffectBattleBondStatIncrease::
call BattleScript_AbilityPopUp
setstatchanger STAT_ATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseTrySpAtk, BIT_SPATK | BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectBattleBondStatIncreaseTrySpAtk
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectBattleBondStatIncreaseTrySpAtk
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectBattleBondStatIncreaseTrySpAtk:
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseTrySpeed, BIT_SPEED
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectBattleBondStatIncreaseTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectBattleBondStatIncreaseTrySpeed
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectBattleBondStatIncreaseTrySpeed:
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectBattleBondStatIncreaseRet
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectBattleBondStatIncreaseRet
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectBattleBondStatIncreaseRet
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_EffectBattleBondStatIncreaseRet:
@@ -8273,7 +7502,6 @@ BattleScript_EffectBattleBondStatIncreaseRet:
BattleScript_DancerActivates::
call BattleScript_AbilityPopUp
waitmessage B_WAIT_TIME_SHORT
- orword gHitMarker, HITMARKER_ALLOW_NO_PP
jumptocalledmove TRUE
BattleScript_SynchronizeActivates::
@@ -8323,8 +7551,7 @@ BattleScript_IgnoresWhileAsleep::
BattleScript_IgnoresAndUsesRandomMove::
printstring STRINGID_PKMNIGNOREDORDERS
waitmessage B_WAIT_TIME_LONG
- setbyte sMOVE_EFFECT, 0
- jumptocalledmove FALSE
+ return
BattleScript_MoveUsedLoafingAround::
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_LOAFING, BattleScript_MoveUsedLoafingAroundMsg
@@ -8360,73 +7587,13 @@ BattleScript_SubstituteFade::
printstring STRINGID_PKMNSUBSTITUTEFADED
return
-BattleScript_BerryCurePrlzEnd2::
- call BattleScript_BerryCureParRet
+BattleScript_BerryCureStatusEnd2::
+ call BattleScript_BerryCureStatusRet
end2
-BattleScript_BerryCureParRet::
+BattleScript_BerryCureStatusRet::
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printstring STRINGID_PKMNSITEMCUREDPARALYSIS
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_SCRIPTING
- removeitem BS_SCRIPTING
- return
-
-BattleScript_BerryCurePsnEnd2::
- call BattleScript_BerryCurePsnRet
- end2
-
-BattleScript_BerryCurePsnRet::
- playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printstring STRINGID_PKMNSITEMCUREDPOISON
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_SCRIPTING
- removeitem BS_SCRIPTING
- return
-
-BattleScript_BerryCureBrnEnd2::
- call BattleScript_BerryCureBrnRet
- end2
-
-BattleScript_BerryCureBrnRet::
- playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printstring STRINGID_PKMNSITEMHEALEDBURN
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_SCRIPTING
- removeitem BS_SCRIPTING
- return
-
-BattleScript_BerryCureFrzEnd2::
- call BattleScript_BerryCureFrzRet
- end2
-
-BattleScript_BerryCureFrzRet::
- playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printstring STRINGID_PKMNSITEMDEFROSTEDIT
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_SCRIPTING
- removeitem BS_SCRIPTING
- return
-
-BattleScript_BerryCureFrbEnd2::
- call BattleScript_BerryCureFrzRet
- end2
-
-BattleScript_BerryCureFrbRet::
- playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printstring STRINGID_PKMNSITEMHEALEDFROSTBITE
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_SCRIPTING
- removeitem BS_SCRIPTING
- return
-
-BattleScript_BerryCureSlpEnd2::
- call BattleScript_BerryCureSlpRet
- end2
-
-BattleScript_BerryCureSlpRet::
- playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printstring STRINGID_PKMNSITEMWOKEIT
+ printfromtable CureStatusBerryEffectStringID
waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
@@ -8461,25 +7628,12 @@ BattleScript_BerryCureConfusionRet::
removeitem BS_SCRIPTING
return
-BattleScript_BerryCureChosenStatusEnd2::
- call BattleScript_BerryCureChosenStatusRet
- end2
-
-BattleScript_BerryCureChosenStatusRet::
- playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
- printfromtable gBerryEffectStringIds
- waitmessage B_WAIT_TIME_LONG
- updatestatusicon BS_SCRIPTING
- removeitem BS_SCRIPTING
- return
-
BattleScript_MentalHerbCureRet::
- playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
+ playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printfromtable gMentalHerbCureStringIds
waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_SCRIPTING
removeitem BS_SCRIPTING
- copybyte gBattlerAttacker, sSAVED_BATTLER @ restore the original attacker just to be safe
return
BattleScript_MentalHerbCureEnd2::
@@ -8501,14 +7655,13 @@ BattleScript_ItemHealHP_RemoveItemRet::
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp
goto BattleScript_ItemHealHP_RemoveItemRet_Anim
BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp:
- call BattleScript_AbilityPopUp
+ call BattleScript_AbilityPopUpScripting
BattleScript_ItemHealHP_RemoveItemRet_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
removeitem BS_SCRIPTING
return
@@ -8516,14 +7669,13 @@ BattleScript_ItemHealHP_RemoveItemEnd2::
jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp
goto BattleScript_ItemHealHP_RemoveItemEnd2_Anim
BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp:
- call BattleScript_AbilityPopUp
+ call BattleScript_AbilityPopUpScripting
BattleScript_ItemHealHP_RemoveItemEnd2_Anim:
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
removeitem BS_ATTACKER
end2
@@ -8547,21 +7699,25 @@ BattleScript_ItemHealHP_End2::
call BattleScript_ItemHealHP_Ret
end2
-BattleScript_AirBaloonMsgIn::
+BattleScript_AirBalloonMsgIn::
printstring STRINGID_AIRBALLOONFLOAT
waitmessage B_WAIT_TIME_LONG
end3
-BattleScript_AirBaloonMsgPop::
+BattleScript_AirBalloonMsgInRet::
+ printstring STRINGID_AIRBALLOONFLOAT
+ waitmessage B_WAIT_TIME_LONG
+ return
+
+BattleScript_AirBalloonMsgPop::
printstring STRINGID_AIRBALLOONPOP
waitmessage B_WAIT_TIME_LONG
removeitem BS_TARGET
return
BattleScript_ItemHurtRet::
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
printstring STRINGID_HURTBYITEM
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
@@ -8577,9 +7733,8 @@ BattleScript_ItemHealHP_Ret::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_ATTACKER
- datahpupdate BS_ATTACKER
+ healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE
+ datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE
return
BattleScript_SelectingNotAllowedMoveChoiceItem::
@@ -8632,9 +7787,8 @@ BattleScript_BerryConfuseHealEnd2_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
removeitem BS_SCRIPTING
end2
@@ -8648,9 +7802,8 @@ BattleScript_BerryConfuseHealRet_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
removeitem BS_SCRIPTING
return
@@ -8660,24 +7813,22 @@ BattleScript_ConsumableStatRaiseEnd2::
end2
BattleScript_ConsumableStatRaiseRet::
- @ to ensure `statbuffchange` has correct battler id, backup and use target
- savetarget
- copybyte gBattlerTarget, sBATTLER
jumpifnotberry BS_SCRIPTING, BattleScript_ConsumableStatRaiseRet_Anim
- @ check ripen popup if consuming berry
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ConsumableStatRaiseRet_AbilityPopup
goto BattleScript_ConsumableStatRaiseRet_Anim
BattleScript_ConsumableStatRaiseRet_AbilityPopup:
call BattleScript_AbilityPopUp
BattleScript_ConsumableStatRaiseRet_Anim:
- statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_ConsumableStatRaiseRet_End
+ statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_ConsumableStatRaiseRet_End
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
- statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_ConsumableStatRaiseRet_End
- setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
+ statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_ConsumableStatRaiseRet_End
+ setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGED_ITEM
+ savetarget
+ copybyte gBattlerTarget, sBATTLER @ BattleScript_StatUp uses target as a message arg
call BattleScript_StatUp
+ restoretarget
removeitem BS_SCRIPTING
BattleScript_ConsumableStatRaiseRet_End:
- restoretarget
return
BattleScript_BerryFocusEnergyRet::
@@ -8841,7 +7992,7 @@ BattleScript_MirrorHerbCopyStatChange::
removeitem BS_SCRIPTING
BattleScript_MirrorHerbStartCopyStats:
copyfoesstatincrease BS_SCRIPTING, BattleScript_MirrorHerbStartReturn
- statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorHerbStartReturn
+ statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorHerbStartReturn
setbyte sSTAT_ANIM_PLAYED, TRUE @ play stat change animation only once
goto BattleScript_MirrorHerbStartCopyStats
BattleScript_MirrorHerbStartReturn:
@@ -8852,13 +8003,17 @@ BattleScript_OpportunistCopyStatChange::
call BattleScript_AbilityPopUpScripting
BattleScript_OpportunistStartCopyStats:
copyfoesstatincrease BS_SCRIPTING, BattleScript_OpportunistCopyStatChangeEnd
- statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_OpportunistCopyStatChangeEnd
+ statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_OpportunistCopyStatChangeEnd
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
setbyte sSTAT_ANIM_PLAYED, TRUE @ play stat change animation only once
goto BattleScript_OpportunistStartCopyStats
BattleScript_OpportunistCopyStatChangeEnd:
setbyte sSTAT_ANIM_PLAYED, FALSE
+ return
+
+BattleScript_OpportunistCopyStatChangeEnd3::
+ call BattleScript_OpportunistCopyStatChange
end3
BattleScript_TotemVar::
@@ -8957,7 +8112,7 @@ BattleScript_MicleBerryActivateRet::
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_MicleBerryActivateRet_Ripen
goto BattleScript_MicleBerryActivateRet_Anim
BattleScript_MicleBerryActivateRet_Ripen:
- call BattleScript_AbilityPopUp
+ call BattleScript_AbilityPopUpScripting
BattleScript_MicleBerryActivateRet_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_MICLEBERRYACTIVATES
@@ -9000,31 +8155,21 @@ BattleScript_ZMoveActivateStatus::
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
return
-BattleScript_ZMoveActivatePowder::
- flushtextbox
- trytrainerslidezmovemsg
- savetarget
- printstring STRINGID_ZPOWERSURROUNDS
- playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
- setzeffect
- restoretarget
- goto BattleScript_MoveUsedPowder
-
BattleScript_ZEffectPrintString::
printfromtable gZEffectStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_RecoverHPZMove::
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
printfromtable gZEffectStringIds
waitmessage B_WAIT_TIME_LONG
return
BattleScript_StatUpZMove::
statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpZMoveEnd
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpZMoveEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpZMoveEnd
printstring STRINGID_ZMOVESTATUP
waitmessage B_WAIT_TIME_LONG
printfromtable gStatUpStringIds
@@ -9036,14 +8181,12 @@ BattleScript_HealReplacementZMove::
playanimation BS_SCRIPTING, B_ANIM_WISH_HEAL, 0x0
printfromtable gZEffectStringIds
waitmessage B_WAIT_TIME_LONG
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
return
BattleScript_EffectExtremeEvoboost::
attackcanceler
- attackstring
- ppreduce
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
@@ -9080,38 +8223,6 @@ BattleScript_ExtremeEvoboostSpDef::
BattleScript_ExtremeEvoboostEnd::
goto BattleScript_MoveEnd
-BattleScript_EffectHitSetTerrain::
- attackcanceler
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
- ppreduce
- critcalc
- damagecalc
- adjustdamage
- attackanimation
- waitanimation
- effectivenesssound
- hitanimation BS_TARGET
- waitstate
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
- critmessage
- waitmessage B_WAIT_TIME_LONG
- resultmessage
- waitmessage B_WAIT_TIME_LONG
- setterrain BattleScript_TryFaint
- playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
- printfromtable gTerrainStringIds
- waitmessage B_WAIT_TIME_LONG
-BattleScript_TryFaint:
- tryfaintmon BS_TARGET
- goto BattleScript_MoveEnd
-
-BattleScript_EffectSteelRoller::
- attackcanceler
- jumpifhalfword CMP_NO_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_FailedFromAtkString
- goto BattleScript_HitFromAccCheck
-
BattleScript_RemoveTerrain::
removeterrain
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
@@ -9225,8 +8336,6 @@ BattleScript_EjectPackActivates::
goto BattleScript_EjectPackActivate_Ret
BattleScript_DoesntAffectTargetAtkString::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
printstring STRINGID_ITDOESNTAFFECT
waitmessage B_WAIT_TIME_LONG
@@ -9234,8 +8343,6 @@ BattleScript_DoesntAffectTargetAtkString::
goto BattleScript_MoveEnd
BattleScript_WellBakedBodyActivates::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUpTarget
setmoveresultflags MOVE_RESULT_NO_EFFECT
@@ -9244,8 +8351,6 @@ BattleScript_WellBakedBodyEnd:
goto BattleScript_MoveEnd
BattleScript_WindRiderActivatesMoveEnd::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUpTarget
setmoveresultflags MOVE_RESULT_NO_EFFECT
@@ -9254,8 +8359,6 @@ BattleScript_WindRiderActivatesMoveEnd_End:
goto BattleScript_MoveEnd
BattleScript_GoodAsGoldActivates::
- attackstring
- ppreduce
call BattleScript_AbilityPopUpTarget
pause B_WAIT_TIME_SHORT
printstring STRINGID_ITDOESNTAFFECT
@@ -9296,8 +8399,7 @@ BattleScript_NeutralizingGasExits::
setbyte gBattlerAttacker, 0
BattleScript_NeutralizingGasExitsLoop:
copyarraywithindex gBattlerTarget, gBattlerByTurnOrder, gBattlerAttacker, 1
- jumpifabilitycantbesuppressed BS_TARGET, BattleScript_NeutralizingGasExitsLoopIncrement
- jumpifability BS_TARGET, ABILITY_IMPOSTER, BattleScript_NeutralizingGasExitsLoopIncrement @ Imposter only activates when first entering the field
+ jumpifabilitycantbereactivated BS_TARGET, BattleScript_NeutralizingGasExitsLoopIncrement
saveattacker
switchinabilities BS_TARGET
restoreattacker
@@ -9320,21 +8422,20 @@ BattleScript_SymbiosisActivates::
return
BattleScript_TargetAbilityStatRaiseRet::
- copybyte sSAVED_BATTLER, gBattlerAttacker
- copybyte gBattlerAbility, gEffectBattler
- copybyte gBattlerAttacker, gBattlerTarget
+ saveattacker
+ copybyte gBattlerAttacker, gEffectBattler
call BattleScript_AbilityPopUp
statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN, BattleScript_TargetAbilityStatRaiseRet_End
call BattleScript_StatUp
BattleScript_TargetAbilityStatRaiseRet_End:
- copybyte gBattlerAttacker, sSAVED_BATTLER
+ restoreattacker
return
@@@ MAX MOVES @@@
BattleScript_EffectMaxMove::
attackcanceler
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
- goto BattleScript_HitFromAtkString
+ goto BattleScript_HitFromCritCalc
BattleScript_EffectRaiseStatAllies::
savetarget
@@ -9344,7 +8445,7 @@ BattleScript_RaiseSideStatsLoop:
jumpifabsent BS_TARGET, BattleScript_RaiseSideStatsIncrement
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RaiseSideStatsIncrement
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RaiseSideStatsIncrement
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RaiseSideStatsIncrement
printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_RaiseSideStatsIncrement:
@@ -9362,7 +8463,7 @@ BattleScript_LowerSideStatsLoop:
jumpifabsent BS_TARGET, BattleScript_LowerSideStatsIncrement
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_LowerSideStatsIncrement
- jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_LowerSideStatsIncrement
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_LowerSideStatsIncrement
printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG
BattleScript_LowerSideStatsIncrement:
@@ -9555,9 +8656,8 @@ BattleScript_EffectHealOneSixthAllies::
BattleScript_HealOneSixthAlliesLoop:
jumpifabsent BS_TARGET, BattleScript_HealOneSixthAlliesIncrement
tryhealsixthhealth BattleScript_HealOneSixthAlliesIncrement
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_TARGET
- datahpupdate BS_TARGET
+ healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE
+ datahpupdate BS_TARGET, PASSIVE_HP_UPDATE
printstring STRINGID_PKMNREGAINEDHEALTH
waitmessage B_WAIT_TIME_LONG
BattleScript_HealOneSixthAlliesIncrement:
@@ -9639,19 +8739,13 @@ BattleScript_DynamaxEnds_Ret::
return
BattleScript_MoveBlockedByDynamax::
- accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
- attackstring
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
pause B_WAIT_TIME_SHORT
- ppreduce
- jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_STRING_PRINTED, BattleScript_MoveEnd
printstring STRINGID_MOVEBLOCKEDBYDYNAMAX
waitmessage B_WAIT_TIME_LONG
- orword gHitMarker, HITMARKER_STRING_PRINTED
goto BattleScript_MoveEnd
BattleScript_PokemonCantUseTheMove::
- attackstring
- ppreduce
pause B_WAIT_TIME_SHORT
printstring STRINGID_BUTPOKEMONCANTUSETHEMOVE
waitmessage B_WAIT_TIME_LONG
@@ -9663,18 +8757,15 @@ BattleScript_CouldntFullyProtect::
return
BattleScript_BerserkGeneRet::
- saveattacker
- savetarget
- copybyte gBattlerTarget, sBATTLER
- statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_BerserkGeneRet_TryConfuse
- playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
- statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_BerserkGeneRet_TryConfuse
- setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
+ statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_BerserkGeneRet_TryConfuse
+ playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
+ statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_BerserkGeneRet_TryConfuse
+ setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGED_ITEM
call BattleScript_StatUp
BattleScript_BerserkGeneRet_TryConfuse:
- jumpifability BS_ATTACKER, ABILITY_OWN_TEMPO, BattleScript_BerserkGeneRet_OwnTempoPrevents
+ jumpifability BS_SCRIPTING, ABILITY_OWN_TEMPO, BattleScript_BerserkGeneRet_OwnTempoPrevents
jumpifsafeguard BattleScript_BerserkGeneRet_SafeguardProtected
- seteffectprimary BS_ATTACKER, BS_ATTACKER, MOVE_EFFECT_CONFUSION
+ seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
goto BattleScript_BerserkGeneRet_End
BattleScript_BerserkGeneRet_SafeguardProtected::
pause B_WAIT_TIME_SHORT
@@ -9683,13 +8774,11 @@ BattleScript_BerserkGeneRet_SafeguardProtected::
goto BattleScript_BerserkGeneRet_End
BattleScript_BerserkGeneRet_OwnTempoPrevents:
pause B_WAIT_TIME_SHORT
- call BattleScript_AbilityPopUp
+ call BattleScript_AbilityPopUpScripting
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
waitmessage B_WAIT_TIME_LONG
BattleScript_BerserkGeneRet_End:
- restoreattacker
- restoretarget
- removeitem BS_ATTACKER
+ removeitem BS_SCRIPTING
return
BattleScript_BerserkGeneRetEnd2::
@@ -9712,8 +8801,6 @@ BattleScript_BoosterEnergyRet::
BattleScript_EffectSnow::
attackcanceler
- attackstring
- ppreduce
call BattleScript_CheckPrimalWeather
setfieldweather BATTLE_WEATHER_SNOW
goto BattleScript_MoveWeatherChange
@@ -9745,3 +8832,62 @@ BattleScript_ForfeitBattleGaveMoney::
.endif
waitmessage B_WAIT_TIME_LONG
end2
+
+BattleScript_Attackstring::
+ printattackstring
+ return
+
+BattleScript_SubmoveAttackstring::
+ printattackstring
+ pause B_WAIT_TIME_LONG
+ attackanimation
+ waitanimation
+ setcalledmove
+ return
+
+BattleScript_SleepTalkAttackstring::
+ printattackstring
+ pause B_WAIT_TIME_LONG
+ printstring STRINGID_PKMNFASTASLEEP
+ waitmessage B_WAIT_TIME_LONG
+ statusanimation BS_ATTACKER
+ attackanimation
+ waitanimation
+ setcalledmove
+ return
+
+BattleScript_MetronomeAttackstring::
+ printattackstring
+ pause B_WAIT_TIME_LONG
+ attackanimation
+ waitanimation
+ setcalledmove
+ printstring STRINGID_WAGGLINGAFINGER
+ waitmessage B_WAIT_TIME_LONG
+ return
+
+BattleScript_NaturePowerAttackstring::
+ printattackstring
+ pause B_WAIT_TIME_SHORT
+ setcalledmove
+ printstring STRINGID_NATUREPOWERTURNEDINTO
+ waitmessage B_WAIT_TIME_LONG
+ return
+
+BattleScript_SwapFromSubstitute::
+ jumpifvolatile BS_SCRIPTING, VOLATILE_SUBSTITUTE, BattleScript_SwapFromSubstituteContinue
+ goto BattleScript_SwapFromSubstituteReturn
+BattleScript_SwapFromSubstituteContinue:
+ playanimation BS_SCRIPTING, B_ANIM_SWAP_FROM_SUBSTITUTE
+ waitanimation
+BattleScript_SwapFromSubstituteReturn:
+ return
+
+BattleScript_SwapToSubstitute::
+ jumpifvolatile BS_SCRIPTING, VOLATILE_SUBSTITUTE, BattleScript_SwapToSubstituteContinue
+ goto BattleScript_SwapToSubstituteReturn
+BattleScript_SwapToSubstituteContinue:
+ playanimation BS_SCRIPTING, B_ANIM_SWAP_TO_SUBSTITUTE
+ waitanimation
+BattleScript_SwapToSubstituteReturn:
+ return
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index 586a79c5ef..5f7cc23a8c 100755
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -49,9 +49,8 @@ BattleScript_UseItemMessage:
BattleScript_ItemRestoreHPRet:
clearmoveresultflags MOVE_RESULT_NO_EFFECT
- orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
- healthbarupdate BS_SCRIPTING
- datahpupdate BS_SCRIPTING
+ healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
+ datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
waitmessage B_WAIT_TIME_LONG
return
@@ -75,6 +74,10 @@ BattleScript_ItemRestoreHP_Party::
return
BattleScript_ItemRestoreHP_SendOutRevivedBattler:
+ switchhandleorder BS_SCRIPTING, 0
+ getswitchedmondata BS_SCRIPTING
+ switchindataupdate BS_SCRIPTING
+ trytoclearprimalweather
switchinanim BS_SCRIPTING, FALSE, FALSE
waitstate
switchineffects BS_SCRIPTING
@@ -83,13 +86,18 @@ BattleScript_ItemRestoreHP_SendOutRevivedBattler:
BattleScript_ItemCureStatus::
call BattleScript_UseItemMessage
BattleScript_ItemCureStatusAfterItemMsg:
- itemcurestatus BattleScript_ItemCureStatusEnd
- updatestatusicon BS_SCRIPTING
+ itemcurestatus BattleScript_ItemCureStatusEnd, BattleScript_CureStatus_Battler
printstring STRINGID_ITEMCUREDSPECIESSTATUS
waitmessage B_WAIT_TIME_LONG
BattleScript_ItemCureStatusEnd:
end
+BattleScript_CureStatus_Battler::
+ updatestatusicon BS_SCRIPTING
+ printstring STRINGID_ITEMCUREDSPECIESSTATUS
+ waitmessage B_WAIT_TIME_LONG
+ end
+
BattleScript_ItemHealAndCureStatus::
call BattleScript_UseItemMessage
itemrestorehp BattleScript_ItemCureStatusAfterItemMsg, BattleScript_ItemHealAndCureStatus_Battler
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 1ddb33c9d2..c810f13cb3 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -3,6 +3,7 @@
#include "config/item.h"
#include "constants/global.h"
#include "constants/apprentice.h"
+#include "constants/apricorn_tree.h"
#include "constants/battle.h"
#include "constants/battle_arena.h"
#include "constants/battle_dome.h"
@@ -43,6 +44,7 @@
#include "constants/maps.h"
#include "constants/mauville_old_man.h"
#include "constants/metatile_labels.h"
+#include "constants/move_relearner.h"
#include "constants/moves.h"
#include "constants/party_menu.h"
#include "constants/pokedex.h"
@@ -62,6 +64,7 @@
#include "constants/union_room.h"
#include "constants/vars.h"
#include "constants/weather.h"
+#include "constants/speaker_names.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
.include "constants/constants.inc"
@@ -71,6 +74,7 @@
.set ALLOCATE_SCRIPT_CMD_TABLE, 1
.include "data/script_cmd_table.inc"
+.align 2
gSpecialVars::
.4byte gSpecialVar_0x8000
.4byte gSpecialVar_0x8001
@@ -695,6 +699,7 @@ EventScript_SetBrineyLocation_Route109::
.include "data/scripts/obtain_item.inc"
.include "data/scripts/record_mix.inc"
.include "data/scripts/pc.inc"
+ .include "data/scripts/move_relearner.inc"
@ scripts/notices.inc? signs.inc? See comment about text/notices.inc
Common_EventScript_ShowPokemartSign::
@@ -880,6 +885,7 @@ Common_EventScript_PlayerHandedOverTheItem::
.include "data/text/pkmn_center_nurse.inc"
.include "data/text/mart_clerk.inc"
.include "data/text/obtain_item.inc"
+ .include "data/text/move_relearner.inc"
@ The below and surf.inc could be split into some text/notices.inc
gText_PokemartSign::
@@ -1109,9 +1115,6 @@ EventScript_VsSeekerChargingDone::
.include "data/scripts/cable_club.inc"
.include "data/text/cable_club.inc"
.include "data/scripts/contest_hall.inc"
- .include "data/text/contest_strings.inc"
- .include "data/text/contest_link.inc"
- .include "data/text/contest_painting.inc"
.include "data/scripts/tv.inc"
.include "data/text/tv.inc"
.include "data/scripts/interview.inc"
@@ -1155,3 +1158,5 @@ EventScript_VsSeekerChargingDone::
.include "data/text/save.inc"
.include "data/text/birch_speech.inc"
.include "data/scripts/dexnav.inc"
+ .include "data/scripts/battle_frontier.inc"
+ .include "data/scripts/apricorn_tree.inc"
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
index 34678bb293..ce71a102fd 100644
--- a/data/field_effect_scripts.s
+++ b/data/field_effect_scripts.s
@@ -83,6 +83,7 @@ gFieldEffectScriptPointers::
.4byte gFieldEffectScript_Defog @ FLDEFF_DEFOG
.4byte gFieldEffectScript_UseRockClimb @ FLDEFF_USE_ROCK_CLIMB
.4byte gFieldEffectScript_RockClimbDust @ FLDEFF_ROCK_CLIMB_DUST
+ .4byte gFieldEffectScript_ORASDowse @ FLDEFF_ORAS_DOWSE
gFieldEffectScript_ExclamationMarkIcon1::
field_eff_callnative FldEff_ExclamationMarkIcon
@@ -386,6 +387,7 @@ gFieldEffectScript_CaveDust::
gFieldEffectScript_Defog::
field_eff_callnative FldEff_Defog
field_eff_end
+
gFieldEffectScript_UseRockClimb:: @ 82DBC3F
field_eff_callnative FldEff_UseRockClimb
field_eff_end
@@ -394,3 +396,7 @@ gFieldEffectScript_RockClimbDust:: @ 82DBB28
field_eff_loadfadedpal_callnative gSpritePalette_BigDust, FldEff_RockClimbDust
field_eff_end
+gFieldEffectScript_ORASDowse::
+ field_eff_callnative FldEff_ORASDowsing
+ field_eff_end
+
diff --git a/data/map_events.s b/data/map_events.s
index 729f9725df..13064da025 100644
--- a/data/map_events.s
+++ b/data/map_events.s
@@ -13,6 +13,7 @@
#include "constants/trainer_types.h"
#include "constants/berry.h"
#include "constants/species.h"
+#include "constants/apricorn_tree.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
index 72262798eb..572413d8e1 100644
--- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
@@ -182,10 +182,14 @@ BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMons::
BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLv50::
msgbox BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleArenaLobby_EventScript_EndCancelChallenge
BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLvOpen::
msgbox BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleArenaLobby_EventScript_EndCancelChallenge
BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed::
@@ -375,10 +379,13 @@ BattleFrontier_BattleArenaLobby_Text_SelectThreeMons:
.string "好的,\n请选择参加的3只宝可梦。$"
BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLvOpen:
- .string "尊敬的挑战者!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧!$"
+ .string "尊敬的挑战者!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
+
+BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsEnd:
+ .string "无法参加对战!\p请在准备就绪之后,\n再来参加吧!$"
BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLv50:
- .string "尊敬的挑战者!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧!$"
+ .string "尊敬的挑战者!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleArenaLobby_Text_GuideYouToArena:
.string "现在我将带您前往对战竞技场。$"
diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
index b435a50028..be5605dbc2 100644
--- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
@@ -210,10 +210,14 @@ BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons::
BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50::
msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen::
msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed::
@@ -455,10 +459,13 @@ BattleFrontier_BattleDomeLobby_Text_SelectThreeMons:
.string "请挑选参加的\n3只宝可梦。$"
BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen:
- .string "很抱歉!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只不同种类的\n宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧!$"
+ .string "很抱歉!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只不同种类的\n宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
+
+BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsEnd:
+ .string "请在准备就绪之后,\n再来参加吧!$"
BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50:
- .string "很抱歉!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧!$"
+ .string "很抱歉!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome:
.string "现在我将带您前往\n对战巨蛋。$"
diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
index b7dd33de92..3c07a4771b 100644
--- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
@@ -202,10 +202,14 @@ BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMons::
BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLv50::
msgbox BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattlePalaceLobby_EventScript_EndCancelChallenge
BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLvOpen::
msgbox BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattlePalaceLobby_EventScript_EndCancelChallenge
BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed::
@@ -390,10 +394,13 @@ BattleFrontier_BattlePalaceLobby_Text_WhichChallenge:
.string "对战厅有2种,\nLv. 50级和自由等级,\l您要挑战哪种?$"
BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLv50:
- .string "哎……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "哎……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
+
+BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsEnd:
+ .string "请在准备就绪之后,\n再来参加吧。$"
BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLvOpen:
- .string "哎……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "哎……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
BattleFrontier_BattlePalaceLobby_Text_NowSelectThreeMons:
.string "好的。那么请选择要参加的\n3只宝可梦。$"
diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
index 17a5fe5bfd..0ac4088e81 100644
--- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
@@ -172,10 +172,14 @@ BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMons::
BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLv50::
msgbox BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattlePikeLobby_EventScript_EndCancelChallenge
BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLvOpen::
msgbox BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattlePikeLobby_EventScript_EndCancelChallenge
BattleFrontier_BattlePikeLobby_EventScript_CancelChallengeSaveFailed::
@@ -285,10 +289,13 @@ BattleFrontier_BattlePikeLobby_Text_WhichChallengeMode:
.string "您有2个选择,\nLv. 50级和自由等级。\l要挑战哪个?$"
BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLv50:
- .string "冒昧打扰,但……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧……$"
+ .string "冒昧打扰,但……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
+
+BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsEnd:
+ .string "请在准备就绪之后,\n再来参加吧……$"
BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLvOpen:
- .string "冒昧打扰,但……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧……$"
+ .string "冒昧打扰,但……\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p并且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
BattleFrontier_BattlePikeLobby_Text_PleaseChooseThreeMons:
.string "请选择要参加挑战的\n3只宝可梦……$"
diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
index f46d26c587..e2fe530739 100644
--- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
@@ -184,10 +184,14 @@ BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMons::
BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLv50::
msgbox BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattlePyramidLobby_EventScript_EndCancelChallenge
BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLvOpen::
msgbox BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattlePyramidLobby_EventScript_EndCancelChallenge
BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed::
@@ -544,10 +548,13 @@ BattleFrontier_BattlePyramidLobby_Text_SelectThreeMons:
.string "好的,请选择要参加挑战的\n3只宝可梦。$"
BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLvOpen:
- .string "探险家啊,有点小问题!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p并且记得要取下它们携带的道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p准备就绪后,\n请告诉我一声。$"
+ .string "探险家啊,有点小问题!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p并且记得要取下它们携带的道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLv50:
- .string "探险家啊,有点小问题!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p并且记得要取下它们携带的道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p准备就绪后,\n请告诉我一声。$"
+ .string "探险家啊,有点小问题!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p并且记得要取下它们携带的道具\n才可参加对战。\p此外,蛋{STR_VAR_1}!$"
+
+BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsEnd:
+ .string "准备就绪后,\n请告诉我一声。$"
BattleFrontier_BattlePyramidLobby_Text_OkayToSaveBeforeChallenge:
.string "进入对战金字塔之前\n要先写入记录,可以吗?$"
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
index 11ee4a3396..7d38b38a7f 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
@@ -543,16 +543,22 @@ BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50::
case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Singles
case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Doubles
msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Multis, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge
end
BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Singles::
msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Singles, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge
end
BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Doubles::
msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Doubles, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge
end
@@ -561,16 +567,22 @@ BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpen::
case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenSingles
case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenDoubles
msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenMultis, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge
end
BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenSingles::
msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenSingles, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge
end
BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenDoubles::
msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenDoubles, MSGBOX_DEFAULT
+ call BattleFrontier_ShowCaughtBannedSpecies
+ msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd, MSGBOX_DEFAULT
goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge
end
@@ -1019,29 +1031,32 @@ BattleFrontier_BattleTowerLobby_Text_RecordLastMatch:
@ Unused
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50:
- .string "这位客人!\p您符合条件的宝可梦不足{STR_VAR_2}只。\p需要有{STR_VAR_2}只不同的等级50以内的\n宝可梦才可以参加比赛,\p同时这些宝可梦携带的道具\n也需要各不相同。\p蛋{STR_VAR_1}不能参加。\p准备好之后再来吧。$"
+ .string "这位客人!\p您符合条件的宝可梦不足{STR_VAR_2}只。\p需要有{STR_VAR_2}只不同的等级50以内的\n宝可梦才可以参加比赛,\p同时这些宝可梦携带的道具\n也需要各不相同。\p蛋{STR_VAR_1}。$"
+
+BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsEnd:
+ .string "准备好之后再来吧。$"
@ Unused
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpen:
- .string "这位客人!\p您符合条件的宝可梦不足{STR_VAR_2}只。\p需要有{STR_VAR_2}只不同的宝可梦\n才可以参加比赛,\p同时这些宝可梦携带的道具\n也需要各不相同。\p蛋{STR_VAR_1}不能参加。\p准备好之后再来吧。$"
+ .string "这位客人!\p您符合条件的宝可梦不足{STR_VAR_2}只。\p需要有{STR_VAR_2}只不同的宝可梦\n才可以参加比赛,\p同时这些宝可梦携带的道具\n也需要各不相同。\p蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Singles:
- .string "这位客人!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "这位客人!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenSingles:
- .string "这位客人!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "这位客人!\p您能够参加对战的\n宝可梦不满3只。\p您需要准备3只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Doubles:
- .string "这位客人!\p您能够参加对战的\n宝可梦不满4只。\p您需要准备4只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "这位客人!\p您能够参加对战的\n宝可梦不满4只。\p您需要准备4只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenDoubles:
- .string "这位客人!\p您能够参加对战的\n宝可梦不满4只。\p您需要准备4只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "这位客人!\p您能够参加对战的\n宝可梦不满4只。\p您需要准备4只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Multis:
- .string "这位客人!\p您能够参加对战的\n宝可梦不满2只。\p您需要准备2只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "这位客人!\p您能够参加对战的\n宝可梦不满2只。\p您需要准备2只等级50以内的\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenMultis:
- .string "这位客人!\p您能够参加对战的\n宝可梦不满2只。\p您需要准备2只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}无法参加对战!\p请在准备就绪之后,\n再来参加吧。$"
+ .string "这位客人!\p您能够参加对战的\n宝可梦不满2只。\p您需要准备2只\n不同种类的宝可梦,\p且让它们分别携带不同道具\n才可参加对战。\p此外,蛋{STR_VAR_1}。$"
BattleFrontier_BattleTowerLobby_Text_WelcomSingleBattle:
.string "训练家的才能\n将在此接受考验!\p欢迎来到对战塔!\p我是您的单打对战间向导。$"
diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc
index 33390c6cf2..7e84402a26 100644
--- a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc
+++ b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc
@@ -22,6 +22,7 @@ FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove::
FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon::
msgbox FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon, MSGBOX_DEFAULT
+ setmoverelearnerstate MOVE_RELEARNER_LEVEL_UP_MOVES @ Specifically supposed to teach level up moves
special ChooseMonForMoveRelearner
waitstate
goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale
diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json
index 8a90679c8d..78e82055f6 100644
--- a/data/maps/map_groups.json
+++ b/data/maps/map_groups.json
@@ -620,72 +620,5 @@
],
"gMapGroup_IndoorRoute124": [
"Route124_DivingTreasureHuntersHouse"
- ],
- "connections_include_order": [
- "LittlerootTown",
- "OldaleTown",
- "DewfordTown",
- "LavaridgeTown",
- "FallarborTown",
- "VerdanturfTown",
- "PacifidlogTown",
- "PetalburgCity",
- "SlateportCity",
- "MauvilleCity",
- "RustboroCity",
- "FortreeCity",
- "LilycoveCity",
- "MossdeepCity",
- "SootopolisCity",
- "EverGrandeCity",
- "Route101",
- "Route102",
- "Route103",
- "Route104",
- "Route105",
- "Route106",
- "Route107",
- "Route108",
- "Route109",
- "Route110",
- "Route111",
- "Route112",
- "Route113",
- "Route114",
- "Route115",
- "Route116",
- "Route117",
- "Route118",
- "Route119",
- "Route120",
- "Route121",
- "Route122",
- "Route123",
- "Route124",
- "Route125",
- "Route126",
- "Route127",
- "Route128",
- "Route129",
- "Route130",
- "Route131",
- "Route132",
- "Route133",
- "Route134",
- "Underwater_Route105",
- "Underwater_Route124",
- "Underwater_Route125",
- "Underwater_Route126",
- "Underwater_Route127",
- "Underwater_Route128",
- "Underwater_Route129",
- "SafariZone_Northwest",
- "SafariZone_North",
- "SafariZone_Southwest",
- "SafariZone_South",
- "SafariZone_Northeast",
- "SafariZone_Southeast",
- "BattleFrontier_OutsideWest",
- "BattleFrontier_OutsideEast"
]
}
diff --git a/data/scripts/apricorn_tree.inc b/data/scripts/apricorn_tree.inc
new file mode 100644
index 0000000000..019b2b76b0
--- /dev/null
+++ b/data/scripts/apricorn_tree.inc
@@ -0,0 +1,89 @@
+ApricornTreeScript::
+ lock
+ faceplayer
+ message ApricornTree_Text_Intro
+ waitmessage
+ special ObjectEventInteractionGetApricornTreeData
+ goto_if_gt VAR_0x8005, 0, ApricornTree_EventScript_WantToPick
+ message ApricornTree_Text_Empty
+ waitmessage
+ waitbuttonpress
+ release
+ end
+
+ApricornTree_EventScript_WantToPick::
+ buffernumberstring STR_VAR_2, VAR_0x8005
+ msgbox ApricornTree_Text_WantToPick, MSGBOX_YESNO
+ goto_if_eq VAR_RESULT, YES, ApricornTree_EventScript_PickApricorn
+ goto_if_eq VAR_RESULT, NO, ApricornTree_EventScript_CancelPickingApricorn
+
+.set APRICORN_NORMAL_BAG_FULL, 0
+.set APRICORN_NORMAL_SPACE_IN_BAG, 1
+
+ApricornTree_EventScript_PickApricorn::
+ special ObjectEventInteractionPickApricornTree
+ call EventScript_BufferPocketNameAndTryFanfare
+ goto_if_eq VAR_0x8006, APRICORN_NORMAL_BAG_FULL, ApricornTree_EventScript_PocketFull
+ message ApricornTree_Text_PickedTheApricorn
+.if OW_SHOW_ITEM_DESCRIPTIONS != OW_ITEM_DESCRIPTIONS_OFF
+ copyvar VAR_0x8006 VAR_0x8004
+.endif
+ delay 10
+.if OW_SHOW_ITEM_DESCRIPTIONS != OW_ITEM_DESCRIPTIONS_OFF
+ showberrydescription
+.endif
+ playfanfare MUS_OBTAIN_BERRY
+ waitmessage
+ waitfanfare
+ waitbuttonpress
+ message ApricornTree_Text_PutAwayApricorn
+ waitmessage
+ waitbuttonpress
+.if OW_SHOW_ITEM_DESCRIPTIONS != OW_ITEM_DESCRIPTIONS_OFF
+ hideitemdescription
+.endif
+ release
+ end
+
+ApricornTree_EventScript_PocketFull::
+ message ApricornTree_Text_PocketFull
+ waitmessage
+ waitbuttonpress
+ release
+ end
+
+ApricornTree_EventScript_CancelPickingApricorn::
+ message ApricornTree_Text_ApricornLeftUnpicked
+ waitmessage
+ waitbuttonpress
+ release
+ end
+
+ApricornTree_Text_Intro:
+ .string "It's an Apricorn Tree!$"
+
+ApricornTree_Text_Empty:
+ .string "There are no Apricorns…$"
+
+ApricornTree_Text_WantToPick:
+ .string "…It's {STR_VAR_2} {STR_VAR_1}!\p"
+ .string "Do you want to pick the\n"
+ .string "{STR_VAR_1}?$"
+
+ApricornTree_Text_PickedTheApricorn:
+ .string "{PLAYER} obtained\n"
+ .string "{STR_VAR_2} {STR_VAR_1}.$"
+
+ApricornTree_Text_PutAwayApricorn:
+ .string "{PLAYER} put away the\n"
+ .string "{STR_VAR_1} in\l"
+ .string "the BAG's {STR_VAR_3} POCKET.$"
+
+ApricornTree_Text_PocketFull:
+ .string "The BAG's {STR_VAR_3} POCKET is full.\p"
+ .string "{PLAYER} gave up on the\p"
+ .string "{STR_VAR_1}…$"
+
+ApricornTree_Text_ApricornLeftUnpicked:
+ .string "{PLAYER} gave up on the\p"
+ .string "{STR_VAR_1}…$"
diff --git a/data/scripts/battle_frontier.inc b/data/scripts/battle_frontier.inc
new file mode 100644
index 0000000000..5ad7c30d8e
--- /dev/null
+++ b/data/scripts/battle_frontier.inc
@@ -0,0 +1,13 @@
+BattleFrontier_ShowCaughtBannedSpecies::
+ goto_if_eq VAR_0x8005, 0, BattleFrontier_ShowCaughtBannedSpeciesEnd
+ msgbox BattleFrontier_DoYouWantToSeeTheListOfCaughtBannedSpecies, MSGBOX_YESNO
+ goto_if_eq VAR_RESULT, NO, BattleFrontier_ShowCaughtBannedSpeciesEnd
+ callnative ShowBattleFrontierCaughtBannedSpecies
+ waitstate
+BattleFrontier_ShowCaughtBannedSpeciesEnd:
+ return
+
+
+BattleFrontier_DoYouWantToSeeTheListOfCaughtBannedSpecies:
+ .string "要查看无法参加的\n"
+ .string "宝可梦名单吗?$"
diff --git a/data/scripts/debug.inc b/data/scripts/debug.inc
index 83310d63fe..28e7df5990 100644
--- a/data/scripts/debug.inc
+++ b/data/scripts/debug.inc
@@ -87,6 +87,15 @@ Debug_FlagsNotSetBattleConfigMessage_Text:
.string "请在这里定义一个可用标志:\l"
.string "'include/config/battle.h'!$"
+Debug_VarsNotSetBattleConfigMessage::
+ message Debug_VarsNotSetBattleConfigMessage_Text
+ goto Debug_MessageEnd
+
+Debug_VarsNotSetBattleConfigMessage_Text:
+ .string "Feature unavailable!\n"
+ .string "Please define a usable var in:\l"
+ .string "'include/config/battle.h'!$"
+
Debug_BoxFilledMessage::
message Debug_BoxFilledMessage_Text
goto Debug_MessageEnd
@@ -387,7 +396,29 @@ Debug_EventScript_SetHiddenNature::
dynmultistack 0, 0, TRUE, 7, FALSE, 0, NULL
switch VAR_RESULT
case MULTI_B_PRESSED, Debug_EventScript_InflictStatus1_Close
- special SetHiddenNature
+ special SetHiddenNature
+ releaseall
+ end
+
+Debug_EventScript_SetAbility::
+ special ChoosePartyMon
+ waitstate
+ callnative DebugNative_GetAbilityNames
+ dynmultipush gStringVar1, 0
+ dynmultipush gStringVar2, 1
+ dynmultipush gStringVar3, 2
+ dynmultistack 0, 0, FALSE, 3 FALSE, 0, NULL
+ switch VAR_RESULT
+ case MULTI_B_PRESSED, Debug_EventScript_SetAbilityClose
+ special SetAbility
+Debug_EventScript_SetAbilityClose:
+ releaseall
+ end
+
+Debug_EventScript_SetFriendship::
+ special ChoosePartyMon
+ waitstate
+ callnative DebugNative_Party_SetFriendship
releaseall
end
diff --git a/data/scripts/move_relearner.inc b/data/scripts/move_relearner.inc
new file mode 100644
index 0000000000..15c80733df
--- /dev/null
+++ b/data/scripts/move_relearner.inc
@@ -0,0 +1,105 @@
+Common_EventScript_MoveRelearner::
+ lockall
+ faceplayer
+ message MoveRelearner_Text_WouldLearnNewMoves
+ waitmessage
+ goto Common_EventScript_MoveRelearnerDynMultiChoice
+ end
+
+Common_EventScript_MoveRelearnerDynMultiChoice::
+ dynmultipush MoveRelearner_Text_LevelUpMoves, 0
+.if P_ENABLE_MOVE_RELEARNERS == TRUE
+ dynmultipush MoveRelearner_Text_EggMoves, 1
+ dynmultipush MoveRelearner_Text_TMMoves, 2
+ dynmultipush MoveRelearner_Text_TutormoveMoves, 3
+.else
+ call_if_set P_FLAG_EGG_MOVES, MoveRelearner_EventScript_PushEggMoves
+ istmrelearneractive MoveRelearner_EventScript_PushTMMoves
+ call_if_set P_FLAG_TUTOR_MOVES, MoveRelearner_EventScript_PushTutorMoves
+.endif @ P_ENABLE_MOVE_RELEARNERS
+ dynmultipush MoveRelearner_Text_SeeYa, 4
+ dynmultistack 0, 0, FALSE, 5, 0, 0, DYN_MULTICHOICE_CB_NONE
+ closemessage
+ switch VAR_RESULT
+ case 0, MoveRelearner_EventScript_TeachLevelUpMoves
+ case 1, MoveRelearner_EventScript_TeachEggMoves
+ case 2, MoveRelearner_EventScript_TeachTMMoves
+ case 3, MoveRelearner_EventScript_TeachTutorMoves
+ case 4, MoveRelearner_EventScript_PleaseComeAgain
+MoveRelearner_EventScript_PleaseComeAgain:
+ msgbox MoveRelearner_Text_ThankYouComeAgain, MSGBOX_DEFAULT
+ releaseall
+ end
+
+MoveRelearner_EventScript_PushEggMoves:
+ dynmultipush MoveRelearner_Text_EggMoves, 1
+ return
+
+MoveRelearner_EventScript_PushTMMoves:
+ dynmultipush MoveRelearner_Text_TMMoves, 2
+ return
+
+MoveRelearner_EventScript_PushTutorMoves:
+ dynmultipush MoveRelearner_Text_TutormoveMoves, 3
+ return
+
+MoveRelearner_EventScript_TeachLevelUpMoves:
+ setmoverelearnerstate MOVE_RELEARNER_LEVEL_UP_MOVES
+ bufferstring STR_VAR_3, MoveRelearner_Text_LevelUpMoveLWR
+ goto MoveRelearner_EventScript_TeachMove
+ end
+
+MoveRelearner_EventScript_TeachEggMoves:
+ setmoverelearnerstate MOVE_RELEARNER_EGG_MOVES
+ bufferstring STR_VAR_3, MoveRelearner_Text_EggMoveLWR
+ goto MoveRelearner_EventScript_TeachMove
+ end
+
+MoveRelearner_EventScript_TeachTMMoves:
+ setmoverelearnerstate MOVE_RELEARNER_TM_MOVES
+ bufferstring STR_VAR_3, MoveRelearner_Text_TMMoveLWR
+ goto MoveRelearner_EventScript_TeachMove
+ end
+
+MoveRelearner_EventScript_TeachTutorMoves:
+ setmoverelearnerstate MOVE_RELEARNER_TUTOR_MOVES
+ bufferstring STR_VAR_3, MoveRelearner_Text_TutorMoveLWR
+ goto MoveRelearner_EventScript_TeachMove
+ end
+
+MoveRelearner_EventScript_TeachMove::
+ getpartysize
+ goto_if_eq VAR_RESULT, 0, MoveRelearner_EventScript_NoPkmn
+ msgbox MoveRelearner_Text_ChoosePkmn, MSGBOX_DEFAULT
+ special ChooseMonForMoveRelearner
+ waitstate
+ call_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, MoveRelearner_EventScript_AnythingElse
+ special IsSelectedMonEgg
+ call_if_eq VAR_RESULT, YES, MoveRelearner_EventScript_CantTeachMoveToEgg
+ call_if_eq VAR_0x8005, NO, MoveRelearner_EventScript_CantTeachMoveToPkmn
+ msgbox MoveRelearner_Text_WhichXmoveShouldTeach, MSGBOX_DEFAULT
+ special TeachMoveRelearnerMove
+ waitstate
+ goto MoveRelearner_EventScript_AnythingElse
+ end
+
+MoveRelearner_EventScript_NoPkmn:
+ msgbox MoveRelearner_Text_HaveNoPkmn, MSGBOX_AUTOCLOSE
+ releaseall
+ end
+
+MoveRelearner_EventScript_CantTeachMoveToEgg:
+ msgbox MoveRelearner_Text_CantTeachMoveToEgg, MSGBOX_AUTOCLOSE
+ goto MoveRelearner_EventScript_AnythingElse
+ end
+
+MoveRelearner_EventScript_CantTeachMoveToPkmn:
+ msgbox MoveRelearner_Text_CantTeachMoveToPkmn, MSGBOX_AUTOCLOSE
+ goto MoveRelearner_EventScript_AnythingElse
+ end
+
+MoveRelearner_EventScript_AnythingElse::
+ message MoveRelearner_Text_AnythingElse
+ waitmessage
+ goto Common_EventScript_MoveRelearnerDynMultiChoice
+ end
diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc
index 599961c821..3eb7f4f0d4 100644
--- a/data/scripts/obtain_item.inc
+++ b/data/scripts/obtain_item.inc
@@ -205,6 +205,7 @@ EventScript_FoundHiddenItem::
end
EventScript_PutHiddenItemInPocket::
+ callnative Script_ClearDowsingColor
delay 10
showitemdescription
waitmessage
@@ -215,6 +216,7 @@ EventScript_PutHiddenItemInPocket::
hideitemdescription
special TryPutTreasureInvestigatorsOnAir
special SetHiddenItemFlag
+ callnative Script_UpdateDowseState
releaseall
end
diff --git a/data/sound_data.s b/data/sound_data.s
index d1951ecc7c..b52f9d2f86 100644
--- a/data/sound_data.s
+++ b/data/sound_data.s
@@ -1,5 +1,8 @@
.section .rodata
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
.include "asm/macros/m4a.inc"
.include "asm/macros/music_voice.inc"
.include "include/config/general.h"
diff --git a/data/specials.inc b/data/specials.inc
index 0a2ae2da50..f80933c011 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -564,3 +564,6 @@ gSpecials::
def_special EnterCode
def_special GetCodeFeedback
def_special SetHiddenNature
+ def_special SetAbility
+ def_special ObjectEventInteractionGetApricornTreeData
+ def_special ObjectEventInteractionPickApricornTree
diff --git a/data/text/contest_link.inc b/data/text/contest_link.inc
deleted file mode 100644
index bc28098d7a..0000000000
--- a/data/text/contest_link.inc
+++ /dev/null
@@ -1,34 +0,0 @@
-@ With the exception of Link standby, none of the below texts are used
-
-gTest_MissedTurn::
- .string "错过回合$"
-
-gText_LinkStandby4::
- .string "正在等待连接!$"
-
-gText_WinnerIsPlayersMonCongrats::
- .string "冠军是{STR_VAR_1}的{STR_VAR_2}!\n恭喜!$"
-
-gText_WinnerIsPlayersMon::
- .string "冠军是{STR_VAR_1}的{STR_VAR_2}!{0xFC 9}$"
-
-gText_PrimaryJudgingNumX::
- .string "第1轮评审:No.{STR_VAR_1}{0xFC 9}$"
-
-gText_SecondaryJudgingNumX::
- .string "第2轮评审:No.{STR_VAR_1}{0xFC 9}$"
-
-gText_SetEventNumX::
- .string "自定赛:No.{STR_VAR_1}{0xFC 9}$"
-
-gText_MoveUsedMostOften::
- .string "最常用的招式:\n{STR_VAR_1}{0xFC 9}$"
-
-gText_MostImpressiveMon::
- .string "最出色的宝可梦:\n{STR_VAR_1}的{STR_VAR_2}{0xFC 9}$"
-
-gText_SetEventNumX2::
- .string "自定赛:No.{STR_VAR_1}{0xFC 9}$"
-
-gText_LinkTVProgramWillNotBeMadeTrainerLost::
- .string "无法制作连接电视节目,\n因为训练家已断开连接。{0xFC 9}$"
diff --git a/data/text/contest_painting.inc b/data/text/contest_painting.inc
deleted file mode 100644
index 1dcd702a8e..0000000000
--- a/data/text/contest_painting.inc
+++ /dev/null
@@ -1,81 +0,0 @@
-gContestHallPaintingCaption::
- .string "{STR_VAR_1}\n{STR_VAR_2}的{STR_VAR_3}$"
-
-@ Unused
-gContestPaintingContest::
- .string "比赛$"
-
-gContestRankNormal::
- .string "普通级$"
-
-gContestRankSuper::
- .string "超级级$"
-
-gContestRankHyper::
- .string "专家级$"
-
-gContestRankMaster::
- .string "大师级$"
-
-gContestLink::
- .string "连接$"
-
-gContestCoolness::
- .string "帅气$"
-
-gContestBeauty::
- .string "美丽$"
-
-gContestCuteness::
- .string "可爱$"
-
-gContestSmartness::
- .string "聪明$"
-
-gContestToughness::
- .string "强壮$"
-
-gContestPaintingCool1::
- .string "挡不住的帅气——\n无可估量的{STR_VAR_1}$"
-
-gContestPaintingCool2::
- .string "嗨那边的!\n好漂亮的宝可梦啊{STR_VAR_1}$"
-
-gContestPaintingCool3::
- .string "这真是让人惊奇的\n{STR_VAR_1}居然那么神奇$"
-
-gContestPaintingBeauty1::
- .string "{STR_VAR_1}是本世纪\n最后的维纳斯。$"
-
-gContestPaintingBeauty2::
- .string "{STR_VAR_1}耀眼\n而闪亮的微笑$"
-
-gContestPaintingBeauty3::
- .string "宝可梦中心的超级偶像——\n无与伦比的{STR_VAR_1}$"
-
-gContestPaintingCute1::
- .string "可爱的{STR_VAR_1}$"
-
-gContestPaintingCute2::
- .string "美丽的{STR_VAR_1}的\n胜利肖像$"
-
-gContestPaintingCute3::
- .string "让我们看看\n那个漂亮的宝可梦{STR_VAR_1}!$"
-
-gContestPaintingSmart1::
- .string "智慧的艺术大师——\n聪明的宝可梦{STR_VAR_1}$"
-
-gContestPaintingSmart2::
- .string "{STR_VAR_1}——被选中的宝可梦\n宝可梦中的宝可梦$"
-
-gContestPaintingSmart3::
- .string "优秀的{STR_VAR_1}的\n高贵瞬间$"
-
-gContestPaintingTough1::
- .string "肌肉发达的\n{STR_VAR_1}$"
-
-gContestPaintingTough2::
- .string "强壮,无比强壮\n的{STR_VAR_1}$"
-
-gContestPaintingTough3::
- .string "极为强悍的\n易激动的宝可梦{STR_VAR_1}$"
diff --git a/data/text/contest_strings.inc b/data/text/contest_strings.inc
deleted file mode 100644
index 1c8bd7507b..0000000000
--- a/data/text/contest_strings.inc
+++ /dev/null
@@ -1,464 +0,0 @@
-gText_AppealNumWhichMoveWillBePlayed::
- .string "第{STR_VAR_1}回合的表演!\n"
- .string "要使用哪个招式呢?$"
-@{STR_VAR_1}かいめのアピール!
-@どのわざをつかう?
-
-gText_AppealNumButItCantParticipate::
- .string "第{STR_VAR_1}回合的表演!\n"
- .string "但是无法参加!$"
-@{STR_VAR_1}かいめのアピール!
-@しかしさんかできない!
-
-gText_MonAppealedWithMove::
- .string "{STR_VAR_1}使用了\n"
- .string "{STR_VAR_2}进行表演!$"
-@{STR_VAR_1}は
-@{STR_VAR_2}でアピール!
-
-gText_MonWasWatchingOthers::
- .string "{STR_VAR_1}在观察\n"
- .string "其他的宝可梦!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は
-@みんなを みていた!
-
-gText_AllOutOfAppealTime::
- .string "表演时间结束!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@アピールタイム しゅうりょう!
-
-@ Appeal result texts
-gText_BecameMoreConsciousOfOtherMons::
- .string "它变得比平时\n"
- .string "更加担心其他宝可梦了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ほかの ポケモンが いつもより
-@きに なって きた!
-
-gText_MonCantMakeAnAppealAfterThis::
- .string "{STR_VAR_1}此后\n"
- .string "都无法再次进行表演了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は このあと
-@アピール できなく なった!
-
-gText_SettledDownJustLittleBit::
- .string "它稍微有些\n"
- .string "冷静下来了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ちょっと だけ
-@きもちが おちついた!
-
-gText_BecameObliviousToOtherMons::
- .string "它变得完全\n"
- .string "不关注其他宝可梦了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ほかの ポケモンが ぜんぜん
-@きに ならなく なった!
-
-gText_BecameLessAwareOfOtherMons::
- .string "它变得不那么\n"
- .string "关注其他宝可梦了。{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ほかの ポケモンが あまり
-@きに ならなく なった!
-
-gText_StoppedCaringAboutOtherMons::
- .string "它不再那么\n"
- .string "留意其他宝可梦了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ほかの ポケモンを あまり
-@きに しないように なった!
-
-gText_TriedToStartleOtherMons::
- .string "它试图惊吓\n"
- .string "其他宝可梦!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ほかの ポケモンを
-@びっくり させようと した!
-
-gText_TriedToDazzleOthers::
- .string "它试图让\n"
- .string "其他宝可梦眼花缭乱!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@みんなの めを
-@くらませようと した!
-
-gText_JudgeLookedAwayFromMon::
- .string "评委的目光\n"
- .string "从{STR_VAR_1}身上移开了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@しんさいんは {STR_VAR_1}から
-@めを そらして しまった!
-
-gText_TriedToUnnerveNextMon::
- .string "它试图让下一只\n"
- .string "表演的宝可梦紧张!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@つぎに まっている ポケモンを
-@きんちょう させようと した!
-
-gText_MonBecameNervous::
- .string "{STR_VAR_1}\n"
- .string "紧张了起来!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は
-@きんちょう してしまった!
-
-gText_AppealTriedToUnnerveWaitingMons::
- .string "它试图让所有\n"
- .string "之后表演的宝可梦紧张!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@アピールが まだの ポケモンを
-@きんちょう させようと した!
-
-gText_TauntedMonsDoingWell::
- .string "它嘲笑了\n"
- .string "气势良好的宝可梦!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ちょうしが いい ポケモンを
-@からかってみた!
-
-gText_MonRegainedItsForm::
- .string "{STR_VAR_1}的气势\n"
- .string "回到了本来的样子!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の ちょうしが
-@もとに もどって しまった!
-
-gText_TriedToJamMonDoingWell::
- .string "它试图干扰那些\n"
- .string "表演引人注目的宝可梦!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ちょうしが いい ポケモンの
-@じゃまを しようと した!
-
-gText_StandoutMonHustledEvenMore::
- .string "本来就引人注目的\n"
- .string "{STR_VAR_1}更加鼓足干劲了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@めだっている {STR_VAR_1}は
-@さらに はりきった!
-
-gText_LargelyUnnoticedMonWorkedHard::
- .string "原本不太引人注目的\n"
- .string "{STR_VAR_1}加油努力了起来!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@めだっていない {STR_VAR_1}は
-@がんばりまくった!
-
-gText_WorkedAsMuchAsMonBefore::
- .string "它鼓足了不会输给\n"
- .string "前面所有宝可梦程度的干劲!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@まえの ポケモンたちに
-@まけないくらい はりきった!
-
-gText_MonsAppealDidNotGoWell::
- .string "{STR_VAR_1}的表演\n"
- .string "没能成功奏效!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は アピールを
-@うまく みせられなかった!
-
-gText_WorkedAsMuchAsPrecedingMon::
- .string "和前面的宝可梦\n"
- .string "一样地鼓足了干劲!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@まえの ポケモンと
-@おなじくらい はりきった!
-
-gText_MonsAppealDidNotGoWell2::
- .string "{STR_VAR_1}的表演\n"
- .string "没能成功奏效!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は アピールを
-@うまく みせられなかった!
-
-gText_MonsAppealDidNotGoWell3::
- .string "{STR_VAR_1}的表演\n"
- .string "没能成功奏效!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は アピールを
-@うまく みせられなかった!
-
-gText_MonsAppealWentSlightlyWell::
- .string "{STR_VAR_1}的表演\n"
- .string "做得还算可以!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@すこし うまく いった!
-
-gText_MonsAppealWentPrettyWell::
- .string "{STR_VAR_1}的表演\n"
- .string "做得不错!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@まあまあ うまく いった!
-
-gText_MonsAppealWentExcellently::
- .string "{STR_VAR_1}的表演\n"
- .string "做得非常出色!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@とても うまく いった!
-
-gText_MonsAppealWasDud::
- .string "{STR_VAR_1}的表演\n"
- .string "完全失败了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@しっぱい して しまった!
-
-gText_MonsAppealDidNotWorkVeryWell::
- .string "{STR_VAR_1}的表演\n"
- .string "做得不怎么好!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@あまり うまく いかなかった!
-
-gText_MonsAppealWentSlightlyWell2::
- .string "{STR_VAR_1}的表演\n"
- .string "做得还算可以!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@すこし うまく いった!
-
-gText_MonsAppealWentPrettyWell2::
- .string "{STR_VAR_1}的表演\n"
- .string "做得不错!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@まあまあ うまく いった!
-
-gText_MonsAppealWentVeryWell::
- .string "{STR_VAR_1}的表演\n"
- .string "做得很好!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@かなり うまく いった!
-
-gText_MonsAppealWentExcellently2::
- .string "{STR_VAR_1}的表演\n"
- .string "做得非常出色!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の アピールは
-@とても うまく いった!
-
-gText_SameTypeAsOneBeforeGood::
- .string "因为和前面的宝可梦\n"
- .string "类别一致而受到喜欢!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@まえの ポケモンと
-@おなじタイプで きにいられた!
-
-gText_NotSameTypeAsOneBeforeGood::
- .string "因为和前面的宝可梦\n"
- .string "类别不同而受到喜欢!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@まえの ポケモンと
-@ちがうタイプで きにいられた!
-
-gText_StoodOutMuchMoreThanMonBefore::
- .string "比起前面的宝可梦\n"
- .string "要出彩得多!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@まえの ポケモンより
-@だいぶ めだった!
-
-gText_DidntDoAsWellAsMonBefore::
- .string "比起前面的宝可梦\n"
- .string "完成得不算太好!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@まえの ポケモンより
-@うまく できなかった!
-
-gText_MonsConditionRoseAboveUsual::
- .string "{STR_VAR_1}的气势\n"
- .string "比平时有所提升!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の ちょうしが
-@いつもより あがった!
-
-gText_MonsHotStatusMadeGreatAppeal::
- .string "{STR_VAR_1}气势不错,\n"
- .string "表演变得棒极了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は ちょうしが よくて
-@ぜっこうの アピールに なった!
-
-gText_MovedUpInLineForNextAppeal::
- .string "它想要在下回合的表演里\n"
- .string "更早出场而走到了前面!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@つぎの アピールを はやく
-@しようと まえに でた!
-
-gText_MovedBackInLineForNextAppeal::
- .string "它想要在下回合的表演里\n"
- .string "更晚出场而后退了一步!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@つぎの アピールを おそく
-@しようと 1ぽ さがった!
-
-gText_ScrambledUpOrderForNextTurn::
- .string "下个回合的表演顺序\n"
- .string "变得奇怪了起来!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@つぎの ターンの じゅんばん
-@おかしく した!
-
-gText_JudgeLookedAtMonExpectantly::
- .string "评委满怀期待地\n"
- .string "看着{STR_VAR_1}!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@しんさいんが きたいして
-@{STR_VAR_1}を みつめた!
-
-gText_AppealComboWentOverWell::
- .string "前后演出的招式组合\n"
- .string "得到了大家的喜爱!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@アピールの くみあわせが
-@きに いって もらえた!
-
-gText_AppealComboWentOverVeryWell::
- .string "前后演出的招式组合\n"
- .string "很受大家喜欢!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@アピールの くみあわせが
-@かなり きに いられた!
-
-gText_AppealComboWentOverExcellently::
- .string "前后演出的招式组合\n"
- .string "特别受大家喜欢!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@アピールの くみあわせが
-@ものすごく きに いられた!
-
-gText_MonManagedToAvertGaze::
- .string "{STR_VAR_1}成功地\n"
- .string "移开了视线!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は なんとか
-@めを そらした!
-
-gText_MonManagedToAvoidSeeingIt::
- .string "{STR_VAR_1}成功地\n"
- .string "避开了视线!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は
-@そっちを みずに すんだ!
-
-gText_MonIsntFazedByThatSortOfThing::
- .string "{STR_VAR_1}没有受\n"
- .string "这种程度的事情影响!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は
-@このくらいは へいきだった!
-
-gText_MonBecameALittleDistracted::
- .string "{STR_VAR_1}变得\n"
- .string "稍稍有点分心了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は ちょっと
-@きを とられて しまった!
-
-gText_TriedToStartleOtherPokemon::
- .string "它试图惊吓\n"
- .string "其他宝可梦!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ほかの ポケモンを
-@びっくり させようと した!
-
-gText_MonLookedDownOutOfDistraction::
- .string "{STR_VAR_1}因为分心\n"
- .string "低下了头!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は きをとられて
-@したを むいて しまった!(小)
-
-gText_MonTurnedBackOutOfDistraction::
- .string "{STR_VAR_1}因为分心\n"
- .string "转过了身!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は きを とられて
-@ふりかえって しまった!(中)
-
-gText_MonCouldntHelpUtteringCry::
- .string "{STR_VAR_1}忍不住地\n"
- .string "叫出了声!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は おもわず
-@こえを あげて しまった!(大)
-
-gText_MonCouldntHelpLeapingUp::
- .string "{STR_VAR_1}忍不住地\n"
- .string "跳了起来!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は おもわず
-@とびあがって しまった!(特大)
-
-gText_MonTrippedOutOfDistraction::
- .string "{STR_VAR_1}因为分心\n"
- .string "摔在了地上四脚朝天!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は きを とられて
-@ひっくり かえって しまった!(?)
-
-gText_MonWasTooNervousToMove::
- .string "{STR_VAR_1}因为紧张\n"
- .string "无法使用招式表演了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は きんちょうして
-@アピールが できなかった!
-
-gText_ButItMessedUp2::
- .string "但它搞砸了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@でも しっぱい してしまった!
-
-gText_ButItFailedToMakeTargetNervous::
- .string "但是它没能让\n"
- .string "目标宝可梦紧张!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@でも きんちょう
-@させられなかった!
-
-gText_ButItFailedToMakeAnyoneNervous::
- .string "但是它没能让\n"
- .string "任何宝可梦紧张!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@でも だれも
-@きんちょう しなかった!
-
-gText_ButItWasIgnored::
- .string "但它被无视了……{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@でも むし されて しまった……
-
-gText_CouldntImproveItsCondition::
- .string "但是它并没能\n"
- .string "提升自己的气势……{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@でも ちょうしは
-@あがらなかった……
-
-gText_BadConditionResultedInWeakAppeal::
- .string "它因为气势不行\n"
- .string "表演得一点也不好……{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@ちょうしが よく なくて
-@あまり うまく できなかった……
-
-gText_MonWasUnaffected::
- .string "{STR_VAR_1}\n"
- .string "完全不为所动!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は
-@へいき だった!
-
-gText_RepeatedAppeal::
- .string "{STR_VAR_1}因为\n"
- .string "重复表演,让大家失望了。{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は おなじアピールを
-@つづけて がっかり された!
-
-gText_MonsXWentOverGreat::
- .string "{STR_VAR_1}的{STR_VAR_3}表演\n"
- .string "受到了大家的热烈欢迎!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の {STR_VAR_3}が
-@まわりに とても うけた!
-
-gText_MonsXDidntGoOverWell::
- .string "{STR_VAR_1}的{STR_VAR_3}表演\n"
- .string "在这里不受欢迎……{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の {STR_VAR_3}が
-@ここでは うけなかった…
-
-gText_MonsXGotTheCrowdGoing::
- .string "{STR_VAR_1}的{STR_VAR_3}表演\n"
- .string "让整个会场沸腾了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の {STR_VAR_3}に
-@まわりが もりあがった!
-
-gText_MonCantAppealNextTurn::
- .string "{STR_VAR_1}无法参加\n"
- .string "下一次的表演了!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}は つぎの アピールに
-@さんか できなくなった!
-
-gText_AttractedCrowdsAttention::
- .string "吸引了\n"
- .string "观众们的注意!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@かんきゃくの
-@ちゅうもくを あつめた!
-
-gText_CrowdContinuesToWatchMon::
- .string "观众们一直\n"
- .string "持续关注着{STR_VAR_3}!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@かんきゃくは
-@{STR_VAR_3}を みつづけている!
-
-gText_MonsMoveIsIgnored::
- .string "{STR_VAR_1}的{STR_VAR_2}\n"
- .string "被完全无视了……{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$"
-@{STR_VAR_1}の {STR_VAR_2}は
-@めを むけられなかった……
-
-gText_Contest_Shyness::
- .string "扑通扑通$"
-@ドキドキ
-
-gText_Contest_Anxiety::
- .string "慌慌张张$"
-@モジモジ
-
-gText_Contest_Laziness::
- .string "懒懒洋洋$"
-@テレテレ
-
-gText_Contest_Hesitancy::
- .string "犹犹豫豫$"
-@オロオロ
-
-@ビクビク
-gText_Contest_Fear::
- .string "战战栗栗$"
diff --git a/data/text/move_relearner.inc b/data/text/move_relearner.inc
new file mode 100644
index 0000000000..b9400fd62b
--- /dev/null
+++ b/data/text/move_relearner.inc
@@ -0,0 +1,55 @@
+MoveRelearner_Text_WouldLearnNewMoves:
+ .string "Hi, I'm the Move Relearner.\n"
+ .string "Would you like to learn new moves?$"
+
+MoveRelearner_Text_LevelUpMoves:
+ .string "Level Up Moves$"
+
+MoveRelearner_Text_EggMoves:
+ .string "Egg Moves$"
+
+MoveRelearner_Text_TMMoves:
+ .string "TM Moves$"
+
+MoveRelearner_Text_TutormoveMoves:
+ .string "Tutor Moves$"
+
+MoveRelearner_Text_SeeYa:
+ .string "See ya!$"
+
+MoveRelearner_Text_AnythingElse:
+ .string "Is there anything else I may do for you?$"
+
+MoveRelearner_Text_ChoosePkmn:
+ .string "Please choose your Pokémon.$"
+
+MoveRelearner_Text_HaveNoPkmn:
+ .string "You have no Pokémon.$"
+
+MoveRelearner_Text_CantTeachMoveToEgg:
+ .string "Sorry…\n"
+ .string "But an Egg can't learn moves.$"
+
+MoveRelearner_Text_CantTeachMoveToPkmn:
+ .string "Sorry…\p"
+ .string "It doesn't appear as if I have any move\n"
+ .string "I can teach that Pokémon.$"
+
+MoveRelearner_Text_LevelUpMoveLWR::
+ .string "level up move$"
+
+MoveRelearner_Text_EggMoveLWR::
+ .string "egg move$"
+
+MoveRelearner_Text_TMMoveLWR::
+ .string "TM move$"
+
+MoveRelearner_Text_TutorMoveLWR::
+ .string "tutor move$"
+
+MoveRelearner_Text_WhichXmoveShouldTeach:
+ .string "Which {STR_VAR_3} should I teach?$"
+
+MoveRelearner_Text_ThankYouComeAgain:
+ .string "Thank you for using our services.\n"
+ .string "Please come again!$"
diff --git a/docs/FEATURES.md b/docs/FEATURES.md
new file mode 100644
index 0000000000..892a07c16b
--- /dev/null
+++ b/docs/FEATURES.md
@@ -0,0 +1 @@
+{{#include ../FEATURES.md}}
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index a38a539bef..e5835ea07b 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -1,12 +1,14 @@
# Summary
- [README](./README.md)
+- [FEATURES](./FEATURES.md)
- [Installation](./INSTALL.md)
- [Setting up WSL1 (Legacy Portion)](./legacy_WSL1_INSTALL.md)
- [ChromeOS](./install/chromeos/CHROME_OS.md)
- [Linux]()
- [ARCH_LINUX](./install/linux/ARCH_LINUX.md)
- [DEBIAN](./install/linux/DEBIAN.md)
+ - [FEDORA](./install/linux/FEDORA.md)
- [NIXOS](./install/linux/NIXOS.md)
- [OTHERS](./install/linux/OTHERS.md)
- [UBUNTU](./install/linux/UBUNTU.md)
@@ -37,9 +39,15 @@
- [How to use Follower NPCs](tutorials/how_to_follower_npc.md)
- [Time-Based Encounters](tutorials/how_to_time_of_day_encounters.md)
- [How to use Trainer Party Pools](tutorials/how_to_trainer_party_pool.md)
+ - [How to Apricorn Tree](tutorials/how_to_apricorn_tree.md)
+ - [How to Namebox](tutorials/how_to_namebox.md)
- [Vs. Seeker](tutorials/vs_seeker.md)
- [Changelog](./CHANGELOG.md)
+ - [1.14.x]()
+ - [Version 1.14.1](changelogs/1.14.x/1.14.1.md)
+ - [Version 1.14.0](changelogs/1.14.x/1.14.0.md)
- [1.13.x]()
+ - [Version 1.13.4](changelogs/1.13.x/1.13.4.md)
- [Version 1.13.3](changelogs/1.13.x/1.13.3.md)
- [Version 1.13.2](changelogs/1.13.x/1.13.2.md)
- [Version 1.13.1](changelogs/1.13.x/1.13.1.md)
diff --git a/docs/changelogs/1.12.x/1.12.0.md b/docs/changelogs/1.12.x/1.12.0.md
index b223e040da..965ae27b27 100644
--- a/docs/changelogs/1.12.x/1.12.0.md
+++ b/docs/changelogs/1.12.x/1.12.0.md
@@ -121,7 +121,7 @@
- Added option to disable object event shadows
- Added option to turn DNS on or off, `OW_ENABLE_DNS`
- Added option to for vanilla shadow behaviour, `OW_OBJECT_VANILLA_SHADOWS`
- - Scripts containing consecutive `removeobject