"use strict"; cc._RF.push(module, 'b78fb2Onb5Jg4Ihkgakshgj', 'cmp.adventure.ui.top'); // Scripts/mod/pve/adventure/cmp/cmp.adventure.ui.top.js "use strict"; var BridgeComp = require("bridge.component"); var ADVCT = require("adventure_controller"); var ADEVT = require("adventure_event"); var NxExpand = require("nx.fx.sv.expand"); var HeroVo = require("hero_vo"); cc.Class({ "extends": BridgeComp, properties: { useHeros: { "default": [], type: [cc.Node] }, fabHero: { "default": null, type: cc.Prefab }, goodsList: { "default": null, type: NxExpand }, buffList: { "default": null, type: NxExpand }, heroTogs: { "default": [], type: [cc.Toggle] } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this._super(); this.select_hero = 0; this.heros = {}; this.goods = []; this.buffs = []; this.bindGEvent(ADEVT.Update_Goods, this.updateGoods.bind(this)); this.bindGEvent(ADEVT.Update_Hero_Info, this.updateHeros.bind(this)); this.bindGEvent(ADEVT.Udpate_Buff_List, this.updateBuffs.bind(this)); }, updateGoods: function updateGoods(data) { var list = []; this.goods = []; if (data) { list = data.items_list; //新數據 } this.goodsList.rebuild(list); this.goods = list; }, updateBuffs: function updateBuffs(data) { var list = []; this.buffs = []; if (data) { list = data.buff_list; } this.buffList.rebuild(list); this.buffs = list; //刷新人物身上的buff状态 var mType = ADVCT.getInstance().getPlayModel(); if (mType == 1) { var buff_data = game.configs.adventure_endless_data.data_buff; for (var i = 0; i < list.length; i++) { var buff = list[i]; if (buff_data[buff.bid] && buff_data[buff.bid].effect == "E66002") { gcore.GlobalEvent.fire(ADEVT.Update_Role_Good_Status, buff_data[buff.bid].effect); return; } } } else { var buff_data2 = game.configs.adventure_weekly_data.data_adventure_event; for (var _i = 0; _i < list.length; _i++) { var buff2 = list[_i]; if (buff_data2[buff2.bid] && buff_data2[buff2.bid].effect == "E66002") { gcore.GlobalEvent.fire(ADEVT.Update_Role_Good_Status, buff_data2[buff2.bid].effect); return; } } } //没有中毒就不播放特效 gcore.GlobalEvent.fire(ADEVT.Update_Role_Good_Status, ""); }, clickMoreGoods: function clickMoreGoods() { ADVCT.getInstance().openMoreItemsWindow(2, this.goods); }, clickMoreBuffs: function clickMoreBuffs() { ADVCT.getInstance().openMoreItemsWindow(1, this.buffs); }, updateHeros: function updateHeros(partners) { var index = 0; var is_form = false; for (var i in partners) { var hero = this.heros[index]; if (!hero) { var pre = cc.instantiate(this.fabHero); this.useHeros[index].parent.active = true; pre.parent = this.useHeros[index]; var cmp = pre.getComponent("cmp.adventure.partner"); this.heros[index] = cmp; hero = cmp; } var hero_vo = new HeroVo(); hero_vo.updateHeroVo(partners[i]); hero.rebind(index, hero_vo, ""); index++; } //死亡推移 if (this.heros[this.select_hero] && this.heros[this.select_hero].mdata.now_hp <= 0) { for (var _hero in this.heros) { if (this.heros[_hero].mdata.now_hp > 0) { is_form = true; this.select_hero = _hero; } } if (!is_form) { this.select_hero = 0; } } this.onTogHero(null, this.select_hero); }, start: function start() {}, onDisable: function onDisable() { this.unbindGEvents(); this.goodsList.rebuild([]); this.buffList.rebuild([]); }, onEnable: function onEnable() { var list = ADVCT.getInstance().getAllFormPartners(); this.updateHeros(list); }, onTogHero: function onTogHero(e, _index) { var hero = this.heros[Number(_index)]; if (!hero) { var tog = this.heroTogs[this.select_hero]; tog.isChecked = true; return; } if (hero.mdata.now_hp <= 0) { var _tog = this.heroTogs[this.select_hero]; _tog.isChecked = true; return nx.tbox("AdvenDead"); } if (!e) { var _tog2 = this.heroTogs[Number(_index)]; _tog2.isChecked = true; } if (e && Number(_index) == this.select_hero) { //展示面板· nx.bridge.createPanel("WndAdventureDetail", { bid: hero.mdata.bid }); return; } this.select_hero = Number(_index); ADVCT.getInstance().setCurLeader(hero.mdata.bid); ADVCT.getInstance().send29510(hero.mdata.bid); gcore.GlobalEvent.fire(ADEVT.Update_Role_Model); }, clickAddPower: function clickAddPower() { var cfg = game.configs.adventure_weekly_data.data_adventure_const.prize; var buyLimit = game.configs.adventure_weekly_data.data_adventure_const.buy_condition.val; var str = cc.js.formatStr(nx.text.getKey("AdvenBuyEnerg"), cfg.val[0], cfg.val[1], buyLimit[1], buyLimit[0]); nx.mbox(str, ["cancel", "confirm"], function (_key, _box) { _box.close(); if (_key == "confirm") { ADVCT.getInstance().send29513(); } }); } // update (dt) {}, }); cc._RF.pop();