В этом разделе описано, как добавлять новые карты в приложение: формат данных, расположение файлов и шаги по внесению изменений.
Где хранятся данные
| Тип данных | Где хранится |
|---|---|
База карт |
|
Изображения карт |
|
Состояние колоды героя |
SQLite через Room (создается автоматически при установке) |
| База карт и изображения — это исходные ресурсы приложения. Они включаются в APK при компиляции. Чтобы добавить новые карты, нужно пересобрать приложение. |
Формат cards.json
Файл cards.json содержит массив объектов. Каждый объект — одна карта.
[
{
"id": 1,
"name": "Blazing Strike",
"type": "ABILITY",
"cardSet": "Core",
"imageRes": "card_blazing_strike"
},
{
"id": 2,
"name": "Iron Shield",
"type": "EQUIPMENT",
"cardSet": "Core",
"imageRes": "card_iron_shield"
}
]
Описание полей
| Поле | Тип | Описание |
|---|---|---|
|
|
Уникальный числовой идентификатор карты. Не должен повторяться в рамках всего файла. |
|
|
Название карты. Используется в поиске и отображается в интерфейсе. |
|
|
Тип карты. Должен точно совпадать с одним из значений перечисления |
|
|
Название набора, из которого карта. Используется для фильтрации. Пример: |
|
|
Имя ресурса изображения без расширения. Должно совпадать с именем файла в |
Допустимые значения поля type
Значения поля type берутся из перечисления CardType.kt в исходном коде. Актуальный список всегда в CardType.kt на GitHub.
Текущие известные типы: HERO_SHEET, WEAPON, ARMOR, TRINKET, RELIC, ITEM_UPGRADE, BACKPACK, DISCIPLINE.
Изображения карт
Требования к изображениям
-
Формат: PNG или WebP
-
Расположение:
app/src/main/res/drawable/ -
Именование: только строчные буквы, цифры и символ подчеркивания
_. Без пробелов и дефисов. Без расширения в полеimageResв JSON.
Как добавить новую карту
-
Подготовьте изображение в нужном разрешении и формате
-
Добавьте файл изображения в
app/src/main/res/drawable/ -
Откройте
app/src/main/assets/cards.json -
Добавьте объект карты в конец массива (перед закрывающей
]):, { "id": 42, "name": "Название карты", "type": "ABILITY", "cardSet": "Core", "imageRes": "card_название_карты" } -
Проверьте уникальность поля
id— он не должен совпадать с существующими картами -
Соберите и установите приложение через Android Studio или командой:
./gradlew installDebug
Валидация JSON
Перед сборкой убедитесь, что JSON-файл валиден. Используйте любой онлайн-валидатор, например jsonlint.com, или встроенную проверку Android Studio (файл подсвечивается красным при синтаксических ошибках).
Опечатка в поле type (например, "Ability" вместо "ABILITY") приведет к тому, что карта не будет распознана корректно — тип упадет в значение по умолчанию или вызовет ошибку при парсинге.
|