337 lines
11 KiB
JavaScript
337 lines
11 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, '4d7163AdwNB2765Y356ieU8', 'cmp.pvp.rank.wnd');
|
|
// Scripts/mod/pvp/cmp/cmp.pvp.rank.wnd.js
|
|
|
|
"use strict";
|
|
|
|
var BridgeWindow = require("bridge.window");
|
|
var ArenaEvent = require("arena_event");
|
|
var FxSVC = require("nx.fx.sv.expand");
|
|
var ArenaController = require("arena_controller");
|
|
var FxTogs = require("nx.fx.togs");
|
|
var RoleEvent = require("role_event");
|
|
var LadderEvent = require("ladder_event");
|
|
var RoleController = require("role_controller");
|
|
var defaultList = 3;
|
|
|
|
// 标签页对应关系
|
|
var TabPage = [{
|
|
key: "RankNow",
|
|
"goto": 0
|
|
}, {
|
|
key: "DailyAwards" || "RankAwards",
|
|
"goto": 1
|
|
}, {
|
|
key: "SeasonAwards",
|
|
"goto": 2
|
|
}];
|
|
cc.Class({
|
|
"extends": BridgeWindow,
|
|
properties: {
|
|
nodOps: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodToggle: {
|
|
"default": null,
|
|
type: FxTogs
|
|
},
|
|
nodLst: {
|
|
"default": null,
|
|
type: FxSVC
|
|
},
|
|
fabSelfAward: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabSelfArena: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabSelfLadder: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabSelfWeekChampion: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabItemArena: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabItemAward: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabItemLadder: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabItemFirst: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
fabItemWeekChampion: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
}
|
|
},
|
|
onLoad: function onLoad() {
|
|
this.bindGEvent(ArenaEvent.UpdateLoopChallengeRank, this.freshOtherUI.bind(this));
|
|
this.bindGEvent(RoleEvent.WorshipOtherRole, this.freshOneWorship.bind(this));
|
|
this.bindGEvent(LadderEvent.UpdateLadderRankData, this.freshLadderUI.bind(this));
|
|
this.bindGEvent(ArenaEvent.UpdateChampionRankEvent, this.freshWeeklyChampionUI.bind(this));
|
|
// Tog监听
|
|
this.nodToggle.posTog = this.onTogMenu.bind(this);
|
|
this.loadPrefab();
|
|
},
|
|
loadPrefab: function loadPrefab() {
|
|
if (nx.gui.find(this.nodLst, "self_rank").children.length == 0) {
|
|
var itemnod = cc.instantiate(this.fabSelfAward);
|
|
itemnod.parent = nx.gui.find(this.nodLst, "self_rank");
|
|
var item5nod = cc.instantiate(this.fabSelfArena);
|
|
item5nod.parent = nx.gui.find(this.nodLst, "self_rank");
|
|
var itemlnod = cc.instantiate(this.fabSelfLadder);
|
|
itemlnod.parent = nx.gui.find(this.nodLst, "self_rank");
|
|
var fabSelfWeekChampion = cc.instantiate(this.fabSelfWeekChampion);
|
|
fabSelfWeekChampion.parent = nx.gui.find(this.nodLst, "self_rank");
|
|
nx.gui.hideAllChildren(this.nodLst, "self_rank");
|
|
}
|
|
if (nx.gui.find(this, "templates").children.length == 0) {
|
|
var fabItemArena = cc.instantiate(this.fabItemArena);
|
|
fabItemArena.parent = nx.gui.find(this, "templates");
|
|
var fabItemAward = cc.instantiate(this.fabItemAward);
|
|
fabItemAward.parent = nx.gui.find(this, "templates");
|
|
var fabItemLadder = cc.instantiate(this.fabItemLadder);
|
|
fabItemLadder.parent = nx.gui.find(this, "templates");
|
|
var itemfnod = cc.instantiate(this.fabItemFirst);
|
|
itemfnod.parent = nx.gui.find(this, "templates");
|
|
var fabItemWeekChampion = cc.instantiate(this.fabItemWeekChampion);
|
|
fabItemWeekChampion.parent = nx.gui.find(this, "templates");
|
|
}
|
|
},
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
|
this.dfg = _params.dfg;
|
|
this.sfg = _params.sfg;
|
|
this.cb = _params.cb;
|
|
this.show = _params.show;
|
|
var ops = _params.ops;
|
|
var chd = this.nodOps.children;
|
|
this.defaultDesc = _params.desc;
|
|
var len = _params.len ? _params.len : defaultList;
|
|
nx.gui.gocChildren(this.nodOps, "", len);
|
|
var tcmp = nx.gui.getComponent(this.nodOps, "", "nx.fx.togs");
|
|
if (tcmp) {
|
|
// 重建标签结构
|
|
tcmp.rebuildTogs();
|
|
|
|
// 标签显示切换
|
|
tcmp._freshTogShow();
|
|
}
|
|
var _goto = 0;
|
|
for (var i = 0; i < chd.length; i++) {
|
|
var op = ops[i];
|
|
if (!op || nx.dt.strEmpty(op)) {
|
|
nx.gui.setActive(chd[i], "", false);
|
|
continue;
|
|
}
|
|
if (this.show == op) {
|
|
_goto = i;
|
|
}
|
|
nx.gui.setActive(chd[i], "", true);
|
|
nx.gui.setString(chd[i], "on/txt", nx.text.getKey(op));
|
|
nx.gui.setString(chd[i], "off/txt", nx.text.getKey(op));
|
|
}
|
|
|
|
// TabPage.forEach( _tab => {
|
|
// if( this.show == _tab.key ){
|
|
// goto = _tab.goto;
|
|
// }
|
|
// } )
|
|
|
|
this.nodToggle.togTo(_goto);
|
|
this.activeMenu(_goto + 1);
|
|
// this.freshData();
|
|
},
|
|
|
|
// 激活菜单
|
|
activeMenu: function activeMenu(_bagCode) {
|
|
// console.log( "背包切换:", _bagCode );
|
|
if (this.curType == _bagCode) {
|
|
return;
|
|
}
|
|
this.curType = _bagCode;
|
|
if (_bagCode == 1) {
|
|
this.freshInfo();
|
|
var T = nx.gui.find(this.node, "templates/itemT5");
|
|
this.nodLst.tmpItem = T;
|
|
this.nodLst.rebuild([]);
|
|
this.nodLst.tmpItem = null;
|
|
nx.dt.fnInvoke(this.cb);
|
|
}
|
|
if (_bagCode == 2) {
|
|
var _T = nx.gui.find(this.node, "templates/award");
|
|
// widget.bottom = 20.70;
|
|
// widget.updateAlignment();
|
|
this.nodLst.tmpItem = _T;
|
|
this.freshData(this.dfg);
|
|
this.freshInfo();
|
|
}
|
|
if (_bagCode == 3) {
|
|
var _T2 = nx.gui.find(this.node, "templates/award");
|
|
// widget.bottom = 20.70;
|
|
// widget.updateAlignment();
|
|
this.nodLst.tmpItem = _T2;
|
|
this.freshData(this.sfg);
|
|
this.freshInfo();
|
|
}
|
|
if (_bagCode == 4) {
|
|
var _T3 = nx.gui.find(this.node, "templates/faward");
|
|
// widget.bottom = 20.70;
|
|
// widget.updateAlignment();
|
|
this.nodLst.tmpItem = _T3;
|
|
this.freshData(this.dfg);
|
|
this.freshInfo();
|
|
}
|
|
if (_bagCode == 5) {
|
|
var _T4 = nx.gui.find(this.node, "templates/faward");
|
|
// widget.bottom = 20.70;
|
|
// widget.updateAlignment();
|
|
this.nodLst.tmpItem = _T4;
|
|
this.freshData(this.sfg);
|
|
this.freshInfo();
|
|
}
|
|
},
|
|
dealSameCmp: function dealSameCmp(_nod, _data, _desc) {
|
|
var tnod = nx.gui.find(this.nodLst, "title");
|
|
nx.gui.setString(tnod, "nod_rank/score", _desc);
|
|
var rank_node = _nod;
|
|
nx.gui.setActive(rank_node, "icon_" + _data.rank, _data.rank > 0 && _data.rank < 4);
|
|
nx.gui.setActive(rank_node, "icon_4", _data.rank >= 4);
|
|
if (_data.rank >= 4) {
|
|
nx.gui.setString(rank_node, "txt", _data.rank);
|
|
}
|
|
if (_data.rank == 0) {
|
|
nx.gui.setString(rank_node, "txt2", nx.text.getKey("Rank0"));
|
|
}
|
|
nx.gui.setActive(tnod, "nod_rank", true);
|
|
},
|
|
freshOtherUI: function freshOtherUI(_data) {
|
|
// 设置顶部 标题
|
|
|
|
var T = nx.gui.find(this.node, "templates/itemT5");
|
|
var nod = nx.gui.find(this.nodLst, "self_rank");
|
|
var rank_node = nx.gui.find(nod, "item5/rank");
|
|
// _data.rank > 0 ? _data.rank < 4 ? nx.gui.setActive( rank_node, "icon_" + _data.rank, true ) : nx.gui.setActive( rank_node, "icon_4" , true ) :
|
|
// nx.gui.setString( rank_node, "txt2", nx.text.getKey( "Rank0" ) );
|
|
this.dealSameCmp(rank_node, _data, nx.text.getKey("ArenaScore"));
|
|
nx.gui.setString(nod, "item5/info/score/txt", _data.score);
|
|
nx.gui.setString(nod, "item5/info/power", _data.worship);
|
|
this.nodLst.tmpItem = T;
|
|
var lst = _data.rank_list;
|
|
this.freshData(lst);
|
|
},
|
|
freshLadderUI: function freshLadderUI(_data) {
|
|
var T = nx.gui.find(this.node, "templates/itemTl");
|
|
var nod = nx.gui.find(this.nodLst, "self_rank");
|
|
var rank_node = nx.gui.find(nod, "iteml/rank");
|
|
this.dealSameCmp(rank_node, _data, nx.text.getKey("lab_rank_name_6"));
|
|
var role = RoleController.getInstance().getRoleVo();
|
|
nx.gui.setString(nod, "iteml/info/power", role.power);
|
|
nx.gui.setString(nod, "iteml/name", role.name);
|
|
nx.gui.setActive(this.nodLst, "self_rank/iteml", true);
|
|
this.nodLst.tmpItem = T;
|
|
var lst = _data.rank_list;
|
|
this.freshData(lst);
|
|
},
|
|
freshWeeklyChampionUI: function freshWeeklyChampionUI(_data) {
|
|
var T = nx.gui.find(this.node, "templates/itemTc");
|
|
var nod = nx.gui.find(this.nodLst, "self_rank");
|
|
var rank_node = nx.gui.find(nod, "itemc/rank");
|
|
this.dealSameCmp(rank_node, _data, nx.text.getKey("lab_rank_name_6"));
|
|
var role = RoleController.getInstance().getRoleVo();
|
|
nx.gui.setString(nod, "itemc/info/power/power", _data.power);
|
|
nx.gui.setString(nod, "itemc/info/score", _data.score);
|
|
nx.gui.setString(nod, "itemc/name", role.name);
|
|
nx.gui.setString(nod, "itemc/info/worship/num", _data.worship);
|
|
nx.gui.setActive(this.nodLst, "self_rank/itemc", true);
|
|
this.nodLst.tmpItem = T;
|
|
var lst = _data.rank_list;
|
|
this.freshData(lst);
|
|
},
|
|
// 切换
|
|
onTogMenu: function onTogMenu(_index) {
|
|
this.activeMenu(parseInt(_index) + 1);
|
|
},
|
|
freshData: function freshData(_data) {
|
|
nx.gui.setActive(this.nodLst, "empty", nx.dt.arrEmpty(_data));
|
|
this.nodLst.rebuild(_data);
|
|
},
|
|
freshOneWorship: function freshOneWorship(_data) {
|
|
var chd = nx.gui.find(this.nodLst, "scv/view/content").children;
|
|
// {"code":1,"msg":"","type":0,"rid":79,"srv_id":"dev_2","idx":7}
|
|
for (var i = 0; i < chd.length; i++) {
|
|
var item = chd[i];
|
|
var cmp = item.svItem;
|
|
if (cmp) {
|
|
if (cmp.mdata && cmp.mdata.rid == _data.rid) {
|
|
var data = nx.dt.objClone(cmp.mdata);
|
|
data.worship = !nx.dt.strEmpty(cmp.mdata.srv_id) && cmp.mdata.srv_id != "robot" ? cmp.mdata.worship + 1 : cmp.mdata.worship;
|
|
data.worship_status = cmp.mdata.worship_status + 1;
|
|
cmp.rebind(i, data);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
freshInfo: function freshInfo() {
|
|
// 设置相关的 底部显示信息
|
|
var nods = nx.gui.find(this.nodLst, "self_rank/item");
|
|
var dfg = game.configs.arena_data.data_const.daily_reward_time;
|
|
var desc = "";
|
|
if (!this.defaultDesc) {
|
|
desc = this.curType == 2 ? dfg.desc : "";
|
|
} else {
|
|
desc = this.defaultDesc;
|
|
}
|
|
var model = ArenaController.getInstance().getModel();
|
|
var self_data = model.getMyLoopData();
|
|
nx.gui.setActive(this.nodLst, "self_rank/item/time", this.curType == 3);
|
|
nx.gui.setActive(this.nodLst, "self_rank/item5", this.curType == 1);
|
|
nx.gui.setString(nods, "desc", desc);
|
|
nx.gui.setString(nods, "time/txt", desc);
|
|
nx.gui.setActive(this.nodLst, "self_rank/item", this.curType == 2 || this.curType == 3);
|
|
nx.gui.setActive(this.nodLst, "self_rank/iteml", false);
|
|
nx.gui.setActive(this.nodLst, "nod_rank", false);
|
|
// 设置顶部 标题
|
|
nx.gui.setActive(this.nodLst, "empty", this.curType == 1);
|
|
nx.gui.setActive(this.nodLst, "self_rank/itemc", false);
|
|
|
|
// 设置顶部 标题
|
|
var nod = nx.gui.find(this.nodLst, "title");
|
|
nx.gui.setActive(nod, "nod_rank", false);
|
|
nx.gui.setActive(nod, "nod_reward/award", this.curType == 2);
|
|
nx.gui.setActive(nod, "nod_reward/award_s", this.curType == 3);
|
|
nx.gui.setActive(nod, "nod_reward", this.curType == 2 || this.curType == 3);
|
|
nx.gui.setCdTxt(nods, "time/txt", self_data.end_time - Math.floor(cc.sys.now() / 1000), function () {});
|
|
// nx.gui.setActive( this.nodLst, "self_rank", _bagCode == 1 );
|
|
},
|
|
|
|
// 重载:关闭前
|
|
onPreClosed: function onPreClosed() {
|
|
var nod = nx.gui.find(this.nodLst, "self_rank");
|
|
var tnod = nx.gui.find(this, "templates");
|
|
for (var i = 0; i < nod.children.length; i++) {
|
|
var cnod = nod.children[i];
|
|
var ttnod = tnod.children[i];
|
|
if (cnod) {
|
|
cnod.destroy();
|
|
}
|
|
if (ttnod) {
|
|
ttnod.destroy();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |