Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_tensionbar_Draw_0

related scripts: Alarm_5 • CleanUp_0 • Create_0 • Draw_0 • Other_10

(view raw script w/o annotations or w/e)
1
if (!surface_exists(healthbar_surf))
2
    healthbar_surf = surface_create(96, 250);
3
surface_set_target(healthbar_surf);
4
draw_clear_alpha(c_white, 0);
5
var _size = 60;
6
var _tensionsize = lerp(-1, 75, maxtensionlimitpercent / 100);
7
var _a = 0;
8
yy = __view_get(e__VW.YView, 0);
9
y = yy + 40;
10
if (global.chapter == 5 && i_ex(obj_pink_enemy))
11
{
12
    var _size_bottom = _size + 43 + _tensionsize;
13
    var _barheight = 23 + (_tensionsize * 2);
14
    draw_sprite(spr_tensionbar_parts, 3, 0, (_size + 20) - _tensionsize);
15
    repeat (round(_tensionsize))
16
    {
17
        draw_sprite(spr_tensionbar_parts, 4, 0, (_size + 43) - _a);
18
        _a++;
19
    }
20
    _a = 0;
21
    repeat (round(_tensionsize))
22
    {
23
        draw_sprite(spr_tensionbar_parts, 4, 0, _size + 43 + _a);
24
        _a++;
25
    }
26
    _a = 0;
27
    draw_sprite(spr_tensionbar_parts, 5, 0, _size_bottom);
28
    if (apparent < current)
29
    {
30
        draw_set_color(c_red);
31
        d_rectangle(3, _size_bottom + 20, 21, (_size_bottom + 20) - lerp(0, _barheight + 20, current / maxtensionlimit), false);
32
        draw_set_color(c_orange);
33
        d_rectangle(3, _size_bottom + 20, 21, (_size_bottom + 20) - lerp(0, _barheight + 20, apparent / maxtensionlimit), false);
34
    }
35
    if (apparent > current)
36
    {
37
        draw_set_color(c_white);
38
        d_rectangle(3, _size_bottom + 20, 21, (_size_bottom + 20) - lerp(0, _barheight + 20, apparent / maxtensionlimit), false);
39
        draw_set_color(c_orange);
40
        if (maxed == 1)
41
            draw_set_color(merge_color(c_yellow, c_orange, 0.5));
42
        d_rectangle(3, _size_bottom + 20, 21, (_size_bottom + 20) - lerp(0, _barheight + 20, current / maxtensionlimit), false);
43
    }
44
    if (apparent == current)
45
    {
46
        draw_set_color(c_orange);
47
        if (maxed == 1)
48
            draw_set_color(merge_color(c_yellow, c_orange, 0.5));
49
        d_rectangle(3, 0 + _size_bottom + 20, 21, (_size_bottom + 20) - lerp(0, _barheight + 20, current / maxtensionlimit), false);
50
    }
51
    if (global.tensionselect > 0)
52
    {
53
        tsiner += 1;
54
        draw_set_color(c_white);
55
        draw_set_alpha(abs(sin(tsiner / 8) * 0.5) + 0.2);
56
        theight = (_size_bottom + 20) - lerp(0, _barheight + 20, apparent / maxtensionlimit);
57
        theight2 = theight + lerp(0, _barheight + 20, global.tensionselect / maxtensionlimit);
58
        if (theight2 > (_size_bottom + 22))
59
        {
60
            theight2 = _size_bottom + 22;
61
            draw_set_color(c_dkgray);
62
            draw_set_alpha(0.7);
63
        }
64
        d_rectangle(3, theight, 21, theight2, false);
65
        draw_set_alpha(1);
66
    }
67
    draw_sprite(spr_tensionbar_parts, 0, 0, (_size + 20) - _tensionsize);
68
    draw_sprite(spr_tensionbar_parts, 2, 0, _size_bottom + 1);
69
    gpu_set_blendmode(bm_subtract);
70
    draw_sprite_ext(spr_tensionbar_cutout_parts, 0, 0, (_size + 20) - _tensionsize, 1, 1, 0, c_white, 1);
71
    draw_sprite_ext(spr_tensionbar_cutout_parts, 1, 0, _size_bottom + 1, 1, 1, 0, c_white, 1);
72
    gpu_set_blendmode(bm_normal);
73
    if (i_ex(obj_pink_tension_glow) && obj_pink_tension_glow.alphamod >= 0)
74
    {
75
        if (obj_pink_tension_glow.alphamod == 1)
76
        {
77
            repeat (3)
78
            {
79
                with (obj_tensionbar)
80
                {
81
                    with (instance_create(x + irandom(25), ((_size + 100) - _tensionsize) + irandom(_tensionsize * 2), obj_marker))
82
                    {
83
                        var _dur = 10 + irandom(5);
84
                        sprite_index = spr_kissheart;
85
                        image_xscale = 1.5;
86
                        image_yscale = 1.5;
87
                        image_speed = 5 / _dur;
88
                        speed = 3 + random(3);
89
                        direction = 90;
90
                        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("speed", speed, 0, _dur);
91
                        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ var _id = self; if (!is_struct(self)) _id = id; if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(_id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpcol() { if (argument_count < 6) ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3]); else ___lerpvar = scr_lerpcol_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]); return ___lerpvar; }
("image_alpha", 1, 0.25, _dur);
92
                        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function scr_script_delayed_until() { var __scriptdelay = instance_create(0, 0, obj_script_delayed_function); __scriptdelay.script = argument[0]; __scriptdelay.condition = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function delay_function(arg0, arg1) { return
scr_script_delayed(arg0, arg1);
}
(instance_destroy, _dur);
93
                    }
94
                }
95
            }
96
        }
