Deltarune (Chapter 4) script viewer

← back to main script listing

gml_Object_obj_dw_churchc_dodge_Step_0

(view raw script w/o annotations or w/e)
1
scr_populatechars
scr_populatechars

function
scr_populatechars()
{ if (!variable_instance_exists(id, "kris")) kris = 0; if (!variable_instance_exists(id, "ralsei")) ralsei = 0; if (!variable_instance_exists(id, "susie")) susie = 0; if (!variable_instance_exists(id, "noelle")) noelle = 0; if (kris == 0) { with (obj_mainchara) other.kris = id; } if (susie == 0) { with (obj_caterpillarchara) { if (name == "susie") other.susie = id; } } if (ralsei == 0) { with (obj_caterpillarchara) { if (name == "ralsei") other.ralsei = id; } } if (noelle == 0) { with (obj_caterpillarchara) { if (name == "noelle") other.noelle = id; } } }
();
2
if (!init)
3
    init = 1;
4
if (con == 0)
5
{
6
    with (obj_mainchara)
7
    {
8
        var trigger = instance_place(x, y, obj_overworld_bulletarea);
9
        if (trigger != -4)
10
        {
11
            other.con = 1;
12
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(other.darkness, "image_alpha", other.darkness.image_alpha, other.onalpha, other.fadespeed);
13
        }
14
    }
15
}
16
if (con > 0)
17
{
18
    timer += 1;
19
    if (con == 1)
20
    {
21
        if (timer > (5 + fadespeed))
22
        {
23
            con = 2;
24
            timer = 0;
25
            
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(other.darkness, "image_alpha", other.darkness.image_alpha, other.offalpha, other.fadespeed);
26
            var chance = [[1, 1], [1, 1], [1], [1], [1, 1], [1, 1, 1, 1, 1, 1, 1, 1]];
27
            with (obj_mainchara)
28
            {
29
                var trigger = instance_place(x, y, obj_overworld_bulletarea);
30
                if (trigger == -4)
31
                {
32
                    other.con = 0;
33
                    exit;
34
                }
35
                else
36
                {
37
                    var bullet_trigger = instance_place(x, y, obj_dw_churchc_dodge_trigger);
38
                    if (bullet_trigger != -4)
39
                        chance = bullet_trigger.chances;
40
                }
41
            }
42
            snd_play(snd_spawn_weaker, 0.8, 0.45);
43
            if (con == 2)
44
            {
45
                var angleAdd = 0;
46
                var valid = [];
47
                var invalid = [false, false, false, false, false, false];
48
                for (var i = 0; i < array_length(blacklist); i++)
49
                    invalid[blacklist[i]] = true;
50
                for (var i = 0; i < array_length(chance); i++)
51
                {
52
                    if (chance[i] != 0 && invalid[i] == 0)
53
                        array_push(valid, i);
54
                }
55
                var selected_index = irandom_range(0, array_length(valid) - 1);
56
                var pattern = patterns[valid[selected_index]];
57
                var total = 0;
58
                var selected_group = chance[valid[selected_index]];
59
                for (var i = 0; i < array_length(selected_group); i++)
60
                    total += selected_group[i];
61
                var select = random_range(0, total);
62
                var accumulate = 0;
63
                var selected_variation = 0;
64
                for (var i = 0; i < array_length(selected_group); i++)
65
                {
66
                    accumulate += selected_group[i];
67
                    if (select <= accumulate)
68
                    {
69
                        selected_variation = i;
70
                        break;
71
                    }
72
                }
73
                angleAdd = pattern[0][selected_variation];
74
                blacklist = pattern[1];
75
                for (var i = 2; i < array_length(pattern); i++)
76
                {
77
                    var offset = new Vector2(pattern[i][0], pattern[i][0]);
78
                    var angle = ((pattern[i][2] - 90) + angleAdd) % 360;
79
                    var xx = obj_mainchara.x + 20 + (250 * pattern[i][0]);
80
                    var yy = obj_mainchara.y + 20 + 25 + (250 * pattern[i][1]);
81
                    var enemy = instance_create(xx, yy, obj_ow_pathingenemy);
82
                    enemy.image_angle = angle;
83
                    enemy.direction = enemy.image_angle;
84
                    enemy.speed = pattern[i][3];
85
                    enemy.x -= pattern[i][4] * enemy.hspeed * 0.8;
86
                    enemy.y -= pattern[i][4] * enemy.vspeed * 0.8;
87
                    enemy.neutralcon = -1;
88
                    enemy.movetime = 9;
89
                    enemy.movetype = 3;
90
                    enemy.movevistype = 0;
91
                    enemy.waittime = 0;
92
                }
93
            }
94
        }
95
    }
96
    else if (timer > (35 + other.fadespeed))
97
    {
98
        con = 1;
99
        timer = 0;
100
        var fade = other.fadespeed;
101
        
scr_lerpvar_instance
scr_lerpvar_instance

function
scr_lerpvar_instance()
{ __lerpvar = instance_create(0, 0, obj_lerpvar); __lerpvar.target = argument[0]; __lerpvar.varname = argument[1]; __lerpvar.pointa = argument[2]; __lerpvar.pointb = argument[3]; __lerpvar.maxtime = argument[4]; if (argument_count >= 6) __lerpvar.easetype = argument[5]; if (argument_count >= 7) __lerpvar.easeinout = argument[6]; return __lerpvar; } function scr_lerp_var_instance() { if (argument_count >= 6) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
} function scr_lerp_instance_var() { if (argument_count >= 6) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5);
else if (argument_count >= 7) return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4, argument5, argument6);
else return
scr_lerpvar_instance(argument0, argument1, argument2, argument3, argument4);
}
(other.darkness, "image_alpha", other.darkness.image_alpha, other.onalpha, fade / 2);
102
        with (obj_ow_pathingenemy)
103
            
scr_doom
scr_doom

function
scr_doom(arg0 = id, arg1)
{ with (instance_create_depth(0, 0, 0, obj_doom)) { alarm[0] target = arg0; persistent = arg0.persistent; } }
(self, fade / 2);
104
    }
105
}
106
with (obj_ow_pathingenemy)
107
{
108
    image_alpha = 1 - ((other.darkness.image_alpha - other.offalpha) / (other.onalpha - other.offalpha));
109
    active = image_alpha >= 0.9;
110
}