Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_scr_damage_determination_enemy

(view raw script w/o annotations or w/e)
1
function scr_damage_determination_enemy
scr_damage_determination_enemy

function scr_damage_determination_enemy(arg0) { if (live_call()) return global.live_result; switch (arg0) { case "Gun Single": global.attacking_damage_stat_betrayal = global.current_hp_enemy; global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 2.5); r = random_range(0, 2); switch (shot_type) { case "strong": b = 2.5; break; case "medium": b = 2; break; default: b = 1.5; } global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_attack) - global.enemy_defense_stat) + r) * b); break; case "Gun Multi": global.attacking_damage_stat_betrayal = global.current_hp_enemy; global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 2.5); r = random_range(0, 2); b = 1.5; var b_diff = 1 / circle_count; var st_temp; for (st_temp = shot_total; st_temp > 3; st_temp -= 3) b += b_diff; switch (st_temp) { case 3: b += b_diff; break; case 2: b += (0.8 * b_diff); break; default: b += (0.6 * b_diff); } global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + r) * clamp(b, 1.5, 3)); break; case "Revolver Single": global.attacking_damage_stat_betrayal = global.current_hp_enemy; global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 3.5); r = random_range(0, 2); b = 0; var b_inc = 0.5833333333333334; switch (shot_type) { case "strong": b += b_inc; break; case "medium": b += (b_inc * 0.5); break; default: b = 0; } var st_temp; for (st_temp = shot_total_pre; st_temp > 3; st_temp -= 3) b += b_inc; switch (st_temp) { case 3: b += b_inc; break; case 2: b += (b_inc * 0.5); break; default: b += 0; } global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + r) * b); break; case "Revolver Multi": global.attacking_damage_stat_betrayal = global.current_hp_enemy; global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 3.5); r = random_range(0, 2); b = 0; var b_inc = 0.5833333333333334; var st_temp; for (st_temp = shot_total; st_temp > 3; st_temp -= 3) b += b_inc; switch (st_temp) { case 3: b += b_inc; break; case 2: b += (b_inc / 2); break; default: b += 0; } for (st_temp = shot_total_pre; st_temp > 3; st_temp -= 3) b += b_inc; switch (st_temp) ...
(arg0)
2
{
3
    if (live_call())
4
        return global.live_result;
5
    switch (arg0)
6
    {
7
        case "Gun Single":
8
            global.attacking_damage_stat_betrayal = global.current_hp_enemy;
9
            global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 2.5);
10
            r = random_range(0, 2);
11
            switch (shot_type)
12
            {
13
                case "strong":
14
                    b = 2.5;
15
                    break;
16
                case "medium":
17
                    b = 2;
18
                    break;
19
                default:
20
                    b = 1.5;
21
            }
22
            global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_attack) - global.enemy_defense_stat) + r) * b);
23
            break;
24
        case "Gun Multi":
25
            global.attacking_damage_stat_betrayal = global.current_hp_enemy;
26
            global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 2.5);
27
            r = random_range(0, 2);
28
            b = 1.5;
29
            var b_diff = 1 / circle_count;
30
            var st_temp;
31
            for (st_temp = shot_total; st_temp > 3; st_temp -= 3)
32
                b += b_diff;
33
            switch (st_temp)
34
            {
35
                case 3:
36
                    b += b_diff;
37
                    break;
38
                case 2:
39
                    b += (0.8 * b_diff);
40
                    break;
41
                default:
42
                    b += (0.6 * b_diff);
43
            }
44
            global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + r) * clamp(b, 1.5, 3));
45
            break;
46
        case "Revolver Single":
47
            global.attacking_damage_stat_betrayal = global.current_hp_enemy;
48
            global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 3.5);
49
            r = random_range(0, 2);
50
            b = 0;
51
            var b_inc = 0.5833333333333334;
52
            switch (shot_type)
53
            {
54
                case "strong":
55
                    b += b_inc;
56
                    break;
57
                case "medium":
58
                    b += (b_inc * 0.5);
59
                    break;
60
                default:
61
                    b = 0;
62
            }
63
            var st_temp;
64
            for (st_temp = shot_total_pre; st_temp > 3; st_temp -= 3)
65
                b += b_inc;
66
            switch (st_temp)
67
            {
68
                case 3:
69
                    b += b_inc;
70
                    break;
71
                case 2:
72
                    b += (b_inc * 0.5);
73
                    break;
74
                default:
75
                    b += 0;
76
            }
77
            global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + r) * b);
78
            break;
79
        case "Revolver Multi":
80
            global.attacking_damage_stat_betrayal = global.current_hp_enemy;
81
            global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 3.5);
82
            r = random_range(0, 2);
83
            b = 0;
84
            var b_inc = 0.5833333333333334;
85
            var st_temp;
86
            for (st_temp = shot_total; st_temp > 3; st_temp -= 3)
87
                b += b_inc;
88
            switch (st_temp)
89
            {
90
                case 3:
91
                    b += b_inc;
92
                    break;
93
                case 2:
94
                    b += (b_inc / 2);
95
                    break;
96
                default:
97
                    b += 0;
98
            }
99
            for (st_temp = shot_total_pre; st_temp > 3; st_temp -= 3)
100
                b += b_inc;
101
            switch (st_temp)
102
            {
103
                case 3:
104
                    b += b_inc;
105
                    break;
106
                case 2:
107
                    b += (b_inc / 2);
108
                    break;
109
                default:
110
                    b += 0;
111
            }
112
            show_debug_message(b);
113
            global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + r) * b);
114
            break;
115
        default:
116
            global.attacking_damage_stat_betrayal = global.current_hp_enemy;
