Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_hammer_bounce_controller_Step_0

(view raw script w/o annotations or w/e)
1
timer++;
2
full_timer++;
3
switch (timer)
4
{
5
    case 15:
6
        visible = false;
7
        instance_create(x + 64, y + 36, obj_gerson_teleport_generic);
8
        x = obj_growtangle.x + 80;
9
        y = obj_growtangle.y - 20;
10
        anchor_x = x;
11
        anchor_y = y;
12
        break;
13
    case 19:
14
        with (obj_gerson_teleport_generic)
15
            instance_destroy();
16
        sprite_index = spr_gerson_swing;
17
        instance_create(x + 58, y + 36, obj_gerson_teleport_generic);
18
        break;
19
    case 23:
20
        with (obj_gerson_teleport_generic)
21
            instance_destroy();
22
        visible = true;
23
        image_index = 0;
24
        image_speed = 0;
25
        
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_index", 0, 6, 12);
26
        snd_play(motor_upper_quick_mid);
27
        break;
28
    case 31:
29
        snd_play(snd_queen_punched_lower);
30
        
scr_shakeobj
scr_shakeobj

function
scr_shakeobj()
{ var _shakeobj = instance_create(x, y, obj_shakeobj); _shakeobj.target = id; if (argument_count >= 1) { if (i_ex(argument0)) _shakeobj.target = argument0; } if (argument_count >= 2) { if (argument1 != -1) _shakeobj.shakeamt = argument1; } if (argument_count >= 3) { if (argument2 != -1) _shakeobj.shakereduct = argument2; } with (_shakeobj) event_user(0); }
();
31
        with (obj_growtangle)
32
        {
33
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("x", x, x - 80, 10, 2, "out");
34
            
scr_lerpvar
scr_lerpvar

function
scr_lerpvar()
{ if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
return ___lerpvar; } function scr_lerpvar_respect() { if (argument_count < 6) ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3]);
else ___lerpvar =
scr_lerpvar_instance(id, argument[0], argument[1], argument[2], argument[3], argument[4], argument[5]);
___lerpvar.respectglobalinteract = true; return ___lerpvar; }
("image_angle", image_angle, image_angle + 180, 12, 2, "out");
35
        }
36
        break;
37
    case 42:
38
        hammer_phase = 0;
39
        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; }
(scr_lerpvar, 4, "x", x, anchor_x + 60, 8, 2, "out");
40
        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; }
(scr_lerpvar, 4, "y", y, anchor_y, 8, 2, "out");
41
        sprite_index = spr_gerson_hammer_throw;
42
        image_index = 0;
43
        break;
44
}
45
if (timer > 30 && timer < 41)
46
{
47
    with (obj_growtangle)
48
    {
49
        with (
scr_afterimagefast
scr_afterimagefast

function
scr_afterimagefast()
{ afterimage = instance_create(x, y, obj_afterimage); afterimage.sprite_index = sprite_index; afterimage.image_index = image_index; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth; afterimage.image_xscale = image_xscale; afterimage.image_yscale = image_yscale; afterimage.image_angle = image_angle; afterimage.fadeSpeed = 0.08; return afterimage; }
())
50
            fadeSpeed *= 3;
51
    }
52
}
53
if (hammer_phase == 0)
54
{
55
    hammer_timer++;
56
    if (hammer_timer == hammer_timer_goal)
57
    {
58
        hammer_timer = 0;
59
        hammer_timer_goal = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(hammer_timer_goal, 14, 3);
60
        snd_stop(snd_smallswing);
61
        snd_play_pitch(snd_smallswing, 1 + random(0.3));
62
        with (instance_create((x + 100) - 42, (y + 90) - 86, obj_gerson_hammer_bounce_left))
63
        {
64
            
scr_bullet_init
scr_bullet_init

function
scr_bullet_init()
{ grazed = 0; grazetimer = 0; destroyonhit = 1; target = 0; inv = 60; damage = 10; element = 0; grazepoints = 1; timepoints = 1; active = 1; updateimageangle = 0; }
();
65
            
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
66
            image_xscale += 0.5;
67
            image_yscale += 0.5;
68
            hspeed = -15;
69
            depth -= 1;
70
            active = 1;
71
            target = 3;
72
            damage = 1;
73
            grazed = 0;
74
            grazepoints = 2.5;
75
        }
76
        var new_x = 0;
77
        if (x < anchor_x)
78
            new_x = 30 + irandom(30);
79
        else if (x > anchor_x)
80
            new_x = -30 - irandom(30);
81
        else
82
            new_x = choose(-60, 60);
83
        var ypos = clamp(obj_heart.y + 10 + irandom_range(-20, 20), 
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(1) + 10,
scr_get_box
scr_get_box

function
scr_get_box(arg0)
{ switch (arg0) { case 0: return obj_growtangle.x + (obj_growtangle.sprite_width * 0.5); break; case 1: return obj_growtangle.y - (obj_growtangle.sprite_height * 0.5); break; case 2: return obj_growtangle.x - (obj_growtangle.sprite_width * 0.5); break; case 3: return obj_growtangle.y + (obj_growtangle.sprite_height * 0.5); break; case 4: return obj_growtangle.x; break; case 5: return obj_growtangle.y; break; return false; } }
(3) - 20);
84
        
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; }
(scr_jump_arc, 4, id, x, y, anchor_x + new_x, ypos, 40, 8);
85
        sprite_index = spr_gerson_hammer_throw;
86
        image_index = 0.1;
87
        if (hammer_timer_goal == 14)
88
            hammer_counter++;
89
        if (hammer_counter == 5)
90
        {
91
            hammer_counter = 0;
92
            hammer_timer = -8;
93
            hammer_phase = 1;
94
        }
95
    }
