summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlibjet <libj3t@gmail.com>2020-05-21 15:36:09 +0100
committerlibjet <libj3t@gmail.com>2020-05-21 15:36:09 +0100
commit92529391d8948f43c4f16e35a6024e9fa996a644 (patch)
tree9c599ef8d46ff385c440a4fd61b36e9bed641069
parent0de5cf5629714c8781db58472b077b5fe58920be (diff)
Add engine/events/sacred_ash.asm
-rwxr-xr-xengine/events/sacred_ash.asm68
-rw-r--r--main.asm4
2 files changed, 69 insertions, 3 deletions
diff --git a/engine/events/sacred_ash.asm b/engine/events/sacred_ash.asm
new file mode 100755
index 00000000..d105b2fb
--- /dev/null
+++ b/engine/events/sacred_ash.asm
@@ -0,0 +1,68 @@
+_SacredAsh:
+ ld a, $0
+ ld [wItemEffectSucceeded], a
+ call CheckAnyFaintedMon
+ ret nc
+
+ ld hl, SacredAshScript
+ call QueueScript
+ ld a, $1
+ ld [wItemEffectSucceeded], a
+ ret
+
+CheckAnyFaintedMon:
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld bc, wPartySpecies
+ ld hl, wPartyMon1HP
+ ld a, [wPartyCount]
+ and a
+ ret z
+
+.loop
+ push af
+ push hl
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .next
+
+ ld a, [hli]
+ or [hl]
+ jr z, .done
+
+.next
+ pop hl
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop
+ xor a
+ ret
+
+.done
+ pop hl
+ pop af
+ scf
+ ret
+
+SacredAshScript:
+ special HealParty
+ reloadmappart
+ playsound SFX_WARP_TO
+ special FadeOutPalettes
+ special FadeInPalettes
+ special FadeOutPalettes
+ special FadeInPalettes
+ special FadeOutPalettes
+ special FadeInPalettes
+ waitsfx
+ writetext .UseSacredAshText
+ playsound SFX_CAUGHT_MON
+ waitsfx
+ waitbutton
+ closetext
+ end
+
+.UseSacredAshText:
+ text_far _UseSacredAshText
+ text_end
diff --git a/main.asm b/main.asm
index 5fe02125..0ceeff58 100644
--- a/main.asm
+++ b/main.asm
@@ -364,9 +364,7 @@ INCLUDE "engine/events/sweet_scent.asm"
INCLUDE "engine/events/squirtbottle.asm"
INCLUDE "engine/events/card_key.asm"
INCLUDE "engine/events/basement_key.asm"
-
-_SacredAsh::
- dr $50819, $5087d
+INCLUDE "engine/events/sacred_ash.asm"
CopyMonToTempMon::
dr $5087d, $50940