Files
fc/dev/project/library/imports/58/58981c00-95f5-44ee-9109-4a4d9590d7a5.js
2026-05-24 10:21:26 +08:00

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();