Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_shootout_window_Other_12

(view raw script w/o annotations or w/e)
1
var _xstart = 0;
2
var _ystart = 0;
3
switch (char_state)
4
{
5
    case "init":
6
        char_state = "idle";
7
        break;
8
    case "idle":
9
        char_x = 0;
10
        hit = 0;
11
        armindex = 0;
12
        if (insta)
13
        {
14
            timerc = 8 + irandom(25);
15
            if (i_ex(obj_tenna_zoom) && obj_tenna_zoom.minigameinsanity == true && obj_tenna_zoom.minigameinsanitytimermax <= 40)
16
                timerc = 45;
17
            yextra = 0;
18
            char_y = 0;
19
            headangle = 0;
20
            bodyangle = 0;
21
            armangle = -10;
22
            drawinfront = true;
23
            image_index = 3;
24
            insta = false;
25
        }
26
        if (timerc < 70)
27
            timerc++;
28
        if (timerc < 16)
29
        {
30
            yextra = lerp(-120, 0, timerc / 15);
31
            char_y = lerp(char_y + 60, (_xstart - 0) + yextra, timerc / 15);
32
            headangle = lerp(-15, 0, timerc / 15);
33
            bodyangle = lerp(-10, 0, timerc / 15);
34
        }
35
        if (timerc > 2 && image_index < 3)
36
        {
37
            image_index += (1/3);
38
            if (image_index == 1)
39
            {
40
                snd_stop(snd_board_throw);
41
                snd_play_x(snd_board_throw, 0.5, 1.3 + random_range(-0.1, 0.3));
42
            }
43
        }
44
        if (timerc == 10)
45
            drawinfront = true;
46
        if (timerc > 3 && timerc < 19)
47
            armangle = lerp(armangle, -10, (timerc - 3) / 15);
48
        if ((i_ex(obj_tenna_minigame_ui) && obj_tenna_minigame_ui.timer > 254) || (i_ex(obj_tenna_zoom) && obj_tenna_zoom.con != 1 && obj_tenna_zoom.minigameinsanity == false))
49
        {
50
            char_state = "preoutro";
51
            char_timer = -1;
52
            timerc = 0;
53
        }
54
        else if (timerc == 70 || insta)
55
        {
56
            char_state = "shoot";
57
            char_timer = -1;
58
            timerc = 0;
59
        }
60
        break;
61
    case "shoot":
62
        timerc++;
63
        if (timerc == 1)
64
        {
65
            armindex = 1;
66
            armangle = -15;
67
            var gunx = x - 60;
68
            var guny = y + 60;
69
            var shot = instance_create_depth(gunx, guny, -9999, obj_shootout_vfx_mockup_shot);
70
            shot.enemy = 1;
71
            shot.targetx = camerax() + 120;
72
            shot.targety = cameray() + 310;
73
            shot.sprite_index = spr_smallbullet;
74
            with (obj_shootout_controller)
75
                krishit = true;
76
            var impactfx = instance_create(gunx, guny, obj_animation);
77
            impactfx.sprite_index = spr_attack_slap2;
78
            impactfx.image_speed = 2;
79
            impactfx.image_xscale = 1;
80
            impactfx.image_yscale = 1;
81
            impactfx.image_blend = c_white;
82
            impactfx.depth = depth - 10;
83
            impactfx = instance_create(gunx, guny, obj_animation);
84
            impactfx.sprite_index = spr_attack_slap2;
85
            impactfx.image_speed = 1;
86
            impactfx.image_xscale = 1;
87
            impactfx.image_yscale = 1;
88
            impactfx.image_blend = c_red;
89
            impactfx.depth = depth - 10;
90
            for (var i = 0; i < 8; i++)
91
            {
92
                var smokefx = 
scr_marker
scr_marker

function
scr_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; } return thismarker; }
(gunx, guny, spr_slidedust);
93
                smokefx.hspeed = random_range(-2, 8);
94
                smokefx.gravity_direction = 180;
95
                smokefx.gravity = 2 - random(0.4);
96
                smokefx.image_speed = 0.2;
97
                smokefx.image_xscale = 2 + random(1);
98
                smokefx.image_yscale = 2 + random(1);
99
                smokefx.vspeed = random_range(-4, 0);
100
                scr_lerp_var_instance(smokefx, "image_alpha", 0.6, 0, 12);
101
                
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(smokefx, 12);
102
            }
103
        }
104
        if (timerc == 2)
105
        {
106
            armindex = 0;
107
            armangle = -80;
108
            headangle = 15;
109
            bodyangle = 15;
110
        }
111
        headangle = lerp(headangle, 0, timerc / 15);
112
        bodyangle = lerp(bodyangle, 0, timerc / 15);
113
        armangle = lerp(armangle, 0, timerc / 15);
114
        if (timerc == 10)
115
        {
116
            char_state = "preoutro";
117
            char_timer = -1;
118
            timerc = 0;
119
        }
120
        break;
121
    case "hit":
122
        timerc++;
123
        if (timerc == 1)
