|
1
|
if (init == 0)
|
|
2
|
{
|
|
3
|
startcolor = image_blend;
|
|
4
|
init = 1;
|
|
5
|
angle_offset = (startcolor == c_orange) ? random_range(-15, 15) : random_range(-10, 10);
|
|
6
|
if (platter_spawn)
|
|
7
|
{
|
|
8
|
type = 1;
|
|
9
|
direction = 270;
|
|
10
|
image_alpha = 1;
|
|
11
|
target_speed = speed;
|
|
12
|
speed = 1;
|
|
13
|
platterspawn = false;
|
|
14
|
if (fixed_angle)
|
|
15
|
{
|
|
16
|
var targetdir = point_direction(x, y, obj_heart.x + 10, obj_heart.y + 10);
|
|
17
|
var centerdir = point_direction(x, y, obj_growtangle.x, obj_growtangle.y);
|
|
18
|
var centerdir2 = scr_rotatetowards_unclampedscr_rotatetowards_unclamped
function scr_rotatetowards_unclamped(arg0, arg1, arg2)
{
var __diff = angle_difference(arg1, arg0);
return arg0 + (sign(__diff) * arg2);
} (targetdir, centerdir, random_range(15, 30));
|
|
19
|
targetdir = scr_rotatetowards_unclampedscr_rotatetowards_unclamped
function scr_rotatetowards_unclamped(arg0, arg1, arg2)
{
var __diff = angle_difference(arg1, arg0);
return arg0 + (sign(__diff) * arg2);
} (targetdir, centerdir, -random_range(15, 30));
|
|
20
|
if (image_xscale > 0)
|
|
21
|
targetdir = max(targetdir, 280);
|
|
22
|
else
|
|
23
|
targetdir = min(targetdir, 260);
|
|
24
|
target_angle = scr_rotatetowards_unclampedscr_rotatetowards_unclamped
function scr_rotatetowards_unclamped(arg0, arg1, arg2)
{
var __diff = angle_difference(arg1, arg0);
return arg0 + (sign(__diff) * arg2);
} (targetdir, centerdir, random_range(15, 30));
|
|
25
|
}
|
|
26
|
}
|
|
27
|
else
|
|
28
|
{
|
|
29
|
type = 2;
|
|
30
|
direction = point_direction(xstart, ystart, obj_heart.x + 10, obj_heart.y + 10) + random_range(-5, 5);
|
|
31
|
}
|
|
32
|
}
|
|
33
|
if (speed < target_speed)
|
|
34
|
{
|
|
35
|
spawntimer++;
|
|
36
|
if (startcolor == c_orange)
|
|
37
|
speed = scr_movetowardsscr_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);
} (speed, target_speed, 0.2);
|
|
38
|
else
|
|
39
|
speed = scr_movetowardsscr_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);
} (speed, target_speed, 0.25);
|
|
40
|
if (fixed_angle)
|
|
41
|
{
|
|
42
|
direction = lerp(270, target_angle, (speed - 1) / (target_speed - 1));
|
|
43
|
}
|
|
44
|
else
|
|
45
|
{
|
|
46
|
target_angle = point_direction(x, y, obj_heart.x + 10, obj_heart.y + 10) + angle_offset;
|
|
47
|
direction = scr_rotatetowardsscr_rotatetowards
function scr_rotatetowards(arg0, arg1, arg2)
{
var __diff = angle_difference(arg1, arg0);
if (abs(__diff) > arg2)
return arg0 + (sign(__diff) * arg2);
else
return arg1;
}
function scr_angle_lerp(arg0, arg1, arg2)
{
var __diff = angle_difference(arg1, arg0);
return arg0 + lerp(0, __diff, arg2);
} (direction, target_angle, 15);
|
|
48
|
}
|
|
49
|
if (spawntimer == 6)
|
|
50
|
depth -= 11;
|
|
51
|
}
|
|
52
|
if (type == 2)
|
|
53
|
{
|
|
54
|
if (x > xstart)
|
|
55
|
image_xscale = 1;
|
|
56
|
else
|
|
57
|
image_xscale = -1;
|
|
58
|
}
|