Основа Маджонга | Mahjong's base
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

367 lines
9.0KB

  1. // // // //
  2. ЗадатьПораженческоеСодержимоеОкнуОкончания = мир =>
  3. {
  4. $(`#${мир.окна.окончание.указатель}-содержимое`).html(`
  5. <span class="uk-text-large">Поражение</span>
  6. ⚬ <span class="uk-text-large uk-text-bold">失败</span> ⚬
  7. <span class="uk-text-large">Defeat</span>
  8. `);
  9. };
  10. // // // //
  11. ЗадатьПобедноеСодержимоеОкнуОкончания = мир =>
  12. {
  13. $(`#${мир.окна.окончание.указатель}-содержимое`).html(`
  14. <span class="uk-text-large">Победа</span>
  15. ⚬ <span class="uk-text-large uk-text-bold">胜利</span> ⚬
  16. <span class="uk-text-large">Victory</span>
  17. `);
  18. };
  19. // // // //
  20. ПлавноПоказатьОкноОкончания = мир =>
  21. {
  22. const css = `
  23. #${мир.окна.окончание.указатель}
  24. {
  25. opacity: 0;
  26. animation: ${мир.окна.окончание.указатель}ПлавноПоказать 0.5s ease;
  27. animation-fill-mode: forwards;
  28. }
  29. `;
  30. мир.окна.окончание.анимация.innerHTML = css;
  31. мир.окна.окончание.элемент.style.display = "block";
  32. };
  33. // // // //
  34. ПодготовитьАнимациюОкнаОкончания = мир =>
  35. {
  36. мир.окна.окончание.анимация = document.createElement("style");
  37. document.head.appendChild(мир.окна.окончание.анимация);
  38. };
  39. // // // //
  40. ЗадатьВидИАнимациюОкнаОкончания = мир =>
  41. {
  42. const css = `
  43. #${мир.окна.окончание.указатель}-тело
  44. {
  45. position: absolute;
  46. left: 50%;
  47. top: 50%;
  48. transform: translateX(-50%) translateY(-50%);
  49. }
  50. #${мир.окна.окончание.указатель}
  51. {
  52. background-color: white;
  53. position: fixed;
  54. left: 0;
  55. top: 0;
  56. right: 0;
  57. bottom: 0;
  58. }
  59. @keyframes ${мир.окна.окончание.указатель}ПлавноСкрыть
  60. {
  61. 0%
  62. {
  63. opacity: 1;
  64. }
  65. 100%
  66. {
  67. opacity: 0;
  68. }
  69. }
  70. @keyframes ${мир.окна.окончание.указатель}ПлавноПоказать
  71. {
  72. 0%
  73. {
  74. opacity: 0;
  75. }
  76. 100%
  77. {
  78. opacity: 1;
  79. }
  80. }
  81. `;
  82. var вид = document.createElement("style");
  83. вид.innerHTML = css;
  84. document.head.appendChild(вид);
  85. };
  86. // // // //
  87. СоздатьОкноОкончания = мир =>
  88. {
  89. мир.окна.окончание = {
  90. "указатель": "окно-окончания",
  91. };
  92. const html = `
  93. <div id="${мир.окна.окончание.указатель}-тело">
  94. <center>
  95. <span id="${мир.окна.окончание.указатель}-содержимое">
  96. </span>
  97. <hr class="uk-divider-icon">
  98. <p>
  99. <a href="https://twitter.com/opengamestudio" target="_blank" class="uk-icon-button" uk-icon="twitter"></a>
  100. </p>
  101. </center>
  102. </div>
  103. `;
  104. var окно = document.createElement("div");
  105. окно.id = мир.окна.окончание.указатель;
  106. окно.innerHTML = html;
  107. document.body.appendChild(окно);
  108. окно.style.display = "none";
  109. мир.окна.окончание.элемент = окно;
  110. };
  111. // // // //
  112. ОтключитьОкноПриветствия = мир =>
  113. {
  114. мир.окна.приветствие.элемент.style.display = "none";
  115. };
  116. // // // //
  117. ВыбратьРаскладкуПровальную = мир =>
  118. {
  119. мир.выбраннаяРаскладка = "😭";
  120. мир.уведомить("выбрали раскладку");
  121. };
  122. // // // //
  123. ВыбратьРаскладкуУспешную = мир =>
  124. {
  125. мир.выбраннаяРаскладка = "😀";
  126. мир.уведомить("выбрали раскладку");
  127. };
  128. // // // //
  129. ВыбратьРаскладкуX = мир =>
  130. {
  131. мир.выбраннаяРаскладка = "X";
  132. мир.уведомить("выбрали раскладку");
  133. };
  134. // // // //
  135. ПлавноСкрытьОкноПриветствия = мир =>
  136. {
  137. const css = `
  138. #${мир.окна.приветствие.указатель}
  139. {
  140. opacity: 1;
  141. animation: ${мир.окна.приветствие.указатель}ПлавноСкрыть 0.5s ease;
  142. animation-fill-mode: forwards;
  143. animation-delay: 0.1s;
  144. }
  145. `;
  146. мир.окна.приветствие.анимация.innerHTML = css;
  147. мир.окна.приветствие.показываем = false;
  148. };
  149. // // // //
  150. ПлавноПоказатьОкноПриветствия = мир =>
  151. {
  152. const css = `
  153. #${мир.окна.приветствие.указатель}
  154. {
  155. opacity: 0;
  156. animation: ${мир.окна.приветствие.указатель}ПлавноПоказать 1s ease;
  157. animation-fill-mode: forwards;
  158. }
  159. `;
  160. мир.окна.приветствие.анимация.innerHTML = css;
  161. мир.окна.приветствие.показываем = true;
  162. мир.окна.приветствие.элемент.style.display = "block";
  163. };
  164. // // // //
  165. ПодготовитьАнимациюОкнаПриветствия = мир =>
  166. {
  167. мир.окна.приветствие.анимация = document.createElement("style");
  168. document.head.appendChild(мир.окна.приветствие.анимация);
  169. мир.окна.приветствие.показываем = true;
  170. мир.окна.приветствие.элемент.addEventListener(
  171. "animationend",
  172. function()
  173. {
  174. if (мир.окна.приветствие.показываем)
  175. {
  176. мир.уведомить("плавно показали окно приветствия");
  177. }
  178. else {
  179. мир.уведомить("плавно скрыли окно приветствия");
  180. }
  181. }
  182. );
  183. };
  184. // // // //
  185. ЗадатьВидИАнимациюОкнаПриветствия = мир =>
  186. {
  187. const css = `
  188. #${мир.окна.приветствие.указатель}-тело
  189. {
  190. position: absolute;
  191. left: 50%;
  192. top: 50%;
  193. transform: translateX(-50%) translateY(-50%);
  194. }
  195. #${мир.окна.приветствие.указатель}
  196. {
  197. background-color: white;
  198. position: fixed;
  199. left: 0;
  200. top: 0;
  201. right: 0;
  202. bottom: 0;
  203. }
  204. @keyframes ${мир.окна.приветствие.указатель}ПлавноСкрыть
  205. {
  206. 0%
  207. {
  208. opacity: 1;
  209. }
  210. 100%
  211. {
  212. opacity: 0;
  213. }
  214. }
  215. @keyframes ${мир.окна.приветствие.указатель}ПлавноПоказать
  216. {
  217. 0%
  218. {
  219. opacity: 0;
  220. }
  221. 100%
  222. {
  223. opacity: 1;
  224. }
  225. }
  226. `;
  227. var вид = document.createElement("style");
  228. вид.innerHTML = css;
  229. document.head.appendChild(вид);
  230. };
  231. // // // //
  232. СоздатьОкноПриветствия = мир =>
  233. {
  234. мир.окна.приветствие = {
  235. "указатель": "окно-приветствия",
  236. };
  237. const html = `
  238. <div id="${мир.окна.приветствие.указатель}-тело">
  239. <center>
  240. <p>
  241. <span class="uk-text-large">Маджонг</span>
  242. ⚬ <span class="uk-text-large uk-text-bold">麻将</span> ⚬
  243. <span class="uk-text-large">Mahjong</span>
  244. </p>
  245. <span>${мир.версия}</span>
  246. <hr class="uk-divider-icon">
  247. <p uk-margin>
  248. <p>Выберите раскладку | 选择布局 | Select layout</p>
  249. <button id="${мир.окна.приветствие.указатель}-X" class="uk-button uk-button-default">X</button>
  250. <button id="${мир.окна.приветствие.указатель}-😀" class="uk-button uk-button-default">😀</button>
  251. <button id="${мир.окна.приветствие.указатель}-😭" class="uk-button uk-button-default">😭</button>
  252. </p>
  253. </center>
  254. </div>
  255. `;
  256. var окно = document.createElement("div");
  257. окно.id = мир.окна.приветствие.указатель;
  258. окно.innerHTML = html;
  259. document.body.appendChild(окно);
  260. окно.style.display = "none";
  261. мир.окна.приветствие.элемент = окно;
  262. $(`#${мир.окна.приветствие.указатель}-X`).click(function() {
  263. мир.уведомить("кнопка раскладки X");
  264. });
  265. $(`#${мир.окна.приветствие.указатель}-😀`).click(function() {
  266. мир.уведомить("кнопка раскладки 😀");
  267. });
  268. $(`#${мир.окна.приветствие.указатель}-😭`).click(function() {
  269. мир.уведомить("кнопка раскладки 😭");
  270. });
  271. };
  272. // // // //
  273. СоздатьХранилищеОкон = мир =>
  274. {
  275. мир.окна = {};
  276. };