diff options
author | Astatin <[email protected]> | 2025-05-09 17:44:37 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-05-09 17:44:37 +0200 |
commit | b0f9e2e6d53983faa9d213b40d2bd6a23473e134 (patch) | |
tree | e8bf5eedd762203972afa10c6be79692767a3d2f /entity/frog.gbasm | |
parent | 507a9876b85f47ff81cc9150bea858eec064ba05 (diff) |
Refactoring the animations/directions + entities turn function with macros + finishing froge
Diffstat (limited to 'entity/frog.gbasm')
-rw-r--r-- | entity/frog.gbasm | 163 |
1 files changed, 28 insertions, 135 deletions
diff --git a/entity/frog.gbasm b/entity/frog.gbasm index c08d68f..268e473 100644 --- a/entity/frog.gbasm +++ b/entity/frog.gbasm @@ -1,3 +1,22 @@ +Frog_Drops: ; XY in (BC) + 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 + RET + Frog_Turn: LD A, $mem_map_loading_flags BIT 3, A @@ -14,144 +33,18 @@ Frog_Turn: 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 + .ENTITY_HEALTH_CHECK =.Skip_turn =Frog_Drops + .ENTITY_FREEZE_SHIVER =.Skip_turn + .ENTITY_STATUS_SKIP_TURN =.Skip_turn - .Start_action_or_movement.end: + .RESET_BLINKING_MODE - .End_movement: - LD A, $mem_moving_animation_step - CP $0f - JP NZ, =.End_movement.end + .ENTITY_TRY_ATTACK =Grab_sight_check =Grab_Enemy_Attack =.attack_end + .ENTITY_TRY_ATTACK =Check_player_next_to =Basic_Enemy_Attack =.attack_end + CALL =Walking + .attack_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: + CALL =Entity_End_movement .Skip_Turn: LD A, L |