"use strict"; cc._RF.push(module, 'dcb773VSQtLIqIPgDTUM97m', 'cmp.battle.settle.fail'); // Scripts/mod/battle/cmp/cmp.battle.settle.fail.js "use strict"; var RoleController = require("role_controller"); var BattleController = require("battle_controller"); var BattleDramaController = require("battle_drama_controller"); var BattleConst = require("battle_const"); var BattleEvent = require("battle_event"); var BridgeWindow = require("bridge.window"); var NxSpine = require("nx.fx.spine"); var FID = require("bridge.function.ids"); cc.Class({ "extends": BridgeWindow, properties: { mainNd: { "default": null, type: cc.Node }, icon: { "default": null, type: cc.Node }, confirm: { "default": null, type: cc.Node }, infoNd: { "default": null, type: cc.Node }, hurtTxt: { "default": null, type: cc.Label }, mvp_icon_sp: { "default": null, type: NxSpine }, svp_icon_sp: { "default": null, type: cc.Sprite }, harm_btn: { "default": null, type: cc.Node }, btns: { "default": [], type: [cc.Node] }, mainSp: { "default": null, type: NxSpine }, infoSp: { "default": null, type: NxSpine }, bMvp: { "default": null, type: NxSpine } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this.role_vo = RoleController.getInstance().getRoleVo(); this.ctrl = BattleController.getInstance(); this.model = this.ctrl.getModel(); this.drama_ctrl = BattleDramaController.getInstance(); this.is_running = false; this.is_result = false; this.effect_list = {}; this.x = 100; this.cfg_list = []; this.bindGEvent(BattleEvent.BATTLE_HARM_MVP, this.changeMvpDraw.bind(this)); }, start: function start() {}, // 重载:关闭前 onPreClosed: function onPreClosed() { nx.bridge.vset("ResultInfo", {}); this.ctrl.delSpecialRetInfo(this.fight_type); if (this.model.getBattleScene() && this.ctrl.getIsSameBattleType(this.fight_type)) { if (this.is_result) return; var data = { combat_type: this.fight_type, result: this.result }; this.model.result(data, null); this.is_result = true; } if (this.fight_type == BattleConst.Fight_Type.newHeroUse) { nx.bridge.jumper.jump2Window(FID.StarUserTramp); } }, onOpenConfigs: function onOpenConfigs(params) { var wins = 0; var par = nx.bridge.ui.getSceneNode(5); for (var i in par.children) { if (par.children[i] && par.children[i].name == "WndFailSettle") { wins++; } } if (wins > 1) { this.delayClose(); return; } var data = nx.bridge.vget("ResultInfo"); if (nx.dt.objEmpty(data)) { return; } //需要提前隐藏下层的战斗场景 gcore.GlobalEvent.fire(BattleEvent.HIDE_BAT_UI_IN_SETTLE); this.data = data; this.result = data.result; this.fight_type = params.combat_type || data.combat_type || BattleConst.Fight_Type.Darma; //總傷害,mvp處理,皮膚處理ext_data,key 5 this.setInfos(); if (this.data && this.data.hurt_statistics) { this.harm_btn.active = true; } else { this.harm_btn.active = false; } this.createButton(); this.doMainStep(); // this.scheduleOnce(()=>{ // this.sendBattleClear(); // },0.3); this.scheduleOnce(function () { nx.audio.playSFX("audios/effects/lose", false); }, 0.1); }, sendBattleClear: function sendBattleClear() { if (this.model.getBattleScene() && this.ctrl.getIsSameBattleType(this.fight_type)) { if (this.is_result) return; var data = { combat_type: this.fight_type, result: this.result }; this.model.result(data, null); this.is_result = true; } }, doMainStep: function doMainStep() { var _this = this; this.mainSp.action("action1", false, function (_key, _name) { console.log(_key, _name); if (_key == "t1") { _this.icon.runAction(cc.fadeIn(0.16)); return; } if (_key == "t2") { var index = 0; _this.schedule(function () { var btn = _this.btns[index]; btn.runAction(cc.sequence(cc.spawn(cc.scaleTo(0.16, 1.1), cc.fadeIn(0.16)), cc.scaleTo(0.16, 1))); index++; }, 0.06, 3); return; } if (_key == "t3") { _this.confirm.runAction(cc.sequence(cc.spawn(cc.scaleTo(0.16, 1.1), cc.fadeIn(0.16)), cc.scaleTo(0.16, 1))); return; } if (_key == "t4") { _this.harm_btn.runAction(cc.fadeIn(0.33)); return; } if (_key == "complete") { _this.mainSp.action("action2", true, null); return; } }); }, setInfos: function setInfos() { if (nx.dt.arrEmpty(this.data.hurt_statistics)) { return; } var hurt_arr = this.data.hurt_statistics; var partner_hurt = {}; for (var i = 0; i < hurt_arr.length; i++) { var data = hurt_arr[i]; if (data.type == 1) { //我方數據 partner_hurt = data.partner_hurts; } } if (nx.dt.arrEmpty(partner_hurt)) { return; } var total_hurt = 0; var mvp_hurt = 0; this.mvp_skin_id = 0; var svp_cure = 0; this.svp_skin_id = 0; for (var v in partner_hurt) { var info = partner_hurt[v]; //总伤害 total_hurt += info.dps; if (info.dps >= mvp_hurt) { //生成新的dps mvp_hurt = info.dps; this.hurt_mvp = info.bid; for (var key in info.ext_data) { if (info.ext_data[key].key == 5) { this.mvp_skin_id = info.ext_data[key].val; } } } if (info.cure > svp_cure) { svp_cure = info.cure; this.cure_mvp = info.bid; for (var _key2 in info.ext_data) { if (info.ext_data[_key2].key == 5) { this.svp_skin_id = info.ext_data[_key2].val; } } } } this.setMvpPartner(); // this.setSvpPartner(); //伤害统计 this.hurtTxt.string = total_hurt; }, setMvpPartner: function setMvpPartner() { var _this2 = this; var partner_config = game.configs.partner_data.data_partner_base[this.hurt_mvp]; var skin_config = game.configs.partner_skin_data.data_skin_info[this.mvp_skin_id]; //名称和立绘 if (partner_config) { var bustid = partner_config.bustid; if (skin_config) { bustid = skin_config.bustid; } var bust_res = PathTool.getSpinePath(bustid, "show", false); this.mvp_icon_sp.load(bust_res, function (_e) { if (!_e) { _this2.mvp_icon_sp.action("action1", true); } else { _this2.mvp_icon_sp.stop(); } }); } }, // setSvpPartner(){ // let partner_config = game.configs.partner_data.data_partner_base[this.cure_mvp]; // let skin_config = game.configs.partner_skin_data.data_skin_info[this.svp_skin_id]; // //名称和立绘 // if (partner_config) { // let bustid = partner_config.bustid; // if(skin_config){ // bustid = skin_config.bustid; // } // var bust_res = PathTool.getIconPath("models/"+bustid,"half_show"); // cc.loader.loadRes(bust_res, cc.SpriteFrame,(err,bg_sf)=> { // if(err){ // let emp = PathTool.getIconPath("empty","half_show"); // nx.gui.setSpriteFrame(this.svp_icon_sp.node,"",emp); // } // this.svp_icon_sp.spriteFrame = bg_sf; // }); // } // }, changeMvpDraw: function changeMvpDraw(type) { this.bMvp.node.active = true; if (type == 1) { this.mvp_icon_sp.node.runAction(cc.fadeIn(0.55).easing(cc.easeIn(0.55))); // this.svp_icon_sp.node.runAction(cc.fadeOut(0.1)); if (this.hurt_mvp) { this.bMvp.action("action1", false); } else { this.bMvp.node.active = false; } } else { // this.mvp_icon_sp.node.runAction(cc.fadeOut(0.1)); // this.svp_icon_sp.node.runAction(cc.fadeIn(0.55).easing(cc.easeIn(0.55))); if (this.cure_mvp) { this.bMvp.action("action1", false); } else { this.bMvp.node.active = false; } } }, touchGoBtn: function touchGoBtn(_type) { this.openPanelByConfig(this.cfg_list[_type]); this.ctrl.openFailFinishView(false, this.fight_type); }, createButton: function createButton() { var config = game.configs.battle_act_data.data_get_fail_data; if (this.fight_type == BattleConst.Fight_Type.Darma) { var base_data = this.drama_ctrl.getModel().getDramaData(); var max_dun_id = base_data.max_dun_id; for (var i in config) { var v = config[i]; if (v.open_dungeon > max_dun_id) { this.btns[i - 1].active = false; } else { this.cfg_list.push(v); nx.gui.setString(this.btns[i - 1], "label", v.icon_name); } } } else { for (var i in config) { var v = config[i]; this.cfg_list.push(v); nx.gui.setString(this.btns[i - 1], "label", v.icon_name); } } }, openPanelByConfig: function openPanelByConfig(config) { var BCJ = BattleConst.JumpType; var type = 0; switch (config.val_key) { case BCJ.Summon: { type = 1; } break; case BCJ.HeroBag: { type = 19; } break; case BCJ.Forge: { type = 26; } break; case BCJ.Hallows: { type = 20; } break; default: return; } nx.bridge.jumper.jump2Window(type); }, clickMain: function clickMain() { this.mvp_icon_sp.node.opacity = 0; // this.svp_icon_sp.node.opacity = 0; this.mainNd.active = true; this.infoNd.scaleX = 0; this.bMvp.node.active = false; }, clickInfo: function clickInfo() { var _this3 = this; this.mainNd.active = false; this.infoNd.active = true; this.infoNd.scaleX = 1; this.infoSp.action("action1_1", false, function (_key, _name) { if (_key == "start") { _this3.changeMvpDraw(1); gcore.GlobalEvent.fire(BattleEvent.BATTLE_HARM_DATA, _this3.data); } if (_key == "complete") { _this3.infoSp.action("action1_2", true); return; } }); } // update (dt) {}, }); cc._RF.pop();