|
|
@@ -3,6 +3,141 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ЗапуститьПлавноеСкрытиеФишек = мир => |
|
|
|
{ |
|
|
|
var шаг = 10; |
|
|
|
var длительность = 200; |
|
|
|
var прозрачность = 1.0; |
|
|
|
var дельтаПрозрачности = шаг / длительность; |
|
|
|
const анимация = setInterval( |
|
|
|
function() { |
|
|
|
const позиции = мир.раскладкаKMahjongg.позиции; |
|
|
|
прозрачность -= дельтаПрозрачности; |
|
|
|
// Возвращаем прозрачность материалам перед последующим скрытием фишек. |
|
|
|
// И планируем выход из этой анимации. |
|
|
|
var выходим = false; |
|
|
|
if (прозрачность < 0) |
|
|
|
{ |
|
|
|
прозрачность = 1; |
|
|
|
выходим = true; |
|
|
|
} |
|
|
|
// Выставляем нужную прозрачность. |
|
|
|
for (var id in мир.номераВыбранныхФишек) |
|
|
|
{ |
|
|
|
var номер = мир.номераВыбранныхФишек[id]; |
|
|
|
var фишка = мир.фишки[номер]; |
|
|
|
фишка.material.opacity = прозрачность; |
|
|
|
// Указываем на необходимость учитывать прозрачность. |
|
|
|
фишка.material.transparent = true; |
|
|
|
} |
|
|
|
if (выходим) |
|
|
|
{ |
|
|
|
clearInterval(анимация); |
|
|
|
мир.уведомить("плавно скрыли фишки"); |
|
|
|
} |
|
|
|
}, |
|
|
|
шаг |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПроверитьВозможностьПоискаФишки = мир => |
|
|
|
{ |
|
|
|
if (мир.можноИскатьФишку) |
|
|
|
{ |
|
|
|
мир.уведомить("можно искать фишку"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ОтключитьВозможностьПоискаФишки = мир => |
|
|
|
{ |
|
|
|
мир.можноИскатьФишку = false; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ВключитьВозможностьПоискаФишки = мир => |
|
|
|
{ |
|
|
|
мир.можноИскатьФишку = true; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // / |
|
|
|
|
|
|
|
|
|
|
|
ПростоОбождатьПаруСекунд = мир => |
|
|
|
{ |
|
|
|
setTimeout( |
|
|
|
function() { |
|
|
|
мир.уведомить("плавно скрыли фишки") |
|
|
|
}, |
|
|
|
2000 |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ПлавноСкрытьФишки = мир => |
|
|
|
{ |
|
|
|
мир.уведомить("надо плавно скрыть фишки"); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ОчиститьВыборФишек = мир => |
|
|
|
{ |
|
|
|
мир.номераВыбранныхФишек = []; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ОчиститьИндексыВыбранныхФишек = мир => |
|
|
|
{ |
|
|
|
const позиции = мир.раскладкаKMahjongg.позиции; |
|
|
|
for (var id in мир.номераВыбранныхФишек) |
|
|
|
{ |
|
|
|
var номер = мир.номераВыбранныхФишек[id]; |
|
|
|
var позиция = позиции[номер]; |
|
|
|
var индекс = индексПозицииФишки(позиция); |
|
|
|
delete мир.индексыФишек[индекс]; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СкрытьСовпадающиеФишки = мир => |
|
|
|
{ |
|
|
|
for (var id in мир.номераВыбранныхФишек) |
|
|
|
{ |
|
|
|
var номер = мир.номераВыбранныхФишек[id]; |
|
|
|
// Перемещаем фишку на другой слой для исключения её из: |
|
|
|
// * цикла отрисовки; |
|
|
|
// * узлов для выбора нажатием. |
|
|
|
мир.фишки[номер].layers.set(1); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
ОчиститьВыборПервойНайденнойФишки = мир => |
|
|
|
{ |
|
|
|
мир.номераВыбранныхФишек.shift(); |
|
|
|