diff options
author | Astatin <[email protected]> | 2025-04-11 16:20:31 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-04-11 16:20:31 +0200 |
commit | a846ccc0cc20fe49b5ee07e252b370dc005b38cd (patch) | |
tree | 7996f4fdbca1e054bac3d87dd565178da9ba9191 /dialogues/dialogues.gbasm | |
parent | 690ff7c09726d9e760b52b717c70e9567531175c (diff) |
Make hop the only default attack and make cats drop heal
Diffstat (limited to 'dialogues/dialogues.gbasm')
-rw-r--r-- | dialogues/dialogues.gbasm | 166 |
1 files changed, 165 insertions, 1 deletions
diff --git a/dialogues/dialogues.gbasm b/dialogues/dialogues.gbasm index 1fdcc80..1501a79 100644 --- a/dialogues/dialogues.gbasm +++ b/dialogues/dialogues.gbasm @@ -4,6 +4,7 @@ Dialogue_script_step: LD A, ($mem_dialogue_script_program_counter+1) LD L, A + .next: LD A, (HL+) LD BC, =Dialogue_script_instruction_Jump_Table @@ -26,10 +27,22 @@ Dialogue_script_instruction_Jump_Table: JP =.Text NOP - ;02 + ; 02 JP =.TextB NOP + ; 03 + JP =.Learn_Attack + NOP + + ; 04 + JP =.TextB_Indirect + NOP + + ; 05 + JP =.Learn_Attack_Return + NOP + .Text: PUSH HL LD HL, $dialogue_first_line @@ -67,6 +80,12 @@ Dialogue_script_instruction_Jump_Table: RET .TextB: + PUSH HL + LD HL, $dialogue_first_line + LD BC, $12 + CALL =bzero + POP HL + LD A, (HL+) LD B, A LD A, (HL+) @@ -76,6 +95,12 @@ Dialogue_script_instruction_Jump_Table: CALL =Print_str POP HL + PUSH HL + LD HL, $dialogue_third_line + LD BC, $12 + CALL =bzero + POP HL + LD A, (HL+) LD B, A LD A, (HL+) @@ -90,5 +115,144 @@ Dialogue_script_instruction_Jump_Table: RET + .TextB_Indirect: + PUSH HL + LD HL, $dialogue_first_line + LD BC, $12 + CALL =bzero + POP HL + + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + PUSH DE + LD A, (BC) + LD D, A + INC BC + LD A, (BC) + LD E, A + LD B, D + LD C, E + POP DE + PUSH HL + LD HL, $dialogue_first_line + DBG + CALL =Print_str + POP HL + + + PUSH HL + LD HL, $dialogue_third_line + LD BC, $12 + CALL =bzero + POP HL + + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + PUSH HL + LD HL, $dialogue_third_line + CALL =Print_str + POP HL + + LD A, $07 + LD $mem_display_flag, A + + RET + + .Learn_Attack: + LD A, (HL+) + LD E, A + + LD B, $00 + LD C, A + SLA C + RR B + SLA C + RR B + SLA C + RR B + LD A, C + ADD low(=Attack_List) + LD C, A + LD A, B + ADC high(=Attack_List) + LD B, A + + LD A, (BC) + LD ($mem_learn_attack_attack_name_ptr), A + INC BC + LD A, (BC) + LD ($mem_learn_attack_attack_name_ptr+1), A + + LD A, H + LD ($mem_learn_attack_dialogue_ret_ptr), A + LD A, L + LD ($mem_learn_attack_dialogue_ret_ptr+1), A + + LD A, E + LD HL, $mem_bunny_attacks + .Learn_Attack.Check_doubles.loop: + LD A, (HL) + CP E + JR Z, =.Learn_Attack.Duplicate + INC HL + LD A, L + CP low($mem_bunny_attacks+4) + JR NZ, =.Learn_Attack.Check_doubles.loop + + LD A, $mem_number_of_attacks + CP $04 + JR NC, =.Learn_Attack.Not_enough_slot + + .Learn_Attack.Success: + LD A, $mem_number_of_attacks + LD HL, $mem_bunny_attacks + ADD L + LD L, A + LD (HL), $02 + LD A, $mem_number_of_attacks + INC A + LD $mem_number_of_attacks, A + + LD HL, =.Learn_Attack.Dialogue + JP =Dialogue_script_step.next + .Learn_Attack.Dialogue: + .TEXT =New_attack_1t =New_attack_1b + .TEXTB_INDIRECT $mem_learn_attack_attack_name_ptr =Double_Exclamation + .LEARN_ATTACK_RET + + + .Learn_Attack.Not_enough_slot: + + LD HL, =.Learn_Attack.Not_enough_slot.Dialogue + JP =Dialogue_script_step.next + .Learn_Attack.Not_enough_slot.Dialogue: + .TEXT =No_attslot_1t =No_attslot_1b + .TEXTB_INDIRECT $mem_learn_attack_attack_name_ptr =Double_Exclamation + .TEXT =No_attslot_3t =No_attslot_3b + .TEXT =No_attslot_4t =Empty + .LEARN_ATTACK_RET + + .Learn_Attack.Duplicate: + LD HL, =.Learn_Attack.Duplicate.Dialogue + JP =Dialogue_script_step.next + .Learn_Attack.Duplicate.Dialogue: + .TEXT =dup_attack_1t =dup_attack_1b + .TEXTB_INDIRECT $mem_learn_attack_attack_name_ptr =Double_Exclamation + .TEXT =dup_attack_3t =dup_attack_3b + .TEXT =dup_attack_4t =Empty + .LEARN_ATTACK_RET + + .Learn_Attack_Return: + LD A, ($mem_learn_attack_dialogue_ret_ptr) + LD H, A + LD A, ($mem_learn_attack_dialogue_ret_ptr+1) + LD L, A + DBG + JP =Dialogue_script_step.next + .INCLUDE "dialogues/text.gbasm" .INCLUDE "dialogues/demo_quest.gbasm" |