|
- define([
- 'js/system/events'
- ], function (
- events
- ) {
- return {
- type: 'quests',
- quests: [],
-
- init: function () {
- this.quests.forEach(q => events.emit('onObtainQuest', q));
- },
-
- extend: function (blueprint) {
- if (blueprint.updateQuests) {
- blueprint.updateQuests.forEach(function (q) {
- events.emit('onUpdateQuest', q);
- let index = this.quests.findIndex(f => f.id === q.id);
- this.quests.splice(index, 1, q);
- }, this);
- }
- if (blueprint.completeQuests) {
- blueprint.completeQuests.forEach(function (q) {
- events.emit('onCompleteQuest', q);
- this.quests.spliceWhere(function (qq) {
- return (qq.id === q);
- });
- }, this);
- }
- if (blueprint.obtainQuests) {
- blueprint.obtainQuests.forEach(function (q) {
- events.emit('onObtainQuest', q);
- this.quests.push(q);
- }, this);
- }
- }
- };
- });
|