Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_bq_baseball_final_Step_0

(view raw script w/o annotations or w/e)
1
if (state == 0 && vspeed >= (8 / f))
2
{
3
    acc += 0.1;
4
    vspeed += acc;
5
    if (vspeed > (24 / f))
6
        state = 1;
7
}
8
if (state == 1)
9
{
10
    acc -= 0.1;
11
    vspeed += acc;
12
    if (vspeed < (4 / f))
13
    {
14
        state = 2;
15
        vspeed = 4;
16
    }
17
}
18
if (hit == -1)
19
{
20
    if (image_xscale < 6)
21
    {
22
        image_xscale += 0.1;
23
        image_yscale += 0.1;
24
    }
25
    x = (xstart - 5) + irandom(10);
26
    y = (ystart - 5) + irandom(10);
27
    spin_speed = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); }
(spin_speed, 135, 1);
28
}
29
image_angle += spin_speed;
30
if (hit == 1)
31
{
32
    snd_stop(snd_quake_nes);
33
    hit_timer += 1;
34
    if (hit_timer == 1)
35
    {
36
        reticletimer = -999;
37
        repeat (3)
38
        {
39
            fakesplash = instance_create((x - 20) + irandom(40), (y - 20) + irandom(40), o_boxing_splash);
40
            fakesplash.friction = -0.5;
41
            fakesplash.sprite_index = spr_boxing_splash2;
42
            if (hit_direction == -1)
43
                fakesplash.hspeed = -1 - random(2);
44
            if (hit_direction == 1)
45
                fakesplash.hspeed = 1 + random(2);
46
            fakesplash.vspeed = 1 + random(2);
47
        }
48
        xbase = x;
49
        ybase = y;
50
    }
51
    if (hit_timer == (90 / f))
52
        snd_pitch(snd_play(snd_wing), 0.7);
53
    if (hit_timer == (160 / f))
54
        snd_pitch(snd_play(snd_wing), 1);
55
    if (hit_timer == (220 / f))
56
        snd_pitch(snd_play(snd_wing), 1.3);
57
    if (hit_timer > 0 && hit_timer < (40 / f))
58
    {
59
        x = (xbase + (40 / hit_timer)) - irandom(80 / hit_timer);
60
        y = (ybase + (40 / hit_timer)) - irandom(80 / hit_timer);
61
        player_basex = o_boxingcontroller.x;
62
        player_basey = o_boxingcontroller.y;
63
    }
64
    if (hit_timer > (90 / f) && hit_timer < (130 / f))
65
    {
66
        player_shake_timer++;
67
        o_boxingcontroller.x = (player_basex + (20 / player_shake_timer)) - irandom(40 / player_shake_timer);
68
        o_boxingcontroller.y = (player_basey + (20 / player_shake_timer)) - irandom(40 / player_shake_timer);
69
    }
70
    if (hit_timer == (130 / f))
71
        player_shake_timer = 0;
72
    if (hit_timer > (160 / f) && hit_timer < (200 / f))
73
    {
74
        player_shake_timer++;
75
        o_boxingcontroller.x = (player_basex + (20 / player_shake_timer)) - irandom(40 / player_shake_timer);
76
        o_boxingcontroller.y = (player_basey + (20 / player_shake_timer)) - irandom(40 / player_shake_timer);
77
    }
78
    if (hit_timer == (220 / f))
79
    {
80
        instance_create(x, y + 91, o_bq_screen_flash);
81
        with (obj_fx_speedlines)
82
            instance_destroy();
83
        var speedlines = instance_create(x, o_boxingcontroller.y - 144, obj_fx_speedlines);
84
        speedlines.offsety = true;
85
        speedlines.flashframe = true;
86
        speedlines.depth = o_bq_screen_flash.depth - 1;
87
        snd_play(snd_whip_throw_only);
88
    }
89
    if (hit_timer > (220 / f))
90
    {
91
        spin_speed = -135;
92
        vspeed = -64 / f;
93
    }
94
    else if (hit_timer > (30 / f))
95
    {
96
        spin_speed = 
scr_movetowards
scr_movetowards

function
scr_movetowards(arg0, arg1, arg2)
{ if (arg0 == arg1) return arg0; else if (arg0 > arg1) return max(arg0 - arg2, arg1); else return min(arg0 + arg2, arg1); }
(spin_speed, 0, 1);
97
    }
98
    if (y < -850)
99
    {
100
        instance_destroy();
101
        instance_create(x, y, obj_bq_baseball_final_hits_boss);
102
        snd_play(snd_queen_gasp);
103
    }
104
}
105
if (y > 20 && !instance_exists(o_bq_whitefade) && hit != 1)
106
    instance_create(x, y, o_bq_whitefade);