"use strict"; cc._RF.push(module, '3f4e7yQjfBIoKsVuXdL4sDK', 'cmp.battledrama.quick'); // Scripts/mod/battle_drama/cmp/cmp.battledrama.quick.js "use strict"; var BridgeWindow = require("bridge.window"); var FxSVC = require("nx.fx.sv.expand"); var PathTool = require("pathtool"); var BattleDramaController = require("battle_drama_controller"); var RoleController = require("role_controller"); var DramaEvent = require("battle_drama_event"); var TPC = require("tips_controller"); var ActMod = require("act.month.mod"); var PartnerBodyShow = require("cmp.partner.body.show"); var NxSpine = require("nx.fx.spine"); cc.Class({ "extends": BridgeWindow, properties: { SVClist: { "default": null, type: FxSVC }, desc: { "default": null, type: cc.RichText }, source_label: { "default": null, type: cc.Label }, notice_label: { "default": null, type: cc.RichText }, btn_buy_rt: { "default": null, type: cc.RichText }, source_icon: { "default": null, type: cc.Node }, smod: { "default": null, type: cc.Prefab }, mod_tar: { "default": null, type: cc.Node }, nodRole: { "default": null, type: NxSpine } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this.controller = BattleDramaController.getInstance(); this.drama_model = this.controller.getModel(); this.role_vo = RoleController.getInstance().getRoleVo(); this.quick_battle_status = 0; this.privilege_status = RoleController.getInstance().getModel().checkPrivilegeStatus(1); // 是否有特权 //快速战斗数据更新 this.bindGEvent(DramaEvent.BattleDrama_Quick_Battle_Data, this.updateData.bind(this)); }, start: function start() { var _this = this; this.btn_buy_rt.string = cc.js.formatStr("%s", nx.text.getKey("newfirstcharge_window_tip2")); //秘书组id var _id = nx.bridge.vget("clerkShowId"); var arr = _id.split("_"); var id = cc.js.formatStr("%s_%s", arr[0], arr[1]); var cfg = gdata("partner_data", "data_partner_star", id); var rcfg = gdata("partner_data", "data_partner_base", id); var path = cc.path.join("resDB/models/" + cfg.res_id + "/show"); this.nodRole.load(path, function (_e) { if (!_e) { _this.nodRole.action("drama1", true); } else { _this.nodRole.stop(); } }); // this.nodRole.setPartner( cfg ); // if(!this.splayer){ // this.splayer = cc.instantiate(this.smod); // this.splayer.parent = this.mod_tar; // this.splayer.position = cc.v2(0,0); // } // let cmp = this.splayer.getComponent("cmp.partner.smod"); // if(cmp &&( arr.length>1)){ // cmp.setData(cfg,true,false); // } }, touchVIp: function touchVIp() { nx.bridge.createPanel("WndPayment", { page: "shop" }); this.controller.openDramBattleQuickView(false); }, onOpenConfigs: function onOpenConfigs() { this.updateData(); this.updateShowItems(); this.cardhoner = ActMod.getInstance().vget("monthCard1"); this.cardsmall = ActMod.getInstance().vget("monthCard2"); // 説明 添加關於月卡祝福的説明 this.updateShowDesc(); }, onPreClosed: function onPreClosed() { this.SVClist.rebuild([]); }, // 次数和按钮显示 updateData: function updateData() { var quickdata = this.drama_model.getQuickData(); if (nx.dt.objEmpty(quickdata)) { return false; } this.quick_battle_status = 0; // 当前特权次数状态 this.quick_battle_cost = 0; // 当前特权消耗 var res = PathTool.queryIconPath(3); nx.gui.setSpriteFrame(this.source_icon, "", res); // 优先处理按钮显示 // this.source_label.node.x = -85; if (quickdata.fast_combat_free_num > 0) { // 免费就不做任何处理了.直接判断了 this.source_label.string = nx.text.getKey("lab_battle_fastfight"); this.source_icon.active = false; this.notice_label.string = "" + nx.text.getKey("btn_battle_fast_fight_free") + ""; } else { var combat_num = quickdata.fast_combat_max - quickdata.fast_combat_num; // 剩余普通次数 var privilege_num = game.configs.privilege_data.data_fast_combat_cost_length - quickdata.fast_combat_p_num; // 剩余特权数量 if (privilege_num > 0 && this.privilege_status) { this.notice_label.string = cc.js.formatStr("%s%s+%s%s", nx.text.getKey("lab_battle_fast_fight_left"), combat_num, privilege_num, ""); } else { this.notice_label.string = cc.js.formatStr("%s%s%s", nx.text.getKey("lab_battle_fast_fight_left"), combat_num, ""); } // 先判断普通次数,在判断是否是有特权,判断特权消耗 var next_config = game.configs.dungeon_data.data_drama_quick_cost[quickdata.fast_combat_num + 1]; var cost = 0; if (next_config) { cost = next_config.cost; this.quick_battle_status = 2; } else { if (this.privilege_status) { // 开了特权的 var privilege_config = game.configs.privilege_data.data_fast_combat_cost[quickdata.fast_combat_p_num + 1]; if (privilege_config) { cost = privilege_config.cost; // 下一次特权消耗 this.quick_battle_status = 2; } this.notice_label.string = cc.js.formatStr("%s%s+%s%s", nx.text.getKey("lab_battle_fast_fight_left"), combat_num, privilege_num, ""); } } this.quick_battle_cost = cost; if (cost == 0) { this.quick_battle_status = 3; // 没有次数了 this.source_icon.active = false; if (this.privilege_status) { this.source_label.string = nx.text.getKey("lab_battle_fastfight"); } else { this.source_label.string = nx.text.getKey("lab_battle_fast_fight_up_free"); } } else { this.source_icon.active = true; if (!this.source_icon_status) { this.source_icon_status = true; } this.source_label.string = cost + " " + nx.text.getKey("lab_battle_fastfight"); } } }, // 描述文字库 updateShowDesc: function updateShowDesc() { var tips_str = nx.text.getKey("lab_battle_fast_fight_vip_cantip"); var str_card1 = ""; var str_card = ""; var desc = ""; if (this.cardhoner && this.cardsmall) { if (this.cardhoner.is_reward == 1 || this.cardhoner.is_reward == 2) { str_card = nx.text.format("msg_battle_fast_fight_month", 3) + nx.text.getKey("lab_battle_fast_fight_vip_is"); if (this.cardsmall.is_reward == 1 || this.cardsmall.is_reward == 2) { str_card1 = nx.text.format("msg_battle_fast_fight_month1", 1) + nx.text.getKey("lab_battle_fast_fight_vip_is"); } else { str_card1 = nx.text.format("msg_battle_fast_fight_month1", 1) + nx.text.getKey("lab_battle_fast_fight_vip_no"); } } else { // str_card = nx.text.format( "msg_battle_fast_fight_month", 3 ) + nx.text.getKey("lab_battle_fast_fight_vip_no") ; if (this.cardsmall.is_reward == 1 || this.cardsmall.is_reward == 2) { str_card1 = nx.text.format("msg_battle_fast_fight_month1", 1) + nx.text.getKey("lab_battle_fast_fight_vip_is"); str_card = nx.text.format("msg_battle_fast_fight_month", 3) + nx.text.getKey("lab_battle_fast_fight_vip_no"); } else { str_card1 = nx.text.format("msg_battle_fast_fight_month1", 1) + nx.text.getKey("lab_battle_fast_fight_vip_no"); str_card = nx.text.format("msg_battle_fast_fight_month", 3) + nx.text.getKey("lab_battle_fast_fight_vip_no"); } } } else { str_card = nx.text.format("msg_battle_fast_fight_month", 3) + nx.text.getKey("lab_battle_fast_fight_vip_no"); str_card1 = nx.text.format("msg_battle_fast_fight_month1", 1) + nx.text.getKey("lab_battle_fast_fight_vip_no"); } // let activem = this.cardsmall.is_reward == 2 // let active = this.cardsmall.is_reward == 2 ? if (this.privilege_status == true) { tips_str = tips_str + nx.text.getKey("lab_battle_fast_fight_vip_is") + "\n" + str_card1 + "\n" + str_card; this.btn_buy_rt.node.active = false; } else { tips_str = tips_str + nx.text.getKey("lab_battle_fast_fight_vip_no") + "\n" + str_card1 + "\n" + str_card; this.btn_buy_rt.node.active = true; } this.desc.string = tips_str; }, // 增加物品展示 updateShowItems: function updateShowItems() { var data = this.drama_model.getDramaData(); if (nx.dt.objEmpty(data)) { return false; } var drama_config = game.configs.dungeon_data.data_drama_dungeon_info[data.max_dun_id]; if (nx.dt.objEmpty(drama_config)) { return false; } var item_list = []; for (var index = 0; index < drama_config.quick_show_items.length; index++) { var element = drama_config.quick_show_items[index]; item_list.push({ bid: element[0], num: element[1] }); } this.SVClist.rebuild(item_list); }, send13004: function send13004() { var _this2 = this; if (!this.role_vo) return; var cur_energy = this.role_vo.energy; var max_energy = this.role_vo.energy_max; var qingbao_val = 0; var vip_add_per = 0; var hook_max_time = this.drama_model.hook_max_time || 120; var drama_data = this.drama_model.getDramaData() || {}; var config = gdata("dungeon_data", "data_drama_dungeon_info", [drama_data.dun_id]); if (config && config.per_hook_items) { for (var i in config.per_hook_items) { var v = config.per_hook_items[i]; if (v[0] == game.configs.item_data.data_assets_label2id.energy) { qingbao_val = v[1] * hook_max_time * (1 + vip_add_per); } } } if (cur_energy + qingbao_val > max_energy) { var call_back = function call_back(_key, _box) { _box.close(); if (_key == "confirm") { _this2.controller.send13004(); } }; var str = cc.js.formatStr(nx.text.getKey("msg_battle_fast_fight_warring"), cur_energy, max_energy); nx.mbox(str, ['cancel', 'confirm'], call_back); } else { this.controller.send13004(); } }, touchSourceBtn: function touchSourceBtn() { var _this3 = this; if (this.quick_battle_status == 0 || this.quick_battle_status == 1) { // 可以直接使用 this.send13004(); } else if (this.quick_battle_status == 2 && this.quick_battle_cost != 0) { // 需要花费钻石 if (this.drama_model.getFirstFresh() && !this.privilege_status) { this.controller.send13039(); var str = nx.text.getKey("msg_battle_fast_fight_goto_buy"); var _fun = function _fun(_key, _box) { _box.close(); if (_key == "confirm") { nx.bridge.createPanel("WndPayment", { page: "shop" }); _this3.controller.openDramBattleQuickView(false); } else if (_key == "cancel") { var str = cc.js.formatStr(nx.text.getKey("msg_battle_fast_fight_cost"), game.configs.item_data.data_assets_label2id.gold, _this3.quick_battle_cost); var res = PathTool.queryIconPath(3); nx.gui.setSpriteFrame(_this3.source_icon, "", res); var fun2 = function fun2(_key, _box) { _box.close(); if (_key == "confirm") { _this3.send13004(); } }; nx.mbox(str, ['cancel', 'confirm'], fun2); } }; nx.mbox(str, ['cancel', 'confirm'], _fun); return; } var str = cc.js.formatStr(nx.text.getKey("msg_battle_fast_fight_cost"), game.configs.item_data.data_assets_label2id.gold, this.quick_battle_cost); var res = PathTool.queryIconPath(3); nx.gui.setSpriteFrame(this.source_icon, "", res); var fun = function fun(_key, _box) { _box.close(); if (_key == "confirm") { _this3.send13004(); } }; nx.mbox(str, ['cancel', 'confirm'], fun); } else if (this.quick_battle_status == 3) { // 没有次数了,需要判断特权 if (this.privilege_status) { this.send13004(); } else { var str = nx.text.getKey("msg_battle_fast_fight_goto_buy"); var _fun2 = function _fun2(_key, _box) { _box.close(); if (_key == "confirm") { nx.bridge.createPanel("WndPayment", { page: "shop" }); _this3.controller.openDramBattleQuickView(false); } }; nx.mbox(str, ['cancel', 'confirm'], _fun2); } } else { this.send13004(); } }, touchExplain: function touchExplain() { var desc = game.configs.dungeon_data.data_drama_const.game_rule.desc; TPC.getInstance().showTextPanel("", desc); } // update (dt) {}, }); cc._RF.pop();