124
        {
125
            headangle = -20;
126
            bodyangle = -20;
127
            armangle = -10;
128
            char_x = _xstart + 21;
129
            char_y = 0;
130
            if (i_ex(obj_shootout_controller))
131
            {
132
                if (obj_shootout_controller.totalhits > 8)
133
                    
scr_tenna_add_score
scr_tenna_add_score

function
scr_tenna_add_score(arg0)
{ if (i_ex(obj_tenna_enemy_bg)) { var _multiplier = 1; var _multi_minigame_adjustment = 1; if (obj_tenna_enemy.minigameactivated) { if (obj_tenna_enemy.minigamecount >= 6) _multi_minigame_adjustment = 0.65; _multiplier = (obj_tenna_enemy.pointsmultiplierthisturn + obj_tenna_enemy.pointsmultiplier) * _multi_minigame_adjustment; obj_tenna_enemy.pointsmultiplierthisturn -= 1; if (obj_tenna_enemy.pointsmultiplierthisturn < 1) obj_tenna_enemy.pointsmultiplierthisturn = 1; } if (!i_ex(obj_tenna_zoom)) obj_tenna_enemy_bg.addscore += round(arg0 * _multiplier); else if (i_ex(obj_tenna_minigame_ui)) obj_tenna_minigame_ui.myscore += round(arg0 * _multiplier); } }
(1);
134
                else if (obj_shootout_controller.totalhits > 4)
135
                    
scr_tenna_add_score
scr_tenna_add_score

function
scr_tenna_add_score(arg0)
{ if (i_ex(obj_tenna_enemy_bg)) { var _multiplier = 1; var _multi_minigame_adjustment = 1; if (obj_tenna_enemy.minigameactivated) { if (obj_tenna_enemy.minigamecount >= 6) _multi_minigame_adjustment = 0.65; _multiplier = (obj_tenna_enemy.pointsmultiplierthisturn + obj_tenna_enemy.pointsmultiplier) * _multi_minigame_adjustment; obj_tenna_enemy.pointsmultiplierthisturn -= 1; if (obj_tenna_enemy.pointsmultiplierthisturn < 1) obj_tenna_enemy.pointsmultiplierthisturn = 1; } if (!i_ex(obj_tenna_zoom)) obj_tenna_enemy_bg.addscore += round(arg0 * _multiplier); else if (i_ex(obj_tenna_minigame_ui)) obj_tenna_minigame_ui.myscore += round(arg0 * _multiplier); } }
(2);
136
                else
137
                    
scr_tenna_add_score
scr_tenna_add_score

function
scr_tenna_add_score(arg0)
{ if (i_ex(obj_tenna_enemy_bg)) { var _multiplier = 1; var _multi_minigame_adjustment = 1; if (obj_tenna_enemy.minigameactivated) { if (obj_tenna_enemy.minigamecount >= 6) _multi_minigame_adjustment = 0.65; _multiplier = (obj_tenna_enemy.pointsmultiplierthisturn + obj_tenna_enemy.pointsmultiplier) * _multi_minigame_adjustment; obj_tenna_enemy.pointsmultiplierthisturn -= 1; if (obj_tenna_enemy.pointsmultiplierthisturn < 1) obj_tenna_enemy.pointsmultiplierthisturn = 1; } if (!i_ex(obj_tenna_zoom)) obj_tenna_enemy_bg.addscore += round(arg0 * _multiplier); else if (i_ex(obj_tenna_minigame_ui)) obj_tenna_minigame_ui.myscore += round(arg0 * _multiplier); } }
(3);
138
                obj_shootout_controller.totalhits++;
139
            }
140
        }
141
        if (timerc == 2)
142
            char_x = _xstart - 18;
143
        if (timerc == 3)
144
            char_x = _xstart + 15;
145
        if (timerc == 4)
146
            char_x = _xstart - 12;
147
        if (timerc == 5)
148
            char_x = _xstart + 9;
149
        if (timerc == 6)
150
            char_x = _xstart - 6;
151
        if (timerc == 7)
152
            char_x = _xstart + 3;
153
        if (timerc == 8)
154
            char_x = _xstart;
155
        if (timerc > 10)
156
        {
157
            char_y = lerp(char_y, _ystart + 90, (timerc - 10) / 10);
158
            drawinfront = false;
159
            if (image_index > 0.4)
160
                image_index -= (1/3);
161
            else
162
                image_index = 0;
163
        }
164
        if (timerc > 20)
165
        {
166
            timerc = 0;
167
            char_state = "outro";
168
            char_timer = -1;
169
        }
170
        break;
171
    case "preoutro":
172
        timerc++;
173
        char_y = lerp(char_y, _ystart + 90, timerc / 10);
174
        if (image_index > 0.4)
175
            image_index -= (1/3);
176
        else
177
            image_index = 0;
178
        drawinfront = false;
179
        if (timerc == 10)
180
        {
181
            char_state = "outro";
182
            char_timer = -1;
183
            timerc = 0;
184
        }
185
        break;
186
    case "outro":
187
        state = "closing";
188
        timer = 0;
189
        timerc = 0;
190
        break;
191
}
192
var _col = 16777215;
193
if (char_state == "idle" && timerc > 35)
194
    _col = merge_color(c_white, c_red, (timerc - 35) / 35);
195
if (char_state == "idle" && timerc < 3)
196
    exit;
197
if (char_state == "hit")
198
{
199
    draw_sprite_ext(spr_shootout_tenna_hit, 0, (char_x - 5) + sprite_xoffset, (char_y - 8) + sprite_yoffset, scale, scale, 0, image_blend, 1);
200
    exit;
201
}
202
draw_sprite_ext(spr_shootout_tenna_shoot_pieces, 0, char_x + sprite_xoffset, char_y + sprite_yoffset, scale, scale, headangle, _col, 1);
203
draw_sprite_ext(spr_shootout_tenna_shoot_pieces, 1, char_x + sprite_xoffset, char_y + sprite_yoffset, scale, scale, bodyangle, _col, 1);
204
draw_sprite_ext(spr_shootout_tenna_shoot_pieces2, armindex, char_x + (8 * scale) + sprite_xoffset, char_y + (6 * scale) + sprite_yoffset, scale, scale, armangle, _col, 1);