Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_board_caterpillarchara_Step_2

(view raw script w/o annotations or w/e)
1
if (obj_board_camera.con == 0)
2
{
3
    if (!init)
4
    {
5
        target = 12;
6
        ignoredepth = 0;
7
        init = 1;
8
        if (name == "ralsei")
9
        {
10
            dsprite = spr_board_ralsei_walk_down;
11
            rsprite = spr_board_ralsei_walk_right;
12
            usprite = spr_board_ralsei_walk_up;
13
            lsprite = spr_board_ralsei_walk_left;
14
            target = 24;
15
        }
16
    }
17
    if (!ignoredepth)
18
    {
19
        
scr_depth_board
scr_depth_board

function
scr_depth_board()
{ depth = 1000000 - ((y * 10) + ((sprite_height - sprite_yoffset) * 10)); } function scr_board_depth() {
scr_depth_board();
}
();
20
        depth += 5;
21
    }
22
    nowx = x;
23
    nowy = y;
24
    moved = 0;
25
    walk = 0;
26
    runmove = 0;
27
    slided = 0;
28
    if (obj_mainchara_board.x != remx[0])
29
        moved = 1;
30
    if (obj_mainchara_board.y != remy[0])
31
        moved = 1;
32
    if (sliding[target] == 1)
33
        moved = 1;
34
    if (moved == 1 && follow == 1)
35
    {
36
        for (i = 75; i > 0; i -= 1)
37
        {
38
            remx[i] = remx[i - 1];
39
            remy[i] = remy[i - 1];
40
            facing[i] = facing[i - 1];
41
            sliding[i] = sliding[i - 1];
42
        }
43
        remx[0] = obj_mainchara_board.x;
44
        remy[0] = obj_mainchara_board.y;
45
        facing[0] = obj_mainchara_board.facing;
46
        x = remx[target] - halign;
47
        y = remy[target] - valign;
48
        if (abs(remx[target + 1] - remx[target]) > 4)
49
            runmove = 1;
50
        if (abs(remy[target + 1] - remy[target]) > 4)
51
            runmove = 1;
52
        dir = facing[target];
53
    }
54
    if (x != nowx)
55
        walk = 1;
56
    if (y != nowy)
57
        walk = 1;
58
    if (walk == 1)
59
        walkbuffer = 6;
60
    if (walkbuffer > 3 && fun == 0)
61
    {
62
        walktimer += 1.5;
63
        if (runmove == 1)
64
            walktimer += 1.5;
65
        if (walktimer >= 40)
66
            walktimer -= 40;
67
        if (walktimer < 10)
68
            image_index = 0;
69
        if (walktimer >= 10)
70
            image_index = 1;
71
        if (walktimer >= 20)
72
            image_index = 2;
73
        if (walktimer >= 30)
74
            image_index = 3;
75
    }
76
    if (walkbuffer <= 0 && fun == 0)
77
    {
78
        if (walktimer < 10)
79
            walktimer = 9.5;
80
        if (walktimer >= 10 && walktimer < 20)
81
            walktimer = 19.5;
82
        if (walktimer >= 20 && walktimer < 30)
83
            walktimer = 29.5;
84
        if (walktimer >= 30)
85
            walktimer = 39.5;
86
        image_index = 0;
87
    }
88
    walkbuffer -= 0.75;
89
    if (fun == 0)
90
    {
91
        if (facing[target] == 0)
92
            sprite_index = dsprite;
93
        if (facing[target] == 1)
94
            sprite_index = rsprite;
95
        if (facing[target] == 2)
96
            sprite_index = usprite;
97
        if (facing[target] == 3)
98
            sprite_index = lsprite;
99
    }
100
}
101
if (place_meeting(x, y, obj_board_swordhitbox))
102
{
103
    with (obj_b3s_swordmanager)
104
    {
105
        kpause = 1;
106
        ktimer = 0;
107
    }
108
    with (obj_mainchara_board)
109
    {
110
        swordlv++;
111
        snd_stop(snd_board_ominous);
112
        snd_play(snd_board_ominous);
113
    }
114
    instance_create(centerx(), centery(), obj_board_enemydefeatsplash);
115
    global.flag[1255 sword_route_kills]++;
116
    instance_destroy();
117
}