Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_audienceheart_Step_0

(view raw script w/o annotations or w/e)
1
event_inherited();
2
var _mainscale = 1.5;
3
switch (phase)
4
{
5
    case 0:
6
        pattern_time++;
7
        var _timebeforeturn = 11;
8
        var _timetolaunch = 32;
9
        if (pattern_time < (_timebeforeturn + 11))
10
        {
11
            image_xscale = _mainscale - lengthdir_x(max(0, (_mainscale / 2) - ((life_time * _mainscale) / 24)), (life_time * 66) % 360);
12
            image_yscale = image_xscale;
13
        }
14
        else if (pattern_time >= (_timetolaunch - 7))
15
        {
16
            switch (pattern_time - (_timetolaunch - 7))
17
            {
18
                case 0:
19
                    image_xscale = _mainscale * 1.2;
20
                    break;
21
                case 1:
22
                    image_xscale = _mainscale * 1.3;
23
                    break;
24
                case 2:
25
                    image_xscale = _mainscale * 1.38;
26
                    break;
27
                case 3:
28
                    image_xscale = _mainscale * 1.42;
29
                    break;
30
                default:
31
                    image_xscale = _mainscale * 1.45;
32
            }
33
            image_yscale = _mainscale + (_mainscale - image_xscale);
34
        }
35
        if (pattern_time >= _timebeforeturn)
36
        {
37
            speed = min(speed, 0.25);
38
            if (instance_exists(obj_heart))
39
            {
40
                var _dir = image_angle - 90;
41
                var _dest = point_direction(x, y, obj_heart.x, obj_heart.y);
42
                if (_dir < (_dest - 180))
43
                    _dir += 360;
44
                if (_dir > (_dest + 180))
45
                    _dir -= 360;
46
                if (_dir < _dest)
47
                    _dir = min(_dir + 2, _dest);
48
                else if (_dir > _dest)
49
                    _dir = max(_dest, _dir - 2);
50
                _dir = (_dir * 0.8) + (_dest * 0.2);
51
                image_angle = _dir + 90;
52
            }
53
        }
54
        if (pattern_time == (_timetolaunch - 1))
55
        {
56
            var _trail = instance_create_depth(x, y, 0, obj_pinktrail);
57
            _trail.visible = 1;
58
            _trail.sprite_index = sprite_index;
59
            _trail.image_angle = image_angle;
60
            _trail.image_xscale = _mainscale * 0.875;
61
            _trail.image_yscale = _mainscale * 1.125;
62
            _trail.direction = image_angle - 90;
63
            _trail.speed = 5;
64
        }
65
        if (pattern_time >= _timetolaunch)
66
        {
67
            direction = image_angle - 90;
68
            pattern_time = 0;
69
            phase++;
70
        }
71
        break;
72
    case 1:
73
        pattern_time++;
74
        if (pattern_time == 10)
75
        {
76
            snd_stop(snd_heartshot_dr_b);
77
            snd_play_x(snd_heartshot_dr_b, 0.5, 0.5);
78
        }
79
        speed += (0.25 + (pattern_time / 32));
80
        switch (pattern_time)
81
        {
82
            case 1:
83
                image_xscale = _mainscale * 1.42;
84
                break;
85
            case 2:
86
                image_xscale = _mainscale * 1.24;
87
                break;
88
            case 3:
89
                image_xscale = _mainscale * 1.16;
90
                break;
91
            case 4:
92
                image_xscale = _mainscale * 1.08;
93
                break;
94
            case 5:
95
                image_xscale = _mainscale * 1.04;
96
                break;
97
            case 6:
98
                image_xscale = _mainscale * 1.01;
99
                break;
100
            default:
101
                image_xscale *= 0.98;
102
        }
103
        image_yscale = _mainscale + (_mainscale - image_xscale);
104
        if ((pattern_time % 2) == 0)
105
        {
106
            var _trail = instance_create_depth(x, y, 0, obj_pinktrail);
107
            _trail.visible = 1;
108
            _trail.sprite_index = sprite_index;
109
            _trail.image_angle = image_angle;
110
            _trail.image_xscale = image_xscale;
111
            _trail.image_yscale = image_yscale;
112
        }
113
        break;
114
}
115
life_time++;