97
        gpu_set_fog(1, c_white, 0, 0);
98
        _size_bottom = _size + 43 + _tensionsize;
99
        _barheight = 23 + (_tensionsize * 2);
100
        draw_sprite_ext(spr_tensionbar_parts, 3, 0, (_size + 20) - _tensionsize, 1, 1, 0, c_white, obj_pink_tension_glow.alphamod);
101
        repeat (round(_tensionsize))
102
        {
103
            draw_sprite_ext(spr_tensionbar_parts, 4, 0, (_size + 43) - _a, 1, 1, 0, c_white, obj_pink_tension_glow.alphamod);
104
            _a++;
105
        }
106
        _a = 1;
107
        repeat (round(_tensionsize - 1))
108
        {
109
            draw_sprite_ext(spr_tensionbar_parts, 4, 0, _size + 43 + _a, 1, 1, 0, c_white, obj_pink_tension_glow.alphamod);
110
            _a++;
111
        }
112
        _a = 0;
113
        draw_sprite_ext(spr_tensionbar_parts, 5, 0, _size_bottom, 1, 1, 0, c_white, obj_pink_tension_glow.alphamod);
114
        gpu_set_fog(0, c_white, 0, 0);
115
    }
116
}
117
else
118
{
119
    draw_sprite(spr_tensionbar, 1, 0, 0);
120
}
121
if (abs(apparent - global.tension) < 20)
122
    apparent = global.tension;
123
if (apparent < global.tension)
124
    apparent += 20;
125
if (apparent > global.tension)
126
    apparent -= 20;
127
if (apparent != current)
128
{
129
    changetimer += 1;
130
    if (changetimer > 15)
131
    {
132
        if ((apparent - current) > 0)
133
            current += 2;
134
        if ((apparent - current) > 10)
135
            current += 2;
136
        if ((apparent - current) > 25)
137
            current += 3;
138
        if ((apparent - current) > 50)
139
            current += 4;
140
        if ((apparent - current) > 100)
141
            current += 5;
142
        if ((apparent - current) < 0)
143
            current -= 2;
144
        if ((apparent - current) < -10)
145
            current -= 2;
146
        if ((apparent - current) < -25)
147
            current -= 3;
148
        if ((apparent - current) < -50)
149
            current -= 4;
150
        if ((apparent - current) < -100)
151
            current -= 5;
152
        if (abs(apparent - current) < 3)
153
            current = apparent;
154
    }
155
}
156
if (global.chapter == 5 && i_ex(obj_pink_enemy))
157
{
158
}
159
else if (current > 0)
160
{
161
    if (apparent < current)
162
    {
163
        draw_set_color(c_red);
164
        d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((current / global.maxtension) * sprite_height), false);
165
        draw_set_color(c_orange);
166
        d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((apparent / global.maxtension) * sprite_height), false);
