diff --git a/5.0/игра/190.Состояния.js b/5.0/игра/190.Состояния.js index 114c423..6ca120d 100644 --- a/5.0/игра/190.Состояния.js +++ b/5.0/игра/190.Состояния.js @@ -7,6 +7,7 @@ function Состояния(состояние) this.применить = function(имя) { + /**/console.debug("ИГР Состояния.применить", имя); состояние.разобратьВыпрямленный(this.задано[имя]); } diff --git a/5.0/общее/150.Состояние.js b/5.0/общее/150.Состояние.js index d99a825..d0db466 100644 --- a/5.0/общее/150.Состояние.js +++ b/5.0/общее/150.Состояние.js @@ -38,7 +38,6 @@ function Состояние() if (!(было != null && было == стало)) { новые[ключ] = стало; - this.значения[ключ] = стало; } } return новые; @@ -51,17 +50,22 @@ function Состояние() this.разобратьВыпрямленный = function(выпрямленныйСловарь) { - var значения = this.лишьНовыеЗначения(выпрямленныйСловарь); - for (var ключ in значения) + for (var ключ in выпрямленныйСловарь) { - var путь = ключ.split("."); - var значение = значения[ключ]; + let путь = ключ.split("."); + let значение = выпрямленныйСловарь[ключ]; if (this.обработчик) { this.обработчик(ключ, путь, значение); } + this.значения[ключ] = значение; } - } + }; + + this.разобратьЛишьНовое = function(словарь) + { + this.разобратьВыпрямленный(this.лишьНовыеЗначения(this.выпрямить(словарь))); + }; // Конструктор. this.создать(); diff --git a/5.0/общее/200.функции.js b/5.0/общее/200.функции.js index cca058c..adeb45b 100644 --- a/5.0/общее/200.функции.js +++ b/5.0/общее/200.функции.js @@ -87,5 +87,5 @@ var мир = {}; мир.разобрать = function(словарь) { - мир.состояние.разобрать(словарь); + мир.состояние.разобратьЛишьНовое(словарь); };