Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_mike_battle_Step_0

(view raw script w/o annotations or w/e)
1
blush -= 1;
2
if (i_ex(obj_encountermike))
3
{
4
}
5
else if (i_ex(obj_mike_attack_controller) || i_ex(obj_mike_minigame_controller))
6
{
7
    if (!battle_start)
8
    {
9
        speed = 0;
10
        battle_start = true;
11
    }
12
    if (action == 2)
13
    {
14
        timer += 1;
15
        if (timer == 30)
16
        {
17
            action = 0;
18
            timer = 0;
19
        }
20
    }
21
    if (action == 0)
22
    {
23
        if (!sad)
24
        {
25
            if (move)
26
                x = 
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; }
(x, xstart + 300, spd);
27
            else
28
                x = 
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; }
(x, newx, spd);
29
        }
30
        else if (y > ystart)
31
        {
32
            vspeed = 0;
33
            y = ystart;
34
            gravity = 0;
35
        }
36
        if (x > (camerax() + camerawidth() + 64))
37
        {
38
            if (sprite_index == spr_mike_med_sad)
39
                sprite_index = spr_mike_med;
40
        }
41
        if (x == newx)
42
        {
43
            with (obj_mike_attack_controller)
44
                canclick = true;
45
        }
46
        else
47
        {
48
            with (obj_mike_attack_controller)
49
                canclick = false;
50
        }
51
    }
52
    if (action == 1)
53
    {
54
        x = 
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; }
(x, xstart + 300, 16);
55
        if (x == (xstart + 300))
56
        {
57
            action = 2;
58
            phase += 1;
59
            switch (phase)
60
            {
61
                case 1:
62
                    sprite_index = spr_mike_med;
63
                    break;
64
                case 2:
65
                    sprite_index = spr_mike_big;
66
                    break;
67
                default:
68
                    sprite_index = spr_mike_small;
69
                    break;
70
            }
71
            if (type == 2 && instance_number(obj_mike_battle) == 1)
72
            {
73
                type = 0;
74
                sprite_index = spr_mike_small;
75
                obj_mike_attack_controller.mike_small = id;
76
                with (instance_create(xstart + 80, y + 25, obj_mike_battle))
77
                {
78
                    sprite_index = spr_mike_big;
79
                    x = xstart + 300;
80
                    image_xscale = 2;
81
                    image_yscale = 2;
82
                    type = 1;
83
                    depth = other.depth - 1;
84
                    obj_mike_attack_controller.mike_big = id;
85
                }
86
                with (instance_create(xstart + 80, y - 100, obj_mike_battle))
87
                {
88
                    sprite_index = spr_mike_med;
89
                    x = xstart + 300;
90
                    image_xscale = 2;
91
                    image_yscale = 2;
92
                    type = 1;
93
                    obj_mike_attack_controller.mike_medium = id;
94
                }
95
            }
96
        }
97
    }
98
    xscale2 = 1 + (sin(current_time / 120) * 0.01);
99
    yscale2 = 1 + (sin(32 + (current_time / 120)) * 0.01);
100
    if (act == 0)
101
    {
102
        xscale = 
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; }
(xscale, 1, 0.01);
103
        yscale = 
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; }
(yscale, 1, 0.01);
104
    }
105
    if (act == 1)
106
    {
107
        act = 2;
108
        timer = 0;
109
        xscale = 1;
110
        yscale = 1;
111
    }
112
    if (act == 2)
113
    {
114
        timer += 1;
115
        xscale += ((xscale2 - xscale) * 0.9);
116
        yscale += ((yscale2 - yscale) * 0.9);
117
        if (timer > 30)
118
        {
119
            act = 0;
120
            timer = 0;
121
        }
122
    }
123
}