This commit is contained in:
2026-05-02 00:26:19 +08:00
parent f9487f7cd4
commit 1e23d73b15
7 changed files with 741 additions and 298 deletions
+12 -2
View File
@@ -166,7 +166,8 @@ class CalcEquipMixin(CharacterBase):
self.oathSkillInfo = []
# 当套装点数达到太初时,誓约技能生效
if self.max_point >= 2550:
for oathSuit in oathSuitList:
oathSuit = next((x for x in oathSuitList if x.suitId == max_point_oath_suit), None)
if oathSuit is not None:
skills = list(filter(lambda x: x.suitId == oathSuit.suitId, oathSuit.skills))
skill = next((x for x in oathSuit.skills if str(x.skillId) == str(self.charOathSkillId)), None)
# 誓约套装效果生效
@@ -205,7 +206,7 @@ class CalcEquipMixin(CharacterBase):
# 誓约积分
if self.oath_max_point >= 1200:
self.SetSkillCD(1, 100, 0.185)
SkillAttack, Buffer = equs.funs.oathPointEffect(self.oath_max_point)
SkillAttack, Buffer = equs.funs.execture('oathPointEffect')(self.oath_max_point)
self.SetStatus(SkillAttack=SkillAttack, Buffer=Buffer)
return res
@@ -357,6 +358,15 @@ class CalcEquipMixin(CharacterBase):
def calc_sundry(self, sundry: dict):
"""计算杂项效果"""
funs = get_equipment(self.equVersion).funs
primer = next((x for x in self.charOathInfo if x.id == '2000500'), None)
if primer:
fog = sundry.get('fog', 0)
stats, Point, SkillAttack, Attack, Buffer = funs.execture('fog_oath_info')(fog)
primer.oathInfo.STR = primer.oathInfo.INT = primer.oathInfo.Vitality = primer.oathInfo.Spirit = stats
primer.oathInfo.Point = Point
primer.oathInfo.SkillAttack = SkillAttack
primer.oathInfo.Attack = Attack
primer.oathInfo.Buffer = Buffer
# funs.execture('sundry_0')(
# self,
# sundry.get('medal_rarity', 0),
+1
View File
@@ -372,6 +372,7 @@ class Oath:
return Oath(**temp)
class OathSuitSkill:
id: int
key: str
+2 -294
View File
@@ -6,6 +6,7 @@ from . import emblem
from . import enchant
from . import sundry
from . import suit
from . import oath
from . import oathSuitSkill
from .register import execture
@@ -36,7 +37,7 @@ sundryList = {
'costume_card': {'id': 13, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '四维(3)|三速(1%)'])]},
}
__all__ = [get_dress_list, calc_dress_effect, options, execture, sundryList, equ, stone, jade, emblem, enchant, sundry, suit, oathSuitSkill]
__all__ = [get_dress_list, calc_dress_effect, options, execture, sundryList, equ, stone, jade, emblem, enchant, sundry, suit, oathSuitSkill, oath]
def get_reinforce_sum(char):
@@ -63,296 +64,3 @@ def get_reinforce_sum(char):
reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3
return reinforce
def oathPointEffect(point):
"""誓约积分效果"""
SkillAttackList = [
0.0,
0.5,
1.0,
1.5,
2.0,
2.5,
3.0,
3.5,
4.0,
4.5,
5.0,
5.5,
6.0,
6.5,
7.0,
7.5,
8.0,
8.5,
9.0,
9.5,
10.0,
10.5,
11.0,
11.5,
12.0,
12.5,
13.0,
13.5,
14.0,
14.5,
17.0,
17.5,
18.0,
18.5,
19.0,
19.5,
20.0,
20.5,
21.0,
21.5,
22.0,
22.5,
23.0,
23.5,
24.0,
24.5,
25.0,
25.5,
28.0,
28.5,
29.0,
29.5,
30.0,
30.5,
31.0,
31.5,
32.0,
32.5,
33.0,
33.5,
34.0,
34.5,
35.0,
35.5,
36.0,
36.5,
39.0,
39.5,
40.0,
40.5,
41.0,
41.5,
42.0,
42.5,
43.0,
43.5,
44.0,
44.5,
45.0,
45.5,
46.0,
46.5,
47.0,
47.5,
50.0,
50.5,
51.0,
51.5,
52.0,
52.5,
53.0,
53.5,
54.0,
54.5,
55.0,
55.5,
56.0,
56.5,
57.0,
57.5,
58.0,
58.5,
62.0,
63.0,
64.0,
65.0,
66.0,
67.0,
68.0,
69.0,
70.0,
71.0,
72.0,
73.0,
74.0,
75.0,
76.0,
77.0,
78.0,
79.0,
80.0,
81.0,
82.0,
83.0,
84.0,
85.0,
86.0,
87.0,
88.0,
89.0,
90.0,
91.0,
92.0,
93.0,
94.0,
95.0,
96.0,
97.0,
98.0,
99.0,
100.0,
]
BufferList = [
0,
100,
200,
300,
400,
500,
600,
700,
800,
900,
1000,
1100,
1200,
1300,
1400,
1500,
1600,
1700,
1800,
1900,
2000,
2100,
2200,
2300,
2400,
2500,
2600,
2700,
2800,
2900,
3300,
3380,
3460,
3540,
3620,
3700,
3780,
3860,
3940,
4020,
4100,
4180,
4260,
4340,
4420,
4500,
4580,
4660,
5060,
5140,
5220,
5300,
5380,
5460,
5540,
5620,
5700,
5780,
5860,
5940,
6020,
6100,
6180,
6260,
6340,
6420,
6720,
6790,
6860,
6930,
7000,
7070,
7140,
7210,
7280,
7350,
7420,
7490,
7560,
7630,
7700,
7770,
7840,
7910,
8210,
8280,
8350,
8420,
8490,
8560,
8630,
8700,
8770,
8840,
8910,
8980,
9050,
9120,
9190,
9260,
9330,
9400,
9700,
9820,
9940,
10060,
10180,
10300,
10420,
10540,
10660,
10780,
10900,
11020,
11140,
11260,
11380,
11500,
11620,
11740,
11860,
11980,
12100,
12220,
12340,
12460,
12580,
12700,
12820,
12940,
13060,
13180,
13300,
13420,
13540,
13660,
13780,
13900,
14020,
14140,
14260,
]
index = int(min(point // 25, len(SkillAttackList) - 1))
SkillAttack = SkillAttackList[index]
Buffer = BufferList[index]
return round(SkillAttack, 2), int(round(Buffer))
+425
View File
@@ -3,6 +3,11 @@ from core.abstract.character import CharacterProperty
from .register import register
@register
def oath_2000500(char: CharacterProperty):
pass
@register
def oath_2010100(char: CharacterProperty):
pass
@@ -541,3 +546,423 @@ def oath_2120500(char: CharacterProperty):
@register
def oath_2120501(char: CharacterProperty):
pass
@register
def fog_oath_info(lv: int):
lv = max(0, min(lv, 100))
SkillAttacks = [
0,
10.0,
10.5,
11.0,
11.5,
12.5,
13.0,
13.5,
14.0,
14.5,
16.0,
16.5,
17.0,
17.5,
18.0,
19.0,
19.5,
20.0,
20.5,
21.0,
22.5,
23.0,
23.5,
24.0,
24.5,
25.5,
26.0,
26.5,
27.0,
27.5,
30.0,
30.2,
30.4,
30.6,
30.8,
31.3,
31.5,
31.7,
31.9,
32.1,
32.9,
33.1,
33.3,
33.5,
33.7,
34.2,
34.4,
34.6,
34.8,
35.0,
35.8,
36.0,
36.2,
36.4,
36.6,
37.1,
37.3,
37.5,
37.7,
37.9,
39.0,
39.2,
39.4,
39.6,
39.8,
40.3,
40.5,
40.7,
40.9,
41.1,
41.9,
42.1,
42.3,
42.5,
42.7,
43.2,
43.4,
43.6,
43.8,
44.0,
45.0,
45.2,
45.4,
45.6,
45.8,
46.3,
46.5,
46.7,
46.9,
47.1,
47.9,
48.1,
48.3,
48.5,
48.7,
49.2,
49.4,
49.6,
49.8,
50.0,
53.0,
]
Buffers = [
0,
5233,
5283,
5333,
5383,
5483,
5533,
5583,
5633,
5683,
5833,
5883,
5933,
5983,
6033,
6133,
6183,
6233,
6283,
6333,
6483,
6533,
6583,
6633,
6683,
6783,
6833,
6883,
6933,
6983,
7233,
7248,
7263,
7278,
7293,
7333,
7348,
7363,
7378,
7393,
7453,
7468,
7483,
7498,
7513,
7553,
7568,
7583,
7598,
7613,
7673,
7688,
7703,
7718,
7733,
7773,
7788,
7803,
7818,
7833,
7908,
7923,
7938,
7953,
7968,
8003,
8018,
8033,
8048,
8063,
8118,
8133,
8148,
8163,
8178,
8213,
8228,
8243,
8258,
8273,
8343,
8358,
8373,
8388,
8403,
8433,
8448,
8463,
8478,
8493,
8543,
8558,
8573,
8588,
8603,
8633,
8648,
8663,
8678,
8693,
8893,
]
stats = [
0,
48,
48,
48,
48,
78,
78,
78,
78,
78,
128,
128,
128,
128,
128,
158,
158,
158,
158,
158,
208,
208,
208,
208,
208,
238,
238,
238,
238,
238,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
298,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
350,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
400,
450,
]
Points = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
265,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
355,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
455,
655,
]
Attack = 2337.5
return stats[lv], Points[lv], SkillAttacks[lv] / 100, Attack, Buffers[lv]
@@ -13,6 +13,301 @@ def check_suit(char: CharacterProperty) -> bool:
return result
@register
def oathPointEffect(point):
"""誓约积分效果"""
SkillAttackList = [
0.0,
0.5,
1.0,
1.5,
2.0,
2.5,
3.0,
3.5,
4.0,
4.5,
5.0,
5.5,
6.0,
6.5,
7.0,
7.5,
8.0,
8.5,
9.0,
9.5,
10.0,
10.5,
11.0,
11.5,
12.0,
12.5,
13.0,
13.5,
14.0,
14.5,
17.0,
17.5,
18.0,
18.5,
19.0,
19.5,
20.0,
20.5,
21.0,
21.5,
22.0,
22.5,
23.0,
23.5,
24.0,
24.5,
25.0,
25.5,
28.0,
28.5,
29.0,
29.5,
30.0,
30.5,
31.0,
31.5,
32.0,
32.5,
33.0,
33.5,
34.0,
34.5,
35.0,
35.5,
36.0,
36.5,
39.0,
39.5,
40.0,
40.5,
41.0,
41.5,
42.0,
42.5,
43.0,
43.5,
44.0,
44.5,
45.0,
45.5,
46.0,
46.5,
47.0,
47.5,
50.0,
50.5,
51.0,
51.5,
52.0,
52.5,
53.0,
53.5,
54.0,
54.5,
55.0,
55.5,
56.0,
56.5,
57.0,
57.5,
58.0,
58.5,
62.0,
63.0,
64.0,
65.0,
66.0,
67.0,
68.0,
69.0,
70.0,
71.0,
72.0,
73.0,
74.0,
75.0,
76.0,
77.0,
78.0,
79.0,
80.0,
81.0,
82.0,
83.0,
84.0,
85.0,
86.0,
87.0,
88.0,
89.0,
90.0,
91.0,
92.0,
93.0,
94.0,
95.0,
96.0,
97.0,
98.0,
99.0,
100.0,
]
BufferList = [
0,
100,
200,
300,
400,
500,
600,
700,
800,
900,
1000,
1100,
1200,
1300,
1400,
1500,
1600,
1700,
1800,
1900,
2000,
2100,
2200,
2300,
2400,
2500,
2600,
2700,
2800,
2900,
3300,
3380,
3460,
3540,
3620,
3700,
3780,
3860,
3940,
4020,
4100,
4180,
4260,
4340,
4420,
4500,
4580,
4660,
5060,
5140,
5220,
5300,
5380,
5460,
5540,
5620,
5700,
5780,
5860,
5940,
6020,
6100,
6180,
6260,
6340,
6420,
6720,
6790,
6860,
6930,
7000,
7070,
7140,
7210,
7280,
7350,
7420,
7490,
7560,
7630,
7700,
7770,
7840,
7910,
8210,
8280,
8350,
8420,
8490,
8560,
8630,
8700,
8770,
8840,
8910,
8980,
9050,
9120,
9190,
9260,
9330,
9400,
9700,
9820,
9940,
10060,
10180,
10300,
10420,
10540,
10660,
10780,
10900,
11020,
11140,
11260,
11380,
11500,
11620,
11740,
11860,
11980,
12100,
12220,
12340,
12460,
12580,
12700,
12820,
12940,
13060,
13180,
13300,
13420,
13540,
13660,
13780,
13900,
14020,
14140,
14260,
]
index = int(min(point // 25, len(SkillAttackList) - 1))
SkillAttack = SkillAttackList[index] / 100
Buffer = BufferList[index]
return round(SkillAttack, 4), int(round(Buffer))
# region 潜影暗袭