Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_elnina_snowring_Step_0

(view raw script w/o annotations or w/e)
1
gigachange = 1 - (0.2 * intensity);
2
timer++;
3
gigatimer += gigachange;
4
ultratimer++;
5
if (timer == 16)
6
{
7
    var spinny = choose(-2, 2);
8
    var sizy = 0.4 + random_range(-0.1, 0.1);
9
    var angly = irandom(360);
10
    var num = 10 - (intensity * 2);
11
    if (intensity == 4)
12
        num = 0;
13
    for (a = 0; a < num; a++)
14
    {
15
        var omega_angly = ((360 / num) * a) + random_range(-4, 4) + angly;
16
        with (
scr_fire_bullet
scr_fire_bullet

function
scr_fire_bullet(arg0, arg1, arg2, arg3, arg4, arg5 = -4, arg6 = 0, arg7 = false, arg8 = 87135)
{ var bullet; if (arg8 != 87135) bullet = instance_create_depth(arg0, arg1, arg8, arg2); else bullet = instance_create(arg0, arg1, arg2); with (bullet) { direction = arg3; speed = arg4; if (arg5 != -4) sprite_index = arg5; updateimageangle = arg6; if (arg6) image_angle = arg3; if (arg7) { with (other)
scr_bullet_inherit(other.id);
} } return bullet; } function scr_fire_bullet_colorize(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 = 0) { var bullet = instance_create(arg0, arg1, arg2); with (bullet) { direction = arg3; speed = arg4; sprite_index = arg5; image_blend = arg6; updateimageangle = arg7; if (arg7) image_angle = arg3; } return bullet; }
(x + lengthdir_x(24, omega_angly), y + lengthdir_y(24, omega_angly), obj_snowflake_ult_bullet, omega_angly, 1.5 + random_range(-0.5, 0.25), spr_elnina_snowflake))
17
        {
18
            spin = true;
19
            spinspeed = spinny;
20
            grazepoints = 2;
21
            element = 5;
22
            target = obj_dbulletcontroller.target;
23
            damage = 55;
24
            grazepoints = 3;
25
            image_xscale = sizy;
26
            image_yscale = sizy;
27
            depth = other.depth + 1;
28
            if (direction < 180)
29
                instance_destroy();
30
        }
31
    }
32
    timer = -intensity * 4;
33
}
34
if (gigatimer > -24)
35
{
36
    radius = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(radius, 60 - (15 * intensity), 0.5);
37
    x = 
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(4) + (sin(gigatimer * 0.04) * radius);
38
}
39
if (gigatimer >= 0)
40
{
41
    if (gigatimer == 0)
42
        y_anchor = y;
43
    y = y_anchor + (sin(gigatimer * 0.15) * radius * 0.1);
44
}
45
if (ultratimer == 48)
46
{
47
    var num = 3;
48
    if (intensity > 1)
49
        num = 2;
50
    if (intensity > 2)
51
        num = 1;
52
    if (intensity < 4)
53
    {
54
        for (a = 0; a < (num + 1); a++)
55
        {
56
            var angliel = 37.5 + (a * (105 / num)) + irandom_range(-5, 5);
57
            with (
scr_fire_bullet
scr_fire_bullet

function
scr_fire_bullet(arg0, arg1, arg2, arg3, arg4, arg5 = -4, arg6 = 0, arg7 = false, arg8 = 87135)
{ var bullet; if (arg8 != 87135) bullet = instance_create_depth(arg0, arg1, arg8, arg2); else bullet = instance_create(arg0, arg1, arg2); with (bullet) { direction = arg3; speed = arg4; if (arg5 != -4) sprite_index = arg5; updateimageangle = arg6; if (arg6) image_angle = arg3; if (arg7) { with (other)
scr_bullet_inherit(other.id);
} } return bullet; } function scr_fire_bullet_colorize(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 = 0) { var bullet = instance_create(arg0, arg1, arg2); with (bullet) { direction = arg3; speed = arg4; sprite_index = arg5; image_blend = arg6; updateimageangle = arg7; if (arg7) image_angle = arg3; } return bullet; }
(x + lengthdir_x(16, angliel), y + lengthdir_y(16, angliel), obj_elnina_raindrop, angliel, 10, spr_elnina_raindrop))
58
            {
59
                image_xscale = 0.25;
60
                image_yscale = 0.5;
61
                target = obj_dbulletcontroller.target;
62
                damage = 55;
63
                grazepoints = 3;
64
                element = 5;
65
                
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_xscale", 0.25, 0.5, 8);
66
                image_angle = direction;
67
                mask_index = spr_elnina_raindrop_mask;
68
                target_x = obj_heart.x + 10;
69
                target_y = obj_heart.y + 10;
70
                if (other.a == 1 || other.a == 2)
71
                    speed = 12;
72
            }
73
        }
74
    }
75
    ultratimer = -intensity * 5;
76
}
77
with (obj_regularbullet)
78
{
79
    if (sprite_index == spr_elnina_raindrop)
80
    {
81
        with (obj_regularbullet)
82
        {
83
            if (sprite_index == spr_elnina_snowflake)
84
            {
85
                if (place_meeting(x, y, other.id))
86
                    instance_destroy();
87
            }
88
        }
89
    }
90
    if (sprite_index == spr_elnina_snowflake)
91
    {
92
        if (y > (
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(3) + 70))
93
            instance_destroy();
94
    }
95
}