Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_musicalfight_speakers_Step_0

(view raw script w/o annotations or w/e)
1
timer++;
2
if (state == 0)
3
{
4
    scale = scr_ease_out
scr_ease_out

function scr_ease_out(arg0, arg1) { if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_out_bounce(arg0, 0, 1, 1); case -2: return ease_out_elastic(arg0, 0, 1, 1); case -1: return ease_out_back(arg0, 0, 1, 1); case 0: return arg0; case 1: return sin(arg0 * 1.5707963267948966); case 2: return -arg0 * (arg0 - 2); case 6: return -power(2, -10 * arg0) + 1; case 7: arg0--; return sqrt(1 - (arg0 * arg0)); default: arg0--; if (arg1 == 4) { return -1 * (power(arg0, arg1) - 1); break; } return power(arg0, arg1) + 1; } }
(timer / tempo, -1);
5
    if (timer == tempo)
6
        state = 1;
7
}
8
if (state == 1)
9
{
10
    if (timer >= tempo)
11
    {
12
        if (beatcount == maxbeats)
13
        {
14
            state = 2;
15
            exit;
16
        }
17
        timer -= tempo;
18
        d = instance_create(x, y, obj_soundwave_effect);
19
        d.depth = obj_heart.depth + 1;
20
        d.minradius = 10;
21
        d.growtime = 45;
22
        d.fadetime = 20;
23
        d.easepower = 0;
24
        d.maxradius = 150;
25
        btimer = 0;
26
        scale = 1.25;
27
        var bulletdir = 0;
28
        for (i = 0; i < bulletsperbeat; i++)
29
        {
30
            bulletdir = (baseangle + ((i / bulletsperbeat) * 360) + random(180 / bulletsperbeat)) - (90 / bulletsperbeat);
31
            xx = x + lengthdir_x(10, bulletdir);
32
            yy = y + lengthdir_y(10, bulletdir);
33
            d = scr_bullet_create
scr_bullet_create

function scr_bullet_create(arg0, arg1, arg2) { var __newbullet = instance_create(arg0, arg1, arg2); __newbullet.damage = damage; __newbullet.target = target; if (variable_instance_exists(self, "element")) __newbullet.element = element; return __newbullet; }
(xx, yy, obj_fadingbullet);
34
            d.speed = 3;
35
            d.direction = bulletdir;
36
            d.sprite_index = spr_musical_notes;
37
            d.image_angle = random(80) - 40;
38
            if (abs(angle_difference(direction, bulletdir)) > 70)
39
                d.lifetime = 0;
40
            else
41
                d.lifetime = 60;
42
        }
43
        baseangle += (180 / bulletsperbeat);
44
        beatcount++;
45
    }
46
    if (scale > 1)
47
        scale -= 0.05;
48
}
49
else if (state == 2)
50
{
51
    scale -= 0.1;
52
    if (scale == 0)
53
        instance_destroy();
54
}
55
image_xscale = scale;
56
image_yscale = scale;