Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_caterpillarchara_Step_2

(view raw script w/o annotations or w/e)
1
if (!i_ex(obj_mainchara))
2
    exit;
3
if (!init)
4
    initialize();
5
if (name != "susie" && !sprite_init)
6
{
7
    sprite_init = true;
8
    if (name == "noelle")
9
    {
10
        usprite = (global.darkzone == 1) ? spr_noelle_walk_up_dw : spr_noelle_walk_up_lw;
11
        rsprite = (global.darkzone == 1) ? spr_noelle_walk_right_dw : spr_noelle_walk_right_lw;
12
        lsprite = (global.darkzone == 1) ? spr_noelle_walk_left_dw : spr_noelle_walk_left_lw;
13
        dsprite = (global.darkzone == 1) ? spr_noelle_walk_down_dw : spr_noelle_walk_down_lw;
14
    }
15
}
16
if (!ignoredepth)
17
{
18
    
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
19
    depth += 5;
20
    if (name == "susie" && global.darkzone == 1)
21
        depth -= 60;
22
    if (name == "noelle")
23
        depth += 10;
24
    if (name == "ralsei")
25
    {
26
        if (global.chapter == 5)
27
        {
28
            if (
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ return global.flag[arg0]; } function scr_flag_name_get(arg0) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } function scr_flag_get_ext(arg0, arg1, arg2 = 1) { if (arg1 < 0)
scr_flag_get(arg0);
else return scr_get_bitmask_value(global.flag[arg0], arg1, arg2); }
(1311) == 0)
29
                depth -= 80;
30
        }
31
    }
32
    if (name == "noelle")
33
    {
34
        usprite = (global.darkzone == 1) ? spr_noelle_walk_up_dw : spr_noelle_walk_up_lw;
35
        rsprite = (global.darkzone == 1) ? spr_noelle_walk_right_dw : spr_noelle_walk_right_lw;
36
        lsprite = (global.darkzone == 1) ? spr_noelle_walk_left_dw : spr_noelle_walk_left_lw;
37
        dsprite = (global.darkzone == 1) ? spr_noelle_walk_down_dw : spr_noelle_walk_down_lw;
38
        if (global.darkzone == 0)
39
            target = 
scr_havechar
scr_havechar

function
scr_havechar(arg0)
{ var checker = arg0; if (checker == "susie" || checker == "su" || checker == "s") checker = 2; if (checker == "ralsei" || checker == "ra" || checker == "r") checker = 3; if (checker == "noelle" || checker == "no" || checker == "n") checker = 4; _rreturn = 0; if (global.char[0] == checker) _rreturn = 1; if (global.char[1] == checker) _rreturn = 1; if (global.char[2] == checker) _rreturn = 1; return _rreturn; }
("su") ? 17 : 12;
40
        halign = (global.darkzone == 0) ? 2 : 4;
41
        valign = (global.darkzone == 0) ? 9 : 18;
42
        if (
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ return global.flag[arg0]; } function scr_flag_name_get(arg0) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } function scr_flag_get_ext(arg0, arg1, arg2 = 1) { if (arg1 < 0)
scr_flag_get(arg0);
else return scr_get_bitmask_value(global.flag[arg0], arg1, arg2); }
(1416) == 1)
43
        {
44
            usprite = spr_noelle_walk_up_lw;
45
            rsprite = spr_noelle_walk_right_lw_neutral;
46
            dsprite = spr_noelle_walk_down_lw_neutral;
47
            lsprite = spr_noelle_walk_left_lw_neutral;
48
        }
49
    }
50
}
51
nowx = x;
52
nowy = y;
53
moved = 0;
54
walk = 0;
55
runmove = 0;
56
slided = 0;
57
if (obj_mainchara.x != remx[0])
58
    moved = 1;
59
if (obj_mainchara.y != remy[0])
60
    moved = 1;
61
if (sliding[target] == 1)
62
    moved = 1;
