summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/events/sacred_ash.asm68
1 files changed, 68 insertions, 0 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