Задачи Спринт 7 FLEX 1. Создать и использовать в интерфейсе модуля ресурсы-карты из картинок, выложенных в группу 2. Создать стейт-машину хода игры состояющую из следующих состояний a. Фаза действий - отображение составления комбинации из карт действий b. Фаза покупки - отображение процесса покупки c. Фаза ожидания - отображение действий других пользователей Создание эффекта перемещения карт между колодами Запрос статуса игры и обновление информации на экране (фаза ожидания). В этой фазе хода каждый игрок должен видеть действия других игроков: a. карты, которые выкладывают игроки в свою фазу действий b. Покупки, которые делают игроки в фазу покупок c. Информация должна отображаться визуально в той же области экрана, где игрок выполнял свои действия Запрос и обновление статуса пользователя – информация о том, сколько в данный момент пользователь имеет действий, покупок и монет для покупки должна получаться с сервера (таблица UserVariables) и отображаться в интерфейсе обновление колод пользователя. Должны быть реализованы функции позволяющие: a. добавить карту в колоду b. переместить карту между колодами Функции для начальной настройки игры – это RPC-вызов, который осуществляет плагин игры для того, чтобы сообщить серверу, какие стопки карт и колоды должны присутствовать в игре, а также какие карты получает игрок изначально. В плагине данные настройки хранятся в виде xmlресурса. Плагин посылает данные на сервер, сервер добавляет в объект Рум (Игра) все те сущности, которые перечислил плагин. 3. 4. 5. 6. 7. PHP Создание скрипта базы данных по заданной схеме. Существующая схема базы данных должна быть дополнена таблицами Колода, Стопка, Карта, Переменные пользователя, Тип Карты перечисленными на схеме дополнения к базе данных спринт 7 9. Создание класса для чтения-записи в БД из пункта 8 o класс должен использовать функции mysql-библиотеки и реализовывать только дополнительную логику 10. Создание RPC-функций для сообщения клиенту статуса игры, статуса пользователя, состояния колод. Статус игры содержит информацию обо всех колодах и стопках в игре, включая последовательности карт, играемые пользователем в данный момент. Для стопок – информация о том, сколько карт в стопке. Для колод – карты какого типа в каком порядке содержатся в колоде. Статус пользователя – информация о количестве действий, 8. которые пользователь может выполнить за ход, о количестве покупок, о количестве монет на покупки в текущем ходу. 11. Создание RPC-функций, реализующих возможные действия пользователя o Увеличение/уменьшение значения переменной пользователя o Перемещение карты из колоды в колоду и из стопки в колоду o Увеличение/уменьшение количества карт в стопке Создание интерфейса супервизора, Интеграция интерфейсов администратора 13. Добавление авторизации в интерфейс администратора 14. Добавление RPC-функции настройки игры. Получая от клиента запрос с данными о начальной настройке игры , сервер должен произвести соответствующие действия o Создать стопку и случайным образом выбрать тип карт если это стопка карт действия (выбирается 10 из 25 возможных) o Создать для каждого игрока колоды: Колода игрока Сброс игрока Рука игрока Последовательность карт играемая игроком o Осуществить начальное перемещение карт (раздачу игрокам) 5 карт сокровищ Copper достоинством 1 и 3 карты провинций поместить в колоду игрока Перемешать колоду 5 верхних карт из колоды игрока поместить в руку игрока 15. Добавить классы колод и стопок. Колода – коллекция карт, в которой каждая карта встречается в заданной позиции. Для нее нужны методы: o взять верхнюю o взять следующую o переместить с верха колоды в низ колоды o переместить верхнюю в другую колоду o переместить верхние N в другую колоду o перемешать колоду 12. Стопка – объект сопоставляющий тип карты и количество карт в стопке. Т.е. в ней только один тип карт и не важно в каких они позициях. Для нее нужны методы: o o o Задать/узнать размер стопки Задать/узнать тип карт в стопке Переместить карту из стопки в колоду(уменьшить объем стопки, создать экземпляр карты) Объекты этих классов должны работать с таблицами Deck и Pile см. обновление базы данных и содержать хранящиеся в таблицах данные.