63
if (moved == 1 && follow == 1)
64
{
65
    blushtimer = 0;
66
    for (i = 75; i > 0; i -= 1)
67
    {
68
        remx[i] = remx[i - 1];
69
        remy[i] = remy[i - 1];
70
        facing[i] = facing[i - 1];
71
        sliding[i] = sliding[i - 1];
72
    }
73
    remx[0] = obj_mainchara.x;
74
    remy[0] = obj_mainchara.y;
75
    sliding[0] = obj_mainchara.sliding;
76
    facing[0] = global.facing;
77
    x = remx[target] - halign;
78
    y = remy[target] - valign;
79
    if (sliding[target] == 1)
80
    {
81
        x = remx[target];
82
        y = remy[target];
83
        sprite_index = slidesprite;
84
        slided = 1;
85
    }
86
    if (abs(remx[target + 1] - remx[target]) > 4)
87
        runmove = 1;
88
    if (abs(remy[target + 1] - remy[target]) > 4)
89
        runmove = 1;
90
    dir = facing[target];
91
}
92
if (x != nowx)
93
    walk = 1;
94
if (y != nowy)
95
    walk = 1;
96
if (walk == 1)
97
    walkbuffer = 6;
98
if (walkbuffer > 3 && fun == 0)
99
{
100
    walktimer += 1.5;
101
    if (runmove == 1)
102
        walktimer += 1.5;
103
    if (walktimer >= 40)
104
        walktimer -= 40;
105
    if (walktimer < 10)
106
        image_index = 0;
107
    if (walktimer >= 10)
108
        image_index = 1;
109
    if (walktimer >= 20)
110
        image_index = 2;
111
    if (walktimer >= 30)
112
        image_index = 3;
113
}
114
if (walkbuffer <= 0 && fun == 0)
115
{
116
    if (walktimer < 10)
117
        walktimer = 9.5;
118
    if (walktimer >= 10 && walktimer < 20)
119
        walktimer = 19.5;
120
    if (walktimer >= 20 && walktimer < 30)
121
        walktimer = 29.5;
122
    if (walktimer >= 30)
123
        walktimer = 39.5;
124
    image_index = 0;
125
}
126
walkbuffer -= 0.75;
127
if (fun == 0 && slided == 0)
128
{
129
    if (facing[target] == 0)
130
        sprite_index = dsprite;
131
    if (facing[target] == 1)
132
        sprite_index = rsprite;
133
    if (facing[target] == 2)
134
        sprite_index = usprite;
135
    if (facing[target] == 3)
136
        sprite_index = lsprite;
137
}
138
if ((dsprite == spr_ralseid || dsprite == spr_ralsei_walk_down) && global.interact == 0 && fun == 0)
139
{
140
    distfrommcx = obj_mainchara.x - (x + 2);
141
    distfrommcy = obj_mainchara.y - (y + 12);
142
    if (abs(distfrommcy) <= 14 && abs(distfrommcx) <= 20)
143
    {
144
        if (distfrommcx <= 0 && global.facing == 1)
145
            blushtimer += 1;
146
        if (distfrommcx >= 0 && global.facing == 3)
147
            blushtimer += 1;
148
    }
149
    else
150
    {
151
        blushtimer = 0;
152
    }
153
    if (blushtimer >= 300)
154
    {
155
        if (sprite_index == dsprite)
156
            sprite_index = dsprite_blush;
157
        if (sprite_index == rsprite)
158
            sprite_index = rsprite_blush;
159
        if (sprite_index == usprite)
160
            sprite_index = usprite_blush;
161
        if (sprite_index == lsprite)
162
            sprite_index = lsprite_blush;
163
    }
164
}
165
else
166
{
167
    blushtimer = 0;
168
}
169
if (name == "ralsei")
170
{
171
    if (sprite_index == dsprite)
172
        depth += 20;
173
}
174
if (global.chapter == 5)
175
{
176
    with (obj_dw_garden_ralseicupboard)
177
        event_user(0);
178
}
179
if (global.darkzone == 0 && instance_exists(obj_sunshadows))
180
{
181
    x = round(x);
182
    y = round(y);
183
}