Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_ceroba_attack_bullet_trail_mask_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
var battle_box = 3154;
4
scr_enemy_attack_bullet_hit
scr_enemy_attack_bullet_hit

function scr_enemy_attack_bullet_hit() { if (live_call()) return global.live_result; if (variable_instance_exists(id, "bullet_hit_draw_timer")) { if (bullet_hit_draw_timer > 0) bullet_hit_draw_timer -= 1; } var collider_id = instance_place(x, y, obj_heart_yellow_shot); if (collider_id != -4) { var collider_object_index = collider_id.object_index; instance_create_depth(collider_id.x, collider_id.bbox_top, -999, obj_heart_yellow_shot_destroy); if (collider_object_index == 690) { if (object_index == obj_ceroba_phase_2_bell) instance_destroy(collider_id); if (variable_instance_exists(id, "collider_id_last") && collider_id_last == collider_id) exit; if (collider_object_index == 690) collider_id_last = collider_id; } else if (collider_object_index == 2561) { if (variable_instance_exists(id, "collider_id_last") && collider_id_last == collider_id) exit; collider_id_last = collider_id; } else if (!variable_instance_exists(id, "collider_id_last") || collider_id != collider_id_last) { collider_id.alarm[0] = 1; collider_id.image_alpha = 0; collider_id_last = collider_id; } audio_play_sound(snd_arc_hit, 0.1, 0); if (variable_instance_exists(id, "bullet_hit_points")) { bullet_hit_draw_timer = 5; if (collider_object_index == 690) bullet_hit_points -= 3; else bullet_hit_points -= 1; if (bullet_hit_points <= 0) bullet_destroy_self = true; } return true; } }
();
5
if (bullet_destroy_self)
6
{
7
    instance_destroy();
8
    instance_create_depth(x, y, depth, obj_ceroba_attack_fire_mask_destroy);
9
}
10
switch (scene)
11
{
12
    case 0:
13
        image_alpha += 0.1;
14
        if (image_alpha >= 1)
15
            scene++;
16
        break;
17
    case 1:
18
        if (speed < target_speed)
19
            speed += 1;
20
        var target_distance = battle_box.sprite_height;
21
        if (direction == 0 || direction == 180)
22
            target_distance = battle_box.sprite_width;
23
        dist_travelled += speed;
24
        if (dist_travelled >= (target_distance / bullet_count))
25
        {
26
            dist_travelled = 0;
27
            var fireball = instance_create_depth(x, y, depth + 1, obj_ceroba_attack_bullet_trail_fireball);
28
            fireball.alarm[0] = 30;
29
        }
30
        if (point_distance(xstart, ystart, x, y) >= target_distance)
31
            scene++;
32
        break;
33
    case 2:
34
        image_alpha -= 0.2;
35
        if (image_alpha <= 0)
36
            instance_destroy();
37
        break;
38
}