feat: add progression logic for puzzle residences

- Implemented functions to manage puzzle progress including checking if residences are started, complete, and unlocked.
- Added utility functions to retrieve piece IDs based on residence and route.
- Introduced a new TypeScript file for progression management.
- Integrated puzzle data configuration and residence data for seamless progression tracking.
This commit is contained in:
zhongyidian committed 2026-05-01 21:19:25 +08:00
1 parent 5a1c3cc368
commit 284302341c
72 files changed
+1104 -517

No files matched your search

+26 -4
View File
@@ -136,10 +136,17 @@ const ResidenceLayoutContent = () => {
return true
},
[ANIMATION_CONFIG.FLY_DURATION, ANIMATION_CONFIG.OPACITY, ANIMATION_CONFIG.SCALE, cleanupAnimation, puzzleBoxRef, residence, unlockPuzzle]
[
ANIMATION_CONFIG.FLY_DURATION,
ANIMATION_CONFIG.OPACITY,
ANIMATION_CONFIG.SCALE,
cleanupAnimation,
puzzleBoxRef,
residence,
unlockPuzzle,
]
)
// 等待元素准备就绪并执行动画
const waitForElementsAndAnimate = useCallback(
async (pieceId: number, retryCount = 0): Promise<void> => {
@@ -165,7 +172,15 @@ const ResidenceLayoutContent = () => {
unlockPuzzle(residence, pieceId)
cleanupAnimation()
},
[ANIMATION_CONFIG.MAX_RETRIES, ANIMATION_CONFIG.RETRY_DELAY, cleanupAnimation, executeFlyAnimation, puzzleBoxRef, residence, unlockPuzzle]
[
ANIMATION_CONFIG.MAX_RETRIES,
ANIMATION_CONFIG.RETRY_DELAY,
cleanupAnimation,
executeFlyAnimation,
puzzleBoxRef,
residence,
unlockPuzzle,
]
)
// 处理碎片动画触发(仅支持拼图功能的故居)
@@ -215,7 +230,14 @@ const ResidenceLayoutContent = () => {
})
})
},
[ANIMATION_CONFIG.APPEAR_DURATION, ANIMATION_CONFIG.GLOW_DURATION, hasPuzzleFeature, isPuzzleUnlocked, residence, waitForElementsAndAnimate]
[
ANIMATION_CONFIG.APPEAR_DURATION,
ANIMATION_CONFIG.GLOW_DURATION,
hasPuzzleFeature,
isPuzzleUnlocked,
residence,
waitForElementsAndAnimate,
]
)
// 获取当前路由的视频路径