diff options
-rwxr-xr-x | asm/macros/contest_ai_script.s | 476 | ||||
-rw-r--r-- | data/contest_ai_scripts.s | 841 | ||||
-rw-r--r-- | data/text/battle_strings.s | 3 |
3 files changed, 1317 insertions, 3 deletions
diff --git a/asm/macros/contest_ai_script.s b/asm/macros/contest_ai_script.s new file mode 100755 index 000000000..cd3983be0 --- /dev/null +++ b/asm/macros/contest_ai_script.s @@ -0,0 +1,476 @@ +@ contest AI macro research + + + .macro score score + .byte 0x00 + .byte \score + .endm + +@ turn (AKA "Appeal No.") + + .macro get_turn + .byte 0x01 + .endm + + .macro if_turn_less_than param, addr + .byte 0x02 + .byte \param + .4byte \addr + .endm + + .macro if_turn_more_than param, addr + .byte 0x03 + .byte \param + .4byte \addr + .endm + + .macro if_turn_eq param, addr + .byte 0x04 + .byte \param + .4byte \addr + .endm + + .macro if_turn_not_eq param, addr + .byte 0x05 + .byte \param + .4byte \addr + .endm + +@ audience excitement + + .macro get_excitement + .byte 0x06 + .endm + + .macro if_excitement_less_than param, addr + .byte 0x07 + .byte \param + .4byte \addr + .endm + + .macro if_excitement_more_than param, addr + .byte 0x08 + .byte \param + .4byte \addr + .endm + + .macro if_excitement_eq param, addr + .byte 0x09 + .byte \param + .4byte \addr + .endm + + .macro if_excitement_not_eq param, addr + .byte 0x0A + .byte \param + .4byte \addr + .endm + +@ the order that the user goes in the current turn + + .macro get_user_order + .byte 0x0B + .endm + + .macro if_user_order_less_than param addr + .byte 0x0C + .byte \param + .4byte \addr + .endm + + .macro if_user_order_more_than param addr + .byte 0x0D + .byte \param + .4byte \addr + .endm + + .macro if_user_order_eq param addr + .byte 0x0E + .byte \param + .4byte \addr + .endm + + .macro if_user_order_not_eq param addr + .byte 0x0F + .byte \param + .4byte \addr + .endm + +@ user condition + + .macro get_user_condition + .byte 0x10 + .endm + + .macro if_user_condition_less_than param, addr + .byte 0x11 + .byte \param + .4byte \addr + .endm + + .macro if_user_condition_more_than param, addr + .byte 0x12 + .byte \param + .4byte \addr + .endm + + .macro if_user_condition_eq param, addr + .byte 0x13 + .byte \param + .4byte \addr + .endm + + .macro if_user_condition_not_eq param, addr + .byte 0x14 + .byte \param + .4byte \addr + .endm + +@ 15 +@ 16 +@ 17 +@ 18 +@ 19 +@ 1A +@ 1B +@ 1C +@ 1D +@ 1E + +@ contest type + + .macro get_contest_type + .byte 0x1F + .endm + + .macro if_contest_type_eq param, addr + .byte 0x20 + .byte \param + .4byte \addr + .endm + + .macro if_contest_type_not_eq param, addr + .byte 0x21 + .byte \param + .4byte \addr + .endm + +@ move excitement (change in excitement due to move) + + .macro get_move_excitement + .byte 0x22 + .endm + + .macro if_move_excitement_less_than param, addr + .byte 0x23 + .byte \param + .4byte \addr + .endm + + .macro if_move_excitement_more_than param, addr + .byte 0x24 + .byte \param + .4byte \addr + .endm + + .macro if_move_excitement_eq param, addr + .byte 0x25 + .byte \param + .4byte \addr + .endm + + .macro if_move_excitement_not_eq param, addr + .byte 0x26 + .byte \param + .4byte \addr + .endm + +@ move effect + + .macro get_effect + .byte 0x27 + .endm + + .macro if_effect_eq param, addr + .byte 0x28 + .byte \param + .4byte \addr + .endm + + .macro if_effect_not_eq param, addr + .byte 0x29 + .byte \param + .4byte \addr + .endm + +@ move effect type + + .macro get_effect_type + .byte 0x2A + .endm + + .macro if_effect_type_eq param, addr + .byte 0x2B + .byte \param + .4byte \addr + .endm + + .macro if_effect_type_not_eq param, addr + .byte 0x2C + .byte \param + .4byte \addr + .endm + +@ whether the current move is the most appealing in the user's moveset + + .macro check_most_appealing_move + .byte 0x2D + .endm + + .macro if_most_appealing_move addr + .byte 0x2E + .4byte \addr + .endm + +@ 2F +@ 30 +@ 31 +@ 32 +@ 33 +@ 34 +@ 35 +@ 36 +@ 37 +@ 38 +@ 39 +@ 3A + +@ number of times current move has been used + + .macro get_move_used_count + .byte 0x3B + .endm + + .macro if_move_used_count_less_than param, addr + .byte 0x3C + .byte \param + .4byte \addr + .endm + + .macro if_move_used_count_more_than param, addr + .byte 0x3D + .byte \param + .4byte \addr + .endm + + .macro if_move_used_count_eq param, addr + .byte 0x3E + .byte \param + .4byte \addr + .endm + + .macro if_move_used_count_not_eq param, addr + .byte 0x3F + .byte \param + .4byte \addr + .endm + +@ whether the current move is a combo starter (with another move in the moveset) + + .macro check_combo_starter + .byte 0x40 + .endm + + .macro if_combo_starter addr + .byte 0x41 + .4byte \addr + .endm + + .macro if_not_combo_starter addr + .byte 0x42 + .4byte \addr + .endm + +@ whether the current move is a combo finisher (with another move in the moveset) + + .macro check_combo_finisher + .byte 0x43 + .endm + + .macro if_combo_finisher addr + .byte 0x44 + .4byte \addr + .endm + + .macro if_not_combo_finisher addr + .byte 0x45 + .4byte \addr + .endm + +@ whether the current move would finish a combo + + .macro check_would_finish_combo + .byte 0x46 + .endm + + .macro if_would_finish_combo addr + .byte 0x47 + .4byte \addr + .endm + + .macro if_would_not_finish_combo addr + .byte 0x48 + .4byte \addr + .endm + +@ condition of mon (indexed by order) + + .macro get_condition mon + .byte 0x49 + .byte \mon + .endm + + .macro if_condition_less_than mon, value, addr + .byte 0x4A + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_condition_more_than mon, value, addr + .byte 0x4B + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_condition_eq mon, value, addr + .byte 0x4C + .byte \mon + .byte \value + .4byte \addr + .endm + + .macro if_condition_not_eq mon, value, addr + .byte 0x4D + .byte \mon + .byte \value + .4byte \addr + .endm + +@ 4E +@ 4F +@ 50 + + .macro contest_51 param1 param2 addr + .byte 0x51 + .byte \param1 + .byte \param2 + .4byte \addr + .endm + +@ 52 +@ 53 + + .macro contest_54 param addr + .byte 0x54 + .byte \param + .4byte \addr + .endm + + .macro contest_55 param addr + .byte 0x55 + .byte \param + .4byte \addr + .endm + +@ 56 +@ 57 + + .macro contest_58 param addr + .byte 0x58 + .byte \param + .4byte \addr + .endm + +@ 59 +@ 5A +@ 5B +@ 5C +@ 5D +@ 5E +@ 5F +@ 60 +@ 61 +@ 62 +@ 63 +@ 64 +@ 65 +@ 66 +@ 67 +@ 68 +@ 69 +@ 6A +@ 6B +@ 6C +@ 6D +@ 6E +@ 6F +@ 70 +@ 71 +@ 72 +@ 73 +@ 74 +@ 75 +@ 76 +@ 77 +@ 78 +@ 79 +@ 7A +@ 7B +@ 7C + + .macro if_random param addr + .byte 0x7D + .byte \param + .4byte \addr + .endm + +@ 7E + + .macro jump addr + .byte 0x7F + .4byte \addr + .endm + + .macro call addr + .byte 0x80 + .4byte \addr + .endm + + .macro end + .byte 0x81 + .endm + + .macro check_user_has_exciting_move + .byte 0x82 + .endm + + .macro if_user_has_exciting_move addr + .byte 0x83 + .4byte \addr + .endm + + .macro if_user_doesnt_have_exciting_move addr + .byte 0x84 + .4byte \addr + .endm + +@ 85 +@ 86 + + .macro if_effect_in_user_moveset param addr + .byte 0x87 + .2byte \param + .4byte \addr + .endm diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index 82b7a2255..0e7780319 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -1,8 +1,847 @@ .include "asm/macros.s" + .include "asm/macros/contest_ai_script.s" .include "constants/constants.s" .section script_data, "aw", %progbits .align 2 gUnknown_081DC118:: @ 81DC118 - .incbin "baserom.gba", 0x001dc118, 0x9dc + .4byte Unknown_081DC7FB + .4byte Unknown_081DC348 + .4byte Unknown_081DC27F + .4byte Unknown_081DC2AB + .4byte Unknown_081DCA4C + .4byte Unknown_081DC3C7 + .4byte Unknown_081DC7DE + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + .4byte Unknown_081DCAF3 + + @ unreferenced + if_turn_not_eq 0x00 ContestUnreferenced_80 + if_effect_not_eq 0x26 ContestUnreferenced_80 + score 0x0A +ContestUnreferenced_80: + call ContestUnreferenced_0D + end +ContestUnreferenced_0D: + if_user_order_more_than 0x01 ContestUnreferenced_end + if_effect_type_not_eq 0x02 ContestUnreferenced_end + if_effect_type_not_eq 0x03 ContestUnreferenced_end + score 0x0A +ContestUnreferenced_end: + end + if_turn_eq 0x00 ContestUnreferenced_0F_1 + if_turn_eq 0x01 ContestUnreferenced_0F_2 + if_turn_eq 0x02 ContestUnreferenced_0F_3 + if_turn_eq 0x03 ContestUnreferenced_0F_4 + if_turn_eq 0x04 ContestUnreferenced_0F_5 + end +ContestUnreferenced_0F_1: + if_user_order_not_eq 0x00 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x01 ContestUnreferenced_2B_2 + if_user_order_not_eq 0x02 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x03 ContestUnreferenced_2B_1 + end +ContestUnreferenced_2B_1: + if_effect_type_eq 0x01 ContestUnreferenced_score + end +ContestUnreferenced_2B_2: + if_effect_type_eq 0x01 ContestUnreferenced_score + end + if_effect_type_eq 0x01 ContestUnreferenced_score + end +ContestUnreferenced_0F_2: + if_user_order_not_eq 0x00 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x01 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x02 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x03 ContestUnreferenced_2B_1 + end +ContestUnreferenced_0F_3: + if_user_order_not_eq 0x00 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x01 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x02 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x03 ContestUnreferenced_2B_1 + end +ContestUnreferenced_0F_4: + if_user_order_not_eq 0x00 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x01 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x02 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x03 ContestUnreferenced_2B_1 + end +ContestUnreferenced_0F_5: + if_user_order_not_eq 0x00 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x01 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x02 ContestUnreferenced_2B_1 + if_user_order_not_eq 0x03 ContestUnreferenced_2B_1 + end +ContestUnreferenced_score: + score 0x0A + end + end + if_most_appealing_move ContestUnreferenced_score2 + end +ContestUnreferenced_score2: + score 0x0A + end + +Unknown_081DC27F: + if_effect_eq 3, AI_end_081DC27F + if_move_used_count_eq 1 AI_score1_081DC27F + if_move_used_count_eq 2 AI_score2_081DC27F + if_move_used_count_eq 3 AI_score3_081DC27F + if_move_used_count_eq 4 AI_score4_081DC27F + end +AI_score1_081DC27F: + score 0xFB + end +AI_score2_081DC27F: + score 0xF1 + end +AI_score3_081DC27F: + score 0xEC + end +AI_score4_081DC27F: + score 0xE7 + end +AI_end_081DC27F: + end + +Unknown_081DC2AB: + if_move_excitement_less_than 0x00 AI_contest09_081DC2AB + if_move_excitement_eq 0x00 AI_contest7D_4_081DC2AB + if_move_excitement_eq 0x01 AI_contest3D_081DC2AB + end +AI_contest09_081DC2AB: + if_excitement_eq 0x04 AI_contest0F_1_081DC2AB + if_excitement_eq 0x03 AI_contest0F_2_081DC2AB + if_user_has_exciting_move AI_end_081DC2AB + score 0x0F + end +AI_contest0F_1_081DC2AB: + if_user_order_not_eq 0x00 AI_contest7D_1_081DC2AB + if_random 0x33 AI_end_081DC2AB + score 0x14 + end +AI_contest7D_1_081DC2AB: + if_random 0x7F AI_end_081DC2AB + score 0xF6 + end +AI_contest0F_2_081DC2AB: + if_user_order_not_eq 0x00 AI_contest7D_3_081DC2AB + if_turn_eq 0x04 AI_score_081DC2AB +AI_contest7D_2_081DC2AB: + if_random 0x33 AI_end_081DC2AB + score 0x0A + end +AI_score_081DC2AB: + score 0x0F + end +AI_contest7D_3_081DC2AB: + if_random 0x7F AI_end_081DC2AB + score 0x0A + end +AI_contest7D_4_081DC2AB: + if_random 0x7F AI_end_081DC2AB + score 0x0A + end +AI_contest3D_081DC2AB: + if_move_used_count_more_than 0x00 AI_contest29_081DC2AB + if_user_order_not_eq 0x00 AI_contest7D_5_081DC2AB + if_excitement_not_eq 0x04 AI_contest7D_5_081DC2AB + score 0x1E + end +AI_contest7D_5_081DC2AB: + if_random 0x64 AI_end_081DC2AB + score 0x0A + end +AI_contest29_081DC2AB: + if_effect_not_eq 0x03 AI_end_081DC2AB + if_user_order_not_eq 0x00 AI_contest7D_5_081DC2AB + if_excitement_not_eq 0x04 AI_contest7D_5_081DC2AB + score 0x1E + end +AI_end_081DC2AB: + end + +Unknown_081DC348: + if_would_finish_combo AI_score_081DC348 + call AI_contest3F_081DC348 + call AI_contest45_081DC348 + end +AI_contest3F_081DC348: + if_move_used_count_not_eq 0x00 AI_end_081DC348 + if_not_combo_starter AI_end_081DC348 + if_user_order_eq 0x00 AI_contest04_1_081DC348 + if_user_order_eq 0x01 AI_contest04_2_081DC348 + if_user_order_eq 0x02 AI_contest04_3_081DC348 + if_user_order_eq 0x03 AI_contest04_4_081DC348 + end +AI_contest45_081DC348: + if_not_combo_finisher AI_end_081DC348 + score 0xF6 + end +AI_score_081DC348: + score 0x19 + end +AI_contest04_1_081DC348: + if_turn_eq 0x04 AI_contest7D_081DC348 + if_random 0x96 AI_end_081DC348 + score 0x0A + end +AI_contest04_2_081DC348: + if_turn_eq 0x04 AI_contest7D_081DC348 + if_random 0x7D AI_end_081DC348 + score 0x0A + end +AI_contest04_3_081DC348: + if_turn_eq 0x04 AI_contest7D_081DC348 + if_random 0x32 AI_end_081DC348 + score 0x0A + end +AI_contest04_4_081DC348: + if_turn_eq 0x04 AI_contest7D_081DC348 + score 0x0A + end +AI_contest7D_081DC348: + if_random 0x7D AI_end_081DC348 + score 0xF1 + end +AI_end_081DC348: + end + +Unknown_081DC3C7: + if_effect_eq 39, ContestEffect39 + if_effect_eq 40, ContestEffect40 + if_effect_eq 41, ContestEffect41 + if_effect_eq 3, ContestEffect3 + if_effect_eq 38, ContestEffect38 + if_effect_eq 47, ContestEffect47 + if_effect_eq 31, ContestEffect31 + if_effect_eq 32, ContestEffect32 + if_effect_eq 46, ContestEffect46 + if_effect_eq 27, ContestEffect27 + if_effect_eq 16, ContestEffect16or17 + if_effect_eq 17, ContestEffect16or17 + if_effect_eq 26, ContestEffect_FollowingMonsNervous + if_effect_eq 18, ContestEffect18 + end + +ContestEffect39: + if_user_condition_eq 0x03 ContestEffect39_score1 + if_user_condition_eq 0x02 ContestEffect39_score2 + if_user_condition_eq 0x01 ContestEffect39_score3 + if_user_condition_eq 0x00 ContestEffect39_score4 + end +ContestEffect39_score1: + score 0x14 + end +ContestEffect39_score2: + if_random 0x7D ContestEffectEnd + score 0x0F + end +ContestEffect39_score3: + if_random 0x7D ContestEffectEnd + score 0x05 + end +ContestEffect39_score4: + score 0xEC + end + +ContestEffect40: + if_effect_in_user_moveset 0x1D ContestEffectEnd + if_random 0x32 ContestEffectEnd + score 0x14 + end + +ContestEffect41: + if_effect_in_user_moveset 0x1E ContestEffectEnd + if_random 0x32 ContestEffectEnd + score 0x14 + end + +ContestEffect3: + if_user_order_not_eq 0x03 ContestEffectEnd + if_random 0x32 ContestEffectEnd + score 0x0F + end + if_turn_eq 0x04 ContestEffect3_7D + if_random 0xDC ContestEffect3_score + score 0x0A + end +ContestEffect3_7D: + if_random 0x14 ContestEffectEnd + score 0x0F + end +ContestEffect3_score: + score 0xEC + end + +ContestEffect38: + if_effect_in_user_moveset 0x27 ContestEffect38_contest04 + if_user_condition_eq 0x03 ContestEffect38_score1 + if_random 0x32 ContestEffectEnd + score 0x0F + end +ContestEffect38_score1: + score 0xF6 + end +ContestEffect38_contest04: + if_turn_eq 0x04 ContestEffect38_score2 + if_turn_eq 0x00 ContestEffect38_random + if_move_used_count_eq 1 ContestEffectEnd + if_random 0x7D ContestEffectEnd + score 0x0A + end +ContestEffect38_random: + if_random 0x64 ContestEffectEnd + score 0x0A + end +ContestEffect38_score2: + score 0xF6 + end + +ContestEffect47: + if_move_used_count_eq 1 ContestEffectEnd + if_user_order_eq 0x00 ContestEffect47_random + if_user_order_eq 0x01 ContestEffect47_random + if_turn_not_eq 0x04 ContestEffectEnd + if_user_has_exciting_move ContestEffectEnd + if_excitement_less_than 0x01 ContestEffectEnd + score 0x0A + end +ContestEffect47_random: + if_random 0x7F ContestEffectEnd + score 0x0A + end + +ContestEffect31: + if_user_order_eq 0x01 ContestEffect31_score1 + if_user_order_eq 0x02 ContestEffect31_score2 + if_user_order_eq 0x03 ContestEffect31_score3 + end +ContestEffect31_score1: + score 0x05 + end +ContestEffect31_score2: + score 0x0F + end +ContestEffect31_score3: + score 0x14 + end + +ContestEffect32: + if_user_order_eq 0x00 ContestEffect32_score1 + if_user_order_eq 0x01 ContestEffect32_score2 + if_user_order_eq 0x02 ContestEffect32_score3 + if_user_order_eq 0x03 ContestEffect32_score5 + end +ContestEffect32_score1: + score 0xF6 + end +ContestEffect32_score2: + contest_55 0x00 ContestEffectEnd + score 0x05 + end +ContestEffect32_score3: + contest_55 0x00 ContestEffect32_score4 + score 0x05 + jump ContestEffect32_score4 + end +ContestEffect32_score4: + contest_55 0x01 ContestEffectEnd + score 0x05 + end +ContestEffect32_score5: + contest_55 0x00 ContestEffect32_score6 + score 0x05 + jump ContestEffect32_score6 + end +ContestEffect32_score6: + contest_55 0x01 ContestEffect32_score7 + score 0x05 + jump ContestEffect32_score7 + end +ContestEffect32_score7: + contest_55 0x02 ContestEffectEnd + score 0x05 + end + +ContestEffect46: + if_user_order_eq 0x00 ContestEffect46_05 + if_user_order_more_than 0x00 ContestEffect46_score4 + end +ContestEffect46_05: + if_turn_not_eq 0x00 ContestEffect46_score1 + if_excitement_eq 0x04 ContestEffect46_score2 + if_excitement_eq 0x03 ContestEffect46_score3 + end +ContestEffect46_score1: + if_random 0x7D ContestEffectEnd + score 0xF1 + end +ContestEffect46_score2: + if_random 0x7D ContestEffectEnd + score 0x14 + end +ContestEffect46_score3: + if_random 0x7D ContestEffectEnd + score 0x0F + end +ContestEffect46_score4: + if_random 0xB2 ContestEffectEnd + score 0x0A + end + +ContestEffect27: + if_user_order_eq 0x00 ContestEffectEnd + jump ContestEffect27_55_1 + end +ContestEffect27_55_1: + contest_55 0x00 ContestEffect27_noscore + if_condition_eq 0x00 0x00 ContestEffect27_noscore + if_condition_eq 0x00 0x01 ContestEffect27_score1 + if_condition_eq 0x00 0x02 ContestEffect27_score2 + if_condition_eq 0x00 0x03 ContestEffect27_score3 + end +ContestEffect27_score1: + if_random 0x7D ContestEffect27_55_2 + score 0x05 + if_user_order_more_than 0x01 ContestEffect27_55_2 + end +ContestEffect27_score2: + if_random 0x7D ContestEffect27_55_2 + score 0x0A + if_user_order_more_than 0x01 ContestEffect27_55_2 + end +ContestEffect27_score3: + if_random 0x7D ContestEffect27_55_2 + score 0x0F + if_user_order_more_than 0x01 ContestEffect27_55_2 + end +ContestEffect27_noscore: + if_user_order_more_than 0x01 ContestEffect27_55_2 + end +ContestEffect27_55_2: + contest_55 0x01 ContestEffect27_noscore2 + if_condition_eq 0x01 0x00 ContestEffect27_noscore2 + if_condition_eq 0x01 0x01 ContestEffect27_score4 + if_condition_eq 0x01 0x02 ContestEffect27_score5 + if_condition_eq 0x01 0x03 ContestEffect27_score6 + end +ContestEffect27_score4: + if_random 0x7D ContestEffect27_55_3 + score 0x05 + if_user_order_more_than 0x02 ContestEffect27_55_3 + end +ContestEffect27_score5: + if_random 0x7D ContestEffect27_55_3 + score 0x0A + if_user_order_more_than 0x02 ContestEffect27_55_3 + end +ContestEffect27_score6: + if_random 0x7D ContestEffect27_55_3 + score 0x0F + if_user_order_more_than 0x02 ContestEffect27_55_3 + end +ContestEffect27_noscore2: + if_user_order_more_than 0x02 ContestEffect27_55_3 + end +ContestEffect27_55_3: + contest_55 0x02 ContestEffect27_end + if_condition_eq 0x02 0x00 ContestEffect27_end + if_condition_eq 0x02 0x01 ContestEffect27_score7 + if_condition_eq 0x02 0x02 ContestEffect27_score8 + if_condition_eq 0x02 0x03 ContestEffect27_score9 + end +ContestEffect27_score7: + if_random 0x7D ContestEffectEnd + score 0x05 + end +ContestEffect27_score8: + if_random 0x7D ContestEffectEnd + score 0x0A + end +ContestEffect27_score9: + if_random 0x7D ContestEffectEnd + score 0x0F + end +ContestEffect27_end: + end + +ContestEffect16or17: + if_user_order_eq 0x00 ContestEffectEnd + jump ContestEffect16or17_55 + end +ContestEffect16or17_55: + contest_55 0x00 ContestEffect16or17_0E_1 + contest_51 0x00 0x01 ContestEffect16or17_0E_1 + if_random 0x7D ContestEffect16or17_0E_1 + score 0x02 + contest_58 0x00 ContestEffect16or17_0E_1 + score 0x08 + end +ContestEffect16or17_0E_1: + if_user_order_eq 0x01 ContestEffectEnd + contest_55 0x01 ContestEffect16or17_0E_2 + contest_51 0x01 0x01 ContestEffect16or17_0E_2 + if_random 0x7D ContestEffect16or17_0E_2 + score 0x02 + contest_58 0x01 ContestEffect16or17_0E_2 + score 0x08 + end +ContestEffect16or17_0E_2: + if_user_order_eq 0x02 ContestEffectEnd + contest_55 0x02 ContestEffectEnd + contest_51 0x02 0x01 ContestEffectEnd + if_random 0x7D ContestEffectEnd + score 0x02 + contest_58 0x02 ContestEffectEnd + score 0x08 + end + +@ This routine checks the following mons using contest_51 and contest_55 +@ in order to decide if moves that make the following mons nervous should +@ be encouraged. +ContestEffect_FollowingMonsNervous: + if_user_order_eq 3, ContestEffectEnd + jump ContestEffect_FollowingMonsNervous_CheckMon3 + end +ContestEffect_FollowingMonsNervous_CheckMon3: + contest_55 3, ContestEffect_FollowingMonsNervous_CheckMon2 + contest_51 3, 0, ContestEffect_FollowingMonsNervous_CheckMon2 + score +5 + if_random 125, ContestEffect16or17_0E_1 + score +5 + end +ContestEffect_FollowingMonsNervous_CheckMon2: + if_user_order_eq 2, ContestEffectEnd + contest_55 2, ContestEffect_FollowingMonsNervous_CheckMon1 + contest_51 2, 0, ContestEffect_FollowingMonsNervous_CheckMon1 + score +5 + if_random 125, ContestEffect16or17_0E_2 + score +5 + end +ContestEffect_FollowingMonsNervous_CheckMon1: + if_user_order_eq 1, ContestEffectEnd + contest_55 1, ContestEffectEnd + contest_51 1, 0, ContestEffectEnd + score +5 + if_random 125, ContestEffectEnd + score +5 + end + +ContestEffect18: + if_turn_eq 0x04 ContestEffect18_score1 + jump ContestEffect18_0E + end +ContestEffect18_score1: + score 0x05 + jump ContestEffect18_0E + end +ContestEffect18_0E: + if_user_order_eq 0x00 ContestEffect18_score2 + if_user_order_eq 0x01 ContestEffect18_random1 + if_user_order_eq 0x02 ContestEffect18_random2 + if_user_order_eq 0x03 ContestEffect18_random3 + end +ContestEffect18_score2: + score 0xF1 + end +ContestEffect18_random1: + if_random 0x7D ContestEffectEnd + score 0xF6 + end +ContestEffect18_random2: + if_random 0x7D ContestEffectEnd + score 0x05 + end +ContestEffect18_random3: + if_random 0x7D ContestEffectEnd + score 0x0F + end + +ContestEffectEnd: + end + +Unknown_081DC7DE: + if_contest_type_eq CONTEST_CUTE, AI_contest7D_081DC7DE + if_contest_type_eq CONTEST_SMART, AI_contest7D_081DC7DE + if_contest_type_eq CONTEST_TOUGH, AI_contest7D_081DC7DE + end +AI_contest7D_081DC7DE: + if_random 0x7D AI_end_081DC7DE + score 0x0A + end +AI_end_081DC7DE: + end + +Unknown_081DC7FB: + if_effect_eq 8, ContestEffect2_8 + if_effect_eq 10, ContestEffect2_8 + if_effect_eq 12, ContestEffect2_8 + if_effect_eq 14, ContestEffect2_8 + if_effect_eq 32, ContestEffect2_8 + if_effect_eq 35, ContestEffect2_8 + if_effect_eq 36, ContestEffect2_8 + if_effect_eq 37, ContestEffect2_8 + if_effect_eq 9, ContestEffect2_9 + if_effect_eq 11, ContestEffect2_9 + if_effect_eq 13, ContestEffect2_9 + if_effect_eq 15, ContestEffect2_9 + if_effect_eq 17, ContestEffect2_9 + if_effect_eq 16, ContestEffect2_9 + if_effect_eq 18, ContestEffect2_9 + if_effect_eq 19, ContestEffect2_9 + if_effect_eq 45, ContestEffect2_9 + if_effect_eq 20, ContestEffect2_9 + if_effect_eq 21, ContestEffect2_9 + if_effect_eq 22, ContestEffect2_9 + if_effect_eq 23, ContestEffect2_9 + if_effect_eq 24, ContestEffect2_9 + if_effect_eq 28, ContestEffect2_9 + if_effect_eq 27, ContestEffect2_9 + if_effect_eq 31, ContestEffect2_9 + if_effect_eq 25, ContestEffect2_25 + if_effect_eq 26, ContestEffect2_26 + if_effect_eq 47, ContestEffect2_26 + if_effect_eq 38, ContestEffect2_38 + if_effect_eq 4, ContestEffect2_4 + if_effect_eq 5, ContestEffect2_4 + if_effect_eq 6, ContestEffect2_4 + if_effect_eq 2, ContestEffect2_2 + end + +ContestEffect2_8: + if_user_order_eq 0x00 ContestEffect2_8_score1 + if_user_order_eq 0x01 ContestEffect2_8_score2 + if_user_order_eq 0x02 ContestEffect2_8_score3 + if_user_order_eq 0x03 ContestEffect2_8_score4 + end +ContestEffect2_8_score1: + score 0xF6 + end +ContestEffect2_8_score2: + contest_54 0x00 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_8_score3: + contest_54 0x01 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_8_score4: + contest_54 0x02 ContestEffectEnd2 + score 0xF6 + end + +ContestEffect2_9: + if_user_order_eq 0x00 ContestEffect2_9_score1 + if_user_order_eq 0x01 ContestEffect2_9_score2 + if_user_order_eq 0x02 ContestEffect2_9_score3 + if_user_order_eq 0x03 ContestEffect2_9_score4 + end +ContestEffect2_9_score1: + score 0xEC + end +ContestEffect2_9_score2: + contest_54 0x00 ContestEffectEnd2 + score 0xF1 + end +ContestEffect2_9_score3: + contest_54 0x00 ContestEffectEnd2 + contest_54 0x01 ContestEffectEnd2 + score 0xF1 + end +ContestEffect2_9_score4: + contest_54 0x00 ContestEffectEnd2 + contest_54 0x01 ContestEffectEnd2 + contest_54 0x02 ContestEffectEnd2 + score 0xF1 + end + +ContestEffect2_25: + if_user_order_eq 0x00 ContestEffect2_25_score1 + if_user_order_eq 0x01 ContestEffect2_25_score2 + if_user_order_eq 0x02 ContestEffect2_25_score3 + score 0xF6 + end +ContestEffect2_25_score1: + contest_54 0x01 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_25_score2: + contest_54 0x02 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_25_score3: + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end + +ContestEffect2_26: + if_user_order_eq 0x00 ContestEffect2_26_score1 + if_user_order_eq 0x01 ContestEffect2_26_score2 + if_user_order_eq 0x02 ContestEffect2_26_score3 + score 0xF6 + end +ContestEffect2_26_score1: + contest_54 0x01 ContestEffectEnd2 + contest_54 0x02 ContestEffectEnd2 + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_26_score2: + contest_54 0x02 ContestEffectEnd2 + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_26_score3: + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end + +ContestEffect2_38: + if_user_condition_less_than 0x03 ContestEffectEnd2 + score 0xEC + end + +ContestEffect2_4: + if_user_order_eq 0x00 ContestEffect2_4_score1 + if_user_order_eq 0x01 ContestEffect2_4_score2 + if_user_order_eq 0x02 ContestEffect2_4_score3 + score 0xF6 + end +ContestEffect2_4_score1: + contest_54 0x01 ContestEffectEnd2 + contest_54 0x02 ContestEffectEnd2 + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_4_score2: + contest_54 0x02 ContestEffectEnd2 + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end +ContestEffect2_4_score3: + contest_54 0x03 ContestEffectEnd2 + score 0xF6 + end + +ContestEffect2_2: + if_turn_eq 0x00 ContestEffect2_2_score1 + if_turn_eq 0x01 ContestEffect2_2_score2 + if_turn_eq 0x02 ContestEffect2_2_score3 + if_turn_eq 0x03 ContestEffect2_2_score4 + if_turn_eq 0x04 ContestEffect2_2_score5 + end +ContestEffect2_2_score1: + if_random 0x14 ContestEffectEnd2 + score 0xF1 + end +ContestEffect2_2_score2: + if_random 0x28 ContestEffectEnd2 + score 0xF1 + end +ContestEffect2_2_score3: + if_random 0x3C ContestEffectEnd2 + score 0xF1 + end +ContestEffect2_2_score4: + if_random 0x50 ContestEffectEnd2 + score 0xF1 + end +ContestEffect2_2_score5: + if_random 0x14 ContestEffectEnd2 + score 0x14 + end + +ContestEffectEnd2: + end + +Unknown_081DCA4C: + if_user_order_eq 0x00 AI_effectcheck1_081DCA4C + if_user_order_eq 0x01 AI_effectcheck2_081DCA4C + if_user_order_eq 0x02 AI_effectcheck3_081DCA4C + if_user_order_eq 0x03 AI_effectcheck4_081DCA4C + end +AI_effectcheck1_081DCA4C: + if_effect_eq 0x1D AI_score1_081DCA4C + if_effect_eq 0x21 AI_score2_081DCA4C + if_effect_type_eq 0x01 AI_random1_081DCA4C + end +AI_score1_081DCA4C: + score 0x0F + end +AI_score2_081DCA4C: + score 0xF1 + end +AI_random1_081DCA4C: + if_random 0x64 ContestEffectEnd2 + score 0x0A + end +AI_effectcheck2_081DCA4C: + if_effect_eq 0x21 AI_score3_081DCA4C + if_effect_type_eq 0x01 AI_random2_081DCA4C + end +AI_score3_081DCA4C: + score 0xFB + end +AI_random2_081DCA4C: + if_random 0x7D ContestEffectEnd2 + score 0x0A + end +AI_effectcheck3_081DCA4C: + if_effect_eq 0x21 AI_score4_081DCA4C + if_effect_eq 0x1F AI_score4_081DCA4C + if_effect_eq 0x01 AI_score4_081DCA4C + end +AI_score4_081DCA4C: + score 0x05 + end +AI_effectcheck4_081DCA4C: + if_effect_eq 0x21 AI_score5_081DCA4C + if_effect_eq 0x1E AI_score5_081DCA4C + if_effect_eq 0x1F AI_score5_081DCA4C + if_effect_eq 0x01 AI_score5_081DCA4C + if_effect_eq 0x12 AI_score7_081DCA4C + if_effect_type_eq 0x01 AI_score6_081DCA4C + if_effect_type_eq 0x03 AI_random3_081DCA4C + end +AI_score5_081DCA4C: + score 0x0F + end +AI_score6_081DCA4C: + score 0xF6 + end +AI_random3_081DCA4C: + if_random 0x7D ContestEffectEnd2 + score 0x0A + end +AI_score7_081DCA4C: + score 0x05 + end + +Unknown_081DCAF3: + end diff --git a/data/text/battle_strings.s b/data/text/battle_strings.s index e8baa88ab..e9195e261 100644 --- a/data/text/battle_strings.s +++ b/data/text/battle_strings.s @@ -1860,8 +1860,7 @@ gUnknown_0840164C:: @ 840164C .2byte BATTLE_TEXT_SubTookDamage .2byte BATTLE_TEXT_CoinScatter .2byte BATTLE_TEXT_SandTombTrapped - - .incbin "baserom.gba", 0x401658, 0x4 + .2byte 0xFFFF .align 2 gUnknown_0840165C:: @ 840165C |