From 18d7d064daf704193f8dff6b2ef3ae68b7fc3aac Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 18 Feb 2025 19:03:42 +0900 Subject: Did a bunch of things I honestly don't remember everything but now basic attack is broken --- entity/actions.gbasm | 16 ++++++- entity/bunny.gbasm | 8 ++++ entity/cat.gbasm | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++ entity/display.gbasm | 13 +++--- entity/fox.gbasm | 6 +++ entity/frog.gbasm | 123 ------------------------------------------------ entity/list.gbasm | 4 +- entity/penguin.gbasm | 6 +++ 8 files changed, 173 insertions(+), 133 deletions(-) create mode 100644 entity/cat.gbasm delete mode 100644 entity/frog.gbasm (limited to 'entity') diff --git a/entity/actions.gbasm b/entity/actions.gbasm index d6977e9..11951e6 100644 --- a/entity/actions.gbasm +++ b/entity/actions.gbasm @@ -55,6 +55,13 @@ Entity_Action: RET Update_Animation_Steps: + LD A, $mem_blinking_animation_counter + DEC A + CP $ff + JR Z, =.Skip_blinking_update + LD $mem_blinking_animation_counter, A + .Skip_blinking_update: + LD A, $mem_map_loading_flags BIT 3, A JR Z, =.update_mode @@ -112,7 +119,7 @@ Turn_Jump_table: NOP ; 03 - JP =Frog_Turn + JP =Cat_Turn NOP ; 04 @@ -202,5 +209,10 @@ Enemy_Interaction: LD A, (HL) DEC A DAA - LD (HL), A + LD (HL+), A + + SET 3, (HL) + LD A, $24 + LD $mem_blinking_animation_counter, A + RET diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm index 4b9bba7..f8e07ac 100644 --- a/entity/bunny.gbasm +++ b/entity/bunny.gbasm @@ -51,6 +51,10 @@ Move_Bunny: LD A, $mem_map_loading_flags SET 3, A LD $mem_map_loading_flags, A + + LD A, $mem_bunny_flags + RES 3, A + LD $mem_bunny_flags, A RET .no_skip: @@ -72,6 +76,10 @@ Move_Bunny: SET 3, A LD $mem_map_loading_flags, A + LD A, $mem_bunny_flags + RES 3, A + LD $mem_bunny_flags, A + LD A, $mem_button_action BIT 1, A JR NZ, =.Start_action_or_movement.cancel_movement diff --git a/entity/cat.gbasm b/entity/cat.gbasm new file mode 100644 index 0000000..35d0b0c --- /dev/null +++ b/entity/cat.gbasm @@ -0,0 +1,130 @@ +Cat_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 + JP NZ, =.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) + + .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 diff --git a/entity/display.gbasm b/entity/display.gbasm index 69da0ab..75b1e29 100644 --- a/entity/display.gbasm +++ b/entity/display.gbasm @@ -103,21 +103,22 @@ Display_Entity: .Moving_Animation.end: .Blinking_Animation: - LD A, D + LD A, L AND $f0 - CP $50 - JR NZ, =.Blinking_Animation.end + OR $07 + LD L, A + BIT 3, (HL) + JR Z, =.Blinking_Animation.end - LD A, $mem_moving_animation_step + LD A, $mem_blinking_animation_counter PUSH DE LD E, A LD A, $mem_loading_step XOR E POP DE AND $02 - CP $00 + CP $02 JP Z, =.skip - .Blinking_Animation.end: diff --git a/entity/fox.gbasm b/entity/fox.gbasm index d82cc66..5e225ec 100644 --- a/entity/fox.gbasm +++ b/entity/fox.gbasm @@ -80,6 +80,12 @@ Fox_Turn: 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 diff --git a/entity/frog.gbasm b/entity/frog.gbasm deleted file mode 100644 index 428e88a..0000000 --- a/entity/frog.gbasm +++ /dev/null @@ -1,123 +0,0 @@ -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 - JP NZ, =.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 - - .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 diff --git a/entity/list.gbasm b/entity/list.gbasm index 054a563..acbe12d 100644 --- a/entity/list.gbasm +++ b/entity/list.gbasm @@ -10,7 +10,7 @@ Entity_list: .DB $01 ; Starting health - .DB $04 + .DB $02 ; Starting mana .DB $05 @@ -64,7 +64,7 @@ Entity_list: .DB $01 ; Starting health - .DB $05 + .DB $01 ; Starting mana .DB $03 diff --git a/entity/penguin.gbasm b/entity/penguin.gbasm index 363516b..0078fb9 100644 --- a/entity/penguin.gbasm +++ b/entity/penguin.gbasm @@ -80,6 +80,12 @@ Penguin_Turn: CP $00 JP NZ, =.Start_action_or_movement.end + LD A, L + AND $f0 + OR $07 + LD L, A + RES 3, (HL) + LD A, $mem_bunny_status CP $01 JR NZ, =.Try_Freeze_Attack -- cgit v1.2.3-70-g09d2