Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_power_up_fx_rouxls_Draw_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    if (pivotx == -999)
4
        pivotx = (sprite_width / 2) - (sprite_get_xoffset(sprite_index) * image_xscale);
5
    if (pivoty == -999)
6
        pivoty = (sprite_height / 2) - (sprite_get_yoffset(sprite_index) * image_yscale);
7
    init = 1;
8
    fadebg.sprite_index = spr_pixel_white;
9
    fadebg.image_blend = c_black;
10
    fadebg.image_xscale = (room_width / 4) + 20;
11
    fadebg.image_yscale = (room_height / 4) + 20;
12
    fadebg.image_alpha = 0;
13
}
14
fadebg.depth = obj_thrashmachine.depth + 2;
15
fadebg.image_alpha = remap_clamped(timer, poweruptime / 2, poweruptime - 15, 0, 0.6);
16
timer++;
17
effecttimer++;
18
if (timer == 35 || timer == 60)
19
    ring_timer = 15;
20
var centerX = x + pivotx;
21
var centerY = y + pivoty;
22
if (ring_timer > 0)
23
{
24
    draw_set_color(c_white);
25
    var __prog = 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; } }
(ring_timer / 15, 2);
26
    var __circlesize = __prog * 80;
27
    var __circlewidth = lerp(1 - __prog, 2, 5);
28
    draw_set_alpha(remap_clamped(ring_timer, 15, 10, 0, 1));
29
    scr_draw_circle_width_qb
scr_draw_circle_width_qb

function scr_draw_circle_width_qb(arg0, arg1, arg2, arg3, arg4) { var xx = arg0; var yy = arg1; var radius = arg2; var width = arg3; var steps = arg4; var h = width / 2; draw_primitive_begin(pr_trianglelist); for (i = 0; i < steps; i += 1) { draw_vertex(xx + lengthdir_x(radius - h, (360 * i) / steps), yy + lengthdir_y(radius - h, (360 * i) / steps)); draw_vertex(xx + lengthdir_x(radius + h, (360 * i) / steps), yy + lengthdir_y(radius + h, (360 * i) / steps)); draw_vertex(xx + lengthdir_x(radius + h, (360 * (i + 1)) / steps), yy + lengthdir_y(radius + h, (360 * (i + 1)) / steps)); draw_vertex(xx + lengthdir_x(radius + h, (360 * (i + 1)) / steps), yy + lengthdir_y(radius + h, (360 * (i + 1)) / steps)); draw_vertex(xx + lengthdir_x(radius - h, (360 * (i + 1)) / steps), yy + lengthdir_y(radius - h, (360 * (i + 1)) / steps)); draw_vertex(xx + lengthdir_x(radius - h, (360 * i) / steps), yy + lengthdir_y(radius - h, (360 * i) / steps)); } draw_primitive_end(); }
(centerX, centerY, __circlesize, __circlewidth, 36);
30
    draw_set_alpha(1);
31
    ring_timer--;
32
}
33
var __alpha = clamp(timer / poweruptime, 0, 1);
34
scr_draw_outline
scr_draw_outline

