const BridgeWindow = require("bridge.window"); const 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"); const TPC = require("tips_controller"); const ActMod = require( "act.month.mod" ); const PartnerBodyShow = require( "cmp.partner.body.show" ); const 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() { 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() { this.btn_buy_rt.string = cc.js.formatStr("%s",nx.text.getKey("newfirstcharge_window_tip2")); //秘书组id let _id = nx.bridge.vget("clerkShowId"); let arr = _id.split( "_" ); let id = cc.js.formatStr("%s_%s",arr[0],arr[1]); let cfg = gdata( "partner_data", "data_partner_star", id ); let rcfg = gdata( "partner_data", "data_partner_base", id ); let path = cc.path.join( "resDB/models/" + cfg.res_id + "/show" ); this.nodRole.load( path, ( _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(){ nx.bridge.createPanel( "WndPayment", { page: "shop" } ); this.controller.openDramBattleQuickView(false); }, onOpenConfigs() { this.updateData(); this.updateShowItems(); this.cardhoner = ActMod.getInstance().vget( "monthCard1" ); this.cardsmall = ActMod.getInstance().vget( "monthCard2" ); // 説明 添加關於月卡祝福的説明 this.updateShowDesc(); }, onPreClosed() { this.SVClist.rebuild([]); }, // 次数和按钮显示 updateData: function () { 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 () { var tips_str = nx.text.getKey("lab_battle_fast_fight_vip_cantip"); let str_card1 = ""; let str_card = ""; let 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 () { 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 (let index = 0; index < drama_config.quick_show_items.length; index++) { const element = drama_config.quick_show_items[index]; item_list.push({ bid: element[0], num: element[1] }); } this.SVClist.rebuild(item_list); }, send13004: function () { 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) { let call_back = (_key,_box)=> { _box.close(); if(_key == "confirm"){ this.controller.send13004(); } }; let 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(){ 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"); let fun = (_key,_box)=> { _box.close() if(_key == "confirm"){ nx.bridge.createPanel( "WndPayment", { page: "shop" } ); this.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,this.quick_battle_cost) var res = PathTool.queryIconPath(3) nx.gui.setSpriteFrame(this.source_icon,"",res); let fun2 = (_key,_box)=> { _box.close() if(_key == "confirm"){ this.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); let fun = (_key,_box)=> { _box.close() if(_key == "confirm"){ this.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"); let fun = (_key,_box)=> { _box.close() if(_key == "confirm"){ nx.bridge.createPanel( "WndPayment", { page: "shop" } ); this.controller.openDramBattleQuickView(false); } } nx.mbox(str, ['cancel','confirm'], fun) } } else { this.send13004() } }, touchExplain(){ let desc = game.configs.dungeon_data.data_drama_const.game_rule.desc; TPC.getInstance().showTextPanel("",desc); }, // update (dt) {}, });