Skip to content

Commit

Permalink
Finish 0.3.26
Browse files Browse the repository at this point in the history
  • Loading branch information
Tiendil committed Feb 10, 2018
2 parents 91a861b + f34d43a commit 8693c8b
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 40 deletions.
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@
# built documents.
#
# The short X.Y version.
version = '0.3.25'
version = '0.3.26'
# The full version, including alpha/beta/rc tags.
release = '0.3.25'
release = '0.3.26'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
28 changes: 28 additions & 0 deletions docs/source/development/architecture.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
- tt_market — рынок;
- tt_personal_messages — личные сообщения;
- tt_storage — хранилище предметов игрока (в рамках Сказки, карты судьбы).
- tt_bank — хранилище игровой валюты с поддержкой транзакций.
- tt_timers — управление таймерами (например, на получение карты), по истечении таймера делает заданные http запрос.

the_tale
~~~~~~~~
Expand Down Expand Up @@ -95,6 +97,32 @@ tt_storage
- перемещение предмета между «карманами» хранилища;
- логирование всех операций.

tt_bank
~~~~~~~

Хранилище игровой валюты с поддержкой транзакций.

**Не привязан к логике игры, может быть использован отдельно.**

Функциональность:

- болучение баланса аккаунта в каждой валюте;
- транзакции: начал, окончание, откат;

tt_timers
~~~~~~~~~

Управление таймерами (например, на получение карты или постройки здания), по истечении таймера делает заданные http запрос.

**Не привязан к логике игры, может быть использован отдельно.**

Функциональность:

- создание таймера с заданными параметрами;
- изменение скорости выполнения таймера;
- http запрос по истечению таймера;
- автопродление таймера.

Планируемые сервисы
-------------------

Expand Down
5 changes: 5 additions & 0 deletions docs/source/development/development_process.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@

Весь не важный код покрывается тестами по возможности.

Миграции
--------

Миграции схемы базы создаются на основе Django ORM (даже если сам Django больше нигде в сервисе не используется).

Работа с версиями
-----------------

Expand Down
15 changes: 14 additions & 1 deletion docs/source/development/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,12 @@
:пароль: 111111


*************
Запуск тестов
*************

Тесты игры
----------

Для работы тестов необходимо запустить группу service: в супервизоре.

.. code-block:: bash
Expand All @@ -155,3 +157,14 @@
cd ~/current
source ./venv/bin/activate
django-admin test --nomigrations the_tale.game.jobs.tests --settings the_tale.settings
Тесты сервисов
--------------

.. code-block:: bash
sudo su <пользователь сервиса>
cd ~/current
source ./venv/bin/activate
python -m unittest discover <основной python пакет сервиса>
4 changes: 2 additions & 2 deletions docs/source/external_api/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

.. code-block:: bash
curl -b "sessionid=kwc2ngq02dilu56ti76nj21z18wzaghe csrftoken=wxiefxk7i6kvkUeyi4jU2xO0B96RwvJc" -d "email=email@gmail.com&password=11111" -H "X-CSRFToken: wxiefxk7i6kvkUeyi4jU2xO0B96RwvJc" "http://localhost:8000/accounts/auth/api/login?api_version=1.0&api_client=SASS-asas"
curl -b "sessionid=kwc2ngq02dilu56ti76nj21z18wzaghe; csrftoken=wxiefxk7i6kvkUeyi4jU2xO0B96RwvJc" -d "email=email@gmail.com&password=11111" -H "X-CSRFToken: wxiefxk7i6kvkUeyi4jU2xO0B96RwvJc" "http://localhost:8000/accounts/auth/api/login?api_version=1.0&api_client=SASS-asas"
curl -b "sessionid=kwc2ngq02dilu56ti76nj21z18wzaghe csrftoken=wxiefxk7i6kvkUeyi4jU2xO0B96RwvJc" -d "email=email@gmail.com&password=111111&csrfmiddlewaretoken=wxiefxk7i6kvUeyi4jU2xO0B96RwvJc" "http://localhost:8000/accounts/auth/api/login?api_version=1.0&api_client=SASS-asas"
curl -b "sessionid=kwc2ngq02dilu56ti76nj21z18wzaghe; csrftoken=wxiefxk7i6kvkUeyi4jU2xO0B96RwvJc" -d "email=email@gmail.com&password=111111&csrfmiddlewaretoken=wxiefxk7i6kvUeyi4jU2xO0B96RwvJc" "http://localhost:8000/accounts/auth/api/login?api_version=1.0&api_client=SASS-asas"
Формат запроса
Expand Down
73 changes: 38 additions & 35 deletions docs/source/external_api/methods.rst
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@

Получить информацию об игроке.

:адрес: /accounts/&lt;account&gt;/api/show
:адрес: /accounts/<account>/api/show
:http-метод: GET
:версии: 1.0
:параметры:
Expand Down Expand Up @@ -232,7 +232,7 @@