function scr_draw_outline(arg0, arg1, arg2) { gpu_set_fog(true, arg1, 0, 0); var __xdirA = arg0; var __xdirB = 0; var __ydirA = 0; var __ydirB = arg0; if ((image_angle % 90) != 0) { __xdirA = lengthdir_x(arg0, image_angle); __xdirB = lengthdir_x(arg0, image_angle + 90); __ydirA = lengthdir_y(arg0, image_angle + 90); __ydirB = lengthdir_y(arg0, image_angle); } draw_sprite_ext(sprite_index, image_index, x + __xdirA, y + __ydirA, image_xscale, image_yscale, image_angle, c_white, image_alpha * arg2); draw_sprite_ext(sprite_index, image_index, x - __xdirA, y - __ydirA, image_xscale, image_yscale, image_angle, c_white, image_alpha * arg2); draw_sprite_ext(sprite_index, image_index, x + __xdirB, y + __ydirB, image_xscale, image_yscale, image_angle, c_white, image_alpha * arg2); draw_sprite_ext(sprite_index, image_index, x - __xdirB, y - __ydirB, image_xscale, image_yscale, image_angle, c_white, image_alpha * arg2); gpu_set_fog(false, c_white, 0, 0); }
(2, image_blend, __alpha * 2);
35
draw_self();
36
d3d_set_fog(true, image_blend, 0, 1);
37
flashtimer++;
38
if (ripple_effect == 0 && flashtimer >= (flashspeed / 2))
39
{
40
    ripple_effect = 1;
41
    with (obj_ch2_scene21_loop.puddle)
42
    {
43
        var ripple = scr_custom_afterimage
scr_custom_afterimage

function scr_custom_afterimage(arg0) { afterimage = instance_create(x, y, arg0); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth + 1; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
(obj_power_up_afterimage);
44
        ripple.sprite_index = spr_rouxls_ripple;
45
        ripple.image_blend = #E3FF67;
46
        ripple.yrate *= 5;
47
        ripple.use_pivot = true;
48
        ripple.maxsize = clamp(1 - ((y - 90) / 45), 0.1, 2);
49
        ripple.image_speed = 0;
50
        ripple.image_index = (obj_ch2_scene21_loop.thrash.part[0] == 2) ? 1 : 0;
51
        ripple.depth = depth - 1;
52
    }
53
}
54
if (flashtimer >= flashspeed)
55
{
56
    ripple_effect = 0;
57
    flashtimer = 0;
58
    flashspeed = max(4, (flashspeed * 2) / 3);
59
}
60
var __flash = __alpha + sin((flashtimer / flashspeed) * pi);
61
if ((timer + 15) >= poweruptime)
62
    __flash = sin(((timer % 3) / 3) * pi) / 4;
63
draw_set_blend_mode(bm_add);
64
__alpha *= 0.8;
65
draw_sprite_ext(spr_rurus_aura, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, __flash / 3);
66
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, __alpha);
67
d3d_set_fog(false, c_black, 0, 0);
68
if (instance_exists(obj_thrashmachine))
69
{
70
    obj_thrashmachine.rim_flash = (__flash / 2) + (__alpha / 2);
71
    obj_thrashmachine.glow = __alpha / 4;
72
}
73
if (effecttimer >= effectPause)
74
{
75
    var _thinindex = irandom(5);
76
    for (i = 0; i < 6; i++)
77
    {
78
        d = instance_create(centerX, centerY, obj_rouxls_power_up_orb);
79
        d.direction = irandom(60) + (i * 60);
80
        d.lifetime = effectPause * 2;
81
        d.depth = depth + 1;
82
        d.image_blend = #BBBBFF;
83
        if (i == _thinindex)
84
            d.thin = true;
85
    }
86
    if (effectPause > 4)
87
        effectPause--;
88
    effecttimer = 0;
89
}
90
if ((timer + 15) >= poweruptime && after_image_flash == 1)
91
{
92
    d = scr_custom_afterimage
scr_custom_afterimage

function scr_custom_afterimage(arg0) { afterimage = instance_create(x, y, arg0); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth + 1; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; return afterimage; }
(obj_power_up_afterimage);
93
    d.image_alpha = max(0.1, __alpha);
94
    d.fade = 0.1;
95
    d.depth += 2;
96
    d.image_blend = image_blend;
97
    d.pivotx = pivotx;
98
    d.pivoty = pivoty;
99
    after_image_flash = 0;
100
}
101
else
102
{
103
    after_image_flash = 1;
104
}
105
draw_set_blend_mode(bm_normal);
106
if (intensity == 1)
107
{
108
}
109
if (intensity == 2)
110
{
111
    if ((timer + 15) >= poweruptime && (timer + 15) <= (poweruptime + 30))
112
    {
113
        draw_set_color(image_blend);
114
        var _progress = ((timer + 15) - poweruptime) / 30;
115
        var _circlesize = lerp(0.75, 1, 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; } }
(_progress, 5)) * 120;
116
        var _circlewidth = 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; } }
(_progress, 5) * 118;
117
        draw_set_alpha(1 - scr_ease_in
scr_ease_in

function scr_ease_in(arg0, arg1) { if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
(_progress, 4));
118
        scr_draw_circle_width_radius
scr_draw_circle_width_radius

function scr_draw_circle_width_radius(arg0, arg1, arg2, arg3, arg4) { var xx = arg0; var yy = arg1; var radius = arg2; var inner_radius = max(arg3, 0); var steps = arg4; draw_primitive_begin(pr_trianglelist); for (i = 0; i < steps; i += 1) { draw_vertex(xx + lengthdir_x(inner_radius, (360 * i) / steps), yy + lengthdir_y(inner_radius, (360 * i) / steps)); draw_vertex(xx + lengthdir_x(radius, (360 * i) / steps), yy + lengthdir_y(radius, (360 * i) / steps)); draw_vertex(xx + lengthdir_x(radius, (360 * (i + 1)) / steps), yy + lengthdir_y(radius, (360 * (i + 1)) / steps)); draw_vertex(xx + lengthdir_x(radius, (360 * (i + 1)) / steps), yy + lengthdir_y(radius, (360 * (i + 1)) / steps)); draw_vertex(xx + lengthdir_x(inner_radius, (360 * (i + 1)) / steps), yy + lengthdir_y(inner_radius, (360 * (i + 1)) / steps)); draw_vertex(xx + lengthdir_x(inner_radius, (360 * i) / steps), yy + lengthdir_y(inner_radius, (360 * i) / steps)); } draw_primitive_end(); }
(centerX, centerY, _circlesize, _circlewidth, 36);
119
        draw_set_alpha(1);
120
        if (_progress <= 0)
121
            draw_sprite_ext(spr_rurus_power, 0, x, y, 2, 2, 0, c_white, 1);
122
    }
123
}