summaryrefslogtreecommitdiff
path: root/engine/battle/c.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/battle/c.asm')
-rwxr-xr-xengine/battle/c.asm58
1 files changed, 58 insertions, 0 deletions
diff --git a/engine/battle/c.asm b/engine/battle/c.asm
new file mode 100755
index 00000000..b93cc273
--- /dev/null
+++ b/engine/battle/c.asm
@@ -0,0 +1,58 @@
+MistEffect_: ; 33f2b (c:7f2b)
+ ld hl, W_PLAYERBATTSTATUS2
+ ld a, [$fff3]
+ and a
+ jr z, .asm_33f36
+ ld hl, W_ENEMYBATTSTATUS2
+.asm_33f36
+ bit 1, [hl] ; is mon protected by mist?
+ jr nz, .asm_33f4a
+ set 1, [hl] ; mon is now protected by mist
+ callab Func_3fba8
+ ld hl, ShroudedInMistText
+ jp PrintText
+.asm_33f4a
+ ld hl, PrintButItFailedText_
+ ld b, BANK(PrintButItFailedText_)
+ jp Bankswitch
+
+ShroudedInMistText: ; 33f52 (c:7f52)
+ TX_FAR _ShroudedInMistText
+ db "@"
+
+OneHitKOEffect_: ; 33f57 (c:7f57)
+ ld hl, W_DAMAGE ; $d0d7
+ xor a
+ ld [hli], a
+ ld [hl], a ; set the damage output to zero
+ dec a
+ ld [$d05e], a
+ ld hl, $d02a
+ ld de, $cffb
+ ld a, [H_WHOSETURN] ; $fff3
+ and a
+ jr z, .asm_33f72
+ ld hl, $cffb
+ ld de, $d02a
+.asm_33f72
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hld]
+ sub b
+ ld a, [de]
+ ld b, a
+ ld a, [hl]
+ sbc b
+ jr c, .asm_33f8a
+ ld hl, W_DAMAGE ; $d0d7
+ ld a, $ff
+ ld [hli], a
+ ld [hl], a
+ ld a, $2
+ ld [$d05e], a
+ ret
+.asm_33f8a
+ ld a, $1
+ ld [W_MOVEMISSED], a ; $d05f
+ ret