Undertale script viewer

← back to main script listing

gml_Object_obj_6gun_Step_0

(view raw script w/o annotations or w/e)
1
if (con == 1)
2
{
3
    cr[0] = instance_create((obj_vsflowey_heart.x - rr) + random(rr * 2), (obj_vsflowey_heart.y - rr) + random(rr * 2), obj_6gun_crosshair);
4
    if (type == 1)
5
    {
6
        with (cr[0])
7
            sprite_index = spr_6gun_crosshair_heart;
8
    }
9
    con = 2;
10
    alarm[4] = 6;
11
}
12
if (con == 3)
13
{
14
    cr[1] = instance_create((obj_vsflowey_heart.x - rr) + random(rr * 2), (obj_vsflowey_heart.y - rr) + random(rr * 2), obj_6gun_crosshair);
15
    if (type == 1)
16
    {
17
        with (cr[1])
18
            sprite_index = spr_6gun_crosshair_heart;
19
    }
20
    con = 4;
21
    alarm[4] = 6;
22
}
23
if (con == 5)
24
{
25
    cr[2] = instance_create((obj_vsflowey_heart.x - rr) + random(rr * 2), (obj_vsflowey_heart.y - rr) + random(rr * 2), obj_6gun_crosshair);
26
    if (type == 1)
27
    {
28
        with (cr[2])
29
            sprite_index = spr_6gun_crosshair_heart;
30
    }
31
    if (obj_time.down)
32
        cr[2].y += 100;
33
    if (obj_time.up)
34
        cr[2].y -= 100;
35
    if (obj_time.right)
36
        cr[2].x += 100;
37
    if (obj_time.left)
38
        cr[2].x -= 100;
39
    con = 6;
40
    no = 0;
41
    alarm[4] = 3;
42
}
43
if (con == 7)
44
{
45
    dgoal = point_direction(x, y, cr[no].x, cr[no].y);
46
    curdir = image_angle;
47
    idealdir = dgoal;
48
    facingMinusTarget = curdir - idealdir;
49
    angleDiff = facingMinusTarget;
50
    if (abs(facingMinusTarget) > 180)
51
    {
52
        if (curdir > idealdir)
53
            angleDiff = -1 * ((360 - curdir) + idealdir);
54
        else
55
            angleDiff = (360 - idealdir) + curdir;
56
    }
57
    leastAccurateAim = 5;
58
    if (abs(angleDiff) > leastAccurateAim)
59
    {
60
        dirspeed = 1;
61
        angleDiff2 = abs(angleDiff);
62
        if (angleDiff2 > 10)
63
            dirspeed = 5;
64
        if (angleDiff2 > 20)
65
            dirspeed = 8;
66
        if (angleDiff2 > 30)
67
            dirspeed = 12;
68
        if (angleDiff2 > 40)
69
            dirspeed = 15;
70
        if (angleDiff2 > 50)
71
            dirspeed = 18;
72
        if (angleDiff2 > 60)
73
            dirspeed = 24;
74
        if (angleDiff2 > 70)
75
            dirspeed = 30;
76
        if (angleDiff2 > 80)
77
            dirspeed = 36;
78
        if (angleDiff2 > 90)
79
            dirspeed = 42;
80
        if (angleDiff2 > 100)
81
            dirspeed = 50;
82
        if (angleDiff < 0)
83
            dirspeed = -dirspeed;
84
        image_angle -= dirspeed;
85
    }
86
    else
87
    {
88
        con = 8;
89
        image_angle = dgoal;
90
        alarm[4] = 1;
91
    }
92
}
93
if (con == 9)
94
{
95
    if (num != 23)
96
    {
97
        bl = instance_create(x, y, obj_6gun_bullet);
98
        bl.direction = dgoal;
99
        bl.image_angle = dgoal;
100
        bl.speed = 30;
101
        if (type == 1)
102
        {
103
            with (bl)
104
                event_user(4);
105
        }
106
    }
107
    else
108
    {
109
        bl = instance_create(x, y, obj_6gun_act);
110
        bl.direction = dgoal;
111
        bl.image_angle = dgoal;
112
        bl.speed = 20;
113
    }
114
    num += 1;
115
    with (cr[no])
116
        instance_destroy();
117
    if (no < 2)
118
    {
119
        no += 1;
120
        con = 6;
121
        alarm[4] = 3;
122
    }
123
    else
124
    {
125
        con = 1;
126
    }
127
}
128
if (shakeboy == 1)
129
{
130
    shake += 0.2;
131
    x += (random(shake) - random(shake));
132
    y += (random(shake) - random(shake));
133
}