Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_enemy_attack_bowll_bull_generator_Create_0

(view raw script w/o annotations or w/e)
1
box = 3154;
2
c_total = 8;
3
c_distance = 5;
4
c_sectors = 4;
5
c_width = 33;
6
c_spacing = floor(0.5 + ((box.sprite_width - 10 - (c_width * c_sectors)) / (c_sectors + 1)));
7
end_alarm = 20;
8
no_loop_alarm = false;
9
random_list = ds_list_create();
10
for (i = 1; i < (4 * c_sectors); i++)
11
    ds_list_add(random_list, i);
12
ds_list_shuffle(random_list);
13
i_add = 0;
14
for (i = 0; i < c_total; i++)
15
{
16
    c_value = ds_list_find_value(random_list, i + i_add);
17
    if (i > 0)
18
    {
19
        var increment_i = true;
20
        while (increment_i == true)
21
        {
22
            increment_i = false;
23
            for (j = 0; j < i; j++)
24
            {
25
                if (abs(c_value_store[j] - c_value) == (2 * c_sectors))
26
                {
27
                    increment_i = true;
28
                    break;
29
                }
30
            }
31
            if (increment_i == true)
32
            {
33
                i_add += 1;
34
                c_value = ds_list_find_value(random_list, i + i_add);
35
            }
36
        }
37
    }
38
    c_value_store[i] = c_value;
39
    c_direction = 1;
40
    while (c_value > c_sectors)
41
    {
42
        c_direction += 1;
43
        c_value -= c_sectors;
44
    }
45
    var c_sub = c_value - 1;
46
    var c_disjoint = 20 + (c_spacing * c_value) + (c_width * c_sub);
47
    switch (c_direction)
48
    {
49
        case 1:
50
            cape_dir = 0;
51
            instance_create(box.bbox_right + c_distance, box.bbox_top + c_disjoint, obj_battle_enemy_attack_bowll_bull_cape);
52
            break;
53
        case 2:
54
            cape_dir = 90;
55
            instance_create(box.bbox_left + c_disjoint, box.bbox_top - c_distance, obj_battle_enemy_attack_bowll_bull_cape);
56
            break;
57
        case 3:
58
            cape_dir = 180;
59
            instance_create(box.bbox_left - c_distance, box.bbox_top + c_disjoint, obj_battle_enemy_attack_bowll_bull_cape);
60
            break;
61
        case 4:
62
            cape_dir = 270;
63
            instance_create(box.bbox_left + c_disjoint, box.bbox_bottom + c_distance, obj_battle_enemy_attack_bowll_bull_cape);
64
            break;
65
    }
66
}
67
ds_list_destroy(random_list);