Deltarune script viewer

← back to main script listing

gml_Object_obj_sneo_wall_controller_Other_10

(view raw script w/o annotations or w/e)
1
if (type < 3)
2
    timer++;
3
else
4
    timer += sinespeed;
5
if (sinespeed != sinetargetspeed)
6
    sinespeed = scr_movetowards
scr_movetowards

function scr_movetowards(arg0, arg1, arg2) { if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); }
(sinespeed, sinetargetspeed, 0.05);
7
if (sinetargetspeed < 0)
8
    exit;
9
if (type == 0)
10
{
11
    if (timer >= 25)
12
    {
13
        wallsize = 4;
14
        breakspot = floor(random(wallsize));
15
        wallamt = 1;
16
        if (floor(random(6)) == 0)
17
            wallamt = 4;
18
        for (j = 0; j < wallamt; j++)
19
        {
20
            for (i = 0; i < wallsize; i++)
21
            {
22
                bullet[i] = instance_create(xx + 470 + (25 * j), (yy + (__view_get(e__VW.HView, 0) / 2) + (i * 25)) - 100, obj_basicbullet_sneo);
23
                bullet[i].sprite_index = spr_sneo_bullet_box;
24
                bullet[i].image_xscale = 1;
25
                bullet[i].image_yscale = 1.2;
26
                bullet[i].hspeed = -1;
27
                bullet[i].friction = -0.1;
28
                if (breakspot == i)
29
                {
30
                    bullet[i].destroyable = 1;
31
                    bullet[i].sprite_index = spr_sneo_crew;
32
                    bullet[i].image_speed = 0.5;
33
                    bullet[i].image_yscale = 1;
34
                }
35
            }
36
        }
37
        timer = 0 - ((wallamt - 1) * 8);
38
    }
39
}
40
if (type == 1)
41
{
42
    if (timer >= 25)
43
    {
44
        breakspot1 = choose(1, 2, 3);
45
        breakspot2 = choose(0, 4, 5);
46
        wallsize = 6;
47
        wallamt = 1;
48
        vspeed = choose(1.2, 0, 0, -2, -1.2, 2);
49
        if (floor(random(6)) == 0)
50
        {
51
            wallamt = 2;
52
            if (vspeed == 0)
53
                wallamt = 3;
54
        }
55
        for (j = 0; j < wallamt; j++)
56
        {
57
            for (i = 0; i < wallsize; i++)
58
            {
59
                bullet[i] = instance_create(xx + 470 + (25 * j), (yy + (__view_get(e__VW.HView, 0) / 2) + (i * 25)) - 100 - 25, obj_sneo_wallbullet);
60
                bullet[i].sprite_index = spr_sneo_bullet_box;
61
                bullet[i].image_xscale = 1;
62
                bullet[i].image_yscale = 1.2;
63
                bullet[i].hspeed = -1;
64
                bullet[i].falsevspeed = vspeed;
65
                bullet[i].loop = 1;
66
                bullet[i].friction = -0.1;
67
                if (breakspot1 == i || breakspot2 == i)
68
                {
69
                    bullet[i].destroyable = 1;
70
                    bullet[i].image_blend = #00A2E8;
71
                    bullet[i].sprite_index = spr_sneo_crew;
72
                    bullet[i].image_speed = 0.5;
73
                    bullet[i].image_yscale = 1;
74
                }
75
            }
76
        }
77
        timer = 0 - ((wallamt - 1) * 8);
78
    }
79
}
80
if (type == 2)
81
{
82
    if (timer >= 25)
83
    {
84
        breakspot1 = choose(1, 2, 3);
85
        breakspot2 = choose(0, 4);
86
        wallsize = 5;
87
        wallamt = 1;
88
        vspeed = choose(1.2, 0, 0, -2, -1.2, 2);
89
        if (floor(random(6)) == 0)
90
        {
91
            wallamt = 2;
92
            if (vspeed == 0)
93
                wallamt = 3;
94
        }
95
        for (j = 0; j < wallamt; j++)
96
        {
97
            for (i = 0; i < wallsize; i++)
98
            {
99
                bullet[i] = instance_create(xx + 470 + (25 * j), (yy + (__view_get(e__VW.HView, 0) / 2) + (i * 30)) - 100 - 30, obj_sneo_wallbullet);
100
                bullet[i].sprite_index = spr_sneo_bullet_box;
101
                bullet[i].image_xscale = 1;
102
                bullet[i].image_yscale = 1.5;
103
                bullet[i].hspeed = -1;
104
                bullet[i].falsevspeed = vspeed;
105
                bullet[i].loop = 1;
106
                bullet[i].friction = -0.1;
107
                if (breakspot1 == i || breakspot2 == i)
108
                {
109
                    bullet[i].destroyable = 1;
110
                    bullet[i].image_blend = #00A2E8;
111
                    bullet[i].sprite_index = spr_sneo_crew;
112
                    bullet[i].image_speed = 0.5;
113
                    bullet[i].image_yscale = 1;
114
                }
115
            }
116
        }
117
        timer = 0 - ((wallamt - 1) * 8);
118
    }
119
}
120
if (init == 0 && type == 3)
121
{
122
    for (j = 0; j < spawncount; j++)
123
    {
124
        for (i = 0; i < 2; i++)
125
        {
126
            bullet[i] = instance_create(obj_growtangle.x + 150, (yy + (__view_get(e__VW.HView, 0) / 2) + (i * 5 * 40)) - 170, obj_sneo_staticwall);
127
            bullet[i].sprite_index = spr_sneo_bullet_box;
128
            bullet[i].image_xscale = 1.25;
129
            bullet[i].image_yscale = 1.6;
130
            bullet[i].siner = waittime * j;
131
        }
132
    }
133
    init = 1;
134
}
135
if (type == 3)
136
{
137
    if (timer >= waittime && made < spawncount)
138
    {
139
        if (breakspotpreviouscon > 3)
140
            breakspotpreviouscon = 0;
141
        if (breakspotpreviouscon == 0 || breakspotpreviouscon == 1)
142
        {
143
            breakspotconsecutive = 2 + irandom(2);
144
            if (breakspotpreviouscon == 0)
145
            {
146
                vspeed = -1.5;
147
                breakspot1 = breakspotconsecutive - 1;
148
                breakspot2 = breakspotconsecutive;
149
                breakspot3 = breakspotconsecutive + 2;
150
                breakspot4 = breakspotconsecutive + 3;
151
            }
152
            if (breakspotpreviouscon == 1)
153
            {
154
                vspeed = 2;
155
                breakspotconsecutive = irandom(2);
156
                breakspot1 = breakspotconsecutive;
157
                breakspot2 = breakspotconsecutive + 1;
158
                breakspot3 = breakspotconsecutive + 3;
159
                breakspot4 = breakspotconsecutive + 4;
160
            }
161
        }
162
        if (breakspotpreviouscon == 2 || breakspotpreviouscon == 3)
163
        {
164
            breakspotconsecutive = 1 + irandom(4);
165
            vspeed = 0;
166
            var a = irandom(1);
167
            breakspot1 = 1 + a;
168
            breakspot2 = 2 + a;
169
            breakspot3 = 3 + a;
170
            breakspot4 = 2 + a;
171
            if (breakspotpreviouscon == 3)
172
            {
173
                breakspot1 = 3 + a;
174
                breakspot2 = 4 + a;
175
                breakspot3 = 5 + a;
176
                breakspot4 = 4 + a;
177
            }
178
        }
179
        breakspotpreviouscon++;
180
        breakspotpreviouscon++;
181
        wallsize = 7;
182
        wallamt = 1;
183
        if (irandom(5) == 0)
184
        {
185
            wallamt = 2;
186
            if (vspeed == 1)
187
                wallamt = 3;
188
        }
189
        var sineroffset = (timer - waittime) + scr_movetowards
scr_movetowards

function scr_movetowards(arg0, arg1, arg2) { if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); }
(sinespeed, sinetargetspeed, 0.05);
190
        for (i = 0; i < wallsize; i++)
191
        {
192
            bullet[i] = instance_create(obj_growtangle.x + 150, (yy + (__view_get(e__VW.HView, 0) / 2) + (i * 30)) - 100 - 60, obj_sneo_wallbullet);
193
            bullet[i].sprite_index = spr_sneo_mail;
194
            bullet[i].image_xscale = 1;
195
            bullet[i].image_yscale = 1.5;
196
            bullet[i].falsevspeed = vspeed;
197
            bullet[i].loop = 1;
198
            bullet[i].siner = sineroffset;
199
            if (breakspot1 == i || breakspot2 == i || breakspot3 == i || breakspot4 == i)
200
            {
201
                bullet[i].destroyable = 1;
202
                bullet[i].sprite_index = spr_sneo_crew_ez_hitbox;
203
                bullet[i].image_speed = 0.5;
204
                bullet[i].image_yscale = 1;
205
            }
206
        }
207
        timer -= waittime;
208
        made++;
209
    }
