AgentVerse's picture
first commit
670a607
import QuestionManager from '../../plugins/logic/quest/questions/QuestionManager.js';
import QuestMethods from './QuestMethods.js';
import DataMethods from './DataMethods.js';
const EE = Phaser.Events.EventEmitter;
const GetValue = Phaser.Utils.Objects.GetValue;
class DialogQuest extends EE {
constructor(config) {
super();
if (config === undefined) {
config = {};
}
if (!config.quest) {
config.quest = true;
}
this.dialog = GetValue(config, 'dialog', undefined);
this.questionManager = new QuestionManager(config);
// Attach events
this.questionManager
.on('quest', function (question) {
var choices = this.dialog.getElement('choices');
var options = question.options, option;
for (var i = 0, cnt = choices.length; i < cnt; i++) {
option = options[i];
if (option) {
this.dialog.showChoice(i);
this.emit('update-choice', choices[i], option, this);
} else {
this.dialog.hideChoice(i);
}
}
this.emit('update-dialog', this.dialog, question, this);
}, this);
this.dialog
.on('button.click', function (button, groupName, index) {
var eventName = 'click-' + ((groupName === 'choices') ? 'choice' : 'action');
this.emit(eventName, button, this.dialog, this);
}, this)
}
}
Object.assign(
DialogQuest.prototype,
QuestMethods,
DataMethods
);
export default DialogQuest;