diff options
Diffstat (limited to 'enemiesattacks/poison.gbasm')
-rw-r--r-- | enemiesattacks/poison.gbasm | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/enemiesattacks/poison.gbasm b/enemiesattacks/poison.gbasm new file mode 100644 index 0000000..807eae3 --- /dev/null +++ b/enemiesattacks/poison.gbasm @@ -0,0 +1,77 @@ +Poison_sight_check: ; BC = XY of the enemy. D = direction (must be unchanged). Direction to face in E (or 0 if not) + LD E, $00 + + LD A, L + AND $f0 + ADD $09 + LD L, A + LD A, $00 + CP (HL) + RET Z + JP =Check_player_next_to + +Poison_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D + LD A, D + AND $f0 + SWAP A + LD D, A + LD A, E + DEC A + DEC D + XOR D + INC D + CP $00 + JR Z, =.attack + BIT 1, A + JR NZ, =.attack + + LD D, E + LD A, D + SWAP A + AND $70 + OR D + LD D, A + RET + + .attack: + LD A, E + SWAP A + AND $70 + OR E + LD D, A + LD A, L + AND $f0 + OR $0a + LD L, A + LD (HL), $01 + + PUSH BC + LD A, $mem_bunny_direction + AND $08 + LD B, A + LD A, $mem_bunny_flags + AND $01 + OR B + CP $09 + POP BC + RET Z + + LD A, $08 + LD $mem_bunny_status, A + + LD A, $0a + LD $mem_bunny_status_clear_turn_counter, A + + LD A, L + AND $f0 + ADD $07 + LD L, A + SET 2, (HL) + + LD A, L + AND $f0 + ADD $09 + LD L, A + DEC (HL) + + RET |