You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
5.0 KiB
103 lines
5.0 KiB
//#region 文件引入
|
|
import { _decorator, Button, Component, Label, Node, sp, Sprite,Animation, RichText, SpriteFrame } from "cc";
|
|
import BaseUIForm from "../../Mgr_UI/BaseUIForm";
|
|
import FrameLayout from "../../CComEx/FrameLayout";
|
|
import SceneDataMgr from "../../Mgr_LocalData/SceneDataMgr";
|
|
import StringUtils from "../../ExUtils/StringUtils";
|
|
import UIMgr from "../../Mgr_UI/UIMgr";
|
|
import { EUIForms } from "../../const/UIFormCnf";
|
|
import { Global } from "../../Global";
|
|
import { ESounds } from "../../MesEvent/ESounds";
|
|
import GDUtils from "../../ExCUtils/GDUtils";
|
|
import { EBundleName, EVideoType, FIGHTING_TYPE, GameTotalType, PropType } from "../../const/GameEnum";
|
|
|
|
//#endregion 文件引入
|
|
const {ccclass, property,menu} = _decorator;
|
|
@ccclass("VictoryUI_Proxy")
|
|
export default class VictoryUI_Proxy extends BaseUIForm{
|
|
//#region 节点自动生成
|
|
@property(Node)
|
|
n_SuccNode: Node = null;
|
|
@property(Button)
|
|
btn_Continue: Button = null;
|
|
//#endregion 节点自动生成
|
|
@property(FrameLayout)
|
|
private mFrameLayout: FrameLayout;
|
|
@property({type:[SpriteFrame],visible:true})
|
|
protected mBgs: SpriteFrame[] = [];
|
|
|
|
private mReward: any[] = [];
|
|
onButtonClick(button:Button){
|
|
|
|
/**点击事件触发*/
|
|
switch (button) {
|
|
case this.btn_Continue:
|
|
this.CloseUI();break;
|
|
default:
|
|
ConsoleEx.Log(button);
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected CloseUI(btn?: Node): void {
|
|
const reward = this.param;
|
|
if(reward.fttype == FIGHTING_TYPE.PVE){
|
|
SceneDataMgr.Ins.onPassLevel();
|
|
UIMgr.Ins.ShowUI(EUIForms.VictoryStroyUI,{param:{bossname:reward.bossName,bossstory:reward.bossStory}});
|
|
}else if(reward.fttype == FIGHTING_TYPE.MUTATEBOSS){
|
|
SceneDataMgr.Ins.onMutateBossDone(true);
|
|
const config = Global.CsvMgr.base_res_csv[PropType.eSLStone];
|
|
const text = GDUtils.GetHEXByQualityForStr(`${config.name}+${reward.sl}`, config.quality);
|
|
UIMgr.Ins.ShowTipsUI("挑战成功 " + text);
|
|
UIMgr.Ins.ShowTipsUI("获得铜钱 +" + reward.coin);
|
|
}
|
|
super.CloseUI(btn);
|
|
}
|
|
|
|
addEvent(): void {
|
|
this.mFrameLayout.m_ItemRendererFuntion = this.ItemRender.bind(this)
|
|
}
|
|
|
|
ItemRender(idx:number,tNode:Node){
|
|
const bg: Sprite = tNode.getChildByName("bg").getComponent(Sprite);
|
|
const icon: Sprite = tNode.getChildByName("icon").getComponent(Sprite);
|
|
const name: Node = tNode.getChildByName("name");
|
|
const num: Node = tNode.getChildByName("num");
|
|
bg.spriteFrame = this.mReward[idx].bgicon;
|
|
CNodeUtils.SwitchTexture(GDUtils.getUrl(this.mReward[idx].idata), icon, EBundleName.GeneralRes);
|
|
CNodeUtils.switchTextByQuality(name, this.mReward[idx].name, this.mReward[idx].quality);
|
|
CNodeUtils.switchText(num, this.mReward[idx].num);
|
|
CNodeUtils.addBtnComponent(tNode,this.ItemClick.bind(this,idx),this);
|
|
}
|
|
|
|
ItemClick(idx:number){
|
|
ConsoleEx.Log("选择了",idx)
|
|
}
|
|
|
|
protected start(): void {
|
|
Global.Audio.playEffect(ESounds.So_win);
|
|
const reward = this.param;
|
|
if(reward.fttype == FIGHTING_TYPE.PVE){
|
|
this.mReward = [
|
|
{idata:{type:GameTotalType.TOKEN, id:1, num: 0},num:StringUtils.GetFloat2ByString(Math.floor(reward.coin),true,""),name:"铜钱", quality:4, bgicon:this.mBgs[0]},
|
|
{idata:{type:GameTotalType.EXP, id:0, num: 0},num:StringUtils.GetFloat2ByString(Math.floor(reward.exp),true,""),name:"御剑经验", quality:5, bgicon:this.mBgs[1]}
|
|
];
|
|
// // 打boss胜利统计
|
|
// const data = {
|
|
// ad_name: (this.mDataMgr.Scene.boss_ad_time? EVideoType.CritSoul : "无"),
|
|
// adcnt: this.mDataMgr.Scene.boss_ad_time,
|
|
// // duration: passtime,
|
|
// enter_level_id: reward.levelid,
|
|
// }
|
|
// TDAnalyticsMgr.ins.TrySendtrack(GEData.GEeventName.level_pass, data);
|
|
// GEAnalyticsMgr.ins.TrySendtrack(GEType.level_pass, reward.levelid);
|
|
}else if(reward.fttype == FIGHTING_TYPE.MUTATEBOSS){
|
|
const config = Global.CsvMgr.base_res_csv[PropType.eSLStone];
|
|
this.mReward = [
|
|
{idata:{type:GameTotalType.TOKEN, id:1, num: 0},num:StringUtils.GetFloat2ByString(Math.floor(reward.coin),true,""),name:"铜钱", quality:4, bgicon:this.mBgs[0]},
|
|
{idata:{type:GameTotalType.TOKEN, id:config.id, num: 0},num:reward.sl, name:config.name, quality:config.quality, bgicon:this.mBgs[1]},
|
|
];
|
|
}
|
|
this.mFrameLayout.m_ItemCount = this.mReward.length;
|
|
}
|
|
}
|