70 lines
2.0 KiB
JavaScript
70 lines
2.0 KiB
JavaScript
function Реплики(события)
|
|
{
|
|
this.создать = function()
|
|
{
|
|
this.задано = {};
|
|
события.подписать(this);
|
|
};
|
|
|
|
this.номерРеплики = function(инструмент)
|
|
{
|
|
if (инструмент == "рука")
|
|
{
|
|
return 1;
|
|
}
|
|
else if (инструмент == "рот")
|
|
{
|
|
return 2;
|
|
}
|
|
else if (инструмент == "нога")
|
|
{
|
|
return 3;
|
|
}
|
|
// "глаз"
|
|
return 0;
|
|
};
|
|
|
|
this.обработатьКлюч = function(ключ, путь, значение)
|
|
{
|
|
if (путь[0] != "реплики")
|
|
{
|
|
return;
|
|
}
|
|
|
|
let имя = путь[1];
|
|
let свойство = путь.slice(2).join(".");
|
|
if (!this.задано[имя])
|
|
{
|
|
this.задано[имя] = {};
|
|
}
|
|
this.задано[имя][свойство] = значение;
|
|
};
|
|
|
|
this.обработатьСобытие = function(событие)
|
|
{
|
|
let меню = "меню/";
|
|
if (событие.startsWith(меню))
|
|
{
|
|
let значения = событие.substring(меню.length).split("/");
|
|
let инструмент = значения[0];
|
|
let подсказка = значения[1];
|
|
this.отобразитьРеплику(инструмент, подсказка);
|
|
}
|
|
};
|
|
|
|
this.отобразитьРеплику = function(инструмент, подсказка)
|
|
{
|
|
let номер = this.номерРеплики(инструмент);
|
|
let реплика = this.задано[подсказка][номер];
|
|
let частей = реплика.split(/ /);
|
|
let длительность = частей.length * 1000;
|
|
UIkit.notification({
|
|
message: реплика,
|
|
timeout: длительность,
|
|
});
|
|
};
|
|
|
|
// Конструктор.
|
|
this.создать();
|
|
};
|