|
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_outscr_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_qbscr_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_outlinescr_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_afterimagescr_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_afterimagescr_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_outscr_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_outscr_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_inscr_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_radiusscr_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
|
}
|