Files
MatchMaster/assets/shop/script/buyActivate.ts

66 lines
2.1 KiB
TypeScript

const { ccclass, property } = cc._decorator;
@ccclass
export default class buyActivate extends cc.Component {
@property(cc.Button)
qiutBtn: cc.Button = null;
@property(cc.Button)
buyBtn: cc.Button = null;
private callback: Function = null;
private rewardOffset: number = 0;
start() {
}
init(callback: Function, timeStr: string, tier: number = 0) {
// 初始化回调函数
this.callback = callback;
// 添加按钮事件监听
this.qiutBtn.node.on('click', this.onQuitBtnClick, this);
const vip = cc.find('activate/activateNode/vip/buyBtn', this.node);
const svip = cc.find('activate/activateNode/svip/buyBtn', this.node);
vip.parent.opacity = tier === 0 ? 255 : 150;
vip.active = tier === 0;
vip.getComponent(cc.Button).interactable = tier === 0;
svip.getChildByName('30yuan').active = tier === 0;
svip.getChildByName('12yuan').active = tier === 18;
for (const name of ['reward', 'add']) {
const node = svip.parent.getChildByName(name);
if (node) node.active = tier !== 18;
}
const offset = tier === 18 ? 100 : 0;
for (const name of ['reward1', 'reward2', 'reward3', 'reward4', 'reward5']) {
const node = svip.parent.getChildByName(name);
if (node) node.y += offset - this.rewardOffset;
}
this.rewardOffset = offset;
vip.on('click', () => { if (tier === 0) this.onBuyBtnClick('battlepass'); }, this);
svip.on('click', () => this.onBuyBtnClick(tier === 18 ? 'battlepass_12' : 'battlepass_30'), this);
// this.countdown.string = timeStr;
}
// updateCountdown(str: string) {
// this.countdown.string = str;
// }
onQuitBtnClick() {
// 移除界面
this.node.destroy();
}
onBuyBtnClick(product: string = 'battlepass') {
// 调用回调函数,触发passCheck中的购买逻辑
if (this.callback && typeof this.callback === 'function') {
this.callback(product);
}
// 移除界面
this.node.destroy();
}
}