Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_heart_battle_menu_mercy_Step_0

related scripts: Create_0Step_0

(view raw script w/o annotations or w/e)
1
script_execute(scr_controls_battle_mercy);
2
if (key_select)
3
{
4
    if (global.mercy_number == 1)
5
    {
6
        if (global.enemy_count == 1 && global.enemy_sparing == true && global.enemy_dead == false && global.enemy_spared == false)
7
        {
8
            with (obj_battle_generator)
9
                audio_extend = false;
10
            audio_stop_all();
11
            if (global.battling_boss == true)
12
            {
13
                instance_create(0, 0, obj_dialogue_battle_win_pacifist);
14
                instance_create(0, 0, obj_battle_justice_effect);
15
            }
16
            else
17
            {
18
                instance_create(0, 0, obj_dialogue_battle_win_enemy);
19
            }
20
            global.spare_selected_count += 1;
21
            global.last_action_selected = "Spare";
22
            global.last_action_selected_2 = "Spare";
23
            global.last_action_selected_3 = "Spare";
24
            global.enemy_spared = true;
25
            moveable = false;
26
            audio_play_sound(snd_monster_damage_death, 20, false);
27
            with (obj_text_battle_move_selected_mercy_parent)
28
                instance_destroy();
29
            instance_destroy();
30
        }
31
        else if (global.enemy_count == 2)
32
        {
33
            if (global.enemy_sparing == true && global.enemy_dead == false && global.enemy_spared == false)
34
            {
35
                global.enemy_spared = true;
36
                audio_play_sound(snd_monster_damage_death, 20, false);
37
            }
38
            if (global.enemy_sparing_2 == true && global.enemy_dead_2 == false && global.enemy_spared_2 == false)
39
            {
40
                global.enemy_spared_2 = true;
41
                if (!audio_is_playing(snd_monster_damage_death))
42
                    audio_play_sound(snd_monster_damage_death, 20, false);
43
            }
44
            if ((global.enemy_dead == true || global.enemy_spared == true) && (global.enemy_dead_2 == true || global.enemy_spared_2 == true))
45
            {
46
                with (obj_battle_generator)
47
                    audio_extend = false;
48
                audio_stop_all();
49
                instance_create(0, 0, obj_dialogue_battle_win_enemy);
50
                global.spare_selected_count += 1;
51
                global.last_action_selected = "Spare";
52
                global.last_action_selected_2 = "Spare";
53
                global.last_action_selected_3 = "Spare";
54
                moveable = false;
55
                audio_play_sound(snd_monster_damage_death, 20, false);
56
                with (obj_text_battle_move_selected_mercy_parent)
57
                    instance_destroy();
58
                instance_destroy();
59
            }
60
            else
61
            {
62
                execute_sparing_false = true;
63
            }
64
        }
65
        else if (global.enemy_count == 3)
66
        {
67
            if (global.enemy_sparing == true && global.enemy_dead == false && global.enemy_spared == false)
68
            {
69
                global.enemy_spared = true;
70
                audio_play_sound(snd_monster_damage_death, 20, false);
71
            }
72
            if (global.enemy_sparing_2 == true && global.enemy_dead_2 == false && global.enemy_spared_2 == false)
73
            {
74
                global.enemy_spared_2 = true;
75
                if (!audio_is_playing(snd_monster_damage_death))
76
                    audio_play_sound(snd_monster_damage_death, 20, false);
77
            }
78
            if (global.enemy_sparing_3 == true && global.enemy_dead_3 == false && global.enemy_spared_3 == false)
79
            {
80
                global.enemy_spared_3 = true;
81
                if (!audio_is_playing(snd_monster_damage_death))
82
                    audio_play_sound(snd_monster_damage_death, 20, false);
83
            }
84
            if ((global.enemy_dead == true || global.enemy_spared == true) && (global.enemy_dead_2 == true || global.enemy_spared_2 == true) && (global.enemy_dead_3 == true || global.enemy_spared_3 == true))
85
            {
86
                with (obj_battle_generator)
87
                    audio_extend = false;
88
                audio_stop_all();
89
                instance_create(0, 0, obj_dialogue_battle_win_enemy);
90
                global.spare_selected_count += 1;
91
                global.last_action_selected = "Spare";
92
                global.last_action_selected_2 = "Spare";
93
                global.last_action_selected_3 = "Spare";
94
                moveable = false;
95
                audio_play_sound(snd_monster_damage_death, 20, false);
96
                with (obj_text_battle_move_selected_mercy_parent)
97
                    instance_destroy();
98
                instance_destroy();
99
            }
100
            else
101
            {
102
                execute_sparing_false = true;
103
            }
104
        }
105
        if (global.enemy_sparing == false || execute_sparing_false == true)
106
        {
107
            global.spare_selected_count += 1;
108
            global.last_action_selected = "Spare";
109
            global.last_action_selected_2 = "Spare";
110
            global.last_action_selected_3 = "Spare";
111
            global.no_hit_count += 1;
112
            if (global.enemy_count >= 2)
113
                global.no_hit_count_2 += 1;
114
            if (global.enemy_count >= 3)
115
                global.no_hit_count_3 += 1;
116
            
scr_determine_special_effect_enemy
scr_determine_special_effect_enemy

function
scr_determine_special_effect_enemy(arg0)
{ var battle_enemy_name = global.battle_enemy_name; if (global.game_mode == "customs") { } else if (global.game_mode == "yellow") { switch (battle_enemy_name) { case "martlet pacifist":
scr_enemy_mode_shift_martlet_pacifist(arg0);
break; case "martlet genocide":
scr_enemy_mode_shift_martlet_genocide(arg0);
break; } } global.special_effect_end_value = arg0; }
("Spare");
117
            global.important_cutscene = script_execute(scr_determine_important_cutscene_attacking);
118
            global.can_attack = script_execute(scr_determine_can_attack_attacking);
119
            if (global.important_cutscene == false && global.can_attack == true)
120
                global.enemy_attacking = true;
121
            if (global.can_attack == false)
122
            {
123
                with (obj_dialogue_box_battle)
124
                    no_loop_can_attack = false;
125
            }
126
            execute_sparing_false = false;
127
            audio_play_sound(snd_battle_item_weapon_select, 20, false);
128
            with (obj_text_battle_move_selected_mercy_parent)
129
                instance_destroy();
130
            instance_destroy();
131
        }
132
    }
133
    else if (global.mercy_number == 2)
134
    {
135
        var random_number = irandom_range(0, 1);
136
        if (global.player_armor_modifier == "Patch")
137
            random_number = 1;
138
        if (random_number == 0 && global.flee_guarantee < 2)
139
        {
140
            global.flee_guarantee += 1;
141
            global.no_hit_count += 1;
142
            if (global.enemy_count >= 2)
143
                global.no_hit_count_2 += 1;
144
            if (global.enemy_count >= 3)
145
                global.no_hit_count_3 += 1;
146
            
scr_determine_special_effect_enemy
scr_determine_special_effect_enemy

function
scr_determine_special_effect_enemy(arg0)
{ var battle_enemy_name = global.battle_enemy_name; if (global.game_mode == "customs") { } else if (global.game_mode == "yellow") { switch (battle_enemy_name) { case "martlet pacifist":
scr_enemy_mode_shift_martlet_pacifist(arg0);
break; case "martlet genocide":
scr_enemy_mode_shift_martlet_genocide(arg0);
break; } } global.special_effect_end_value = arg0; }
("Flee");
147
            global.important_cutscene = script_execute(scr_determine_important_cutscene_attacking);
148
            global.can_attack = script_execute(scr_determine_can_attack_attacking);
149
            if (global.important_cutscene == false && global.can_attack == true)
150
                global.enemy_attacking = true;
151
            if (global.can_attack == false)
152
            {
153
                with (obj_dialogue_box_battle)
154
                    no_loop_can_attack = false;
155
            }
156
            audio_play_sound(snd_battle_item_weapon_select, 20, false);
157
            with (obj_text_battle_move_selected_mercy_parent)
158
                instance_destroy();
159
            instance_destroy();
160
        }
161
        else
162
        {
163
            instance_create(0, 0, obj_dialogue_battle_flee);
164
            instance_create(x, y, obj_heart_battle_menu_flee);
165
            moveable = false;
166
            audio_play_sound(snd_flee, 20, false);
167
            with (obj_text_battle_move_selected_mercy_parent)
168
                instance_destroy();
169
            instance_destroy();
170
            global.flee_guarantee = 0;
171
        }
172
    }
173
}
174
if (key_revert && key_select == 0)
175
{
176
    if (instance_exists(obj_text_battle_move_selected_spare))
177
    {
178
        with (obj_heart_battle_menu)
179
        {
180
            no_loop = false;
181
            image_alpha = 1;
182
        }
183
        with (obj_text_battle_move_selected_mercy_parent)
184
            instance_destroy();
185
        instance_destroy();
186
    }
187
}
188
if (key_select == 0 && key_revert == 0 && instance_exists(obj_text_battle_move_selected_flee))
189
{
190
    if (key_down && key_up == 0)
191
    {
192
        if (global.mercy_number >= 2)
193
            global.mercy_number = 1;
194
        else
195
            global.mercy_number += 1;
196
        audio_play_sound(snd_mainmenu_select, 20, false);
197
    }
198
    else if (key_up && key_down == 0)
199
    {
200
        if (global.mercy_number <= 1)
201
            global.mercy_number = 2;
202
        else
203
            global.mercy_number -= 1;
204
        audio_play_sound(snd_mainmenu_select, 20, false);
205
    }
206
}
207
x = obj_dialogue_box_battle.x + 44;
208
if (global.mercy_number == 1)
209
    y = obj_dialogue_box_battle.y + 36;
210
else if (global.mercy_number == 2)
211
    y = obj_dialogue_box_battle.y + 68;