"use strict"; cc._RF.push(module, '059da7nhwBABr0BlqX2cjNI', 'cmp.battledrama.reward'); // Scripts/mod/battle_drama/cmp/cmp.battledrama.reward.js "use strict"; var BridgeWindow = require("bridge.window"); var FxSVC = require("nx.fx.sv.expand"); var BattleDramaController = require("battle_drama_controller"); var DramaEvent = require("battle_drama_event"); var NxSpine = require("nx.fx.spine"); var PathTool = require("pathtool"); cc.Class({ "extends": BridgeWindow, properties: { SVClist: { "default": null, type: FxSVC }, pass_dungeon_name: { "default": null, type: cc.Label }, role: { "default": null, type: NxSpine }, sepGetIcon: { "default": null, type: cc.Node } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this.controller = BattleDramaController.getInstance(); this.model = this.controller.getModel(); this.config_list = {}; // this.summon_special_data = {}; this.bindGEvent(DramaEvent.BattleDrama_Drama_Reward_Data, this.updateShowInfoList.bind(this)); }, onEnable: function onEnable() {}, start: function start() {}, onOpenConfigs: function onOpenConfigs() { this.updateShowInfoList(); }, onPreClosed: function onPreClosed() { this.SVClist.rebuild([]); }, // 更新显示 updateShowInfoList: function updateShowInfoList(id, type) { if (id == null) { this.initConfigRewardList(); } else { if (nx.dt.arrEmpty(id.list)) { if (type == 0) { var object = this.config_list[id]; if (object) { object.is_received = true; // 已领取 object.sort_index = 3; // 已领取排序id } } } else { for (var i = 0; i < id.list.length; i++) { var info = id.list[i]; var _object = this.config_list[info.id]; if (_object) { _object.is_received = true; // 已领取 _object.sort_index = 3; // 已领取排序id } } } //特殊奖励 // if( type == 1 ) { // var object = this.config_list[ id ]; // object.is_spe_received = true; // object.spe_sort_index = 3; // this.summon_special_data.sort_index = 3; // } } if (this.rewards_list) { this.rewards_list.sort(Utils.tableLowerSorter(["sort_index", "sort"])); this.SVClist.rebuild(this.rewards_list); // 引导辅助 if (nx.bridge.plot && nx.bridge.plot.isDoing()) { this.positionGet(); } } }, // 初始化奖励列表 initConfigRewardList: function initConfigRewardList() { var _this = this; if (this.rewards_list) return; this.rewards_list = []; var floor = 0; var pass_list = this.model.getDramaRewardPassList(); // 已通关列表 var spe_pass_list = this.model.getDramaSpeRewardPassList(); // 特殊通关奖励 var drama_data = this.model.getDramaData(); // 当前剧情副本数据 if (nx.dt.objEmpty(drama_data)) { return false; } //spine动画,显示大奖励 var res_path = PathTool.getSpinePath("H30095", "show", false); this.role.load(res_path, function (_e) { if (!_e) { _this.role.action("drama1", true); } else { _this.role.stop(); } }); //已经通过显示 if (drama_data.max_dun_id == null || drama_data.max_dun_id == 0) { this.pass_dungeon_name.string = "--"; // 名字 } else { var per_drama_dungeon_info = game.configs.dungeon_data.data_drama_dungeon_info[drama_data.max_dun_id]; this.pass_dungeon_name.string = per_drama_dungeon_info.name; // 名字 } var max_dun_id = drama_data.max_dun_id; var cur_drama_dungeon_info = game.configs.dungeon_data.data_drama_dungeon_info[max_dun_id]; if (cur_drama_dungeon_info) { floor = cur_drama_dungeon_info.floor || 0; // 当前层,用于比较的 } //特殊关卡1-40,10400,id是8,策划说写死 var bShowSepGet = false; // 遍历出整个列表 for (var key in game.configs.dungeon_data.data_drama_reward) { var config = game.configs.dungeon_data.data_drama_reward[key]; if (config) { var target_config = game.configs.dungeon_data.data_drama_dungeon_info[config.limit_id]; if (target_config) { var is_spe_received = spe_pass_list[config.id]; var object = { config_data: config, id: config.id, is_received: pass_list[config.id] || false, is_spe_received: is_spe_received, cur_dunname: target_config.name, cur_dun: floor, sort_index: 0, sort: config.sort, spe_sort_index: 0, target_dun: target_config.floor }; this.rewards_list.push(object); if (max_dun_id >= config.limit_id) { if (object.is_received) { object.sort_index = 3; // 已领取 if (object.id == 8) { bShowSepGet = true; } } else { object.sort_index = 1; // 可领取 } if (object.is_spe_received) { object.spe_sort_index = 3; } else { object.spe_sort_index = 1; } } else { object.sort_index = 2; // 条件不满足 object.spe_sort_index = 2; } // 储存一下 this.config_list[config.id] = object; } } //是否添加通关特殊奖励 // if( config.special_items.length != 0 ) { // this.summon_special_data.id = config.id; // this.summon_special_data.sort_index = this.config_list[ config.id ].spe_sort_index; // if( floor < 40 ) { // this.tips.string = cc.js.formatStr( "(%d/%d)", floor, 40 ); // } else { // this.tips.string = "(40/40)"; // var RoleController = require( "role_controller" ); // let role_vo = RoleController.getInstance().getRoleVo(); // let claim_p = nx.storage.get( role_vo.srv_id + "_" + role_vo.rid + "chappass" ); // if( claim_p ) {//领取过 // nx.gui.setString(this.reflect_btn,"txt",nx.text.getKey("Got")); // nx.gui.setLocked(this.reflect_btn.node,"",true); // } else {//未领取 // nx.gui.setLocked(this.reflect_btn.node,"",false); // } // } // let cmp = nx.gui.getComponent( this.summon_item, "", "nx.fx.sv.expand.item" ); // cmp.rebind( 1, { bid: config.special_items[ 0 ][ 0 ], num: config.special_items[ 0 ][ 1 ] }, "" ); // } } nx.gui.setActive(this.sepGetIcon, "", bShowSepGet); }, // touchReflect() { // if( this.summon_special_data.sort_index == 1 ) { // this.controller.send13009( 1, this.summon_special_data.id ); // nx.gui.setString(this.reflect_btn,"txt",nx.text.getKey("Got")); // nx.gui.setLocked(this.reflect_btn.node,"",true); // var RoleController = require( "role_controller" ); // let role_vo = RoleController.getInstance().getRoleVo(); // nx.storage.set( role_vo.srv_id + "_" + role_vo.rid + "chappass", 1 ); // } // }, // ============================================ // 引导辅助 // ============================================ // 首次领奖定位 positionGet: function positionGet() { // 查找第一个能领取的任务 var node = null; var children = this.SVClist.bindSCV.content.children; for (var i = 0; i < children.length; ++i) { var temp = children[i]; if (temp.svItem && temp.svItem.mdata && temp.svItem.comfirm_btn.active && temp.svItem.mdata.id == 77) { node = temp; break; } } if (!node) { nx.error("$DramaReward:定位首次领奖失败!"); node = children[0]; if (!node) { return; } } var btn = node.svItem.comfirm_btn; var cell = nx.gui.find(this, "container/plotCell"); var pos = btn.convertToWorldSpaceAR(cc.Vec2.ZERO); cell.position = cell.parent.convertToNodeSpaceAR(pos); cell.width = btn.width; cell.height = btn.height; cell.svItem = node.svItem; }, // 点击首次领奖处理 onTouchFirstGet: function onTouchFirstGet() { var cell = nx.gui.find(this, "container/plotCell"); if (cell && cell.svItem) { cell.svItem.touchConfirm(); } } }); cc._RF.pop();