167
    }
168
    if (apparent > current)
169
    {
170
        draw_set_color(c_white);
171
        d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((apparent / global.maxtension) * sprite_height), false);
172
        draw_set_color(c_orange);
173
        if (maxed == 1)
174
            draw_set_color(merge_color(c_yellow, c_orange, 0.5));
175
        d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((current / global.maxtension) * sprite_height), false);
176
    }
177
    if (apparent == current)
178
    {
179
        draw_set_color(c_orange);
180
        if (maxed == 1)
181
            draw_set_color(merge_color(c_yellow, c_orange, 0.5));
182
        d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((current / global.maxtension) * sprite_height), false);
183
    }
184
    if (glowup > 0)
185
    {
186
        d3d_set_fog(true, c_white, 0, 1);
187
        draw_set_alpha(glowup);
188
        gpu_set_colourwriteenable(true, true, true, false);
189
        if (apparent < current)
190
        {
191
            draw_set_color(c_red);
192
            d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((current / global.maxtension) * sprite_height), false);
193
            draw_set_color(c_orange);
194
            d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((apparent / global.maxtension) * sprite_height), false);
195
        }
196
        if (apparent > current)
197
        {
198
            draw_set_color(c_white);
199
            d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((apparent / global.maxtension) * sprite_height), false);
200
            draw_set_color(c_orange);
201
            if (maxed == 1)
202
                draw_set_color(merge_color(c_yellow, c_orange, 0.5));
203
            d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((current / global.maxtension) * sprite_height), false);
204
        }
205
        if (apparent == current)
206
        {
207
            draw_set_color(c_orange);
208
            if (maxed == 1)
209
                draw_set_color(merge_color(c_yellow, c_orange, 0.5));
210
            d_rectangle(3, (0 + sprite_height) - 1, (0 + sprite_width) - 1, (0 + sprite_height) - ((current / global.maxtension) * sprite_height), false);
211
        }
212
        d3d_set_fog(false, c_white, 0, 1);
213
        draw_set_alpha(1);
214
        gpu_set_colourwriteenable(true, true, true, true);
215
        glowup -= 0.1;
216
    }
217
}
218
toylet = 0;
219
try
220
{
221
    if (global.tensionselect >= 0)
222
        toylet = 1;
223
}
224
catch (_ex)
225
{
226
    toylet = 2;
227
}
228
if (toylet == 2)
229
    snd_play(snd_splat);
230
if (global.chapter == 5 && i_ex(obj_pink_enemy))
231
{
232
}
233
else if (global.tensionselect > 0)
234
{
235
    tsiner += 1;
236
    draw_set_color(c_white);
237
    draw_set_alpha(abs(sin(tsiner / 8) * 0.5) + 0.2);
238
    theight = (0 + sprite_height) - ((current / global.maxtension) * sprite_height);
239
    theight2 = theight + ((global.tensionselect / global.maxtension) * sprite_height);
240
    if (theight2 > ((0 + sprite_height) - 1))
241
    {
242
        theight2 = (0 + sprite_height) - 1;
243
        draw_set_color(c_dkgray);
244
        draw_set_alpha(0.7);
245
    }
246
    d_rectangle(3, theight2, (0 + sprite_width) - 1, theight, false);
247
    draw_set_alpha(1);
248
}
249
if (apparent > 20 && apparent < global.maxtension)
250
{
251
    if (global.chapter == 5 && i_ex(obj_pink_enemy))
252
    {
253
    }
254
    else
255
    {
256
        draw_sprite(spr_tensionmarker, 0, 3, (0 + sprite_height) - ((current / global.maxtension) * sprite_height));
257
    }
258
}
259
if (global.chapter == 5 && i_ex(obj_pink_enemy))
260
{
261
}
262
else
263
{
264
    draw_sprite(spr_tensionbar, 0, 0, 0);
265
}
266
gpu_set_blendmode(bm_subtract);
267
if (global.chapter == 5 && i_ex(obj_pink_enemy))
268
{
269
}
270
else
271
{
272
    draw_sprite_ext(spr_tensionbar_cutout, 0, 0, 0, 1, 1, 0, c_white, 1);
273
}
274
gpu_set_blendmode(bm_normal);
275
surface_reset_target();
276
draw_surface(healthbar_surf, x, y);
277
draw_sprite(spr_tplogo, 0, x - 30, y + 30);
278
draw_set_color(c_white);
279
scr_84_set_draw_font
scr_84_set_draw_font

