mirror of
https://github.com/Llloooggg/TextSouls.git
synced 2026-03-06 12:36:23 +03:00
backend: добавлена генерация базовых характеристик персонажа
This commit is contained in:
@@ -36,11 +36,11 @@ class CharacterRace(db.Model, SerializerMixin):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.String(255), nullable=True, unique=True)
|
||||
characters = db.relationship("Character", backref="race", lazy="dynamic")
|
||||
endurance_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
strength_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
agility_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
defence_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
wisdom_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
endurance_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
strength_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
agility_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
defence_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
wisdom_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
@@ -55,11 +55,11 @@ class CharacterClass(db.Model, SerializerMixin):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.String(255), nullable=True, unique=True)
|
||||
characters = db.relationship("Character", backref="class", lazy="dynamic")
|
||||
endurance_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
strength_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
agility_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
defence_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
wisdom_koef = db.Column(db.Float(), nullable=True, unique=False)
|
||||
endurance_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
strength_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
agility_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
defence_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
wisdom_koef = db.Column(db.Float(), nullable=False, unique=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
@@ -90,36 +90,60 @@ class Character(db.Model, SerializerMixin):
|
||||
created_on = db.Column(
|
||||
db.DateTime, nullable=False, default=datetime.datetime.now()
|
||||
)
|
||||
endurance_base = db.Column(db.Integer(), nullable=False, unique=False)
|
||||
strength_base = db.Column(db.Integer(), nullable=False, unique=False)
|
||||
agility_base = db.Column(db.Integer(), nullable=False, unique=False)
|
||||
defence_base = db.Column(db.Integer(), nullable=False, unique=False)
|
||||
wisdom_base = db.Column(db.Integer(), nullable=False, unique=False)
|
||||
|
||||
endurance_base = db.Column(db.Integer(), nullable=True, unique=False)
|
||||
strength_base = db.Column(db.Integer(), nullable=True, unique=False)
|
||||
agility_base = db.Column(db.Integer(), nullable=True, unique=False)
|
||||
defence_base = db.Column(db.Integer(), nullable=True, unique=False)
|
||||
wisdom_base = db.Column(db.Integer(), nullable=True, unique=False)
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
char_race = CharacterRace.query.get(self.character_race)
|
||||
char_class = CharacterClass.query.get(self.character_class)
|
||||
|
||||
self.endurance_base = (
|
||||
100 * char_race.endurance_koef * char_class.endurance_koef
|
||||
)
|
||||
self.strength_base = (
|
||||
100 * char_race.strength_koef * char_class.strength_koef
|
||||
)
|
||||
self.agility_base = (
|
||||
100 * char_race.agility_koef * char_class.agility_koef
|
||||
)
|
||||
self.defence_base = (
|
||||
100 * char_race.defence_koef * char_class.defence_koef
|
||||
)
|
||||
self.wisdom_base = 100 * char_race.wisdom_koef * char_class.wisdom_koef
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@property
|
||||
def attack_power(self):
|
||||
return (
|
||||
def battle_stats(self):
|
||||
char_race = CharacterRace.query.get(self.character_race)
|
||||
char_class = CharacterClass.query.get(self.character_class)
|
||||
|
||||
attack_power = (
|
||||
self.strength_base
|
||||
* self.character_race.strength_koef
|
||||
* self.character_class.strength_koef
|
||||
* char_race.strength_koef
|
||||
* char_class.strength_koef
|
||||
)
|
||||
|
||||
@property
|
||||
def defence_chance(self):
|
||||
return (
|
||||
defence_chance = (
|
||||
self.defence_base
|
||||
* self.character_race.defence_koef
|
||||
* self.character_class.defence_koef
|
||||
* char_race.defence_koef
|
||||
* char_class.defence_koef
|
||||
)
|
||||
|
||||
@property
|
||||
def saving_chance(self):
|
||||
return (
|
||||
dodge_chance = (
|
||||
self.agility_base
|
||||
* self.character_race.agility_koef
|
||||
* self.character_class.agility_koef
|
||||
* char_race.agility_koef
|
||||
* char_class.agility_koef
|
||||
)
|
||||
|
||||
return {
|
||||
"attack_power": attack_power,
|
||||
"defence_chance": defence_chance,
|
||||
"dodge_chance": dodge_chance,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user