Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_susiezilla_shadowguy_Step_0

(view raw script w/o annotations or w/e)
1
if (state != UnknownEnum.Value_7)
2
{
3
    px = 0;
4
    py = 0;
5
}
6
if (state != lastState)
7
    event_user(0);
8
if (state == UnknownEnum.Value_0)
9
{
10
}
11
else if (state == UnknownEnum.Value_1)
12
{
13
    if (x < (camerax() + 100))
14
        px = 6;
15
    else if (x > (camerax() + 540))
16
        px = -6;
17
    else
18
        state = UnknownEnum.Value_2;
19
}
20
else if (state == UnknownEnum.Value_2)
21
{
22
    var _susieDistance = abs(obj_susiezilla.x - x);
23
    var _susieYDiff = abs(obj_susiezilla.y - y);
24
    if (shuffleCount == 0)
25
    {
26
        if (_susieDistance < 80 && _susieYDiff <= 10)
27
        {
28
            state = UnknownEnum.Value_5;
29
            exit;
30
        }
31
        else if (_susieDistance > 60)
32
        {
33
            px = sign(obj_susiezilla.x - x) * 6;
34
        }
35
        if (_susieDistance < 400 && _susieYDiff > 10)
36
            py = sign(obj_susiezilla.y - y) * 3;
37
    }
38
    else
39
    {
40
    }
41
    if (px != 0)
42
        image_xscale = 2 * sign(px);
43
}
44
else if (state == UnknownEnum.Value_4)
45
{
46
    sprite_index = spr_susiezilla_shadowguy_punch;
47
    image_speed = 0;
48
    if (con == 0)
49
    {
50
        image_index = 0;
51
        timer++;
52
        if (timer >= 5)
53
        {
54
            con++;
55
            timer = 0;
56
        }
57
    }
58
    if (con == 1)
59
    {
60
        image_index = 1;
61
        timer++;
62
        if (timer >= 5)
63
        {
64
            con++;
65
            timer = 0;
66
        }
67
    }
68
    if (con == 2)
69
    {
70
        image_index = 2;
71
        timer++;
72
        if (punchCount < 2 && timer >= 10)
73
        {
74
            punchCount++;
75
            con = 0;
76
            timer = 0;
77
        }
78
        else if (punchCount == 2 && timer >= 20)
79
        {
80
            con = 0;
81
            timer = 0;
82
            state = UnknownEnum.Value_2;
83
        }
84
    }
85
}
86
else if (state == UnknownEnum.Value_5)
87
{
88
    sprite_index = spr_susiezilla_shadowguy_kick;
89
    image_speed = 0;
90
    if (con == 0)
91
    {
92
        image_index = 0;
93
        timer++;
94
        if (timer >= 11)
95
        {
96
            con++;
97
            timer = 0;
98
        }
99
    }
100
    if (con == 1)
101
    {
102
        image_index = 1;
103
        timer++;
104
        if (timer == 1)
105
        {
106
            snd_stop(snd_motor_upper_quick);
107
            snd_play_pitch(snd_motor_upper_quick, 1.3);
108
            if (image_xscale > 0)
109
                hspeed = 16;
110
            else
111
                hspeed = -16;
112
            friction = 2;
113
        }
114
        if (timer >= 5)
115
        {
116
            con++;
117
            timer = 0;
118
        }
119
    }
120
    if (con == 2)
121
    {
122
        image_index = 0;
123
        timer++;
124
        if (punchCount == 0 && timer >= 20)
125
        {
126
            con = 0;
127
            timer = 0;
128
            state = UnknownEnum.Value_2;
129
        }
130
    }
131
}
132
else if (state == UnknownEnum.Value_3)
133
{
134
}
135
else if (state == UnknownEnum.Value_6)
136
{
137
    recoil += (timer * -sign(image_xscale));
138
    timer -= 1;
139
    if (sign(recoil) != -sign(image_xscale))
140
    {
141
        recoil = 0;
142
        timer = 0;
143
        con = 0;
144
        sprite_index = spr_susiezilla_shadowguy_idle;
145
        state = UnknownEnum.Value_0;
146
        state = UnknownEnum.Value_2;
147
    }
148
}
149
else if (state == UnknownEnum.Value_7)
150
{
151
    if (con < 2)
152
    {
153
        height -= fall_speed;
154
        fall_speed += 1;
155
        if (height <= 0)
156
        {
157
            height = 0;
158
            if (con < 1)
159
                fall_speed *= -0.5;
160
            else
161
                fall_speed = 0;
162
            _shake = instance_create(x, y, obj_shake);
163
            if (i_ex(_shake))
164
            {
165
                _shake.shakex = 0;
166
                if (con > 0)
167
                    _shake.shakey = 2;
168
            }
169
            if (con == 0)
170
                image_index++;
171
            con++;
172
            snd_play(snd_screenshake);
173
        }
174
    }
175
    else if (con == 2)
176
    {
177
        px = 0;
178
        timer++;
179
        if (timer >= 10)
180
            visible = timer % 2;
181
        if (timer >= 20)
182
            instance_destroy();
183
    }
184
}
185
x += px;
186
y += py;
187
if (px != 0 && state != UnknownEnum.Value_7 && state != UnknownEnum.Value_6)
188
    image_xscale = sign(px) * 2;
189
190
enum UnknownEnum
191
{
192
    Value_0,
193
    Value_1,
194
    Value_2,
195
    Value_3,
196
    Value_4,
197
    Value_5,
198
    Value_6,
199
    Value_7
200
}