dev
This commit is contained in:
@@ -244,17 +244,18 @@ class Character:
|
||||
光强=0,
|
||||
暗强=0,
|
||||
全属抗=0,
|
||||
火抗=0,
|
||||
冰抗=0,
|
||||
光抗=0,
|
||||
暗抗=0,
|
||||
火属性抗性=0,
|
||||
冰属性抗性=0,
|
||||
光属性抗性=0,
|
||||
暗属性抗性=0,
|
||||
火属性攻击=False,
|
||||
冰属性攻击=False,
|
||||
光属性攻击=False,
|
||||
暗属性攻击=False,
|
||||
移速=0,
|
||||
攻速=0,
|
||||
施放=0,
|
||||
移动速度=0,
|
||||
攻击速度=0,
|
||||
施放速度=0,
|
||||
三速=0,
|
||||
命中=0,
|
||||
命中率=0,
|
||||
物暴=0,
|
||||
@@ -321,9 +322,9 @@ class Character:
|
||||
self.CriticalM += kwargs.get('CriticalM', 0) + 魔暴
|
||||
self.CriticalP += kwargs.get('CriticalP', 0) + 物暴
|
||||
self.SkillAttack *= (1 + 技攻) * (1 + kwargs.get('SkillAttack', 0))
|
||||
self.SpeedA += 攻速 + kwargs.get('SpeedA', 0)
|
||||
self.SpeedM += 移速 + kwargs.get('SpeedM', 0)
|
||||
self.SpeedR += 施放 + kwargs.get('SpeedR', 0)
|
||||
self.SpeedA += 攻击速度 + kwargs.get('SpeedA', 0) + 三速
|
||||
self.SpeedM += 移动速度 + kwargs.get('SpeedM', 0) + 三速
|
||||
self.SpeedR += 施放速度 + kwargs.get('SpeedR', 0) + 三速
|
||||
self.HitP += 命中率 + kwargs.get('HitP', 0)
|
||||
self.Hit += 命中 + kwargs.get('Hit', 0)
|
||||
self.Attack += 攻击强化 + kwargs.get('Attack', 0)
|
||||
@@ -415,7 +416,15 @@ class Character:
|
||||
info['name'] = self.nameCN
|
||||
info['weapons'] = self.武器选项
|
||||
skillInfo = []
|
||||
skill_clothes = []
|
||||
platinum = []
|
||||
for skill in self.skills:
|
||||
# 白金
|
||||
if 15 <= skill.learnLv <= 70 and skill.learnLv not in [48,50]:
|
||||
platinum.append(skill.name)
|
||||
# 时装
|
||||
if skill.learnLv <= 95:
|
||||
skill_clothes.append(skill.name)
|
||||
skillInfo.append(
|
||||
{
|
||||
'id': skill.id,
|
||||
@@ -448,7 +457,17 @@ class Character:
|
||||
info['suits'] = suits
|
||||
info['stones'] = stones
|
||||
info['enchants'] = equInfos.enchants
|
||||
emblems = []
|
||||
info['emblems'] = equInfos.emblems
|
||||
info["avatar"] = equInfos.funs.get_dress_list(skill_clothes)
|
||||
for skill in platinum:
|
||||
info['emblems'].append({
|
||||
'id': skill,
|
||||
'fame':232,
|
||||
'position':["辅助装备", "魔法石"],
|
||||
"detail": skill + " Lv+1" + " 四维 + 8",
|
||||
"categorize": ["技能"],
|
||||
"rarity": "白金",
|
||||
})
|
||||
return info
|
||||
|
||||
def getBasicInos(self):
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import importlib
|
||||
from database.models import Session, EquData, StoneData, SuitData, EnchantData
|
||||
from database.models import EmblemData, Session, EquData, StoneData, SuitData, EnchantData
|
||||
from database.connect import get_db_engine as get_engine
|
||||
from functools import cache
|
||||
|
||||
@@ -75,12 +75,14 @@ class Equipments:
|
||||
self.equ_dict: dict[str, Equ] = {}
|
||||
self.stone_dict: dict[str, Equ] = {}
|
||||
self.enchants = []
|
||||
self.emblems = []
|
||||
self.suits: list[Suit] = []
|
||||
self.suit_dict: dict[str, Suit] = {}
|
||||
self.init_equs()
|
||||
self.init_suits()
|
||||
self.init_enchants()
|
||||
self.init_stones()
|
||||
self.init_emblem()
|
||||
self.engine.dispose()
|
||||
|
||||
def init_equs(self):
|
||||
@@ -150,6 +152,19 @@ class Equipments:
|
||||
pass
|
||||
pass
|
||||
|
||||
def init_emblem(self):
|
||||
"""从数据库中获取所有徽章信息"""
|
||||
with Session(self.engine) as session:
|
||||
db_list = session.query(EmblemData).all()
|
||||
for item in db_list:
|
||||
emblem = {k: v for k, v in item.__dict__.items() if not k.startswith('_')}
|
||||
emblem['position'] = [] if emblem['itemType'] is None else emblem['itemType'].split(',')
|
||||
emblem['categorize'] = [] if emblem['categorize'] is None else emblem['categorize'].split(',')
|
||||
del emblem['itemType']
|
||||
self.emblems.append(emblem)
|
||||
pass
|
||||
pass
|
||||
|
||||
def init_func(self):
|
||||
"""根据装备版本加载装备效果"""
|
||||
try:
|
||||
|
||||
@@ -33,6 +33,7 @@ class CharacterEquipInfo:
|
||||
"""贴膜信息"""
|
||||
|
||||
def __init__(self, info={}, equVerison=0, part='') -> None:
|
||||
info["fusion"] = info.get("fusion", None)
|
||||
self.__dict__.update(info)
|
||||
equ = get_equipment(equVerison).equ_dict.get(self.id, None)
|
||||
fusion = get_equipment(equVerison).stone_dict.get(self.fusion, None)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from .suit import suit_func_list
|
||||
from .jade import jade_func_list
|
||||
from .equ import equ_func_list
|
||||
|
||||
from .avatar import get_dress_list
|
||||
options = [
|
||||
{'id': 1, 'name': '龙战八荒,', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
|
||||
{'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']},
|
||||
|
||||
@@ -0,0 +1,359 @@
|
||||
装扮选项属性 = {
|
||||
"神器": {
|
||||
"智力": 65,
|
||||
"体力": 65,
|
||||
"精神": 65,
|
||||
"力量": 65,
|
||||
"施放速度": 0.14,
|
||||
"移动速度": 0.07,
|
||||
"攻击速度": 0.07,
|
||||
"火属性抗性": 45,
|
||||
"光属性抗性": 45,
|
||||
"冰属性抗性": 45,
|
||||
"暗属性抗性": 45,
|
||||
"所有异常抗性": 0.042
|
||||
},
|
||||
"稀有": {
|
||||
"智力": 55,
|
||||
"体力": 55,
|
||||
"精神": 55,
|
||||
"力量": 55,
|
||||
"施放速度": 0.12,
|
||||
"移动速度": 0.06,
|
||||
"攻击速度": 0.06,
|
||||
"火属性抗性": 35,
|
||||
"光属性抗性": 35,
|
||||
"冰属性抗性": 35,
|
||||
"暗属性抗性": 35,
|
||||
"所有异常抗性": 0.036
|
||||
},
|
||||
"高级": {
|
||||
"智力": 45,
|
||||
"体力": 45,
|
||||
"精神": 45,
|
||||
"力量": 45,
|
||||
"施放速度": 0.12,
|
||||
"移动速度": 0.05,
|
||||
"攻击速度": 0.05,
|
||||
"火属性抗性": 25,
|
||||
"光属性抗性": 25,
|
||||
"冰属性抗性": 25,
|
||||
"暗属性抗性": 25,
|
||||
"所有异常抗性": 0.03
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class 装扮:
|
||||
部位: str
|
||||
品质: str
|
||||
套装: str
|
||||
选项集合: tuple[str]
|
||||
|
||||
def 效果(self, 角色, 选项: str):
|
||||
if 选项 in self.选项集合:
|
||||
数值 = 装扮选项属性[self.品质][选项]
|
||||
角色.SetStatus(**{选项: 数值})
|
||||
elif str(选项) == '0':
|
||||
pass
|
||||
else:
|
||||
角色.单技能加成(名称=选项, lv=1)
|
||||
|
||||
|
||||
class 神器装扮头发(装扮):
|
||||
部位 = "头发"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
id = 1
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
|
||||
|
||||
class 神器装扮帽子(装扮):
|
||||
部位 = "帽子"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
|
||||
|
||||
class 神器装扮脸部(装扮):
|
||||
部位 = "脸部"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
# 逗号不能删
|
||||
选项集合 = ("攻击速度", "所有异常抗性")
|
||||
|
||||
|
||||
class 神器装扮胸部(装扮):
|
||||
部位 = "胸部"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
选项集合 = ("攻击速度", "所有异常抗性")
|
||||
|
||||
|
||||
class 神器装扮上衣(装扮):
|
||||
部位 = "上衣"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
选项集合 = ()
|
||||
|
||||
|
||||
class 神器装扮腰带(装扮):
|
||||
部位 = "腰带"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
选项集合 = ("力量", "体力", "火属性抗性", "光属性抗性", "冰属性抗性", "暗属性抗性")
|
||||
|
||||
|
||||
class 神器装扮下装(装扮):
|
||||
部位 = "下装"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
选项集合 = ()
|
||||
|
||||
|
||||
class 神器装扮鞋(装扮):
|
||||
部位 = "鞋"
|
||||
品质 = "神器"
|
||||
套装 = "神器装扮"
|
||||
选项集合 = ("力量", "体力", "移动速度")
|
||||
|
||||
|
||||
class 稀有装扮头发(装扮):
|
||||
部位 = "头发"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
|
||||
|
||||
class 稀有装扮帽子(装扮):
|
||||
部位 = "帽子"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
|
||||
|
||||
class 稀有装扮脸部(装扮):
|
||||
部位 = "脸部"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("攻击速度", "所有异常抗性")
|
||||
|
||||
|
||||
class 稀有装扮胸部(装扮):
|
||||
部位 = "胸部"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("攻击速度", "所有异常抗性")
|
||||
|
||||
|
||||
class 稀有装扮上衣(装扮):
|
||||
部位 = "上衣"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ()
|
||||
|
||||
|
||||
class 稀有装扮腰带(装扮):
|
||||
部位 = "腰带"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("力量", "体力", "火属性抗性", "光属性抗性", "冰属性抗性", "暗属性抗性")
|
||||
|
||||
|
||||
class 稀有装扮下装(装扮):
|
||||
部位 = "下装"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ()
|
||||
|
||||
|
||||
class 稀有装扮鞋(装扮):
|
||||
部位 = "鞋"
|
||||
品质 = "稀有"
|
||||
套装 = "稀有装扮"
|
||||
选项集合 = ("力量", "体力", "移动速度")
|
||||
|
||||
|
||||
class 高级装扮头发(装扮):
|
||||
部位 = "头发"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
|
||||
|
||||
class 高级装扮帽子(装扮):
|
||||
部位 = "帽子"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("智力", "精神", "施放速度")
|
||||
|
||||
|
||||
class 高级装扮脸部(装扮):
|
||||
部位 = "脸部"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("攻击速度", "所有异常抗性")
|
||||
|
||||
|
||||
class 高级装扮胸部(装扮):
|
||||
部位 = "胸部"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("攻击速度", "所有异常抗性")
|
||||
|
||||
|
||||
class 高级装扮上衣(装扮):
|
||||
部位 = "上衣"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ()
|
||||
|
||||
|
||||
class 高级装扮腰带(装扮):
|
||||
部位 = "腰带"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("力量", "体力", "火属性抗性", "光属性抗性", "冰属性抗性", "暗属性抗性")
|
||||
|
||||
|
||||
class 高级装扮下装(装扮):
|
||||
部位 = "下装"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ()
|
||||
|
||||
|
||||
class 高级装扮鞋(装扮):
|
||||
部位 = "鞋"
|
||||
品质 = "高级"
|
||||
套装 = "高级装扮"
|
||||
选项集合 = ("力量", "体力", "移动速度")
|
||||
|
||||
|
||||
神器装扮集合 = (神器装扮头发, 神器装扮帽子, 神器装扮脸部, 神器装扮胸部,
|
||||
神器装扮上衣, 神器装扮腰带, 神器装扮下装, 神器装扮鞋)
|
||||
稀有装扮集合 = (稀有装扮头发, 稀有装扮帽子, 稀有装扮脸部, 稀有装扮胸部,
|
||||
稀有装扮上衣, 稀有装扮腰带, 稀有装扮下装, 稀有装扮鞋)
|
||||
高级装扮集合 = (高级装扮头发, 高级装扮帽子, 高级装扮脸部, 高级装扮胸部,
|
||||
高级装扮上衣, 高级装扮腰带, 高级装扮下装, 高级装扮鞋)
|
||||
|
||||
装扮集合 = tuple(map(lambda x: x(), (神器装扮集合 + 稀有装扮集合 + 高级装扮集合)))
|
||||
|
||||
|
||||
class 装扮套装:
|
||||
名称: str
|
||||
兼容于: str = None
|
||||
所需数量: int
|
||||
|
||||
def 效果(self, 属性):
|
||||
pass
|
||||
|
||||
|
||||
class 神器装扮3(装扮套装):
|
||||
名称 = "神器装扮"
|
||||
兼容于 = "稀有装扮"
|
||||
所需数量 = 3
|
||||
|
||||
def 效果(self, 属性):
|
||||
# print("effect unique suit 3")
|
||||
属性.SetStatus(四维=50, 三速=0.03)
|
||||
|
||||
|
||||
class 神器装扮8(装扮套装):
|
||||
|
||||
名称 = "神器装扮"
|
||||
兼容于 = "稀有装扮"
|
||||
所需数量 = 8
|
||||
|
||||
def 效果(self, 属性):
|
||||
# print("effect unique suit 8")
|
||||
属性.SetStatus(四维=50, 三速=0.03)
|
||||
属性.AddElementDB('火',10)
|
||||
属性.AddElementDB('光',10)
|
||||
属性.AddElementDB('冰',10)
|
||||
属性.AddElementDB('暗',10)
|
||||
# 属性.所有属性强化加成(10)
|
||||
# 属性.所有属性抗性加成(15)
|
||||
|
||||
|
||||
class 稀有装扮3(装扮套装):
|
||||
|
||||
名称 = "稀有装扮"
|
||||
所需数量 = 3
|
||||
|
||||
def 效果(self, 属性):
|
||||
# print("effect rare suit 3")
|
||||
属性.SetStatus(四维=40, 三速=0.02)
|
||||
|
||||
|
||||
class 稀有装扮8(装扮套装):
|
||||
|
||||
名称 = "稀有装扮"
|
||||
所需数量 = 8
|
||||
|
||||
def 效果(self, 属性):
|
||||
# print("effect rare suit 8")
|
||||
属性.SetStatus(四维=40, 三速=0.02)
|
||||
属性.AddElementDB('火',6)
|
||||
属性.AddElementDB('光',6)
|
||||
属性.AddElementDB('冰',6)
|
||||
属性.AddElementDB('暗',6)
|
||||
|
||||
|
||||
class 节日装扮8(装扮套装):
|
||||
|
||||
名称 = "节日装扮"
|
||||
所需数量 = 8
|
||||
|
||||
def 效果(self, 属性):
|
||||
属性.SetStatus(四维=25, 三速=0.02)
|
||||
|
||||
|
||||
class 高级装扮3(装扮套装):
|
||||
|
||||
名称 = "高级装扮"
|
||||
所需数量 = 3
|
||||
|
||||
def 效果(self, 属性):
|
||||
# print("effect uncommon suit 3")
|
||||
属性.SetStatus(四维=10)
|
||||
|
||||
|
||||
class 高级装扮8(装扮套装):
|
||||
|
||||
名称 = "高级装扮"
|
||||
所需数量 = 8
|
||||
|
||||
def 效果(self, 属性):
|
||||
# print("effect uncommon suit 8")
|
||||
属性.SetStatus(四维=10, 三速=0.01)
|
||||
|
||||
|
||||
装扮套装集合 = tuple(
|
||||
map(lambda x: x(), (神器装扮3, 神器装扮8, 稀有装扮3, 稀有装扮8, 节日装扮8, 高级装扮3, 高级装扮8)))
|
||||
|
||||
def get_dress_list(skills_coat:list[str] = [],skills_pants:list[str] = []) -> dict:
|
||||
"""
|
||||
获取装扮列表
|
||||
:param info: 装扮信息
|
||||
:return: 装扮列表
|
||||
"""
|
||||
dress_list = {}
|
||||
for dress in 装扮集合:
|
||||
部位 = dress.部位
|
||||
if 部位 not in dress_list:
|
||||
dress_list[部位] = []
|
||||
选项集合 = dress.选项集合
|
||||
if dress.部位 == "上衣":
|
||||
选项集合 = 选项集合 + tuple(skills_coat)
|
||||
elif dress.部位 == "下装":
|
||||
选项集合 = 选项集合 + tuple(skills_pants)
|
||||
data = {}
|
||||
data["id"] = len(dress_list[部位])
|
||||
data["options"] = 选项集合
|
||||
data["part"] = 部位
|
||||
data["rarity"] = dress.品质
|
||||
data["suit"] = dress.套装
|
||||
data["name"] = f"{dress.品质}装扮{dress.部位}"
|
||||
dress_list[部位].append(data)
|
||||
return dress_list
|
||||
Reference in New Issue
Block a user