Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_spell_scythemare_Draw_0

related scripts: Create_0Draw_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    if (myself >= 0)
4
    {
5
        if (global.monster[myself] == 1)
6
        {
7
            if (global.monsterstatus[myself] == 1)
8
                success = 1;
9
        }
10
    }
11
    depth -= num;
12
}
13
if (initdelay == 0)
14
{
15
}
16
initdelay--;
17
if (initdelay <= 0)
18
{
19
    siner++;
20
    if (siner < 6)
21
    {
22
        var _timer = siner;
23
        var _sizer = lerp(4, 2, clamp01(_timer / 4));
24
        draw_sprite_ext(sprite_index, 0, x, y, _sizer, _sizer, 0, c_white, clamp01(_timer / 3));
25
        if (siner == 4)
26
            snd_play(snd_impact);
27
    }
28
    else if (siner < 34)
29
    {
30
        var _timer = siner - 6;
31
        if (_timer == 7 && num == 0)
32
            pacify_sound = snd_play_x(snd_pacify, 1, 1);
33
        var _spinease = lerp(-1.5707963267948966, 0, clamp01(
scr_ease_out
scr_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; } }
(_timer / 10, 3)));
34
        var _swap = _spinease > -1.5707963267948966;
35
        var _sprite = _swap ? spr_spell_zzz : sprite_index;
36
        if (!_swap)
37
            _spinease *= -1;
38
        var _warp = lerp(4, 2, clamp01(_timer / 2));
39
        var _crossfadeA = clamp01(inverselerp(8, 30, _timer));
40
        var _crossfadeB = clamp01(inverselerp(8, 20, _timer));
41
        var _spin = lerp(360, -90, 
scr_ease_inout
scr_ease_inout

function
scr_ease_inout(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; if (arg1 == -3) return ease_inout_bounce(arg0, 0, 1, 1); else if (arg1 == -2) return ease_inout_elastic(arg0, 0, 1, 1); else if (arg1 == -1) return ease_inout_back(arg0, 0, 1, 1); else if (arg1 == 1) return -0.5 * cos((pi * arg0) - 1); else if (arg1 == 0) return arg0; arg0 *= 2; if (arg0 < 1) { return 0.5 *
scr_ease_in(arg0, arg1);
} else { arg0--; return 0.5 * (
scr_ease_out(arg0, arg1) + 1);
} }
(_timer / 20, 3));
42
        var _altspin = lerp(360, -10, 
scr_ease_inout
scr_ease_inout

function
scr_ease_inout(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; if (arg1 == -3) return ease_inout_bounce(arg0, 0, 1, 1); else if (arg1 == -2) return ease_inout_elastic(arg0, 0, 1, 1); else if (arg1 == -1) return ease_inout_back(arg0, 0, 1, 1); else if (arg1 == 1) return -0.5 * cos((pi * arg0) - 1); else if (arg1 == 0) return arg0; arg0 *= 2; if (arg0 < 1) { return 0.5 *
scr_ease_in(arg0, arg1);
} else { arg0--; return 0.5 * (
scr_ease_out(arg0, arg1) + 1);
} }
(_timer / 20, 3));
43
        if (_timer >= 20)
44
        {
45
            _spin = lerp(-20, 0, 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
((_timer - 20) / 8, 3));
46
            _altspin = lerp(-10, 0, 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
((_timer - 20) / 8, 3));
47
        }
48
        draw_sprite_ext(spr_spare_z, 0, x, y, 3, 3, last_altspin, c_white, _crossfadeB / 2);
49
        draw_sprite_ext(spr_spare_z, 0, x, y, 3, 3, _altspin, c_white, _crossfadeB);
50
        last_altspin = _altspin;
51
        if (_timer >= 20)
52
            _spin = lerp(-90, 10, 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
((_timer - 20) / 8, 3));
53
        draw_sprite_ext(sprite_index, 0, x, y, 2, 2, last_spin, c_white, (1 - _crossfadeA) / 2);
54
        draw_sprite_ext(sprite_index, 0, x, y, 2, 2, _spin, c_white, 1 - _crossfadeA);
55
        last_spin = _spin;
56
    }
57
    else
58
    {
59
        var _timer = siner - 34;
60
        if (_timer == 0)
61
        {
62
            if (success)
63
                snd_play_echo(420, 3, 0.34, 1, 1.5 + (num * 0.25));
64
            else
65
                snd_play_x(snd_bump, 2, 1 + random_range(-0.5, 0.5));
66
            if (num == 0)
67
                snd_stop(pacify_sound);
68
            if (joker)
69
            {
70
                if (laugh)
71
                    snd_play(snd_joker_laugh0);
72
            }
73
        }
74
        var _lerp = clamp01(inverselerp(6, 24, _timer));
75
        var _tween = 
scr_ease_out
scr_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; } }
(_lerp, 2) * 20;
76
        if (success)
