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