Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_susiezilla_house_single_Step_0

(view raw script w/o annotations or w/e)
1
if (type != 99)
2
{
3
    
scr_depth
scr_depth

function
scr_depth()
{ if (argument_count > 0) { with (argument0) depth = 100000 - ((y * 10) + (sprite_height * 10)); } else { depth = 100000 - ((y * 10) + (sprite_height * 10)); } }
();
4
    depth += 2000;
5
    if (i_ex(obj_tenna_enemy))
6
        depth = 1000 - y;
7
}
8
if (type == 99)
9
{
10
    if (solidmade == 0)
11
    {
12
        mysolid = instance_create(x + 4, (y + 40) - 14, obj_solidblocksized);
13
        with (mysolid)
14
        {
15
            image_xscale = 0.8;
16
            image_yscale = 0.35;
17
        }
18
        solidmade = 1;
19
    }
20
}
21
if (hitstop <= 0)
22
{
23
    iframes--;
24
    if (myhealth <= 0)
25
    {
26
        if (!explo)
27
        {
28
            snd_stop(snd_punchmed);
29
            snd_stop(snd_explosion_mmx);
30
            snd_play(snd_explosion_mmx);
31
            var explosion = instance_create(x, y, obj_marker_animateOnce);
32
            explosion.image_speed = 0.5;
33
            explosion.depth = depth - 100;
34
            explosion.sprite_index = spr_susiezilla_houseexplosion;
35
            
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
(explosion);
36
            explo = true;
37
            image_index = 1;
38
            if (dontsayperfect == false)
39
                
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);
40
            with (obj_susiezilla_gamecontroller)
41
            {
42
                if (perfect_timer == -1 || perfect_timer > 0)
43
                {
44
                    perfect_timer = 15;
45
                    perfect_counter--;
46
                    if (perfect_counter == 0 && other.dontsayperfect == false)
47
                    {
48
                        snd_play(snd_applause);
49
                        snd_play(snd_crowd_ooh);
50
                        instance_create_depth(clamp(other.x + 20, xorig + 160, (xorig + width) - 160), other.y + 30, depth - 900000, obj_susiezilla_perfect_chain);
51
                        with (obj_susiezilla_singlescreen_hud_score)
52
                            score_change(50);
53
                        
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); } }
(20);
54
                    }
55
                }
56
            }
57
            if (i_ex(obj_susiezilla_statue))
58
                instance_create_depth(x + 20, y + 20, obj_susiezilla_statue.depth - 1, obj_susiezilla_repair_spark);
59
        }
60
    }
61
    if (myhealth > 0 && iframes < 0)
62
    {
63
        var makesplash = 0;
64
        if (place_meeting(x, y, obj_susiezilla_player))
65
        {
66
            var suplay = instance_place(x, y, obj_susiezilla_player);
67
            if (suplay.hitactive && sprite_index == spr_susiezilla_house && image_index == 0 && (obj_susiezilla_gamecontroller.alarm[0] > 1 || obj_susiezilla_gamecontroller.mode == 5 || obj_susiezilla_gamecontroller.mode == 6))
68
            {
69
                iframes = 10;
70
                with (suplay)
71
                    event_user(0);
72
                suplay.hitstop = 2;
73
                hitstop = 4;
74
                drawshake = hitstop;
75
                myhealth--;
76
                snd_stop(snd_punchmed);
77
                snd_play(snd_punchmed);
78
                makesplash = true;
79
                if (suplay.dashcon == 2)
80
                    suplay.dashtimer = max(0, suplay.dashtimer - 10);
81
            }
82
        }
83
        with (obj_susiezilla_singlescreen_shadowguy_in_dozer)
84
        {
85
            if (collision_rectangle(x - 64, y + 24, x + 64, y - 40, other.id, false, true))
86
            {
87
                with (other.id)
88
                {
89
                    iframes = 10;
90
                    hitstop = 4;
91
                    drawshake = hitstop;
92
                    myhealth--;
93
                    snd_stop(snd_punchmed);
94
                    snd_play(snd_punchmed);
95
                    makesplash = true;
96
                }
97
                break;
98
            }
99
        }
100
        if (place_meeting(x, y, obj_susiezilla_activehitbox))
101
        {
102
            var _hit = instance_place(x, y, obj_susiezilla_activehitbox);
103
            if (_hit.daddy.canhit == 1)
104
            {
105
                iframes = 10;
106
                hitstop = 4;
107
                drawshake = hitstop;
108
                myhealth--;
109
                snd_stop(snd_punchmed);
110
                snd_play(snd_punchmed);
111
                makesplash = true;
112
            }
113
        }
114
        if (makesplash)
115
        {
116
            makesplash = false;
117
            var hitmarker = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(x + 0, y, spr_dogcar_hit);
118
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(hitmarker, 4);
119
            
scr_scale
scr_scale

function
scr_scale()
{ if (argument_count == 1) { image_xscale = argument0; image_yscale = argument0; } if (argument_count == 2) { with (argument1) { image_xscale = argument0; image_yscale = argument0; } } } function scr_set_scale() { if (argument_count == 2) { image_xscale = argument0; image_yscale = argument1; } if (argument_count == 3) { with (argument2) { image_xscale = argument0; image_yscale = argument1; } } }
(3, hitmarker);
120
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(hitmarker, "image_xscale", hitmarker.image_xscale, 1, 4);
121
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7)
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(hitmarker, "image_yscale", hitmarker.image_yscale, 1, 4);
122
            hitmarker.depth = depth - 100;
123
        }
124
    }
125
}
126
hitstop--;
127
if (type == 1)
128
{
129
    delay--;
130
    if (delay <= 0)
131
    {
132
        siner++;
133
        x -= 8;
134
    }
135
}
136
if (type == 2)
137
{
138
    timer++;
139
    if (timer == 1)
140
    {
141
        path_start(path_house2, 12, path_action_restart, true);
142
        path_position = _path_position;
143
    }
144
    image_blend = c_red;
145
}
146
if (type == 3)
147
{
148
    delay--;
149
    if (delay <= 0)
150
    {
151
        x += 24;
152
        if (x > 700)
153
            x = 0;
154
    }
155
}
156
if (type == 4)
157
{
158
    timer++;
159
    if (timer == 1)
160
        path_start(path_house3, 10, path_action_restart, true);
161
}
162
if (type == 5)
163
{
164
    timer++;
165
    if (timer == 1)
166
    {
167
        path_start(path_house1, 10, path_action_restart, true);
168
        path_position = _path_position;
169
    }
170
}
171
myxcenter = x + 20;
172
myycenter = y + 20;
173
if (room == room_dw_teevie_susiezilla)
174
{
175
    if (sprite_index == spr_susiezilla_house)
176
    {
177
        if (myhealth == 0)
178
        {
179
            brokemefail++;
180
            if (brokemefail > 3)
181
            {
182
                
scr_marker_ext
scr_marker_ext

function
scr_marker_ext(arg0, arg1, arg2, arg3 = 1, arg4 = 1, arg5 = 0, arg6 = 0, arg7 = 16777215, arg8 = depth, arg9 = false, arg10 = -1, arg11 = 1)
{ var thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { depth = arg8; sprite_index = arg2; image_speed = arg5; image_xscale = arg3; image_yscale = arg4; image_index = arg6; image_blend = arg7; image_alpha = arg11; if (arg9)
scr_depth();
} if (arg10 > 0)
scr_doom(thismarker, arg10);
return thismarker; }
(x, y, sprite_index, 2, 2, 0, image_index, image_blend, depth);
183
                instance_destroy();
184
                exit;
185
            }
186
        }
187
    }
188
}