77
        {
78
            var _alpha = clamp01(lerp(1, 0, _timer / 20));
79
            draw_sprite_ext(spr_spare_z_split, 0, x + _tween, y, 3, 3, 0, c_white, _alpha);
80
            draw_sprite_ext(spr_spare_z_split, 1, x - _tween, y, 3, 3, 0, c_white, _alpha);
81
            draw_sprite_ext(spr_spare_z_split, 0, x + (_tween * 2), y, 3, 3, 0, c_white, _alpha);
82
            draw_sprite_ext(spr_spare_z_split, 1, x - (_tween * 2), y, 3, 3, 0, c_white, _alpha);
83
        }
84
        else
85
        {
86
            var _shake = 0;
87
            if (_timer < 8)
88
            {
89
                _shake = (8 - _timer) * (((_timer % 2) * 2) - 1);
90
                _lerp = 0;
91
                _tween = 0;
92
            }
93
            else
94
            {
95
                _lerp = clamp01(inverselerp(8, 22, _timer));
96
                _tween = 
scr_ease_in
scr_ease_in

function
scr_ease_in(arg0, arg1)
{ if (arg1 < -3 || arg1 > 7) return arg0; switch (arg1) { case -3: return ease_in_bounce(arg0, 0, 1, 1); case -2: return ease_in_elastic(arg0, 0, 1, 1); case -1: var _s = 1.70158; return arg0 * arg0 * (((_s + 1) * arg0) - _s); case 0: return arg0; case 1: return -cos(arg0 * 1.5707963267948966) + 1; case 6: return power(2, 10 * (arg0 - 1)); case 7: return -(sqrt(1 - sqr(arg0)) - 1); default: return power(arg0, arg1); } }
(_lerp, 2) * 6;
97
            }
98
            draw_sprite_ext(spr_spare_z, 0, x + _tween + _shake, y + (_tween * 10), 3, 3, -_tween * 5, c_white, 1 - _lerp);
99
        }
100
        if (_timer < 9)
101
            draw_sprite_ext(spr_thrash_slash, _timer / 3, x, y, 1, 2, 90, c_white, 1);
102
    }
103
    stimer++;
104
    if (siner == 55)
105
    {
106
    }
107
    if (siner == 56)
108
    {
109
        if (success == 1)
110
        {
111
            with (target)
112
            {
113
                global.flag[51 + myself] = 3;
114
                event_user(10);
115
                
scr_monsterdefeat
scr_monsterdefeat

function
scr_monsterdefeat()
{ if (global.monster[myself] == 1) { debug_message("==
scr_monsterdefeat() called ==");
debug_message("===== Encounter Results ====="); global.monstergold[3] += global.monstergold[myself]; global.monsterexp[3] += global.monsterexp[myself]; global.monster[myself] = 0; if (global.flag[51 + myself] == 0) { global.flag[51 + myself] = 2; if (global.monsterhp[myself] <= 0) global.flag[51 + myself] = 1; } if (global.flag[51 + myself] == 1) { global.flag[40 violences] += 1; if (fatal == 1) global.flag[44 kills]++; } if (global.flag[51 + myself] == 2) global.flag[41 spares] += 1; if (global.flag[51 + myself] == 3) global.flag[42 pacifies] += 1; if (global.flag[51 + myself] == 5) global.flag[43 autosusie_violences] += 1; if (global.flag[51 + myself] == 6) { global.flag[45 freezes] += 1; global.monstergold[3] += 24; } if (
scr_monsterpop() == 0)
{ var _amt_add = 0; var _frozened = 0; var _violenced = 0; var _spared = 0; var _pacified = 0; for (var d_i = 0; d_i < 3; d_i++) { if (global.flag[51 + d_i] != 0) _amt_add += 1; if (global.flag[51 + d_i] == 1) _violenced += 1; if (global.flag[51 + d_i] == 2) _spared += 1; if (global.flag[51 + d_i] == 3) _pacified += 1; if (global.flag[51 + d_i] == 6) _frozened += 1; } if (_frozened > 0) global.flag[50 last_encounter_end] = 6; if (_pacified > 0) global.flag[50 last_encounter_end] = 3; if (_spared > 0) global.flag[50 last_encounter_end] = 2; if (_violenced > 0) global.flag[50 last_encounter_end] = 1; if (global.flag[50 last_encounter_end] == 6) global.flag[926 iceshocked_encounters]++; if (global.flag[54 encounter_pointer] != 0) { global.flag[global.flag[54 encounter_pointer]] = global.flag[50 last_encounter_end]; debug_message("encounter flag: global.flag[" + string(global.flag[54 encounter_pointer]) + "]=" + string(global.flag[50 last_encounter_end])); global.flag[54 encounter_pointer] = 0; } } event_user(11); debug_message("======="); } }
();
116
            }
117
        }
118
    }
119
    if (siner >= 64)
120
        instance_destroy();
121
}