165 lines
4.9 KiB
JavaScript
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();
|