Skip to content

Commit e93e78a

Browse files
committed
Fixed summer lip 3rd skill script
1 parent d5815bd commit e93e78a

File tree

5 files changed

+315
-251
lines changed

5 files changed

+315
-251
lines changed

app/core/nice/skill.py

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,20 @@
66
from ...config import Settings
77
from ...schemas.common import Language, Region
88
from ...schemas.enums import SKILL_TYPE_NAME, SkillScriptCond
9-
from ...schemas.gameenums import CARD_TYPE_NAME, COND_TYPE_NAME
9+
from ...schemas.gameenums import (
10+
BATTLE_BRANCH_SKILL_COND_BRANCH_TYPE_NAME,
11+
CARD_TYPE_NAME,
12+
COND_TYPE_NAME,
13+
BattleBranchSkillCondBranchType,
14+
)
1015
from ...schemas.nice import (
1116
AssetURL,
1217
CondBranchSkillInfo,
1318
ExtraPassive,
1419
NiceSelectAddInfoBtnCond,
1520
NiceSkill,
1621
NiceSkillAdd,
22+
NiceSkillEntityScript,
1723
NiceSkillReverse,
1824
NiceSkillSvt,
1925
NiceSvtSkillRelease,
@@ -121,18 +127,6 @@ def get_nice_skill_script(skill_script: dict[str, Any]) -> dict[str, Any]:
121127
parse_skill_script_cond(cond) for cond in button["conds"]
122128
]
123129

124-
if "condBranchSkillInfo" in skill_script:
125-
skill_script["condBranchSkillInfo"] = [
126-
CondBranchSkillInfo(
127-
condType=COND_TYPE_NAME[info.condType],
128-
condValue=info.condValue,
129-
skillId=info.skillId,
130-
detailText=info.detailText,
131-
iconBuffId=info.iconBuffId,
132-
)
133-
for info in skill_script["condBranchSkillInfo"]
134-
]
135-
136130
return skill_script
137131

138132

@@ -162,6 +156,29 @@ def get_nice_select_td_info(select_info: Any) -> SelectTreasureDeviceInfo:
162156
)
163157

164158

159+
def get_nice_skill_entity_script(
160+
script: dict[str, Any],
161+
) -> NiceSkillEntityScript | None:
162+
if not script:
163+
return None
164+
165+
if "condBranchSkillInfo" in script:
166+
script["condBranchSkillInfo"] = [
167+
CondBranchSkillInfo(
168+
condType=BATTLE_BRANCH_SKILL_COND_BRANCH_TYPE_NAME[
169+
BattleBranchSkillCondBranchType[info["condType"]].value
170+
],
171+
condValue=info["condValue"],
172+
skillId=info["skillId"],
173+
detailText=info["detailText"],
174+
iconBuffId=info["iconBuffId"],
175+
)
176+
for info in script["condBranchSkillInfo"]
177+
]
178+
179+
return NiceSkillEntityScript.model_validate(script)
180+
181+
165182
async def get_nice_skill_with_svt(
166183
conn: AsyncConnection,
167184
skillEntity: SkillEntityNoReverse,
@@ -189,6 +206,7 @@ async def get_nice_skill_with_svt(
189206
get_nice_skill_svt(td_svt, skillEntity.mstSvtSkillRelease)
190207
for td_svt in sorted_svtSkill
191208
],
209+
"skillEntityScript": get_nice_skill_entity_script(skillEntity.mstSkill.script),
192210
}
193211

194212
if mstSvtPassiveSkills:

app/schemas/gameenums.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6899,6 +6899,29 @@ class NiceQuestExtensionSubType(StrEnum):
68996899
}
69006900

69016901

6902+
class BattleBranchSkillCondBranchType(IntEnum):
6903+
None_ = 0
6904+
IsSelfTarget = 1
6905+
Individuality = 2
6906+
6907+
6908+
class NiceBattleBranchSkillCondBranchType(StrEnum):
6909+
"""Battle Branch Skill Cond Branch Type"""
6910+
6911+
none = "none"
6912+
isSelfTarget = "isSelfTarget"
6913+
individuality = "individuality"
6914+
6915+
6916+
BATTLE_BRANCH_SKILL_COND_BRANCH_TYPE_NAME: dict[
6917+
int, NiceBattleBranchSkillCondBranchType
6918+
] = {
6919+
0: NiceBattleBranchSkillCondBranchType.none,
6920+
1: NiceBattleBranchSkillCondBranchType.isSelfTarget,
6921+
2: NiceBattleBranchSkillCondBranchType.individuality,
6922+
}
6923+
6924+
69026925
class BuffConditionType(IntEnum):
69036926
HP_HIGHER = 0
69046927
HP_LOWER = 1

app/schemas/nice.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
NiceAiActType,
4545
NiceAiAllocationSvtFlag,
4646
NiceAiCond,
47+
NiceBattleBranchSkillCondBranchType,
4748
NiceBattleFieldEnvironmentGrantType,
4849
NiceBattlePointFlag,
4950
NiceBuffType,
@@ -754,14 +755,6 @@ class SelectTreasureDeviceInfo(BaseModel):
754755
messageOnSelected: str
755756

756757

757-
class CondBranchSkillInfo(BaseModel):
758-
condType: NiceCondType
759-
condValue: list[int]
760-
skillId: int
761-
detailText: str
762-
iconBuffId: int
763-
764-
765758
class NiceSkillScript(BaseModel):
766759
NP_HIGHER: Optional[list[int]] = None
767760
NP_LOWER: Optional[list[int]] = None
@@ -782,6 +775,17 @@ class NiceSkillScript(BaseModel):
782775
IgnoreBattlePointUp: list[list[int]] | None = None
783776
tdChangeByBattlePoint: list[TdChangeByBattlePoint] | None = None
784777
selectTreasureDeviceInfo: list[SelectTreasureDeviceInfo] | None = None
778+
779+
780+
class CondBranchSkillInfo(BaseModel):
781+
condType: NiceBattleBranchSkillCondBranchType
782+
condValue: list[int]
783+
skillId: int
784+
detailText: str
785+
iconBuffId: int
786+
787+
788+
class NiceSkillEntityScript(BaseModel):
785789
condBranchSkillInfo: list[CondBranchSkillInfo] | None = None
786790

787791

@@ -853,6 +857,7 @@ class NiceSkill(BaseModelORJson):
853857
coolDown: list[int]
854858
actIndividuality: list[NiceTrait]
855859
script: NiceSkillScript
860+
skillEntityScript: NiceSkillEntityScript | None = None
856861
extraPassive: list[ExtraPassive]
857862
skillAdd: list[NiceSkillAdd]
858863
skillSvts: list[NiceSkillSvt] = []

0 commit comments

Comments
 (0)