Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_sneo_cshot_Step_0

(view raw script w/o annotations or w/e)
1
if (!init)
2
{
3
    image_index = difficulty;
4
    if (difficulty == 1)
5
        openingoffset = 180;
6
    openingsize = 135 - (difficulty * 45);
7
    if (movementstyle == 1)
8
    {
9
        opening = 0;
10
        openingLerp = 0;
11
        lastOpening = irandom(3) * 90;
12
        if (difficulty == 1)
13
            lastOpening += 45;
14
        target_speed *= 1;
15
    }
16
    init = 1;
17
}
18
if (x >= (room_width + 100) || x <= -100 || y >= (room_height + 100) || y <= -100)
19
    instance_destroy();
20
if (hitfreeze)
21
{
22
    hitfreeze = 0;
23
    exit;
24
}
25
if (movementstyle == 0)
26
{
27
    opening += angle_speed;
28
}
29
else
30
{
31
    openingLerp += abs(angle_speed);
32
    if (openingLerp >= 90)
33
    {
34
        openingLerp -= 90;
35
        lastOpening += (90 * sign(target_speed));
36
    }
37
    opening = (
scr_ease_inout
scr_ease_inout

function
scr_ease_inout(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; if (arg1 == -3) return ease_inout_bounce(arg0, 0, 1, 1); else if (arg1 == -2) return ease_inout_elastic(arg0, 0, 1, 1); else if (arg1 == -1) return ease_inout_back(arg0, 0, 1, 1); else if (arg1 == 1) return -0.5 * cos((pi * arg0) - 1); else if (arg1 == 0) return arg0; arg0 *= 2; if (arg0 < 1) { return 0.5 *
scr_ease_in(arg0, arg1);
} else { arg0--; return 0.5 * (
scr_ease_out(arg0, arg1) + 1);
} }
(openingLerp / 90, 5) * 90 * sign(target_speed)) + lastOpening;
38
}
39
image_angle = opening + openingoffset;
40
if (!hitfreeze && angle_speed != target_speed)
41
    angle_speed = 
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); }
(angle_speed, target_speed, 2);
42
if (hit)
43
{
44
    hit = false;
45
    image_blend = c_white;
46
}