Таблицы БД - Space-Lords-TG/docs GitHub Wiki
Актуальные данные по ссылке на доску Miro.
Скрипт, создающий таблицы и загружающие в некоторые из них (guns, hulls) данные.
Стоимости модулей в ресурсах в таблицах не хранятся, но вычисляются сервером на основе характеристик модулей.
Аналогично с очками мощи -- их просчитывает сервер, исходя из характеристик.
Таблица players
Поле |
Тип данных |
Описание |
id (PK) |
BIGINT |
Уникальный идентификатор игрока, соответствует ID в Telegram |
username |
VARCHAR(64) |
Имя пользователя |
created_at |
TIMESTAMP |
Дата регистрации |
Таблица hull_templates
Поле |
Тип данных |
Описание |
id (PK) |
INT |
Уникальный идентификатор корпуса |
name |
VARCHAR(32) |
Название корпуса ("Баланс", "Стриж" и т.д.) |
base_armor |
FLOAT |
Базовая защита (например, 30, 20, 40) |
base_max_shields |
FLOAT |
Базовые щиты (например, 500, 450, 600) |
base_max_health |
FLOAT |
Базовое здоровье (например, 400, 350, 500) |
base_maneuver |
FLOAT |
Базовая манёвренность (например, 0.3, 0.5) |
gain_armor |
FLOAT |
Прирост защиты за уровень |
gain_max_shields |
FLOAT |
Прирост щитов за уровень |
gain_max_health |
FLOAT |
Прирост здоровья за уровень |
gain_maneuver |
FLOAT |
Прирост манёвренности за уровень |
Таблица gun_templates
Поле |
Тип данных |
Описание |
id (PK) |
INT |
Уникальный идентификатор оружия |
name |
VARCHAR(32) |
Название оружия ("Равновесие", "Вихрь" и т.д.) |
base_damage |
FLOAT |
Базовый урон (например, 100, 85, 110) |
base_crit_rate |
FLOAT |
Базовый шанс крита (например, 0.1, 0.2) |
base_crit_damage |
FLOAT |
Базовый множитель крита (например, 2, 1.5) |
base_speed |
FLOAT |
Базовая скорость атаки (например, 83.33, 110) |
gain_damage |
FLOAT |
Прирост урона за уровень |
gain_crit_rate |
FLOAT |
Прирост шанса крита за уровень |
gain_crit_damage |
FLOAT |
Прирост множителя крита за уровень |
gain_speed |
FLOAT |
Прирост скорости атаки за уровень |
Таблица players_guns
Поле |
Тип данных |
Описание |
id (PK) |
SERIAL |
Уникальный ID экземпляра |
player_id (FK) |
BIGINT |
Владелец (players.id) |
gun_id (FK) |
INT |
Базовый тип пушки (gun_templates.id) |
current_level |
INT |
Текущий уровень (0-100) |
is_equipped |
BOOLEAN |
Надет ли на корабль |
Таблица players_hulls
Поле |
Тип данных |
Описание |
id (PK) |
SERIAL |
Уникальный ID экземпляра |
player_id (FK) |
BIGINT |
Владелец (players.id) |
hull_id (FK) |
INT |
Базовый тип корпуса (hull_templates.id) |
current_level |
INT |
Текущий уровень (0-100) |
is_equipped |
BOOLEAN |
Используется ли на корабле |
Таблица ships
Поле |
Тип данных |
Описание |
id (PK) |
INT |
Уникальный идентификатор корабля |
player_id (FK) |
BIGINT |
Владелец корабля (players.id) |
player_hull_id (FK) |
INT |
Установленный корпус (players_hulls.id) |
player_gun_id (FK) |
INT |
Установленная пушка (players_guns.id) |
health |
FLOAT |
Текущее здоровье |
shields |
FLOAT |
Текущие щиты |
Таблица arena_fights
Поле |
Тип данных |
Описание |
id (PK) |
INT |
Уникальный идентификатор корабля |
player1_id (FK) |
BIGINT |
Владелец корабля1 (players.id) |
player2_id (FK) |
BIGINT |
Владелец корабля2 (players.id) |
result |
STRING |
Результат боя (draw, win1, win2) |
Таблица player_resources
Поле |
Тип данных |
Описание |
id (PK) |
INT |
Уникальный идентификатор корабля |
player_id (FK) |
BIGINT |
Владелец корабля1 (players.id) |
metals |
INT |
Кол-во металла |
crystalls |
INT |
Кол-во кристаллов |
gas |
INT |
Кол-во газа |