|
1
|
if (con >= 3)
|
|
2
|
{
|
|
3
|
if (image_index == (image_number - 1))
|
|
4
|
image_index--;
|
|
5
|
else if (image_index > 0)
|
|
6
|
image_index -= 0.25;
|
|
7
|
}
|
|
8
|
else if (image_index < (image_number - 1))
|
|
9
|
{
|
|
10
|
image_index += 0.5;
|
|
11
|
}
|
|
12
|
if (con < 5)
|
|
13
|
draw_self();
|
|
14
|
aetimer++;
|
|
15
|
if (con <= 4 && (aetimer % 4) == 0)
|
|
16
|
{
|
|
17
|
var _after_image = scr_afterimagescr_afterimage
function scr_afterimage()
{
afterimage = instance_create(x, y, obj_afterimage);
afterimage.sprite_index = sprite_index;
afterimage.image_index = image_index;
afterimage.image_blend = image_blend;
afterimage.image_speed = 0;
afterimage.depth = depth;
afterimage.image_xscale = image_xscale;
afterimage.image_yscale = image_yscale;
afterimage.image_angle = image_angle;
return afterimage;
} ();
|
|
18
|
_after_image.image_alpha = 0.6;
|
|
19
|
_after_image.fadeSpeed = 0.02;
|
|
20
|
_after_image.speed = 2 + (afterimage_spread / 30);
|
|
21
|
_after_image.direction = (sin(aetimer) * angle) / 2;
|
|
22
|
_after_image.depth = obj_knight_enemy.depth + 1;
|
|
23
|
if (con == 4)
|
|
24
|
afterimage_spread = 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);
}
function scr_obj_movetowards_obj(arg0, arg1, arg2 = 0, arg3 = 0)
{
scr_obj_movetowards_point(arg0.x + arg2, arg0.y + arg3, arg1);
}
function scr_obj_movetowards_point(arg0, arg1, arg2)
{
var _distance = point_distance(x, y, arg0, arg1);
if (arg2 >= _distance)
{
x = arg0;
y = arg1;
}
else
{
var _direction = point_direction(x, y, arg0, arg1);
x += lengthdir_x(arg2, _direction);
y += lengthdir_y(arg2, _direction);
}
} (afterimage_spread, 0, 20);
|
|
25
|
if (con >= 1)
|
|
26
|
afterimage_spread++;
|
|
27
|
}
|
|
28
|
if (con >= 4)
|
|
29
|
exit;
|
|
30
|
if (!surface_exists(surf))
|
|
31
|
surf = surface_create(640, 480);
|
|
32
|
if (!surface_exists(starsurf))
|
|
33
|
starsurf = surface_create(640, 480);
|
|
34
|
if (con <= 1)
|
|
35
|
{
|
|
36
|
if (con == 0)
|
|
37
|
con = 1;
|
|
38
|
if (timer < 28)
|
|
39
|
{
|
|
40
|
draw_set_blend_mode(bm_add);
|
|
41
|
draw_sprite_part_ext(spr_knight_bullet_flow, 2, timer * 1, ((timer * 4) + yoff) - 2, screenx(x + 22) / 2, 1, camerax(), y + 54, 2, 2, c_gray, 1);
|
|
42
|
if ((timer % 2) == 0)
|
|
43
|
draw_sprite_part_ext(spr_knight_bullet_flow, 2, timer * 2, (timer * 4) + yoff, screenx(x + 22) / 2, 1, camerax(), y + 54, 2, 2, c_gray, 1);
|
|
44
|
draw_set_blend_mode(bm_normal);
|
|
45
|
}
|
|
46
|
else
|
|
47
|
{
|
|
48
|
draw_set_color(c_white);
|
|
49
|
ossafe_fill_rectangle(camerax(), y + 54, x + 22, y + 56, false);
|
|
50
|
}
|
|
51
|
timer++;
|
|
52
|
if (timer >= 30)
|
|
53
|
{
|
|
54
|
snd_play_pitch(snd_rocket_long, 0.6);
|
|
55
|
con = 2;
|
|
56
|
}
|
|
57
|
exit;
|
|
58
|
}
|
|
59
|
if (con == 3 && timer > 0)
|
|
60
|
{
|
|
61
|
draw_set_blend_mode(bm_add);
|
|
62
|
draw_sprite_part_ext(spr_knight_bullet_flow, 2, (10 - timer) * 2, yoff - ((10 - timer) * 4), screenx(x + 22) / 2, 1, camerax(), y + 54, 2, 2, c_gray, timer / 10);
|
|
63
|
draw_sprite_part_ext(spr_knight_bullet_flow, 2, (10 - timer) * 2, yoff + ((10 - timer) * 4), screenx(x + 22) / 2, 1, camerax(), y + 54, 2, 2, c_gray, timer / 10);
|
|
64
|
timer--;
|
|
65
|
draw_set_blend_mode(bm_normal);
|
|
66
|
if (timer == 0)
|
|
67
|
con = 4;
|
|
68
|
exit;
|
|
69
|
}
|
|
70
|
surface_set_target(surf);
|
|
71
|
draw_clear_alpha(c_black, 0);
|
|
72
|
draw_set_blend_mode(bm_normal);
|
|
73
|
draw_set_alpha(1);
|
|
74
|
draw_set_color(merge_color(c_white, c_black, angle / target_angle));
|
|
75
|
draw_primitive_begin(pr_trianglelist);
|
|
76
|
draw_angle = 1 - draw_angle;
|
|
77
|
var _angle = (angle > 0) ? (angle + draw_angle) : 0;
|
|
78
|
var _xleft = lengthdir_x(600, 180 + (_angle / 2));
|
|
79
|
var _ytop = lengthdir_y(600, 180 - (_angle / 2));
|
|
80
|
var _ybottom = lengthdir_y(600, 180 + (_angle / 2));
|
|
81
|
draw_vertex(screenx(x + 22) + _xleft, screeny(y + 56) + _ytop);
|
|
82
|
draw_vertex(screenx(x + 22), screeny(y + 56));
|
|
83
|
draw_vertex(screenx(x + 22) + _xleft, screeny(y + 58) + _ybottom);
|
|
84
|
draw_vertex(screenx(x + 22), screeny(y + 58));
|
|
85
|
draw_primitive_end();
|
|
86
|
gpu_set_alphatestenable(true);
|
|
87
|
gpu_set_blendmode_ext_sepalpha(bm_src_alpha, bm_one, bm_dest_alpha, bm_zero);
|
|
88
|
var _blend = 1;
|
|
89
|
draw_sprite_ext(spr_knight_bullet_flow, 0, bg_x, 0, 2, 2, 0, c_white, _blend);
|
|
90
|
draw_sprite_ext(spr_knight_bullet_flow, 0, bg_x + 640, 0, 2, 2, 0, c_white, _blend);
|
|
91
|
draw_sprite_ext(spr_knight_bullet_flow, 1, lines_x, 0, 2, 2, 0, c_white, _blend);
|
|
92
|
draw_sprite_ext(spr_knight_bullet_flow, 1, lines_x + 640, 0, 2, 2, 0, c_white, _blend);
|
|
93
|
lines_x -= 80;
|
|
94
|
bg_x -= 20;
|
|
95
|
if (lines_x < -640)
|
|
96
|
lines_x += 640;
|
|
97
|
if (bg_x < -640)
|
|
98
|
bg_x += 640;
|
|
99
|
draw_set_blend_mode(bm_subtract);
|
|
100
|
with (obj_heart)
|
|
101
|
draw_sprite(sprite_index, image_index, screenx(), screeny());
|
|
102
|
if (instance_exists(obj_knight_pointing_star))
|
|
103
|
{
|
|
104
|
surface_set_target(starsurf);
|
|
105
|
draw_set_blend_mode(bm_normal);
|
|
106
|
draw_clear_alpha(c_black, 0);
|
|
107
|
with (obj_knight_pointing_star)
|
|
108
|
{
|
|
109
|
if (image_xscale > 0.5)
|
|
110
|
event_user(0);
|
|
111
|
}
|
|
112
|
draw_set_blend_mode(bm_subtract);
|
|
113
|
draw_sprite_ext(spr_knight_line_grate, 0, 0, star_flicker, 2, 2, 0, c_black, 1);
|
|
114
|
star_flicker = 2 - star_flicker;
|
|
115
|
draw_set_blend_mode(bm_normal);
|
|
116
|
with (obj_knight_pointing_star)
|
|
117
|
{
|
|
118
|
if (image_xscale <= 0.5)
|
|
119
|
event_user(0);
|
|
120
|
}
|
|
121
|
surface_reset_target();
|
|
122
|
gpu_set_alphatestenable(true);
|
|
123
|
gpu_set_blendmode_ext_sepalpha(bm_src_alpha, bm_inv_src_alpha, bm_dest_alpha, bm_zero);
|
|
124
|
draw_surface(starsurf, 0, 0);
|
|
125
|
}
|
|
126
|
gpu_set_alphatestenable(false);
|
|
127
|
draw_set_blend_mode(bm_add);
|
|
128
|
surface_reset_target();
|
|
129
|
draw_surface(surf, camerax(), cameray());
|
|
130
|
draw_set_blend_mode(bm_normal);
|