Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_npc_nubert_Step_0

(view raw script w/o annotations or w/e)
1
if (!entered_zone)
2
{
3
    if (point_in_rectangle(obj_mainchara.x, obj_mainchara.y, nubert_marker.x - 80, nubert_marker.y - 80, nubert_marker.x + (sprite_get_width(nubert_marker.sprite_index) * 2) + 80, nubert_marker.y + (sprite_get_height(nubert_marker.sprite_index) * 2) + 80))
4
    {
5
        entered_zone = true;
6
        exited_zone = false;
7
        if (!arrive)
8
            arrive = true;
9
    }
10
}
11
else if (!point_in_rectangle(obj_mainchara.x, obj_mainchara.y, nubert_marker.x - 80, nubert_marker.y - 80, nubert_marker.x + (sprite_get_width(nubert_marker.sprite_index) * 2) + 80, nubert_marker.y + (sprite_get_height(nubert_marker.sprite_index) * 2) + 80))
12
{
13
    exited_zone = true;
14
    entered_zone = false;
15
}
16
if (exited_zone)
17
{
18
    if (global.interact == 0 && !d_ex() && arrive)
19
        arrive_start = true;
20
}
21
if (arrive_start)
22
{
23
    arrive_timer++;
24
    if (arrive_timer == 1)
25
    {
26
        enable_collider();
27
        with (nubert_marker)
28
        {
29
            sprite_index = spr_npc_nubert_hole_arrive;
30
            image_index = 0;
31
            image_speed = 0.2;
32
        }
33
    }
34
    if (arrive_timer == 30)
35
    {
36
        with (nubert_marker)
37
            image_speed = 0;
38
        enable_readable();
39
    }
40
    if (arrive_timer >= 270 && !d_ex() && global.interact == 0)
41
    {
42
        leave = true;
43
        arrive_start = false;
44
        arrive_timer = 0;
45
        arrive = false;
46
    }
47
}
48
if (leave)
49
{
50
    leave_timer++;
51
    if (leave_timer == 1)
52
    {
53
        disable_readable();
54
        nubert_marker.sprite_index = spr_npc_nubert_hole_leave;
55
        nubert_marker.image_index = 0;
56
        nubert_marker.image_speed = 0.2;
57
    }
58
    if (leave_timer == 30)
59
    {
60
        disable_collider();
61
        nubert_marker.image_speed = 0;
62
        leave_timer = 0;
63
        leave = false;
64
        move_nubert = true;
65
        exited_zone = true;
66
        entered_zone = false;
67
    }
68
}
69
if (move_nubert)
70
{
71
    move_nubert = false;
72
    spawn_point = locations[irandom(array_length_1d(locations) - 1)];
73
    nubert_marker.x = spawn_point.x;
74
    nubert_marker.y = spawn_point.y;
75
    with (nubert_marker)
76
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
77
}