:адрес: /game/api/info
:http-метод: POST
:версии: 1.8
:версии: 1.9
:параметры:
* GET: account — идентификатор аккаунта
* GET: client_turns — номера ходов, по отношению к которым можно вернуть сокращённую информацию о герое (только изменённые с этого времени поля).
Expand Down Expand Up @@ -280,28 +280,17 @@
"is_own": true|false, // информация о собственном герое или о чужом
"is_old": true|false, // информация устаревшая или нет
"hero": <hero_info>, // информация о герое
"in_pvp_queue": true|false // находится ли герой в очереди на арену
"in_pvp_queue": true|false, // находится ли герой в очереди на арену
"energy": <целое число>|null // энергия игрока
}
<hero_info> = {
"patch_turn": null|<целое число>, // номер хода, для которого возвращается патч или null, если информация полная
"energy":{ // энергия игрока [личная информация]
"bonus": <целое число>, // дополнительная энергия
"max": <целое число>, // максимальное количество
"value": <целое число>, // текущее количество
"discount": <целое число> // скидка энергии при её трате (например, от использования артефактов)
},
"equipment":{ // экипировка героя, словарь <идентификатор типа экипировки, информация об артефакте>
"<целое число>": <artifact_info> // идентификатор типа экипировки: информация об артефакте
},
"cards":{ // карты судьбы [личная информация]
"help_count": <целое число>, // сколько помощи накоплено для получения новой карты
"help_barrier": <целое число> // сколько всего помощи надо накопить для новой карты
},
"companion": <companion_info>|null,// информация о спутнике
"bag":{ // содержимое рюкзака, словарь <внутренний идентификатор предмета, описание> ()
Expand Down Expand Up @@ -499,9 +488,9 @@
:http-метод: POST
:версии: 1.0
:параметры:
* GET: building — идентификатор здания, если способность касается здания
* GET: battle — идентификатор pvp сражения, если способность касается операций с pvp сражением
:ошибки: нет
:ошибки:
* game.abilities.use.no_enough_energy — для использования способности не хватает энергии
Метод является «неблокирующей операцией» (см. документацию), формат ответа соответствует ответу для всех «неблокирующих операций».
Expand All @@ -523,14 +512,14 @@
Метод является «неблокирующей операцией» (см. документацию), формат ответа соответствует ответу для всех «неблокирующих операций».
Карты: взять
------------------
Карты: получить новые карты
---------------------------
Взять новую карту в колоду игрока.
Получить все накопившиеся новые карты.
:адрес: /game/cards/api/get
:адрес: /game/cards/api/receive
:http-метод: POST
:версии: 2.0
:версии: 1.0
:параметры: нет
:ошибки: нет
Expand All @@ -541,18 +530,19 @@
.. code-block:: javascript
{
"message": "строка", // описание результата в формате html
"card": <card_info> // описание полученной карты
"cards": [
<card_info>, // описание полученной карты
...]
}
<card_info> = { // информация о карте в колоде игрока
"name": "строка", // название
"type": <целое число>, // тип
"full_type": "строка", // полный тип карты (с учётом эффектов)
"rarity": <целое число>, // редкость карты
"uid": <целое число>, // уникальный идентификатор в колоде игрока
"auction": true|false, // может быть продана на рынке
"in_storage": true|false // находится ли карты в хранилище или в руке
<card_info> = { // информация о карте в колоде игрока
"name": "строка", // название
"type": <целое число>, // тип
"full_type": "строка", // полный тип карты (с учётом эффектов)
"rarity": <целое число>, // редкость карты
"uid": "строка", // уникальный идентификатор в колоде игрока
"auction": true|false, // может быть продана на рынке
"in_storage": true|false // находится ли карты в хранилище или в руке
}
Expand Down Expand Up @@ -617,7 +607,16 @@
"cards": [
<card_info>, // описание полученной карты, формат см. в описании метода получения новой карты
...
]
],
"new_cards": <целое число>, // количество новых карт, которые можно получить
"new_card_timer": { // таймер, отсчитывающий время получения следующей карт
"speed": <дробное число>, // скорость накопления ресурсов (в секунду)
"border": <дробное число>, // сколько «ресурсов» надо накопить, чтобы сработал таймер
"resources": <дробное число>, // количество ресурсов, которые накопились к моменту resources_at
"resources_at": <timestamp>, // время, на которое указано количество «ресурсов» в resources
"finish_at": <timestamp> // время срабатывания таймера
}
}
Expand Down Expand Up @@ -698,7 +697,7 @@
Подробная информация о конкретном городе
:адрес: /game/places/&lt;place&gt;/api/show
:адрес: /game/places/<place>/api/show
:http-метод: GET
:версии: 2.0
:параметры:
Expand Down Expand Up @@ -854,7 +853,7 @@
Подробная информация о конкретном Мастере
:адрес: /game/persons/&lt;person&gt;/api/show
:адрес: /game/persons/<person>/api/show
:http-метод: GET
:версии: 1.0
:параметры:
Expand All @@ -872,6 +871,10 @@
"name": "строка", // имя
"updated_at": <timestamp>, // время последнего обновления информации
"profession": <целое число>, // профессия
"race": <целое число>, // раса
"gender": <целое число>, // пол
"place": { // краткая информация о городе
"id": <целое число>, // идентификатор
"name": "<строка>", // название
Expand Down

0 comments on commit 8693c8b

Please sign in to comment.