Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_tower_dog_Draw_0

(view raw script w/o annotations or w/e)
1
var _angledifference = -angle_difference(obj_rotating_tower_controller_new.tower_angle, 315);
2
var xx = 0;
3
if (_angledifference >= 0 && _angledifference < 90)
4
    xx = lerp(0, 72, _angledifference / 90);
5
if (_angledifference >= 90 && _angledifference < 180)
6
    xx = lerp(72, 0, (_angledifference - 90) / 90);
7
if (_angledifference >= -90 && _angledifference < 0)
8
    xx = lerp(0, -72, abs(_angledifference) / 90);
9
if (_angledifference >= -180 && _angledifference < -90)
10
    xx = lerp(-72, 0, (abs(_angledifference) - 90) / 90);
11
var aaa = 50;
12
if (darkenalpha > 0.1)
13
    aaa = 40;
14
var _index = 4;
15
if (xx >= 56 && xx < 99)
16
    _index = 4;
17
else if (xx >= aaa && xx < 56)
18
    _index = 4;
19
else if (xx >= 26 && xx < aaa)
20
    _index = 3;
21
else if (xx >= 16 && xx < 26)
22
    _index = 2;
23
else if (xx >= -16 && xx < 16)
24
    _index = 2;
25
else if (xx >= -26 && xx < -16)
26
    _index = 2;
27
else if (xx >= (aaa * -1) && xx < 26)
28
    _index = 1;
29
else if (xx >= -56 && xx < (aaa * -1))
30
    _index = 0;
31
else if (xx >= -99 && xx < -56)
32
    _index = 0;
33
else
34
    _index = 6;
35
if (_angledifference >= 90 && _angledifference < 120)
36
    darkenalpha = lerp(0, 1, (_angledifference - 90) / 30);
37
if (_angledifference > -120 && _angledifference <= -90)
38
    darkenalpha = lerp(0, 1, (abs(_angledifference) - 90) / 30);
39
if (_angledifference >= 120 || _angledifference < -120)
40
    darkenalpha = 1;
41
if (_angledifference < 90 && _angledifference > -90)
42
    darkenalpha = 0;
43
introtimer++;
44
var draw_x = 560 + xx;
45
if (fallingoff == false)
46
{
47
    if (climbfaster == true)
48
    {
49
        draw_y -= 4;
50
        index += 0.5;
51
        if (obj_rotating_tower_controller_new.endclimbtimer >= 80)
52
            draw_y -= 4;
53
        draw_x = 320 + xx;
54
        if (obj_climb_kris.y >= (cameray() + cameraheight()))
55
        {
56
            obj_climb_kris.forceclimb = false;
57
            global.interact = 1;
58
        }
59
    }
60
    else if (cameray() < 5300)
61
    {
62
        if (alarm[0] > 30)
63
        {
64
            draw_y -= 6;
65
            index += 0.5;
66
        }
67
        if (draw_y > (cameray() + 480))
68
        {
69
            draw_y -= 8;
70
            index += 0.5;
71
        }
72
        else if (draw_y < (cameray() - 50))
73
        {
74
            draw_y -= 0.25;
75
            index += 0.16666666666666666;
76
        }
77
        else if (draw_y < (cameray() + 300) && introtimer > 150)
78
        {
79
            draw_y -= 2;
80
            index += 0.16666666666666666;
81
        }
82
        else
83
        {
84
            draw_y -= 2;
85
            index += (1/3);
86
            alarm[0]
 = 60;
gml_Object_obj_tower_dog_Alarm_0.gml

exit;
87
        }
88
    }
89
    else if (draw_y >= (cameray() + 430))
90
    {
91
        draw_y -= 5;
92
        index += 0.5;
93
    }
94
    else if (draw_y <= (cameray() - 250))
95
    {
96
        draw_y -= 0;
97
        index += 0.16666666666666666;
98
    }
99
    else if (draw_y <= (cameray() - 50))
100
    {
101
        draw_y -= 0.25;
102
        index += 0.16666666666666666;
103
    }
104
    else if (draw_y <= (cameray() + 250) && introtimer > 150)
105
    {
106
        draw_y -= 2;
107
        index += 0.16666666666666666;
108
    }
109
    else
110
    {
111
        draw_y -= 5.5;
112
        index += (1/3);
113
    }
114
    if (index >= 6)
115
        index = 0;
116
}
117
var _sprite = spr_dog_climb1;
118
if (index < 1)
119
    _sprite = spr_dog_climb1;
120
else if (index < 2)
121
    _sprite = spr_dog_climb2;
122
else if (index < 3)
123
    _sprite = spr_dog_climb3;
124
else if (index < 4)
125
    _sprite = spr_dog_climb4;
126
else if (index < 5)
127
    _sprite = spr_dog_climb5;
128
else if (index < 6)
129
    _sprite = spr_dog_climb6;
130
if (fallingoff == true)
131
{
132
    draw_x += (-1 + irandom(2));
133
    timer++;
134
    if ((timer % 15) == 0)
135
    {
136
        anim = instance_create(draw_x + 20, draw_y + 10, obj_animation);
137
        anim.sprite_index = spr_sweat_anim;
138
        anim.image_xscale = -1;
139
        anim.image_yscale = 1;
140
        anim.image_speed = 1/3;
141
        anim.depth = depth;
142
        snd_play(snd_swallow);
143
    }
144
    if (i_ex(obj_animation))
145
    {
146
        obj_animation.x = draw_x + 20;
147
        obj_animation.y = draw_y + 10;
148
    }
149
    if (timer == 20)
150
    {
151
        instance_destroy();
152
        dogfall = instance_create_depth(draw_x, draw_y, depth, obj_tower_dog_falls);
153
        dogfall.vspeed = 2;
154
        dogfall.gravity = 0.5;
155
        dogfall.image_xscale = 2;
156
        dogfall.image_yscale = 2;
157
        dogfall.image_speed = 0;
158
        dogfall.sprite_index = _sprite;
159
        dogfall.image_index = _index;
160
        snd_play(snd_fall);
161
    }
162
}
163
draw_sprite_ext(_sprite, _index, draw_x, draw_y, 2, 2, 0, c_white, 1);
164
d3d_set_fog(true, c_black, 0, 1);
165
draw_sprite_ext(_sprite, _index, draw_x, draw_y, 2, 2, 0, c_white, darkenalpha);
166
d3d_set_fog(false, c_black, 0, 0);
167
if (obj_rotating_tower_controller_new.endclimb == false)
168
{
169
    if (_angledifference > 90 || _angledifference < -90)
170
        depth = obj_rotating_tower_controller_new.depth + 40;
171
    else
172
        depth = obj_mainchara.depth - 2;
173
}