//#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 { IDataArray, RichText_Color } from "../../const/GameInterface"; import { PropType } from "../../const/GameEnum"; import { FingerSetpData, GType } from "../../Mgr_Guide/GuideEnum"; import GuideData from "../../Mgr_Guide/GuideData"; import GuideDataMgr from "../../Mgr_Guide/GuideDataMgr"; import { BagDataProxy } from "../../Mgr_LocalData/DataTypeProxy/BagDataProxy"; //#endregion 文件引入 // 跳转引导 interface GoToConfig { [key: string]: FingerSetpData; } const {ccclass, property,menu} = _decorator; @ccclass("TaskInfoUI_Proxy") export default class TaskInfoUI_Proxy extends BaseUIForm{ //#region 节点自动生成 @property(Button) btn_Goto: Button = null; @property(Button) btn_Reward: Button = null; @property(RichText) ric_taskDes: RichText = null; //#endregion 节点自动生成 @property(FrameLayout) mFrameLayout:FrameLayout; @property({type:[SpriteFrame],visible:true}) protected mBgs: SpriteFrame[] = []; Rewards:any[] = []; private Deal_task6():any{ const ITEM_ID_TASK6 = 1411; if(BagDataProxy.Ins.getItemCount(ITEM_ID_TASK6)>=1){ const task6_config = { gType: GType.finger, uiName: "MainTopUI", nodeName: "btn_GongFa", desc: "学习基础轻功", offsetX: 50, offsetY: -30, }; return task6_config; } else{ const task6_config = { gType: GType.finger, uiName: "MainTopUI", nodeName: "btn_Shop", desc: "购买基础轻功", offsetX: 50, offsetY: -30, }; return task6_config; } } private readonly gotoInfo: GoToConfig = { "1":{ gType: GType.finger, uiName: "MainUI", nodeName: "btn_ClickTounch", desc: "击败野狼", offsetX: 200, offsetY: -150, }, "2":{ gType: GType.finger, uiName: "MainTopUI", nodeName: "btn_GongFa", desc: "升级基础剑法", offsetX: 50, offsetY: -30, }, "3":{ gType: GType.finger, uiName: "MainTopUI", nodeName: "btn_Bag", desc: "点击“包裹”穿戴武器", offsetX: 50, offsetY: -30, }, "4":{ gType: GType.finger, uiName: "MainUI", nodeName: "btn_Boos", desc: "点击“悬赏令”挑战Boss", offsetX: 50, offsetY: -30, }, "5":{ gType: GType.finger, uiName: "MainUI", nodeName: "btn_ClickTounch", desc: "击败绿林流寇", offsetX: 200, offsetY: -150, }, // "6":this.Deal_task6(), } onButtonClick(button:Button){ /**点击事件触发*/ switch (button) { case this.btn_Goto: this.showfingerGuide(); this.CloseUI(); break; case this.btn_Reward: // 任务领奖完之后,是否有主功能解锁 const unlockpage = this.mDataMgr.Task.task.getReward(); (unlockpage || this.mDataMgr.Task.isCompleteAllTask())? this.CloseUI() : this.refreshInfo(); break; default: ConsoleEx.Log(button); break; } } showfingerGuide() { let finger:FingerSetpData = this.gotoInfo[this.mDataMgr.Task.task.id]; finger && GuideDataMgr.ins.setFinger(finger); } addEvent(): void { this.mFrameLayout.m_ItemRendererFuntion = this.itemRenderer.bind(this) } protected start(): void { this.refreshInfo(); } refreshInfo(){ const taskConfig = this.mDataMgr.Task.task.config; let cur = this.mDataMgr.Task.task.progress; let max = taskConfig.conditionValue; let complete = this.mDataMgr.Task.task.complete//cur >= max; let des = taskConfig.conditionDesc + CNodeUtils.ContainRichtTextByList(`(${cur}/${max})`, [ new RichText_Color(complete ? `#A02020` : "#187732") ]); CNodeUtils.switchRichText(this.ric_taskDes,des); this.Rewards = [ { type:taskConfig.rewardType, id:taskConfig.rewardId, num:taskConfig.rewardValue, quality:taskConfig.quality, } ]; this.mFrameLayout.m_ItemCount = this.Rewards.length; CNodeUtils.setActive(this.btn_Reward,complete); CNodeUtils.setActive(this.btn_Goto,!complete); } itemRenderer(idx:number,tNode:Node){ const taskConfig = this.mDataMgr.Task.task.config; const rData = this.Rewards[idx]; let icon: Node = tNode.getChildByName("icon"); let num: Node = tNode.getChildByName("num"); let bg: Sprite = tNode.getChildByName("bg").getComponent(Sprite); bg.spriteFrame = this.mBgs[rData.quality - 1]; CNodeUtils.SwitchTextureByData(icon, {type:rData.type, id:rData.id, num:rData.num}, 90); CNodeUtils.switchTextByQuality(num, taskConfig.desc, rData.quality); } onReceiveTask(){ const taskConfig = this.mDataMgr.Task.task.config; // switch (taskConfig.rewardType) { // case value: // break; // default: // break; // } } }