大侠
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.
 
 
 

184 lines
6.5 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 { 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;
// }
}
}