//#region 文件引入 import { _decorator, Button, Component, Label, Node, sp, Sprite,Animation, RichText, random } from "cc"; import BaseUIForm from "../../Mgr_UI/BaseUIForm"; import { TokenDataProxy } from "../../Mgr_LocalData/DataTypeProxy/TokenDataProxy"; import { EVideoType, GameTotalType, PropType, TXVideoMapping } from "../../const/GameEnum"; import UIMgr from "../../Mgr_UI/UIMgr"; import { Global } from "../../Global"; import { LocalDataMgr } from "../../Mgr_LocalData/LocalDataMgr"; import { AD_DOUBLE_CONFIG, AD_DOUBLE_TYPE, CONFIDANTE_TYPE, TALENT_TYPE } from "../../const/GGameData"; import { TXSDKMgr } from "../../Mgr_Ge/TXSDKMgr"; import MathUtils from "../../ExUtils/MathUtils"; import MesMgr from "../../MesEvent/MesMgr"; import { EGlobalEvent } from "../../MesEvent/EGlobalEvent"; import GDUtils from "../../ExCUtils/GDUtils"; import { ResUrlLoad } from "../../CComEx/ResUrlLoad"; import { Utils } from "../../ExUtils/Utils"; //#endregion 文件引入 const {ccclass, property,menu} = _decorator; @ccclass("LookAdGetUI_Proxy") export default class LookAdGetUIDoule_Proxy extends BaseUIForm{ //#region 节点自动生成 @property(Label) lab_title: Label = null; @property(Node) n_coinInfo: Node = null; @property(Node) n_coin: Node = null; @property(Label) lab_coin: Label = null; @property(Label) lab_mul: Label = null; @property(Node) n_offlineInfo: Node = null; @property(Label) lab_offline_coin: Label = null; @property(Label) lab_shopNum: Label = null; @property(Button) btn_AdGetDoule: Button = null; @property(Label) lab_btnmul: Label = null; @property(Button) btn_AdGet: Button = null; //#endregion 节点自动生成 @property(Button) closeGetRewardBtn: Button = null; private m_CoinType:PropType = PropType.eGold; private m_AdGetNum:number = 100000; private m_AdShopRefNum:number = 0; private m_EventName:string = EVideoType.AddCoinDouble; // 翻倍下限额外增加的值 private m_MinEx:number = 0; onButtonClick(button: Button) { /**点击事件触发*/ switch (button) { case this.btn_AdGetDoule: Global.showvideo({name: this.m_EventName, gamelv: this.mDataMgr.Scene.getRealLevel()},()=>{ let mul = 1; const config = AD_DOUBLE_CONFIG.find(item=>item.type == this.param.type); if(config){ if(config.min == config.max){ mul = config.min; }else{ if(AD_DOUBLE_TYPE.AD_ADD_TJCOIN == this.param.type){ const rand = MathUtils.randomRangeInt(1, 100); if(rand <= 25){ mul = 2; }else if(rand <= 75){ mul = 3; }else{ mul = 4; } }else{ mul = MathUtils.randomRangeInt(config.min + this.m_MinEx, config.max); } } this.getReward(mul); } }); break; case this.btn_AdGet: this.getReward(); break case this.closeGetRewardBtn: this.getReward(); break default: ConsoleEx.Log(button); break; } } protected start(): void { if(this.param){ this.m_AdShopRefNum = 0; this.m_AdGetNum = this.param.coin; this.m_CoinType = PropType.eGold; CNodeUtils.setActive(this.n_coinInfo, true); CNodeUtils.setActive(this.n_offlineInfo, false); CNodeUtils.switchText(this.lab_title,"恭喜获得"); CNodeUtils.switchText(this.lab_btnmul,"随机翻倍"); const tokenicon = this.n_coin.getComponent(ResUrlLoad); const labnum = Utils.StringUtils.formatLargeNumber(this.m_AdGetNum); switch(this.param.type){ case AD_DOUBLE_TYPE.AD_ADD_COIN: this.m_MinEx = Math.min(this.mDataMgr.Pass.passed_times, Global.CsvMgr.cnf_discretization_csv[9].num2); this.m_EventName = EVideoType.AddCoinDouble; tokenicon.showResInfo(GameTotalType.TOKEN, PropType.eGold); CNodeUtils.switchText(this.lab_coin,`${GDUtils.getTokenName(PropType.eGold)}+${labnum}`); TXSDKMgr.ins.AD_UI_SHOW(TXVideoMapping[EVideoType.AddCoinDouble]); break; case AD_DOUBLE_TYPE.AD_ADD_TJCOIN: this.m_EventName = EVideoType.AddTjCoinDouble; tokenicon.showResInfo(GameTotalType.TOKEN, PropType.eTaiJi); CNodeUtils.switchText(this.lab_coin,`${GDUtils.getTokenName(PropType.eTaiJi)}+${this.m_AdGetNum}`); this.m_CoinType = PropType.eTaiJi; break; case AD_DOUBLE_TYPE.AD_OFFLINE: this.m_EventName = EVideoType.OffLineDouble; this.m_AdShopRefNum = this.param.shopNum; CNodeUtils.switchText(this.lab_title,"离线奖励"); CNodeUtils.switchText(this.lab_btnmul,"奖励 x2"); CNodeUtils.switchText(this.lab_offline_coin,`+${labnum}`); CNodeUtils.switchText(this.lab_shopNum,`+${this.m_AdShopRefNum}次`); CNodeUtils.setActive(this.n_offlineInfo, true); CNodeUtils.setActive(this.n_coinInfo, false); break; } const config = AD_DOUBLE_CONFIG.find(item=>item.type == this.param.type); config && CNodeUtils.switchText(this.lab_mul,`随机${config.min + this.m_MinEx}~${config.max}倍`) } } onClick_bgCloseBtn(btn?: Node): void { this.getReward() } getReward(mul:number = 1): void { this.m_AdGetNum *= mul; this.m_AdShopRefNum *= mul; mul > 1 && UIMgr.Ins.ShowTipsUI(`恭喜奖励 x${mul}倍`); if(this.m_CoinType == PropType.eGold){ let rewcoin = this.m_AdGetNum; UIMgr.Ins.ShowTipsUI(`获得${GDUtils.getTokenName(PropType.eGold)} +${Utils.StringUtils.formatLargeNumber(this.m_AdGetNum)}`); const talenttime = LocalDataMgr.Talent.getProp1(TALENT_TYPE.AD_ADD_COIN); if(this.param.type == AD_DOUBLE_TYPE.AD_ADD_COIN){ if(talenttime > 0){ rewcoin = this.m_AdGetNum * talenttime; const labnum = Utils.StringUtils.formatLargeNumber(rewcoin - this.m_AdGetNum) UIMgr.Ins.ShowTipsUI(`天赋爆发,额外+${labnum}`); } const confcoin = this.m_AdGetNum * LocalDataMgr.Confidante.getProp(CONFIDANTE_TYPE.来财) * 0.01; if(confcoin > 0){ rewcoin += confcoin; UIMgr.Ins.ShowTipsUI(`经脉爆发,额外+${Utils.StringUtils.formatLargeNumber(confcoin)}`); } } TokenDataProxy.Ins.addToken(PropType.eGold, rewcoin); }else if(this.m_CoinType == PropType.eTaiJi){ TokenDataProxy.Ins.addToken(PropType.eTaiJi, this.m_AdGetNum); UIMgr.Ins.ShowTipsUI(`${GDUtils.getTokenName(PropType.eTaiJi)} +${this.m_AdGetNum}`); } if(this.m_AdShopRefNum > 0){ this.mDataMgr.Shop.addTimes(this.m_AdShopRefNum); UIMgr.Ins.ShowTipsUI(`离线奖励: 商店刷新次数+${this.m_AdShopRefNum}`); MesMgr.event(EGlobalEvent.OUTLINE_UPDATE, false); } this.param.callback && this.param.callback(); this.CloseUI(); } }