Deltarune (Chapter 5) script viewer

← back to main script listing

gml_GlobalScript_scr_get_cliff_items

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

function
scr_get_cliff_items()
{ var boss_list = []; for (var i = 0; i < (global.chapter - 1); i++) { var chapter = i + 1; var boss_result = scr_get_ura_value(chapter, global.filechoice); if (chapter == 4 && boss_result == 1) { boss_result = scr_get_secret_boss_result(chapter); if (boss_result == 0 && scr_completed_chapter(4)) { var prev_flag = scr_get_chapter_flag(4, global.filechoice, scr_get_secret_boss_flag(4)); boss_result = prev_flag; } if (boss_result == 1) boss_result = 2; scr_set_ura_value(chapter, global.filechoice, boss_result); scr_set_ini_value(chapter, global.filechoice, "UraBoss", boss_result); } if (boss_result > 0) { var boss_data = []; if (boss_result == 3) { if (chapter == 2) { if (boss_result == 3) boss_result = 2; } else { boss_result = 1; } } if (chapter == 3) { if (boss_result == 2) continue; } boss_data[0] = chapter; boss_data[1] = boss_result; boss_list[array_length(boss_list)] = boss_data; } } var pending_items = []; for (var i = 0; i < array_length(boss_list); i++) { var boss_data = boss_list[i]; var boss_chapter = boss_data[0]; var boss_result = boss_data[1]; var boss_item_data = scr_get_boss_item_id(boss_chapter, boss_result); var item_type = boss_item_data[0]; var item_id = boss_item_data[1]; var have_item = scr_has_boss_item("weapon", item_id) || scr_has_boss_item("armor", item_id); if (boss_chapter == 3 || boss_chapter == 4) have_item = scr_has_boss_item("weapon", item_id); if (!have_item) pending_items[array_length(pending_items)] = boss_item_data; } return pending_items; } function scr_has_boss_item(arg0, arg1) { var has_item = false; if (arg0 == "weapon") has_item =
scr_weaponcheck_equipped_any(arg1) || 
scr_weaponcheck_inventory(arg1);
else if (arg0 == "armor") has_item =
scr_armorcheck_equipped_any(arg1) || 
scr_armorcheck_inventory(arg1);
return has_item; } function scr_get_boss_item_id(arg0, arg1) { var _chapter = arg0; var _item_type = (arg1 == 1) ? "weapon" : "armor"; var _item_id = -1; switch (_chapter) { case 2: _item_id = 21; break; case 3: _item_id = 26; break; case 4: _item_type = "weapon"; _item_id = 52; break; default: _item_id = 7; break; } var item_data = []; item_data[0] = _item_type; item_data[1] = _item_id; item_data[2] = _chapter; return item_data; } ...
()
2
{
3
    var boss_list = [];
4
    for (var i = 0; i < (global.chapter - 1); i++)
5
    {
6
        var chapter = i + 1;
7
        var boss_result = scr_get_ura_value(chapter, global.filechoice);
8
        if (chapter == 4 && boss_result == 1)
9
        {
10
            boss_result = scr_get_secret_boss_result(chapter);
11
            if (boss_result == 0 && scr_completed_chapter(4))
12
            {
13
                var prev_flag = scr_get_chapter_flag(4, global.filechoice, scr_get_secret_boss_flag(4));
14
                boss_result = prev_flag;
15
            }
16
            if (boss_result == 1)
17
                boss_result = 2;
18
            scr_set_ura_value(chapter, global.filechoice, boss_result);
19
            scr_set_ini_value(chapter, global.filechoice, "UraBoss", boss_result);
20
        }
21
        if (boss_result > 0)
22
        {
23
            var boss_data = [];
24
            if (boss_result == 3)
25
            {
26
                if (chapter == 2)
27
                {
28
                    if (boss_result == 3)
29
                        boss_result = 2;
30
                }
31
                else
32
                {
33
                    boss_result = 1;
34
                }
35
            }
36
            if (chapter == 3)
37
            {
38
                if (boss_result == 2)
39
                    continue;
40
            }
41
            boss_data[0] = chapter;
42
            boss_data[1] = boss_result;
43
            boss_list[array_length(boss_list)] = boss_data;
44
        }
45
    }
46
    var pending_items = [];
47
    for (var i = 0; i < array_length(boss_list); i++)
48
    {
49
        var boss_data = boss_list[i];
50
        var boss_chapter = boss_data[0];
51
        var boss_result = boss_data[1];
52
        var boss_item_data = scr_get_boss_item_id(boss_chapter, boss_result);
53
        var item_type = boss_item_data[0];
54
        var item_id = boss_item_data[1];
55
        var have_item = scr_has_boss_item("weapon", item_id) || scr_has_boss_item("armor", item_id);
56
        if (boss_chapter == 3 || boss_chapter == 4)
57
            have_item = scr_has_boss_item("weapon", item_id);
58
        if (!have_item)
59
            pending_items[array_length(pending_items)] = boss_item_data;
60
    }
61
    return pending_items;
62
}
63
64
function scr_has_boss_item(arg0, arg1)
65
{
66
    var has_item = false;
67
    if (arg0 == "weapon")
68
        has_item = 
scr_weaponcheck_equipped_any
scr_weaponcheck_equipped_any

function
scr_weaponcheck_equipped_any(arg0)
{ var __totalwearing = 0; for (var __weari = 0; __weari < array_length_1d(global.charweapon); __weari++) __totalwearing +=
scr_weaponcheck_equipped(__weari, arg0);
return __totalwearing; }
(arg1) ||
scr_weaponcheck_inventory
scr_weaponcheck_inventory

function
scr_weaponcheck_inventory(arg0)
{ haveit = 0; itemcount = 0; for (i = 0; i < 48; i += 1) { if (global.weapon[i] == arg0) haveit = 1; if (global.weapon[i] == arg0) itemcount += 1; } return haveit; }
(arg1);
69
    else if (arg0 == "armor")
70
        has_item = 
scr_armorcheck_equipped_any
scr_armorcheck_equipped_any

function
scr_armorcheck_equipped_any(arg0)
{ var __totalwearing = 0; for (var __weari = 0; __weari < array_length_1d(global.chararmor1); __weari++) __totalwearing +=
scr_armorcheck_equipped(__weari, arg0);
return __totalwearing; }
(arg1) ||
scr_armorcheck_inventory
scr_armorcheck_inventory

function
scr_armorcheck_inventory(arg0)
{ haveit = 0; itemcount = 0; for (i = 0; i < 48; i += 1) { if (global.armor[i] == arg0) haveit = 1; if (global.armor[i] == arg0) itemcount += 1; } return haveit; }
(arg1);
71
    return has_item;
72
}
73
74
function scr_get_boss_item_id(arg0, arg1)
75
{
76
    var _chapter = arg0;
77
    var _item_type = (arg1 == 1) ? "weapon" : "armor";
78
    var _item_id = -1;
79
    switch (_chapter)
80
    {
81
        case 2:
82
            _item_id = 21;
83
            break;
84
        case 3:
85
            _item_id = 26;
86
            break;
87
        case 4:
88
            _item_type = "weapon";
89
            _item_id = 52;
90
            break;
91
        default:
92
            _item_id = 7;
93
            break;
94
    }
95
    var item_data = [];
96
    item_data[0] = _item_type;
97
    item_data[1] = _item_id;
98
    item_data[2] = _chapter;
99
    return item_data;
100
}
101
102
function scr_get_shadow_crystal_flag(arg0)
103
{
104
    var _chapter = arg0;
105
    var _flag = -1;
106
    switch (_chapter)
107
    {
108
        case 1:
109
            _flag = 1646;
110
            break;
111
        case 2:
112
            _flag = 1647;
113
            break;
114
        case 3:
115
            _flag = 1648;
116
            break;
117
        case 4:
118
            _flag = 1649;
119
            break;
120
        case 5:
121
            _flag = 1907;
122
            break;
123
        default:
124
            break;
125
    }
126
    return _flag;
127
}
128
129
function scr_get_shadow_crystal(arg0)
130
{
131
    var _chapter = arg0;
132
    var _flag = scr_get_shadow_crystal_flag(_chapter);
133
    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); }
(_flag) == 0)
134
        
scr_flag_set
scr_flag_set

function
scr_flag_set(arg0, arg1)
{ global.flag[arg0] = arg1; } function scr_flag_set_ext(arg0, arg1, arg2, arg3 = 1) { if (arg1 < 0)
scr_flag_set(arg0, arg2);
else global.flag[arg0] = scr_set_bitmask_value(global.flag[arg0], arg1, arg2, arg3); }
(_flag, 1);
135
}
136
137
function scr_get_total_shadow_crystal_amount()
138
{
139
    var _amount = 0;
140
    var _max_chapter = 5;
141
    for (var i = 0; i < _max_chapter; i++)
142
    {
143
        var _chapter = i + 1;
144
        var _flag = scr_get_shadow_crystal_flag(_chapter);
145
        _amount += 
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); }
(_flag);
146
    }
147
    return _amount;
148
}