From 327d14474c37808a72c32919e75d4c32669bb2de Mon Sep 17 00:00:00 2001 From: a376148946 <376148946@qq.com> Date: Sat, 28 Oct 2023 17:20:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=9B=AE=E5=89=8D=E6=89=80?= =?UTF-8?q?=E6=9C=89=E8=A7=92=E8=89=B2=E4=BC=A4=E5=AE=B3=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../damage/AvatarDamage/AvatarDamage.py | 1452 +++++++++- .../damage/Excel/SkillData.json | 161 +- .../damage/Excel/weapon_effect.json | 13 + .../starrailuid_charinfo/damage/Role.py | 2 + .../damage/Weapon/Weapon.py | 37 + .../starrailuid_charinfo/draw_char_img.py | 2 +- .../utils/excel/AvatarPromotionConfig.json | 662 +++++ .../utils/excel/EquipmentPromotionConfig.json | 502 ++++ StarRailUID/utils/excel/light_cone_ranks.json | 138 + .../utils/map/data/AvatarRelicScore.json | 18 + ...pmentID2AbilityProperty_mapping_1.4.0.json | 84 + .../EquipmentID2EnName_mapping_1.4.0.json | 4 +- .../data/EquipmentID2Name_mapping_1.4.0.json | 4 +- .../EquipmentID2Rarity_mapping_1.4.0.json | 4 +- .../avatarId2DamageType_mapping_1.4.0.json | 4 +- .../data/avatarId2EnName_mapping_1.4.0.json | 4 +- .../map/data/avatarId2Name_mapping_1.4.0.json | 4 +- .../data/avatarId2Rarity_mapping_1.4.0.json | 4 +- .../map/data/avatarId2Star_mapping_1.4.0.json | 4 +- .../data/avatarRankSkillUp_mapping_1.4.0.json | 50 +- StarRailUID/utils/map/data/char_alias.json | 6 + .../characterSkillTree_mapping_1.4.0.json | 2502 +++++++++++++++++ .../map/data/rankId2Name_mapping_1.4.0.json | 14 +- .../skillId2AttackType_mapping_1.4.0.json | 12 +- .../map/data/skillId2Name_mapping_1.4.0.json | 12 +- .../map/data/skillId2Type_mapping_1.4.0.json | 12 +- 26 files changed, 5682 insertions(+), 29 deletions(-) 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