diff options
Diffstat (limited to 'src/engine/effect_functions.asm')
-rw-r--r-- | src/engine/effect_functions.asm | 121 |
1 files changed, 115 insertions, 6 deletions
diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index d8e4789..d37f5e6 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -88,7 +88,33 @@ TossCoin_BankB: ; 2c07e (b:407e) ret ; 0x2c082 -INCBIN "baserom.gbc",$2c082,$2c09c - $2c082 +TossCoinATimes_BankB: ; 2c082 (b:4082) + call TossCoinATimes + ret +; 0x2c086 + +CommentedOut_2c086: ; 2c086 (b:4086) + ret +; 0x2c087 + +Func_2c087: ; 2c087 (b:4087) + xor a + jr asm_2c08c + +Func_2c08a: ; 2c08a (b:408a) + ld a, $1 + +asm_2c08c + push de + push af + ld a, $11 + call Func_0f7f + pop af + pop de + call Func_0fac + call TossCoinATimes + ret +; 0x2c09c Func_2c09c: ; 2c09c (b:409c) ld a, $1 @@ -102,7 +128,60 @@ Func_2c0a2: ; 2c0a2 (b:40a2) ret ; 0x2c0a8 -INCBIN "baserom.gbc",$2c0a8,$2c140 - $2c0a8 +INCBIN "baserom.gbc",$2c0a8,$2c0d4 - $2c0a8 + +; Sets some flags for AI use +; if target double poisoned +; [wccbb] <- [wDamage] +; [wccbc] <- [wDamage] +; else +; [wccbb] <- [wDamage] + d +; [wccbc] <- [wDamage] + e +; [wDamage] <- [wDamage] + a +Func_2c0d4: ; 2c0d4 (b:40d4) + push af + ld a, DUELVARS_ARENA_CARD_STATUS + call GetNonTurnDuelistVariable + and DOUBLE_POISONED + jr z, .notDoublePoisoned + pop af + ld a, [wDamage] + ld [wccbb], a + ld [wccbc], a + ret + + push af + +.notDoublePoisoned + ld hl, wDamage + ld a, [hl] + add d + ld [wccbb], a + ld a, [hl] + add e + ld [wccbc], a + pop af + add [hl] + ld [hl], a + ret +; 0x2c0fb + +; Sets some flags for AI use +; [wDamage] <- a +; [wccbb] <- d +; [wccbc] <- e +Func_2c0fb: ; 2c0fb (b:40fb) + ld [wDamage], a + xor a + ld [wDamage + 1], a + ld a, d + ld [wccbb], a + ld a, e + ld [wccbc], a + ret +; 0x2c10b + +INCBIN "baserom.gbc",$2c10b,$2c140 - $2c10b ; apply a status condition of type 1 identified by register a to the target ApplySubstatus1ToDefendingCard: ; 2c140 (b:4140) @@ -139,7 +218,13 @@ ApplySubstatus2ToDefendingCard: ; 2c149 (b:4149) ret ; 0x2c166 -INCBIN "baserom.gbc",$2c166,$2c6f8 - $2c166 +INCBIN "baserom.gbc",$2c166,$2c6f0 - $2c166 + +SpitPoison_AIEffect: ; 2c6f0 (b:46f0) + ld a, $5 + lb de, $0, $a + jp Func_2c0fb +; 0x2c6f8 SpitPoison_Poison50PercentEffect: ; 2c6f8 (b:46f8) text_de PoisonCheckText @@ -151,7 +236,21 @@ SpitPoison_Poison50PercentEffect: ; 2c6f8 (b:46f8) ret ; 0x2c70a -INCBIN "baserom.gbc",$2c70a,$2c77e - $2c70a +INCBIN "baserom.gbc",$2c70a,$2c730 - $2c70a + +PoisonFang_AIEffect: ; 2c730 (b:4730) + ld a, $a + lb de, $a, $a + jp Func_2c0d4 +; 0x2c738 + +WeepinbellPoisonPowder_AIEffect: ; 2c738 (b:4738) + ld a, $5 + lb de, $0, $a + jp Func_2c0d4 +; 0x2c740 + +INCBIN "baserom.gbc",$2c740,$2c77e - $2c740 AcidEffect: ; 2c77e (b:477e) text_de AcidCheckText @@ -162,7 +261,11 @@ AcidEffect: ; 2c77e (b:477e) ret ; 0x2c78b -INCBIN "baserom.gbc",$2c78b,$2c793 - $2c78b +GloomPoisonPowder_AIEffect: ; 2c78b (b:478b) + ld a, $a + lb de, $a, $a + jp Func_2c0d4 +; 0x2c793 ; confuses both the target and the user FoulOdorEffect: ; 2c793 (b:4793) @@ -184,7 +287,13 @@ KakunaStiffenEffect: ; 2c7a0 (b:47a0) ret ; 0x2c7b4 -INCBIN "baserom.gbc",$2c7b4,$2c7d0 - $2c7b4 +KakunaPoisonPowder_AIEffect: ; 2c7b4 (b:47b4) + ld a, $5 + lb de, $0, $a + jp Func_2c0d4 +; 0x2c7bc + +INCBIN "baserom.gbc",$2c7bc,$2c7d0 - $2c7bc SwordsDanceEffect: ; 2c7d0 (b:47d0) ld a, [wTempTurnDuelistCardId] |