Генератор карт
https://mau.miroq.ru/card/next/7_4_4_put/cover
Вы могли заметить что карты состоят из общих компонентов.
- Основание карты.
- Подложка цвета.
- Символы верхнего угла.
- Символы нижнего угла.
- Глиф.
Генератор карт занимается сборкой карт из уже готовых асетов. Это позволяет добиться большей гибкости.
Генератор напрямую не связан с движком, пересекаются они только в формате сохранения карт в виде строки.
Репозиторий mau-cards.
Использование
На самом деле использовать генератор достаточно просто. Ссылка на изображение представлена в следующем формате:
https://mau.miroq.ru/card/{asset}/{card}/{filter}
Где:
{asset}: Это набор асетов, сейчас доступныprogressive,next.{card}: Описание карты, о нем поговорим дальше.{filter}: Эффект для карты. Доступныcover,uncover.
Формат карта: {color}_{value}_{cost}_{type}.
- Цвет от 0 до 7.
- Значение карты от 0 до 9.
- Стоимость карты от 0 до 99.
- Тип карты.
Доступные типы карт:
number: Числовая карта.twist: Обмен картами с другим игроком.rotate: Обмен картами оо всеми игроками.block: Пропуск хода.color: Карта простой смены цвета.delta: Особая карта (пока нет применения).reverse: Разворот порядка ходов.take: Взять карты.put: Положить карты.wild+color: дикий выбор цвета.wild+take: Дикое взятие карт.
Мотивация
Долгое время использовались нарисованные карты-стикеры. Они выглядели очень канонично и для стороннего наблюдателя всё выглядело словно участники только и отправляют стикеры в чат. Однако здесь же кроется и главная проблема. Использовать во время игры можно только те карты, что есть в стикер паке.
Генерация карт же с другой стороны предлагают большую гибкость. Вместе с тем часто используемые карты кешируются для повторного использования.
Асеты
Теперь рассмотрим как генератор хранит асеты карт для сборки.
В корне проекта есть директория assets/.
Каждая директория внутри представляет собой отдельный набор асетов для карт.
Если директория называется progressive, то в ссылке стоит указывать:
mau.miroq.ru/card/progressive/...
base.png
- Размер: 312 x 512
Подложка для карты. Используется как основа для всех карт.
color/
- Размер: 312 x 512
Цветовая подложка для карты. Название файла совпадает с порядковым номером цвета.
Для mau v2.3 это:
- красный.
- Оранжевый.
- Жёлтый.
- Зелёный.
- Голубой.
- Синий.
- Чёрный.
- Кремовый.
при том 6 (чёрный) используется как основный цвет для диких карт.
sym/
- Размер не больше 64 x 64.
- Не Зависят от цвета карты.
используются как символы верхнего левого углы. Название файла соответствует назначению. Во время сборки могут комбинироваться до 3з символов на карте.
0..9: Числовые символы.block: Символ карты пропуска хода.color: Карта смены цвета. Простая и дикая.delta: Для особого типа карт.minus: Для карт типаput. Противоположность взятию.plus: Для карт типаtake. В том числе иwild+take.reverse: Для карт разворота. Также помечаются карты обмена между игроками.
sym_reverse/
- Размер не больше 64 x 64.
- Не зависят от цвет карты.
используются как символы правого нижнего угла.
Аналогичны sym/, однако символы должны быть перевёрнуты.
Во время сборки могут комбинироваться до 3з символов на карте.
glyph/
- Размер не больше 160 x 160.
Главный символ карты. В отличие от небольших символов, уникальный для каждого типа карты. (почти)
Для диках карт:
color: Дикая карта выбора цвета.take_1/2/4: Для картwild+takeв варианте взять 1, 2+, 4+.
С привязкой к цвету:
0..9: Для числовых карт.block: Для карт пропуска хода.color: Для карты выбора текущего цвета. (упрощённый вариант дикой)delta: Особый вид карты.reverse: Карта разворота порядка ходов.take_1/2/4: Варианты карты взять/положить для 1, 2+, 4+.
Генератор карт
Проект написан на Go с использованием фреймворка Fiber. Для кеширования карт используется Redis база данных.
Может появится больше подробностей.