From f402c2565a0e74fa50b05286c5ac9c54611125a0 Mon Sep 17 00:00:00 2001 From: wangfukang <15630117759@163.com> Date: Tue, 2 Jun 2026 12:52:06 +0800 Subject: [PATCH] 1 --- package1/planet/adventure.vue | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/package1/planet/adventure.vue b/package1/planet/adventure.vue index de9ffc5..cbe14bf 100644 --- a/package1/planet/adventure.vue +++ b/package1/planet/adventure.vue @@ -54,7 +54,7 @@ 规则:点选未被压住的卡牌,底部槽内3张相同自动消除,槽满则失败。 - 挑战难度 · 剩余 {{remainingCount}} 张 · 当前可点 {{availableCount}} 张 · {{riskText}} + 地狱难度 · 剩余 {{remainingCount}} 张 · 当前可点 {{availableCount}} 张 · {{riskText}} @@ -70,9 +70,9 @@ - 助推槽 {{slots.length}}/7 + 助推槽 {{slots.length}}/{{slotLimit}} - + {{slots[i - 1].icon}} @@ -139,6 +139,7 @@ startTs: 0, cards: [], slots: [], + slotLimit: 5, moveCount: 0, modal: { show: false, title: '', sub: '' } } @@ -181,8 +182,8 @@ return this.cards.filter(item => !item.removed && !item.selected && !this.isLocked(item)).length }, riskText() { - if (this.slots.length >= 6) return '危险:差1格就满' - if (this.slots.length >= 5) return '注意槽位' + if (this.slots.length >= this.slotLimit - 1) return '危险:差1格就满' + if (this.slots.length >= this.slotLimit - 2) return '注意槽位' return '先看上层再下手' } }, @@ -255,7 +256,7 @@ }) }, buildLevel() { - const icons = ['🍔', '🥤', '📚', '🏀', '🎧', '🚲', '🍜', '📦', '☕', '🧋'] + const icons = ['🍔', '🥤', '📚', '🏀', '🎧', '🚲', '🍜', '📦', '☕', '🧋', '🎮', '🌟', '🍟', '🥪'] let cards = [] for (let attempt = 0; attempt < 8; attempt++) { const seed = this.levelSeed() + '_try_' + attempt @@ -272,21 +273,21 @@ }, buildCardPositions(seed) { const cards = [] - const layerCounts = [36, 30, 24] + const layerCounts = [42, 36, 30, 18] const rand = this.seededRandom(seed + '_pos') let idx = 0 layerCounts.forEach((count, layer) => { for (let i = 0; i < count; i++) { - const col = i % 6 - const row = Math.floor(i / 6) - const dx = Math.floor(rand() * 22) - const dy = Math.floor(rand() * 18) + const col = i % 7 + const row = Math.floor(i / 7) + const dx = Math.floor(rand() * 18) + const dy = Math.floor(rand() * 14) const card = { id: 'c' + idx, icon: '', layer, - x: 16 + col * 80 + (layer * 20) + ((row % 2) * 12) + dx, - y: 18 + row * 70 + (layer * 42) + dy, + x: 12 + col * 70 + (layer * 16) + ((row % 2) * 10) + dx, + y: 16 + row * 62 + (layer * 34) + dy, style: '', removed: false, selected: false, @@ -353,7 +354,7 @@ }) }, isOverlap(a, b) { - return Math.abs(a.x - b.x) < 72 && Math.abs(a.y - b.y) < 68 + return Math.abs(a.x - b.x) < 66 && Math.abs(a.y - b.y) < 58 }, pickCard(card) { if (this.cleared) { @@ -365,14 +366,14 @@ return } if (card.removed || card.selected || this.isLocked(card)) return - if (this.slots.length >= 7) return + if (this.slots.length >= this.slotLimit) return card.selected = true this.slots.push(card) this.moveCount++ this.tryClear(card.icon) if (this.cards.every(item => item.removed || item.selected)) { this.finishClear() - } else if (this.slots.length >= 7) { + } else if (this.slots.length >= this.slotLimit) { this.failLevel() } },