SamsaraGame/assets/Script/ts/DailyActivity.ts

832 lines
25 KiB
TypeScript
Raw Permalink Normal View History

2025-04-24 17:03:28 +08:00
import SKUIUtil from "./gear_2.3.4/util/SKUIUtil";
import GameModel from "./core/GameModel";
import FGUtil from "./gear_2.3.4/fgui/FGUtil";
import MsgAlert from "./game/msg/MsgAlert";
import SKDataUtil from "./gear_2.3.4/util/SKDataUtil";
import DailyActivityData, { ActivityObj, DailyClassType } from "./DailyActivityData";
import GameUtil from "./core/GameUtil";
import g_NpcMgr = require('../game/NpcMgr')
import ItemUtil from "./core/ItemUtil";
const { ccclass, property } = cc._decorator;
export default class DailyActivity extends cc.Component {
/**
*
*/
public static Instance : DailyActivity = null;
/**
*
*/
DailyActivityPanel : fgui.GComponent = null;
/**
*
*/
DailyInfoPanel : fgui.GComponent = null;
activityList : any = [];
onLoad() {
if (DailyActivity.Instance === null) {
DailyActivity.Instance = this;
this.activityList = DailyActivityData.activityList;
} else {
this.destroy();
return;
}
}
openDailyActivityPanel() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) {
this.DailyActivityPanel = FGUtil.create("main_ui", "activity_panel");
FGUtil.root().addChild(this.DailyActivityPanel);
this.DailyActivityPanel.makeFullScreen();
}
FGUtil.getComponent(this.DailyActivityPanel, "mask").onClick(this.closePanel, this)
FGUtil.getButton(this.DailyActivityPanel, "alert/close").onClick(this.closePanel, this)
var alert = FGUtil.getComponent(this.DailyActivityPanel, "alert");
// FGUtil.getButton(alert, "activityReward1").onClick(this.clickReward1, this);
// FGUtil.getButton(alert, "activityReward2").onClick(this.clickReward2, this);
// FGUtil.getButton(alert, "activityReward3").onClick(this.clickReward3, this);
// FGUtil.getButton(alert, "activityReward4").onClick(this.clickReward4, this);
// FGUtil.getButton(alert, "activityReward5").onClick(this.clickReward5, this);
// FGUtil.getButton(alert, "activityReward6").onClick(this.clickReward6, this);
FGUtil.getComponent(alert, "activityReward1/icon").onClick(this.clickReward1, this);
FGUtil.getComponent(alert, "activityReward2/icon").onClick(this.clickReward2, this);
FGUtil.getComponent(alert, "activityReward3/icon").onClick(this.clickReward3, this);
FGUtil.getComponent(alert, "activityReward4/icon").onClick(this.clickReward4, this);
FGUtil.getComponent(alert, "activityReward5/icon").onClick(this.clickReward5, this);
FGUtil.getComponent(alert, "activityReward6/icon").onClick(this.clickReward6, this);
FGUtil.getButton(alert, "setTuiSong").onClick(this.clickTuiSong, this);
FGUtil.getButton(alert, "hotDot").onClick(this.clickHotDot, this);
FGUtil.getButton(alert, "doubleExp").onClick(this.clickDoubleExp, this);
FGUtil.getButton(alert, "allType").onClick(this.clickAllType, this);
FGUtil.getButton(alert, "expType").onClick(this.clickExpType, this);
FGUtil.getButton(alert, "goldType").onClick(this.clickGoldType, this);
FGUtil.getButton(alert, "relaxType").onClick(this.clickRelaxType, this);
var list = FGUtil.getList(alert, "list");
list.itemRenderer = this.initActivityItem.bind(this);
list.itemProvider = this.getListItemResource.bind(this);
list.setVirtual();
this.refreshActivityListByType();
this.refreshActivityCount();
this.refreshActivityPrize();
this.refreshDouble();
GameModel.send('c2s_ask_daily_info', {});
}
getListItemResource(idx : number) {
// 字節點
if (this.activityList[idx].isChild)
return "ui://main_ui/activityPopList";
// 佔位節點
else if (this.activityList[idx].isEmpty > 0)
return "ui://main_ui/emptySize";
// 普通
else
return "ui://main_ui/activity_item";
}
initActivityItem(idx, obj : fairygui.GObject) {
let item = obj.asCom;
var info : ActivityObj = this.activityList[idx];
if (info.isChild) {
if (info.childList.length <= 2) {
FGUtil.getControl(item, "line").selectedIndex = 0
}
else if (info.childList.length <= 4) {
FGUtil.getControl(item, "line").selectedIndex = 1
}
else {
FGUtil.getControl(item, "line").selectedIndex = 2
}
var childList = FGUtil.getList(item, 'list')
childList.removeChildren();
for (let i = 0; i < info.childList.length; i++) {
let itemChild = childList.addItem().asCom;
this.initActivityChildItem(itemChild, info.childList[i]);
}
return;
}
if (info.isEmpty > 0) {
if (info.isEmpty == 1)
item.height = 88
if (info.isEmpty == 2)
item.height = 165
if (info.isEmpty == 3)
item.height = 250
return;
}
var inTime = this.checkInTime(info.startTime, info.endTime);
if (info.childList.length > 0) {// 有子按鈕
if (info.expanded) // 展開子按鈕
FGUtil.getControl(item, "down").selectedIndex = 2;
else
FGUtil.getControl(item, "down").selectedIndex = 1;
} else //無子按鈕
FGUtil.getControl(item, "down").selectedIndex = 0;
if (info.finish) //已完成
FGUtil.getControl(item, "finish").selectedIndex = 1;
else { // 未完成狀態
if (inTime == -1)//已結束
FGUtil.getControl(item, "finish").selectedIndex = 2;
else
FGUtil.getControl(item, "finish").selectedIndex = 0;
}
if (info.hasSet) //有設置屬性
FGUtil.getControl(item, "set").selectedIndex = 1;
else //無設置屬性
FGUtil.getControl(item, "set").selectedIndex = 0;
if (info.hasGo) {
// 如果完成就不再顯示前往
if (info.finish)
FGUtil.getControl(item, "goTo").selectedIndex = 0;
// 如果有時間限制
else if (info.fixedTime != "" && SKDataUtil.hasProperty(info.startTime, "d") && info.startTime.d != -1) {
if (inTime == 1) {
// 處於限制時間內,顯示前往
FGUtil.getControl(item, "goTo").selectedIndex = 1;
FGUtil.getControl(item, "showTime").selectedIndex = 0;
} else if (inTime == 0) {
// 未開始,顯示時間
FGUtil.getControl(item, "goTo").selectedIndex = 0;
FGUtil.getControl(item, "showTime").selectedIndex = 1;
} else if (inTime == -1) {
// 已結束
FGUtil.getControl(item, "goTo").selectedIndex = 0;
FGUtil.getControl(item, "showTime").selectedIndex = 0;
}
}
else //顯示前往
FGUtil.getControl(item, "goTo").selectedIndex = 1;
} else {
FGUtil.getControl(item, "goTo").selectedIndex = 0;
if (inTime == 0 && info.fixedTime != "")
FGUtil.getControl(item, "showTime").selectedIndex = 1;
}
// 顯示遮罩
if (DailyActivityData.showChild && !info.expanded)
FGUtil.getControl(item, "mask").selectedIndex = 1;
else
FGUtil.getControl(item, "mask").selectedIndex = 0;
// 顯示任務名稱
FGUtil.getTextField(item, "name").text = info.name;
// 顯示任務圖標
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${info.icon}`;
// 顯示高獎勵類型
FGUtil.getLoader(item, "typeIcon").url = `ui://main_ui/${info.tipType}`;
// 顯示次數描述
if (info.des) {
FGUtil.getTextField(item, "times").text = `${info.des}:${info.desValue}/${info.desMax}${info.desSuffix}`;
} else
FGUtil.getTextField(item, "times").text = "";
// 顯示活躍度
if (info.activityDes) {
FGUtil.getTextField(item, "activity").text = `${info.activityDes}:${info.activityValue}/${info.activityMax}`;
} else
FGUtil.getTextField(item, "activity").text = "";
// if (info.des) {
// FGUtil.getTextField(item, "times").text = `${info.des}:${info.desValue > info.desMax ? info.desMax : info.desValue}/${info.desMax}${info.desSuffix}`;
// } else
// FGUtil.getTextField(item, "times").text = "";
// // 顯示活躍度
// if (info.activityDes) {
// FGUtil.getTextField(item, "activity").text = `${info.activityDes}:${info.activityValue > info.activityMax ? info.activityMax : info.activityValue}/${info.activityMax}`;
// } else
// FGUtil.getTextField(item, "activity").text = "";
// 顯示限制時間
FGUtil.getTextField(item, "time").text = info.fixedTime;
var goBtn = FGUtil.getButton(item, "go");
goBtn.node["goNpc"] = info.goPos;
goBtn.onClick(this.goNpc, this);
item.node["idx"] = idx;
item.onClick(this.clickActivityItem, this);
var iconBtn = FGUtil.getComponent(item, "icon");
iconBtn.node["idx"] = idx;
iconBtn.onClick(this.clickActivityInfo, this);
FGUtil.getComponent(item, "set").onClick(this.clickSet, this);
}
initActivityChildItem(item, info) {
var inTime = this.checkInTime(info.startTime, info.endTime);
if (info.finish) //已完成
FGUtil.getControl(item, "finish").selectedIndex = 1;
else { // 未完成狀態
if (inTime == -1)//已結束
FGUtil.getControl(item, "finish").selectedIndex = 2;
else
FGUtil.getControl(item, "finish").selectedIndex = 0;
}
if (info.hasGo) {
// 如果完成就不再顯示前往
if (info.finish)
FGUtil.getControl(item, "goTo").selectedIndex = 0;
// 如果有時間限制
else if (info.fixedTime != "" && SKDataUtil.hasProperty(info.startTime, "d") && info.startTime.d != -1) {
if (inTime == 1) {
// 處於限制時間內,顯示前往
FGUtil.getControl(item, "goTo").selectedIndex = 1;
FGUtil.getControl(item, "showTime").selectedIndex = 0;
} else if (inTime == 0) {
// 未開始,顯示時間
FGUtil.getControl(item, "goTo").selectedIndex = 0;
FGUtil.getControl(item, "showTime").selectedIndex = 1;
} else if (inTime == -1) {
// 已結束
FGUtil.getControl(item, "goTo").selectedIndex = 0;
FGUtil.getControl(item, "showTime").selectedIndex = 0;
}
}
else //顯示前往
FGUtil.getControl(item, "goTo").selectedIndex = 1;
} else
FGUtil.getControl(item, "goTo").selectedIndex = 0;
// 顯示任務名稱
FGUtil.getTextField(item, "name").text = info.name;
// 顯示任務圖標
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${info.icon}`;
// 顯示高獎勵類型
FGUtil.getLoader(item, "typeIcon").url = `ui://main_ui/${info.tipType}`;
// 顯示次數描述
if (info.des) {
FGUtil.getTextField(item, "times").text = `${info.des}:${info.desValue}/${info.desMax}${info.desSuffix}`;
} else
FGUtil.getTextField(item, "times").text = "";
// 顯示活躍度
if (info.activityDes) {
FGUtil.getTextField(item, "activity").text = `${info.activityDes}:${info.activityValue}/${info.activityMax}`;
} else
FGUtil.getTextField(item, "activity").text = "";
// 顯示限制時間
FGUtil.getTextField(item, "time").text = info.fixedTime;
var goBtn = FGUtil.getButton(item, "go");
goBtn.node["goNpc"] = info.goPos;
goBtn.onClick(this.goNpc, this);
item.node["info"] = info;
item.onClick(this.clickActivityChildItem, this);
}
openInfoPanel(info : ActivityObj) {
if (!SKUIUtil.isFGUIValid(this.DailyInfoPanel)) {
this.DailyInfoPanel = FGUtil.create("main_ui", "activityInfoPanel");
FGUtil.root().addChild(this.DailyInfoPanel);
this.DailyInfoPanel.makeFullScreen();
}
var mask = FGUtil.getComponent(this.DailyInfoPanel, "mask");
this.pushCloseEvent(mask, this.DailyInfoPanel);
FGUtil.getTextField(this.DailyInfoPanel, "alert/name").text = info.name;
FGUtil.getTextField(this.DailyInfoPanel, "alert/name").color = SKUIUtil.colorOfString(info.titleColor);
FGUtil.getRichTextField(this.DailyInfoPanel, "alert/des").text = info.taskDes;
var list = FGUtil.getList(this.DailyInfoPanel, "alert/list");
list.removeChildren();
for (let i in info.reward) {
var item = list.addItem().asCom;
var rewardInfo = info.reward[i]
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${ItemUtil.getItemData(rewardInfo.id).icon}`;
if (rewardInfo.num > 0)
FGUtil.getTextField(item, "num").text = `${SKDataUtil.transform(rewardInfo.num)}`;
else
FGUtil.getTextField(item, "num").text = "";
}
FGUtil.getControl(this.DailyInfoPanel, "alert/moreReward").selectedIndex = Math.ceil(info.reward.length / 4)
}
/**
*
*/
checkInTime(start, end) {
var tt = new Date()
if (start.d == -1) return 0;
if (start.d == 0) {
// 每一天的這個時間
var t = new Date();
var s = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${start.h}:${start.m}`));
var e = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${end.h}:${end.m}`));
var c = t.getTime();
if (c >= s.getTime() && c <= e.getTime())// 處於限制時間內
return 1;
if (c < s.getTime())// 未開始
return 0;
if (c > e.getTime())// 已結束
return -1;
} else {
// 每週的這個時間
var t = new Date();
var today = t.getDay();
if (today - end.d > 0) // 已結束
return -1;
if (today - start.d < 0)//未開始
return 0;
// 剩下的情況就是當天
var s = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${start.h}:${start.m}`));
var e = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${end.h}:${end.m}`));
var c = t.getTime();
if (c >= s.getTime() && c <= e.getTime())// 處於限制時間內
return 1;
if (c < s.getTime())// 未開始
return 0;
if (c > e.getTime())// 已結束
return -1;
}
return 0;
}
/**
*
* @returns
*/
refreshActivityListByType() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
var type = FGUtil.getControl(this.DailyActivityPanel, "alert/type").selectedIndex;
if (type == DailyClassType.UNKNOW)
this.refreshActivityList();
else if (type == DailyClassType.EXP)
this.clickExpType();
else if (type == DailyClassType.GOLD)
this.clickGoldType();
else if (type == DailyClassType.RELAX)
this.clickRelaxType();
}
refreshActivityList() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
this.activityList = DailyActivityData.activityList;
var list = FGUtil.getList(this.DailyActivityPanel, "alert/list");
if (list.numItems != this.activityList.length)
list.numItems = this.activityList.length;
else
list.refreshVirtualList();
}
refreshActivityCount() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
FGUtil.getProgressBar(this.DailyActivityPanel, "alert/activityPB").value = DailyActivityData.activityScore;
}
refreshActivityPrize() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
var list = DailyActivityData.activityPrize;
if (!list || list.length == 0) return
for (let i = 1; i <= 6; i++) {
if (!list[i - 1]) break;
var item = FGUtil.getComponent(this.DailyActivityPanel, `alert/activityReward${i}`);
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${ItemUtil.getItemData(list[i - 1].id).icon}`;
FGUtil.getTextField(item, "num").text = SKDataUtil.transform(list[i - 1].num);
FGUtil.getControl(item, "get").selectedIndex = list[i - 1].get;
}
}
refreshDouble() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
var tx = FGUtil.getTextField(this.DailyActivityPanel, "alert/n42");
tx.text = `已領取:${DailyActivityData.doublePoint ? DailyActivityData.doublePoint : 0}\n可領取${DailyActivityData.doubleCanget}`
}
clickActivityInfo(e : Event, id : number = 0) {
var idx = 0;
if (SKDataUtil.hasProperty(e.target, "idx"))
idx = e.target["idx"];
else
idx = id;
var info : ActivityObj = this.activityList[idx];
this.openInfoPanel(info)
}
clearChildActivity() {
if (DailyActivityData.showChild && DailyActivityData.showChildIdx >= 0) {
DailyActivityData.activityList[DailyActivityData.showChildIdx].expanded = false;
DailyActivityData.showChild = false;
DailyActivityData.showChildIdx = -1;
}
for (let i in DailyActivityData.activityList) {
if (DailyActivityData.activityList[i].isChild) {
DailyActivityData.activityList.splice(i, 1)
break
}
}
for (let i in DailyActivityData.activityList) {
if (DailyActivityData.activityList[i].isEmpty) {
DailyActivityData.activityList.splice(i, 1)
break
}
}
}
addChildActivity(idx) {
var temp = SKDataUtil.cloneClass(DailyActivityData.activityList[idx])
var tempEpmty = SKDataUtil.cloneClass(DailyActivityData.activityList[idx])
temp.isChild = true;
if (idx % 2 == 0) { //是左側的父按鈕
if (idx != DailyActivityData.activityList.length - 1) {
//不是最後一個
tempEpmty.isEmpty = Math.ceil(temp.childList.length / 2) >= 3 ? 3 : Math.ceil(temp.childList.length / 2);
DailyActivityData.activityList.splice(idx + 2, 0, temp, tempEpmty)
}
else {
// 是在最後插入
tempEpmty.isEmpty = 1;
DailyActivityData.activityList.splice(idx + 1, 0, tempEpmty, temp)
}
} else {
tempEpmty.isEmpty = Math.ceil(temp.childList.length / 2) >= 3 ? 3 : Math.ceil(temp.childList.length / 2);
DailyActivityData.activityList.splice(idx + 1, 0, temp, tempEpmty)
}
}
clickActivityItem(e : Event) {
var idx = 0;
if (SKDataUtil.hasProperty(e.target, "idx"))
idx = e.target["idx"];
var info : ActivityObj = this.activityList[idx];
// 當前是展開狀態
if (DailyActivityData.showChild) {
// 點擊的是其他活動
if (idx != DailyActivityData.showChildIdx) {
// 先關閉之前打開的
this.clearChildActivity();
if (info.childList.length > 0) {
// 有子按鈕,展開現在選擇的
info.expanded = true;
DailyActivityData.showChild = info.expanded;
var tempIdx = -1
for (let i in DailyActivityData.activityList) {
if (DailyActivityData.activityList[i].expanded) {
tempIdx = parseInt(i)
break
}
}
DailyActivityData.showChildIdx = tempIdx;
this.addChildActivity(tempIdx);
}
} else {
this.clearChildActivity();
}
this.refreshActivityListByType();
} else { // 當前是關閉狀態
if (info.childList.length > 0) {
// 有子按鈕,展開
info.expanded = true;
DailyActivityData.showChild = info.expanded;
DailyActivityData.showChildIdx = idx;
this.addChildActivity(idx);
this.refreshActivityListByType();
}
}
if (info.childList.length == 0)
this.openInfoPanel(info);
}
clickActivityChildItem(e : Event) {
var info;
if (SKDataUtil.hasProperty(e.target, "info")) {
info = e.target["info"];
}
else return;
this.openInfoPanel(info);
}
/**
* NPC處
*/
goNpc(e : Event) {
var npc = 0;
if (SKDataUtil.hasProperty(e.target, "goNpc"))
npc = e.target["goNpc"];
e.stopPropagation();
if (npc == 10054 && GameModel.player.bangid == 0) { //幫派任務
MsgAlert.addMsg("請先加入幫派");
return;
}
if (npc == -666) {
// 師門
if (GameModel.player.race == 1)
npc = 30062;
if (GameModel.player.race == 2)
npc = 10118;
if (GameModel.player.race == 3)
npc = 30063;
if (GameModel.player.race == 4)
npc = 30065;
if (GameModel.player.race == 5)
npc = 70006;
}
let stPos = g_NpcMgr.GetNpcPos(npc);
GameUtil.myPlayerToDo(stPos.nMap, stPos.nX, stPos.nY, () => {
let temp = g_NpcMgr.FindNpcByConfigID(npc);
if (temp) {
let npc = temp.getComponent("Npc");
npc.OnNpcClick();
}
});
this.closePanel();
}
/**
*
*/
clickReward1() {
this.clickReward(1);
}
clickReward2() {
this.clickReward(2);
}
clickReward3() {
this.clickReward(3);
}
clickReward4() {
this.clickReward(4);
}
clickReward5() {
this.clickReward(5);
}
clickReward6() {
this.clickReward(6);
}
clickReward(idx) {
console.log("on click", idx)
if (DailyActivityData.activityScore < idx * 25 || DailyActivityData.activityPrize[idx - 1].get == 1) {
// 活躍度不足顯示獎勵信息
console.log("活躍度不足顯示獎勵信息")
let itemid = DailyActivityData.activityPrize[idx - 1].id
let itemData = ItemUtil.getItemData(itemid)
this.showInfo(itemData)
} else {
GameModel.send('c2s_take_active_prize', { nIndex: idx - 1 });
}
}
showInfo(itemInfo) {
cc.loader.loadRes("Prefabs/BagItemDetail", cc.Prefab, (err, prefab) => {
if (err) {
console.log(err)
return
}
if (itemInfo != null) {
let detail = cc.instantiate(prefab);
detail.parent = this.DailyActivityPanel.node;
detail.setPosition(this.DailyActivityPanel.node.width / 2, -this.DailyActivityPanel.node.height / 2)
detail.name = 'BagItemDetail';
detail.getComponent('BagItemDetail').loadInfo(itemInfo);
}
})
}
/**
*
*/
clickAllType() {
this.clearChildActivity();
this.refreshActivityList();
}
clickExpType() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
this.clearChildActivity();
var tempList = [];
for (let i in DailyActivityData.activityList) {
if (DailyActivityData.activityList[i].classType == DailyClassType.EXP)
tempList.push(DailyActivityData.activityList[i])
}
this.activityList = tempList;
FGUtil.getList(this.DailyActivityPanel, "alert/list").numItems = this.activityList.length;
}
clickGoldType() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
this.clearChildActivity();
var tempList = [];
for (let i in DailyActivityData.activityList) {
if (DailyActivityData.activityList[i].classType == DailyClassType.GOLD)
tempList.push(DailyActivityData.activityList[i])
}
this.activityList = tempList;
FGUtil.getList(this.DailyActivityPanel, "alert/list").numItems = this.activityList.length;
}
clickRelaxType() {
if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return;
this.clearChildActivity();
var tempList = [];
for (let i in DailyActivityData.activityList) {
if (DailyActivityData.activityList[i].classType == DailyClassType.RELAX)
tempList.push(DailyActivityData.activityList[i])
}
this.activityList = tempList;
FGUtil.getList(this.DailyActivityPanel, "alert/list").numItems = this.activityList.length;
}
/**
*
*/
clickDoubleExp() {
if (DailyActivityData.doubleCanget <= 0) {
MsgAlert.addMsg("沒有可領取的雙倍點數");
return;
}
GameModel.send("c2s_get_doublecnt", {
roleid: GameModel.player.roleid
})
}
/**
*
*/
clickHotDot() {
MsgAlert.addMsg("暫未開放");
}
/**
*
*/
clickTuiSong() {
MsgAlert.addMsg("暫未開放");
}
/**
*
*/
clickSet(e : Event) {
MsgAlert.addMsg("暫未開放");
e.stopPropagation()
}
closePanel() {
this.clearChildActivity();
if (DailyActivityData.showChildIdx != -1) {
DailyActivityData.activityList[DailyActivityData.showChildIdx].expanded = false
DailyActivityData.showChildIdx = -1;
}
DailyActivityData.showChild = false;
FGUtil.dispose(this.DailyActivityPanel);
this.DailyActivityPanel = null;
}
/**
*
*/
pushCloseEvent(item : fairygui.GComponent, target : fairygui.GComponent, call : Function = null) {
item.clearClick();
item.onClick(() => {
call && call()
FGUtil.dispose(target);
target = null;
}, this)
}
OnReceiveDailyInfo(data) {
// 計算總活躍度
var scoreSum = this.GetMapSum(data.mapActiveScore);
scoreSum = scoreSum >= 0 ? scoreSum <= 170 ? scoreSum : 170 : 0;
DailyActivityData.activityScore = scoreSum;
// 獎勵列表
var prizeList = [];
var getList = data.szBeenTake;
var pzList = data.szActivePrize;
for (let i in pzList) {
var gift = pzList[i].split(",")
prizeList.push({ id: gift[0], num: gift[1], get: getList[i] })
}
DailyActivityData.activityPrize = prizeList;
// 計算次數和活躍度
var countData = data.mapDailyCnt;
var countDataFuBen = data.mapFuBenCnt;
var huoyueData = data.mapActiveScore;
// 大雁塔次數需要減一
if (countDataFuBen[1001])
countDataFuBen[1001] = countDataFuBen[1001] - 1;
// 地宮完成次數為2則是完成1是領取
if (countDataFuBen[1004]) countDataFuBen[1004] = Math.floor(countDataFuBen[1004] / 2);
if (countDataFuBen[1005]) countDataFuBen[1005] = Math.floor(countDataFuBen[1005] / 2);
if (countDataFuBen[1006]) countDataFuBen[1006] = Math.floor(countDataFuBen[1006] / 2);
// 地宮三種難度次數合一
if (!countDataFuBen[1004]) countDataFuBen[1004] = 0;
if (countDataFuBen[1005])
countDataFuBen[1004] += countDataFuBen[1005];
if (countDataFuBen[1006])
countDataFuBen[1004] += countDataFuBen[1006];
// 地宮三種難度活躍度合一
if (!huoyueData[1004]) huoyueData[1004] = 0;
if (huoyueData[1005])
huoyueData[1004] += huoyueData[1005];
if (huoyueData[1006])
huoyueData[1004] += huoyueData[1006];
for (let i in DailyActivityData.activityList) {
var id = DailyActivityData.activityList[i].id;
// 普通活动次数
if (huoyueData[id])
DailyActivityData.activityList[i].activityValue = huoyueData[id];
// 副本活動次數
if (countDataFuBen[id])
DailyActivityData.activityList[i].desValue = countDataFuBen[id];
// 活躍度
if (countData[id])
DailyActivityData.activityList[i].desValue = countData[id];
if (DailyActivityData.activityList[i].activityValue >= DailyActivityData.activityList[i].activityMax && DailyActivityData.activityList[i].desValue >= DailyActivityData.activityList[i].desMax) {
DailyActivityData.activityList[i].finish = true;
}
if (DailyActivityData.activityList[i].childList.length > 0) {
// 子任務
var child = DailyActivityData.activityList[i].childList;
for (let m in child) {
var id = child[m].id;
if (countData[id])
child[m].activityValue = huoyueData[id];
if (huoyueData[id])
child[m].desValue = countData[id];
if (child[m].activityValue == child[m].activityMax && child[m].desValue == child[m].desMax) {
child[m].finish = true;
}
}
}
}
DailyActivityData.doublePoint = data.doublecnt;
DailyActivityData.doubleCanget = data.canget;
this.refreshActivityListByType();
this.refreshActivityCount();
this.refreshActivityPrize();
this.refreshDouble();
}
GetMapSum(mapTmp) {
let nNum = 0;
for (const it in mapTmp) {
nNum += mapTmp[it];
}
return nNum;
}
}