|
1
|
var _size = size;
|
|
2
|
var _sizex = 0;
|
|
3
|
var _sizey = 0;
|
|
4
|
if (size_offset < 1)
|
|
5
|
{
|
|
6
|
var _sizeoff = lerp(size / 2, 0, scr_ease_outscr_ease_out
function scr_ease_out(arg0, arg1)
{
if (arg1 < -3 || arg1 > 7)
return arg0;
switch (arg1)
{
case -3:
return ease_out_bounce(arg0, 0, 1, 1);
case -2:
return ease_out_elastic(arg0, 0, 1, 1);
case -1:
return ease_out_back(arg0, 0, 1, 1);
case 0:
return arg0;
case 1:
return sin(arg0 * 1.5707963267948966);
case 2:
return -arg0 * (arg0 - 2);
case 6:
return -power(2, -10 * arg0) + 1;
case 7:
arg0--;
return sqrt(1 - (arg0 * arg0));
default:
arg0--;
if (arg1 == 4)
{
return -1 * (power(arg0, arg1) - 1);
break;
}
return power(arg0, arg1) + 1;
}
} (size_offset, -1));
|
|
7
|
_size += _sizeoff;
|
|
8
|
_sizex = sin(size_siner / 10) * 0.1;
|
|
9
|
_sizey = cos(size_siner / 10) * 0.1;
|
|
10
|
size_offset += 0.2;
|
|
11
|
size_siner++;
|
|
12
|
}
|
|
13
|
if (end_con == 3)
|
|
14
|
{
|
|
15
|
image_xscale = 1;
|
|
16
|
image_yscale = 1;
|
|
17
|
}
|
|
18
|
else if (end_con >= 4)
|
|
19
|
{
|
|
20
|
image_xscale = (timer / 20) + 1;
|
|
21
|
image_yscale = (timer / 20) + 1;
|
|
22
|
}
|
|
23
|
else
|
|
24
|
{
|
|
25
|
image_xscale = lerp(1, 0.5, _size) + _sizex;
|
|
26
|
image_yscale = lerp(1, 0.5, _size) + _sizey;
|
|
27
|
}
|
|
28
|
funny = false;
|
|
29
|
shakex = 0;
|
|
30
|
shakey = 0;
|
|
31
|
var _flicker = ticks < 0 && (abs(ticks) % 4) < 2;
|
|
32
|
if (_flicker)
|
|
33
|
image_blend = c_gray;
|
|
34
|
else
|
|
35
|
image_blend = c_white;
|
|
36
|
if (scare_con >= 1)
|
|
37
|
{
|
|
38
|
draw_sprite_ext(head_sprite, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
|
|
39
|
if (scare_con >= 2 && face_timer < 40)
|
|
40
|
face_timer++;
|
|
41
|
var _spimmer = scr_ease_outscr_ease_out
function scr_ease_out(arg0, arg1)
{
if (arg1 < -3 || arg1 > 7)
return arg0;
switch (arg1)
{
case -3:
return ease_out_bounce(arg0, 0, 1, 1);
case -2:
return ease_out_elastic(arg0, 0, 1, 1);
case -1:
return ease_out_back(arg0, 0, 1, 1);
case 0:
return arg0;
case 1:
return sin(arg0 * 1.5707963267948966);
case 2:
return -arg0 * (arg0 - 2);
case 6:
return -power(2, -10 * arg0) + 1;
case 7:
arg0--;
return sqrt(1 - (arg0 * arg0));
default:
arg0--;
if (arg1 == 4)
{
return -1 * (power(arg0, arg1) - 1);
break;
}
return power(arg0, arg1) + 1;
}
} (face_timer / 40, -2) * 180;
|
|
42
|
draw_sprite_ext(mouth_sprite, 0, x, y + 20, image_xscale, image_yscale, image_angle + _spimmer, image_blend, image_alpha);
|
|
43
|
}
|
|
44
|
else if (ticks > 0 || scare_con == -2)
|
|
45
|
{
|
|
46
|
var _sp = shake_power;
|
|
47
|
if (end_con == 3)
|
|
48
|
_sp = lerp(4, 0, clamp01(timer / 20));
|
|
49
|
shakex = irandom_range(-_sp, _sp);
|
|
50
|
shakey = irandom_range(-_sp, _sp);
|
|
51
|
if (mercy > 70 && sprite_index == spr_jackolantern_cry)
|
|
52
|
{
|
|
53
|
funny = true;
|
|
54
|
var _power = remap_clamped(70, 100, 0.1, 1, mercy);
|
|
55
|
if (end_con == 1 || end_con == 2)
|
|
56
|
_power = 0.5;
|
|
57
|
var _wobble = random_range(-10, 10);
|
|
58
|
var _skew = random_range(-20, 20);
|
|
59
|
var _ap = audio_sound_get_track_position(screamsound);
|
|
60
|
if ((_ap > 0.8 && _ap < 1.3) || (_ap > 9.6 && _ap < 10))
|
|
61
|
{
|
|
62
|
_wobble = random_range(-12, -18) * _power;
|
|
63
|
_skew = (clamp(x - (obj_heart.x + 10), -10, 10) + random_range(-5, 5)) * _power;
|
|
64
|
}
|
|
65
|
else if (_ap < 0.1 || (_ap > 0.4 && _ap < 0.6) || (_ap > 0.75 && _ap < 0.8) || (_ap > 7.8 && _ap < 7.95) || (_ap > 8.55 && _ap < 8.75) || (_ap > 9 && _ap < 9.15))
|
|
66
|
{
|
|
67
|
_wobble = random_range(-10, -14) * _power;
|
|
68
|
_skew = (clamp(x - (obj_heart.x + 10), -10, 10) + random_range(-5, 5)) * _power;
|
|
69
|
}
|
|
70
|
else if (_ap < 1.67 || _ap > 6)
|
|
71
|
{
|
|
72
|
_wobble = random_range(12, 18) * _power;
|
|
73
|
_skew = (clamp(x - (obj_heart.x + 10), -10, 10) + random_range(-5, 5)) * _power;
|
|
74
|
}
|
|
75
|
var _sw = (sprite_width / 2) - _wobble;
|
|
76
|
var _sh = (sprite_height / 2) + _wobble;
|
|
77
|
var _sx = x + shakex;
|
|
78
|
var _sy = y + shakey;
|
|
79
|
sx[0] = (_sx - _sw) + _skew;
|
|
80
|
sx[1] = _sx + _sw + _skew;
|
|
81
|
sx[2] = (_sx + _sw) - _skew;
|
|
82
|
sx[3] = _sx - _sw - _skew;
|
|
83
|
sy[0] = _sy - _sh;
|
|
84
|
sy[1] = _sy - _sh;
|
|
85
|
sy[2] = _sy + _sh;
|
|
86
|
sy[3] = _sy + _sh;
|
|
87
|
draw_sprite_pos(sprite_index, image_index, sx[0], sy[0], sx[1], sy[1], sx[2], sy[2], sx[3], sy[3], 1);
|
|
88
|
}
|
|
89
|
else
|
|
90
|
{
|
|
91
|
draw_self_offset(shakex, shakey);
|
|
92
|
}
|
|
93
|
}
|
|
94
|
else
|
|
95
|
{
|
|
96
|
draw_self_offset(shakex, shakey);
|
|
97
|
}
|
|
98
|
if (total_ticks > 0 || screamcon == 2)
|
|
99
|
{
|
|
100
|
brightness = total_ticks / 70;
|
|
101
|
if (screamcon == 2)
|
|
102
|
brightness += (0.35 + (sin(siner / 12) * 0.15));
|
|
103
|
brightness *= 0.2;
|
|
104
|
gpu_set_fog(true, c_white, 0, 1000);
|
|
105
|
if (funny)
|
|
106
|
draw_sprite_pos(sprite_index, image_index, sx[0], sy[0], sx[1], sy[1], sx[2], sy[2], sx[3], sy[3], brightness);
|
|
107
|
}
|
|
108
|
gpu_set_fog(false, c_white, 0, 1000);
|
|
109
|
if (fleetype == 2)
|
|
110
|
{
|
|
111
|
draw_sprite_ext(spr_pxwhite, 0, obj_growtangle.x - 400, obj_growtangle.y - 400, 260, 800, 0, c_black, 1);
|
|
112
|
draw_sprite_ext(spr_pxwhite, 0, obj_growtangle.x + 160, obj_growtangle.y - 400, 320, 800, 0, c_black, 1);
|
|
113
|
draw_sprite_ext(spr_pxwhite, 0, obj_growtangle.x - 400, obj_growtangle.y - 400, 800, 280, 0, c_black, 1);
|
|
114
|
draw_sprite_ext(spr_pxwhite, 0, obj_growtangle.x + 400, obj_growtangle.y + 120, 800, 280, 0, c_black, 1);
|
|
115
|
}
|