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
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;
|
|
// }
|
|
}
|
|
}
|