210
    if (difficulty == 2)
211
    {
212
        lilguytimer++;
213
        if (lilguytimer == 55)
214
        {
215
            instance_create(x, y, obj_sneo_guymaker);
216
            obj_sneo_guymaker.alarm[0] = 30;
217
        }
218
    }
219
}
220
if (type == 4)
221
{
222
    for (j = 0; j < spawncount; j++)
223
    {
224
        breakspot1 = choose(1, 2, 3);
225
        breakspot2 = choose(0, 4);
226
        wallsize = 5;
227
        wallamt = 1;
228
        vspeed = choose(1.2, 0, -2, -1.2, 2);
229
        if (irandom(5) == 0)
230
        {
231
            wallamt = 2;
232
            if (vspeed == 1)
233
                wallamt = 3;
234
        }
235
        for (i = 0; i < wallsize; i++)
236
        {
237
            bullet[i] = instance_create(obj_growtangle.x + 150, (yy + (__view_get(e__VW.HView, 0) / 2) + (i * 30)) - 100 - 30, obj_sneo_wallbullet);
238
            bullet[i].sprite_index = spr_sneo_bullet_box;
239
            bullet[i].image_xscale = 1;
240
            bullet[i].image_yscale = 1.5;
241
            bullet[i].falsevspeed = vspeed;
242
            bullet[i].siner = (j / spawncount) * 2 * pi * 20;
243
            bullet[i].loop = 1;
244
            if (breakspot1 == i || breakspot2 == i)
245
            {
246
                bullet[i].destroyable = 1;
247
                bullet[i].sprite_index = spr_sneo_crew;
248
                bullet[i].image_speed = 0.5;
249
                bullet[i].image_yscale = 1;
250
                bullet[i].image_blend = #00A2E8;
251
            }
252
        }
253
        type = 99;
254
    }
255
}
256
257
enum e__VW
258
{
259
    XView,
260
    YView,
261
    WView,
262
    HView,
263
    Angle,
264
    HBorder,
265
    VBorder,
266
    HSpeed,
267
    VSpeed,
268
    Object,
269
    Visible,
270
    XPort,
271
    YPort,
272
    WPort,
273
    HPort,
274
    Camera,
275
    SurfaceID
276
}