fix: correct seven-day gift claimed overlay

This commit is contained in:
keke 2026-09-16 11:47:17 +08:00
parent e992a8f226
commit e1fb37816f

View File

@ -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,20 @@ 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;
card.addChild(overlay);
}
this.setSprite(overlay, this.claimedOverlay);
overlay.setContentSize(card.width, card.height);
overlay.setPosition(0, 0);
overlay.zIndex = 9;
overlay.active = claimed;
let badge = card.getChildByName("claimedBadge");
if (!badge) {
badge = new cc.Node("claimedBadge");