diff options
author | xCrystal <rgr.crystal@gmail.com> | 2016-03-04 21:38:39 +0100 |
---|---|---|
committer | xCrystal <rgr.crystal@gmail.com> | 2016-03-05 00:21:05 +0100 |
commit | ce16914bb06788557b8ca19132008c34ddb38894 (patch) | |
tree | ba46bab7c584284cfb6a80a27ebebc2fe738a36c /src/engine/effect_functions.asm | |
parent | fb524eaa51f02a4a1fbd54962132dd3c67989ee6 (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.asm | 95 |
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 |