diff options
author | Astatin <[email protected]> | 2025-05-07 17:01:22 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-05-07 17:01:22 +0200 |
commit | 4b02238d88af30c98b2f8d44e5200fb80b04bcad (patch) | |
tree | d69861ff5fe1ebed41f9697335948bde512f10f4 /entity/frog.gbasm | |
parent | 7284cc51dedb4f77fe6c1fa1da735b52609b1d4d (diff) |
I was adding the frog and then broke everything to fix the viewport thingy
Diffstat (limited to 'entity/frog.gbasm')
-rw-r--r-- | entity/frog.gbasm | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/entity/frog.gbasm b/entity/frog.gbasm new file mode 100644 index 0000000..c08d68f --- /dev/null +++ b/entity/frog.gbasm @@ -0,0 +1,170 @@ +Frog_Turn: + LD A, $mem_map_loading_flags + BIT 3, A + RET Z + + PUSH HL + PUSH BC + PUSH DE + INC HL + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + LD A, (HL+) + LD D, A + + .Health_check: + LD A, L + AND $f0 + ADD $06 + LD L, A + + LD A, (HL) + CP $00 + JR NZ, =.Health_check.end + + LD A, L + AND $f0 + LD L, A + + LD (HL), $00 + LD A, $mem_enemies_alive_count + DEC A + LD $mem_enemies_alive_count, A + + ; Drop when deadged + PUSH DE + LD E, $02 + CALL =Check_attack_already_learnt + CP $01 + JR Z, =.drops.hp_regen_item + + .drops.hp_regen_item: + LD D, $64 + LD E, $02 + CALL =RNG_Step + AND $03 + CP $00 + CALL Z, =Spawn_object + + .drops.end: + POP DE + + JP =.Skip_turn + .Health_check.end: + + .Freeze_shiver: + LD A, $mem_moving_animation_step + CP $00 + JP NZ, =.Freeze_shiver.end + LD A, L + AND $f0 + ADD $08 + LD L, A + LD A, $01 + CP (HL) + JR NZ, =.Freeze_shiver.end + LD A, D + AND $07 + LD D, A + CALL =RNG_Step + CP $55 + JP NC, =.Skip_turn + LD A, D + OR $40 + LD D, A + + CALL =RNG_Step + CP $55 + JP NC, =.Skip_turn + + LD A, $00 + LD (HL-), A + RES 1, (HL) + JP =.Skip_turn + .Freeze_shiver.end: + + .Should_turn_be_skipped: + LD A, L + AND $f0 + ADD $08 + LD L, A + + BIT 0, (HL) + JP NZ, =.Skip_turn + + .Start_action_or_movement: + LD A, $mem_moving_animation_step + CP $00 + JP NZ, =.Start_action_or_movement.end + + LD A, L + AND $f0 + OR $07 + LD L, A + RES 3, (HL) + + LD A, L + AND $f0 + ADD $09 + LD L, A + XOR A + CP (HL) + JR Z, =.Try_Basic_Attack + + CALL =Grab_sight_check + LD A, E + CP $00 + JR Z, =.Try_Basic_Attack + + CALL =Grab_Enemy_Attack + + JR =.Start_action_or_movement.end + + .Try_Basic_Attack: + + CALL =Check_player_next_to + LD A, E + CP $00 + JR Z, =.Try_Walking + + CALL =Basic_Enemy_Attack + + JR =.Start_action_or_movement.end + + .Try_Walking: + + CALL =Walking + + .Start_action_or_movement.end: + + .End_movement: + LD A, $mem_moving_animation_step + CP $0f + JP NZ, =.End_movement.end + + LD A, D + AND $07 + BIT 3, D + LD D, A + JR Z, =.End_movement.end + LD A, $01 + .ADD_A_TO_DIRECTION_BC + .End_movement.end: + + .Skip_Turn: + LD A, L + AND $f0 + LD L, A + INC HL + LD A, B + LD (HL+), A + LD A, C + LD (HL+), A + LD A, D + LD (HL+), A + POP DE + POP BC + POP HL + RET |