66 lines
2.1 KiB
TypeScript
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();
|
||
}
|
||
}
|