Files
fc/dev/project/library/imports/94/94b673a4-d684-45e9-8faa-30bf25e6f380.js
T
2026-05-24 10:21:26 +08:00

165 lines
4.9 KiB
JavaScript

"use strict";
cc._RF.push(module, '94b67Ok1oRF6Y+qML8l5vOA', 'cmp.act.encounter.wnd');
// Scripts/mod/acts/encounter/cmp/cmp.act.encounter.wnd.js
"use strict";
/******************************************************************
*
* 銀河奇遇
*
******************************************************************/
var ActPopup = require("act.popup.base");
var EncounterMod = require("act.encounter.mod");
var HCT = require("hero_controller");
var FID = require("bridge.function.ids");
var PartnerConst = require("partner_const");
var HeroVo = require("hero_vo");
cc.Class({
"extends": ActPopup,
properties: {
items: {
"default": [],
type: [cc.Node]
}
},
// 初始化
onLoad: function onLoad() {
this.mod = EncounterMod.getInstance();
this.fake_data = game.configs.fake_battle_data;
this.GetRewardsList = {};
this.settings = {}; //配置處理,需要發送到佈陣界面
// 活动监听
this.mod.vbind(this, [["EncounterData", this.freshData.bind(this)]]);
},
onOpenConfigs: function onOpenConfigs(_params) {
var _this = this;
this._super(_params);
this.setTips();
this.mod.send31000(function () {
_this.mod.tryGuide();
});
},
setTips: function setTips() {
for (var i in this.items) {
var nd = this.items[i];
if (nd) {
var tip = nx.gui.find(nd, "tog/tip");
var dot = nx.gui.getComponent(tip, "", "nx.vb.visible");
if (!dot) {
nx.gui.setActive(dot, "", false);
} else {
var key = this.mod.getTipKey(this.mod.tipKeys()[i]);
dot.setTarget(nx.mTip, key);
}
}
}
},
onPreClosed: function onPreClosed() {
// 活动监听解除
if (this.mod) {
this.mod.vunbind(this);
}
},
freshData: function freshData(data) {
if (nx.dt.objEmpty(data)) return;
var len = this.items.length;
var data_info = this.fake_data.data_info;
for (var i = 0; i < len; i++) {
var item = this.items[i];
var info = data_info[i + 1];
if (info) {
nx.gui.setString(item, "name/txt", info.name);
var is_bat = false; //可以挑戰
var is_finish = false; //挑戰完成
is_bat = info.unlock.length == 0;
for (var idx in data.ids) {
if (data.ids[idx].id >= info.unlock[0]) {
is_bat = true;
}
if (data.ids[idx].id == info.id) {
is_finish = true;
}
}
if (is_finish) {
nx.gui.setString(item, "tog/on/txt", nx.text.getKey("ChallengeAgain"));
} else {
nx.gui.setString(item, "tog/on/txt", nx.text.getKey("Goto"));
}
nx.gui.setActive(item, "tog/on", is_bat);
nx.gui.setActive(item, "tog/off", !is_bat);
var is_get = false; //領取獎勵
for (var _id in data.reward_ids) {
if (data.reward_ids[_id].id == info.id) {
is_get = true;
}
}
if (is_finish && !is_get) {
//完成挑戰且未領取獎勵
this.GetRewardsList[info.id] = true;
nx.gui.setString(item, "tog/on/txt", nx.text.getKey("RewardGet"));
} else {
this.GetRewardsList[info.id] = false;
}
}
}
},
createHeroList: function createHeroList(data) {
var enemys = data.partner_id;
var heros = [];
var pos_id = 0;
//可選英雄列表
for (var i in enemys) {
var id = enemys[i];
var unit_data = Utils.getUnitConfig(id);
if (unit_data && unit_data.head_icon) {
var hero = new HeroVo();
var pconfig = game.configs.partner_data.data_partner_base[Number(unit_data.head_icon)];
pconfig.lev = unit_data.lev;
pconfig.star = unit_data.star;
pconfig.is_try = 1; //試用 0 1
hero.updateHeroVo(pconfig);
hero.partner_id = id;
heros.push(hero);
if (id == data.required_partner[0][0]) {
pos_id = hero.partner_id;
}
}
}
//基礎佈陣信息,精靈和行星武器都為空
this.settings.hero_list = heros;
this.settings.formation_type = data.formation;
this.settings.tag_pos = {
pos: data.required_partner[0][1],
id: pos_id
};
this.settings.id = data.id;
},
touchChallenge: function touchChallenge(_index) {
var data = this.fake_data.data_info[_index];
var is_reward = this.GetRewardsList[data.id];
if (is_reward) {
//有獎勵要領取
this.mod.send31002(data.id);
} else {
//挑戰
this.createHeroList(data);
HCT.getInstance().openFormGoFightPanel(true, PartnerConst.Fun_Form.Encounter, this.settings, 4, false, function () {
nx.bridge.jumper.jump2Window(FID.StarUserTramp);
});
this.close();
}
},
touchDetail: function touchDetail(_index) {
var data = this.fake_data.data_info[_index];
if (!data) return;
nx.bridge.createPanel("WndActEncounterDetail", {
target_id: data.target_id,
reward: data.reward
});
}
});
cc._RF.pop();