summaryrefslogtreecommitdiff
path: root/src/engine/effect_functions.asm
diff options
context:
space:
mode:
authorxCrystal <rgr.crystal@gmail.com>2016-03-04 21:38:39 +0100
committerxCrystal <rgr.crystal@gmail.com>2016-03-05 00:21:05 +0100
commitce16914bb06788557b8ca19132008c34ddb38894 (patch)
treeba46bab7c584284cfb6a80a27ebebc2fe738a36c /src/engine/effect_functions.asm
parentfb524eaa51f02a4a1fbd54962132dd3c67989ee6 (diff)
start dissasembling move effect functions
and plenty of other duel related stuff
Diffstat (limited to 'src/engine/effect_functions.asm')
-rw-r--r--src/engine/effect_functions.asm95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm
new file mode 100644
index 0000000..84d3b0b
--- /dev/null
+++ b/src/engine/effect_functions.asm
@@ -0,0 +1,95 @@
+Poison50PercentEffect: ; 2c000 (b:4000)
+ text_de PoisonCheckText
+ call DisplayCoinTossScreen2_BankB
+ ret nc
+
+PoisonEffect: ; 2c007 (b:4007)
+ lb bc, $0f, CARD_POISONED
+ jr applyEffect
+
+ lb bc, $0f, CARD_DOUBLE_POISONED
+ jr applyEffect
+
+Paralysis50PercentEffect: ; 2c011 (b:4011)
+ text_de ParalysisCheckText
+ call DisplayCoinTossScreen2_BankB
+ ret nc
+ lb bc, $f0, CARD_PARALYZED
+ jr applyEffect
+
+Confusion50PercentEffect: ; 2c01d (b:401d)
+ text_de ConfusionCheckText
+ call DisplayCoinTossScreen2_BankB
+ ret nc
+ lb bc, $f0, CARD_CONFUSED
+ jr applyEffect
+
+ text_de SleepCheckText
+ call DisplayCoinTossScreen2_BankB
+ ret nc
+
+SleepEffect: ; 2c030 (b:4030)
+ lb bc, $f0, CARD_ASLEEP
+ jr applyEffect
+
+applyEffect
+ ld a, [$ff97]
+ ld hl, $cc05
+ cp [hl]
+ jr nz, .asm_2c061
+ ld a, [wccc4]
+ cp $cb
+ jr z, .asm_2c058
+ cp $cc
+ jr z, .asm_2c058
+ cp $be
+ jr nz, .asm_2c061
+ call SwapTurn
+ xor a
+ call Func_34f0
+ call SwapTurn
+ jr c, .asm_2c061
+
+.asm_2c058
+ ld a, c
+ ld [wccf1], a
+ call Func_2c09c
+ or a
+ ret
+
+.asm_2c061
+ ld hl, wcccd
+ push hl
+ ld e, [hl]
+ ld d, $0
+ ld hl, $ccce
+ add hl, de
+ call SwapTurn
+ ld a, [$ff97]
+ ld [hli], a
+ call SwapTurn
+ ld [hl], b
+ inc hl
+ ld [hl], c
+ pop hl
+ inc [hl]
+ inc [hl]
+ inc [hl]
+ scf
+ ret
+; 0x2c07e
+
+DisplayCoinTossScreen2_BankB: ; 2c07e (b:407e)
+ call DisplayCoinTossScreen2
+ ret
+; 0x2c082
+
+INCBIN "baserom.gbc",$2c082,$2c09c - $2c082
+
+Func_2c09c: ; 2c09c (b:409c)
+ ld a, $1
+ ld [wcced], a
+ ret
+; 0x2c0a2
+
+INCBIN "baserom.gbc",$2c0a2,$30000 - $2c0a2