Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_kris_fountain_Draw_0

(view raw script w/o annotations or w/e)
1
if (active == 1)
2
{
3
    if (drawkris == 1)
4
        draw_self();
5
    if (ballcon == 1)
6
    {
7
        xballtimer += (xballtimer + 1);
8
        yballtimer++;
9
        balltimer++;
10
        cenx = x + 18;
11
        ceny = y + 57;
12
        draw_set_color(c_white);
13
        draw_ellipse(cenx - xballtimer, ceny - 1, cenx + xballtimer, ceny + 1, false);
14
        if (xballtimer >= 80)
15
        {
16
            balltimer = 0;
17
            yballtimer = 1;
18
            ballcon = 2;
19
            whitecolor = 16777215;
20
        }
21
    }
22
    if (ballcon == 2)
23
    {
24
        balltimer++;
25
        if (balltimer > 90)
26
            inverttimer++;
27
        if (inverttimer >= 90)
28
            releasetimer++;
29
        if (inverttimer >= 0 && inverttimer < 60)
30
            whitecolor = merge_color(c_white, c_black, inverttimer / 60);
31
        xballtimer *= 0.5;
32
        if (releasetimer <= 0)
33
        {
34
            if (xballtimer <= 20)
35
                xballtimer = 20;
36
            if (xballtimer < (yballtimer / 6))
37
                xballtimer = yballtimer / 6;
38
            if (yballtimer >= 98)
39
                yballtimer = 99 + random(5);
40
            yballtimer *= 3;
41
        }
42
        else
43
        {
44
            yballtimer *= 3;
45
            instance_create(cenx, ceny, obj_fountainball);
46
            if (releasetimer == 1)
47
                con = 64;
48
            if (releasetimer >= 10)
49
            {
50
                ballcon = 3;
51
                fountain_sound = audio_play_sound(snd_deep_noise, 50, 1);
52
            }
53
        }
54
        draw_set_color(c_white);
55
        draw_ellipse(cenx - xballtimer - 2, ceny - yballtimer, cenx + xballtimer + 2, ceny + 1, false);
56
        draw_set_color(whitecolor);
57
        draw_ellipse(cenx - xballtimer, ceny - yballtimer, cenx + xballtimer, ceny + 1, false);
58
        if (releasetimer <= 0)
59
        {
60
            if (balltimer >= 6)
61
                draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, 0.3 - (1 / ((balltimer / 2) + 1)));
62
            if (inverttimer >= 1)
63
                draw_sprite_ext(spr_kris_make_fountain_invert, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, 1 - (30 / inverttimer));
64
        }
65
        if (releasetimer <= 0)
66
        {
67
            if ((balltimer % 5) == 0)
68
            {
69
                afterimage = instance_create(cenx - 4, ceny + 4, obj_afterimage);
70
                afterimage.sprite_index = spr_kris_make_fountain_flash;
71
                afterimage.image_speed = 0;
72
                afterimage.image_xscale = 4;
73
                afterimage.image_yxscale = 0.5;
74
                afterimage.image_alpha = 0.8;
75
            }
76
        }
77
        with (obj_afterimage)
78
        {
79
            image_xscale *= (1.15 + random(0.02));
80
            image_yscale *= (1.05 + random(0.02));
81
            y += 0.4;
82
            x -= 0.4;
83
        }
84
    }
85
    if (ballcon == 3)
86
    {
87
        instance_create(cenx, ceny, obj_fountainball);
88
        ceiltimer++;
89
        if (ceilheight < 120)
90
            ceilheight += (sin(ceiltimer / 18) + 0.3);
91
        if (ceilheight >= 120)
92
            ceilheight += 0.5;
93
        for (i = 0; i < 12; i++)
94
        {
95
            ceilballx[i] = ((ceiltimer + (i * 40)) % 400) + -40 + camerax();
96
            draw_sprite_ext(spr_kris_fountain_ball, 0, ceilballx[i], (ceilheight - 80) + (sin(i + (ceiltimer / 8)) * 7), 1.05, 1.05, 0, c_white, 1);
97
        }
98
        for (i = 0; i < 12; i++)
99
            draw_sprite_ext(spr_kris_fountain_ball, 0, ceilballx[i], (ceilheight - 80) + (sin(i + (ceiltimer / 8)) * 7), 1, 1, 0, c_black, 1);
100
        draw_set_color(c_black);
101
        draw_rectangle(-10, ceilheight - 80, 999, -90, false);
102
    }
103
}