Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_knight_pointing_cone_Draw_0

(view raw script w/o annotations or w/e)
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_afterimage
scr_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_movetowards
scr_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);