376 lines
12 KiB
JavaScript
376 lines
12 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, '58981wAlfVE7pEJSk2VkNel', 'cmp.pvp.arena.loopc.wnd');
|
|
// Scripts/mod/pvp/arena/cmp/cmp.pvp.arena.loopc.wnd.js
|
|
|
|
"use strict";
|
|
|
|
var BridgeWindow = require("bridge.window");
|
|
var TipsController = require("tips_controller");
|
|
var ArenaEvent = require("arena_event");
|
|
var RoleController = require("role_controller");
|
|
var BattleEvent = require("battle_event");
|
|
var MallConst = require("mall_const");
|
|
var BattleController = require("battle_controller");
|
|
var ArenaController = require("arena_controller");
|
|
var PartnerConst = require("partner_const");
|
|
var HeroController = require("hero_controller");
|
|
var HeroConst = require("hero_const");
|
|
cc.Class({
|
|
"extends": BridgeWindow,
|
|
properties: {
|
|
nodTop: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodLst: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodRank: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodRewards: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodFreeTimes: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodDesc: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodIcon: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodCloseIco: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodPower: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
nodSkip: {
|
|
"default": null,
|
|
type: cc.Node
|
|
}
|
|
},
|
|
onLoad: function onLoad() {
|
|
nx.gui.setActive(this, "plotWeakest", false);
|
|
var cmp = nx.gui.getComponent(this.nodSkip, "", cc.Toggle);
|
|
if (cmp) {
|
|
cmp.isChecked = false;
|
|
}
|
|
// this.onDeal();
|
|
this.bindGEvent(ArenaEvent.UpdateLoopChallengeList, this.freshChallengeList.bind(this));
|
|
this.bindGEvent(ArenaEvent.UpdateLoopChallengeTimesList, this.freshSelf.bind(this));
|
|
this.bindGEvent(ArenaEvent.UpdateMyLoopData, this.freshChallengeOp.bind(this));
|
|
this.bindGEvent(BattleEvent.DISPENSE_TYPE_RESLUT, this.showResult.bind(this));
|
|
// this.bindGEvent( ArenaEvent.UpdateArena_Number, this.updateRankListInfo.bind(this));
|
|
this.first = 0;
|
|
},
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
|
this.freshSelf();
|
|
var AC = ArenaController.getInstance();
|
|
this.scheduleOnce(function () {
|
|
AC.sender20201();
|
|
}, 0.1);
|
|
},
|
|
onEnable: function onEnable() {
|
|
this.onDeal();
|
|
if (nx.storage.get("battleArena")) {
|
|
if (!nx.bridge.getBridgeWindow("WndArenaLoopCResult")) {
|
|
nx.bridge.createPanel("WndArenaLoopCResult");
|
|
}
|
|
}
|
|
},
|
|
onDeal: function onDeal() {
|
|
this.freshSelf();
|
|
var BC = BattleController.getInstance();
|
|
BC.send20060(2);
|
|
},
|
|
// 重载:关闭前
|
|
onPreClosed: function onPreClosed() {
|
|
|
|
// this.nodLst.rebuild( [] );
|
|
},
|
|
freshChallengeList: function freshChallengeList() {
|
|
var model = ArenaController.getInstance().getModel();
|
|
var challenge_list = model.getLoopChallengeList();
|
|
// this.nodLst.rebuild( challenge_list );
|
|
nx.gui.gocChildren(this.nodLst, "", challenge_list.length);
|
|
var chd = this.nodLst.children;
|
|
for (var i = 0; i < chd.length; i++) {
|
|
var item = chd[i];
|
|
var data = {};
|
|
data = nx.dt.objClone(challenge_list[i]);
|
|
var cmp = item.getComponent("cmp.arena.loopc.item");
|
|
if (cmp) {
|
|
cmp.setData(data);
|
|
}
|
|
}
|
|
|
|
// 引导辅助
|
|
if (nx.bridge.plot && nx.bridge.plot.isDoing()) {
|
|
this.positionWeakest();
|
|
}
|
|
},
|
|
freshSelf: function freshSelf() {
|
|
var model = ArenaController.getInstance().getModel();
|
|
var role = RoleController.getInstance().getRoleVo();
|
|
|
|
// 个人领取 奖励信息以及相关的挑战信息 bottom数据相关
|
|
var award = model.getChallengeTimesAwards();
|
|
// 已挑战次数
|
|
var ctimes = model.getHadCombatNum();
|
|
nx.gui.setString(this.nodDesc, "ctime/txt", ctimes);
|
|
var cond = game.configs.arena_data.data_const.arena_skip_count.val;
|
|
var cmp = nx.gui.getComponent(this.nodSkip, "", cc.Toggle);
|
|
if (cmp) {
|
|
if (ctimes >= cond) {
|
|
if (this.first == 0) {
|
|
var skip = nx.storage.get("skip_battle" + role.rid);
|
|
if (skip) {
|
|
cmp.isChecked = skip > 0 && ctimes >= cond;
|
|
// nx.storage.set( "skip_battle" + role.rid, cmp.isChecked ? 1 : 0 );
|
|
model.setSkip(cmp.isChecked ? 1 : 0);
|
|
} else {
|
|
this.onTouchSkip();
|
|
}
|
|
this.first++;
|
|
} else {
|
|
var _skip = nx.storage.get("skip_battle" + role.rid);
|
|
cmp.isChecked = _skip > 0 && ctimes >= cond;
|
|
model.setSkip(cmp.isChecked ? 1 : 0);
|
|
}
|
|
}
|
|
}
|
|
this.setRewardsInfo(award);
|
|
// 设置当前的挑战进度相关
|
|
var prog = nx.gui.getComponent(this.nodDesc.parent, "awards/prog", cc.ProgressBar);
|
|
var all = game.configs.arena_data.data_season_num_reward;
|
|
var max = game.configs.arena_data.data_season_num_reward[all.length - 1].num;
|
|
if (prog) {
|
|
prog.progress = ctimes / max;
|
|
}
|
|
this.freshChallengeOp();
|
|
// nx.gui.setString( this.nodDesc, "end/txt", );
|
|
// {"rank":0,"score":1000,"can_combat_num":3,"buy_combat_num":0,"ref_time":1686809172,"start_time":1686758400,"end_time":1687363199,"cont_win":0}
|
|
},
|
|
|
|
freshChallengeOp: function freshChallengeOp() {
|
|
// 刷新操作显示
|
|
var model = ArenaController.getInstance().getModel();
|
|
var self_data = model.getMyLoopData();
|
|
|
|
// 免费挑战次数显示
|
|
nx.gui.setString(this.nodFreeTimes, "", self_data.can_combat_num);
|
|
nx.gui.setString(this.nodRank, "txt", self_data.rank == 0 ? nx.text.getKey("Rank0") : self_data.rank);
|
|
nx.gui.setCdTxt(this.nodDesc, "end/txt", self_data.end_time - Math.floor(cc.sys.now() / 1000), function () {});
|
|
var role = RoleController.getInstance().getRoleVo();
|
|
nx.gui.setString(this.nodTop, "point/txt", self_data.score);
|
|
if (role) {
|
|
nx.gui.setString(this.nodPower, "txt", nx.text.getKey("TotalPower") + ":" + role.power);
|
|
}
|
|
|
|
// this.nodLst.rebuild( challenge_list );
|
|
var chd = this.nodLst.children;
|
|
for (var i = 0; i < chd.length; i++) {
|
|
var item = chd[i];
|
|
var cmp = item.getComponent("cmp.arena.loopc.item");
|
|
if (cmp) {
|
|
cmp.freshOp();
|
|
}
|
|
}
|
|
},
|
|
closeAllItemDesc: function closeAllItemDesc() {
|
|
for (var i = 0; i < this.nodRewards.children.length; i++) {
|
|
var n = this.nodRewards.children[i];
|
|
nx.gui.setActive(n, "show", false);
|
|
}
|
|
nx.gui.setActive(this.nodCloseIco, "", false);
|
|
},
|
|
setRewardsInfo: function setRewardsInfo(_award) {
|
|
var cfg = game.configs.arena_data.data_season_num_reward;
|
|
var chd = this.nodRewards.children;
|
|
for (var i = 0; i < cfg.length; i++) {
|
|
var award = cfg[i];
|
|
var nod = chd[i];
|
|
var cmp = nod.getComponent("cmp.arena.loopc.reward.item");
|
|
if (cmp) {
|
|
cmp.setData(award, i, {
|
|
got: _award
|
|
});
|
|
}
|
|
}
|
|
},
|
|
updateTimesAwards: function updateTimesAwards() {},
|
|
onTouchRank: function onTouchRank() {
|
|
nx.bridge.createPanel("WndArenaLoopCRankAward", {
|
|
ops: ["RankNow", "DailyAwards", "SeasonAwards"],
|
|
cb: function cb() {
|
|
ArenaController.getInstance().sender20221();
|
|
},
|
|
dfg: game.configs.arena_data.data_activity,
|
|
sfg: game.configs.arena_data.data_awards,
|
|
show: "RankNow"
|
|
});
|
|
},
|
|
onTouchReward: function onTouchReward() {
|
|
nx.bridge.createPanel("WndArenaLoopCRankAward", {
|
|
ops: ["RankNow", "DailyAwards", "SeasonAwards"],
|
|
cb: function cb() {
|
|
ArenaController.getInstance().sender20221();
|
|
},
|
|
dfg: game.configs.arena_data.data_activity,
|
|
sfg: game.configs.arena_data.data_awards,
|
|
show: "DailyAwards"
|
|
});
|
|
},
|
|
onTouchFresh: function onTouchFresh() {
|
|
var AC = ArenaController.getInstance();
|
|
AC.sender20206();
|
|
},
|
|
// 跳转竞技场积分商城
|
|
onTouchShop: function onTouchShop() {
|
|
nx.bridge.jumper.jump2Window(2, [MallConst.MallType.ScoreShop, MallConst.MallType.ArenaShop]);
|
|
},
|
|
openWarLog: function openWarLog() {
|
|
nx.bridge.createPanel("WndArenaLoopCWarLog");
|
|
},
|
|
closeSelf: function closeSelf() {
|
|
var _this = this;
|
|
nx.bridge.createPanel("WndArenaLoopCWorShip");
|
|
this.scheduleOnce(function () {
|
|
_this.close();
|
|
}, 0.3);
|
|
},
|
|
// 规则说明
|
|
onTouchTip: function onTouchTip() {
|
|
var desc = game.configs.arena_data.data_explain[1];
|
|
var TC = TipsController.getInstance();
|
|
if (TC) {
|
|
TC.showTextPanel(desc.title, desc.desc);
|
|
}
|
|
},
|
|
showResult: function showResult() {
|
|
nx.bridge.createPanel("WndArenaLoopCResult");
|
|
},
|
|
onTouchBuy: function onTouchBuy() {
|
|
var cfg = game.configs.arena_data.data_const;
|
|
var item_bid = cfg.arena_ticket.val;
|
|
var EC = TipsController.getInstance();
|
|
var item = {
|
|
item_bid: item_bid,
|
|
price: cfg.ticket_price.val[0][1],
|
|
pay_type: cfg.ticket_price.val[0][0]
|
|
};
|
|
var AC = ArenaController.getInstance();
|
|
EC.openBuyPanel(true, item, 5, function (_data) {
|
|
AC.sender20207(_data.num);
|
|
EC.openBuyPanel(false);
|
|
});
|
|
},
|
|
// 點擊編隊
|
|
onTouchForm: function onTouchForm() {
|
|
var heros = HeroController.getInstance().getModel().getAllHeroArray();
|
|
HeroController.getInstance().openFormGoFightPanel(true, PartnerConst.Fun_Form.ArenaDefend, {
|
|
need_hide_top: true
|
|
}, HeroConst.FormShowType.eFormSave);
|
|
// let LC = LadderController.getInstance();
|
|
// LC.openLadderTopThreeWindow( true );
|
|
},
|
|
|
|
onTouchSkip: function onTouchSkip() {
|
|
var model = ArenaController.getInstance().getModel();
|
|
var role = RoleController.getInstance().getRoleVo();
|
|
// 當前挑戰次數----
|
|
var ctimes = model.getHadCombatNum();
|
|
// let skip = nx.storage.get( "skip_battle" );
|
|
var cmp = nx.gui.getComponent(this.nodSkip, "", cc.Toggle);
|
|
var cond = game.configs.arena_data.data_const.arena_skip_count.val;
|
|
if (cmp) {
|
|
var active = cmp.isChecked;
|
|
if (ctimes < cond) {
|
|
this.first == 0 ? nx.tbox("") : nx.tbox(nx.text.format("msg_battle_form_fight_num", cond));
|
|
cmp.isChecked = false;
|
|
nx.storage.set("skip_battle" + role.rid, 0);
|
|
model.setSkip(0);
|
|
return;
|
|
} else {
|
|
cmp.isChecked = true;
|
|
model.setSkip(cmp.isChecked ? 1 : 0);
|
|
nx.storage.set("skip_battle" + role.rid, cmp.isChecked ? 1 : 0);
|
|
}
|
|
}
|
|
// let canskip =
|
|
},
|
|
|
|
onTouchSkipTog: function onTouchSkipTog() {
|
|
var model = ArenaController.getInstance().getModel();
|
|
// 當前挑戰次數----
|
|
var role = RoleController.getInstance().getRoleVo();
|
|
var ctimes = model.getHadCombatNum();
|
|
// let skip = nx.storage.get( "skip_battle" );
|
|
var cmp = nx.gui.getComponent(this.nodSkip, "", cc.Toggle);
|
|
var cond = game.configs.arena_data.data_const.arena_skip_count.val;
|
|
if (cmp) {
|
|
if (ctimes < cond) {
|
|
this.first == 0 ? nx.tbox("") : nx.tbox(nx.text.format("msg_battle_form_fight_num", cond));
|
|
cmp.isChecked = false;
|
|
model.setSkip(0);
|
|
nx.storage.set("skip_battle" + role.rid, 0);
|
|
return;
|
|
} else {
|
|
model.setSkip(cmp.isChecked ? 1 : 0);
|
|
nx.storage.set("skip_battle" + role.rid, cmp.isChecked ? 1 : 0);
|
|
}
|
|
}
|
|
},
|
|
// ============================================
|
|
// 引导辅助
|
|
// ============================================
|
|
|
|
// 定位最弱的一个
|
|
positionWeakest: function positionWeakest() {
|
|
var node = null;
|
|
var chd = nx.gui.find(this.nodLst, "").children;
|
|
node = chd[0];
|
|
// let node = null;
|
|
// let children = this.svcList.bindSCV.content.children;
|
|
// for( let i = 0; i < children.length; ++i ) {
|
|
// let temp = children[ i ];
|
|
// if( temp.svItem && temp.svItem.mdata && temp.svItem.mdata.bid == 20401 ) {
|
|
// node = temp;
|
|
// break;
|
|
// }
|
|
// }
|
|
|
|
if (!node) {
|
|
nx.error("$ParterPage:定位特定英雄失败!");
|
|
node = chd[0];
|
|
if (!node) {
|
|
return;
|
|
}
|
|
}
|
|
var cell = nx.gui.find(this, "plotWeakest");
|
|
var pos = node.convertToWorldSpaceAR(cc.Vec2.ZERO);
|
|
cell.position = cell.parent.convertToNodeSpaceAR(pos);
|
|
cell.width = node.width;
|
|
cell.height = node.height;
|
|
cell.mdata = node.getComponent("nx.fx.sv.expand.item").mdata;
|
|
nx.gui.setActive(this, "plotWeakest", true);
|
|
},
|
|
// 点击挑战最弱
|
|
onTouchWeakest: function onTouchWeakest() {
|
|
var cell = nx.gui.find(this, "plotWeakest");
|
|
var AC = ArenaController.getInstance();
|
|
AC.sender20203(cell.mdata.rid, cell.mdata.srv_id);
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |