Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_gerson_shell_kick_controller_Step_0

(view raw script w/o annotations or w/e)
1
if (global.turntimer < 1 || global.fighting == 0)
2
{
3
    image_alpha -= 0.2;
4
    if (image_alpha < 0.1)
5
    {
6
        instance_destroy();
7
        exit;
8
    }
9
}
10
timer++;
11
if (full_timer < 999)
12
    full_timer--;
13
if (timer == 12)
14
{
15
    x = obj_hammer_of_justice_enemy.x;
16
    y = obj_hammer_of_justice_enemy.y;
17
    visible = true;
18
    sprite_index = spr_gerson_swing;
19
    image_index = 0;
20
    obj_hammer_of_justice_enemy.visible = false;
21
    snd_play(snd_boost);
22
    my_flash = 
scr_oflash
scr_oflash

function
scr_oflash()
{ _oflash = instance_create(x, y, obj_oflash); _oflash.image_xscale = image_xscale; _oflash.image_speed = 0; _oflash.image_index = image_index; _oflash.image_yscale = image_yscale; _oflash.sprite_index = sprite_index; _oflash.depth = depth - 1; _oflash.target = id; return _oflash; }
();
23
    
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 + 48, 12, 2, "out");
24
}
25
if (timer >= 12 && timer < 24 && (timer % 3) == 0)
26
{
27
    with (
scr_oflash
scr_oflash

function
scr_oflash()
{ _oflash = instance_create(x, y, obj_oflash); _oflash.image_xscale = image_xscale; _oflash.image_speed = 0; _oflash.image_index = image_index; _oflash.image_yscale = image_yscale; _oflash.sprite_index = sprite_index; _oflash.depth = depth - 1; _oflash.target = id; return _oflash; }
())
28
    {
29
        depth += 1;
30
        flashcolor = c_lime;
31
    }
32
}
33
if (timer == 24)
34
{
35
    
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);
36
    snd_play(motor_upper_quick_mid);
37
}
38
if (timer == 32)
39
{
40
    snd_play(snd_rudebuster_swing);
41
    
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); }
();
42
    with (instance_create((x + 100) - 42, (y + 90) - 86, obj_gerson_shell_pinball))
43
    {
44
        
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; }
();
45
        direction = 
scr_at_player
scr_at_player

function
scr_at_player(arg0 = x, arg1 = y)
{ return point_direction(arg0, arg1, obj_heart.x + (obj_heart.sprite_width / 2), obj_heart.y + (obj_heart.sprite_height / 2)); }
(x, y);
46
        speed = 12;
47
        depth -= 1;
48
        image_xscale += 0.25;
49
        image_yscale += 0.25;
50
        active = 1;
51
        target = 3;
52
        damage = 1;
53
        grazed = 0;
54
        grazepoints = 2.5;
55
        destroyonhit = false;
56
    }
57
}
58
if (timer == 40)
59
{
60
    if (shell_counter == 1)
61
    {
62
        visible = false;
63
        with (instance_create(x + 58, y + 36, obj_gerson_teleport_generic))
64
            
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; }
(instance_destroy, 7);
65
    }
66
    else
67
    {
68
        timer = 23;
69
        shell_counter++;
70
    }
71
}
72
if (full_timer < 4 && ending_counter == 0)
73
{
74
    ending_counter = 1;
75
    instance_create(obj_hammer_of_justice_enemy.x + 68, obj_hammer_of_justice_enemy.y + 36, obj_gerson_teleport_generic);
76
}
77
if (full_timer < 2 && ending_counter == 1)
78
{
79
    ending_counter = 2;
80
    global.turntimer = 1;
81
}
82
if (global.turntimer < 1)
83
{
84
    with (obj_gerson_teleport_generic)
85
        instance_destroy();
86
    with (obj_hammer_of_justice_enemy)
87
        visible = true;
88
    instance_destroy();
89
}