From 5e71692956627996a5affe6e73404db4a0bdf2f6 Mon Sep 17 00:00:00 2001 From: keke Date: Wed, 16 Sep 2026 11:48:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=83=E6=97=A5?= =?UTF-8?q?=E7=A4=BC=E5=8C=85=E5=B7=B2=E9=A2=86=E5=8F=96=E9=81=AE=E7=BD=A9?= =?UTF-8?q?=E5=B1=82=E7=BA=A7=E5=8F=8A=E7=AC=AC=E4=B8=83=E5=A4=A9=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/seven_day_gift/SevenDayGift.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/assets/seven_day_gift/SevenDayGift.ts b/assets/seven_day_gift/SevenDayGift.ts index c342658..b6f040e 100644 --- a/assets/seven_day_gift/SevenDayGift.ts +++ b/assets/seven_day_gift/SevenDayGift.ts @@ -189,9 +189,7 @@ export default class SevenDayGift extends cc.Component { const claimed = !!(reward && reward.claimed); const available = !!this.info.canClaim && day === Number(this.info.nextRewardDay); const special = day === TOTAL_DAYS; - const cardFrame = claimed && !special - ? this.claimedOverlay - : special ? this.cardSpecial : available ? this.cardYellow : this.cardBlue; + const cardFrame = special ? this.cardSpecial : available ? this.cardYellow : this.cardBlue; this.setSprite(card, cardFrame); // 白色不改变贴图颜色,保留美术资源的原色。 card.color = cc.Color.WHITE; @@ -212,6 +210,21 @@ export default class SevenDayGift extends cc.Component { const items = reward && Array.isArray(reward.items) ? reward.items : []; this.refreshRewardItems(card, items, special, available || claimed); + // 保留卡片底图,遮暗日期和奖励,已领取印章显示在遮罩上方。 + let overlay = card.getChildByName("claimedOverlay"); + if (!overlay) { + overlay = new cc.Node("claimedOverlay"); + const sprite = overlay.addComponent(cc.Sprite); + sprite.sizeMode = cc.Sprite.SizeMode.CUSTOM; + sprite.trim = false; + card.addChild(overlay); + } + overlay.zIndex = 9; + overlay.setContentSize(card.width, card.height); + overlay.setPosition(0, 0); + overlay.active = claimed; + this.setSprite(overlay, this.claimedOverlay); + let badge = card.getChildByName("claimedBadge"); if (!badge) { badge = new cc.Node("claimedBadge");