diff --git a/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py b/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py
index 8aa07f5..5db966e 100644
--- a/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py
+++ b/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py
@@ -3029,17 +3029,1467 @@ class Sushang(BaseAvatar):
skill_multiplier,
self.avatar_level,
)
- damagelist1[2] += damage3
+ damagelist5[2] += damage3
skill_info_list.append({'name': '终结技', 'damagelist': damagelist5})
return skill_info_list
+class Luka(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 1:
+ self.eidolon_attribute['AllDamageAddedRatio'] = 0.15
+
+ def extra_ability(self):
+ pass
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算终结技提供的易伤加成
+ attribute_bonus['DmgRatio'] = attribute_bonus.get('DmgRatio', 0) + self.Skill_num('Ultra', 'Ultra_d')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算强化普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal1')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[0] += damagelist2[0] * 5
+ damagelist2[1] += damagelist2[1] * 5
+ damagelist2[2] += damage3 + damagelist2[2] * 5
+ skill_multiplier = self.Skill_num('Normal', 'Normal2')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[0] += damagelist2[0]
+ damagelist3[1] += damagelist2[1]
+ damagelist3[2] += damagelist2[2]
+ skill_info_list.append({'name': '强化普攻(满段数)', 'damagelist': damagelist3})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist4[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist4})
+
+ # 计算DOT伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'DOT')
+ damagelist5 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'DOT',
+ 'DOT',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ skill_info_list.append({'name': '持续伤害(最大值)', 'damagelist': damagelist5})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist6 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist6[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist6})
+
+ return skill_info_list
+
+class DanHeng(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 1:
+ self.eidolon_attribute['CriticalChanceBase'] = 0.12
+
+ def extra_ability(self):
+ self.extra_ability_attribute['SpeedAddedRatio'] = 0.2
+ self.extra_ability_attribute['NormalDmgAdd'] = 0.4
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算穿透加成
+ attribute_bonus['WindResistancePenetration'] = attribute_bonus.get('WindResistancePenetration', 0) + self.Skill_num('Talent', 'Talent')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra') + self.Skill_num('Ultra', 'Ultra_d')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ return skill_info_list
+
+class Arlan(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 1:
+ self.eidolon_attribute['BPSkillDmgAdd'] = 0.12
+ if self.avatar_rank >= 6:
+ self.eidolon_attribute['UltraDmgAdd'] = 0.12
+
+ def extra_ability(self):
+ pass
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算天赋伤害加成
+ attribute_bonus['AllDamageAddedRatio'] = attribute_bonus.get('AllDamageAddedRatio', 0) + self.Skill_num('Talent', 'Talent')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ return skill_info_list
+
+class Asta(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ pass
+
+ def extra_ability(self):
+ self.eidolon_attribute['FireAddedRatio'] = 0.18
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算天赋加成
+ attribute_bonus['AttackAddedRatio'] = attribute_bonus.get('AttackAddedRatio', 0) + self.Skill_num('Talent', 'Talent') * 5
+ attribute_bonus['SpeedDelta'] = attribute_bonus.get('SpeedDelta', 0) + self.Skill_num('Ultra', 'Ultra')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ skill_num = 5
+ if self.avatar_rank >= 1:
+ skill_num += 1
+ damagelist2[0] = damagelist2[0] * skill_num
+ damagelist2[1] = damagelist2[1] * skill_num
+ damagelist2[2] = damage3 + damagelist2[2] * skill_num
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ return skill_info_list
+
+class Herta(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 2:
+ self.eidolon_attribute['CriticalChanceBase'] = 0.15
+ if self.avatar_rank >= 4:
+ self.eidolon_attribute['TalentDmgAdd'] = 0.12
+ if self.avatar_rank >= 6:
+ self.eidolon_attribute['AttackAddedRatio'] = 0.25
+
+ def extra_ability(self):
+ self.extra_ability_attribute['BPSkillDmgAdd'] = 0.25
+ self.extra_ability_attribute['UltraDmgAdd'] = 0.2
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ if self.avatar_rank >= 1:
+ skill_multiplier += 0.4
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ attribute_bonus['BPSkillDmgAdd'] = attribute_bonus.get('BPSkillDmgAdd', 0) + 0.2
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ # 计算追加攻击伤害
+ skill_multiplier = self.Skill_num('Talent', 'Talent')
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Talent',
+ 'Talent',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist4[2] += damage3
+ skill_info_list.append({'name': '追加攻击', 'damagelist': damagelist4})
+
+ return skill_info_list
+
+class Serval(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 6:
+ self.eidolon_attribute['AllDamageAddedRatio'] = 0.3
+
+ def extra_ability(self):
+ self.extra_ability_attribute['AttackAddedRatio'] = 0.2
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算DOT伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'DOT')
+ damagelist5 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'DOT',
+ 'DOT',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ skill_info_list.append({'name': '持续伤害', 'damagelist': damagelist5})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ # 计算追加攻击伤害
+ skill_multiplier = self.Skill_num('Talent', 'Talent')
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Talent',
+ 'Talent',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist4[2] += damage3
+ skill_info_list.append({'name': '追加攻击', 'damagelist': damagelist4})
+
+ return skill_info_list
+
+class Pela(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 2:
+ self.eidolon_attribute['SpeedAddedRatio'] = 0.1
+ if self.avatar_rank >= 4:
+ self.eidolon_attribute['IceResistancePenetration'] = 0.12
+
+ def extra_ability(self):
+ self.extra_ability_attribute['AllDamageAddedRatio'] = 0.4
+ self.extra_ability_attribute['StatusProbabilityBase'] = 0.1
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算终结技降防
+ attribute_bonus['ignore_defence'] = attribute_bonus.get('ignore_defence', 0) + self.Skill_num('Ultra', 'Ultra_d')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ if self.avatar_rank >= 6:
+ # 计算命座附加伤害
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ self.avatar_element,
+ 0.4,
+ self.avatar_level,
+ )
+ damagelist4[2] += damage3
+ skill_info_list.append({'name': '6命追加伤害', 'damagelist': damagelist4})
+
+ return skill_info_list
+
+class Sampo(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ pass
+
+ def extra_ability(self):
+ pass
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算终结技持续伤害加成
+ attribute_bonus['DOTDmgAdd'] = attribute_bonus.get('DOTDmgAdd', 0) + self.Skill_num('Ultra', 'Ultra_d')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[0] = damagelist2[0] * 5
+ damagelist2[1] = damagelist2[1] * 5
+ damagelist2[2] = damage3 + damagelist2[2] * 5
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ # 计算持续伤害
+ skill_multiplier = self.Skill_num('Talent', 'DOT')
+ if self.avatar_rank >= 6:
+ skill_multiplier += 0.15
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'DOT',
+ 'DOT',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ skill_info_list.append({'name': '单层持续伤害', 'damagelist': damagelist4})
+
+ return skill_info_list
+
+class Hook(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 2:
+ self.eidolon_attribute['BPSkill1DmgAdd'] = 0.2
+ if self.avatar_rank >= 6:
+ self.eidolon_attribute['AllDamageAddedRatio'] = 0.2
+
+ def extra_ability(self):
+ pass
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算强化战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill1')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill1',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '强化战技', 'damagelist': damagelist3})
+
+ # 计算持续伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'DOT')
+ damagelist5 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'DOT',
+ 'DOT',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ skill_info_list.append({'name': '灼烧伤害', 'damagelist': damagelist5})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist4[2] += damage3
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist4})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Talent', 'Talent')
+ damagelist6 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist6[2] += damage3
+ skill_info_list.append({'name': '附加伤害', 'damagelist': damagelist6})
+
+ return skill_info_list
+
+class Tingyun(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 1:
+ self.eidolon_attribute['SpeedAddedRatio'] = 0.2
+
+ def extra_ability(self):
+ self.eidolon_attribute['SpeedAddedRatio'] = 0.2
+ self.eidolon_attribute['NormalDmgAdd'] = 0.4
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill_M')
+ attack = (
+ base_attr['attack'] * (1 + attribute_bonus['AttackAddedRatio'])
+ + attribute_bonus['AttackDelta']
+ )
+ add_atk = attack * skill_multiplier
+ damagelist2 = []
+ damagelist2.append(add_atk)
+ skill_info_list.append({'name': '战技提升攻击力', 'damagelist': damagelist2})
+
+ return skill_info_list
+
+class Trailblazer(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 4:
+ self.eidolon_attribute['CriticalChanceBase'] = 0.25
+
+ def extra_ability(self):
+ self.extra_ability_attribute['BPSkillDmgAdd'] = 0.25
+ self.extra_ability_attribute['Ultra1DmgAdd'] = 0.25
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算天赋攻击加成
+ attribute_bonus['AttackAddedRatio'] = attribute_bonus.get('AttackAddedRatio', 0) + self.Skill_num('Talent', 'Talent') * 2
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技1伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+ skill_info_list.append({'name': '全胜•再见安打', 'damagelist': damagelist3})
+
+ # 计算终结技2伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra1')
+ damagelist4 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra1',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist4[2] += damage3
+ skill_info_list.append({'name': '全胜•安息全垒打', 'damagelist': damagelist4})
+
+ return skill_info_list
+
+class Trailblazer_K(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 6:
+ self.eidolon_attribute['DefenceAddedRatio'] = 0.3
+
+ def extra_ability(self):
+ self.extra_ability_attribute['AttackAddedRatio'] = 0.15
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ if self.avatar_rank >= 1:
+ damagelist1_f = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ 0.25,
+ self.avatar_level,
+ 2
+ )
+ damagelist1[0] += damagelist1_f[0]
+ damagelist1[1] += damagelist1_f[1]
+ damagelist1[2] += damagelist1_f[2]
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算强化普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal1')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ if self.avatar_rank >= 1:
+ damagelist2_f = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ 0.5,
+ self.avatar_level,
+ 2
+ )
+ damagelist2[0] += damagelist2_f[0]
+ damagelist2[1] += damagelist2_f[1]
+ damagelist2[2] += damagelist2_f[2]
+ skill_info_list.append({'name': '强化普攻', 'damagelist': damagelist2})
+
+ # 计算终结技伤害
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra')
+ damagelist3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist3[2] += damage3
+
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra1')
+ damagelist3_f = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Ultra',
+ 'Ultra',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ 2
+ )
+ damagelist3[0] += damagelist3_f[0]
+ damagelist3[1] += damagelist3_f[1]
+ damagelist3[2] += damagelist3_f[2]
+ skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
+
+ # 计算天赋提供护盾
+ skill_multiplier = self.Skill_num('Talent', 'Talent')
+ skill_multiplier_g = self.Skill_num('Talent', 'Talent_G')
+ if self.avatar_rank >= 2:
+ skill_multiplier += 0.02
+ skill_multiplier_g += 27
+ damagelist4 = await calculate_shield(
+ base_attr,
+ attribute_bonus,
+ skill_multiplier,
+ skill_multiplier_g,
+ )
+ skill_info_list.append({'name': '天赋护盾', 'damagelist': damagelist4})
+
+ return skill_info_list
+
+class Huohuo(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 1:
+ self.eidolon_attribute['SpeedAddedRatio'] = 0.12
+ if self.avatar_rank >= 6:
+ self.eidolon_attribute['AllDamageAddedRatio'] = 0.5
+
+ def extra_ability(self):
+ pass
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ 1,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技治疗
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ skill_num = self.Skill_num('BPSkill', 'BPSkill_G')
+ damagelist2 = await calculate_heal(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ skill_multiplier,
+ skill_num,
+ )
+ skill_info_list.append({'name': '战技治疗量', 'damagelist': damagelist2})
+
+ if self.avatar_rank >= 4:
+ # 计算战技治疗
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ skill_num = self.Skill_num('BPSkill', 'BPSkill_G')
+ add_attr_bonus = copy.deepcopy(attribute_bonus)
+ add_attr_bonus['HealRatioBase'] = add_attr_bonus.get('HealRatioBase', 0) + 0.8
+ damagelist2_max = await calculate_heal(
+ base_attr,
+ add_attr_bonus,
+ 'BPSkill',
+ skill_multiplier,
+ skill_num,
+ )
+ skill_info_list.append({'name': '战技最高治疗量(4魂)', 'damagelist': damagelist2_max})
+
+ # 计算天赋治疗量
+ skill_multiplier = self.Skill_num('Talent', 'Talent')
+ skill_num = self.Skill_num('Talent', 'Talent_G')
+ damagelist5 = await calculate_heal(
+ base_attr,
+ attribute_bonus,
+ 'Talent',
+ skill_multiplier,
+ skill_num,
+ )
+ skill_info_list.append({'name': '天赋治疗量', 'damagelist': damagelist5})
+
+ if self.avatar_rank >= 4:
+ skill_multiplier = self.Skill_num('Talent', 'Talent')
+ skill_num = self.Skill_num('Talent', 'Talent_G')
+ add_attr_bonus = copy.deepcopy(attribute_bonus)
+ add_attr_bonus['HealRatioBase'] = add_attr_bonus.get('HealRatioBase', 0) + 0.8
+ damagelist5 = await calculate_heal(
+ base_attr,
+ add_attr_bonus,
+ 'Talent',
+ skill_multiplier,
+ skill_num,
+ )
+ skill_info_list.append({'name': '天赋治疗量', 'damagelist': damagelist5})
+
+ return skill_info_list
+
+class Hanya(BaseAvatar):
+ Buff: BaseAvatarBuff
+
+ def __init__(
+ self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
+ ):
+ super().__init__(char=char, skills=skills)
+ self.eidolon_attribute: Dict[str, float] = {}
+ self.extra_ability_attribute: Dict[str, float] = {}
+ self.eidolons()
+ self.extra_ability()
+
+ def Technique(self):
+ pass
+
+ def eidolons(self):
+ if self.avatar_rank >= 2:
+ self.eidolon_attribute['SpeedAddedRatio'] = 0.2
+
+ def extra_ability(self):
+ self.extra_ability_attribute['AttackAddedRatio'] = 0.1
+
+ async def getdamage(
+ self,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ # 计算天赋易伤加成
+ attribute_bonus['DmgRatio'] = attribute_bonus.get('DmgRatio', 0) + self.Skill_num('Talent', 'Talent')
+ if self.avatar_rank >= 6:
+ attribute_bonus['DmgRatio'] = attribute_bonus.get('DmgRatio', 0) + 0.1
+
+ attribute_bonus['AttackAddedRatio'] = attribute_bonus.get('AttackAddedRatio', 0) + self.Skill_num('Ultra', 'Ultra_A')
+
+ damage1, damage2, damage3 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'fujia',
+ 'fujia',
+ 'Thunder',
+ 0.44,
+ self.avatar_level,
+ )
+
+ skill_info_list = []
+ # 计算普攻伤害
+ skill_multiplier = self.Skill_num('Normal', 'Normal')
+ damagelist1 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'Normal',
+ 'Normal',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist1[2] += damage3
+ skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
+
+ # 计算战技伤害
+ skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
+ damagelist2 = await calculate_damage(
+ base_attr,
+ attribute_bonus,
+ 'BPSkill',
+ 'BPSkill',
+ self.avatar_element,
+ skill_multiplier,
+ self.avatar_level,
+ )
+ damagelist2[2] += damage3
+ skill_info_list.append({'name': '战技', 'damagelist': damagelist2})
+
+ # 计算终结技提升速度
+ speed = (
+ base_attr['speed'] * (1 + attribute_bonus['SpeedAddedRatio'])
+ + attribute_bonus['SpeedDelta']
+ )
+ skill_multiplier = self.Skill_num('Ultra', 'Ultra_S')
+ add_speed = speed * skill_multiplier
+ damagelist3 = []
+ damagelist3.append(add_speed)
+ skill_info_list.append({'name': '终结技增加速度', 'damagelist': damagelist3})
+
+ return skill_info_list
class AvatarDamage:
@classmethod
def create(
cls, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
):
+ if char.id_ == 1215:
+ return Hanya(char, skills)
+ if char.id_ == 1217:
+ return Huohuo(char, skills)
+ if char.id_ == 8003 or char.id_ == 8004:
+ return Trailblazer_K(char, skills)
+ if char.id_ == 8002 or char.id_ == 8001:
+ return Trailblazer(char, skills)
+ if char.id_ == 1202:
+ return Tingyun(char, skills)
+ if char.id_ == 1109:
+ return Hook(char, skills)
+ if char.id_ == 1108:
+ return Sampo(char, skills)
+ if char.id_ == 1106:
+ return Pela(char, skills)
+ if char.id_ == 1103:
+ return Serval(char, skills)
+ if char.id_ == 1013:
+ return Herta(char, skills)
+ if char.id_ == 1009:
+ return Asta(char, skills)
+ if char.id_ == 1008:
+ return Arlan(char, skills)
+ if char.id_ == 1002:
+ return DanHeng(char, skills)
+ if char.id_ == 1111:
+ return Luka(char, skills)
if char.id_ == 1206:
return Sushang(char, skills)
if char.id_ == 1101:
diff --git a/StarRailUID/starrailuid_charinfo/damage/Excel/SkillData.json b/StarRailUID/starrailuid_charinfo/damage/Excel/SkillData.json
index 0e5de06..aec7f59 100644
--- a/StarRailUID/starrailuid_charinfo/damage/Excel/SkillData.json
+++ b/StarRailUID/starrailuid_charinfo/damage/Excel/SkillData.json
@@ -562,20 +562,8 @@
0.8000000007450581, 0.9000000008381903, 1.0000000000931323,
1.1000000001862645, 1.2000000002793968, 1.3000000002793968
],
- "BPSkill": [
- 0.5500000005122274, 0.6050000002142042, 0.6600000006146729,
- 0.7150000003166497, 0.7700000007171184, 0.8250000004190952,
- 0.89375000144355, 0.962500001071021, 1.0312500004656613,
- 1.1000000000931323, 1.154999999795109, 1.2100000001955777,
- 1.2649999998975545, 1.3200000002980232, 1.375
- ],
- "Ultra": [
- 1.0200000000186265, 1.0879999995231628, 1.1559999997261912,
- 1.2239999999292195, 1.2920000001322478, 1.3600000003352761,
- 1.4450000000651926, 1.530000000493601, 1.6150000002235174,
- 1.7000000006519258, 1.7680000001564622, 1.8360000003594905,
- 1.9040000005625188, 1.9720000007655472, 2.040000000037253
- ],
+ "BPSkill": [0.6, 0.66, 0.72, 0.78, 0.84, 0.9, 0.975, 1.05, 1.125, 1.2, 1.26, 1.32, 1.38, 1.44, 1.5],
+ "Ultra": [0.96, 1.024, 1.088, 1.152, 1.216, 1.28, 1.36, 1.44, 1.52, 1.6, 1.664, 1.728, 1.792, 1.856, 1.92],
"Ultra1": [
1.6800000006332994, 1.792000000597909, 1.9040000005625188,
2.015999999595806, 2.1279999995604157, 2.2400000002235174,
@@ -954,5 +942,150 @@
],
"Maze": [20],
"Ultra_Use": [120]
+ },
+ "1111": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "Normal1": [0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.24, 0.26],
+ "Normal2": [0.4, 0.48, 0.56, 0.64, 0.72, 0.8, 0.88, 0.96, 1.04],
+ "BPSkill": [0.6, 0.66, 0.72, 0.78, 0.84, 0.9, 0.975, 1.05, 1.125, 1.2, 1.26, 1.32, 1.38, 1.44, 1.5],
+ "DOT": [1.3, 1.43, 1.56, 1.69, 1.82, 2.015, 2.275, 2.6, 2.99, 3.38, 3.549, 3.718, 3.887, 4.056, 4.225],
+ "Ultra": [1.98, 2.112, 2.244, 2.376, 2.508, 2.64, 2.805, 2.97, 3.135, 3.3, 3.432, 3.564, 3.696, 3.828, 3.96],
+ "Ultra_d": [0.12, 0.128, 0.136, 0.144, 0.152, 0.16, 0.17, 0.18, 0.19, 0.2, 0.208, 0.216, 0.224, 0.232, 0.24],
+ "Maze": [20],
+ "Ultra_Use": [120]
+ },
+ "1002": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [1.3, 1.43, 1.56, 1.69, 1.82, 1.95, 2.1125, 2.275, 2.4375, 2.6, 2.73, 2.86, 2.99, 3.12, 3.25],
+ "Ultra": [2.4, 2.56, 2.72, 2.88, 3.04, 3.2, 3.4, 3.6, 3.8, 4, 4.16, 4.32, 4.48, 4.64, 4.8],
+ "Ultra_d": [0.72, 0.768, 0.816, 0.864, 0.912, 0.96, 1.02, 1.08, 1.14, 1.2, 1.248, 1.296, 1.344, 1.392, 1.44],
+ "Talent": [0.18, 0.198, 0.216, 0.234, 0.252, 0.27, 0.2925, 0.315, 0.3375, 0.36, 0.378, 0.396, 0.414, 0.432, 0.45],
+ "Maze": [20],
+ "Ultra_Use": [120]
+ },
+ "1008": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [1.2, 1.32, 1.44, 1.56, 1.68, 1.8, 1.95, 2.1, 2.25, 2.4, 2.52, 2.64, 2.76, 2.88, 3],
+ "Ultra": [1.92, 2.048, 2.176, 2.304, 2.432, 2.56, 2.72, 2.88, 3.04, 3.2, 3.328, 3.456, 3.584, 3.712, 3.84],
+ "Talent": [0.36, 0.396, 0.432, 0.468, 0.504, 0.54, 0.585, 0.63, 0.675, 0.72, 0.756, 0.792, 0.828, 0.864, 0.9],
+ "Maze": [20],
+ "Ultra_Use": [120]
+ },
+ "1009": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.25, 0.275, 0.3, 0.325, 0.35, 0.375, 0.40625, 0.4375, 0.46875, 0.5, 0.525, 0.55, 0.575, 0.6, 0.625],
+ "Ultra": [36, 37.4, 38.8, 40.2, 41.6, 43, 44.75, 46.5, 48.25, 50, 51.4, 52.8, 54.2, 55.6, 57],
+ "Talent": [0.07, 0.077, 0.084, 0.091, 0.098, 0.105, 0.11375, 0.1225, 0.13125, 0.14, 0.147, 0.154, 0.161, 0.168, 0.175],
+ "Maze": [20],
+ "Ultra_Use": [120]
+ },
+ "1013": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8125, 0.875, 0.9375, 1, 1.05, 1.1, 1.15, 1.2, 1.25],
+ "Ultra": [1.2, 1.28, 1.36, 1.44, 1.52, 1.6, 1.7, 1.8, 1.9, 2, 2.08, 2.16, 2.24, 2.32, 2.4],
+ "Talent": [0.25, 0.265, 0.28, 0.295, 0.31, 0.325, 0.34375, 0.3625, 0.38125, 0.4, 0.415, 0.43, 0.445, 0.46, 0.475],
+ "Maze": [20],
+ "Ultra_Use": [120]
+ },
+ "1103": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.7, 0.77, 0.84, 0.91, 0.98, 1.05, 1.1375, 1.225, 1.3125, 1.4, 1.47, 1.54, 1.61, 1.68, 1.75],
+ "DOT": [0.4, 0.44, 0.48, 0.52, 0.56, 0.62, 0.7, 0.8, 0.92, 1.04, 1.092, 1.144, 1.196, 1.248, 1.3],
+ "Ultra": [1.08, 1.152, 1.224, 1.296, 1.368, 1.44, 1.53, 1.62, 1.71, 1.8, 1.872, 1.944, 2.016, 2.088, 2.16],
+ "Talent": [0.36, 0.396, 0.432, 0.468, 0.504, 0.54, 0.585, 0.63, 0.675, 0.72, 0.756, 0.792, 0.828, 0.864, 0.9],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "1106": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [1.05, 1.155, 1.26, 1.365, 1.47, 1.575, 1.70625, 1.8375, 1.96875, 2.1, 2.205, 2.31, 2.415, 2.52, 2.625],
+ "Ultra": [0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.85, 0.9, 0.95, 1, 1.04, 1.08, 1.12, 1.16, 1.2],
+ "Ultra_d": [0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.3625, 0.375, 0.3875, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "1108": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.28, 0.308, 0.336, 0.364, 0.392, 0.42, 0.455, 0.49, 0.525, 0.56, 0.588, 0.616, 0.644, 0.672, 0.7],
+ "Ultra": [0.96, 1.024, 1.088, 1.152, 1.216, 1.28, 1.36, 1.44, 1.52, 1.6, 1.664, 1.728, 1.792, 1.856, 1.92],
+ "Ultra_d": [0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.2625, 0.275, 0.2875, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35],
+ "DOT": [0.2, 0.22, 0.24, 0.26, 0.28, 0.31, 0.35, 0.4, 0.46, 0.52, 0.546, 0.572, 0.598, 0.624, 0.65],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "1109": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [1.2, 1.32, 1.44, 1.56, 1.68, 1.8, 1.95, 2.1, 2.25, 2.4, 2.52, 2.64, 2.76, 2.88, 3],
+ "BPSkill1": [1.4, 1.54, 1.68, 1.82, 1.96, 2.1, 2.275, 2.45, 2.625, 2.8, 2.94, 3.08, 3.22, 3.36, 3.5],
+ "Ultra": [2.4, 2.56, 2.72, 2.88, 3.04, 3.2, 3.4, 3.6, 3.8, 4, 4.16, 4.32, 4.48, 4.64, 4.8],
+ "Talent": [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8125, 0.875, 0.9375, 1, 1.05, 1.1, 1.15, 1.2, 1.25],
+ "DOT": [0.25, 0.275, 0.3, 0.325, 0.35, 0.3875, 0.4375, 0.5, 0.575, 0.65, 0.6825, 0.715, 0.7475, 0.78, 0.8125],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "1202": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.325, 0.35, 0.375, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5],
+ "BPSkill_A": [0.25, 0.275, 0.3, 0.325, 0.35, 0.375, 0.40625, 0.4375, 0.46875, 0.5, 0.525, 0.55, 0.575, 0.6, 0.625],
+ "BPSkill_M": [0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.2125, 0.225, 0.2375, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "8002": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1.01563, 1.09375, 1.17188, 1.25, 1.3125, 1.375, 1.4375, 1.5, 1.5622],
+ "Ultra": [3, 3.15, 3.3, 3.45, 3.6, 3.75, 3.9375, 4.125, 4.3125, 4.5, 4.65, 4.8, 4.95, 5.1, 5.25],
+ "Ultra1": [1.8, 1.89, 1.98, 2.07, 2.16, 2.25, 2.3625, 2.475, 2.5875, 2.7, 2.79, 2.88, 2.97, 3.06, 3.15],
+ "Talent": [0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.1625, 0.175, 0.1875, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "8001": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "BPSkill": [0.625, 0.6875, 0.75, 0.8125, 0.875, 0.9375, 1.01563, 1.09375, 1.17188, 1.25, 1.3125, 1.375, 1.4375, 1.5, 1.5622],
+ "Ultra": [3, 3.15, 3.3, 3.45, 3.6, 3.75, 3.9375, 4.125, 4.3125, 4.5, 4.65, 4.8, 4.95, 5.1, 5.25],
+ "Ultra1": [1.8, 1.89, 1.98, 2.07, 2.16, 2.25, 2.3625, 2.475, 2.5875, 2.7, 2.79, 2.88, 2.97, 3.06, 3.15],
+ "Talent": [0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.1625, 0.175, 0.1875, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "8003": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "Normal1": [0.9, 0.99, 1.08, 1.17, 1.26, 1.35, 1.4625, 1.575, 1.6875],
+ "Ultra": [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8125, 0.875, 0.9375, 1, 1.05, 1.1, 1.15, 1.2, 1.25],
+ "Ultra1": [0.75, 0.825, 0.9, 0.975, 1.05, 1.125, 1.21875, 1.3125, 1.40625, 1.5, 1.575, 1.65, 1.725, 1.8, 1.875],
+ "Talent": [0.04, 0.0425, 0.045, 0.0475, 0.05, 0.052, 0.054, 0.056, 0.058, 0.06, 0.062, 0.064, 0.066, 0.068, 0.07],
+ "Talent_G": [20, 32, 41, 50, 56, 62, 66.5, 71, 75.5, 80, 84.5, 89, 93.5, 98, 102.5],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "8004": {
+ "Normal": [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3],
+ "Normal1": [0.9, 0.99, 1.08, 1.17, 1.26, 1.35, 1.4625, 1.575, 1.6875],
+ "Ultra": [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8125, 0.875, 0.9375, 1, 1.05, 1.1, 1.15, 1.2, 1.25],
+ "Ultra1": [0.75, 0.825, 0.9, 0.975, 1.05, 1.125, 1.21875, 1.3125, 1.40625, 1.5, 1.575, 1.65, 1.725, 1.8, 1.875],
+ "Talent": [0.04, 0.0425, 0.045, 0.0475, 0.05, 0.052, 0.054, 0.056, 0.058, 0.06, 0.062, 0.064, 0.066, 0.068, 0.07],
+ "Talent_G": [20, 32, 41, 50, 56, 62, 66.5, 71, 75.5, 80, 84.5, 89, 93.5, 98, 102.5],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "1217": {
+ "Normal": [0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65],
+ "BPSkill": [0.14, 0.14875, 0.1575, 0.16625, 0.175, 0.182, 0.189, 0.196, 0.203, 0.21, 0.217, 0.224, 0.231, 0.238, 0.245],
+ "BPSkill_G": [140, 224, 287, 350, 392, 434, 465.5, 497, 528.5, 560, 591.5, 623, 654.5, 686, 717.5],
+ "Ultra": [0.24, 0.256, 0.272, 0.288, 0.304, 0.32, 0.34, 0.36, 0.38, 0.4, 0.416, 0.432, 0.448, 0.464, 0.48],
+ "Talent": [0.03, 0.03188, 0.03375, 0.03563, 0.0375, 0.039, 0.0405, 0.042, 0.0435, 0.045, 0.0465, 0.048, 0.0495, 0.051, 0.0525],
+ "Talent_G": [30, 48, 61.5, 75, 84, 93, 99.75, 106.5, 113.25, 120, 126.75, 133.5, 140.25, 147, 153.75],
+ "Maze": [20],
+ "Ultra_Use": [100]
+ },
+ "1215": {
+ "Normal": [0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65],
+ "BPSkill": [1.2, 1.32, 1.44, 1.56, 1.68, 1.8, 1.95, 2.1, 2.25, 2.4, 2.52, 2.64, 2.76, 2.88, 3],
+ "Ultra_A": [0.36, 0.384, 0.408, 0.432, 0.456, 0.48, 0.51, 0.54, 0.57, 0.6, 0.624, 0.648, 0.672, 0.696, 0.72],
+ "Ultra_S": [0.15, 0.155, 0.16, 0.165, 0.17, 0.175, 0.18125, 0.1875, 0.19375, 0.2, 0.205, 0.21, 0.215, 0.22, 0.225],
+ "Talent": [0.15, 0.165, 0.18, 0.195, 0.21, 0.225, 0.24375, 0.2625, 0.28125, 0.3, 0.315, 0.33, 0.345, 0.36, 0.375],
+ "Maze": [20],
+ "Ultra_Use": [100]
}
}
diff --git a/StarRailUID/starrailuid_charinfo/damage/Excel/weapon_effect.json b/StarRailUID/starrailuid_charinfo/damage/Excel/weapon_effect.json
index 888ee83..77987aa 100644
--- a/StarRailUID/starrailuid_charinfo/damage/Excel/weapon_effect.json
+++ b/StarRailUID/starrailuid_charinfo/damage/Excel/weapon_effect.json
@@ -351,6 +351,19 @@
]
}
},
+ "21008": {
+ "Param": {
+ "DOTDmgAdd": [
+ 0.2400000000745058, 0.28000000009313226, 0.32000000011175871,
+ 0.36000000013038516, 0.4000000001490116
+ ]
+ }
+ },
+ "22001": {
+ "Param": {
+ "HealRatioBase": [0.16, 0.19, 0.22, 0.25, 0.28]
+ }
+ },
"21034": {
"Param": {
"AllDamageAddedRatio": [
diff --git a/StarRailUID/starrailuid_charinfo/damage/Role.py b/StarRailUID/starrailuid_charinfo/damage/Role.py
index 95965f6..48bc608 100644
--- a/StarRailUID/starrailuid_charinfo/damage/Role.py
+++ b/StarRailUID/starrailuid_charinfo/damage/Role.py
@@ -87,6 +87,8 @@ async def calculate_damage(
# logger.info(f'merged_attr: {merged_attr}')
if is_hp == 1:
attack = merged_attr.get('hp', 0)
+ elif is_hp == 2:
+ attack = merged_attr.get('defence', 0)
else:
attack = merged_attr.get('attack', 0)
logger.info(f'Attack: {attack}')
diff --git a/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py b/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py
index 52ce2aa..bc773fb 100644
--- a/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py
+++ b/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py
@@ -1123,6 +1123,13 @@ class EyesofthePrey(BaseWeapon):
base_attr: Dict[str, float],
attribute_bonus: Dict[str, float],
):
+ dot_dmg_add = attribute_bonus.get('DOTDmgAdd', 0)
+ attribute_bonus['DOTDmgAdd'] = (
+ dot_dmg_add
+ + weapon_effect['21008']['Param']['DOTDmgAdd'][
+ self.weapon_rank - 1
+ ]
+ )
return attribute_bonus
@@ -2331,10 +2338,40 @@ class Mediation(BaseWeapon):
)
return attribute_bonus
+# 嘿,我在这儿
+class HeyOverHere(BaseWeapon):
+ weapon_base_attributes: Dict
+
+ def __init__(self, weapon: DamageInstanceWeapon):
+ super().__init__(weapon)
+
+ async def check(self):
+ # 当装备者施放终结技后,使我方全体速度提高12点,持续1回合。
+ return True
+
+ async def weapon_ability(
+ self,
+ Ultra_Use: float,
+ base_attr: Dict[str, float],
+ attribute_bonus: Dict[str, float],
+ ):
+ if await self.check():
+ heal_ratio_base = attribute_bonus.get('HealRatioBase', 0)
+ attribute_bonus['HealRatioBase'] = (
+ heal_ratio_base
+ + (
+ weapon_effect['22001']['Param']['HealRatioBase'][
+ self.weapon_rank - 1
+ ]
+ )
+ )
+ return attribute_bonus
class Weapon:
@classmethod
def create(cls, weapon: DamageInstanceWeapon):
+ if weapon.id_ == 22001:
+ return HeyOverHere(weapon)
if weapon.id_ == 20019:
return Mediation(weapon)
if weapon.id_ == 20012:
diff --git a/StarRailUID/starrailuid_charinfo/draw_char_img.py b/StarRailUID/starrailuid_charinfo/draw_char_img.py
index b2d23f3..6b32551 100644
--- a/StarRailUID/starrailuid_charinfo/draw_char_img.py
+++ b/StarRailUID/starrailuid_charinfo/draw_char_img.py
@@ -367,7 +367,7 @@ async def draw_char_img(char_data: Dict, sr_uid: str, msg: str):
if char.equipment != {}:
weapon_bg = Image.open(TEXT_PATH / 'weapon_bg.png')
weapon_id = char.equipment['equipmentID']
- weapon_img = Image.open(WEAPON_PATH / f'{weapon_id}.png').resize(
+ weapon_img = Image.open(WEAPON_PATH / f'{weapon_id}.png').convert('RGBA').resize(
(170, 180)
)
weapon_bg.paste(weapon_img, (20, 90), weapon_img)
diff --git a/StarRailUID/utils/excel/AvatarPromotionConfig.json b/StarRailUID/utils/excel/AvatarPromotionConfig.json
index 81be4e2..678f250 100644
--- a/StarRailUID/utils/excel/AvatarPromotionConfig.json
+++ b/StarRailUID/utils/excel/AvatarPromotionConfig.json
@@ -12907,5 +12907,667 @@
"Value": 75
}
}
+ },
+ "1217": {
+ "0": {
+ "AvatarID": 1217,
+ "Promotion": 0,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 4000
+ },
+ {
+ "ItemID": 113001,
+ "ItemNum": 5
+ }
+ ],
+ "MaxLevel": 20,
+ "PlayerLevelRequire": 15,
+ "AttackBase": {
+ "Value": 81.84
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 69.3
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 184.8
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "1": {
+ "AvatarID": 1217,
+ "Promotion": 1,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 8000
+ },
+ {
+ "ItemID": 113001,
+ "ItemNum": 10
+ }
+ ],
+ "MaxLevel": 30,
+ "WorldLevelRequire": 1,
+ "AttackBase": {
+ "Value": 114.576
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 97.02
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 258.72
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "2": {
+ "AvatarID": 1217,
+ "Promotion": 2,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 16000
+ },
+ {
+ "ItemID": 110415,
+ "ItemNum": 3
+ },
+ {
+ "ItemID": 113002,
+ "ItemNum": 6
+ }
+ ],
+ "MaxLevel": 40,
+ "WorldLevelRequire": 2,
+ "AttackBase": {
+ "Value": 147.312
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 124.74
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 332.64
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "3": {
+ "AvatarID": 1217,
+ "Promotion": 3,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 40000
+ },
+ {
+ "ItemID": 110415,
+ "ItemNum": 7
+ },
+ {
+ "ItemID": 113002,
+ "ItemNum": 9
+ }
+ ],
+ "MaxLevel": 50,
+ "WorldLevelRequire": 3,
+ "AttackBase": {
+ "Value": 180.048
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 152.46
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 406.56
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "4": {
+ "AvatarID": 1217,
+ "Promotion": 4,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 80000
+ },
+ {
+ "ItemID": 110415,
+ "ItemNum": 20
+ },
+ {
+ "ItemID": 113003,
+ "ItemNum": 6
+ }
+ ],
+ "MaxLevel": 60,
+ "WorldLevelRequire": 4,
+ "AttackBase": {
+ "Value": 212.784
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 180.18
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 480.48
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "5": {
+ "AvatarID": 1217,
+ "Promotion": 5,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 160000
+ },
+ {
+ "ItemID": 110415,
+ "ItemNum": 35
+ },
+ {
+ "ItemID": 113003,
+ "ItemNum": 9
+ }
+ ],
+ "MaxLevel": 70,
+ "WorldLevelRequire": 5,
+ "AttackBase": {
+ "Value": 245.52
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 207.9
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 554.4
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "6": {
+ "AvatarID": 1217,
+ "Promotion": 6,
+ "PromotionCostList": [],
+ "MaxLevel": 80,
+ "WorldLevelRequire": 5,
+ "AttackBase": {
+ "Value": 278.256
+ },
+ "AttackAdd": {
+ "Value": 4.092
+ },
+ "DefenceBase": {
+ "Value": 235.62
+ },
+ "DefenceAdd": {
+ "Value": 3.465
+ },
+ "HPBase": {
+ "Value": 628.32
+ },
+ "HPAdd": {
+ "Value": 9.24
+ },
+ "SpeedBase": {
+ "Value": 98
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ }
+ },
+ "1215": {
+ "0": {
+ "AvatarID": 1215,
+ "Promotion": 0,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 3200
+ },
+ {
+ "ItemID": 113011,
+ "ItemNum": 4
+ }
+ ],
+ "MaxLevel": 20,
+ "PlayerLevelRequire": 15,
+ "AttackBase": {
+ "Value": 76.8
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 48
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 124.8
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "1": {
+ "AvatarID": 1215,
+ "Promotion": 1,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 6400
+ },
+ {
+ "ItemID": 113011,
+ "ItemNum": 8
+ }
+ ],
+ "MaxLevel": 30,
+ "WorldLevelRequire": 1,
+ "AttackBase": {
+ "Value": 107.52
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 67.2
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 174.72
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "2": {
+ "AvatarID": 1215,
+ "Promotion": 2,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 12800
+ },
+ {
+ "ItemID": 110411,
+ "ItemNum": 2
+ },
+ {
+ "ItemID": 113012,
+ "ItemNum": 5
+ }
+ ],
+ "MaxLevel": 40,
+ "WorldLevelRequire": 2,
+ "AttackBase": {
+ "Value": 138.24
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 86.4
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 224.64
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "3": {
+ "AvatarID": 1215,
+ "Promotion": 3,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 32000
+ },
+ {
+ "ItemID": 110411,
+ "ItemNum": 5
+ },
+ {
+ "ItemID": 113012,
+ "ItemNum": 8
+ }
+ ],
+ "MaxLevel": 50,
+ "WorldLevelRequire": 3,
+ "AttackBase": {
+ "Value": 168.96
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 105.6
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 274.56
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "4": {
+ "AvatarID": 1215,
+ "Promotion": 4,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 64000
+ },
+ {
+ "ItemID": 110411,
+ "ItemNum": 15
+ },
+ {
+ "ItemID": 113013,
+ "ItemNum": 5
+ }
+ ],
+ "MaxLevel": 60,
+ "WorldLevelRequire": 4,
+ "AttackBase": {
+ "Value": 199.68
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 124.8
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 324.48
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "5": {
+ "AvatarID": 1215,
+ "Promotion": 5,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 128000
+ },
+ {
+ "ItemID": 110411,
+ "ItemNum": 28
+ },
+ {
+ "ItemID": 113013,
+ "ItemNum": 7
+ }
+ ],
+ "MaxLevel": 70,
+ "WorldLevelRequire": 5,
+ "AttackBase": {
+ "Value": 230.4
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 144
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 374.4
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ },
+ "6": {
+ "AvatarID": 1215,
+ "Promotion": 6,
+ "PromotionCostList": [],
+ "MaxLevel": 80,
+ "WorldLevelRequire": 5,
+ "AttackBase": {
+ "Value": 261.12
+ },
+ "AttackAdd": {
+ "Value": 3.84
+ },
+ "DefenceBase": {
+ "Value": 163.2
+ },
+ "DefenceAdd": {
+ "Value": 2.4
+ },
+ "HPBase": {
+ "Value": 424.32
+ },
+ "HPAdd": {
+ "Value": 6.24
+ },
+ "SpeedBase": {
+ "Value": 110
+ },
+ "CriticalChance": {
+ "Value": 0.05
+ },
+ "CriticalDamage": {
+ "Value": 0.5
+ },
+ "BaseAggro": {
+ "Value": 100
+ }
+ }
}
}
\ No newline at end of file
diff --git a/StarRailUID/utils/excel/EquipmentPromotionConfig.json b/StarRailUID/utils/excel/EquipmentPromotionConfig.json
index d689a54..a52721f 100644
--- a/StarRailUID/utils/excel/EquipmentPromotionConfig.json
+++ b/StarRailUID/utils/excel/EquipmentPromotionConfig.json
@@ -19827,5 +19827,507 @@
"Value": 7.2
}
}
+ },
+ "23017": {
+ "0": {
+ "EquipmentID": 23017,
+ "Promotion": 0,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 5000
+ },
+ {
+ "ItemID": 113001,
+ "ItemNum": 8
+ }
+ ],
+ "MaxLevel": 20,
+ "PlayerLevelRequire": 15,
+ "BaseAttack": {
+ "Value": 21.6
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 24
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 52.8
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ },
+ "1": {
+ "EquipmentID": 23017,
+ "Promotion": 1,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 10000
+ },
+ {
+ "ItemID": 110171,
+ "ItemNum": 4
+ },
+ {
+ "ItemID": 113001,
+ "ItemNum": 12
+ }
+ ],
+ "MaxLevel": 30,
+ "WorldLevelRequire": 1,
+ "BaseAttack": {
+ "Value": 47.52
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 52.8
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 116.16
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ },
+ "2": {
+ "EquipmentID": 23017,
+ "Promotion": 2,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 20000
+ },
+ {
+ "ItemID": 110172,
+ "ItemNum": 4
+ },
+ {
+ "ItemID": 113002,
+ "ItemNum": 8
+ }
+ ],
+ "MaxLevel": 40,
+ "WorldLevelRequire": 2,
+ "BaseAttack": {
+ "Value": 82.08
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 91.2
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 200.64
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ },
+ "3": {
+ "EquipmentID": 23017,
+ "Promotion": 3,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 50000
+ },
+ {
+ "ItemID": 110172,
+ "ItemNum": 8
+ },
+ {
+ "ItemID": 113002,
+ "ItemNum": 12
+ }
+ ],
+ "MaxLevel": 50,
+ "WorldLevelRequire": 3,
+ "BaseAttack": {
+ "Value": 116.64
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 129.6
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 285.12
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ },
+ "4": {
+ "EquipmentID": 23017,
+ "Promotion": 4,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 100000
+ },
+ {
+ "ItemID": 110173,
+ "ItemNum": 5
+ },
+ {
+ "ItemID": 113003,
+ "ItemNum": 6
+ }
+ ],
+ "MaxLevel": 60,
+ "WorldLevelRequire": 4,
+ "BaseAttack": {
+ "Value": 151.2
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 168
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 369.6
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ },
+ "5": {
+ "EquipmentID": 23017,
+ "Promotion": 5,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 200000
+ },
+ {
+ "ItemID": 110173,
+ "ItemNum": 10
+ },
+ {
+ "ItemID": 113003,
+ "ItemNum": 8
+ }
+ ],
+ "MaxLevel": 70,
+ "WorldLevelRequire": 5,
+ "BaseAttack": {
+ "Value": 185.76
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 206.4
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 454.08
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ },
+ "6": {
+ "EquipmentID": 23017,
+ "Promotion": 6,
+ "PromotionCostList": [],
+ "MaxLevel": 80,
+ "WorldLevelRequire": 5,
+ "BaseAttack": {
+ "Value": 220.32
+ },
+ "BaseAttackAdd": {
+ "Value": 3.24
+ },
+ "BaseDefence": {
+ "Value": 244.8
+ },
+ "BaseDefenceAdd": {
+ "Value": 3.6
+ },
+ "BaseHP": {
+ "Value": 538.56
+ },
+ "BaseHPAdd": {
+ "Value": 7.92
+ }
+ }
+ },
+ "22001": {
+ "0": {
+ "EquipmentID": 22001,
+ "Promotion": 0,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 4000
+ },
+ {
+ "ItemID": 113011,
+ "ItemNum": 5
+ }
+ ],
+ "MaxLevel": 20,
+ "PlayerLevelRequire": 15,
+ "BaseAttack": {
+ "Value": 19.2
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 18
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 43.2
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ },
+ "1": {
+ "EquipmentID": 22001,
+ "Promotion": 1,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 8000
+ },
+ {
+ "ItemID": 110171,
+ "ItemNum": 3
+ },
+ {
+ "ItemID": 113011,
+ "ItemNum": 10
+ }
+ ],
+ "MaxLevel": 30,
+ "WorldLevelRequire": 1,
+ "BaseAttack": {
+ "Value": 42.24
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 39.6
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 95.04
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ },
+ "2": {
+ "EquipmentID": 22001,
+ "Promotion": 2,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 16000
+ },
+ {
+ "ItemID": 110172,
+ "ItemNum": 3
+ },
+ {
+ "ItemID": 113012,
+ "ItemNum": 6
+ }
+ ],
+ "MaxLevel": 40,
+ "WorldLevelRequire": 2,
+ "BaseAttack": {
+ "Value": 72.96
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 68.4
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 164.16
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ },
+ "3": {
+ "EquipmentID": 22001,
+ "Promotion": 3,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 40000
+ },
+ {
+ "ItemID": 110172,
+ "ItemNum": 6
+ },
+ {
+ "ItemID": 113012,
+ "ItemNum": 9
+ }
+ ],
+ "MaxLevel": 50,
+ "WorldLevelRequire": 3,
+ "BaseAttack": {
+ "Value": 103.68
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 97.2
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 233.28
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ },
+ "4": {
+ "EquipmentID": 22001,
+ "Promotion": 4,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 80000
+ },
+ {
+ "ItemID": 110173,
+ "ItemNum": 4
+ },
+ {
+ "ItemID": 113013,
+ "ItemNum": 5
+ }
+ ],
+ "MaxLevel": 60,
+ "WorldLevelRequire": 4,
+ "BaseAttack": {
+ "Value": 134.4
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 126
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 302.4
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ },
+ "5": {
+ "EquipmentID": 22001,
+ "Promotion": 5,
+ "PromotionCostList": [
+ {
+ "ItemID": 2,
+ "ItemNum": 160000
+ },
+ {
+ "ItemID": 110173,
+ "ItemNum": 8
+ },
+ {
+ "ItemID": 113013,
+ "ItemNum": 7
+ }
+ ],
+ "MaxLevel": 70,
+ "WorldLevelRequire": 5,
+ "BaseAttack": {
+ "Value": 165.12
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 154.8
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 371.52
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ },
+ "6": {
+ "EquipmentID": 22001,
+ "Promotion": 6,
+ "PromotionCostList": [],
+ "MaxLevel": 80,
+ "WorldLevelRequire": 5,
+ "BaseAttack": {
+ "Value": 195.84
+ },
+ "BaseAttackAdd": {
+ "Value": 2.88
+ },
+ "BaseDefence": {
+ "Value": 183.6
+ },
+ "BaseDefenceAdd": {
+ "Value": 2.7
+ },
+ "BaseHP": {
+ "Value": 440.64
+ },
+ "BaseHPAdd": {
+ "Value": 6.48
+ }
+ }
}
}
\ No newline at end of file
diff --git a/StarRailUID/utils/excel/light_cone_ranks.json b/StarRailUID/utils/excel/light_cone_ranks.json
index fae451a..14f3d75 100644
--- a/StarRailUID/utils/excel/light_cone_ranks.json
+++ b/StarRailUID/utils/excel/light_cone_ranks.json
@@ -3924,5 +3924,143 @@
}
]
]
+ },
+ "23017": {
+ "id": "23017",
+ "skill": "深度深呼吸",
+ "desc": "使装备者的能量恢复效率提高#1[i]%。我方目标施放终结技时,装备者为当前生命值百分比最低的我方目标回复等同于其#2[i]%生命上限的生命值。当装备者为我方目标提供治疗时,使该目标的攻击力提高#3[i]%,该效果最多叠加#4[i]层,持续#5[i]回合。",
+ "params": [
+ [
+ 0.12,
+ 0.1,
+ 0.024,
+ 5,
+ 2
+ ],
+ [
+ 0.14,
+ 0.11,
+ 0.028,
+ 5,
+ 2
+ ],
+ [
+ 0.16,
+ 0.12,
+ 0.032,
+ 5,
+ 2
+ ],
+ [
+ 0.18,
+ 0.13,
+ 0.036,
+ 5,
+ 2
+ ],
+ [
+ 0.2,
+ 0.14,
+ 0.04,
+ 5,
+ 2
+ ]
+ ],
+ "properties": [
+ [
+ {
+ "type": "SPRatioBase",
+ "value": 0.12
+ }
+ ],
+ [
+ {
+ "type": "SPRatioBase",
+ "value": 0.14
+ }
+ ],
+ [
+ {
+ "type": "SPRatioBase",
+ "value": 0.16
+ }
+ ],
+ [
+ {
+ "type": "SPRatioBase",
+ "value": 0.18
+ }
+ ],
+ [
+ {
+ "type": "SPRatioBase",
+ "value": 0.2
+ }
+ ]
+ ]
+ },
+ "22001": {
+ "id": "22001",
+ "skill": "不怕不怕啦",
+ "desc": "使装备者的生命上限提高#1[i]%。当装备者施放战技时,治疗量提高#2[i]%,持续#3[i]回合。",
+ "params": [
+ [
+ 0.08,
+ 0.16,
+ 2
+ ],
+ [
+ 0.09,
+ 0.19,
+ 2
+ ],
+ [
+ 0.1,
+ 0.22,
+ 2
+ ],
+ [
+ 0.11,
+ 0.25,
+ 2
+ ],
+ [
+ 0.12,
+ 0.28,
+ 2
+ ]
+ ],
+ "properties": [
+ [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.08
+ }
+ ],
+ [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.09
+ }
+ ],
+ [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.1
+ }
+ ],
+ [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.11
+ }
+ ],
+ [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.12
+ }
+ ]
+ ]
}
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/AvatarRelicScore.json b/StarRailUID/utils/map/data/AvatarRelicScore.json
index 9202c01..64cf6d1 100644
--- a/StarRailUID/utils/map/data/AvatarRelicScore.json
+++ b/StarRailUID/utils/map/data/AvatarRelicScore.json
@@ -196,6 +196,24 @@
"StatusProbabilityBase": 0.0,
"StatusResistanceBase": 0.75,
"AttributeAddedRatio": 0
+ },
+ {
+ "role": "藿藿",
+ "HPDelta": 1.0,
+ "HPAddedRatio": 1.0,
+ "AttackDelta": 0.0,
+ "AttackAddedRatio": 0.0,
+ "DefenceDelta": 0.5,
+ "DefenceAddedRatio": 0.5,
+ "SpeedDelta": 1.0,
+ "CriticalChanceBase": 0,
+ "CriticalDamageBase": 0,
+ "BreakDamageAddedRatioBase": 0.0,
+ "HealRatio": 1,
+ "SPRatio": 1.0,
+ "StatusProbabilityBase": 0.0,
+ "StatusResistanceBase": 0.75,
+ "AttributeAddedRatio": 0
},
{
"role": "符玄",
diff --git a/StarRailUID/utils/map/data/EquipmentID2AbilityProperty_mapping_1.4.0.json b/StarRailUID/utils/map/data/EquipmentID2AbilityProperty_mapping_1.4.0.json
index 7f942b8..a192358 100644
--- a/StarRailUID/utils/map/data/EquipmentID2AbilityProperty_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/EquipmentID2AbilityProperty_mapping_1.4.0.json
@@ -2036,5 +2036,89 @@
}
}
]
+ },
+ "23017": {
+ "1": [
+ {
+ "PropertyType": "SPRatioBase",
+ "Value": {
+ "Value": 0.12
+ }
+ }
+ ],
+ "2": [
+ {
+ "PropertyType": "SPRatioBase",
+ "Value": {
+ "Value": 0.14
+ }
+ }
+ ],
+ "3": [
+ {
+ "PropertyType": "SPRatioBase",
+ "Value": {
+ "Value": 0.16
+ }
+ }
+ ],
+ "4": [
+ {
+ "PropertyType": "SPRatioBase",
+ "Value": {
+ "Value": 0.18
+ }
+ }
+ ],
+ "5": [
+ {
+ "PropertyType": "SPRatioBase",
+ "Value": {
+ "Value": 0.2
+ }
+ }
+ ]
+ },
+ "22001": {
+ "1": [
+ {
+ "PropertyType": "HPAddedRatio",
+ "Value": {
+ "Value": 0.08
+ }
+ }
+ ],
+ "2": [
+ {
+ "PropertyType": "HPAddedRatio",
+ "Value": {
+ "Value": 0.09
+ }
+ }
+ ],
+ "3": [
+ {
+ "PropertyType": "HPAddedRatio",
+ "Value": {
+ "Value": 0.1
+ }
+ }
+ ],
+ "4": [
+ {
+ "PropertyType": "HPAddedRatio",
+ "Value": {
+ "Value": 0.11
+ }
+ }
+ ],
+ "5": [
+ {
+ "PropertyType": "HPAddedRatio",
+ "Value": {
+ "Value": 0.12
+ }
+ }
+ ]
}
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/EquipmentID2EnName_mapping_1.4.0.json b/StarRailUID/utils/map/data/EquipmentID2EnName_mapping_1.4.0.json
index 77f5a30..69ab416 100644
--- a/StarRailUID/utils/map/data/EquipmentID2EnName_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/EquipmentID2EnName_mapping_1.4.0.json
@@ -77,5 +77,7 @@
"24002": "TextureofMemories",
"21025": "PastandFuture",
"24003": "SolitaryHealing",
- "23018": "AnInstanceForeverCherished"
+ "23018": "AnInstanceForeverCherished",
+ "23017": "NightofFright",
+ "22001": "Hey,OverHere"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/EquipmentID2Name_mapping_1.4.0.json b/StarRailUID/utils/map/data/EquipmentID2Name_mapping_1.4.0.json
index 1fed5f1..3e33de8 100644
--- a/StarRailUID/utils/map/data/EquipmentID2Name_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/EquipmentID2Name_mapping_1.4.0.json
@@ -77,5 +77,7 @@
"24002": "记忆的质料",
"21025": "过往未来",
"24003": "孤独的疗愈",
- "23018": "片刻,留在眼底"
+ "23018": "片刻,留在眼底",
+ "23017": "惊魂夜",
+ "22001": "嘿,我在这儿"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/EquipmentID2Rarity_mapping_1.4.0.json b/StarRailUID/utils/map/data/EquipmentID2Rarity_mapping_1.4.0.json
index acbe702..8b0888d 100644
--- a/StarRailUID/utils/map/data/EquipmentID2Rarity_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/EquipmentID2Rarity_mapping_1.4.0.json
@@ -77,5 +77,7 @@
"24001": 5,
"24002": 5,
"24003": 5,
- "23018": 5
+ "23018": 5,
+ "23017": 5,
+ "22001": 4
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/avatarId2DamageType_mapping_1.4.0.json b/StarRailUID/utils/map/data/avatarId2DamageType_mapping_1.4.0.json
index 340e3e2..595885e 100644
--- a/StarRailUID/utils/map/data/avatarId2DamageType_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/avatarId2DamageType_mapping_1.4.0.json
@@ -37,5 +37,7 @@
"8002": "Physical",
"8003": "Fire",
"8004": "Fire",
- "1302": "Physical"
+ "1302": "Physical",
+ "1217": "Wind",
+ "1215": "Physical"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/avatarId2EnName_mapping_1.4.0.json b/StarRailUID/utils/map/data/avatarId2EnName_mapping_1.4.0.json
index ce25143..15c6fc9 100644
--- a/StarRailUID/utils/map/data/avatarId2EnName_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/avatarId2EnName_mapping_1.4.0.json
@@ -37,5 +37,7 @@
"8002": "{NICKNAME}",
"8003": "{NICKNAME}",
"8004": "{NICKNAME}",
- "1302": "Argenti"
+ "1302": "Argenti",
+ "1217": "Huohuo",
+ "1215": "Hanya"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/avatarId2Name_mapping_1.4.0.json b/StarRailUID/utils/map/data/avatarId2Name_mapping_1.4.0.json
index e6c345b..bd1deab 100644
--- a/StarRailUID/utils/map/data/avatarId2Name_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/avatarId2Name_mapping_1.4.0.json
@@ -37,5 +37,7 @@
"8002": "开拓者",
"8003": "开拓者",
"8004": "开拓者",
- "1302": "银枝"
+ "1302": "银枝",
+ "1217": "藿藿",
+ "1215": "寒鸦"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.4.0.json b/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.4.0.json
index 65a63db..9a53ee9 100644
--- a/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/avatarId2Rarity_mapping_1.4.0.json
@@ -37,5 +37,7 @@
"8002": "5",
"8003": "5",
"8004": "5",
- "1302": "5"
+ "1302": "5",
+ "1217": "5",
+ "1215": "4"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/avatarId2Star_mapping_1.4.0.json b/StarRailUID/utils/map/data/avatarId2Star_mapping_1.4.0.json
index 65a63db..9a53ee9 100644
--- a/StarRailUID/utils/map/data/avatarId2Star_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/avatarId2Star_mapping_1.4.0.json
@@ -37,5 +37,7 @@
"8002": "5",
"8003": "5",
"8004": "5",
- "1302": "5"
+ "1302": "5",
+ "1217": "5",
+ "1215": "4"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/avatarRankSkillUp_mapping_1.4.0.json b/StarRailUID/utils/map/data/avatarRankSkillUp_mapping_1.4.0.json
index 8cfdb04..59ac964 100644
--- a/StarRailUID/utils/map/data/avatarRankSkillUp_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/avatarRankSkillUp_mapping_1.4.0.json
@@ -994,5 +994,53 @@
"num": 2
}
],
- "130206": []
+ "130206": [],
+ "121701": [],
+ "121702": [],
+ "121703": [
+ {
+ "id": "121703",
+ "num": 2
+ },
+ {
+ "id": "121704",
+ "num": 2
+ }
+ ],
+ "121704": [],
+ "121705": [
+ {
+ "id": "121701",
+ "num": 1
+ },
+ {
+ "id": "121702",
+ "num": 2
+ }
+ ],
+ "121706": [],
+ "121501": [],
+ "121502": [],
+ "121503": [
+ {
+ "id": "121501",
+ "num": 1
+ },
+ {
+ "id": "121502",
+ "num": 2
+ }
+ ],
+ "121504": [],
+ "121505": [
+ {
+ "id": "121503",
+ "num": 2
+ },
+ {
+ "id": "121504",
+ "num": 2
+ }
+ ],
+ "121506": []
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/char_alias.json b/StarRailUID/utils/map/data/char_alias.json
index 4a8c703..ea54050 100644
--- a/StarRailUID/utils/map/data/char_alias.json
+++ b/StarRailUID/utils/map/data/char_alias.json
@@ -175,6 +175,9 @@
"饮月君",
"饮月",
"龙丹"
+ ],
+ "1217": [
+ "藿藿"
],
"1302": [
"银枝"
@@ -454,6 +457,9 @@
],
"23015": [
"比阳光更明亮的"
+ ],
+ "23017": [
+ "惊魂夜"
],
"23018": [
"片刻,留在眼底",
diff --git a/StarRailUID/utils/map/data/characterSkillTree_mapping_1.4.0.json b/StarRailUID/utils/map/data/characterSkillTree_mapping_1.4.0.json
index 1446cc6..1fec407 100644
--- a/StarRailUID/utils/map/data/characterSkillTree_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/characterSkillTree_mapping_1.4.0.json
@@ -48681,5 +48681,2507 @@
],
"icon": "icon/property/IconAttack.png"
}
+ },
+ "1217": {
+ "1217001": {
+ "id": "1217001",
+ "name": "",
+ "max_level": 6,
+ "desc": "",
+ "params": [],
+ "anchor": "Point01",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121701",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 5000
+ },
+ {
+ "id": "110171",
+ "num": 3
+ },
+ {
+ "id": "113001",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 10000
+ },
+ {
+ "id": "110172",
+ "num": 3
+ },
+ {
+ "id": "113002",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 20000
+ },
+ {
+ "id": "110172",
+ "num": 5
+ },
+ {
+ "id": "113002",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 45000
+ },
+ {
+ "id": "110173",
+ "num": 3
+ },
+ {
+ "id": "113003",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "113003",
+ "num": 4
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1217_basic_atk.png"
+ },
+ "1217002": {
+ "id": "1217002",
+ "name": "",
+ "max_level": 10,
+ "desc": "",
+ "params": [],
+ "anchor": "Point02",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121702",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2500
+ },
+ {
+ "id": "113001",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 5000
+ },
+ {
+ "id": "110171",
+ "num": 3
+ },
+ {
+ "id": "113001",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 10000
+ },
+ {
+ "id": "110172",
+ "num": 3
+ },
+ {
+ "id": "113002",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 20000
+ },
+ {
+ "id": "110172",
+ "num": 5
+ },
+ {
+ "id": "113002",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 30000
+ },
+ {
+ "id": "110172",
+ "num": 7
+ },
+ {
+ "id": "113002",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 45000
+ },
+ {
+ "id": "110173",
+ "num": 3
+ },
+ {
+ "id": "113003",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 7,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 80000
+ },
+ {
+ "id": "110173",
+ "num": 5
+ },
+ {
+ "id": "110503",
+ "num": 1
+ },
+ {
+ "id": "113003",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 8,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ },
+ {
+ "promotion": 9,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 300000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 14
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1217_skill.png"
+ },
+ "1217003": {
+ "id": "1217003",
+ "name": "",
+ "max_level": 10,
+ "desc": "",
+ "params": [],
+ "anchor": "Point03",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121703",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2500
+ },
+ {
+ "id": "113001",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 5000
+ },
+ {
+ "id": "110171",
+ "num": 3
+ },
+ {
+ "id": "113001",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 10000
+ },
+ {
+ "id": "110172",
+ "num": 3
+ },
+ {
+ "id": "113002",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 20000
+ },
+ {
+ "id": "110172",
+ "num": 5
+ },
+ {
+ "id": "113002",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 30000
+ },
+ {
+ "id": "110172",
+ "num": 7
+ },
+ {
+ "id": "113002",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 45000
+ },
+ {
+ "id": "110173",
+ "num": 3
+ },
+ {
+ "id": "113003",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 7,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 80000
+ },
+ {
+ "id": "110173",
+ "num": 5
+ },
+ {
+ "id": "110503",
+ "num": 1
+ },
+ {
+ "id": "113003",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 8,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ },
+ {
+ "promotion": 9,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 300000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 14
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1217_ultimate.png"
+ },
+ "1217004": {
+ "id": "1217004",
+ "name": "",
+ "max_level": 10,
+ "desc": "",
+ "params": [],
+ "anchor": "Point04",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121704",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2500
+ },
+ {
+ "id": "113001",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 5000
+ },
+ {
+ "id": "110171",
+ "num": 3
+ },
+ {
+ "id": "113001",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 10000
+ },
+ {
+ "id": "110172",
+ "num": 3
+ },
+ {
+ "id": "113002",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 20000
+ },
+ {
+ "id": "110172",
+ "num": 5
+ },
+ {
+ "id": "113002",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 30000
+ },
+ {
+ "id": "110172",
+ "num": 7
+ },
+ {
+ "id": "113002",
+ "num": 6
+ }
+ ]
+ },
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 45000
+ },
+ {
+ "id": "110173",
+ "num": 3
+ },
+ {
+ "id": "113003",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 7,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 80000
+ },
+ {
+ "id": "110173",
+ "num": 5
+ },
+ {
+ "id": "110503",
+ "num": 1
+ },
+ {
+ "id": "113003",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 8,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ },
+ {
+ "promotion": 9,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 300000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 14
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1217_talent.png"
+ },
+ "1217007": {
+ "id": "1217007",
+ "name": "",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point05",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121707",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ }
+ ],
+ "icon": "icon/skill/1217_technique.png"
+ },
+ "1217101": {
+ "id": "1217101",
+ "name": "不敢自专",
+ "max_level": 1,
+ "desc": "战斗开始时,藿藿获得【禳命】,持续#1[i]回合。",
+ "params": [
+ [
+ 1
+ ]
+ ],
+ "anchor": "Point06",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 5000
+ },
+ {
+ "id": "110171",
+ "num": 3
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/SkillIcon_1217_SkillTree1.png"
+ },
+ "1217102": {
+ "id": "1217102",
+ "name": "贞凶之命",
+ "max_level": 1,
+ "desc": "抵抗控制类负面状态的概率提高#1[i]%。",
+ "params": [
+ [
+ 0.35
+ ]
+ ],
+ "anchor": "Point07",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 20000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110172",
+ "num": 5
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/SkillIcon_1217_SkillTree2.png"
+ },
+ "1217103": {
+ "id": "1217103",
+ "name": "怯惧应激",
+ "max_level": 1,
+ "desc": "触发天赋为我方目标提供治疗时,藿藿恢复#1[i]点能量。",
+ "params": [
+ [
+ 1
+ ]
+ ],
+ "anchor": "Point08",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/SkillIcon_1217_SkillTree3.png"
+ },
+ "1217201": {
+ "id": "1217201",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point09",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.04
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2500
+ },
+ {
+ "id": "113001",
+ "num": 2
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ },
+ "1217202": {
+ "id": "1217202",
+ "name": "效果抵抗强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point10",
+ "pre_points": [
+ "1217101"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [
+ {
+ "type": "StatusResistanceBase",
+ "value": 0.04
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 5000
+ },
+ {
+ "id": "110171",
+ "num": 3
+ },
+ {
+ "id": "113001",
+ "num": 6
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconStatusResistance.png"
+ },
+ "1217203": {
+ "id": "1217203",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point11",
+ "pre_points": [
+ "1217202"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.04
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 10000
+ },
+ {
+ "id": "110172",
+ "num": 3
+ },
+ {
+ "id": "113002",
+ "num": 3
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ },
+ "1217204": {
+ "id": "1217204",
+ "name": "速度强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point12",
+ "pre_points": [
+ "1217203"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [
+ {
+ "type": "SpeedDelta",
+ "value": 2
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 10000
+ },
+ {
+ "id": "110172",
+ "num": 3
+ },
+ {
+ "id": "113002",
+ "num": 3
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconSpeed.png"
+ },
+ "1217205": {
+ "id": "1217205",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point13",
+ "pre_points": [
+ "1217102"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.06
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 20000
+ },
+ {
+ "id": "110172",
+ "num": 5
+ },
+ {
+ "id": "113002",
+ "num": 4
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ },
+ "1217206": {
+ "id": "1217206",
+ "name": "效果抵抗强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point14",
+ "pre_points": [
+ "1217205"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [
+ {
+ "type": "StatusResistanceBase",
+ "value": 0.06
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 45000
+ },
+ {
+ "id": "110173",
+ "num": 3
+ },
+ {
+ "id": "113003",
+ "num": 3
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconStatusResistance.png"
+ },
+ "1217207": {
+ "id": "1217207",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point15",
+ "pre_points": [
+ "1217206"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.06
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 45000
+ },
+ {
+ "id": "110173",
+ "num": 3
+ },
+ {
+ "id": "113003",
+ "num": 3
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ },
+ "1217208": {
+ "id": "1217208",
+ "name": "速度强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point16",
+ "pre_points": [
+ "1217103"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [
+ {
+ "type": "SpeedDelta",
+ "value": 3
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "113003",
+ "num": 8
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconSpeed.png"
+ },
+ "1217209": {
+ "id": "1217209",
+ "name": "效果抵抗强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point17",
+ "pre_points": [
+ "1217208"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [
+ {
+ "type": "StatusResistanceBase",
+ "value": 0.08
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "113003",
+ "num": 8
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconStatusResistance.png"
+ },
+ "1217210": {
+ "id": "1217210",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point18",
+ "pre_points": [
+ "1217208"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.08
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 160000
+ },
+ {
+ "id": "110173",
+ "num": 8
+ },
+ {
+ "id": "113003",
+ "num": 8
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ }
+ },
+ "1215": {
+ "1215001": {
+ "id": "1215001",
+ "name": "",
+ "max_level": 6,
+ "desc": "",
+ "params": [],
+ "anchor": "Point01",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121501",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 4000
+ },
+ {
+ "id": "110161",
+ "num": 2
+ },
+ {
+ "id": "113011",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 8000
+ },
+ {
+ "id": "110162",
+ "num": 2
+ },
+ {
+ "id": "113012",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 16000
+ },
+ {
+ "id": "110162",
+ "num": 4
+ },
+ {
+ "id": "113012",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 36000
+ },
+ {
+ "id": "110163",
+ "num": 2
+ },
+ {
+ "id": "113013",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "113013",
+ "num": 3
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1215_basic_atk.png"
+ },
+ "1215002": {
+ "id": "1215002",
+ "name": "",
+ "max_level": 10,
+ "desc": "",
+ "params": [],
+ "anchor": "Point02",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121502",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2000
+ },
+ {
+ "id": "113011",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 4000
+ },
+ {
+ "id": "110161",
+ "num": 2
+ },
+ {
+ "id": "113011",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 8000
+ },
+ {
+ "id": "110162",
+ "num": 2
+ },
+ {
+ "id": "113012",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 16000
+ },
+ {
+ "id": "110162",
+ "num": 4
+ },
+ {
+ "id": "113012",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 24000
+ },
+ {
+ "id": "110162",
+ "num": 6
+ },
+ {
+ "id": "113012",
+ "num": 5
+ }
+ ]
+ },
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 36000
+ },
+ {
+ "id": "110163",
+ "num": 2
+ },
+ {
+ "id": "113013",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 7,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 64000
+ },
+ {
+ "id": "110163",
+ "num": 4
+ },
+ {
+ "id": "110503",
+ "num": 1
+ },
+ {
+ "id": "113013",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 8,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ },
+ {
+ "promotion": 9,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 240000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110163",
+ "num": 11
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1215_skill.png"
+ },
+ "1215003": {
+ "id": "1215003",
+ "name": "",
+ "max_level": 10,
+ "desc": "",
+ "params": [],
+ "anchor": "Point03",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121503",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2000
+ },
+ {
+ "id": "113011",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 4000
+ },
+ {
+ "id": "110161",
+ "num": 2
+ },
+ {
+ "id": "113011",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 8000
+ },
+ {
+ "id": "110162",
+ "num": 2
+ },
+ {
+ "id": "113012",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 16000
+ },
+ {
+ "id": "110162",
+ "num": 4
+ },
+ {
+ "id": "113012",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 24000
+ },
+ {
+ "id": "110162",
+ "num": 6
+ },
+ {
+ "id": "113012",
+ "num": 5
+ }
+ ]
+ },
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 36000
+ },
+ {
+ "id": "110163",
+ "num": 2
+ },
+ {
+ "id": "113013",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 7,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 64000
+ },
+ {
+ "id": "110163",
+ "num": 4
+ },
+ {
+ "id": "110503",
+ "num": 1
+ },
+ {
+ "id": "113013",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 8,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ },
+ {
+ "promotion": 9,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 240000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110163",
+ "num": 11
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1215_ultimate.png"
+ },
+ "1215004": {
+ "id": "1215004",
+ "name": "",
+ "max_level": 10,
+ "desc": "",
+ "params": [],
+ "anchor": "Point04",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121504",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ },
+ {
+ "promotion": 1,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2000
+ },
+ {
+ "id": "113011",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 4000
+ },
+ {
+ "id": "110161",
+ "num": 2
+ },
+ {
+ "id": "113011",
+ "num": 4
+ }
+ ]
+ },
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 8000
+ },
+ {
+ "id": "110162",
+ "num": 2
+ },
+ {
+ "id": "113012",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 16000
+ },
+ {
+ "id": "110162",
+ "num": 4
+ },
+ {
+ "id": "113012",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 24000
+ },
+ {
+ "id": "110162",
+ "num": 6
+ },
+ {
+ "id": "113012",
+ "num": 5
+ }
+ ]
+ },
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 36000
+ },
+ {
+ "id": "110163",
+ "num": 2
+ },
+ {
+ "id": "113013",
+ "num": 2
+ }
+ ]
+ },
+ {
+ "promotion": 7,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 64000
+ },
+ {
+ "id": "110163",
+ "num": 4
+ },
+ {
+ "id": "110503",
+ "num": 1
+ },
+ {
+ "id": "113013",
+ "num": 3
+ }
+ ]
+ },
+ {
+ "promotion": 8,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ },
+ {
+ "promotion": 9,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 240000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110163",
+ "num": 11
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/skill/1215_talent.png"
+ },
+ "1215007": {
+ "id": "1215007",
+ "name": "",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point05",
+ "pre_points": [],
+ "level_up_skills": [
+ {
+ "id": "121507",
+ "num": 1
+ }
+ ],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [],
+ "materials": []
+ }
+ ],
+ "icon": "icon/skill/1215_technique.png"
+ },
+ "1215101": {
+ "id": "1215101",
+ "name": "录事",
+ "max_level": 1,
+ "desc": "触发【承负】战技点回复效果的我方单位攻击力提高#1[i]%,持续#2[i]回合。",
+ "params": [
+ [
+ 0.1
+ ],
+ [
+ 1
+ ]
+ ],
+ "anchor": "Point06",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 4000
+ },
+ {
+ "id": "110161",
+ "num": 2
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/SkillIcon_1215_SkillTree1.png"
+ },
+ "1215102": {
+ "id": "1215102",
+ "name": "幽府",
+ "max_level": 1,
+ "desc": "持有【承负】的敌方目标被消灭时,如果【承负】为全队回复战技点的触发次数小于等于#1[i],则额外回复#2[i]点战技点。",
+ "params": [
+ [
+ 1
+ ],
+ [
+ 1
+ ]
+ ],
+ "anchor": "Point07",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 16000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110162",
+ "num": 4
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/SkillIcon_1215_SkillTree2.png"
+ },
+ "1215103": {
+ "id": "1215103",
+ "name": "还阳",
+ "max_level": 1,
+ "desc": "当【承负】战技点恢复效果被触发时,自身恢复#1[i]点能量。",
+ "params": [
+ [
+ 2
+ ]
+ ],
+ "anchor": "Point08",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "241",
+ "num": 1
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "110503",
+ "num": 1
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/SkillIcon_1215_SkillTree3.png"
+ },
+ "1215201": {
+ "id": "1215201",
+ "name": "攻击强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point09",
+ "pre_points": [],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [
+ {
+ "type": "AttackAddedRatio",
+ "value": 0.04
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 2000
+ },
+ {
+ "id": "113011",
+ "num": 2
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconAttack.png"
+ },
+ "1215202": {
+ "id": "1215202",
+ "name": "速度强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point10",
+ "pre_points": [
+ "1215101"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 2,
+ "level": 0,
+ "properties": [
+ {
+ "type": "SpeedDelta",
+ "value": 2
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 4000
+ },
+ {
+ "id": "110161",
+ "num": 2
+ },
+ {
+ "id": "113011",
+ "num": 4
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconSpeed.png"
+ },
+ "1215203": {
+ "id": "1215203",
+ "name": "攻击强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point11",
+ "pre_points": [
+ "1215202"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [
+ {
+ "type": "AttackAddedRatio",
+ "value": 0.04
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 8000
+ },
+ {
+ "id": "110162",
+ "num": 2
+ },
+ {
+ "id": "113012",
+ "num": 2
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconAttack.png"
+ },
+ "1215204": {
+ "id": "1215204",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point12",
+ "pre_points": [
+ "1215203"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 3,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.04
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 8000
+ },
+ {
+ "id": "110162",
+ "num": 2
+ },
+ {
+ "id": "113012",
+ "num": 2
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ },
+ "1215205": {
+ "id": "1215205",
+ "name": "攻击强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point13",
+ "pre_points": [
+ "1215102"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 4,
+ "level": 0,
+ "properties": [
+ {
+ "type": "AttackAddedRatio",
+ "value": 0.06
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 16000
+ },
+ {
+ "id": "110162",
+ "num": 4
+ },
+ {
+ "id": "113012",
+ "num": 3
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconAttack.png"
+ },
+ "1215206": {
+ "id": "1215206",
+ "name": "速度强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point14",
+ "pre_points": [
+ "1215205"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [
+ {
+ "type": "SpeedDelta",
+ "value": 3
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 36000
+ },
+ {
+ "id": "110163",
+ "num": 2
+ },
+ {
+ "id": "113013",
+ "num": 2
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconSpeed.png"
+ },
+ "1215207": {
+ "id": "1215207",
+ "name": "攻击强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point15",
+ "pre_points": [
+ "1215206"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 5,
+ "level": 0,
+ "properties": [
+ {
+ "type": "AttackAddedRatio",
+ "value": 0.06
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 36000
+ },
+ {
+ "id": "110163",
+ "num": 2
+ },
+ {
+ "id": "113013",
+ "num": 2
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconAttack.png"
+ },
+ "1215208": {
+ "id": "1215208",
+ "name": "生命强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point16",
+ "pre_points": [
+ "1215103"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 6,
+ "level": 0,
+ "properties": [
+ {
+ "type": "HPAddedRatio",
+ "value": 0.06
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "113013",
+ "num": 6
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconMaxHP.png"
+ },
+ "1215209": {
+ "id": "1215209",
+ "name": "速度强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point17",
+ "pre_points": [
+ "1215208"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [
+ {
+ "type": "SpeedDelta",
+ "value": 4
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "113013",
+ "num": 6
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconSpeed.png"
+ },
+ "1215210": {
+ "id": "1215210",
+ "name": "攻击强化",
+ "max_level": 1,
+ "desc": "",
+ "params": [],
+ "anchor": "Point18",
+ "pre_points": [
+ "1215208"
+ ],
+ "level_up_skills": [],
+ "levels": [
+ {
+ "promotion": 0,
+ "level": 0,
+ "properties": [
+ {
+ "type": "AttackAddedRatio",
+ "value": 0.08
+ }
+ ],
+ "materials": [
+ {
+ "id": "2",
+ "num": 128000
+ },
+ {
+ "id": "110163",
+ "num": 6
+ },
+ {
+ "id": "113013",
+ "num": 6
+ }
+ ]
+ }
+ ],
+ "icon": "icon/property/IconAttack.png"
+ }
}
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/rankId2Name_mapping_1.4.0.json b/StarRailUID/utils/map/data/rankId2Name_mapping_1.4.0.json
index db74f76..e5ecbfa 100644
--- a/StarRailUID/utils/map/data/rankId2Name_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/rankId2Name_mapping_1.4.0.json
@@ -232,5 +232,17 @@
"130203": "荆棘路的荣光",
"130204": "号角的奉献",
"130205": "宇宙某处的雪",
- "130206": "「你」的光芒"
+ "130206": "「你」的光芒",
+ "121701": "岁阳寄体,妖邪依凭",
+ "121702": "判官书符,镇尾锁灵",
+ "121703": "贞凶体质,烛火招萤",
+ "121704": "坐卧不离,争拗难宁",
+ "121705": "降妖捉鬼,十王敕令",
+ "121706": "同休共戚,相须而行",
+ "121501": "一心",
+ "121502": "二观",
+ "121503": "三尘",
+ "121504": "四谛",
+ "121505": "五阴",
+ "121506": "六正"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/skillId2AttackType_mapping_1.4.0.json b/StarRailUID/utils/map/data/skillId2AttackType_mapping_1.4.0.json
index 3d557ec..8d06d9f 100644
--- a/StarRailUID/utils/map/data/skillId2AttackType_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/skillId2AttackType_mapping_1.4.0.json
@@ -248,5 +248,15 @@
"130203": "Ultra",
"130214": "Ultra",
"130204": "",
- "130207": "Maze"
+ "130207": "Maze",
+ "121701": "Normal",
+ "121702": "BPSkill",
+ "121703": "Ultra",
+ "121704": "",
+ "121707": "Maze",
+ "121501": "Normal",
+ "121502": "BPSkill",
+ "121503": "Ultra",
+ "121504": "",
+ "121507": "Maze"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/skillId2Name_mapping_1.4.0.json b/StarRailUID/utils/map/data/skillId2Name_mapping_1.4.0.json
index 63872a9..c9ad97f 100644
--- a/StarRailUID/utils/map/data/skillId2Name_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/skillId2Name_mapping_1.4.0.json
@@ -248,5 +248,15 @@
"130203": "驻于花庭,赐与尽美",
"130214": "驻「我」华庭,授予至勋",
"130204": "崇高的客体",
- "130207": "纯粹高洁宣言"
+ "130207": "纯粹高洁宣言",
+ "121701": "令旗•征风召雨",
+ "121702": "灵符•保命护身",
+ "121703": "尾巴•遣神役鬼",
+ "121704": "凭附•气通天真",
+ "121707": "凶煞•劾压鬼物",
+ "121501": "冥谶天笔",
+ "121502": "生灭系缚",
+ "121503": "十王敕令,遍土遵行",
+ "121504": "罚恶",
+ "121507": "判冥"
}
\ No newline at end of file
diff --git a/StarRailUID/utils/map/data/skillId2Type_mapping_1.4.0.json b/StarRailUID/utils/map/data/skillId2Type_mapping_1.4.0.json
index 1502a04..834f1b8 100644
--- a/StarRailUID/utils/map/data/skillId2Type_mapping_1.4.0.json
+++ b/StarRailUID/utils/map/data/skillId2Type_mapping_1.4.0.json
@@ -248,5 +248,15 @@
"130203": "群攻",
"130214": "群攻",
"130204": "强化",
- "130207": "妨害"
+ "130207": "妨害",
+ "121701": "单攻",
+ "121702": "回复",
+ "121703": "辅助",
+ "121704": "回复",
+ "121707": "妨害",
+ "121501": "单攻",
+ "121502": "单攻",
+ "121503": "强化",
+ "121504": "辅助",
+ "121507": ""
}
\ No newline at end of file