|
1
|
if (init == 0)
|
|
2
|
{
|
|
3
|
init = 1;
|
|
4
|
if (thin)
|
|
5
|
lifetime /= 2;
|
|
6
|
if (track_target != -4)
|
|
7
|
{
|
|
8
|
xstart = 0;
|
|
9
|
ystart = 0;
|
|
10
|
}
|
|
11
|
var _distance = random_range(70, 90) * distance_multiplier;
|
|
12
|
if (_type == 1)
|
|
13
|
_distance = random_range(40, 45);
|
|
14
|
xx = xstart + lengthdir_x(_distance, direction);
|
|
15
|
x = xx;
|
|
16
|
yy = ystart + lengthdir_y(_distance, direction);
|
|
17
|
y = yy;
|
|
18
|
}
|
|
19
|
if (track_target != -4)
|
|
20
|
{
|
|
21
|
xoff = track_target.x;
|
|
22
|
yoff = track_target.y;
|
|
23
|
}
|
|
24
|
timer++;
|
|
25
|
if (timer > lifetime)
|
|
26
|
{
|
|
27
|
instance_destroy();
|
|
28
|
exit;
|
|
29
|
}
|
|
30
|
var _progress = timer / lifetime;
|
|
31
|
image_alpha = 1;
|
|
32
|
if (thin)
|
|
33
|
{
|
|
34
|
image_blend = c_white;
|
|
35
|
image_yscale = 0.25;
|
|
36
|
image_angle = direction;
|
|
37
|
draw_self();
|
|
38
|
x = lerp(xx, xstart, 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, 2)) + xoff;
|
|
39
|
y = lerp(yy, ystart, 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, 2)) + yoff;
|
|
40
|
}
|
|
41
|
else
|
|
42
|
{
|
|
43
|
var _drawalpha = draw_get_alpha();
|
|
44
|
draw_set_color(image_blend);
|
|
45
|
d_circle(x, y, radius - 2, 0);
|
|
46
|
draw_set_alpha(image_alpha);
|
|
47
|
x = lerp(xx, xstart, 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, 2)) + xoff;
|
|
48
|
y = lerp(yy, ystart, 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, 2)) + yoff;
|
|
49
|
d_circle(x, y, radius, 0);
|
|
50
|
if ((radius - 3) > 0)
|
|
51
|
{
|
|
52
|
draw_set_color(c_white);
|
|
53
|
d_circle(x, y, radius - 2, 0);
|
|
54
|
}
|
|
55
|
draw_set_alpha(_drawalpha);
|
|
56
|
radius = lerp(max_radius, 1, _progress);
|
|
57
|
}
|