Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_molten_rock_overworld_yellow_Step_0

(view raw script w/o annotations or w/e)
1
var maxSpd;
2
if (global.snowdin_flag[2] == 0)
3
    maxSpd = 0.8;
4
else
5
    maxSpd = 1.1;
6
if (shrink == 1)
7
{
8
    image_xscale -= lerp(0, image_xscale, 0.025);
9
    image_yscale -= lerp(0, image_yscale, 0.025);
10
    if (obj_puzzle_ice_cube_overworld_yellow.shrink == true)
11
    {
12
        if (global.snowdin_flag[2] == 0)
13
            y += 0.4;
14
        if (global.snowdin_flag[2] == 1)
15
            y += 0.25;
16
    }
17
    if (image_xscale < 0.3)
18
        instance_destroy();
19
}
20
if (obj_puzzle_controller_overworld_yellow.active == false)
21
{
22
    image_speed = 0;
23
    exit;
24
}
25
y += rollSpd;
26
if (sprite_index != spr_molten_rock_overworld_yellow || position_meeting(x, y + 3, obj_puzzle_ice_cube_overworld_yellow))
27
{
28
    rollSpd = 0;
29
    exit;
30
}
31
if (position_meeting(x, y + 3, obj_puzzle_ice_cube_overworld_yellow))
32
{
33
    shrink = 1;
34
    rollSpd = 0;
35
    canRoll = 0;
36
    audio_stop_sound(snd_rock_roll);
37
}
38
if (canRoll == 1)
39
{
40
    if (rollSpd < maxSpd)
41
        rollSpd += 0.02;
42
    if (!audio_is_playing(snd_rock_roll))
43
        audio_play_sound(snd_rock_roll, 1, 1);
44
}
45
else
46
{
47
    rollSpd = 0;
48
    if (shrink == 0 && instance_exists(obj_puzzle_ice_cube_overworld_yellow))
49
    {
50
        if (global.snowdin_flag[2] == 0)
51
            y = obj_puzzle_ice_cube_overworld_yellow.y - 28;
52
        if (global.snowdin_flag[2] == 1)
53
            y = obj_puzzle_ice_cube_overworld_yellow.y - 21;
54
    }
55
    audio_stop_sound(snd_rock_roll);
56
}
57
if (canAnimate == 1)
58
{
59
    if (rollSpd > 0)
60
        image_speed = rollSpd * 0.33;
61
}
62
else
63
{
64
    image_speed = 0;
65
}