117
            global.attacking_damage_stat_critical = round((((global.player_weapon_attack + global.player_weapon_modifier_attack + global.player_attack) - global.enemy_defense_stat) + 2) * 2.2);
118
            r = random_range(0, 2);
119
            if (x == 319)
120
                b = 2.2;
121
            else
122
                b = abs(x - 319) / (obj_target_battle.sprite_width / 2);
123
            global.attacking_damage_stat = round((((global.player_weapon_attack + global.player_attack) - global.enemy_defense_stat) + r) * b);
124
    }
125
    if (global.attacking_damage_cap >= 0)
126
    {
127
        if (global.attacking_damage_stat > global.attacking_damage_cap)
128
            global.attacking_damage_stat = global.attacking_damage_cap;
129
        if (global.attacking_damage_stat_critical > global.attacking_damage_cap)
130
            global.attacking_damage_stat_critical = global.attacking_damage_cap;
131
    }
132
    if (global.attacking_damage_stat < 5)
133
        global.attacking_damage_stat = 5;
134
    if (global.attacking_damage_stat_critical < 5)
135
        global.attacking_damage_stat_critical = 5;
136
    if (button_pressed == true)
137
    {
138
        if (global.enemy_sparing == true && global.enemy_vulnerable == true)
139
        {
140
            global.last_hp_enemy = global.current_hp_enemy;
141
            global.current_hp_enemy = 0;
142
            global.enemy_betrayed = true;
143
            damage_type = "betrayed";
144
            instance_create(global.enemy_damage_x, global.enemy_damage_y, obj_text_damage_count);
145
            audio_play_sound(snd_monster_damage_hit_critical, 20, false);
146
        }
147
        else if (global.enemy_vulnerable == true)
148
        {
149
            if ((arg0 == "Knife Single" && x == 319) || ((arg0 == "Gun Single" || arg0 == "Revolver Single") && b == 3.5) || ((arg0 == "Gun Multi" || arg0 == "Revolver Multi") && b == 3.5) || global.current_hp_enemy <= global.attacking_damage_stat_critical)
150
            {
151
                global.last_hp_enemy = global.current_hp_enemy;
152
                global.current_hp_enemy -= global.attacking_damage_stat_critical;
153
                damage_type = "critical";
154
                instance_create(global.enemy_damage_x, global.enemy_damage_y, obj_text_damage_count);
155
                audio_play_sound(snd_monster_damage_hit_critical, 20, false);
156
            }
157
            else
158
            {
159
                global.last_hp_enemy = global.current_hp_enemy;
160
                global.current_hp_enemy -= global.attacking_damage_stat;
161
                damage_type = "normal";
162
                instance_create(global.enemy_damage_x, global.enemy_damage_y, obj_text_damage_count);
163
                audio_play_sound(snd_monster_damage_hit, 20, false);
164
            }
165
        }
166
        else
167
        {
168
            instance_create(global.enemy_damage_x, global.enemy_damage_y, obj_text_miss);
169
        }
170
    }
171
    else
172
    {
173
        instance_create(global.enemy_damage_x, global.enemy_damage_y, obj_text_miss);
174
    }
175
    instance_create(0, 0, obj_battle_enemy_attacking_code);
176
    if (instance_exists(obj_text_damage_count))
177
    {
178
        instance_create(obj_text_damage_count.x - 52, obj_text_damage_count.y + 26, obj_battle_hp_current_enemy_attacking);
179
        instance_create(obj_text_damage_count.x - 52, obj_text_damage_count.y + 26, obj_battle_hp_previous_enemy_attacking);
180
        instance_create(obj_text_damage_count.x - 52, obj_text_damage_count.y + 26, obj_battle_hp_max_enemy_attacking);
181
    }
182
    scr_determine_can_display_damage_ui
scr_determine_can_display_damage_ui

function scr_determine_can_display_damage_ui(arg0) { hp_ui_alpha = 1; damage_ui_alpha = 1; miss_ui_alpha = 1; if (arg0 == 1) { var game_mode = global.game_mode; var battle_enemy_name = global.battle_enemy_name; if (global.game_mode == "customs") { switch (battle_enemy_name) { default: } } else if (global.game_mode == "yellow") { switch (battle_enemy_name) { case "dummy training pacifist": hp_ui_alpha = 0; damage_ui_alpha = 0; break; default: } } } if (arg0 == 2) { var game_mode = global.game_mode; var battle_enemy_name = global.battle_enemy_name_2; if (global.game_mode == "customs") { switch (battle_enemy_name) { default: } } else if (global.game_mode == "yellow") { switch (battle_enemy_name) { default: } } } if (arg0 == 3) { var game_mode = global.game_mode; var battle_enemy_name = global.battle_enemy_name_3; if (global.game_mode == "customs") { switch (battle_enemy_name) { default: } } else if (global.game_mode == "yellow") { switch (battle_enemy_name) { default: } } } if (instance_exists(obj_battle_hp_enemy_attacking_parent)) { with (obj_battle_hp_enemy_attacking_parent) image_alpha = obj_target_bar_battle.hp_ui_alpha; } if (instance_exists(obj_text_damage_count)) { with (obj_text_damage_count) image_alpha = obj_target_bar_battle.damage_ui_alpha; } if (instance_exists(obj_text_miss)) { with (obj_text_miss) image_alpha = obj_target_bar_battle.miss_ui_alpha; } }
(1);
183
    if (global.current_hp_enemy <= global.attacking_damage_stat_critical && instance_exists(obj_text_damage_count))
184
        global.enemy_low_hp = true;
185
    if (instance_exists(obj_text_fighting_parent))
186
        script_execute(scr_determine_attack_bonus);
187
}