function
scr_84_set_draw_font(arg0)
{ global.chemg_font = arg0; draw_set_font(
scr_84_get_font(arg0));
}
("mainbig");
280
flashsiner += 1;
281
tamt = floor(((apparent / global.maxtension) * 100) + 0.00001);
282
if (tamt < 0)
283
    tamt = 0;
284
maxed = 0;
285
if (tamt < 100)
286
{
287
    draw_text(x - 30, y + 70, string_hash_to_newline(string(tamt)));
288
    if (i_ex(obj_pink_enemy))
289
    {
290
        var __y = 95;
291
        draw_text(x - 30, y + __y, stringsetloc(
Wait for input
"/", "obj_tensionbar_slash_Draw_0_gml_230_0"
));
292
        if (maxtensionlimitpercent == 100)
293
            draw_text_transformed(x - 31, y + __y + 27, stringset(string(maxtensionlimitpercent)), 0.6, 1, 0);
294
        else
295
            draw_text(x - 31, y + __y + 27, stringset(string(maxtensionlimitpercent)));
296
    }
297
    else
298
    {
299
        draw_text(x - 25, y + 95, string_hash_to_newline(stringsetloc(
Close Message
"%", "obj_tensionbar_slash_Draw_0_gml_18_0"
)));
300
    }
301
    if (glowup > 0)
302
    {
303
        d3d_set_fog(true, c_white, 0, 1);
304
        draw_set_alpha(glowup);
305
        gpu_set_colourwriteenable(true, true, true, false);
306
        draw_text(x - 30, y + 70, string_hash_to_newline(string(tamt)));
307
        draw_text(x - 25, y + 95, string_hash_to_newline(stringsetloc(
Close Message
"%", "obj_tensionbar_slash_Draw_0_gml_18_0"
)));
308
        d3d_set_fog(false, c_white, 0, 1);
309
        draw_set_alpha(1);
310
        gpu_set_colourwriteenable(true, true, true, true);
311
    }
312
}
313
if (tamt >= 100)
314
{
315
    maxed = 1;
316
    draw_set_color(c_yellow);
317
    draw_text(x - 28, y + 70, string_hash_to_newline(stringsetloc(
M
"M", "obj_tensionbar_slash_Draw_0_gml_25_0"
)));
318
    draw_text(x - 24, y + 90, string_hash_to_newline(stringsetloc(
A
"A", "obj_tensionbar_slash_Draw_0_gml_26_0"
)));
319
    draw_text(x - 20, y + 110, string_hash_to_newline(stringsetloc(
X
"X", "obj_tensionbar_slash_Draw_0_gml_27_0"
)));
320
    if (glowup > 0)
321
    {
322
        d3d_set_fog(true, c_white, 0, 1);
323
        draw_set_alpha(glowup);
324
        gpu_set_colourwriteenable(true, true, true, false);
325
        draw_text(x - 28, y + 70, string_hash_to_newline(stringsetloc(
M
"M", "obj_tensionbar_slash_Draw_0_gml_25_0"
)));
326
        draw_text(x - 24, y + 90, string_hash_to_newline(stringsetloc(
A
"A", "obj_tensionbar_slash_Draw_0_gml_26_0"
)));
327
        draw_text(x - 20, y + 110, string_hash_to_newline(stringsetloc(
X
"X", "obj_tensionbar_slash_Draw_0_gml_27_0"
)));
328
        d3d_set_fog(false, c_white, 0, 1);
329
        draw_set_alpha(1);
330
        gpu_set_colourwriteenable(true, true, true, true);
331
    }
332
}
333
334
enum e__VW
335
{
336
    XView,
337
    YView,
338
    WView,
339
    HView,
340
    Angle,
341
    HBorder,
342
    VBorder,
343
    HSpeed,
344
    VSpeed,
345
    Object,
346
    Visible,
347
    XPort,
348
    YPort,
349
    WPort,
350
    HPort,
351
    Camera,
352
    SurfaceID
353
}