]> git.lizzy.rs Git - skyblocks.git/blob - quests.js
GUI Enhancement
[skyblocks.git] / quests.js
1 skyblocks.quests = $.getJSON(dragonblocks.getModpath("skyblocks") + "/quests.json").responseJSON;
2 dragonblocks.registerOnStarted(_ => {
3         let meta = dragonblocks.player.meta;
4         if(! meta.skyblocksQuests)
5                 meta.skyblocksQuests = {};
6         for(let quest of skyblocks.quests)
7                 meta.skyblocksQuests[quest.name] = meta.skyblocksQuests[quest.name] || 0;
8         skyblocks.update();
9 });
10 skyblocks.update = function(){
11         let meta = dragonblocks.player.meta;
12         for(let quest of skyblocks.quests)
13                 if(meta.skyblocksQuests[quest.name] == quest.count){
14                         dragonblocks.player.give(quest.reward);
15                         meta.skyblocksQuests[quest.name]++;
16                         dragonblocks.playSound("skyblocks_finish_quest.ogg");
17                         chat.send(".me completed the quest '" + quest.name + "' [skyblocks]");
18                 }
19         skyblocks.gui.getDisplay().dispatchEvent(new Event("update"));
20 }
21 skyblocks.event = function(action, param){
22         for(let quest of skyblocks.quests){
23                 if(quest.action == action && dragonblocks.itemMatch(quest.param, param))
24                         dragonblocks.player.meta.skyblocksQuests[quest.name]++;
25         }
26         skyblocks.update();
27 }
28 dragonblocks.registerOnPlaceNode(node => {
29         skyblocks.event("place", node);
30 });
31 dragonblocks.registerOnDigNode((x, y) => {
32         skyblocks.event("dig", dragonblocks.getNode(x, y).toNode());
33 });
34 dragonblocks.registerOnUseItem(item => {
35         skyblocks.event("use", item);
36 });