Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_shootout_window_Draw_0

(view raw script w/o annotations or w/e)
1
var _current_train = -4;
2
if (obj_shootout_controller.shootout_type == 3)
3
    type = 4;
4
with (obj_shootout_carriage)
5
{
6
    if (sprite_index == spr_shootout_train_new)
7
    {
8
        var _xx = x + other.x_offset;
9
        if (_xx > -100 && _xx < 1700)
10
        {
11
            _current_train = id;
12
            break;
13
        }
14
    }
15
}
16
if (_current_train != -4)
17
{
18
    x = _current_train.x + x_offset;
19
    y = _current_train.y + y_offset;
20
    active = true;
21
}
22
else
23
{
24
    active = false;
25
    exit;
26
}
27
speedfactor = obj_shootout_controller.speedfactor;
28
if (!surface_exists(window_surface))
29
    window_surface = surface_create(sprite_width, sprite_height);
30
surface_set_target(window_surface);
31
draw_clear_alpha(#4C4539, 1);
32
switch (state)
33
{
34
    case "closed":
35
        hit = false;
36
        char_state = "none";
37
        show_hit_spike = false;
38
        image_index = 0;
39
        break;
40
    case "opening":
41
        state = "open";
42
        timer = 0;
43
        char_state = "init";
44
        break;
45
    case "open":
46
        if (show_hit_spike)
47
        {
48
            var _spk_scale = 2 + (sin(timer) * 0.5);
49
            var _spk_alpha = round((sin(timer) * 0.5) + 0.5);
50
            draw_sprite_ext(spr_shootout_window_hit, 0, sprite_xoffset, sprite_yoffset, _spk_scale, _spk_scale, 0, c_white, _spk_alpha);
51
        }
52
        event_user(type);
53
        break;
54
    case "closing":
55
        var _win_anim_duration = floor(win_anim_duration - (speedfactor * 2));
56
        if (timer >= _win_anim_duration)
57
            state = "closed";
58
        break;
59
}
60
gpu_set_blendenable(false);
61
gpu_set_colorwriteenable(0, 0, 0, 1);
62
draw_sprite_ext(spr_pixel_white, 0, 0, 0, 200, 200, 0, c_white, 0);
63
draw_sprite_ext(spr_shootout_window_mask_small, 0, 0, 0, 2, 2, 0, c_white, 1);
64
gpu_set_blendenable(true);
65
gpu_set_colorwriteenable(1, 1, 1, 1);
66
var windowangle = 0;
67
if (windowshaketimer > 0)
68
{
69
    if (windowshaketimer == 10)
70
        windowangle = 5;
71
    if (windowshaketimer == 9)
72
        windowangle = -5;
73
    if (windowshaketimer == 8)
74
        windowangle = 3;
75
    if (windowshaketimer == 7)
76
        windowangle = -3;
77
    if (windowshaketimer == 6)
78
        windowangle = 1;
79
    if (windowshaketimer == 5)
80
        windowangle = -1;
81
    if (windowshaketimer == 4)
82
        windowangle = 0;
83
    windowshaketimer--;
84
}
85
var _shakex = 0;
86
shaketimer--;
87
if (shaketimer == 9)
88
    _shakex = 6;
89
if (shaketimer == 8)
90
    _shakex = -5;
91
if (shaketimer == 7)
92
    _shakex = 4;
93
if (shaketimer == 6)
94
    _shakex = -3;
95
if (shaketimer == 5)
96
    _shakex = 2;
97
if (shaketimer == 4)
98
    _shakex = -1;
99
draw_sprite_ext(sprite_index, image_index, sprite_xoffset + _shakex, sprite_yoffset, 2, 2, windowangle, c_white, 1);
100
if (shaketimer > 7)
101
{
102
    d3d_set_fog(true, c_white, 0, 0);
103
    draw_sprite_ext(sprite_index, image_index, sprite_xoffset + _shakex, sprite_yoffset, 2, 2, windowangle, c_white, 1);
104
    d3d_set_fog(false, c_white, 0, 0);
105
}
106
surface_reset_target();
107
draw_surface(window_surface, x - sprite_xoffset, y - sprite_yoffset);
108
if (char_sprite == 1105 || char_sprite == 557 || char_sprite == 3425 || char_sprite == 532 || char_sprite == 4855)
109
{
110
    _x += (x - sprite_xoffset);
111
    _y += (y - sprite_yoffset);
112
    event_user(type);
113
    _x = 0;
114
    _y = 0;
115
}
116
if (drawinfront == true)
117
{
118
    _x = x - sprite_xoffset;
119
    _y = y - sprite_yoffset;
120
    if (char_state == "hit")
121
    {
122
        draw_sprite_ext(spr_shootout_tenna_hit, 0, (char_x - 5) + _x + sprite_xoffset, (char_y - 8) + _y + sprite_yoffset, scale, scale, 0, image_blend, 1);
123
    }
124
    else
125
    {
126
        var _col = 16777215;
127
        if (char_state == "idle" && timerc > 35)
128
            _col = merge_color(c_white, c_red, (timerc - 35) / 35);
129
        draw_sprite_ext(spr_shootout_tenna_shoot_pieces, 0, char_x + _x + sprite_xoffset, char_y + _y + sprite_yoffset, scale, scale, headangle, _col, 1);
130
        draw_sprite_ext(spr_shootout_tenna_shoot_pieces, 1, char_x + _x + sprite_xoffset, char_y + _y + sprite_yoffset, scale, scale, bodyangle, _col, 1);
131
        draw_sprite_ext(spr_shootout_tenna_shoot_pieces2, armindex, char_x + _x + (8 * scale) + sprite_xoffset, char_y + _y + (6 * scale) + sprite_yoffset, scale, scale, armangle, _col, 1);
132
    }
133
    _x = 0;
134
    _y = 0;
135
}
136
timer++;