diff --git a/package1/components/planet/planet-adventure-entry.vue b/package1/components/planet/planet-adventure-entry.vue index 512f8ba..64e88be 100644 --- a/package1/components/planet/planet-adventure-entry.vue +++ b/package1/components/planet/planet-adventure-entry.vue @@ -1,15 +1,33 @@ diff --git a/package1/components/planet/planet-box.vue b/package1/components/planet/planet-box.vue index 62b7060..8a4097c 100644 --- a/package1/components/planet/planet-box.vue +++ b/package1/components/planet/planet-box.vue @@ -81,7 +81,6 @@ height: 150rpx; border-radius: 50%; background: radial-gradient(circle, rgba(255,184,77,0.38), transparent 66%); - animation: spark 2s ease-in-out infinite; } .pb-box { diff --git a/package1/components/planet/planet-daily-loop.vue b/package1/components/planet/planet-daily-loop.vue index fe160b6..4b1c1b7 100644 --- a/package1/components/planet/planet-daily-loop.vue +++ b/package1/components/planet/planet-daily-loop.vue @@ -3,56 +3,87 @@ 2 MIN DAILY - 今天就做这几步 - 收券、看事件、反搜、投奖池,90秒走人 + {{progressTitle}} + 完成任务可获得星球券与开奖权重 + + + 星球补给地图 + 进入 - {{data.minutesToDraw || 0}}min - - - 今晚现金奖池 - ¥{{poolAmount}} + + + + + + + + + 投入星球券 + 参与今晚奖金池瓜分 + + + {{taskDone('pool') ? '已参与' : '立即参与'}} + 预计提升中奖概率 +{{boostText}}% + + + + + + + + {{taskDone('sign') ? '✓ 已完成' : '待签到'}} + + 签到收券 + 奖励 +1 星球券 + + + + + {{taskDone('hunt') ? '✓ 已完成' : '去搜查 →'}} + + 星球搜查令 + 随机搜查,白嫖得券 - + {{data.todayCollectedTickets || 0}} 今日收券 - + {{data.myPoolTickets || 0}} 已投奖池 - - {{data.poolJoinCount || 0}} - 参与同学 + + {{data.myProbability || 0}}% + 中奖概率 - - {{e}} - - - - - 1 - {{collectText}} - - - 2 - {{data.hasRevengeTarget ? '反搜一下' : '随机搜查'}} - - - 3 - {{joinText}} - - + {{rewardFloat.text}} + @@ -60,49 +91,155 @@ export default { props: { data: { type: Object, default: () => ({}) }, - poolAmount: { type: [String, Number], default: 0 } + myTicketCount: { type: Number, default: 0 } + }, + data() { + return { + flying: false, + flyTimer: null, + rewardFloat: { + show: false, + text: '', + type: '' + }, + rewardTimer: null + } }, computed: { events() { return this.data.events || [] }, - collectText() { - if (!this.data.signedToday) return '签到收券' - if (this.data.boxAvailable) return '开补给箱' - return '已收完' + doneCount() { + let count = 0 + if (this.taskDone('pool')) count += 1 + if (this.taskDone('sign')) count += 1 + if (this.taskDone('hunt')) count += 1 + return count + }, + progressPercent() { + return Math.round((this.doneCount / 3) * 100) }, - joinText() { - const n = this.data.suggestedAddTickets || 1 - return '投' + n + '券冲奖池' + progressTitle() { + const left = 3 - this.doneCount + return left > 0 ? ('离瓜分奖金池还差 ' + left + ' 步') : '今日白嫖进度已完成' + }, + boostText() { + const current = Number(this.data.myProbability || 0) + const suggested = Number(this.data.suggestedProbability || 0) + if (suggested > current) return (suggested - current).toFixed(2) + return '1.00' + } + }, + beforeDestroy() { + if (this.flyTimer) clearTimeout(this.flyTimer) + if (this.rewardTimer) clearTimeout(this.rewardTimer) + }, + methods: { + taskDone(type) { + if (type === 'sign') return !!this.data.signedToday && !this.data.boxAvailable + if (type === 'hunt') return !!this.data.searchedToday || !!this.data.huntedToday || (this.data.remainSearchCount === 0) + if (type === 'pool') return (this.data.myPoolTickets || 0) > 0 + return false + }, + onCollect() { + this.playReward('+1 星球券', 'sign') + this.$emit('collect') + }, + onRevenge() { + this.playReward('随机奖励', 'hunt') + this.$emit('revenge') + }, + playReward(text, type) { + if (this.rewardTimer) clearTimeout(this.rewardTimer) + this.rewardFloat = { + show: true, + text, + type + } + this.rewardTimer = setTimeout(() => { + this.rewardFloat.show = false + }, 800) + }, + onJoin() { + if (this.flying) return + if (this.myTicketCount <= 0) { + this.$emit('join') + return + } + this.flying = true + this.playReward('+开奖权重', 'pool') + this.$emit('join') + if (this.flyTimer) clearTimeout(this.flyTimer) + this.flyTimer = setTimeout(() => { + this.flying = false + }, 940) } } } diff --git a/package1/components/planet/planet-header.vue b/package1/components/planet/planet-header.vue index 5fe074f..a438568 100644 --- a/package1/components/planet/planet-header.vue +++ b/package1/components/planet/planet-header.vue @@ -5,8 +5,8 @@ Hello,白嫖居民 - 明细 - 开奖 + 得券明细 + 开奖记录 攒券、追捕、开盲盒,全校一起瓜分补给池 @@ -21,7 +21,7 @@ - + 白嫖说明书 @@ -74,7 +74,7 @@ {{data.joinCount || 0}} 竟奖人数 - + {{rankText}} 财富坐标 @@ -138,6 +138,12 @@ goDraw() { this.$emit('draw') }, + goGuide() { + this.$emit('guide') + }, + goRank() { + this.$emit('rank') + }, pad(n) { return n < 10 ? ('0' + n) : ('' + n) }, @@ -238,7 +244,7 @@ border-radius: 999rpx; background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.95), rgba(79,183,255,0.4)); transform: rotate(-28deg); - animation: meteorFly 4.8s linear infinite; + opacity: 0.48; z-index: 2; } @@ -269,7 +275,6 @@ width: 170rpx; height: 78rpx; z-index: 4; - animation: stationFloat 5.6s ease-in-out infinite; } @keyframes stationFloat { @@ -307,7 +312,6 @@ background: linear-gradient(145deg, #FFE6A6, #FFB7D1); box-shadow: inset -10rpx -10rpx 20rpx rgba(150,93,48,0.12), 0 12rpx 30rpx rgba(255,184,77,0.18); z-index: 3; - animation: asteroidFloat 6.2s ease-in-out infinite; } .ph-asteroid-a { @@ -346,7 +350,6 @@ font-size: 23rpx; font-weight: 900; z-index: 5; - animation: treasureFloat 4.4s ease-in-out infinite; } .ph-floating-box-lid { @@ -404,7 +407,6 @@ width: 610rpx; height: 610rpx; z-index: 3; - animation: planetBreath 4.4s ease-in-out infinite; } .ph-planet-glow { @@ -416,7 +418,6 @@ border-radius: 50%; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(53,214,166,0.26), rgba(79,183,255,0.12) 42%, rgba(255,255,255,0) 68%); - filter: blur(8rpx); } .ph-planet { @@ -447,7 +448,6 @@ .ph-planet-map { position: absolute; background: rgba(53,214,166,0.16); - filter: blur(1rpx); } .ph-planet-map-a { @@ -482,7 +482,6 @@ position: absolute; border-radius: 50%; background: rgba(255,255,255,0.72); - filter: blur(2rpx); } .ph-shine-a { @@ -522,7 +521,6 @@ border-radius: 56rpx; background: rgba(255,255,255,0.34); border: 1rpx solid rgba(255,255,255,0.72); - backdrop-filter: blur(14px); box-shadow: inset 0 0 0 1rpx rgba(255,255,255,0.36), 0 18rpx 44rpx rgba(53,214,166,0.12); display: flex; flex-direction: column; @@ -647,7 +645,6 @@ display: flex; flex-direction: column; align-items: center; - animation: orbitFloat 4s ease-in-out infinite; } .ph-satellite-left { @@ -692,7 +689,6 @@ width: 142rpx; height: 164rpx; z-index: 7; - animation: squirrelFloat 4.6s ease-in-out infinite; } @keyframes squirrelFloat { diff --git a/package1/components/planet/planet-me.vue b/package1/components/planet/planet-me.vue index eeebb32..c221f04 100644 --- a/package1/components/planet/planet-me.vue +++ b/package1/components/planet/planet-me.vue @@ -74,7 +74,6 @@ background: linear-gradient(145deg, rgba(255,255,255,0.86), rgba(245,255,250,0.64)); border: 2rpx solid rgba(255,255,255,0.9); box-shadow: 0 22rpx 60rpx rgba(53,214,166,0.14); - backdrop-filter: blur(10px); overflow: hidden; /* transform: rotate(-1.2deg); */ } diff --git a/package1/components/planet/planet-rank.vue b/package1/components/planet/planet-rank.vue index 63ded80..ae2de37 100644 --- a/package1/components/planet/planet-rank.vue +++ b/package1/components/planet/planet-rank.vue @@ -121,7 +121,6 @@ border-radius: 999rpx; transform-origin: left center; background: linear-gradient(90deg, rgba(255,122,89,0.72), rgba(255,122,89,0)); - animation: radarSpin 2.4s linear infinite; } @keyframes radarSpin { diff --git a/package1/planet/adventure.vue b/package1/planet/adventure.vue index ebff562..a1f6df0 100644 --- a/package1/planet/adventure.vue +++ b/package1/planet/adventure.vue @@ -1,14 +1,14 @@