Deltarune (Chapter 3) script viewer

← back to main script listing

gml_Object_obj_quizchaser_Step_0

(view raw script w/o annotations or w/e)
1
if (init == 0)
2
{
3
    init = 1;
4
    if (extflag == "sitter")
5
    {
6
        sprite_index = spr_board_quizsitter;
7
        pacetype = 3;
8
        facing = 1;
9
    }
10
}
11
if (active == true)
12
{
13
    var boardtarget = -4;
14
    with (obj_mainchara_board)
15
    {
16
        if (name == "kris")
17
            boardtarget = id;
18
    }
19
    if (boardtarget == -4)
20
        freeze = 1;
21
    
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();
}
();
22
    if (freeze == 0)
23
    {
24
        if (hspeed > 0)
25
            facing = 1;
26
        if (hspeed < 0)
27
            facing = 0;
28
        if (triggered == false)
29
        {
30
            if (pacetype == 1)
31
            {
32
                image_speed = 0.13333333333333333;
33
                pacetimer++;
34
                if (pacetimer == 8 || pacetimer == 24 || pacetimer == 44 || pacetimer == 60)
35
                    direction = 180;
36
                if (pacetimer == 16 || pacetimer == 32 || pacetimer == 52 || pacetimer == 80)
37
                    direction = 0;
38
                if (pacetimer == 80)
39
                {
40
                    pacetimer = -8;
41
                    if (triggeredonstart)
42
                    {
43
                        triggered = true;
44
                        speed = 1;
45
                    }
46
                }
47
                if (pacetimer == 16)
48
                    speed = 2;
49
                if (pacetimer == 24)
50
                    speed = 0;
51
                if (pacetimer == 44)
52
                    speed = 2;
53
                if (pacetimer == 52)
54
                    speed = 0;
55
            }
56
            if (pacetype == 2)
57
            {
58
                pacetimer++;
59
                if (pacetimer == 30)
60
                    hspeed = 2;
61
                if (pacetimer == 62)
62
                    hspeed = 0;
63
                if (pacetimer == 92)
64
                    hspeed = -2;
65
                if (pacetimer == 124)
66
                {
67
                    hspeed = 0;
68
                    pacetimer = 0;
69
                }
70
            }
71
        }
72
        if (chasetype == 0)
73
        {
74
            if (i_ex(boardtarget))
75
            {
76
                if (triggered == false)
77
                {
78
                    if (distance_to_object(boardtarget) < alertradius)
79
                        triggered = true;
80
                }
81
                if (triggered && pacetype != 3)
82
                {
83
                    myspeed = lerp(myspeed, 8, 0.125);
84
                    move_towards_point(boardtarget.x + 16, (boardtarget.y + 32) - 8, myspeed);
85
                }
86
            }
87
        }
88
        if (chasetype == 1)
89
        {
90
            var trig = false;
91
            with (obj_board_trigger)
92
            {
93
                if (extflag == other.extflag)
94
                {
95
                    if (place_meeting(x, y, obj_mainchara_board))
96
                    {
97
                        var inst = instance_place(x, y, obj_mainchara_board);
98
                        if (inst.name == "kris")
99
                            trig = true;
100
                    }
101
                }
102
            }
103
            if (trig && pacetype != 3)
104
                triggered = true;
105
            if (triggered)
106
            {
107
                myspeed = lerp(myspeed, 8, 0.125);
108
                move_towards_point(boardtarget.x + 16, boardtarget.y + 32, myspeed);
109
            }
110
        }
111
        if (place_meeting(x, y, boardtarget) && global.interact == 0)
112
        {
113
            if (boardtarget.myhealth <= 0 || instance_exists(obj_gameover_minigame) || instance_exists(obj_board_deathevent))
114
                exit;
115
            quiz = instance_create(0, 0, obj_quizsequence);
116
            quiz.depth = 900000;
117
            quiz.extflag = extflag;
118
            if (room == room_board_1)
119
            {
120
                with (obj_tennatalkbubble)
121
                    instance_destroy();
122
                with (obj_couchwriter)
123
                    instance_destroy();
124
            }
125
            
scr_quizsetup
scr_quizsetup

function scr_quizsetup_full(arg0 = 3, arg1 = 0, arg2 = false, arg3 = 900000) { var __quiz = instance_create(0, 0, obj_quizsequence); if (
scr_debug())
arg1 = scr_quizdebug(arg1, arg2); __quiz.depth = arg3; __quiz.board4 = arg2; if (arg2) __quiz.newdepth = 100000;
scr_quizsetup(arg0, arg1);
return __quiz; } function
scr_quizsetup(arg0 = 3, arg1 = 0, arg2 = 27, arg3 = false)
{ with (obj_quizsequence) { if (arg3) { if (((arg2 - arg1) + 1) < arg0) arg0 = (arg2 - arg1) + 1; var _quizlist = ds_list_create(); randomize(); for (var i = arg1; i <= arg2; i++) ds_list_add(_quizlist, i); ds_list_shuffle(_quizlist); for (var i = 0; i < arg0; i++) quizQs[i] = ds_list_find_index(_quizlist, i); quiz_length = arg0; ds_list_clear(_quizlist); } else { if (
scr_debug())
arg1 = scr_quizdebug(arg1, false); for (var i = 0; i < arg0; i++) quizQs[i] = i + arg1; quiz_length = arg0; } } } function scr_quizadd(arg0) { with (obj_quizsequence) { quizQs[quiz_length] = arg0; quiz_length++; } } function scr_quizreplace(arg0, arg1) { with (obj_quizsequence) quizQs[arg0] = arg1; } function scr_quizdebug(arg0, arg1) { if (
scr_debug())
{ if (keyboard_check(ord("4")) || keyboard_check(vk_numpad1)) arg0 = 0; else if (keyboard_check(ord("5")) || keyboard_check(vk_numpad2)) arg0 = 3; else if (keyboard_check(ord("6")) || keyboard_check(vk_numpad3)) arg0 = 6; else if (keyboard_check(ord("7")) || keyboard_check(vk_numpad4)) arg0 = 9; else if (keyboard_check(ord("8")) || keyboard_check(vk_numpad5)) arg0 = 12; else return arg0; if (arg1) arg0 = (arg0 / 3) + 15; debug_print("Starting question overriden (" + string(arg0) + ")"); } return arg0; }
(3, quizno);
126
            quiz.grandaddy = daddy;
127
            boardtarget.quizmode = true;
128
            with (obj_board_parent)
129
                active = false;
130
            global.interact = 1;
131
            var afterimage = 
scr_board_marker
scr_board_marker

function
scr_board_marker()
{ var _thismarker = instance_create(argument0, argument1, obj_board_marker); _thismarker.sprite_index = argument2; _thismarker.image_xscale = 2; _thismarker.image_yscale = 2; if (argument_count >= 4) _thismarker.image_speed = argument3; if (argument_count >= 5) { if (argument4 != -1) _thismarker.depth = argument4; } if (argument_count >= 6) _thismarker.image_xscale = argument5; if (argument_count >= 6) _thismarker.image_yscale = argument5; if (argument_count >= 7) _thismarker.animateonce = argument6; return _thismarker; }
(x, y, sprite_index, 0, depth, image_xscale);
132
            
scr_doom
scr_doom

function
scr_doom(arg0, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; } }
(afterimage, 15);
133
            instance_destroy();
134
        }
135
        if (boardtarget.canfreemove == false || global.interact != 0)
136
        {
137
            freeze = 1;
138
            speed = 0;
139
            remspeed = myspeed;
140
        }
141
    }
142
    else if (boardtarget.canfreemove == true && global.interact == 0)
143
    {
144
        freeze = 0;
145
        myspeed = remspeed;
146
    }
147
    if (speed == 0)
148
        image_index = 0;
149
    else if (triggered)
150
        image_speed = speed / 16;
151
    else
152
        image_speed = speed / 8;
153
}
154
if (
scr_debug
scr_debug

function
scr_debug()
{ if (global.debug == 1) return 1; }
() && keyboard_check_pressed(vk_f5))
155
    instance_destroy();