CampFirePlay/models/character.model.js
2025-01-08 20:01:54 +03:00

83 lines
2.5 KiB
JavaScript

const sequelize = require('../db');
const { DataTypes } = require('sequelize');
const Character = sequelize.define('character', {
telegram_id: {
type: DataTypes.BIGINT,
primaryKey: true,
unique: true
},
username: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
},
level: {
type: DataTypes.INTEGER,
defaultValue: 1
},
exp: {
type: DataTypes.INTEGER,
defaultValue: 0
},
hp: {
type: DataTypes.INTEGER,
defaultValue: 100
}, // Текущее здоровье
max_hp: {
type: DataTypes.INTEGER,
defaultValue: 100
}, // Максимальное здоровье
armor: {
type: DataTypes.INTEGER,
defaultValue: 0
}, // Броня для уменьшения урона
stamina: {
type: DataTypes.INTEGER,
defaultValue: 100
}, // Текущая выносливость
max_stamina: {
type: DataTypes.INTEGER,
defaultValue: 100
}, // Максимальная выносливость
force: {
type: DataTypes.INTEGER,
defaultValue: 1
}, // "F": физическая сила, влияет на урон
intelligence: {
type: DataTypes.INTEGER,
defaultValue: 1
}, // "I": интеллект для исследований/крафта
resilience: {
type: DataTypes.INTEGER,
defaultValue: 1
}, // "R": устойчивость, влияет на здоровье и защиту
endurance: {
type: DataTypes.INTEGER,
defaultValue: 1
}, // "E": выносливость, влияет на количество выполняемых заданий
dirtymoney: {
type: DataTypes.INTEGER,
defaultValue: 0
}, // Грязные деньги, заработанные нелегально
stealedcards: {
type: DataTypes.INTEGER,
defaultValue: 0
}, // Украденные карточки
shoprobcd: {
type: DataTypes.INTEGER,
defaultValue: 0
}, // КД на ограбление магазина
pocketstealcd: {
type: DataTypes.INTEGER,
defaultValue: 0
}, // КД на кражу из кармана
inventory: {
type: DataTypes.JSON,
defaultValue: []
}, // Инвентарь, где будут храниться предметы
});
module.exports = Character;