Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_rotating_tower_caterpillar_Draw_0

(view raw script w/o annotations or w/e)
1
var record_position = 36;
2
if (hero == "ralsei")
3
    record_position = 72;
4
var yy = obj_rotating_tower_controller.yoffset_record[record_position] - obj_rotating_tower_controller.yoffset;
5
var _angledifference = angle_difference(obj_rotating_tower_controller.tower_angle, obj_rotating_tower_controller.tower_angle_record[record_position]);
6
var _index = 4;
7
var xx = 0;
8
if (_angledifference >= 0 && _angledifference < 90)
9
    xx = lerp(0, 70, _angledifference / 90);
10
if (_angledifference >= 90 && _angledifference < 180)
11
    xx = lerp(70, 0, (_angledifference - 90) / 90);
12
if (_angledifference >= -90 && _angledifference < 0)
13
    xx = lerp(0, -70, abs(_angledifference) / 90);
14
if (_angledifference >= -180 && _angledifference < -90)
15
    xx = lerp(-70, 0, (abs(_angledifference) - 90) / 90);
16
if (xx >= 56 && xx < 71)
17
    _index = 4;
18
else if (xx >= 40 && xx < 56)
19
    _index = 3;
20
else if (xx >= 26 && xx < 40)
21
    _index = 3;
22
else if (xx >= 16 && xx < 26)
23
    _index = 2;
24
else if (xx >= -16 && xx < 16)
25
    _index = 2;
26
else if (xx >= -26 && xx < -16)
27
    _index = 2;
28
else if (xx >= -40 && xx < 26)
29
    _index = 1;
30
else if (xx >= -56 && xx < -40)
31
    _index = 1;
32
else if (xx >= -71 && xx < -56)
33
    _index = 0;
34
else
35
    _index = 6;
36
if (_angledifference >= 90 && _angledifference < 120)
37
    darkenalpha = lerp(0, 1, (_angledifference - 90) / 30);
38
if (_angledifference > -120 && _angledifference <= -90)
39
    darkenalpha = lerp(0, 1, (abs(_angledifference) - 90) / 30);
40
if (_angledifference >= 120 || _angledifference < -120)
41
    darkenalpha = 1;
42
if (_angledifference < 90 && _angledifference > -90)
43
    darkenalpha = 0;
44
var draw_x = obj_mainchara.x + 17 + xx;
45
draw_y = obj_mainchara.y - yy;
46
var runmove = 0;
47
if (abs(obj_rotating_tower_controller.tower_angle_record[record_position] - _xprevious) > 4)
48
    runmove = 1;
49
if (abs(obj_rotating_tower_controller.yoffset_record[record_position] - _yprevious) > 4)
50
    runmove = 1;
51
if (abs(obj_rotating_tower_controller.tower_angle_record[record_position] - _xprevious) > 0)
52
    show_debug_message(abs(obj_rotating_tower_controller.tower_angle_record[record_position] - _xprevious));
53
if (obj_rotating_tower_controller.tower_angle_record[record_position] != _xprevious || obj_rotating_tower_controller.yoffset_record[record_position] != _yprevious)
54
{
55
    index += 0.16;
56
    if (runmove == 1)
57
        index += 0.2;
58
    if (index >= 6)
59
        index = 0;
60
}
61
_xprevious = obj_rotating_tower_controller.tower_angle_record[record_position];
62
_yprevious = obj_rotating_tower_controller.yoffset_record[record_position];
63
var _sprite;
64
if (hero == "susie")
65
{
66
    _sprite = spr_susie_climb_1;
67
    if (index < 1)
68
        _sprite = spr_susie_climb_1;
69
    else if (index < 2)
70
        _sprite = spr_susie_climb_2;
71
    else if (index < 3)
72
        _sprite = spr_susie_climb_3;
73
    else if (index < 4)
74
        _sprite = spr_susie_climb_4;
75
    else if (index < 5)
76
        _sprite = spr_susie_climb_5;
77
    else if (index < 6)
78
        _sprite = spr_susie_climb_6;
79
}
80
else
81
{
82
    _sprite = spr_ralsei_climb_1;
83
    if (index < 1)
84
        _sprite = spr_ralsei_climb_1;
85
    else if (index < 2)
86
        _sprite = spr_ralsei_climb_2;
87
    else if (index < 3)
88
        _sprite = spr_ralsei_climb_3;
89
    else if (index < 4)
90
        _sprite = spr_ralsei_climb_4;
91
    else if (index < 5)
92
        _sprite = spr_ralsei_climb_5;
93
    else if (index < 6)
94
        _sprite = spr_ralsei_climb_6;
95
}
96
draw_sprite_ext(_sprite, _index, draw_x, draw_y - 8, 2, 2, 0, c_white, 1);
97
d3d_set_fog(true, c_black, 0, 1);
98
draw_sprite_ext(_sprite, _index, draw_x, draw_y - 8, 2, 2, 0, c_white, 0.5);
99
d3d_set_fog(false, c_black, 0, 0);
100
draw_set_color(c_white);
101
draw_text(10, 20, yy);
102
draw_text(10, 20, _angledifference);
103
if (_angledifference >= 90 || _angledifference < -90)
104
{
105
    depth = obj_rotating_tower_controller.depth + 40;
106
}
107
else
108
{
109
    var offset = 0;
110
    if (hero == "susie")
111
    {
112
        for (var i = 0; i < instance_number(obj_rotating_tower_caterpillar); i += 1)
113
        {
114
            _hero[i] = instance_find(obj_rotating_tower_caterpillar, i);
115
            if (_hero[i].hero == "ralsei")
116
            {
117
                if (_hero[i].draw_y > draw_y)
118
                    offset = 1;
119
            }
120
        }
121
    }
122
    if (hero == "ralsei")
123
    {
124
        for (var i = 0; i < instance_number(obj_rotating_tower_caterpillar); i += 1)
125
        {
126
            _hero[i] = instance_find(obj_rotating_tower_caterpillar, i);
127
            if (_hero[i].hero == "susie")
128
            {
129
                if (_hero[i].draw_y > draw_y)
130
                    offset = 1;
131
            }
132
        }
133
    }
134
    if (_index == 2)
135
        depth = (obj_mainchara.depth - 2) + offset;
136
    else
137
        depth = obj_mainchara.depth + 1 + offset;
138
}