всегда применять внутреннее состояние. лишь новое - в мир.разобрать

This commit is contained in:
2022-01-14 14:48:24 +03:00
parent 0798edc993
commit 03603bee76
3 changed files with 12 additions and 7 deletions

View File

@@ -7,6 +7,7 @@ function Состояния(состояние)
this.применить = function(имя) this.применить = function(имя)
{ {
/**/console.debug("ИГР Состояния.применить", имя);
состояние.разобратьВыпрямленный(this.задано[имя]); состояние.разобратьВыпрямленный(this.задано[имя]);
} }

View File

@@ -38,7 +38,6 @@ function Состояние()
if (!(было != null && было == стало)) if (!(было != null && было == стало))
{ {
новые[ключ] = стало; новые[ключ] = стало;
this.значения[ключ] = стало;
} }
} }
return новые; return новые;
@@ -51,17 +50,22 @@ function Состояние()
this.разобратьВыпрямленный = function(выпрямленныйСловарь) this.разобратьВыпрямленный = function(выпрямленныйСловарь)
{ {
var значения = this.лишьНовыеЗначения(выпрямленныйСловарь); for (var ключ in выпрямленныйСловарь)
for (var ключ in значения)
{ {
var путь = ключ.split("."); let путь = ключ.split(".");
var значение = значения[ключ]; let значение = выпрямленныйСловарь[ключ];
if (this.обработчик) if (this.обработчик)
{ {
this.обработчик(ключ, путь, значение); this.обработчик(ключ, путь, значение);
} }
this.значения[ключ] = значение;
} }
} };
this.разобратьЛишьНовое = function(словарь)
{
this.разобратьВыпрямленный(this.лишьНовыеЗначения(this.выпрямить(словарь)));
};
// Конструктор. // Конструктор.
this.создать(); this.создать();

View File

@@ -87,5 +87,5 @@ var мир = {};
мир.разобрать = function(словарь) мир.разобрать = function(словарь)
{ {
мир.состояние.разобрать(словарь); мир.состояние.разобратьЛишьНовое(словарь);
}; };