Files
dcalc/api/core/basic/property.py
T
2024-11-04 15:00:40 +08:00

317 lines
9.6 KiB
Python

from typing import Union
from xmlrpc.client import Boolean
from core.basic.skill import 主动技能, 技能, 被动技能
class CharacterProperty:
评分: float = 0
类型: str
适用属性: str = "智力"
def 基础属性加成(self,
物理攻击力=0.00, 魔法攻击力=0.00, 独立攻击力=0.00, 三攻=0.00,
力量=0.00, 智力=0.00, 力智=0.00, 体力=0.00, 精神=0.00, 体精=0.00, 四维=0.00,
物理暴击率=0.00, 魔法暴击率=0.00, 暴击率=0.00,
攻击速度=0.00, 施放速度=0.00, 移动速度=0.00, 三速=0.00, 火属性抗性=0, 光属性抗性=0, 冰属性抗性=0, 暗属性抗性=0, 所有属性抗性=0, 所有异常抗性=0, 所有职业异常抗性=0, 进图力量=0.00, 进图智力=0.00, **kwargs):
物理攻击力 += 三攻
魔法攻击力 += 三攻
独立攻击力 += 三攻
力量 += 力智 + 四维 + 进图力量
智力 += 力智 + 四维 + 进图智力
体力 += 体精 + 四维
精神 += 体精 + 四维
物理暴击率 += 暴击率
魔法暴击率 += 暴击率
if (self.类型 == "辅助"):
if (self.适用属性 == '体力'):
if (体力 > 0):
self.评分 += 体力 * 15
elif (self.适用属性 == '精神'):
if (精神 > 0):
self.评分 += 精神 * 15
elif (self.适用属性 == '智力'):
if (智力 > 0):
self.评分 += 智力 * 15
elif (self.类型 == "物理百分比"):
if 力量 > 0:
self.评分 += 力量 * 5
if 物理攻击力 > 0:
self.评分 += 物理攻击力 * 10
if 物理暴击率 > 0:
self.评分 += 物理暴击率
elif (self.类型 == "魔法百分比"):
if 智力 > 0:
self.评分 += 智力 * 5
if 魔法攻击力 > 0:
self.评分 += 魔法攻击力 * 10
if 魔法暴击率 > 0:
self.评分 += 魔法暴击率
elif (self.类型 == "物理固伤"):
if 力量 > 0:
self.评分 += 力量 * 5
if 独立攻击力 > 0:
self.评分 += 独立攻击力 * 10
if 物理暴击率 > 0:
self.评分 += 物理暴击率
elif self.类型 == "魔法固伤":
if 智力 > 0:
self.评分 += 智力 * 5
if 独立攻击力 > 0:
self.评分 += 独立攻击力 * 10
if 魔法暴击率 > 0:
self.评分 += 魔法暴击率
pass
def 攻击强化加成(self, x=0):
if self.类型 != "辅助":
self.评分 += x * 1000
pass
def 百分比攻击强化加成(self, x=0.0):
if self.类型 != "辅助":
self.评分 = (self.评分 + 2000) * (1 + x * 1000)
def 技能攻击力加成(self, x=0, 辟邪玉加成=1, 适用累加=1, part='', show=True):
if self.类型 != "辅助":
self.评分 = (self.评分 + 2000) * (1 + x * 2000)
def 辅助属性加成(self, buff固定力智=0, buff百分比力智=0.0, buff固定三攻=0, buff百分比三攻=0.0, 觉醒固定力智=0, 觉醒百分比力智=0.0, buff量=0, 百分比buff量=0.0):
if self.类型 == '辅助':
self.评分 += buff固定力智
self.评分 *= 1.0 + buff百分比力智
self.评分 += buff固定三攻
self.评分 *= 1.0 + buff百分比三攻
self.评分 += 觉醒固定力智
self.评分 *= 1.0 + 觉醒百分比力智
self.评分 += buff量 / 100
self.评分 *= 1.0 + 百分比buff量
def 技能等级加成(self, 加成类型: str, min: int, max: int, lv: int, exc=[],excName=[]) -> None:
if self.类型 == "辅助":
if 加成类型 == '主动':
if min < 30 and max >= 30:
self.评分 += 2000 * (lv + 1)
if min <= 50 and max >= 50:
self.评分 += 1000 * (lv + 1)
if 加成类型 == '所有':
self.评分 += 1000 * (lv + 1)
self.评分 += 100 * (lv + 1)
pass
def 评分开始(self):
self.评分 = 0
def 评分结束(self):
评分 = self.评分
self.评分 = 0
return 评分
# def get_skill_by_name(self, name) -> 技能 | 主动技能 | 被动技能:
def get_skill_by_name(self, name) -> Union[技能, 主动技能, 被动技能]:
pass
def 已穿戴神话(self):
pass
def 穿戴低于105(self):
pass
def 获取强化等级(self, part=[]):
pass
def 获取改造等级(self, part=[]):
pass
def check_fun_by_id(self, id: int) -> Boolean:
pass
def check_equ_by_name(self, name: str) -> Boolean:
pass
# region 词条属性
def set_eq_params(self,key,value):
pass
def get_eq_params(self,key)-> float:
pass
def 基础精通加成(self, x: float) -> None:
pass
def 百分比防御减少(self, x: float) -> None:
pass
def 固定防御减少(self, x: int) -> None:
pass
def 伤害类型转化(self, 类型1: str, 类型2: str, x: float) -> None:
pass
def 异常增伤(self, 类型: str, x: float) -> None:
pass
def 异常抗性加成(self, 类型: str, x: float, mode: int = 1) -> None:
pass
def 异常抗性获取(self, 类型: str, mode: int = 1) -> float:
pass
def 属性攻击(self, 类型: str) -> None:
pass
def 所有异常抗性加成(self, x: float) -> None:
pass
def 条件技攻加成(self, 类型: str, x: float) -> None:
pass
def 条件冷却加成(self, 类型: str, x: float) -> None:
pass
def 条件冷却恢复加成(self, 类型: str, x: float) -> None:
pass
def 指令效果加成(self, 类型: str, x: float) -> None:
pass
def 指令技攻加成(self, x: float, min=1, max=100, exc=[50, 85, 100],excName=[]) -> None:
pass
def MP消耗量加成(self, x: float) -> None:
pass
def buff量加成(self, x: float) -> None:
pass
def 附加伤害加成(self, x: float, 辟邪玉加成=1) -> None:
pass
def 持续伤害加成(self, x: float) -> None:
pass
def 属性附加加成(self, x: float) -> None:
pass
def 暴击伤害加成(self, x: float, 辟邪玉加成=1) -> None:
pass
def 伤害增加加成(self, x: float, 辟邪玉加成=1) -> None:
pass
def 最终伤害加成(self, x: float, 辟邪玉加成=1) -> None:
pass
def 百分比力智加成(self, x: float, 辟邪玉加成=1) -> None:
pass
def 百分比三攻加成(self, x: float, 辟邪玉加成=1) -> None:
pass
def 火属性强化加成(self, x: float, 辟邪玉加成=1, mode=0) -> None:
pass
def 冰属性强化加成(self, x: float, 辟邪玉加成=1, mode=0) -> None:
pass
def 光属性强化加成(self, x: float, 辟邪玉加成=1, mode=0) -> None:
pass
def 暗属性强化加成(self, x: float, 辟邪玉加成=1, mode=0) -> None:
pass
def 所有属性强化加成(self, 所有属性强化=0, 火属性强化=0, 冰属性强化=0, 光属性强化=0, 暗属性强化=0, 辟邪玉加成=1, mode=0) -> None:
if self.类型 != '辅助':
光属性强化 += 所有属性强化
暗属性强化 += 所有属性强化
火属性强化 += 所有属性强化
冰属性强化 += 所有属性强化
self.评分 += max(光属性强化, 暗属性强化, 火属性强化, 冰属性强化) * 100
pass
def 火属性抗性加成(self, x: int) -> None:
pass
def 冰属性抗性加成(self, x: int) -> None:
pass
def 光属性抗性加成(self, x: int) -> None:
pass
def 暗属性抗性加成(self, x: int) -> None:
pass
def 所有属性抗性加成(self, x: int) -> None:
pass
def 攻击速度增加(self, x: float, part: str = '') -> None:
pass
def 攻击速度(self) -> float:
pass
def 移动速度增加(self, x: float) -> None:
pass
def 施放速度增加(self, x: float) -> None:
pass
def 所有速度增加(self, x: float, part: str = '') -> None:
pass
def 命中率增加(self, x: float) -> None:
pass
def 回避率增加(self, x: float) -> None:
pass
def 物理暴击率增加(self, x: float) -> None:
pass
def 魔法暴击率增加(self, x: float) -> None:
pass
def 暴击率增加(self, x: float) -> None:
pass
def buff技能等级加成(self, LV: int, lv: int) -> None:
pass
def 特殊主动等级加成(self, Lv: int, lv: int) -> None:
pass
def 技能获取(self, min: int, max: int, exc=[]) -> None:
pass
def 技能冷却缩减(self, min: int, max: int, x: float, exc=[],excName=[]) -> None:
pass
def 加算冷却缩减(self, x: float) -> None:
pass
def 技能恢复加成(self, min: int, max: int, x: float, exc=[],excName=[]) -> None:
pass
def 技能倍率加成(self, min: int, max: int, x: float, exc=[], type="all",excName=[],changeSkill = False) -> None:
pass
def 单技能加成(self, 名称: str, 倍率=1.0, CD=1.0, lv=0) -> None:
pass
def __所有属性强化(self, x: float) -> None:
pass
def 斗神宠物加成(self, x: float) -> None:
pass
# endregion