Spaces:
Runtime error
Runtime error
5.7 commit
Browse files- base/attribute.py +1 -0
- base/buff.py +55 -11
- base/constant.py +5 -1
- base/recipe.py +14 -0
- base/skill.py +31 -12
- general/buffs.py +1 -1
- general/gains/team.py +1 -1
- get_assets.py +4 -0
- parse_new_school.py +1 -1
- qt/assets/equipments/belt +0 -0
- qt/assets/equipments/hat +0 -0
- qt/assets/equipments/jacket +0 -0
- qt/assets/equipments/primary_weapon +0 -0
- qt/assets/equipments/ring +1 -1
- qt/assets/equipments/shoes +0 -0
- qt/assets/equipments/wrist +0 -0
- qt/components/bonuses.py +1 -3
- schools/__init__.py +18 -2
- schools/bei_ao_jue/buffs.py +1 -1
- schools/bing_xin_jue/buffs.py +1 -1
- schools/gu_feng_jue/buffs.py +6 -1
- schools/hua_jian_you/__init__.py +10 -0
- schools/hua_jian_you/attribute.py +20 -0
- schools/hua_jian_you/buffs.py +81 -0
- schools/hua_jian_you/gains.py +18 -0
- schools/hua_jian_you/recipes.py +35 -0
- schools/hua_jian_you/skills.py +243 -0
- schools/hua_jian_you/talents.py +56 -0
- schools/ling_hai_jue/buffs.py +1 -1
- schools/mo_wen/__init__.py +10 -0
- schools/mo_wen/attribute.py +21 -0
- schools/mo_wen/buffs.py +64 -0
- schools/mo_wen/gains.py +16 -0
- schools/mo_wen/recipes.py +43 -0
- schools/mo_wen/skills.py +209 -0
- schools/mo_wen/talents.py +65 -0
- schools/shan_hai_xin_jue/buffs.py +1 -1
- schools/tai_xu_jian_yi/buffs.py +1 -1
- schools/tian_luo_gui_dao/buffs.py +1 -1
- schools/wu_fang/buffs.py +1 -1
- schools/yi_jin_jing/buffs.py +1 -1
- schools/yi_jin_jing/skills.py +3 -3
- utils/analyzer.py +10 -2
- utils/parser.py +21 -12
base/attribute.py
CHANGED
@@ -285,6 +285,7 @@ class Minor:
|
|
285 |
magical_damage_addition: int = 0
|
286 |
|
287 |
pve_addition: int = 0
|
|
|
288 |
|
289 |
""" Minor Function """
|
290 |
|
|
|
285 |
magical_damage_addition: int = 0
|
286 |
|
287 |
pve_addition: int = 0
|
288 |
+
global_damage_factor: float = 1.
|
289 |
|
290 |
""" Minor Function """
|
291 |
|
base/buff.py
CHANGED
@@ -10,7 +10,7 @@ ATTR_DICT = Dict[str, Union[List[int], int]]
|
|
10 |
@dataclass
|
11 |
class Buff:
|
12 |
buff_id: int
|
13 |
-
|
14 |
buff_level: int = 0
|
15 |
buff_stack: int = 1
|
16 |
|
@@ -31,6 +31,23 @@ class Buff:
|
|
31 |
if self.gain_attributes is None:
|
32 |
self.gain_attributes = {}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
@property
|
35 |
def display_name(self):
|
36 |
return f"{self.buff_name}#{self.buff_id}-{self.buff_level}-{self.buff_stack}"
|
@@ -40,16 +57,24 @@ class Buff:
|
|
40 |
value = values[self.buff_level - 1]
|
41 |
else:
|
42 |
value = values
|
|
|
43 |
if self.stackable:
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
47 |
|
48 |
def add_all(self, attribute: Attribute, skill: Skill):
|
49 |
for attr, values in self.gain_attributes.items():
|
50 |
setattr(attribute, attr, getattr(attribute, attr) + self.value(values))
|
51 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
52 |
-
|
|
|
|
|
|
|
|
|
53 |
|
54 |
def add_dot(self, attribute: Attribute, skill: Skill, snapshot: bool = True):
|
55 |
for attr, values in self.gain_attributes.items():
|
@@ -57,18 +82,29 @@ class Buff:
|
|
57 |
setattr(attribute, attr, getattr(attribute, attr) + self.value(values))
|
58 |
elif not snapshot and all(snapshot_attr not in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
59 |
setattr(attribute, attr, getattr(attribute, attr) + self.value(values))
|
60 |
-
|
61 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
62 |
if snapshot and any(snapshot_attr in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
63 |
-
|
|
|
|
|
|
|
|
|
64 |
elif not snapshot and all(snapshot_attr not in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
65 |
-
|
|
|
|
|
|
|
|
|
66 |
|
67 |
def sub_all(self, attribute: Attribute, skill: Skill):
|
68 |
for attr, values in self.gain_attributes.items():
|
69 |
setattr(attribute, attr, getattr(attribute, attr) - self.value(values))
|
70 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
71 |
-
|
|
|
|
|
|
|
|
|
72 |
|
73 |
def sub_dot(self, attribute: Attribute, skill: Skill, snapshot: bool = True):
|
74 |
for attr, values in self.gain_attributes.items():
|
@@ -78,6 +114,14 @@ class Buff:
|
|
78 |
setattr(attribute, attr, getattr(attribute, attr) - self.value(values))
|
79 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
80 |
if snapshot and any(snapshot_attr in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
81 |
-
|
|
|
|
|
|
|
|
|
82 |
elif not snapshot and all(snapshot_attr not in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
83 |
-
|
|
|
|
|
|
|
|
|
|
10 |
@dataclass
|
11 |
class Buff:
|
12 |
buff_id: int
|
13 |
+
_buff_name: Union[List[str], str] = ""
|
14 |
buff_level: int = 0
|
15 |
buff_stack: int = 1
|
16 |
|
|
|
31 |
if self.gain_attributes is None:
|
32 |
self.gain_attributes = {}
|
33 |
|
34 |
+
@property
|
35 |
+
def buff_name(self):
|
36 |
+
if not isinstance(self._buff_name, list):
|
37 |
+
return ""
|
38 |
+
|
39 |
+
if self.buff_level > len(self._buff_name):
|
40 |
+
return self._buff_name[-1]
|
41 |
+
else:
|
42 |
+
return self._buff_name[self.buff_level - 1]
|
43 |
+
|
44 |
+
@buff_name.setter
|
45 |
+
def buff_name(self, buff_name):
|
46 |
+
if isinstance(buff_name, list):
|
47 |
+
self._buff_name = buff_name
|
48 |
+
else:
|
49 |
+
self._buff_name = [buff_name]
|
50 |
+
|
51 |
@property
|
52 |
def display_name(self):
|
53 |
return f"{self.buff_name}#{self.buff_id}-{self.buff_level}-{self.buff_stack}"
|
|
|
57 |
value = values[self.buff_level - 1]
|
58 |
else:
|
59 |
value = values
|
60 |
+
|
61 |
if self.stackable:
|
62 |
+
value = value * self.buff_stack
|
63 |
+
|
64 |
+
if isinstance(value, float):
|
65 |
+
value = 1 + value
|
66 |
+
|
67 |
+
return value
|
68 |
|
69 |
def add_all(self, attribute: Attribute, skill: Skill):
|
70 |
for attr, values in self.gain_attributes.items():
|
71 |
setattr(attribute, attr, getattr(attribute, attr) + self.value(values))
|
72 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
73 |
+
value = self.value(values)
|
74 |
+
if isinstance(value, float):
|
75 |
+
setattr(skill, attr, getattr(skill, attr) * self.value(values))
|
76 |
+
else:
|
77 |
+
setattr(skill, attr, getattr(skill, attr) + self.value(values))
|
78 |
|
79 |
def add_dot(self, attribute: Attribute, skill: Skill, snapshot: bool = True):
|
80 |
for attr, values in self.gain_attributes.items():
|
|
|
82 |
setattr(attribute, attr, getattr(attribute, attr) + self.value(values))
|
83 |
elif not snapshot and all(snapshot_attr not in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
84 |
setattr(attribute, attr, getattr(attribute, attr) + self.value(values))
|
|
|
85 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
86 |
if snapshot and any(snapshot_attr in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
87 |
+
value = self.value(values)
|
88 |
+
if isinstance(value, float):
|
89 |
+
setattr(skill, attr, getattr(skill, attr) * self.value(values))
|
90 |
+
else:
|
91 |
+
setattr(skill, attr, getattr(skill, attr) + self.value(values))
|
92 |
elif not snapshot and all(snapshot_attr not in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
93 |
+
value = self.value(values)
|
94 |
+
if isinstance(value, float):
|
95 |
+
setattr(skill, attr, getattr(skill, attr) * self.value(values))
|
96 |
+
else:
|
97 |
+
setattr(skill, attr, getattr(skill, attr) + self.value(values))
|
98 |
|
99 |
def sub_all(self, attribute: Attribute, skill: Skill):
|
100 |
for attr, values in self.gain_attributes.items():
|
101 |
setattr(attribute, attr, getattr(attribute, attr) - self.value(values))
|
102 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
103 |
+
value = self.value(values)
|
104 |
+
if isinstance(value, float):
|
105 |
+
setattr(skill, attr, getattr(skill, attr) / self.value(values))
|
106 |
+
else:
|
107 |
+
setattr(skill, attr, getattr(skill, attr) - self.value(values))
|
108 |
|
109 |
def sub_dot(self, attribute: Attribute, skill: Skill, snapshot: bool = True):
|
110 |
for attr, values in self.gain_attributes.items():
|
|
|
114 |
setattr(attribute, attr, getattr(attribute, attr) - self.value(values))
|
115 |
for attr, values in self.gain_skills.get(skill.skill_id, {}).items():
|
116 |
if snapshot and any(snapshot_attr in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
117 |
+
value = self.value(values)
|
118 |
+
if isinstance(value, float):
|
119 |
+
setattr(skill, attr, getattr(skill, attr) / self.value(values))
|
120 |
+
else:
|
121 |
+
setattr(skill, attr, getattr(skill, attr) - self.value(values))
|
122 |
elif not snapshot and all(snapshot_attr not in attr for snapshot_attr in self.SNAPSHOT_ATTRS):
|
123 |
+
value = self.value(values)
|
124 |
+
if isinstance(value, float):
|
125 |
+
setattr(skill, attr, getattr(skill, attr) / self.value(values))
|
126 |
+
else:
|
127 |
+
setattr(skill, attr, getattr(skill, attr) - self.value(values))
|
base/constant.py
CHANGED
@@ -66,5 +66,9 @@ def WEAPON_DAMAGE_COF(cof):
|
|
66 |
return int(cof) / BINARY_SCALE
|
67 |
|
68 |
|
|
|
|
|
|
|
|
|
69 |
def SURPLUS_COF(cof):
|
70 |
-
return (
|
|
|
66 |
return int(cof) / BINARY_SCALE
|
67 |
|
68 |
|
69 |
+
def GLOBAL_DAMAGE_FACTOR(cof):
|
70 |
+
return ((int(cof) + int(cof < 0)) / BINARY_SCALE + BINARY_SCALE) / BINARY_SCALE
|
71 |
+
|
72 |
+
|
73 |
def SURPLUS_COF(cof):
|
74 |
+
return GLOBAL_DAMAGE_FACTOR(cof) * SURPLUS_SCALE
|
base/recipe.py
CHANGED
@@ -21,6 +21,16 @@ class IntervalRecipe(RecipeGain):
|
|
21 |
skills[skill_id].interval -= self.value
|
22 |
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
class DamageAdditionRecipe(RecipeGain):
|
25 |
def add_skills(self, skills: Dict[int, Skill]):
|
26 |
for skill_id in self.skill_ids:
|
@@ -55,6 +65,10 @@ def interval_recipe(skill_ids, value, name="减少运功时间"):
|
|
55 |
return IntervalRecipe(name, skill_ids, value)
|
56 |
|
57 |
|
|
|
|
|
|
|
|
|
58 |
def damage_addition_recipe(skill_ids, value, name="伤害增加"):
|
59 |
return DamageAdditionRecipe(name, skill_ids, value)
|
60 |
|
|
|
21 |
skills[skill_id].interval -= self.value
|
22 |
|
23 |
|
24 |
+
class AttackPowerRecipe(RecipeGain):
|
25 |
+
def add_skills(self, skills: Dict[int, Skill]):
|
26 |
+
for skill_id in self.skill_ids:
|
27 |
+
skills[skill_id].attack_power_cof_gain *= self.value
|
28 |
+
|
29 |
+
def sub_skills(self, skills: Dict[int, Skill]):
|
30 |
+
for skill_id in self.skill_ids:
|
31 |
+
skills[skill_id].attack_power_cof_gain /= self.value
|
32 |
+
|
33 |
+
|
34 |
class DamageAdditionRecipe(RecipeGain):
|
35 |
def add_skills(self, skills: Dict[int, Skill]):
|
36 |
for skill_id in self.skill_ids:
|
|
|
65 |
return IntervalRecipe(name, skill_ids, value)
|
66 |
|
67 |
|
68 |
+
def attack_power_recipe(skill_ids, value, name="系数增加"):
|
69 |
+
return AttackPowerRecipe(name, skill_ids, value)
|
70 |
+
|
71 |
+
|
72 |
def damage_addition_recipe(skill_ids, value, name="伤害增加"):
|
73 |
return DamageAdditionRecipe(name, skill_ids, value)
|
74 |
|
base/skill.py
CHANGED
@@ -35,6 +35,8 @@ class Skill:
|
|
35 |
surplus_cof_gain: float = 1.
|
36 |
weapon_damage_cof_gain: float = 1.
|
37 |
|
|
|
|
|
38 |
skill_damage_addition: int = 0
|
39 |
skill_pve_addition: int = 0
|
40 |
_skill_shield_gain: Union[List[int], int] = 0
|
@@ -151,7 +153,7 @@ class Skill:
|
|
151 |
self._weapon_damage_cof = weapon_damage_cof
|
152 |
else:
|
153 |
self._weapon_damage_cof = [weapon_damage_cof]
|
154 |
-
|
155 |
@property
|
156 |
def skill_shield_gain(self):
|
157 |
if not isinstance(self._skill_shield_gain, list):
|
@@ -237,6 +239,15 @@ class Damage(Skill):
|
|
237 |
return skill_tuple, status_tuple
|
238 |
|
239 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
class DotDamage(Damage):
|
241 |
def record(self, skill_level, critical, parser):
|
242 |
skill_tuple, status_tuple = super().record(skill_level, critical, parser)
|
@@ -269,7 +280,7 @@ class PhysicalSkill(Skill):
|
|
269 |
self.attack_power_cof, attribute.physical_attack_power,
|
270 |
self.weapon_damage_cof, attribute.weapon_damage,
|
271 |
self.surplus_cof, attribute.surplus
|
272 |
-
) * self.skill_stack
|
273 |
|
274 |
damage = damage_addition_result(damage, attribute.physical_damage_addition + self.skill_damage_addition)
|
275 |
damage = overcome_result(damage, attribute.physical_overcome,
|
@@ -303,7 +314,7 @@ class MagicalSkill(Skill):
|
|
303 |
self.attack_power_cof, attribute.magical_attack_power,
|
304 |
self.weapon_damage_cof, attribute.weapon_damage,
|
305 |
self.surplus_cof, attribute.surplus
|
306 |
-
) * self.skill_stack
|
307 |
|
308 |
damage = damage_addition_result(damage, attribute.magical_damage_addition + self.skill_damage_addition)
|
309 |
damage = overcome_result(damage, attribute.magical_overcome,
|
@@ -334,14 +345,14 @@ class MixingSkill(Skill):
|
|
334 |
def __call__(self, attribute: Attribute):
|
335 |
damage = init_result(
|
336 |
self.damage_base, self.damage_rand,
|
337 |
-
self.attack_power_cof, attribute.
|
338 |
self.weapon_damage_cof, attribute.weapon_damage,
|
339 |
self.surplus_cof, attribute.surplus
|
340 |
-
) * self.skill_stack
|
341 |
|
342 |
-
damage = damage_addition_result(damage, attribute.
|
343 |
-
damage = overcome_result(damage, attribute.
|
344 |
-
attribute.level_shield_base + attribute.
|
345 |
attribute.magical_shield_gain + self.skill_shield_gain,
|
346 |
attribute.magical_shield_ignore,
|
347 |
attribute.shield_constant)
|
@@ -364,10 +375,6 @@ class MixingSkill(Skill):
|
|
364 |
return damage, critical_damage, expected_damage, critical_strike
|
365 |
|
366 |
|
367 |
-
class PetDamage(Damage):
|
368 |
-
pass
|
369 |
-
|
370 |
-
|
371 |
class PureDamage(PureSkill, Damage):
|
372 |
pass
|
373 |
|
@@ -406,3 +413,15 @@ class MixingDotDamage(MixingSkill, DotDamage):
|
|
406 |
@Damage.attack_power_cof.getter
|
407 |
def attack_power_cof(self):
|
408 |
return MAGICAL_DOT_ATTACK_POWER_COF(super().attack_power_cof, self.interval)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
surplus_cof_gain: float = 1.
|
36 |
weapon_damage_cof_gain: float = 1.
|
37 |
|
38 |
+
global_damage_factor: float = 1.
|
39 |
+
|
40 |
skill_damage_addition: int = 0
|
41 |
skill_pve_addition: int = 0
|
42 |
_skill_shield_gain: Union[List[int], int] = 0
|
|
|
153 |
self._weapon_damage_cof = weapon_damage_cof
|
154 |
else:
|
155 |
self._weapon_damage_cof = [weapon_damage_cof]
|
156 |
+
|
157 |
@property
|
158 |
def skill_shield_gain(self):
|
159 |
if not isinstance(self._skill_shield_gain, list):
|
|
|
239 |
return skill_tuple, status_tuple
|
240 |
|
241 |
|
242 |
+
class PetDamage(Damage):
|
243 |
+
def record(self, skill_level, critical, parser):
|
244 |
+
skill_tuple, status_tuple = super().record(skill_level, critical, parser)
|
245 |
+
pet_status_tuple = parser.available_status(self.skill_id, parser.current_caster)
|
246 |
+
parser.current_records[skill_tuple][pet_status_tuple].append(
|
247 |
+
parser.current_records[skill_tuple][status_tuple].pop()
|
248 |
+
)
|
249 |
+
|
250 |
+
|
251 |
class DotDamage(Damage):
|
252 |
def record(self, skill_level, critical, parser):
|
253 |
skill_tuple, status_tuple = super().record(skill_level, critical, parser)
|
|
|
280 |
self.attack_power_cof, attribute.physical_attack_power,
|
281 |
self.weapon_damage_cof, attribute.weapon_damage,
|
282 |
self.surplus_cof, attribute.surplus
|
283 |
+
) * self.skill_stack * self.global_damage_factor * attribute.global_damage_factor
|
284 |
|
285 |
damage = damage_addition_result(damage, attribute.physical_damage_addition + self.skill_damage_addition)
|
286 |
damage = overcome_result(damage, attribute.physical_overcome,
|
|
|
314 |
self.attack_power_cof, attribute.magical_attack_power,
|
315 |
self.weapon_damage_cof, attribute.weapon_damage,
|
316 |
self.surplus_cof, attribute.surplus
|
317 |
+
) * self.skill_stack * self.global_damage_factor * attribute.global_damage_factor * attribute.global_damage_factor
|
318 |
|
319 |
damage = damage_addition_result(damage, attribute.magical_damage_addition + self.skill_damage_addition)
|
320 |
damage = overcome_result(damage, attribute.magical_overcome,
|
|
|
345 |
def __call__(self, attribute: Attribute):
|
346 |
damage = init_result(
|
347 |
self.damage_base, self.damage_rand,
|
348 |
+
self.attack_power_cof, attribute.attack_power,
|
349 |
self.weapon_damage_cof, attribute.weapon_damage,
|
350 |
self.surplus_cof, attribute.surplus
|
351 |
+
) * self.skill_stack * self.global_damage_factor * attribute.global_damage_factor
|
352 |
|
353 |
+
damage = damage_addition_result(damage, attribute.damage_addition + self.skill_damage_addition)
|
354 |
+
damage = overcome_result(damage, attribute.overcome,
|
355 |
+
attribute.level_shield_base + attribute.shield_base,
|
356 |
attribute.magical_shield_gain + self.skill_shield_gain,
|
357 |
attribute.magical_shield_ignore,
|
358 |
attribute.shield_constant)
|
|
|
375 |
return damage, critical_damage, expected_damage, critical_strike
|
376 |
|
377 |
|
|
|
|
|
|
|
|
|
378 |
class PureDamage(PureSkill, Damage):
|
379 |
pass
|
380 |
|
|
|
413 |
@Damage.attack_power_cof.getter
|
414 |
def attack_power_cof(self):
|
415 |
return MAGICAL_DOT_ATTACK_POWER_COF(super().attack_power_cof, self.interval)
|
416 |
+
|
417 |
+
|
418 |
+
class PhysicalPetDamage(PhysicalSkill, PetDamage):
|
419 |
+
@Damage.attack_power_cof.getter
|
420 |
+
def attack_power_cof(self):
|
421 |
+
return PHYSICAL_ATTACK_POWER_COF(super().attack_power_cof + self.interval)
|
422 |
+
|
423 |
+
|
424 |
+
class MagicalPetDamage(MagicalSkill, PetDamage):
|
425 |
+
@Damage.attack_power_cof.getter
|
426 |
+
def attack_power_cof(self):
|
427 |
+
return MAGICAL_ATTACK_POWER_COF(super().attack_power_cof + self.interval)
|
general/buffs.py
CHANGED
@@ -24,7 +24,7 @@ GENERAL_BUFFS = {
|
|
24 |
}
|
25 |
|
26 |
for buff_id, detail in GENERAL_BUFFS.items():
|
27 |
-
GENERAL_BUFFS[buff_id] = Buff(buff_id
|
28 |
GENERAL_BUFFS[buff_id].activate = False
|
29 |
for attr, value in detail.items():
|
30 |
setattr(GENERAL_BUFFS[buff_id], attr, value)
|
|
|
24 |
}
|
25 |
|
26 |
for buff_id, detail in GENERAL_BUFFS.items():
|
27 |
+
GENERAL_BUFFS[buff_id] = Buff(buff_id)
|
28 |
GENERAL_BUFFS[buff_id].activate = False
|
29 |
for attr, value in detail.items():
|
30 |
setattr(GENERAL_BUFFS[buff_id], attr, value)
|
general/gains/team.py
CHANGED
@@ -31,7 +31,7 @@ class 袖气(TeamGain):
|
|
31 |
|
32 |
|
33 |
class 左旋右转(TeamGain):
|
34 |
-
gain_attributes = {"
|
35 |
|
36 |
|
37 |
class 泠风解怀(TeamGain):
|
|
|
31 |
|
32 |
|
33 |
class 左旋右转(TeamGain):
|
34 |
+
gain_attributes = {"surplus_base": 54}
|
35 |
|
36 |
|
37 |
class 泠风解怀(TeamGain):
|
get_assets.py
CHANGED
@@ -26,12 +26,14 @@ ATTR_TYPE_MAP = {
|
|
26 |
"atMagicAttackPowerBase": "magical_attack_power_base",
|
27 |
"atSolarAttackPowerBase": "magical_attack_power_base",
|
28 |
"atLunarAttackPowerBase": "magical_attack_power_base",
|
|
|
29 |
"atSolarAndLunarAttackPowerBase": "magical_attack_power_base",
|
30 |
"atPoisonAttackPowerBase": "magical_attack_power_base",
|
31 |
"atPhysicsOvercomeBase": "physical_overcome_base",
|
32 |
"atMagicOvercome": "magical_overcome_base",
|
33 |
"atSolarOvercomeBase": "magical_overcome_base",
|
34 |
"atLunarOvercomeBase": "magical_overcome_base",
|
|
|
35 |
"atSolarAndLunarOvercomeBase": "magical_overcome_base",
|
36 |
"atPoisonOvercomeBase": "magical_overcome_base",
|
37 |
"atAllTypeCriticalStrike": "all_critical_strike_base",
|
@@ -39,6 +41,7 @@ ATTR_TYPE_MAP = {
|
|
39 |
"atMagicCriticalStrike": "magical_critical_strike_base",
|
40 |
"atSolarCriticalStrike": "magical_critical_strike_base",
|
41 |
"atLunarCriticalStrike": "magical_critical_strike_base",
|
|
|
42 |
"atSolarAndLunarCriticalStrike": "magical_critical_strike_base",
|
43 |
"atPoisonCriticalStrike": "magical_critical_strike_base",
|
44 |
"atAllTypeCriticalDamagePowerBase": "all_critical_power_base",
|
@@ -46,6 +49,7 @@ ATTR_TYPE_MAP = {
|
|
46 |
"atMagicCriticalDamagePowerBase": "magical_critical_power_base",
|
47 |
"atSolarCriticalDamagePowerBase": "magical_critical_power_base",
|
48 |
"atLunarCriticalDamagePowerBase": "magical_critical_power_base",
|
|
|
49 |
"atSolarAndLunarCriticalDamagePowerBase": "magical_critical_power_base",
|
50 |
"atPoisonCriticalDamagePowerBase": "magical_critical_power_base",
|
51 |
"atSurplusValueBase": "surplus_base",
|
|
|
26 |
"atMagicAttackPowerBase": "magical_attack_power_base",
|
27 |
"atSolarAttackPowerBase": "magical_attack_power_base",
|
28 |
"atLunarAttackPowerBase": "magical_attack_power_base",
|
29 |
+
"atNeutralAttackPowerBase": "magical_attack_power_base",
|
30 |
"atSolarAndLunarAttackPowerBase": "magical_attack_power_base",
|
31 |
"atPoisonAttackPowerBase": "magical_attack_power_base",
|
32 |
"atPhysicsOvercomeBase": "physical_overcome_base",
|
33 |
"atMagicOvercome": "magical_overcome_base",
|
34 |
"atSolarOvercomeBase": "magical_overcome_base",
|
35 |
"atLunarOvercomeBase": "magical_overcome_base",
|
36 |
+
"atNeutralOvercomeBase": "magical_overcome_base",
|
37 |
"atSolarAndLunarOvercomeBase": "magical_overcome_base",
|
38 |
"atPoisonOvercomeBase": "magical_overcome_base",
|
39 |
"atAllTypeCriticalStrike": "all_critical_strike_base",
|
|
|
41 |
"atMagicCriticalStrike": "magical_critical_strike_base",
|
42 |
"atSolarCriticalStrike": "magical_critical_strike_base",
|
43 |
"atLunarCriticalStrike": "magical_critical_strike_base",
|
44 |
+
"atNeutralCriticalStrike": "magical_critical_strike_base",
|
45 |
"atSolarAndLunarCriticalStrike": "magical_critical_strike_base",
|
46 |
"atPoisonCriticalStrike": "magical_critical_strike_base",
|
47 |
"atAllTypeCriticalDamagePowerBase": "all_critical_power_base",
|
|
|
49 |
"atMagicCriticalDamagePowerBase": "magical_critical_power_base",
|
50 |
"atSolarCriticalDamagePowerBase": "magical_critical_power_base",
|
51 |
"atLunarCriticalDamagePowerBase": "magical_critical_power_base",
|
52 |
+
"atNeutralCriticalDamagePowerBase": "magical_critical_power_base",
|
53 |
"atSolarAndLunarCriticalDamagePowerBase": "magical_critical_power_base",
|
54 |
"atPoisonCriticalDamagePowerBase": "magical_critical_power_base",
|
55 |
"atSurplusValueBase": "surplus_base",
|
parse_new_school.py
CHANGED
@@ -59,4 +59,4 @@ class Parser:
|
|
59 |
|
60 |
if __name__ == '__main__':
|
61 |
parser = Parser()
|
62 |
-
parser(r"
|
|
|
59 |
|
60 |
if __name__ == '__main__':
|
61 |
parser = Parser()
|
62 |
+
parser(r"hua_jian.jcl")
|
qt/assets/equipments/belt
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
qt/assets/equipments/hat
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
qt/assets/equipments/jacket
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
qt/assets/equipments/primary_weapon
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
qt/assets/equipments/ring
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"客行江湖·纵巧戒 (破防 无双) 15600": {"id": 39921, "school": "通用", "kind": "身法", "level": 15600, "max_strength": 6, "base": {}, "magic": {"agility_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·之远戒 (破防 无双) 15600": {"id": 39920, "school": "通用", "kind": "力道", "level": 15600, "max_strength": 6, "base": {}, "magic": {"strength_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·磐气戒 (破防 无双) 15600": {"id": 39919, "school": "通用", "kind": "元气", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spunk_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·风翎戒 (破防 无双) 15600": {"id": 39918, "school": "通用", "kind": "根骨", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spirit_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "似窈戒 (破防 破招) 15600": {"id": 39869, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1903, "surplus_base": 3188, "physical_overcome_base": 2885}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "卓然戒 (会心 无双) 15600": {"id": 39868, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1631, "physical_critical_strike_base": 1974, "strain_base": 4858}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "乃书戒 (破防 破招) 15600": {"id": 39867, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 2284, "surplus_base": 3188, "magical_overcome_base": 2885}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "广萤戒 (会心 无双) 15600": {"id": 39866, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1957, "all_critical_strike_base": 1974, "strain_base": 4858}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "赤树戒 (破防 无双) 15600": {"id": 39865, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1971, "physical_overcome_base": 3036, "strain_base": 3188}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "东倾戒 (破防 无双) 15600": {"id": 39864, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2365, "magical_overcome_base": 3036, "strain_base": 3188}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "望若戒 (会心 会效 破招) 15600": {"id": 39863, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1971, "surplus_base": 1670, "physical_critical_strike_base": 2885, "physical_critical_power_base": 1518}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "姑引戒 (破防 会心) 15600": {"id": 39862, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1971, "physical_critical_strike_base": 3112, "physical_overcome_base": 3112}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "勤俭戒 (无双) 15600": {"id": 39861, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 2311, "strain_base": 5390}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "庆本戒 (会心 会效 破招) 15600": {"id": 39860, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2365, "surplus_base": 1670, "all_critical_strike_base": 2885, "all_critical_power_base": 1518}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "耐歌戒 (破防 会心) 15600": {"id": 39859, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2365, "all_critical_strike_base": 3112, "magical_overcome_base": 3112}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "萌音戒 (无双) 15600": {"id": 39858, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2773, "strain_base": 5390}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "救困戒 (会心 无双) 15600": {"id": 39849, "school": "通用", "kind": "身法", "level": 15600, "max_strength": 6, "base": {}, "magic": {"agility_base": 545, "physical_attack_power_base": 884, "physical_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "磊落戒 (会心 无双) 15600": {"id": 39848, "school": "通用", "kind": "力道", "level": 15600, "max_strength": 6, "base": {}, "magic": {"strength_base": 545, "physical_attack_power_base": 884, "physical_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "良安戒 (会心 无双) 15600": {"id": 39847, "school": "通用", "kind": "元气", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spunk_base": 545, "magical_attack_power_base": 1060, "all_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "情义戒 (会心 无双) 15600": {"id": 39846, "school": "通用", "kind": "根骨", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spirit_base": 545, "magical_attack_power_base": 1060, "magical_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "照耀指环 (破防 破招) 15600": {"id": 39831, "school": "通用", "kind": "身法", "level": 15600, "max_strength": 6, "base": {}, "magic": {"agility_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "如雪指环 (破防 破招) 15600": {"id": 39830, "school": "通用", "kind": "力道", "level": 15600, "max_strength": 6, "base": {}, "magic": {"strength_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "宫阙指环 (破防 破招) 15600": {"id": 39829, "school": "通用", "kind": "元气", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spunk_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "绕城指环 (破防 破招) 15600": {"id": 39828, "school": "通用", "kind": "根骨", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spirit_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·徙 (破防 破招) 13950": {"id": 40869, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·兆 (破防 破招) 13950": {"id": 40868, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·誓 (破防 破招) 13950": {"id": 40867, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·赦 (破防 破招) 13950": {"id": 40866, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "叠武戒 (破防 破招) 13950": {"id": 39795, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "绘山戒 (破防 破招) 13950": {"id": 39794, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "归朔戒 (破防 破招) 13950": {"id": 39793, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "青乡戒 (破防 破招) 13950": {"id": 39792, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·霄月戒 (破防 无双) 13950": {"id": 38857, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·听钟戒 (破防 无双) 13950": {"id": 38856, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·断意戒 (破防 无双) 13950": {"id": 38855, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·意悠戒 (破防 无双) 13950": {"id": 38854, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "时岑戒 (破防 破招) 13950": {"id": 38805, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1702, "surplus_base": 2851, "physical_overcome_base": 2580}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "游练戒 (会心 无双) 13950": {"id": 38804, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1459, "physical_critical_strike_base": 1765, "strain_base": 4344}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "璨云戒 (破防 破招) 13950": {"id": 38803, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 2042, "surplus_base": 2851, "magical_overcome_base": 2580}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "丰冉戒 (会心 无双) 13950": {"id": 38802, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1750, "all_critical_strike_base": 1765, "strain_base": 4344}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "问年戒 (破防 无双) 13950": {"id": 38801, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1763, "physical_overcome_base": 2715, "strain_base": 2851}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "峻水戒 (破防 无双) 13950": {"id": 38800, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2115, "magical_overcome_base": 2715, "strain_base": 2851}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "光霆戒 (会心 会效 破招) 13950": {"id": 38799, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1763, "surplus_base": 1493, "physical_critical_strike_base": 2580, "physical_critical_power_base": 1358}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "兰珑戒 (破防 会心) 13950": {"id": 38798, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1763, "physical_critical_strike_base": 2783, "physical_overcome_base": 2783}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "时越戒 (无双) 13950": {"id": 38797, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 2066, "strain_base": 4820}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "希延戒 (会心 会效 破招) 13950": {"id": 38796, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2115, "surplus_base": 1493, "all_critical_strike_base": 2580, "all_critical_power_base": 1358}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "羽容戒 (破防 会心) 13950": {"id": 38795, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2115, "all_critical_strike_base": 2783, "magical_overcome_base": 2783}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "丹莲戒 (无双) 13950": {"id": 38794, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2480, "strain_base": 4820}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "踏雁戒 (会心 无双) 13950": {"id": 38785, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "素鸦戒 (会心 无双) 13950": {"id": 38784, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "壑云戒 (会心 无双) 13950": {"id": 38783, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "all_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "寒绡戒 (会心 无双) 13950": {"id": 38782, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "风掣指环 (破防 破招) 13950": {"id": 38767, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "凛行指环 (破防 破招) 13950": {"id": 38766, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "开颐指环 (破防 破招) 13950": {"id": 38765, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "扬英指环 (破防 破招) 13950": {"id": 38764, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨玉 (会心 无双) 13400": {"id": 39801, "school": "通用", "kind": "身法", "level": 13400, "max_strength": 6, "base": {}, "magic": {"agility_base": 468, "physical_attack_power_base": 759, "physical_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨石 (会心 无双) 13400": {"id": 39800, "school": "通用", "kind": "力道", "level": 13400, "max_strength": 6, "base": {}, "magic": {"strength_base": 468, "physical_attack_power_base": 759, "physical_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨环 (会心 无双) 13400": {"id": 39799, "school": "通用", "kind": "元气", "level": 13400, "max_strength": 6, "base": {}, "magic": {"spunk_base": 468, "magical_attack_power_base": 911, "all_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨戒 (会心 无双) 13400": {"id": 39798, "school": "通用", "kind": "根骨", "level": 13400, "max_strength": 6, "base": {}, "magic": {"spirit_base": 468, "magical_attack_power_base": 911, "magical_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖月戒 (会心 破招) 12450": {"id": 37824, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖静戒 (会心 破招) 12450": {"id": 37823, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖烟戒 (会心 破招) 12450": {"id": 37822, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "all_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖寂戒 (会心 破招) 12450": {"id": 37821, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·天配戒 (破防 无双) 12450": {"id": 37782, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·梦花戒 (破防 无双) 12450": {"id": 37781, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·千世戒 (破防 无双) 12450": {"id": 37780, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·渐浓戒 (破防 无双) 12450": {"id": 37779, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "催时戒 (破防 无双) 12450": {"id": 37730, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1519, "physical_overcome_base": 2302, "strain_base": 2545}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "解怜戒 (破防 无双) 12450": {"id": 37729, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1823, "magical_overcome_base": 2302, "strain_base": 2545}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "破朝戒 (会心 无双) 12450": {"id": 37728, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1302, "physical_critical_strike_base": 1575, "strain_base": 3877}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "赫风戒 (破防 破招) 12450": {"id": 37727, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1519, "surplus_base": 2545, "physical_overcome_base": 2302}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "问岐戒 (无双) 12450": {"id": 37726, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1844, "strain_base": 4059}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "帘絮戒 (会心 无双) 12450": {"id": 37725, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1562, "all_critical_strike_base": 1575, "strain_base": 3877}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "清斗戒 (破防 破招) 12450": {"id": 37724, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1823, "surplus_base": 2545, "magical_overcome_base": 2302}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "昭月戒 (无双) 12450": {"id": 37723, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 2213, "strain_base": 4059}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "染辞戒 (会心 无双) 12450": {"id": 37714, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "温刃戒 (会心 无双) 12450": {"id": 37713, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "沁渡戒 (会心 无双) 12450": {"id": 37712, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "all_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "朝华戒 (会心 无双) 12450": {"id": 37711, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "商野指环 (破防 破招) 12450": {"id": 37696, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "安衿指环 (破防 破招) 12450": {"id": 37695, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "椴微指环 (破防 破招) 12450": {"id": 37694, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "池泓指环 (破防 破招) 12450": {"id": 37693, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临仙戒 (会心 无双) 12400": {"id": 34202, "school": "通用", "kind": "身法", "level": 12400, "max_strength": 6, "base": {}, "magic": {"agility_base": 433, "physical_attack_power_base": 702, "physical_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临尚戒 (会心 无双) 12400": {"id": 34201, "school": "通用", "kind": "力道", "level": 12400, "max_strength": 6, "base": {}, "magic": {"strength_base": 433, "physical_attack_power_base": 702, "physical_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临曦戒 (会心 无双) 12400": {"id": 34200, "school": "通用", "kind": "元气", "level": 12400, "max_strength": 6, "base": {}, "magic": {"spunk_base": 433, "magical_attack_power_base": 843, "all_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临衣戒 (会心 无双) 12400": {"id": 34199, "school": "通用", "kind": "根骨", "level": 12400, "max_strength": 6, "base": {}, "magic": {"spirit_base": 433, "magical_attack_power_base": 843, "magical_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "梧风御厨戒指·刀功 (会心 无双) 12300": {"id": 39791, "school": "万灵", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "岚峰御厨戒指·刀功 (会心 无双) 12300": {"id": 39790, "school": "刀宗", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "迎新御厨戒指·火候 (会心 无双) 12300": {"id": 39788, "school": "药宗", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "沧波御厨戒指·刀功 (会心 无双) 12300": {"id": 39785, "school": "蓬莱", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "傲寒御厨戒指·刀功 (会心 无双) 12300": {"id": 39784, "school": "霸刀", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "蜀月御厨戒指·刀功 (会心 无双) 12300": {"id": 39775, "school": "唐门", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "蜀月御厨戒指·火候 (会心 无双) 12300": {"id": 39774, "school": "唐门", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "霓裳御厨戒指·火候 (会心 无双) 12300": {"id": 39770, "school": "七秀", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "灵虚御厨戒指·刀功 (会心 无双) 12300": {"id": 39769, "school": "纯阳", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "灵虚御厨戒指·火候 (会心 无双) 12300": {"id": 39768, "school": "纯阳", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "菩提御厨戒指·火候 (会心 无双) 12300": {"id": 39762, "school": "少林", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "久念戒 (破防 破招) 12300": {"id": 34274, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "拭江戒 (破防 破招) 12300": {"id": 34273, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "藏峦戒 (破防 破招) 12300": {"id": 34272, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "谨峰戒 (破防 破招) 12300": {"id": 34271, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "风岱戒 (会心 破招) 12300": {"id": 34256, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "项昌戒 (会心 破招) 12300": {"id": 34255, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "故芳戒 (会心 破招) 12300": {"id": 34254, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "all_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "剪桐戒 (会心 破招) 12300": {"id": 34253, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "北邱戒 (加速 破招) 12300": {"id": 34238, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "曲郦戒 (加速 破招) 12300": {"id": 34237, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "花霭戒 (加速 破招) 12300": {"id": 34236, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "途南戒 (加速 破招) 12300": {"id": 34235, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "渊忱戒 (破招 无双) 12300": {"id": 34220, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "羡双戒 (破招 无双) 12300": {"id": 34219, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "庭澜戒 (破招 无双) 12300": {"id": 34218, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "故云戒 (破招 无双) 12300": {"id": 34217, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆宁戒 (会心 破招) 12300": {"id": 34130, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆敬戒 (会心 破招) 12300": {"id": 34129, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆惜戒 (会心 破招) 12300": {"id": 34128, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "all_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆安戒 (会心 破招) 12300": {"id": 34127, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "盈绝戒 (加速 无双) 12300": {"id": 34112, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "垣翰戒 (加速 无双) 12300": {"id": 34111, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "语阔戒 (加速 无双) 12300": {"id": 34110, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "擒雨戒 (加速 无双) 12300": {"id": 34109, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "潋阳戒 (破防 破招) 12300": {"id": 34094, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "重关戒 (破防 破招) 12300": {"id": 34093, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "烟琐戒 (破防 破招) 12300": {"id": 34092, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "德襄戒 (破防 破招) 12300": {"id": 34091, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}}
|
|
|
1 |
+
{"客行江湖·纵巧戒 (破防 无双) 15600": {"id": 39921, "school": "通用", "kind": "身法", "level": 15600, "max_strength": 6, "base": {}, "magic": {"agility_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·之远戒 (破防 无双) 15600": {"id": 39920, "school": "通用", "kind": "力道", "level": 15600, "max_strength": 6, "base": {}, "magic": {"strength_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·磐气戒 (破防 无双) 15600": {"id": 39919, "school": "通用", "kind": "元气", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spunk_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·风翎戒 (破防 无双) 15600": {"id": 39918, "school": "通用", "kind": "根骨", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spirit_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "似窈戒 (破防 破招) 15600": {"id": 39869, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1903, "surplus_base": 3188, "physical_overcome_base": 2885}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "卓然戒 (会心 无双) 15600": {"id": 39868, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1631, "physical_critical_strike_base": 1974, "strain_base": 4858}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "乃书戒 (破防 破招) 15600": {"id": 39867, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 2284, "surplus_base": 3188, "magical_overcome_base": 2885}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "广萤戒 (会心 无双) 15600": {"id": 39866, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1957, "all_critical_strike_base": 1974, "strain_base": 4858}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "赤树戒 (破防 无双) 15600": {"id": 39865, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1971, "physical_overcome_base": 3036, "strain_base": 3188}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "东倾戒 (破防 无双) 15600": {"id": 39864, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2365, "magical_overcome_base": 3036, "strain_base": 3188}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "望若戒 (会心 会效 破招) 15600": {"id": 39863, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1971, "surplus_base": 1670, "physical_critical_strike_base": 2885, "physical_critical_power_base": 1518}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "姑引戒 (破防 会心) 15600": {"id": 39862, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1971, "physical_critical_strike_base": 3112, "physical_overcome_base": 3112}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "勤俭戒 (无双) 15600": {"id": 39861, "school": "精简", "kind": "外功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 2311, "strain_base": 5390}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "庆本戒 (会心 会效 破招) 15600": {"id": 39860, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2365, "surplus_base": 1670, "all_critical_strike_base": 2885, "all_critical_power_base": 1518}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "耐歌戒 (破防 会心) 15600": {"id": 39859, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2365, "all_critical_strike_base": 3112, "magical_overcome_base": 3112}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "萌音戒 (无双) 15600": {"id": 39858, "school": "精简", "kind": "内功", "level": 15600, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2773, "strain_base": 5390}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "救困戒 (会心 无双) 15600": {"id": 39849, "school": "通用", "kind": "身法", "level": 15600, "max_strength": 6, "base": {}, "magic": {"agility_base": 545, "physical_attack_power_base": 884, "physical_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "磊落戒 (会心 无双) 15600": {"id": 39848, "school": "通用", "kind": "力道", "level": 15600, "max_strength": 6, "base": {}, "magic": {"strength_base": 545, "physical_attack_power_base": 884, "physical_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "良安戒 (会心 无双) 15600": {"id": 39847, "school": "通用", "kind": "元气", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spunk_base": 545, "magical_attack_power_base": 1060, "all_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "情义戒 (会心 无双) 15600": {"id": 39846, "school": "通用", "kind": "根骨", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spirit_base": 545, "magical_attack_power_base": 1060, "magical_critical_strike_base": 2733, "strain_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "照耀指环 (破防 破招) 15600": {"id": 39831, "school": "通用", "kind": "身法", "level": 15600, "max_strength": 6, "base": {}, "magic": {"agility_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "如雪指环 (破防 破招) 15600": {"id": 39830, "school": "通用", "kind": "力道", "level": 15600, "max_strength": 6, "base": {}, "magic": {"strength_base": 545, "physical_attack_power_base": 884, "physical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "宫阙指环 (破防 破招) 15600": {"id": 39829, "school": "通用", "kind": "元气", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spunk_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "绕城指环 (破防 破招) 15600": {"id": 39828, "school": "通用", "kind": "根骨", "level": 15600, "max_strength": 6, "base": {}, "magic": {"spirit_base": 545, "magical_attack_power_base": 1060, "magical_overcome_base": 2733, "surplus_base": 2429}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·徙 (破防 破招) 13950": {"id": 40869, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·兆 (破防 破招) 13950": {"id": 40868, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·誓 (破防 破招) 13950": {"id": 40867, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "行雾中·赦 (破防 破招) 13950": {"id": 40866, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "叠武戒 (破防 破招) 13950": {"id": 39795, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "绘山戒 (破防 破招) 13950": {"id": 39794, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "归朔戒 (破防 破招) 13950": {"id": 39793, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "青乡戒 (破防 破招) 13950": {"id": 39792, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·霄月戒 (破防 无双) 13950": {"id": 38857, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·听钟戒 (破防 无双) 13950": {"id": 38856, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·断意戒 (破防 无双) 13950": {"id": 38855, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·意悠戒 (破防 无双) 13950": {"id": 38854, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "时岑戒 (破防 破招) 13950": {"id": 38805, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1702, "surplus_base": 2851, "physical_overcome_base": 2580}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "游练戒 (会心 无双) 13950": {"id": 38804, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1459, "physical_critical_strike_base": 1765, "strain_base": 4344}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "璨云戒 (破防 破招) 13950": {"id": 38803, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 2042, "surplus_base": 2851, "magical_overcome_base": 2580}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "丰冉戒 (会心 无双) 13950": {"id": 38802, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1750, "all_critical_strike_base": 1765, "strain_base": 4344}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "问年戒 (破防 无双) 13950": {"id": 38801, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1763, "physical_overcome_base": 2715, "strain_base": 2851}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "峻水戒 (破防 无双) 13950": {"id": 38800, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2115, "magical_overcome_base": 2715, "strain_base": 2851}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "光霆戒 (会心 会效 破招) 13950": {"id": 38799, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1763, "surplus_base": 1493, "physical_critical_strike_base": 2580, "physical_critical_power_base": 1358}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "兰珑戒 (破防 会心) 13950": {"id": 38798, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 1763, "physical_critical_strike_base": 2783, "physical_overcome_base": 2783}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "时越戒 (无双) 13950": {"id": 38797, "school": "精简", "kind": "外功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"physical_attack_power_base": 2066, "strain_base": 4820}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "希延戒 (会心 会效 破招) 13950": {"id": 38796, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2115, "surplus_base": 1493, "all_critical_strike_base": 2580, "all_critical_power_base": 1358}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "羽容戒 (破防 会心) 13950": {"id": 38795, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2115, "all_critical_strike_base": 2783, "magical_overcome_base": 2783}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "丹莲戒 (无双) 13950": {"id": 38794, "school": "精简", "kind": "内功", "level": 13950, "max_strength": 3, "base": {}, "magic": {"magical_attack_power_base": 2480, "strain_base": 4820}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "踏雁戒 (会心 无双) 13950": {"id": 38785, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "素鸦戒 (会心 无双) 13950": {"id": 38784, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "壑云戒 (会心 无双) 13950": {"id": 38783, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "all_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "寒绡戒 (会心 无双) 13950": {"id": 38782, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_critical_strike_base": 2444, "strain_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "风掣指环 (破防 破招) 13950": {"id": 38767, "school": "通用", "kind": "身法", "level": 13950, "max_strength": 6, "base": {}, "magic": {"agility_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "凛行指环 (破防 破招) 13950": {"id": 38766, "school": "通用", "kind": "力道", "level": 13950, "max_strength": 6, "base": {}, "magic": {"strength_base": 487, "physical_attack_power_base": 790, "physical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "开颐指环 (破防 破招) 13950": {"id": 38765, "school": "通用", "kind": "元气", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spunk_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "扬英指环 (破防 破招) 13950": {"id": 38764, "school": "通用", "kind": "根骨", "level": 13950, "max_strength": 6, "base": {}, "magic": {"spirit_base": 487, "magical_attack_power_base": 948, "magical_overcome_base": 2444, "surplus_base": 2172}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨玉 (会心 无双) 13400": {"id": 39801, "school": "通用", "kind": "身法", "level": 13400, "max_strength": 6, "base": {}, "magic": {"agility_base": 468, "physical_attack_power_base": 759, "physical_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨石 (会心 无双) 13400": {"id": 39800, "school": "通用", "kind": "力道", "level": 13400, "max_strength": 6, "base": {}, "magic": {"strength_base": 468, "physical_attack_power_base": 759, "physical_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨环 (会心 无双) 13400": {"id": 39799, "school": "通用", "kind": "元气", "level": 13400, "max_strength": 6, "base": {}, "magic": {"spunk_base": 468, "magical_attack_power_base": 911, "all_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "暮雨戒 (会心 无双) 13400": {"id": 39798, "school": "通用", "kind": "根骨", "level": 13400, "max_strength": 6, "base": {}, "magic": {"spirit_base": 468, "magical_attack_power_base": 911, "magical_critical_strike_base": 2347, "strain_base": 2087}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖月戒 (会心 破招) 12450": {"id": 37824, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖静戒 (会心 破招) 12450": {"id": 37823, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖烟戒 (会心 ��招) 12450": {"id": 37822, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "all_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "湖寂戒 (会心 破招) 12450": {"id": 37821, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_critical_strike_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·天配戒 (破防 无双) 12450": {"id": 37782, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·梦花戒 (破防 无双) 12450": {"id": 37781, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·千世戒 (破防 无双) 12450": {"id": 37780, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "客行江湖·渐浓戒 (破防 无双) 12450": {"id": 37779, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "催时戒 (破防 无双) 12450": {"id": 37730, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1519, "physical_overcome_base": 2302, "strain_base": 2545}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "解怜戒 (破防 无双) 12450": {"id": 37729, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1823, "magical_overcome_base": 2302, "strain_base": 2545}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "破朝戒 (会心 无双) 12450": {"id": 37728, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1302, "physical_critical_strike_base": 1575, "strain_base": 3877}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "赫风戒 (破防 破招) 12450": {"id": 37727, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1519, "surplus_base": 2545, "physical_overcome_base": 2302}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "问岐戒 (无双) 12450": {"id": 37726, "school": "精简", "kind": "外功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"physical_attack_power_base": 1844, "strain_base": 4059}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "帘絮戒 (会心 无双) 12450": {"id": 37725, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1562, "all_critical_strike_base": 1575, "strain_base": 3877}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "清斗戒 (破防 破招) 12450": {"id": 37724, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 1823, "surplus_base": 2545, "magical_overcome_base": 2302}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "昭月戒 (无双) 12450": {"id": 37723, "school": "精简", "kind": "内功", "level": 12450, "max_strength": 4, "base": {}, "magic": {"magical_attack_power_base": 2213, "strain_base": 4059}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "染辞戒 (会心 无双) 12450": {"id": 37714, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "温刃戒 (会心 无双) 12450": {"id": 37713, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "沁渡戒 (会心 无双) 12450": {"id": 37712, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "all_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "朝华戒 (会心 无双) 12450": {"id": 37711, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_critical_strike_base": 2181, "strain_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "商野指环 (破防 破招) 12450": {"id": 37696, "school": "通用", "kind": "身法", "level": 12450, "max_strength": 6, "base": {}, "magic": {"agility_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "安衿指环 (破防 破招) 12450": {"id": 37695, "school": "通用", "kind": "力道", "level": 12450, "max_strength": 6, "base": {}, "magic": {"strength_base": 435, "physical_attack_power_base": 705, "physical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "椴微指环 (破防 破招) 12450": {"id": 37694, "school": "通用", "kind": "元气", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spunk_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "池泓指环 (破防 破招) 12450": {"id": 37693, "school": "通用", "kind": "根骨", "level": 12450, "max_strength": 6, "base": {}, "magic": {"spirit_base": 435, "magical_attack_power_base": 846, "magical_overcome_base": 2181, "surplus_base": 1939}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临仙戒 (会心 无双) 12400": {"id": 34202, "school": "通用", "kind": "身法", "level": 12400, "max_strength": 6, "base": {}, "magic": {"agility_base": 433, "physical_attack_power_base": 702, "physical_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临尚戒 (会心 无双) 12400": {"id": 34201, "school": "通用", "kind": "力道", "level": 12400, "max_strength": 6, "base": {}, "magic": {"strength_base": 433, "physical_attack_power_base": 702, "physical_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临曦戒 (会心 无双) 12400": {"id": 34200, "school": "通用", "kind": "元气", "level": 12400, "max_strength": 6, "base": {}, "magic": {"spunk_base": 433, "magical_attack_power_base": 843, "all_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "临衣戒 (会心 无双) 12400": {"id": 34199, "school": "通用", "kind": "根骨", "level": 12400, "max_strength": 6, "base": {}, "magic": {"spirit_base": 433, "magical_attack_power_base": 843, "magical_critical_strike_base": 2172, "strain_base": 1931}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "梧风御厨戒指·刀功 (会心 无双) 12300": {"id": 39791, "school": "万灵", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "岚峰御厨戒指·刀功 (会心 无双) 12300": {"id": 39790, "school": "刀宗", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "迎新御厨戒指·火候 (会心 无双) 12300": {"id": 39788, "school": "药宗", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "沧波御厨戒指·刀功 (会心 无双) 12300": {"id": 39785, "school": "蓬莱", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "傲寒御厨戒指·刀功 (会心 无双) 12300": {"id": 39784, "school": "霸刀", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "古意御厨戒指·火候 (会心 无双) 12300": {"id": 39782, "school": "长歌", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "蜀月御厨戒指·刀功 (会心 无双) 12300": {"id": 39775, "school": "唐门", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "蜀月御厨戒指·火候 (会心 无双) 12300": {"id": 39774, "school": "唐门", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "霓裳御厨戒指·火候 (会心 无双) 12300": {"id": 39770, "school": "七秀", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "灵虚御厨戒指·刀功 (会心 无双) 12300": {"id": 39769, "school": "纯阳", "kind": "外功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "灵虚御厨戒指·火候 (会心 无双) 12300": {"id": 39768, "school": "纯阳", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "翡翠御厨戒指·火候 (会心 无双) 12300": {"id": 39764, "school": "万花", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "菩提御厨戒指·火候 (会心 无双) 12300": {"id": 39762, "school": "少林", "kind": "内功", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": "125741", "set_attr": {"2": {"all_major_base": 305}}, "set_gain": {}}, "久念戒 (破防 破招) 12300": {"id": 34274, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "拭江戒 (破防 破招) 12300": {"id": 34273, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "藏峦戒 (破防 破招) 12300": {"id": 34272, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "谨峰戒 (破防 破招) 12300": {"id": 34271, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "风岱戒 (会心 破招) 12300": {"id": 34256, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "项昌戒 (会心 破招) 12300": {"id": 34255, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "故芳戒 (会心 破招) 12300": {"id": 34254, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "all_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "剪桐戒 (会心 破招) 12300": {"id": 34253, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "北邱戒 (加速 破招) 12300": {"id": 34238, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "曲郦戒 (加速 破招) 12300": {"id": 34237, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "花霭戒 (加速 破招) 12300": {"id": 34236, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "途南戒 (加速 破招) 12300": {"id": 34235, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "渊忱戒 (破招 无双) 12300": {"id": 34220, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "羡双戒 (破招 无双) 12300": {"id": 34219, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "庭澜戒 (破招 无双) 12300": {"id": 34218, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "故云戒 (破招 无双) 12300": {"id": 34217, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "surplus_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆宁戒 (会心 破招) 12300": {"id": 34130, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆敬戒 (会心 破招) 12300": {"id": 34129, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆惜戒 (会心 破招) 12300": {"id": 34128, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "all_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "忆安戒 (会心 破招) 12300": {"id": 34127, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_critical_strike_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "盈绝戒 (加速 无双) 12300": {"id": 34112, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "垣翰戒 (加速 无双) 12300": {"id": 34111, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "语阔戒 (加速 无双) 12300": {"id": 34110, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "擒雨戒 (加速 无双) 12300": {"id": 34109, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "haste_base": 2155, "strain_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "潋阳戒 (破防 破招) 12300": {"id": 34094, "school": "通用", "kind": "身法", "level": 12300, "max_strength": 6, "base": {}, "magic": {"agility_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "重关戒 (破防 破招) 12300": {"id": 34093, "school": "通用", "kind": "力道", "level": 12300, "max_strength": 6, "base": {}, "magic": {"strength_base": 429, "physical_attack_power_base": 697, "physical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "烟琐戒 (破防 破招) 12300": {"id": 34092, "school": "通用", "kind": "元气", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spunk_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}, "德襄戒 (破防 破招) 12300": {"id": 34091, "school": "通用", "kind": "根骨", "level": 12300, "max_strength": 6, "base": {}, "magic": {"spirit_base": 429, "magical_attack_power_base": 836, "magical_overcome_base": 2155, "surplus_base": 1915}, "embed": {}, "gains": [], "special_enchant": [], "set_id": null, "set_attr": {}, "set_gain": {}}}
|
qt/assets/equipments/shoes
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
qt/assets/equipments/wrist
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
qt/components/bonuses.py
CHANGED
@@ -181,11 +181,9 @@ class TeamGainsWidget(QWidget):
|
|
181 |
tab_layout.addWidget(self.team_gains["庄周梦"]["stack"], 0, 0)
|
182 |
tab_layout.addWidget(self.team_gains["庄周梦"]["rate"], 0, 1)
|
183 |
self.team_gains["弄梅"] = {
|
184 |
-
"stack": SpinWithLabel("弄梅", "层数", maximum=TEAM_GAIN_LIMIT["庄周梦"]["stack"]),
|
185 |
"rate": SpinWithLabel("弄梅", "覆盖(%)", maximum=100)
|
186 |
}
|
187 |
-
tab_layout.addWidget(self.team_gains["弄梅"]["
|
188 |
-
tab_layout.addWidget(self.team_gains["弄梅"]["rate"], 1, 1)
|
189 |
|
190 |
tab = QWidget()
|
191 |
tab_layout = QGridLayout(tab)
|
|
|
181 |
tab_layout.addWidget(self.team_gains["庄周梦"]["stack"], 0, 0)
|
182 |
tab_layout.addWidget(self.team_gains["庄周梦"]["rate"], 0, 1)
|
183 |
self.team_gains["弄梅"] = {
|
|
|
184 |
"rate": SpinWithLabel("弄梅", "覆盖(%)", maximum=100)
|
185 |
}
|
186 |
+
tab_layout.addWidget(self.team_gains["弄梅"]["rate"], 1, 0)
|
|
|
187 |
|
188 |
tab = QWidget()
|
189 |
tab_layout = QGridLayout(tab)
|
schools/__init__.py
CHANGED
@@ -8,8 +8,8 @@ from base.skill import Skill
|
|
8 |
|
9 |
from schools import bei_ao_jue, gu_feng_jue
|
10 |
from schools import shan_hai_xin_jue, ling_hai_jue, tai_xu_jian_yi
|
11 |
-
from schools import yi_jin_jing, tian_luo_gui_dao
|
12 |
-
from schools import wu_fang, bing_xin_jue
|
13 |
|
14 |
|
15 |
@dataclass
|
@@ -108,6 +108,14 @@ SUPPORT_SCHOOL = {
|
|
108 |
recipe_gains=tai_xu_jian_yi.RECIPE_GAINS, recipes=tai_xu_jian_yi.RECIPES,
|
109 |
gains=tai_xu_jian_yi.GAINS, display_attrs={"agility": "身法", **PHYSICAL_DISPLAY_ATTRS}
|
110 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
10081: School(
|
112 |
school="七秀", major="根骨", kind="内功", attribute=bing_xin_jue.BingXinJue, formation="九音惊弦阵",
|
113 |
skills=bing_xin_jue.SKILLS, buffs=bing_xin_jue.BUFFS, prepare=bing_xin_jue.prepare,
|
@@ -124,6 +132,14 @@ SUPPORT_SCHOOL = {
|
|
124 |
recipe_gains=tian_luo_gui_dao.RECIPE_GAINS, recipes=tian_luo_gui_dao.RECIPES,
|
125 |
gains=tian_luo_gui_dao.GAINS, display_attrs={"spunk": "元气", **MIXING_DISPLAY_ATTRS}
|
126 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
10464: School(
|
128 |
school="霸刀", major="力道", kind="外功", attribute=bei_ao_jue.BeiAoJue, formation="霜岚洗锋阵",
|
129 |
skills=bei_ao_jue.SKILLS, buffs=bei_ao_jue.BUFFS, prepare=bei_ao_jue.prepare,
|
|
|
8 |
|
9 |
from schools import bei_ao_jue, gu_feng_jue
|
10 |
from schools import shan_hai_xin_jue, ling_hai_jue, tai_xu_jian_yi
|
11 |
+
from schools import yi_jin_jing, tian_luo_gui_dao, hua_jian_you
|
12 |
+
from schools import wu_fang, bing_xin_jue, mo_wen
|
13 |
|
14 |
|
15 |
@dataclass
|
|
|
108 |
recipe_gains=tai_xu_jian_yi.RECIPE_GAINS, recipes=tai_xu_jian_yi.RECIPES,
|
109 |
gains=tai_xu_jian_yi.GAINS, display_attrs={"agility": "身法", **PHYSICAL_DISPLAY_ATTRS}
|
110 |
),
|
111 |
+
10021: School(
|
112 |
+
school="万花", major="元气", kind="内功", attribute=hua_jian_you.HuaJianYou, formation="七绝逍遥阵",
|
113 |
+
skills=hua_jian_you.SKILLS, buffs=hua_jian_you.BUFFS, prepare=hua_jian_you.prepare,
|
114 |
+
talent_gains=hua_jian_you.TALENT_GAINS, talents=hua_jian_you.TALENTS,
|
115 |
+
talent_decoder=hua_jian_you.TALENT_DECODER, talent_encoder=hua_jian_you.TALENT_ENCODER,
|
116 |
+
recipe_gains=hua_jian_you.RECIPE_GAINS, recipes=hua_jian_you.RECIPES,
|
117 |
+
gains=hua_jian_you.GAINS, display_attrs={"spunk": "元气", **MAGICAL_DISPLAY_ATTRS}
|
118 |
+
),
|
119 |
10081: School(
|
120 |
school="七秀", major="根骨", kind="内功", attribute=bing_xin_jue.BingXinJue, formation="九音惊弦阵",
|
121 |
skills=bing_xin_jue.SKILLS, buffs=bing_xin_jue.BUFFS, prepare=bing_xin_jue.prepare,
|
|
|
132 |
recipe_gains=tian_luo_gui_dao.RECIPE_GAINS, recipes=tian_luo_gui_dao.RECIPES,
|
133 |
gains=tian_luo_gui_dao.GAINS, display_attrs={"spunk": "元气", **MIXING_DISPLAY_ATTRS}
|
134 |
),
|
135 |
+
10447: School(
|
136 |
+
school="长歌", major="根骨", kind="内功", attribute=mo_wen.MoWen, formation="万籁金弦阵",
|
137 |
+
skills=mo_wen.SKILLS, buffs=mo_wen.BUFFS, prepare=mo_wen.prepare,
|
138 |
+
talent_gains=mo_wen.TALENT_GAINS, talents=mo_wen.TALENTS,
|
139 |
+
talent_decoder=mo_wen.TALENT_DECODER, talent_encoder=mo_wen.TALENT_ENCODER,
|
140 |
+
recipe_gains=mo_wen.RECIPE_GAINS, recipes=mo_wen.RECIPES,
|
141 |
+
gains=mo_wen.GAINS, display_attrs={"spirit": "根骨", **MAGICAL_DISPLAY_ATTRS}
|
142 |
+
),
|
143 |
10464: School(
|
144 |
school="霸刀", major="力道", kind="外功", attribute=bei_ao_jue.BeiAoJue, formation="霜岚洗锋阵",
|
145 |
skills=bei_ao_jue.SKILLS, buffs=bei_ao_jue.BUFFS, prepare=bei_ao_jue.prepare,
|
schools/bei_ao_jue/buffs.py
CHANGED
@@ -36,7 +36,7 @@ BUFFS = {
|
|
36 |
}
|
37 |
|
38 |
for buff_id, detail in BUFFS.items():
|
39 |
-
BUFFS[buff_id] = Buff(buff_id
|
40 |
for attr, value in detail.items():
|
41 |
setattr(BUFFS[buff_id], attr, value)
|
42 |
|
|
|
36 |
}
|
37 |
|
38 |
for buff_id, detail in BUFFS.items():
|
39 |
+
BUFFS[buff_id] = Buff(buff_id)
|
40 |
for attr, value in detail.items():
|
41 |
setattr(BUFFS[buff_id], attr, value)
|
42 |
|
schools/bing_xin_jue/buffs.py
CHANGED
@@ -64,7 +64,7 @@ BUFFS = {
|
|
64 |
}
|
65 |
|
66 |
for buff_id, detail in BUFFS.items():
|
67 |
-
BUFFS[buff_id] = Buff(buff_id
|
68 |
for attr, value in detail.items():
|
69 |
setattr(BUFFS[buff_id], attr, value)
|
70 |
|
|
|
64 |
}
|
65 |
|
66 |
for buff_id, detail in BUFFS.items():
|
67 |
+
BUFFS[buff_id] = Buff(buff_id)
|
68 |
for attr, value in detail.items():
|
69 |
setattr(BUFFS[buff_id], attr, value)
|
70 |
|
schools/gu_feng_jue/buffs.py
CHANGED
@@ -2,6 +2,11 @@ from base.buff import Buff
|
|
2 |
from general.buffs import GENERAL_BUFFS
|
3 |
|
4 |
|
|
|
|
|
|
|
|
|
|
|
5 |
BUFFS = {
|
6 |
11378: {
|
7 |
"buff_name": "朔气",
|
@@ -54,7 +59,7 @@ BUFFS = {
|
|
54 |
}
|
55 |
|
56 |
for buff_id, detail in BUFFS.items():
|
57 |
-
BUFFS[buff_id] = Buff(buff_id
|
58 |
for attr, value in detail.items():
|
59 |
setattr(BUFFS[buff_id], attr, value)
|
60 |
|
|
|
2 |
from general.buffs import GENERAL_BUFFS
|
3 |
|
4 |
|
5 |
+
class 涤瑕(Buff):
|
6 |
+
def value(self, values):
|
7 |
+
return 1 + values * self.buff_stack
|
8 |
+
|
9 |
+
|
10 |
BUFFS = {
|
11 |
11378: {
|
12 |
"buff_name": "朔气",
|
|
|
59 |
}
|
60 |
|
61 |
for buff_id, detail in BUFFS.items():
|
62 |
+
BUFFS[buff_id] = Buff(buff_id)
|
63 |
for attr, value in detail.items():
|
64 |
setattr(BUFFS[buff_id], attr, value)
|
65 |
|
schools/hua_jian_you/__init__.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from schools.hua_jian_you.skills import SKILLS
|
2 |
+
from schools.hua_jian_you.buffs import BUFFS
|
3 |
+
from schools.hua_jian_you.talents import TALENT_GAINS, TALENTS, TALENT_DECODER, TALENT_ENCODER
|
4 |
+
from schools.hua_jian_you.recipes import RECIPE_GAINS, RECIPES
|
5 |
+
from schools.hua_jian_you.gains import GAINS
|
6 |
+
from schools.hua_jian_you.attribute import HuaJianYou
|
7 |
+
|
8 |
+
|
9 |
+
def prepare(self, player_id):
|
10 |
+
pass
|
schools/hua_jian_you/attribute.py
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from base.attribute import MagicalAttribute
|
2 |
+
from base.constant import *
|
3 |
+
|
4 |
+
|
5 |
+
class HuaJianYou(MagicalAttribute):
|
6 |
+
SPUNK_TO_ATTACK_POWER = 1997 / BINARY_SCALE
|
7 |
+
SPUNK_TO_OVERCOME = 195 / BINARY_SCALE
|
8 |
+
|
9 |
+
def __init__(self):
|
10 |
+
super().__init__()
|
11 |
+
self.magical_attack_power_base += 4139
|
12 |
+
self.pve_addition += 102
|
13 |
+
|
14 |
+
@property
|
15 |
+
def extra_magical_attack_power(self):
|
16 |
+
return int(self.spunk * self.SPUNK_TO_ATTACK_POWER)
|
17 |
+
|
18 |
+
@property
|
19 |
+
def extra_magical_overcome(self):
|
20 |
+
return int(self.spunk * self.SPUNK_TO_OVERCOME)
|
schools/hua_jian_you/buffs.py
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from base.buff import Buff
|
2 |
+
from general.buffs import GENERAL_BUFFS
|
3 |
+
|
4 |
+
BUFFS = {
|
5 |
+
1440: {
|
6 |
+
"buff_name": "怒叱",
|
7 |
+
"activate": False,
|
8 |
+
"gain_attributes": {
|
9 |
+
"magical_critical_strike_gain": 400,
|
10 |
+
"magical_critical_power_gain": 41
|
11 |
+
}
|
12 |
+
},
|
13 |
+
1487: {
|
14 |
+
"buff_name": "布散",
|
15 |
+
"gain_attributes": {
|
16 |
+
"magical_attack_power_gain": 307,
|
17 |
+
}
|
18 |
+
},
|
19 |
+
14636: {
|
20 |
+
"buff_name": "乱洒",
|
21 |
+
"gain_skills": {
|
22 |
+
182: {
|
23 |
+
"skill_damage_addition": 307,
|
24 |
+
}
|
25 |
+
}
|
26 |
+
},
|
27 |
+
11809: {
|
28 |
+
"buff_name": "倚天",
|
29 |
+
"gain_attributes": {
|
30 |
+
"all_shield_ignore": 102
|
31 |
+
}
|
32 |
+
},
|
33 |
+
12588: {
|
34 |
+
"buff_name": "清流",
|
35 |
+
"gain_attributes": {
|
36 |
+
"all_damage_addition": 102
|
37 |
+
}
|
38 |
+
},
|
39 |
+
24599: {
|
40 |
+
"buff_name": "雪中行",
|
41 |
+
"stackable": False,
|
42 |
+
"gain_attributes": {
|
43 |
+
"magical_attack_power_gain": [102, 204, 306],
|
44 |
+
"magical_critical_strike_gain": [600, 1200, 1800]
|
45 |
+
},
|
46 |
+
"gain_skills": {
|
47 |
+
skill_id: {
|
48 |
+
"skill_damage_addition": [174, 348, 420]
|
49 |
+
} for skill_id in (33222,)
|
50 |
+
}
|
51 |
+
},
|
52 |
+
28116: {
|
53 |
+
"buff_name": "钟灵",
|
54 |
+
"gain_attributes": {
|
55 |
+
"magical_attack_power_gain": 102,
|
56 |
+
"surplus_gain": 102
|
57 |
+
}
|
58 |
+
},
|
59 |
+
-32489: {
|
60 |
+
"buff_name": "青冠",
|
61 |
+
"activate": False,
|
62 |
+
"gain_attributes": {
|
63 |
+
"global_damage_factor": [0.25, 1.]
|
64 |
+
}
|
65 |
+
},
|
66 |
+
9722: {
|
67 |
+
"buff_name": "涓流",
|
68 |
+
"gain_attributes": {
|
69 |
+
"magical_critical_strike_gain": 160,
|
70 |
+
"magical_critical_power_gain": 16
|
71 |
+
}
|
72 |
+
},
|
73 |
+
}
|
74 |
+
|
75 |
+
for buff_id, detail in BUFFS.items():
|
76 |
+
BUFFS[buff_id] = Buff(buff_id)
|
77 |
+
for attr, value in detail.items():
|
78 |
+
setattr(BUFFS[buff_id], attr, value)
|
79 |
+
|
80 |
+
for buff_id, buff in GENERAL_BUFFS.items():
|
81 |
+
BUFFS[buff_id] = buff
|
schools/hua_jian_you/gains.py
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from base.recipe import attack_power_recipe, damage_addition_recipe, critical_strike_recipe
|
2 |
+
from general.gains.equipment import EQUIPMENT_GAINS, CriticalSet
|
3 |
+
from base.gain import Gain
|
4 |
+
|
5 |
+
GAINS = {
|
6 |
+
1912: CriticalSet(1440),
|
7 |
+
817: attack_power_recipe([714], 1.15),
|
8 |
+
1546: damage_addition_recipe([33222], 102),
|
9 |
+
1516: damage_addition_recipe([14941], 51),
|
10 |
+
1517: damage_addition_recipe([33222], 51),
|
11 |
+
1131: critical_strike_recipe([14941], 500),
|
12 |
+
1979: critical_strike_recipe([33222], 500),
|
13 |
+
2417: Gain(),
|
14 |
+
1929: Gain(),
|
15 |
+
17399: Gain(),
|
16 |
+
17400: Gain(),
|
17 |
+
**EQUIPMENT_GAINS,
|
18 |
+
}
|
schools/hua_jian_you/recipes.py
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict, List
|
2 |
+
|
3 |
+
from base.gain import Gain
|
4 |
+
from base.recipe import damage_addition_recipe, critical_strike_recipe
|
5 |
+
|
6 |
+
RECIPE_GAINS: Dict[str, Dict[str, Gain]] = {
|
7 |
+
"阳明指": {
|
8 |
+
"4%伤害": damage_addition_recipe([14941], 41),
|
9 |
+
"3%伤害": damage_addition_recipe([14941], 31),
|
10 |
+
"3%会心": critical_strike_recipe([14941], 300),
|
11 |
+
"2%会心": critical_strike_recipe([14941], 200),
|
12 |
+
},
|
13 |
+
"芙蓉并蒂": {
|
14 |
+
"5%伤害": damage_addition_recipe([186], 51),
|
15 |
+
"4%伤害": damage_addition_recipe([186], 41),
|
16 |
+
"3%伤害": damage_addition_recipe([186], 31),
|
17 |
+
"4%会心": critical_strike_recipe([186], 400),
|
18 |
+
"3%会心": critical_strike_recipe([186], 300),
|
19 |
+
"2%会心": critical_strike_recipe([186], 200),
|
20 |
+
},
|
21 |
+
"快雪时晴": {
|
22 |
+
"5%伤害": damage_addition_recipe([33222], 51),
|
23 |
+
"4%伤害": damage_addition_recipe([33222], 41),
|
24 |
+
"3%伤害": damage_addition_recipe([33222], 31)
|
25 |
+
},
|
26 |
+
}
|
27 |
+
|
28 |
+
RECIPES: Dict[str, List[str]] = {
|
29 |
+
"普渡四方": ["5%伤害", "4%伤害", "3%伤害"],
|
30 |
+
"横扫六合": ["50%伤害"],
|
31 |
+
"韦陀献杵": ["5%伤害", "4%伤害", "4%会心", "3%伤害", "3%会心", "2%会心"],
|
32 |
+
"捕风式": ["15%伤害", "10%伤害", "10%伤害"],
|
33 |
+
"守缺式": ["5%伤害", "4%伤害", "4%会心", "3%伤害", "3%会心", "2%会心"],
|
34 |
+
"拿云式": ["5%伤害", "4%伤害", "3%伤害"],
|
35 |
+
}
|
schools/hua_jian_you/skills.py
ADDED
@@ -0,0 +1,243 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict
|
2 |
+
|
3 |
+
from base.skill import Skill, DotSkill, PhysicalDamage, MagicalDamage, MagicalDotDamage
|
4 |
+
from general.skills import GENERAL_SKILLS
|
5 |
+
|
6 |
+
|
7 |
+
class DotConsumeSkill(Skill):
|
8 |
+
buff_levels: dict
|
9 |
+
|
10 |
+
def record(self, skill_level, critical, parser):
|
11 |
+
if not (last_dot := parser.current_last_dot.pop(self.bind_skill, None)):
|
12 |
+
return
|
13 |
+
if skill_level not in self.buff_levels:
|
14 |
+
return
|
15 |
+
|
16 |
+
skill_tuple, status_tuple = last_dot
|
17 |
+
if buff_level := self.buff_levels[skill_level]:
|
18 |
+
new_status_tuple = (*status_tuple, (-32489, buff_level, 1))
|
19 |
+
else:
|
20 |
+
new_status_tuple = status_tuple
|
21 |
+
skill_id, skill_level, skill_stack = skill_tuple
|
22 |
+
parser.current_ticks[skill_id] += 1
|
23 |
+
tick = min(parser.current_ticks[skill_id], self.tick)
|
24 |
+
parser.current_records[(skill_id, skill_level, skill_stack * tick)][new_status_tuple].append(
|
25 |
+
parser.current_records[skill_tuple][status_tuple].pop()
|
26 |
+
)
|
27 |
+
parser.current_ticks[skill_id] -= tick
|
28 |
+
|
29 |
+
|
30 |
+
class GeneraConsumeSkill(DotConsumeSkill):
|
31 |
+
bind_skills = {
|
32 |
+
**{i + 9: skill_id for i, skill_id in enumerate([714, 666, 711, 24158])}
|
33 |
+
}
|
34 |
+
buff_levels = {
|
35 |
+
**{i + 9: 1 for i in range(4)}
|
36 |
+
}
|
37 |
+
|
38 |
+
def record(self, skill_level, critical, parser):
|
39 |
+
if skill_level not in self.bind_skills:
|
40 |
+
return
|
41 |
+
self.bind_skill = self.bind_skills[skill_level]
|
42 |
+
super().record(skill_level, critical, parser)
|
43 |
+
|
44 |
+
|
45 |
+
SKILLS: Dict[int, Skill | dict] = {
|
46 |
+
32467: {
|
47 |
+
"skill_class": MagicalDamage,
|
48 |
+
"skill_name": "破",
|
49 |
+
"surplus_cof": [
|
50 |
+
-1048576 * (1 - (0.2813 * 0.83 * 0.927 * 1.15 * (1 + 0.2 * i)))
|
51 |
+
for i in range(7)
|
52 |
+
]
|
53 |
+
},
|
54 |
+
11: {
|
55 |
+
"skill_class": PhysicalDamage,
|
56 |
+
"skill_name": "六合棍",
|
57 |
+
"attack_power_cof": 16,
|
58 |
+
"weapon_damage_cof": 1024,
|
59 |
+
"skill_damage_addition": 205
|
60 |
+
},
|
61 |
+
711: {
|
62 |
+
"skill_class": MagicalDotDamage,
|
63 |
+
"skill_name": "兰摧玉折(DOT)",
|
64 |
+
"damage_base": 30,
|
65 |
+
"attack_power_cof": [(28 + 48 * 0.9 * 1.25 * 1.15 * 1.05 * 1.1 * 1.05 * 1.15 * 1.1) * 1.05 * 1.05 * 1.05] * 9 +
|
66 |
+
[(28 + (48 + (i - 9) * 9) * 0.9 * 1.25 * 1.15 * 1.05 * 1.1 * 1.05 * 1.15 * 1.1) * 1.05 *
|
67 |
+
1.05 * 1.05 for i in range(10, 19)] +
|
68 |
+
[(28 + 155 * 0.9 * 1.25 * 1.15 * 1.05 * 1.1 * 1.05 * 1.15 * 1.1) * 1.05 * 1.05 * 1.05],
|
69 |
+
"interval": 48
|
70 |
+
},
|
71 |
+
**{
|
72 |
+
skill_id: {
|
73 |
+
"skill_class": DotSkill,
|
74 |
+
"skill_name": "兰摧玉折",
|
75 |
+
"bind_skill": 711,
|
76 |
+
"tick": 6 + 1
|
77 |
+
} for skill_id in (13848, 6136) # 18730
|
78 |
+
},
|
79 |
+
6129: {
|
80 |
+
"skill_class": DotConsumeSkill,
|
81 |
+
"skill_name": "兰摧玉折",
|
82 |
+
"bind_skill": 711,
|
83 |
+
"tick": 99,
|
84 |
+
"buff_levels": {5: 2, 6: 1}
|
85 |
+
},
|
86 |
+
714: {
|
87 |
+
"skill_class": MagicalDotDamage,
|
88 |
+
"skill_name": "钟林毓秀(DOT)",
|
89 |
+
"damage_base": 38,
|
90 |
+
"attack_power_cof": [48 * 0.9 * 1.25 * 1.15 * 1.05 * 1.15 * 1.1 * 1.05 * 1.05 * 1.05] * 9 +
|
91 |
+
[(48 + (i - 9) * 8) * 0.9 * 1.25 * 1.15 * 1.05 * 1.15 * 1.1 * 1.05 * 1.05 * 1.05 for i in
|
92 |
+
range(10, 24)] +
|
93 |
+
[175 * 0.9 * 1.25 * 1.15 * 1.05 * 1.15 * 1.1 * 1.05 * 1.05 * 1.05],
|
94 |
+
"interval": 48
|
95 |
+
},
|
96 |
+
**{
|
97 |
+
skill_id: {
|
98 |
+
"skill_class": DotSkill,
|
99 |
+
"skill_name": "钟林毓秀",
|
100 |
+
"bind_skill": 714,
|
101 |
+
"tick": 6 + 1
|
102 |
+
} for skill_id in (285, 13847, 6135)
|
103 |
+
},
|
104 |
+
6126: {
|
105 |
+
"skill_class": DotConsumeSkill,
|
106 |
+
"skill_name": "钟林毓秀",
|
107 |
+
"bind_skill": 714,
|
108 |
+
"tick": 99,
|
109 |
+
"buff_levels": {5: 2, 6: 1}
|
110 |
+
},
|
111 |
+
14941: {
|
112 |
+
"skill_class": MagicalDamage,
|
113 |
+
"skill_name": "阳明指",
|
114 |
+
"damage_base": [38, 44, 49, 54, 59, 63, 69, 71, 73, 75, 77, 79, 81, 83, 85, 86, 90, 94, 98, 102, 105, 110, 115, 120, 125, 135, 145, 155],
|
115 |
+
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28],
|
116 |
+
"attack_power_cof": [48 * 1.365 * 1.2 * 1.05 * 1.1 * 1.15] * 9 +
|
117 |
+
[(48 + (i - 9) * 4) * 1.365 * 1.2 * 1.05 * 1.1 * 1.15 for i in range(10, 28)] +
|
118 |
+
[130 * 1.365 * 1.2 * 1.05 * 1.1 * 1.15],
|
119 |
+
},
|
120 |
+
666: {
|
121 |
+
"skill_class": MagicalDotDamage,
|
122 |
+
"skill_name": "商阳指(DOT)",
|
123 |
+
"damage_base": 50,
|
124 |
+
"attack_power_cof": [64 * 0.9 * 1.25 * 1.15 * 1.05 * 1.15 * 1.05 * 1.05 * 1.1] * 9 +
|
125 |
+
[(64 + (i - 9) * 4) * 0.9 * 1.25 * 1.15 * 1.05 * 1.15 * 1.05 * 1.05 * 1.1 for i in
|
126 |
+
range(10, 29)] +
|
127 |
+
[161 * 0.9 * 1.25 * 1.15 * 1.05 * 1.15 * 1.05 * 1.05 * 1.1],
|
128 |
+
"interval": 48
|
129 |
+
},
|
130 |
+
**{
|
131 |
+
skill_id: {
|
132 |
+
"skill_class": DotSkill,
|
133 |
+
"skill_name": "商阳指",
|
134 |
+
"bind_skill": 666,
|
135 |
+
"tick": 6 + 1
|
136 |
+
} for skill_id in (180, 6134)
|
137 |
+
},
|
138 |
+
6128: {
|
139 |
+
"skill_class": DotConsumeSkill,
|
140 |
+
"skill_name": "商阳指",
|
141 |
+
"bind_skill": 666,
|
142 |
+
"tick": 99,
|
143 |
+
"buff_levels": {5: 2, 6: 1}
|
144 |
+
},
|
145 |
+
6693: {
|
146 |
+
"skill_class": MagicalDamage,
|
147 |
+
"skill_name": "商阳指",
|
148 |
+
"attack_power_cof": [64 * 1.15] * 9 +
|
149 |
+
[(64 + (i - 9) * 4) * 1.15 for i in range(10, 29)] +
|
150 |
+
[161 * 1.15],
|
151 |
+
},
|
152 |
+
182: {
|
153 |
+
"skill_class": MagicalDamage,
|
154 |
+
"skill_name": "玉石俱焚",
|
155 |
+
"damage_base": [20, 22, 24, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68,
|
156 |
+
69, 72, 75, 78, 81],
|
157 |
+
"damage_rand": [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10],
|
158 |
+
"attack_power_cof": 64 * 1.15
|
159 |
+
},
|
160 |
+
186: {
|
161 |
+
"skill_class": MagicalDamage,
|
162 |
+
"skill_name": "芙蓉并蒂",
|
163 |
+
"damage_base": [28, 43, 61, 76],
|
164 |
+
"damage_rand": 5,
|
165 |
+
"attack_power_cof": 64 * 1.15
|
166 |
+
},
|
167 |
+
33222: {
|
168 |
+
"skill_class": MagicalDamage,
|
169 |
+
"skill_name": "快雪时晴",
|
170 |
+
"damage_base": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55,
|
171 |
+
57, 59, 61, 63, 65],
|
172 |
+
"damage_rand": [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10],
|
173 |
+
"attack_power_cof": [44 * 0.9 * 1.05 * 1.1 * 1.15 * 1.23] * 9 +
|
174 |
+
[(44 + (i - 9) * 2) * 0.9 * 1.05 * 1.1 * 1.15 * 1.23 for i in range(10, 29)] +
|
175 |
+
[84 * 0.9 * 1.05 * 1.1 * 1.15 * 1.23],
|
176 |
+
"skill_damage_addition": 512,
|
177 |
+
},
|
178 |
+
24158: {
|
179 |
+
"skill_class": MagicalDotDamage,
|
180 |
+
"skill_name": "快雪时晴(DOT)",
|
181 |
+
"damage_base": 38,
|
182 |
+
"attack_power_cof": (28 + 155 * 0.9 * 1.25 * 1.15 * 1.05 * 1.1 * 1.05 * 1.15 * 1.1) * 1.05 * 1.2 * 0.12,
|
183 |
+
"interval": 64
|
184 |
+
},
|
185 |
+
**{
|
186 |
+
skill_id: {
|
187 |
+
"skill_class": DotSkill,
|
188 |
+
"skill_name": "快雪时晴",
|
189 |
+
"bind_skill": 24158,
|
190 |
+
"tick": 7,
|
191 |
+
"max_stack": 6
|
192 |
+
} for skill_id in (32409, 32481)
|
193 |
+
},
|
194 |
+
32410: {
|
195 |
+
"skill_class": DotConsumeSkill,
|
196 |
+
"skill_name": "快雪时晴",
|
197 |
+
"bind_skill": 24158,
|
198 |
+
"tick": 99,
|
199 |
+
"buff_levels": {2: 2, 3: 1}
|
200 |
+
},
|
201 |
+
601: {
|
202 |
+
"skill_class": GeneraConsumeSkill,
|
203 |
+
"skill_name": "折花吞噬",
|
204 |
+
},
|
205 |
+
32501: {
|
206 |
+
"skill_class": MagicalDamage,
|
207 |
+
"skill_name": "折花",
|
208 |
+
"damage_base": 155,
|
209 |
+
"damage_rand": 28,
|
210 |
+
"attack_power_cof": [304] * 3 + [334]
|
211 |
+
},
|
212 |
+
37525: {
|
213 |
+
"skill_class": MagicalDamage,
|
214 |
+
"skill_name": "钟灵",
|
215 |
+
"damage_base": 121,
|
216 |
+
"damage_rand": 10,
|
217 |
+
"attack_power_cof": 328
|
218 |
+
},
|
219 |
+
37270: {
|
220 |
+
"skill_class": MagicalDamage,
|
221 |
+
"skill_name": ["墨海", "临源"],
|
222 |
+
"damage_base": 33,
|
223 |
+
"damage_rand": 2,
|
224 |
+
"damage_gain": 1.05 * 2 / 2,
|
225 |
+
"attack_power_cof": [1800 * 1.1] +
|
226 |
+
[1800 * 2.5 * 1.1],
|
227 |
+
},
|
228 |
+
25768: {
|
229 |
+
"skill_class": MagicalDamage,
|
230 |
+
"skill_name": "兰摧玉折·神兵",
|
231 |
+
"damage_base": 20,
|
232 |
+
"damage_rand": 2,
|
233 |
+
"attack_power_cof": 100
|
234 |
+
}
|
235 |
+
}
|
236 |
+
|
237 |
+
for skill_id, detail in SKILLS.items():
|
238 |
+
SKILLS[skill_id] = detail.pop('skill_class')(skill_id)
|
239 |
+
for attr, value in detail.items():
|
240 |
+
setattr(SKILLS[skill_id], attr, value)
|
241 |
+
|
242 |
+
for skill_id, skill in GENERAL_SKILLS.items():
|
243 |
+
SKILLS[skill_id] = skill
|
schools/hua_jian_you/talents.py
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict
|
2 |
+
|
3 |
+
from base.buff import Buff
|
4 |
+
from base.gain import Gain
|
5 |
+
from base.skill import Skill
|
6 |
+
|
7 |
+
|
8 |
+
class 烟霞(Gain):
|
9 |
+
def add_skills(self, skills: Dict[int, Skill]):
|
10 |
+
skills[14941].skill_critical_strike += 1000
|
11 |
+
skills[14941].skill_critical_power += 102
|
12 |
+
|
13 |
+
def sub_skills(self, skills: Dict[int, Skill]):
|
14 |
+
skills[14941].skill_critical_strike -= 1000
|
15 |
+
skills[14941].skill_critical_power -= 102
|
16 |
+
|
17 |
+
|
18 |
+
class 青冠(Gain):
|
19 |
+
def add_buffs(self, buffs: Dict[int, Buff]):
|
20 |
+
buffs[-32489].activate = True
|
21 |
+
|
22 |
+
def sub_buffs(self, buffs: Dict[int, Buff]):
|
23 |
+
buffs[-32489].activate = False
|
24 |
+
|
25 |
+
|
26 |
+
TALENT_GAINS: Dict[int, Gain] = {
|
27 |
+
5756: 烟霞("烟霞"),
|
28 |
+
32489: 青冠("青冠"),
|
29 |
+
17510: Gain("倚天"),
|
30 |
+
37267: Gain("墨海临源"),
|
31 |
+
21744: Gain("折花"),
|
32 |
+
32477: Gain("雪中行"),
|
33 |
+
16855: Gain("清流"),
|
34 |
+
26692: Gain("钟灵"),
|
35 |
+
6682: Gain("流离"),
|
36 |
+
32480: Gain("雪弃"),
|
37 |
+
32469: Gain("焚玉"),
|
38 |
+
14643: Gain("涓流")
|
39 |
+
}
|
40 |
+
|
41 |
+
TALENTS = [
|
42 |
+
[5756],
|
43 |
+
[32489],
|
44 |
+
[17510],
|
45 |
+
[37267],
|
46 |
+
[21744],
|
47 |
+
[32477],
|
48 |
+
[16855],
|
49 |
+
[26692],
|
50 |
+
[6682],
|
51 |
+
[32480],
|
52 |
+
[32469],
|
53 |
+
[14643]
|
54 |
+
]
|
55 |
+
TALENT_DECODER = {talent_id: talent.gain_name for talent_id, talent in TALENT_GAINS.items()}
|
56 |
+
TALENT_ENCODER = {v: k for k, v in TALENT_DECODER.items()}
|
schools/ling_hai_jue/buffs.py
CHANGED
@@ -64,7 +64,7 @@ BUFFS = {
|
|
64 |
}
|
65 |
|
66 |
for buff_id, detail in BUFFS.items():
|
67 |
-
BUFFS[buff_id] = Buff(buff_id
|
68 |
for attr, value in detail.items():
|
69 |
setattr(BUFFS[buff_id], attr, value)
|
70 |
|
|
|
64 |
}
|
65 |
|
66 |
for buff_id, detail in BUFFS.items():
|
67 |
+
BUFFS[buff_id] = Buff(buff_id)
|
68 |
for attr, value in detail.items():
|
69 |
setattr(BUFFS[buff_id], attr, value)
|
70 |
|
schools/mo_wen/__init__.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from schools.mo_wen.skills import SKILLS
|
2 |
+
from schools.mo_wen.buffs import BUFFS
|
3 |
+
from schools.mo_wen.talents import TALENT_GAINS, TALENTS, TALENT_DECODER, TALENT_ENCODER
|
4 |
+
from schools.mo_wen.recipes import RECIPE_GAINS, RECIPES
|
5 |
+
from schools.mo_wen.gains import GAINS
|
6 |
+
from schools.mo_wen.attribute import MoWen
|
7 |
+
|
8 |
+
|
9 |
+
def prepare(self, player_id):
|
10 |
+
pass
|
schools/mo_wen/attribute.py
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from base.attribute import MagicalAttribute
|
2 |
+
from base.constant import *
|
3 |
+
|
4 |
+
|
5 |
+
class MoWen(MagicalAttribute):
|
6 |
+
SPIRIT_TO_ATTACK_POWER = 1895 / BINARY_SCALE
|
7 |
+
SPIRIT_TO_CRITICAL_STRIKE = 389 / BINARY_SCALE
|
8 |
+
|
9 |
+
def __init__(self):
|
10 |
+
super().__init__()
|
11 |
+
self.magical_attack_power_base += 3725
|
12 |
+
self.magical_critical_strike_base += 1279
|
13 |
+
self.pve_addition += 164
|
14 |
+
|
15 |
+
@property
|
16 |
+
def extra_magical_attack_power(self):
|
17 |
+
return int(self.spirit * self.SPIRIT_TO_ATTACK_POWER)
|
18 |
+
|
19 |
+
@property
|
20 |
+
def extra_magical_critical_strike(self):
|
21 |
+
return int(self.spirit * self.SPIRIT_TO_CRITICAL_STRIKE)
|
schools/mo_wen/buffs.py
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from base.buff import Buff
|
2 |
+
from general.buffs import GENERAL_BUFFS
|
3 |
+
|
4 |
+
BUFFS = {
|
5 |
+
9586: {
|
6 |
+
"buff_name": "挥散",
|
7 |
+
"activate": False,
|
8 |
+
"gain_attributes": {
|
9 |
+
"magical_critical_strike_gain": 400,
|
10 |
+
"magical_critical_power_gain": 41
|
11 |
+
}
|
12 |
+
},
|
13 |
+
9433: {
|
14 |
+
"buff_name": "阳春白雪",
|
15 |
+
"gain_skills": {
|
16 |
+
skill_id: {
|
17 |
+
"skill_shield_gain": [-307, -614, -921]
|
18 |
+
} for skill_id in (14227, 18859, 18860)
|
19 |
+
}
|
20 |
+
},
|
21 |
+
12576: {
|
22 |
+
"buff_name": "云汉",
|
23 |
+
"frame_shift": -3,
|
24 |
+
"gain_attributes": {
|
25 |
+
"all_damage_addition": 51,
|
26 |
+
}
|
27 |
+
},
|
28 |
+
9495: {
|
29 |
+
"buff_name": "明津",
|
30 |
+
"gain_skills": {
|
31 |
+
**{
|
32 |
+
skill_id: {
|
33 |
+
"skill_damage_addition": 205,
|
34 |
+
} for skill_id in (14227, 18859, 14100, 18860)
|
35 |
+
},
|
36 |
+
**{
|
37 |
+
skill_id: {
|
38 |
+
"attack_power_cof_gain": 0.2
|
39 |
+
} for skill_id in (9357, 9361)
|
40 |
+
}
|
41 |
+
}
|
42 |
+
},
|
43 |
+
9437: {
|
44 |
+
"buff_name": "参连",
|
45 |
+
"gain_attributes": {
|
46 |
+
"magical_attack_power_gain": 102
|
47 |
+
}
|
48 |
+
},
|
49 |
+
25997: {
|
50 |
+
"buff_name": "知音妙意",
|
51 |
+
"frame_shift": -1,
|
52 |
+
"gain_attributes": {
|
53 |
+
"magical_critical_power_gain": [102, 204, 410]
|
54 |
+
}
|
55 |
+
},
|
56 |
+
}
|
57 |
+
|
58 |
+
for buff_id, detail in BUFFS.items():
|
59 |
+
BUFFS[buff_id] = Buff(buff_id)
|
60 |
+
for attr, value in detail.items():
|
61 |
+
setattr(BUFFS[buff_id], attr, value)
|
62 |
+
|
63 |
+
for buff_id, buff in GENERAL_BUFFS.items():
|
64 |
+
BUFFS[buff_id] = buff
|
schools/mo_wen/gains.py
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from base.recipe import damage_addition_recipe, critical_strike_recipe
|
2 |
+
from general.gains.equipment import EQUIPMENT_GAINS, CriticalSet
|
3 |
+
from base.gain import Gain
|
4 |
+
|
5 |
+
GAINS = {
|
6 |
+
1924: CriticalSet(9586),
|
7 |
+
2209: damage_addition_recipe([18860], 102),
|
8 |
+
2210: damage_addition_recipe([14227, 18859], 102),
|
9 |
+
2401: damage_addition_recipe([18860], 51),
|
10 |
+
2402: damage_addition_recipe([14100], 51),
|
11 |
+
2415: Gain(),
|
12 |
+
1941: Gain(),
|
13 |
+
17306: Gain(),
|
14 |
+
17314: Gain(),
|
15 |
+
**EQUIPMENT_GAINS,
|
16 |
+
}
|
schools/mo_wen/recipes.py
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict, List
|
2 |
+
|
3 |
+
from base.gain import Gain
|
4 |
+
from base.recipe import attack_power_recipe, damage_addition_recipe, critical_strike_recipe
|
5 |
+
|
6 |
+
|
7 |
+
RECIPE_GAINS: Dict[str, Dict[str, Gain]] = {
|
8 |
+
"宫": {
|
9 |
+
"4%伤害": damage_addition_recipe([18860], 41),
|
10 |
+
"3%伤害": damage_addition_recipe([18860], 31),
|
11 |
+
"4%会心": critical_strike_recipe([18860], 400),
|
12 |
+
"3%会心": critical_strike_recipe([18860], 300),
|
13 |
+
"2%会心": critical_strike_recipe([18860], 200),
|
14 |
+
},
|
15 |
+
"商": {
|
16 |
+
"5%伤害": attack_power_recipe([14311, 9357], 1.05),
|
17 |
+
"4%伤害": attack_power_recipe([14311, 9357], 1.04),
|
18 |
+
"3%伤害": attack_power_recipe([14311, 9357], 1.03),
|
19 |
+
"4%会心": critical_strike_recipe([14311, 9357], 400),
|
20 |
+
"3%会心": critical_strike_recipe([14311, 9357], 300),
|
21 |
+
"2%会心": critical_strike_recipe([14311, 9357], 200),
|
22 |
+
},
|
23 |
+
"徵": {
|
24 |
+
"4%伤害": damage_addition_recipe([14227, 18859], 41),
|
25 |
+
"3%伤害": damage_addition_recipe([14227, 18859], 31),
|
26 |
+
"4%会心": critical_strike_recipe([14227, 18859], 400),
|
27 |
+
"3%会心": critical_strike_recipe([14227, 18859], 300),
|
28 |
+
"2%会心": critical_strike_recipe([14227, 18859], 200),
|
29 |
+
},
|
30 |
+
"羽": {
|
31 |
+
"4%伤害": damage_addition_recipe([14100], 41),
|
32 |
+
"3%伤害": damage_addition_recipe([14100], 31),
|
33 |
+
"4%会心": critical_strike_recipe([14100], 400),
|
34 |
+
"3%会心": critical_strike_recipe([14100], 300),
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
RECIPES: Dict[str, List[str]] = {
|
39 |
+
"宫": ["4%伤害", "4%会心", "3%伤害", "3%会心", "2%会心"],
|
40 |
+
"商": ["5%伤害", "4%伤害", "4%会心", "3%伤害", "3%会心", "2%会心"],
|
41 |
+
"徵": ["4%伤害", "4%会心", "3%伤害", "3%会心", "2%会心"],
|
42 |
+
"羽": ["4%伤害", "4%会心", "3%伤害", "3%会心"],
|
43 |
+
}
|
schools/mo_wen/skills.py
ADDED
@@ -0,0 +1,209 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict
|
2 |
+
|
3 |
+
from base.constant import GLOBAL_DAMAGE_FACTOR
|
4 |
+
from base.skill import Skill, DotSkill, PhysicalDamage, MagicalDamage, MagicalDotDamage, MagicalPetDamage
|
5 |
+
from general.skills import GENERAL_SKILLS
|
6 |
+
|
7 |
+
SKILLS: Dict[int, Skill | dict] = {
|
8 |
+
32738: {
|
9 |
+
"skill_class": MagicalDamage,
|
10 |
+
"skill_name": ["破", "破", "破", "破·流照", "破·争鸣"],
|
11 |
+
"surplus_cof": [
|
12 |
+
1048576 * (0.25 * 0.5 * 1.3 * 1.2 * 0.5 * 1.11 * 0.9 - 1),
|
13 |
+
1048576 * (0.3 * 0.5 * 1.3 * 1.2 * 0.5 * 1.11 * 0.9 - 1),
|
14 |
+
1048576 * (0.36 * 0.5 * 1.3 * 1.2 * 0.5 * 1.11 * 0.9 - 1),
|
15 |
+
1048576 * (0.125 * 0.5 * 1.3 * 1.2 * 0.5 * 1.11 * 1.17 - 1),
|
16 |
+
1048576 * (0.36 * 0.7 * 1.15 - 1)
|
17 |
+
]
|
18 |
+
},
|
19 |
+
14063: {
|
20 |
+
"skill_class": PhysicalDamage,
|
21 |
+
"skill_name": "五音六律",
|
22 |
+
"attack_power_cof": 16,
|
23 |
+
"weapon_damage_cof": 1024,
|
24 |
+
},
|
25 |
+
14494: {
|
26 |
+
"skill_class": MagicalDamage,
|
27 |
+
"skill_name": "阳春白雪",
|
28 |
+
"damage_base": [20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104,
|
29 |
+
107, 110],
|
30 |
+
"damage_rand": [5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
31 |
+
10],
|
32 |
+
"damage_gain": 0.7,
|
33 |
+
"attack_power_cof": 64 * 1.4,
|
34 |
+
},
|
35 |
+
15076: {
|
36 |
+
"skill_class": MagicalPetDamage,
|
37 |
+
"skill_name": "宫",
|
38 |
+
"damage_base": [34, 45, 55, 65, 75, 85, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 125, 130, 135, 140,
|
39 |
+
145, 150, 155, 160],
|
40 |
+
"damage_rand": [5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 30, 30, 30, 30, 40, 40, 40],
|
41 |
+
"attack_power_cof": [80 * 0.2 * 0.85 * 1.1] * 9 +
|
42 |
+
[(80 + (i - 9) * 6) * 0.2 * 0.85 * 1.1 for i in range(10, 25)] +
|
43 |
+
[200 * 0.2 * 0.85 * 1.1],
|
44 |
+
"interval": 24
|
45 |
+
},
|
46 |
+
9357: {
|
47 |
+
"skill_class": MagicalDotDamage,
|
48 |
+
"skill_name": "商(DOT)",
|
49 |
+
"damage_base": 58,
|
50 |
+
"attack_power_cof": [48 * 1.1 * 1.05 * 1.05 * 1.05 * 1.12 * 1.05 * 1.1 * 1.05] * 9 +
|
51 |
+
[(48 + (i - 9) * 7) * 1.1 * 1.05 * 1.05 * 1.05 * 1.12 * 1.05 * 1.1 * 1.05 for i in
|
52 |
+
range(10, 25)] +
|
53 |
+
[160 * 1.1 * 1.05 * 1.05 * 1.05 * 1.12 * 1.05 * 1.1 * 1.05],
|
54 |
+
"interval": 48
|
55 |
+
},
|
56 |
+
**{
|
57 |
+
skill_id: {
|
58 |
+
"skill_class": DotSkill,
|
59 |
+
"skill_name": "商",
|
60 |
+
"bind_skill": 9357,
|
61 |
+
"tick": 6
|
62 |
+
} for skill_id in (14287, 17788)
|
63 |
+
},
|
64 |
+
14311: {
|
65 |
+
"skill_class": MagicalDamage,
|
66 |
+
"skill_name": "商",
|
67 |
+
"damage_base": [e * 0.7 for e in
|
68 |
+
[20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104,
|
69 |
+
107, 110]],
|
70 |
+
"damage_rand": [5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
71 |
+
10],
|
72 |
+
"attack_power_cof": [64 * 1.2 * 1.05 * 1.2 * 1.12 * 1.05] +
|
73 |
+
[64 * 1.2 * 1.05 * 1.2 * 1.12 * 1.5 * 1.05] +
|
74 |
+
[64 * 1.2 * 1.05 * 1.2 * 1.12 * 2 * 1.05],
|
75 |
+
},
|
76 |
+
9361: {
|
77 |
+
"skill_class": MagicalDotDamage,
|
78 |
+
"skill_name": "角(DOT)",
|
79 |
+
"damage_base": 58,
|
80 |
+
"attack_power_cof": [48 * 1.05 * 1.05 * 1.12 * 1.05 * 1.1 * 1.05] * 9 +
|
81 |
+
[(48 + (i - 9) * 8) * 1.05 * 1.05 * 1.12 * 1.05 * 1.1 * 1.05 for i in
|
82 |
+
range(10, 25)] +
|
83 |
+
[180 * 1.05 * 1.05 * 1.12 * 1.05 * 1.1 * 1.05],
|
84 |
+
"interval": 48
|
85 |
+
},
|
86 |
+
**{
|
87 |
+
skill_id: {
|
88 |
+
"skill_class": DotSkill,
|
89 |
+
"skill_name": "角",
|
90 |
+
"bind_skill": 9361,
|
91 |
+
"tick": 6
|
92 |
+
} for skill_id in (14291, 17792)
|
93 |
+
},
|
94 |
+
14312: {
|
95 |
+
"skill_class": MagicalDamage,
|
96 |
+
"skill_name": "角",
|
97 |
+
"damage_base": [e * 0.7 for e in
|
98 |
+
[20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104,
|
99 |
+
107, 110]],
|
100 |
+
"damage_rand": [5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
101 |
+
10],
|
102 |
+
"attack_power_cof": [64 * 1.2 * 1.05 * 1.2 * 1.12 * 1.05] +
|
103 |
+
[64 * 1.2 * 1.05 * 1.2 * 1.12 * 1.5 * 1.05] +
|
104 |
+
[64 * 1.2 * 1.05 * 1.2 * 1.12 * 2 * 1.05],
|
105 |
+
},
|
106 |
+
**{
|
107 |
+
skill_id: {
|
108 |
+
"skill_class": MagicalDamage,
|
109 |
+
"skill_name": "徵",
|
110 |
+
"damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160,
|
111 |
+
165,
|
112 |
+
170, 175, 180, 185, 190],
|
113 |
+
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20],
|
114 |
+
"attack_power_cof": [40 * 1.2 * 1.09 * 1.65] * 9 +
|
115 |
+
[(40 + (i - 9) * 3) * 1.2 * 1.09 * 1.65 for i in range(10, 25)] +
|
116 |
+
[95 * 1.2 * 1.09 * 1.65],
|
117 |
+
} for skill_id in (14227, 18859)
|
118 |
+
},
|
119 |
+
14100: {
|
120 |
+
"skill_class": MagicalDamage,
|
121 |
+
"skill_name": "羽",
|
122 |
+
"damage_base": [32, 36, 46, 50, 54, 58, 62, 66, 70, 72, 74, 76, 78, 80, 82, 84, 86, 89, 92, 95, 98, 101, 104,
|
123 |
+
107, 110],
|
124 |
+
"damage_rand": [5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
|
125 |
+
10],
|
126 |
+
"damage_gain": 1.3,
|
127 |
+
"attack_power_cof": [60 * 1.1 * 1.3 * 1.15 * 1.1 * 1.1 * 1.05 * 1.1] * 9 +
|
128 |
+
[(60 + (i - 9) * 3) * 1.1 * 1.3 * 1.15 * 1.1 * 1.1 * 1.05 * 1.1 for i in range(10, 25)] +
|
129 |
+
[115 * 1.1 * 1.3 * 1.15 * 1.1 * 1.1 * 1.05 * 1.1],
|
130 |
+
},
|
131 |
+
18860: {
|
132 |
+
"skill_class": MagicalDamage,
|
133 |
+
"skill_name": "变宫",
|
134 |
+
"damage_base": [34, 45, 55, 65, 75, 85, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 125, 130, 135, 140,
|
135 |
+
145, 150, 155, 160],
|
136 |
+
"damage_rand": [5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 30, 30, 30, 30, 40, 40, 40],
|
137 |
+
"attack_power_cof": [80 * 1.2 * 1.1 * 1.05] * 9 +
|
138 |
+
[80 + (i - 9) * 6 * 1.2 * 1.1 * 1.05 for i in range(10, 25)] +
|
139 |
+
[200 * 1.2 * 1.1 * 1.05],
|
140 |
+
},
|
141 |
+
32624: {
|
142 |
+
"skill_class": MagicalDamage,
|
143 |
+
"skill_name": "弦风",
|
144 |
+
"damage_base": 40,
|
145 |
+
"damage_rand": 2,
|
146 |
+
"attack_power_cof": 40 * 1.2 * 1.25,
|
147 |
+
},
|
148 |
+
30799: {
|
149 |
+
"skill_class": MagicalDamage,
|
150 |
+
"skill_name": "流照",
|
151 |
+
"damage_base": 107,
|
152 |
+
"damage_rand": 27,
|
153 |
+
"attack_power_cof": 117 * 0.35 * 1.5,
|
154 |
+
"skill_shield_gain": -922
|
155 |
+
},
|
156 |
+
34676: {
|
157 |
+
"skill_class": MagicalDamage,
|
158 |
+
"skill_name": "知音兴尽",
|
159 |
+
"damage_base": 40,
|
160 |
+
"damage_rand": 6,
|
161 |
+
"attack_power_cof": [(3750 + 125 * (i + 1)) * 0.2 * 10 * 1.2 * 1.15 for i in range(21)] +
|
162 |
+
[2810 * 0.2 * 1.2 * 1.15] * 2 +
|
163 |
+
[3250 * 0.2 * 1.2 * 1.15],
|
164 |
+
"global_damage_factor": GLOBAL_DAMAGE_FACTOR(1048576 * (0.25 * 0.5 * 1.3 * 1.2 * 0.5 * 1.11 * 0.9 - 1))
|
165 |
+
},
|
166 |
+
25781: {
|
167 |
+
"skill_class": MagicalDamage,
|
168 |
+
"skill_name": "羽·神兵",
|
169 |
+
"damage_base": 20,
|
170 |
+
"damage_rand": 2,
|
171 |
+
"attack_power_cof": 50
|
172 |
+
},
|
173 |
+
31008: {
|
174 |
+
"skill_class": MagicalDamage,
|
175 |
+
"skill_name": "宫·神兵",
|
176 |
+
"damage_base": 100,
|
177 |
+
"damage_rand": 10,
|
178 |
+
"attack_power_cof": 200 * 1.2 * 1.1 * 1.05
|
179 |
+
},
|
180 |
+
31138: {
|
181 |
+
"skill_class": MagicalDamage,
|
182 |
+
"skill_name": "变宫·神兵",
|
183 |
+
"damage_base": 100,
|
184 |
+
"damage_rand": 10,
|
185 |
+
"attack_power_cof": 200 * 1.2 * 1.1 * 1.05
|
186 |
+
},
|
187 |
+
23187: {
|
188 |
+
"skill_class": MagicalDotDamage,
|
189 |
+
"skill_name": "神兵·宫(DOT)",
|
190 |
+
"damage_base": 58,
|
191 |
+
"attack_power_cof": 360 * 1.1 * 1.05 * 1.05 * 1.05 * 1.35,
|
192 |
+
"interval": 48
|
193 |
+
},
|
194 |
+
31005: {
|
195 |
+
"skill_class": DotSkill,
|
196 |
+
"skill_name": "神兵·宫",
|
197 |
+
"bind_skill": 23187,
|
198 |
+
"max_stack": 3,
|
199 |
+
"tick": 10
|
200 |
+
}
|
201 |
+
}
|
202 |
+
|
203 |
+
for skill_id, detail in SKILLS.items():
|
204 |
+
SKILLS[skill_id] = detail.pop('skill_class')(skill_id)
|
205 |
+
for attr, value in detail.items():
|
206 |
+
setattr(SKILLS[skill_id], attr, value)
|
207 |
+
|
208 |
+
for skill_id, skill in GENERAL_SKILLS.items():
|
209 |
+
SKILLS[skill_id] = skill
|
schools/mo_wen/talents.py
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from typing import Dict
|
2 |
+
|
3 |
+
from base.gain import Gain
|
4 |
+
from base.skill import Skill
|
5 |
+
|
6 |
+
|
7 |
+
class 飞帆(Gain):
|
8 |
+
def add_skills(self, skills: Dict[int, Skill]):
|
9 |
+
for skill_id in (14227, 18859):
|
10 |
+
skills[skill_id].attack_power_cof_gain *= 1.1
|
11 |
+
|
12 |
+
def sub_skills(self, skills: Dict[int, Skill]):
|
13 |
+
for skill_id in (14227, 18859):
|
14 |
+
skills[skill_id].attack_power_cof_gain /= 1.1
|
15 |
+
|
16 |
+
|
17 |
+
class 师襄(Gain):
|
18 |
+
def add_skills(self, skills: Dict[int, Skill]):
|
19 |
+
skills[14100].skill_shield_gain -= 614
|
20 |
+
|
21 |
+
def sub_skills(self, skills: Dict[int, Skill]):
|
22 |
+
skills[14100].skill_shield_gain += 614
|
23 |
+
|
24 |
+
|
25 |
+
class 刻梦(Gain):
|
26 |
+
def add_skills(self, skills: Dict[int, Skill]):
|
27 |
+
skills[15076].skill_critical_strike += 1000
|
28 |
+
skills[15076].skill_critical_power += 102
|
29 |
+
|
30 |
+
def sub_skills(self, skills: Dict[int, Skill]):
|
31 |
+
skills[15076].skill_critical_strike -= 1000
|
32 |
+
skills[15076].skill_critical_power -= 102
|
33 |
+
|
34 |
+
|
35 |
+
TALENT_GAINS: Dict[int, Gain] = {
|
36 |
+
14246: 飞帆("飞帆"),
|
37 |
+
35981: Gain("明津"),
|
38 |
+
32485: Gain("弦风"),
|
39 |
+
30562: Gain("流照"),
|
40 |
+
14336: Gain("豪情"),
|
41 |
+
14282: 师襄("师襄"),
|
42 |
+
30984: Gain("知止"),
|
43 |
+
14873: 刻梦("刻梦"),
|
44 |
+
35982: Gain("争鸣"),
|
45 |
+
18712: Gain("云汉"),
|
46 |
+
14350: Gain("参连"),
|
47 |
+
34344: Gain("正律和鸣")
|
48 |
+
}
|
49 |
+
|
50 |
+
TALENTS = [
|
51 |
+
[14246],
|
52 |
+
[35981],
|
53 |
+
[32485],
|
54 |
+
[30562],
|
55 |
+
[14336],
|
56 |
+
[14282],
|
57 |
+
[30984],
|
58 |
+
[14873],
|
59 |
+
[35982],
|
60 |
+
[18712],
|
61 |
+
[14350],
|
62 |
+
[34344]
|
63 |
+
]
|
64 |
+
TALENT_DECODER = {talent_id: talent.gain_name for talent_id, talent in TALENT_GAINS.items()}
|
65 |
+
TALENT_ENCODER = {v: k for k, v in TALENT_DECODER.items()}
|
schools/shan_hai_xin_jue/buffs.py
CHANGED
@@ -28,7 +28,7 @@ BUFFS: Dict[int, Buff | dict] = {
|
|
28 |
}
|
29 |
|
30 |
for buff_id, detail in BUFFS.items():
|
31 |
-
BUFFS[buff_id] = Buff(buff_id
|
32 |
for attr, value in detail.items():
|
33 |
setattr(BUFFS[buff_id], attr, value)
|
34 |
|
|
|
28 |
}
|
29 |
|
30 |
for buff_id, detail in BUFFS.items():
|
31 |
+
BUFFS[buff_id] = Buff(buff_id)
|
32 |
for attr, value in detail.items():
|
33 |
setattr(BUFFS[buff_id], attr, value)
|
34 |
|
schools/tai_xu_jian_yi/buffs.py
CHANGED
@@ -53,7 +53,7 @@ BUFFS: Dict[int, Buff | dict] = {
|
|
53 |
}
|
54 |
|
55 |
for buff_id, detail in BUFFS.items():
|
56 |
-
BUFFS[buff_id] = Buff(buff_id
|
57 |
for attr, value in detail.items():
|
58 |
setattr(BUFFS[buff_id], attr, value)
|
59 |
|
|
|
53 |
}
|
54 |
|
55 |
for buff_id, detail in BUFFS.items():
|
56 |
+
BUFFS[buff_id] = Buff(buff_id)
|
57 |
for attr, value in detail.items():
|
58 |
setattr(BUFFS[buff_id], attr, value)
|
59 |
|
schools/tian_luo_gui_dao/buffs.py
CHANGED
@@ -72,7 +72,7 @@ BUFFS = {
|
|
72 |
}
|
73 |
|
74 |
for buff_id, detail in BUFFS.items():
|
75 |
-
BUFFS[buff_id] = Buff(buff_id
|
76 |
for attr, value in detail.items():
|
77 |
setattr(BUFFS[buff_id], attr, value)
|
78 |
|
|
|
72 |
}
|
73 |
|
74 |
for buff_id, detail in BUFFS.items():
|
75 |
+
BUFFS[buff_id] = Buff(buff_id)
|
76 |
for attr, value in detail.items():
|
77 |
setattr(BUFFS[buff_id], attr, value)
|
78 |
|
schools/wu_fang/buffs.py
CHANGED
@@ -45,7 +45,7 @@ BUFFS = {
|
|
45 |
}
|
46 |
|
47 |
for buff_id, detail in BUFFS.items():
|
48 |
-
BUFFS[buff_id] = Buff(buff_id
|
49 |
for attr, value in detail.items():
|
50 |
setattr(BUFFS[buff_id], attr, value)
|
51 |
|
|
|
45 |
}
|
46 |
|
47 |
for buff_id, detail in BUFFS.items():
|
48 |
+
BUFFS[buff_id] = Buff(buff_id)
|
49 |
for attr, value in detail.items():
|
50 |
setattr(BUFFS[buff_id], attr, value)
|
51 |
|
schools/yi_jin_jing/buffs.py
CHANGED
@@ -90,7 +90,7 @@ BUFFS = {
|
|
90 |
}
|
91 |
|
92 |
for buff_id, detail in BUFFS.items():
|
93 |
-
BUFFS[buff_id] = Buff(buff_id
|
94 |
for attr, value in detail.items():
|
95 |
setattr(BUFFS[buff_id], attr, value)
|
96 |
|
|
|
90 |
}
|
91 |
|
92 |
for buff_id, detail in BUFFS.items():
|
93 |
+
BUFFS[buff_id] = Buff(buff_id)
|
94 |
for attr, value in detail.items():
|
95 |
setattr(BUFFS[buff_id], attr, value)
|
96 |
|
schools/yi_jin_jing/skills.py
CHANGED
@@ -67,7 +67,7 @@ SKILLS: Dict[int, Skill | dict] = {
|
|
67 |
243, 253, 263, 273, 283, 293, 303, 313]],
|
68 |
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5] + [10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15,
|
69 |
15, 15, 15],
|
70 |
-
"attack_power_cof": [16 * 1.1 * 1.15 * 1.1 * 1.05 * 1.2] *
|
71 |
[(16 + (i - 9) * 6) * 1.1 * 1.15 * 1.1 * 1.05 * 1.2 for i in range(10, 28)] +
|
72 |
[128 * 1.1 * 1.15 * 1.1 * 1.05 * 1.2],
|
73 |
"bind_buff": 890,
|
@@ -144,7 +144,7 @@ SKILLS: Dict[int, Skill | dict] = {
|
|
144 |
"skill_name": "守缺式",
|
145 |
"damage_base": [52, 62, 72, 82, 92, 102, 112, 122, 132, 142],
|
146 |
"damage_rand": 5,
|
147 |
-
"attack_power_cof": [(120 +
|
148 |
[200 * 1.2 * 1.15 * 0.95 * 1.05 * 1.2 * 1.1],
|
149 |
},
|
150 |
3816: {
|
@@ -152,7 +152,7 @@ SKILLS: Dict[int, Skill | dict] = {
|
|
152 |
"skill_name": "守缺式",
|
153 |
"damage_base": [52, 62, 72, 82, 92, 102, 112, 122, 132, 142],
|
154 |
"damage_rand": 5,
|
155 |
-
"attack_power_cof": [(120 +
|
156 |
[200 * 1.2 * 1.15 * 0.95 * 1.05 * 1.1],
|
157 |
},
|
158 |
13685: {
|
|
|
67 |
243, 253, 263, 273, 283, 293, 303, 313]],
|
68 |
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5] + [10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15,
|
69 |
15, 15, 15],
|
70 |
+
"attack_power_cof": [16 * 1.1 * 1.15 * 1.1 * 1.05 * 1.2] * 9 +
|
71 |
[(16 + (i - 9) * 6) * 1.1 * 1.15 * 1.1 * 1.05 * 1.2 for i in range(10, 28)] +
|
72 |
[128 * 1.1 * 1.15 * 1.1 * 1.05 * 1.2],
|
73 |
"bind_buff": 890,
|
|
|
144 |
"skill_name": "守缺式",
|
145 |
"damage_base": [52, 62, 72, 82, 92, 102, 112, 122, 132, 142],
|
146 |
"damage_rand": 5,
|
147 |
+
"attack_power_cof": [(120 + i * 5) * 1.15 * 0.95 * 1.05 * 1.2 * 1.1 for i in range(10)] +
|
148 |
[200 * 1.2 * 1.15 * 0.95 * 1.05 * 1.2 * 1.1],
|
149 |
},
|
150 |
3816: {
|
|
|
152 |
"skill_name": "守缺式",
|
153 |
"damage_base": [52, 62, 72, 82, 92, 102, 112, 122, 132, 142],
|
154 |
"damage_rand": 5,
|
155 |
+
"attack_power_cof": [(120 + i * 5) * 1.15 * 0.95 * 1.05 * 1.1 for i in range(10)] +
|
156 |
[200 * 1.2 * 1.15 * 0.95 * 1.05 * 1.1],
|
157 |
},
|
158 |
13685: {
|
utils/analyzer.py
CHANGED
@@ -4,7 +4,7 @@ from typing import Dict
|
|
4 |
|
5 |
from base.attribute import Attribute
|
6 |
from base.constant import FRAME_PER_SECOND
|
7 |
-
from base.skill import Skill, DotDamage
|
8 |
from utils.parser import School
|
9 |
|
10 |
|
@@ -37,7 +37,9 @@ def filter_status(status, school: School, skill_id):
|
|
37 |
if not buff.activate:
|
38 |
continue
|
39 |
buff.buff_level, buff.buff_stack = buff_level, buff_stack
|
40 |
-
if buff.gain_attributes
|
|
|
|
|
41 |
buffs.append(buff)
|
42 |
|
43 |
return tuple(sorted(buffs, key=lambda x: x.buff_id))
|
@@ -52,6 +54,9 @@ def add_buffs(current_buffs, snapshot_buffs, attribute: Attribute, skill: Skill)
|
|
52 |
buff.add_dot(attribute, skill, True)
|
53 |
for buff in current_buffs:
|
54 |
buff.add_dot(attribute, skill, False)
|
|
|
|
|
|
|
55 |
|
56 |
|
57 |
def sub_buffs(current_buffs, snapshot_buffs, attribute: Attribute, skill: Skill):
|
@@ -63,6 +68,9 @@ def sub_buffs(current_buffs, snapshot_buffs, attribute: Attribute, skill: Skill)
|
|
63 |
buff.sub_dot(attribute, skill, True)
|
64 |
for buff in current_buffs:
|
65 |
buff.sub_dot(attribute, skill, False)
|
|
|
|
|
|
|
66 |
|
67 |
|
68 |
def concat_buffs(current_buffs, snapshot_buffs):
|
|
|
4 |
|
5 |
from base.attribute import Attribute
|
6 |
from base.constant import FRAME_PER_SECOND
|
7 |
+
from base.skill import Skill, DotDamage, PetDamage
|
8 |
from utils.parser import School
|
9 |
|
10 |
|
|
|
37 |
if not buff.activate:
|
38 |
continue
|
39 |
buff.buff_level, buff.buff_stack = buff_level, buff_stack
|
40 |
+
if buff.gain_attributes:
|
41 |
+
buffs.append(buff)
|
42 |
+
if skill_id in buff.gain_skills:
|
43 |
buffs.append(buff)
|
44 |
|
45 |
return tuple(sorted(buffs, key=lambda x: x.buff_id))
|
|
|
54 |
buff.add_dot(attribute, skill, True)
|
55 |
for buff in current_buffs:
|
56 |
buff.add_dot(attribute, skill, False)
|
57 |
+
elif isinstance(skill, PetDamage):
|
58 |
+
for buff in snapshot_buffs:
|
59 |
+
buff.add_all(attribute, skill)
|
60 |
|
61 |
|
62 |
def sub_buffs(current_buffs, snapshot_buffs, attribute: Attribute, skill: Skill):
|
|
|
68 |
buff.sub_dot(attribute, skill, True)
|
69 |
for buff in current_buffs:
|
70 |
buff.sub_dot(attribute, skill, False)
|
71 |
+
elif isinstance(skill, PetDamage):
|
72 |
+
for buff in snapshot_buffs:
|
73 |
+
buff.sub_all(attribute, skill)
|
74 |
|
75 |
|
76 |
def concat_buffs(current_buffs, snapshot_buffs):
|
utils/parser.py
CHANGED
@@ -5,6 +5,7 @@ from schools import *
|
|
5 |
from utils.lua import parse
|
6 |
|
7 |
FRAME_TYPE, PLAYER_ID_TYPE, PLAYER_NAME_TYPE, PET_ID_TYPE = int, int, int, int
|
|
|
8 |
SKILL_ID_TYPE, SKILL_LEVEL_TYPE, SKILL_STACK_TYPE, SKILL_CRITICAL_TYPE = int, int, int, bool
|
9 |
SKILL_BUFFER_TYPE = Tuple[SKILL_ID_TYPE, SKILL_LEVEL_TYPE, SKILL_CRITICAL_TYPE]
|
10 |
SKILL_TYPE = Tuple[SKILL_ID_TYPE, SKILL_LEVEL_TYPE, SKILL_STACK_TYPE]
|
@@ -12,7 +13,7 @@ BUFF_ID_TYPE, BUFF_LEVEL_TYPE, BUFF_STACK_TYPE = int, int, int
|
|
12 |
BUFF_TYPE = Tuple[BUFF_ID_TYPE, BUFF_LEVEL_TYPE]
|
13 |
STATUS_TYPE = Tuple[BUFF_ID_TYPE, BUFF_LEVEL_TYPE, BUFF_STACK_TYPE]
|
14 |
|
15 |
-
SNAPSHOT_TYPE = Dict[SKILL_ID_TYPE,
|
16 |
|
17 |
TIMELINE_TYPE = List[Tuple[FRAME_TYPE, SKILL_CRITICAL_TYPE]]
|
18 |
SUB_RECORD_TYPE = Dict[Tuple[tuple, tuple], TIMELINE_TYPE]
|
@@ -39,6 +40,7 @@ BUFFER_DELAY = 0
|
|
39 |
|
40 |
class Parser:
|
41 |
current_player: PLAYER_ID_TYPE
|
|
|
42 |
current_frame: FRAME_TYPE
|
43 |
frames: List[FRAME_TYPE]
|
44 |
|
@@ -163,15 +165,11 @@ class Parser:
|
|
163 |
self.id2name[player_id] = player_name
|
164 |
self.name2id[player_name] = player_id
|
165 |
if school := SUPPORT_SCHOOL.get(detail[3]):
|
166 |
-
self.school[player_id] = school
|
167 |
self.select_equipments[player_id] = self.parse_equipments(detail[5])
|
168 |
self.select_talents[player_id] = self.parse_talents(detail[6])
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
pet_id, player_id = int(detail[0]), int(detail[3])
|
173 |
-
if player_id in self.school:
|
174 |
-
self.pets[pet_id] = player_id
|
175 |
|
176 |
def parse_shift_buff(self, row):
|
177 |
detail = row.strip("{}").split(",")
|
@@ -237,14 +235,25 @@ class Parser:
|
|
237 |
if react or skill_id not in self.school[player_id].skills:
|
238 |
return
|
239 |
|
|
|
|
|
|
|
240 |
self.current_player = player_id
|
|
|
241 |
skill = self.school[player_id].skills[skill_id]
|
242 |
skill.record(skill_level, critical, self)
|
243 |
|
244 |
-
|
245 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
|
247 |
-
def available_status(self, skill_id):
|
248 |
current_status = []
|
249 |
for (buff_id, buff_level), buff_stack in self.current_status.items():
|
250 |
buff = self.current_school.buffs[buff_id]
|
@@ -254,7 +263,7 @@ class Parser:
|
|
254 |
current_status.append((buff_id, buff_level, buff_stack))
|
255 |
|
256 |
snapshot_status = []
|
257 |
-
for (buff_id, buff_level), buff_stack in self.current_snapshot.get(
|
258 |
buff = self.current_school.buffs[buff_id]
|
259 |
if buff.gain_attributes:
|
260 |
snapshot_status.append((buff_id, buff_level, buff_stack))
|
|
|
5 |
from utils.lua import parse
|
6 |
|
7 |
FRAME_TYPE, PLAYER_ID_TYPE, PLAYER_NAME_TYPE, PET_ID_TYPE = int, int, int, int
|
8 |
+
CASTER_ID_TYPE = PLAYER_ID_TYPE | PET_ID_TYPE
|
9 |
SKILL_ID_TYPE, SKILL_LEVEL_TYPE, SKILL_STACK_TYPE, SKILL_CRITICAL_TYPE = int, int, int, bool
|
10 |
SKILL_BUFFER_TYPE = Tuple[SKILL_ID_TYPE, SKILL_LEVEL_TYPE, SKILL_CRITICAL_TYPE]
|
11 |
SKILL_TYPE = Tuple[SKILL_ID_TYPE, SKILL_LEVEL_TYPE, SKILL_STACK_TYPE]
|
|
|
13 |
BUFF_TYPE = Tuple[BUFF_ID_TYPE, BUFF_LEVEL_TYPE]
|
14 |
STATUS_TYPE = Tuple[BUFF_ID_TYPE, BUFF_LEVEL_TYPE, BUFF_STACK_TYPE]
|
15 |
|
16 |
+
SNAPSHOT_TYPE = Dict[SKILL_ID_TYPE | PET_ID_TYPE, Dict[BUFF_TYPE, BUFF_STACK_TYPE]]
|
17 |
|
18 |
TIMELINE_TYPE = List[Tuple[FRAME_TYPE, SKILL_CRITICAL_TYPE]]
|
19 |
SUB_RECORD_TYPE = Dict[Tuple[tuple, tuple], TIMELINE_TYPE]
|
|
|
40 |
|
41 |
class Parser:
|
42 |
current_player: PLAYER_ID_TYPE
|
43 |
+
current_caster: CASTER_ID_TYPE
|
44 |
current_frame: FRAME_TYPE
|
45 |
frames: List[FRAME_TYPE]
|
46 |
|
|
|
165 |
self.id2name[player_id] = player_name
|
166 |
self.name2id[player_name] = player_id
|
167 |
if school := SUPPORT_SCHOOL.get(detail[3]):
|
|
|
168 |
self.select_equipments[player_id] = self.parse_equipments(detail[5])
|
169 |
self.select_talents[player_id] = self.parse_talents(detail[6])
|
170 |
+
if any(talent not in school.talent_gains for talent in self.select_talents[player_id]):
|
171 |
+
return
|
172 |
+
self.school[player_id] = school
|
|
|
|
|
|
|
173 |
|
174 |
def parse_shift_buff(self, row):
|
175 |
detail = row.strip("{}").split(",")
|
|
|
235 |
if react or skill_id not in self.school[player_id].skills:
|
236 |
return
|
237 |
|
238 |
+
if not self.start_frame:
|
239 |
+
self.start_frame = self.current_frame - 1
|
240 |
+
|
241 |
self.current_player = player_id
|
242 |
+
self.current_caster = caster_id
|
243 |
skill = self.school[player_id].skills[skill_id]
|
244 |
skill.record(skill_level, critical, self)
|
245 |
|
246 |
+
def parse_pet(self, row):
|
247 |
+
detail = row.strip("{}").split(",")
|
248 |
+
pet_id, player_id = int(detail[0]), int(detail[3])
|
249 |
+
if player_id in self.school:
|
250 |
+
self.pets[pet_id] = player_id
|
251 |
+
self.snapshot[player_id][pet_id] = self.status[player_id].copy()
|
252 |
+
|
253 |
+
def available_status(self, skill_id, snapshot_id=None):
|
254 |
+
if not snapshot_id:
|
255 |
+
snapshot_id = skill_id
|
256 |
|
|
|
257 |
current_status = []
|
258 |
for (buff_id, buff_level), buff_stack in self.current_status.items():
|
259 |
buff = self.current_school.buffs[buff_id]
|
|
|
263 |
current_status.append((buff_id, buff_level, buff_stack))
|
264 |
|
265 |
snapshot_status = []
|
266 |
+
for (buff_id, buff_level), buff_stack in self.current_snapshot.get(snapshot_id, {}).items():
|
267 |
buff = self.current_school.buffs[buff_id]
|
268 |
if buff.gain_attributes:
|
269 |
snapshot_status.append((buff_id, buff_level, buff_stack))
|