Files
18xchat/assets/Scripts/Sub/UI/TalkAdDialog.ts
T
2025-07-17 17:18:21 +08:00

232 lines
7.8 KiB
TypeScript

import { _decorator, Color, Label, Node, Sprite, view } from 'cc';
import { GButton } from '../../Main/Common/GButton';
import Utils from '../../Main/Common/Utils';
import li_BaseView from '../../Main/Common/li_BaseView';
import HttpUnit from '../../Main/Common/HttpUnit';
import SubManager from '../SubManager';
import GameManager from '../../Main/Manager/GameManager';
const { ccclass, property } = _decorator;
/**广告、分享的用途类型 */
export enum E_AD_TARGET {
/**加相亲次数 */
xiangqin = 1,
/**加聊天次数 */
liaotian = 2,
/**对话评分+10 */
baoji = 3,
/**撤回上一轮对话 */
chehui = 4,
/**收藏奖励 */
shoucangJiangli = 5,
}
//关卡内看广告弹窗界面
@ccclass('TalkAdDialog')
export class TalkAdDialog extends li_BaseView {
private _nodeTab: any = {};
private _data;
//----重写父类接口---------------------------------------
onLoadCT() {
this.registerListenner();
Utils.parseNode(this.node, this._nodeTab)
}
openUIDataCT(data: any): void {
this._data = data || {};
}
registerListenner() {
// Utils.addInnerEL(InnerMsgCode.GM_UI_Close, this, this.resiveGMClose)
}
start() {
GButton.BandClick(this._nodeTab.mask, ()=>{
if (this._data.closeCallback) {
this._data.closeCallback();
}
this.onClose();
}, this, 0, null, null, false);
GButton.BandClick(this._nodeTab.btnClose, ()=>{
if (this._data.closeCallback) {
this._data.closeCallback();
}
this.onClose();
}, this);
GButton.BandClick(this._nodeTab.btnCancel, ()=>{
if (this._data.closeCallback) {
this._data.closeCallback();
}
this.onClose();
}, this);
GButton.BandClick(this._nodeTab.btnFree, ()=>{
if (this._data.adCallback) {
this._data.adCallback(true);
}
this.onClose();
}, this);
GButton.BandClick(this._nodeTab.btnShare, ()=>{
if (this._data.type == E_AD_TARGET.liaotian) {
let levelData = GameManager.CurLevelData
if (levelData && levelData.share_num <= 0) {
SubManager.ShowPrompt("今日分享次数已用完");
return;
}
}
if (this._data.type == E_AD_TARGET.xiangqin && HttpUnit.GetXiangqinShareNum() <= 0) {
SubManager.ShowPrompt("今日分享次数已用完");
return;
}
if (this._data.shareCallback) {
this._data.shareCallback();
}
this.onClose();
}, this);
GButton.BandClick(this._nodeTab.btnAD, ()=>{
if (this._data.type == E_AD_TARGET.liaotian) {
let levelData = GameManager.CurLevelData
if (levelData && levelData.ad_num <= 0) {
SubManager.ShowPrompt("关卡内续航次数已用完");
return;
}
}
if (this._data.type == E_AD_TARGET.xiangqin && HttpUnit.GetXiangqinAdNum() <= 0) {
SubManager.ShowPrompt("今日广告次数已用完");
return;
}
if (this._data.type == E_AD_TARGET.baoji) {
let levelData = GameManager.CurLevelData
if (levelData) {
if (levelData.can_use_strength_cnt <= 0) {
SubManager.ShowPrompt("关卡内加分次数已用完");
return;
}
if (levelData.is_strength_take_effect == true) {
SubManager.ShowPrompt("“甜蜜暴击”效果已生效,效果不可叠加");
return;
}
}
}
if (this._data.type == E_AD_TARGET.chehui) {
let levelData = GameManager.CurLevelData
if (levelData && levelData.can_use_cancel_cnt <= 0) {
SubManager.ShowPrompt("关卡内撤回次数已用完");
return;
}
}
if (this._data.adCallback) {
this._data.adCallback();
}
this.onClose();
}, this);
Utils.setString(this._nodeTab.labContent, this._data.content);
//关卡内聊天不再显示分享按钮
let showshare = false
if (this._data.type == E_AD_TARGET.xiangqin) {
showshare = true
}
this._nodeTab.btnShare.active = showshare;
this._nodeTab.btnCancel.active = !showshare;
//免费使用次数逻辑
let isfree = false
if (this._data.type == E_AD_TARGET.baoji) {
let levelData = GameManager.CurLevelData
if (levelData) {
if (levelData.first_strength == undefined || levelData.first_strength == 0) {
isfree = true
}
}
} else if (this._data.type == E_AD_TARGET.chehui) {
let levelData = GameManager.CurLevelData
if (levelData) {
if (levelData.first_cancel == undefined || levelData.first_cancel == 0) {
isfree = true
}
}
}
this._nodeTab.btnFree.active = isfree;
this._nodeTab.btnAD.active = !isfree;
//次数用完后置灰按钮
this.refreshBtnState()
}
//刷新按钮状态
private refreshBtnState() {
//分享按钮
let shareGray = false
if (this._data.type == E_AD_TARGET.liaotian) {
let levelData = GameManager.CurLevelData
if (levelData && levelData.share_num <= 0) {
shareGray = true
}
} else if (this._data.type == E_AD_TARGET.xiangqin) {
if (HttpUnit.GetXiangqinShareNum() <= 0) {
shareGray = true
}
}
if (shareGray) {
let shareSpt: Sprite = this._nodeTab.btnShare.getComponent(Sprite);
shareSpt.grayscale = true;
// shareSpt.color = new Color(173, 173, 173, 255);
}
//广告按钮
let adGray = false
if (this._data.type == E_AD_TARGET.liaotian) {
let levelData = GameManager.CurLevelData
if (levelData && levelData.ad_num <= 0) {
Utils.setNodeGray(this._nodeTab.btnAD, true);
adGray = true
}
} else if (this._data.type == E_AD_TARGET.xiangqin) {
if (HttpUnit.GetXiangqinAdNum() <= 0) {
Utils.setNodeGray(this._nodeTab.btnAD, true);
adGray = true
}
} else if (this._data.type == E_AD_TARGET.baoji) {
let levelData = GameManager.CurLevelData
if (levelData) {
if (levelData.can_use_strength_cnt <= 0 || levelData.is_strength_take_effect == true) {
adGray = true
}
}
} else if (this._data.type == E_AD_TARGET.chehui) {
let levelData = GameManager.CurLevelData
if (levelData && levelData.can_use_cancel_cnt <= 0) {
adGray = true
}
}
if (adGray) {
let adSpt: Sprite = this._nodeTab.btnAD.getComponent(Sprite);
adSpt.grayscale = true;
// let adSpt1: Sprite = this._nodeTab.adSpt1.getComponent(Sprite);
// adSpt1.color = new Color(255, 255, 255, 130);
// let labYes: Label = this._nodeTab.labYes.getComponent(Label);
// labYes.color = new Color(173, 173, 173, 255);
}
}
update(deltaTime: number) {
}
}