Таблицы БД - 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 Кол-во газа