96
}
97
if (hammer_phase == 1)
98
{
99
    hammer_timer++;
100
    if (hammer_timer == 1)
101
    {
102
        snd_play_pitch(snd_jump, 2);
103
        
scr_jump_arc
scr_jump_arc

function
scr_jump_arc(arg0 = id, arg1 = x, arg2 = y, arg3, arg4, arg5, arg6)
{ var _jump = instance_create(0, 0, obj_jump_arc); with (_jump) { master = arg0; origx = arg1; origy = arg2; goalx = arg3; goaly = arg4; zheight = arg5; time = arg6; jump_start(); } return _jump; }
(id, x, y, anchor_x, anchor_y, y - (__view_get(e__VW.YView, 0) + 60), 32);
104
        image_index = 0;
105
    }
106
    if (hammer_timer == 21)
107
    {
108
        with (obj_jump_arc)
109
            instance_destroy();
110
        y -= z;
111
        z = 0;
112
        snd_play(snd_boost);
113
        with (
scr_custom_afterimage_ext
scr_custom_afterimage_ext

function
scr_custom_afterimage_ext(arg0, arg1, arg2, arg3, arg4, arg5, arg6)
{ afterimage = instance_create(arg3, arg4, arg0); afterimage.sprite_index = arg1; afterimage.image_index = arg2; afterimage.image_blend = image_blend; afterimage.image_speed = 0; afterimage.depth = depth + 1; afterimage.image_angle = image_angle; afterimage.image_xscale = arg5; afterimage.image_yscale = arg6; return afterimage; }
(obj_oflash, sprite_index, image_index, x, y - z, image_xscale, image_yscale))
114
        {
115
            target = other.id;
116
            image_index = other.image_index;
117
            image_speed = 0;
118
            depth = other.depth - 1;
119
        }
120
        hammer_timer = 15;
121
        hammer_phase = 2;
122
        hammer_timer_goal = 25;
123
    }
124
}
125
if (hammer_phase == 2)
126
{
127
    hammer_timer++;
128
    if (hammer_timer == hammer_timer_goal)
129
    {
130
        var xoff = clamp(obj_heart.x + 10 + irandom_range(-15, 15), obj_growtangle.x - 60, obj_growtangle.x + 60);
131
        snd_stop(snd_smallswing);
132
        snd_play_pitch(snd_smallswing, 1 + random(0.3));
133
        sprite_index = spr_gerson_hammer_throw;
134
        image_index = 0.1;
135
        with (instance_create((x + 100) - 42, (y + 90) - 86, obj_gerson_hammer_bounce_down))
136
        {
137
            
scr_bullet_init
scr_bullet_init

function
scr_bullet_init()
{ grazed = 0; grazetimer = 0; destroyonhit = 1; target = 0; inv = 60; damage = 10; element = 0; grazepoints = 1; timepoints = 1; active = 1; updateimageangle = 0; }
();
138
            
scr_darksize
scr_darksize

function
scr_darksize()
{ var inst = id; if (argument_count) inst = argument0; inst.image_xscale = 2; inst.image_yscale = 2; }
();
139
            image_xscale += 2;
140
            image_yscale += 2;
141
            direction = point_direction(x, y, obj_heart.x, obj_heart.y);
142
            speed = 14;
143
            depth -= 1;
144
            active = 1;
145
            target = 3;
146
            damage = 1;
147
            grazed = 0;
148
            grazepoints = 2.5;
149
            destroyonhit = false;
150
        }
151
        hammer_timer = 0;
152
    }
153
}
154
if ((403 - full_timer) < 8 && ending_counter == 0)
155
{
156
    ending_counter = 1;
157
    visible = false;
158
    instance_create(x, y - 40, obj_gerson_teleport_generic);
159
}
160
if ((403 - full_timer) < 4 && ending_counter == 1)
161
{
162
    ending_counter = 2;
163
    with (obj_gerson_teleport_generic)
164
        instance_destroy();
165
    instance_create(obj_hammer_of_justice_enemy.x + 68, obj_hammer_of_justice_enemy.y + 36, obj_gerson_teleport_generic);
166
}
167
if ((403 - full_timer) < 2 && ending_counter == 2)
168
{
169
    ending_counter = 3;
170
    global.turntimer = 1;
171
}
172
if (global.turntimer < 1)
173
{
174
    with (obj_gerson_teleport_generic)
175
        instance_destroy();
176
    with (obj_hammer_of_justice_enemy)
177
        visible = true;
178
    instance_destroy();
179
}
180
if (sprite_index == spr_gerson_hammer_throw && image_index > 0)
181
{
182
    image_index = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(image_index, 3, 0.5);
183
    if (image_index == 3)
184
        image_index = 0;
185
}
186
with (obj_heart)
187
{
188
    if (place_meeting(x, y, obj_battlesolid))
189
    {
190
        x += lengthdir_x(1, point_direction(x + 10, y + 10, obj_growtangle.x, obj_growtangle.y));
191
        y += lengthdir_y(1, point_direction(x + 10, y + 10, obj_growtangle.x, obj_growtangle.y));
192
    }
193
}
194
195
enum e__VW
196
{
197
    XView,
198
    YView,
199
    WView,
200
    HView,
201
    Angle,
202
    HBorder,
203
    VBorder,
204
    HSpeed,
205
    VSpeed,
206
    Object,
207
    Visible,
208
    XPort,
209
    YPort,
210
    WPort,
211
    HPort,
212
    Camera,
213
    SurfaceID
214
}