Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_cloud_render_new_Draw_0

(view raw script w/o annotations or w/e)
1
if (i_ex(obj_flowery_towery))
2
{
3
    if (front)
4
        depth = 25000;
5
    else
6
        depth = obj_flowery_towery.depth + 2;
7
}
8
var cy = cameray();
9
if (!surface_exists(surface))
10
    surface = surface_create(640 * surface_scale, 840 * surface_scale);
11
var _dark_col = 3150105;
12
var _dark2_col = 2230537;
13
var _light_col = 8138558;
14
var _dist_min = 175;
15
var _dist_max = 300;
16
var _dist = front ? _dist_min : _dist_max;
17
var _sign = front ? 1 : -1;
18
var _cnum = array_length(obj_cloud_controller_new.clouds);
19
var _hero_obj = 1198;
20
if (i_ex(obj_climb_kris))
21
    _hero_obj = 1164;
22
surface_set_target(surface);
23
draw_clear_alpha(c_black, 0);
24
var _col, _draw_scale;
25
while (_dist >= _dist_min && _dist <= _dist_max)
26
{
27
    var _dist_scale = (_dist - _dist_min) / (_dist_max - _dist_min);
28
    switch (style)
29
    {
30
        case 0:
31
            _col = 16777215;
32
            break;
33
        case 1:
34
            _col_factor = ((front ? (_dist_scale * 0.5) : (-_dist_scale * 0.5)) * 0.5) + 0.5;
35
            _col = merge_color(_dark_col, _light_col, _col_factor);
36
            break;
37
    }
38
    _col = front ? 16777215 : 8421504;
39
    for (var _c = 0; _c < _cnum; _c++)
40
    {
41
        var _cloud = obj_cloud_controller_new.clouds[_c];
42
        if (_cloud.z_depth < 0)
43
        {
44
            if (!other.front)
45
                continue;
46
        }
47
        else if (other.front)
48
        {
49
            continue;
50
        }
51
        if (_cloud.dist != _dist)
52
            continue;
53
        var _x_offset = sin((current_time / 500) + _cloud.base_angle) * 4 * surface_scale;
54
        var _y_offset = (sin((current_time / 250) + (_cloud.base_angle * 0.05)) * 4 * surface_scale) + (surface_y_offset * surface_scale);
55
        var _img_scale = 1;
56
        switch (style)
57
        {
58
            case 0:
59
                _col = 16777215;
60
                break;
61
            case 1:
62
                _col_factor = ((_cloud.z_depth / _dist_max) * -0.5) + 0.5;
63
                _col = merge_color(_dark_col, _light_col, _col_factor);
64
                break;
65
        }
66
        _col = merge_color(c_black, c_white, 0.85 - (0.15 * sin(degtorad(_cloud.angle))));
67
        var t = sin((current_time * 0.01) + (_cloud.__id * 0.2));
68
        var idx = (current_time * 0.01) + (_cloud.__id * 0.2 * (1 + (_cloud.__id % 2)));
69
        if ((_cloud.__id % 2) == 1)
70
            draw_sprite_ext(spr_rising_thorns_b, idx, floor((_cloud.x * surface_scale) + _x_offset), floor((_cloud.y * surface_scale) + _y_offset + 20), 2 * _img_scale * surface_scale, (2 * _img_scale * surface_scale) + (0 * t), 0, _col, 1);
71
        else
72
            draw_sprite_ext(spr_rising_thorns_a, idx, floor((_cloud.x * surface_scale) + _x_offset), floor((_cloud.y * surface_scale) + _y_offset), 2 * _img_scale * surface_scale, (2 * _img_scale * surface_scale) + (0 * t), 0, _col, 1);
73
    }
74
    _draw_scale = 1 / surface_scale;
75
    var _col_factor = 0.5 + (_dist_scale * 0.5 * _sign);
76
    if (followcamera)
77
        xoffset = camerax();
78
    switch (style)
79
    {
80
        case 0:
81
            _col = merge_color(_dark_col, _light_col, _col_factor);
82
            break;
83
        case 1:
84
            _col = 16777215;
85
            break;
86
    }
87
    _col = 16777215;
88
    _dist += (front ? 125 : -125);
89
}
90
surface_reset_target();
91
if (front)
92
{
93
    for (var i = 0; i < 6; i++)
94
    {
95
        var flip = sign((i % 2) - 0.5);
96
        var blend = merge_color(#3F3F3F, _col, i / 5);
97
        draw_surface_ext(surface, xoffset, ((cy + 420) - (420 * flip) - (40 * i)) + distance_from_kris + 2, _draw_scale, _draw_scale * flip, 0, blend, image_alpha);
98
    }
99
}
100
else
101
{
102
    for (var i = 0; i < 6; i++)
103
    {
104
        var flip = sign((i % 2) - 0.5);
105
        var blend = merge_color(#3F3F3F, _col, i / 5);
106
        draw_surface_ext(surface, xoffset, ((cy + 420) - (420 * flip) - (40 * i)) + distance_from_kris + 2, _draw_scale, _draw_scale * flip, 0, blend, image_alpha);
107
    }
108
}
109
distance_from_kris += (verticalspeed * caminfluence);
110
if (i_ex(obj_rotating_tower_controller_new))
111
    tower_y_prev = obj_rotating_tower_controller_new.tower_y;
112
if (last_hero_y != 0)
113
    distance_from_kris -= ((cy - last_hero_y) * caminfluence);
114
last_hero_y = cy;