// -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: {DATE} // -------------------------------------------------------------------- var HeroConst = require("hero_const"); var HeroEvent = require("hero_event"); var PartnerConst = require("partner_const"); var HeroCalculate = require("hero_calculate"); var BackPackConst = require("backpack_const"); var HeroController = cc.Class({ extends: BaseController, ctor: function () { }, // 初始化配置数据 initConfig: function () { var HeroModel = require("hero_model"); this.model = new HeroModel(this); this.model.initConfig(); }, // 返回当前的model getModel: function () { return this.model; }, // 注册监听事件 registerEvents: function () { // 断线重连重置一下伙伴及其装备缓存数据 this.re_link_game_event = gcore.GlobalEvent.bind(EventId.EVT_RE_LINK_GAME, function () { // this.sender11000(); // this.sender11040(); // this.sender11037(); }.bind(this)) // 角色数据创建完毕后,监听资产数据变化情况 this.login_event_success = gcore.GlobalEvent.bind(EventId.EVT_ROLE_CREATE_SUCCESS, function () { gcore.GlobalEvent.unbind(this.login_event_success) this.login_event_success = null; // this.sender11000(); // this.sender11040(); // this.sender11037(); var StartowerController = require("startower_controller"); StartowerController.getInstance().sender11320(); var RoleController = require("role_controller") var role_vo = RoleController.getInstance().getRoleVo(); this.role_update_evt = role_vo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, function (key, lev) { if (key == "coin") { this.model.checkLevelRedPointUpdate(); } else if (key == "hero_exp") { this.model.checkLevelRedPointUpdate(); } else if (key == "lev") { this.model.checkUnlockFormRedPoint(lev); } }, this); }.bind(this)) // 物品道具增加 判断红点 if (!this.add_goods_event) { this.add_goods_event = gcore.GlobalEvent.bind(EventId.ADD_GOODS, function(bag_code,temp_add) { if (bag_code == BackPackConst.Bag_Code.EQUIPS) { this.model.is_equip_redpoint_bag_update = true this.model.checkEquipRedPointUpdate() } else { for (var item_i in temp_add) { var item = temp_add[item_i]; if (item.base_id == this.model.upgrade_star_cost_id) { this.model.is_upgradestar_redpoint_bag_update = true; this.model.checkUpgradeStarRedPointUpdate(); this.model.checkLevelRedPointUpdate(); } else if (item.base_id == this.model.talent_skill_cost_id) { this.model.setUpdateTalentRedpoint(); this.model.checkTalentRedPointUpdate(); } // gdata("item_data", "data_skill_item_list", item.base_id); if(Utils.getItemConfig(item.base_id)){ this.model.setUpdateTalentRedpoint() this.model.checkTalentRedPointUpdate() } } } }.bind(this)) } // 物品道具删除 判断红点 if (!this.del_goods_event) { this.del_goods_event = gcore.GlobalEvent.bind(EventId.DELETE_GOODS, function(bag_code,temp_add) { if (bag_code == BackPackConst.Bag_Code.EQUIPS) { this.model.is_equip_redpoint_bag_update = true; this.model.checkEquipRedPointUpdate(); } else { for (var item_i in temp_add) { var item = temp_add[item_i]; if (item.base_id == this.model.upgrade_star_cost_id) { this.model.is_upgradestar_redpoint_bag_update = true this.model.checkUpgradeStarRedPointUpdate() this.model.checkLevelRedPointUpdate() } else if (item.base_id == this.model.talent_skill_cost_id) { this.model.setUpdateTalentRedpoint() this.model.checkTalentRedPointUpdate() } if(Utils.getItemConfig(item.base_id)){ this.model.setUpdateTalentRedpoint() this.model.checkTalentRedPointUpdate() } } } }.bind(this)) } // 物品道具改变 判断红点 if (!this.modify_goods_event) { this.modify_goods_event = gcore.GlobalEvent.bind(EventId.MODIFY_GOODS_NUM, function(bag_code,temp_add) { if (bag_code == BackPackConst.Bag_Code.EQUIPS) { this.model.is_equip_redpoint_bag_update = true; this.model.checkEquipRedPointUpdate(); } else { for (var item_i in temp_add) { var item = temp_add[item_i]; if (item.base_id == this.model.upgrade_star_cost_id) { this.model.is_upgradestar_redpoint_bag_update = true this.model.checkUpgradeStarRedPointUpdate() this.model.checkLevelRedPointUpdate() } else if (item.base_id == this.model.talent_skill_cost_id) { this.model.setUpdateTalentRedpoint() this.model.checkTalentRedPointUpdate() } if(Utils.getItemConfig(item.base_id)){ this.model.setUpdateTalentRedpoint() this.model.checkTalentRedPointUpdate() } } } }.bind(this)) } // 激活神器(圣器) 判断红点 if (!this.update_drama_hallows_event) { var HallowsEvent = require("hallows_event"); this.update_drama_hallows_event = gcore.GlobalEvent.bind(HallowsEvent.HallowsActivityEvent, function() { this.model.checkUnlockHallowsRedPoint(); }.bind(this)) } }, // 注册协议接受事件 registerProtocals: function () { // this.RegisterProtocal(1110, this.on1110); this.RegisterProtocal(11000, this.handle11000.bind(this)); //请求所有伙伴 this.RegisterProtocal(11001, this.handle11001.bind(this)); //伙伴增加 this.RegisterProtocal(11002, this.handle11002.bind(this)); //伙伴属性变更通知(单个伙伴属性) this.RegisterProtocal(11007, this.handle11007.bind(this)); //伙伴属性变更通知(list列表伙伴属性) //升级 this.RegisterProtocal(11003, this.handle11003.bind(this)); //伙伴升级 this.RegisterProtocal(11004, this.handle11004.bind(this)); //伙伴进阶 this.RegisterProtocal(11005, this.handle11005.bind(this)); //伙伴升星 this.RegisterProtocal(11006, this.handle11006.bind(this)); //删除伙伴推送 this.RegisterProtocal(11009, this.handle11009.bind(this)); //购买英雄数量上限 this.RegisterProtocal(11016, this.handle11016.bind(this)); //伙伴下一阶属性 this.RegisterProtocal(11017, this.handle11017.bind(this)); //推送伙伴最新数量 //装备相关 this.RegisterProtocal(11010, this.handle11010.bind(this)); //穿戴装备 this.RegisterProtocal(11011, this.handle11011.bind(this)); //卸下装备 this.RegisterProtocal(11012, this.handle11012.bind(this)); //推送装备改变 // this.RegisterProtocal(11013, this.handle11013.bind(this)); //装备精炼 // this.RegisterProtocal(11014, this.handle11014.bind(this)); //一键精炼 this.RegisterProtocal(11015, this.handle11015.bind(this)); //英雄锁定 //请求阵法 // this.RegisterProtocal(11200, this.handle11200.bind(this)); //请求自身阵法 // this.RegisterProtocal(11201, this.handle11201.bind(this)); //更换自身阵法 // this.RegisterProtocal(11202, this.handle11202.bind(this)); //伙伴上阵/下阵/交换 // this.RegisterProtocal(11203, this.handle11203.bind(this)); //阵法数据改变推送 // this.RegisterProtocal(11204, this.handle11204.bind(this)); //阵法升级/激活 this.RegisterProtocal(11211, this.handle11211.bind(this)); //请求队伍 this.RegisterProtocal(11212, this.handle11212.bind(this)); //请求保存队伍协议 this.RegisterProtocal(11213, this.handle11213.bind(this)); //请求多个队伍 // //符文相关 this.RegisterProtocal(11030, this.handle11030.bind(this)); //符文穿戴 this.RegisterProtocal(11031, this.handle11031.bind(this)); //推送符文改变 this.RegisterProtocal(11032, this.handle11032.bind(this)); //符文升星 this.RegisterProtocal(11033, this.handle11033.bind(this)); //符文重置 this.RegisterProtocal(11034, this.handle11034.bind(this)); //符文重铸保存 this.RegisterProtocal(11035, this.handle11035.bind(this)); //符文碎片合成 this.RegisterProtocal(11036, this.handle11036.bind(this)); //符文合成 this.RegisterProtocal(11037, this.handle11037.bind(this)); //符文祝福值 this.RegisterProtocal(11038, this.handle11038.bind(this)); //领取符文祝福值 this.RegisterProtocal(11040, this.handle11040.bind(this)); //英雄图鉴信息 this.RegisterProtocal(11060, this.handle11060.bind(this)); //英雄图鉴信息 this.RegisterProtocal(11075, this.handle11075.bind(this)); //请求英雄遣散 分解材料 this.RegisterProtocal(11076, this.handle11076.bind(this)); //英雄遣散 分解 // --天赋相关 this.RegisterProtocal(11096, this.handle11096.bind(this)) //学习天赋技能 this.RegisterProtocal(11097, this.handle11097.bind(this)) //天赋技能升级 this.RegisterProtocal(11098, this.handle11098.bind(this)) //天赋遗忘 this.RegisterProtocal(11099, this.handle11099.bind(this)) //获取英雄天赋信息 this.RegisterProtocal(11063, this.handle11063.bind(this)) //--英雄详细信息 this.RegisterProtocal(11019, this.handle11019.bind(this)) //--皮肤 this.RegisterProtocal(11020, this.handle11020.bind(this)) //-- }, sender11063(partner_id){ let protocal ={} protocal.partner_id = partner_id this.SendProtocal(11063,protocal) }, handle11063( data ){ this.model.updateHeroVoDetailedInfo(data) }, sender11000: function () { var protocal = {} this.SendProtocal(11000, protocal); }, handle11000: function (data) { //请求所有伙伴 this.model.setHeroMaxCount(data.num); this.model.setHeroBuyNum(data.buy_num); this.model.updateHeroList(data.partners); var calculate = HeroCalculate.getInstance(); RedMgr.getInstance().addCalHandler(calculate.checkAllStarFuseRedpoint.bind(calculate), RedIds.RefuseHero); this.sender11020(); }, handle11001: function (data) { //伙伴增加 this.model.updateHeroList(data.partners, true) //消除熔炼祭坛的红点 里面会重新计算红点 HeroCalculate.getInstance().clearAllStarFuseRedpointRecord(); this.model.is_upgradestar_redpoint_bag_update = true; this.model.checkUpgradeStarRedPointUpdate(); }, handle11002: function (data) { //单个伙伴属性变更通知 this.model.updateHeroVo(data); }, handle11007: function (data) { //list伙伴属性变更通知( var RoleController = require("role_controller") RoleController.getInstance().getRoleVo().showPower(true) this.model.updateHeroList(data.ref_partners, null, true); }, sender11003: function (partner_id) { // 伙伴升级 var protocal = {}; protocal.partner_id = partner_id; this.SendProtocal(11003, protocal); }, handle11003: function (data) { //伙伴升级 if (data && data.result === 1) { gcore.GlobalEvent.getInstance().fire(HeroEvent.Hero_Level_Up_Success_Event, data) } }, sender11004: function (partner_id) { var protocal = {}; protocal.partner_id = partner_id; this.SendProtocal(11004, protocal); }, handle11004: function (data) { //伙伴进阶结果 if (data && data.result == 1) { // 显示进阶窗口 } }, sender11005: function (partner_id, hero_list, random_list) { var protocal = {} protocal.partner_id = partner_id; protocal.expend1 = hero_list; protocal.expend2 = random_list; this.SendProtocal(11005, protocal); }, handle11005: function (data) { //伙伴升星 message(data.msg) if (data && data.result === 1) { gcore.GlobalEvent.fire(HeroEvent.Upgrade_Star_Success_Event); } else { this.model.setUpgradeStarUpdateRecord(true); } }, handle11006: function (data) { //删除伙伴推送 this.model.delHeroDataList(data.expend2); }, sender11009: function () { this.SendProtocal(11009, {}); }, handle11009: function (data) { //购买英雄数量上限 if (data.result) { this.model.setHeroMaxCount(data.num); this.model.setHeroBuyNum(data.buy_num); gcore.GlobalEvent.fire(HeroEvent.Buy_Hero_Max_Count_Event); } }, sender11016: function (partner_id) { var protocal = {}; protocal.partner_id = partner_id; this.SendProtocal(11016, protocal); }, handle11016: function (data) { //伙伴下一阶属性 gcore.GlobalEvent.fire(HeroEvent.Next_Break_Info_Event, data); }, handle11017: function (data) { //推送伙伴最新数量 }, // 0 表示一键穿戴 sender11010: function (partner_id, item_id) { //穿戴装备 this.model.setEquipUpdateRecord(false); var protocal = {} protocal.partner_id = partner_id protocal.item_id = item_id this.SendProtocal(11010, protocal); }, handle11010: function (data) { message(data.msg); if (!data.result) this.model.setEquipUpdateRecord(true); }, sender11011: function (partner_id, pos_id) { this.model.setEquipUpdateRecord(false); var protocal = {} protocal.partner_id = partner_id //此值改成装备唯一id protocal.pos_id = pos_id this.SendProtocal(11011, protocal); }, handle11011: function (data) { //卸下装备 message(data.msg) if (!data.result) this.model.setEquipUpdateRecord(true); }, handle11012: function (data) { //推送装备改变 message(data.msg); if (data) { this.model.updateHeroEquipList(data); data = this.model.getHeroById(data.partner_id) gcore.GlobalEvent.fire(HeroEvent.Equip_Update_Event,data); this.model.is_equip_redpoint_hero_update = true; this.model.checkEquipRedPointUpdate() } }, sender11015: function (partner_id, is_lock) { var protocal = {} protocal.partner_id = partner_id; protocal.type = is_lock; this.SendProtocal(11015, protocal) }, handle11015: function (data) { //英雄锁定 if (data.result == 1) { this.model.setLockByPartnerid(data.partner_id, data.type) gcore.GlobalEvent.fire(HeroEvent.Hero_Lock_Event) } }, sender11211: function (type) { // 请求单个布阵信息 var protocal = {} protocal.type = type this.SendProtocal(11211, protocal) }, handle11211: function (data) { // 请求单个布阵信息结果 if (!data || typeof data.type != "number") return if (data && (data.type === PartnerConst.Fun_Form.Drama || data.type === PartnerConst.Fun_Form.Arena)) this.model.setFormList(data); gcore.GlobalEvent.fire(HeroEvent.Update_Fun_Form, data); }, sender11212: function (type, formation_type, pos_info, hallows_id) { var protocal = {} protocal.type = type protocal.formation_type = formation_type protocal.pos_info = pos_info protocal.hallows_id = hallows_id this.SendProtocal(11212, protocal) }, handle11212: function (data) { //请求保存队伍协议 if (data.code) { if (data.type === PartnerConst.Fun_Form.Drama) { var type_list = []; var drma_info = {}; drma_info["type"] = PartnerConst.Fun_Form.Drama; type_list.push(drma_info); var arena_info = {}; arena_info["type"] = PartnerConst.Fun_Form.Arena; type_list.push(arena_info); this.sender11213(type_list); } else if (data.type === PartnerConst.Fun_Form.Arena) { this.sender11211(data.type); } else if(data.type === PartnerConst.Fun_Form.LimitExercise){ var LimitExerciseController = require("limitexercise_controller") LimitExerciseController.getInstance().checkJoinFight() } gcore.GlobalEvent.fire(HeroEvent.Update_Save_Form, data); } else { message(Utils.TI18N(data.msg)) } }, sender11213: function (type_list) { // 请求多个布阵 var protocal = {} protocal.type_list = type_list; this.SendProtocal(11213, protocal); }, handle11213: function (data) { //请求多个布阵结果 if (!data || !data.info) return; for (var form_i in data.info) { var form_data = data.info[form_i]; if (form_data && (form_data.type === PartnerConst.Fun_Form.Drama || form_data.type === PartnerConst.Fun_Form.Arena)) this.model.setFormList(form_data); } }, //符文----------------- //符文穿戴/卸下 sender11030: function (partner_id, pos_id, artifact_id, type) { this.model.setEquipUpdateRecord(false) var protocal = {} protocal.partner_id = partner_id protocal.pos_id = pos_id protocal.artifact_id = artifact_id protocal.type = type this.SendProtocal(11030, protocal) }, handle11030: function (data) { //符文穿戴 message(data.msg); if (data.result == 0) { this.model.setEquipUpdateRecord(true) } }, //推送符文改变 handle11031: function (data) { message(data.msg || ""); this.model.updatePartnerArtifactList(data) }, //符文升星 sender11032: function (partner_id, artifact_id, expends) { var protocal = {}; protocal.partner_id = partner_id; protocal.artifact_id = artifact_id; protocal.expends = expends; this.SendProtocal(11032, protocal) }, handle11032: function (data) { //符文升星 message(data.msg); if (data.result == 1) { gcore.GlobalEvent.fire(HeroEvent.Artifact_UpStar_Event, data) } }, //符文重置 sender11033: function (partner_id, artifact_id, skills) { var protocal = {}; protocal.partner_id = partner_id; protocal.artifact_id = artifact_id; protocal.skills = skills; this.SendProtocal(11033, protocal) }, handle11033: function (data) { //符文重置 message(data.msg); if (data.result == 1) { gcore.GlobalEvent.fire(HeroEvent.Artifact_Recast_Event) } }, //符文重铸保存 sender11034: function (partner_id, artifact_id, type) { var protocal = {}; protocal.partner_id = partner_id; protocal.artifact_id = artifact_id; protocal.type = type; this.SendProtocal(11034, protocal); }, handle11034: function (data) { //符文重铸保存 message(data.msg) if (data.result == 1) { gcore.GlobalEvent.fire(HeroEvent.Artifact_Save_Event) } }, //符文分解 sender11035: function (artifact_id) { var protocal = {}; protocal.artifact_id = artifact_id; this.SendProtocal(11035, protocal) }, handle11035: function (data) { //符文碎片合成 message(data.msg) }, //符文合成 sender11036: function (item_id, expend) { var protocal = {}; protocal.item_id = item_id; protocal.expends = expend; this.SendProtocal(11036, protocal); }, handle11036: function (data) { //符文合成 message(data.msg); if (data.result == 1) { gcore.GlobalEvent.fire(HeroEvent.Artifact_Compound_Event, data.flag) } }, //符文祝福值 sender11037: function () { var protocal = {} this.SendProtocal(11037, protocal); }, handle11037: function (data) { //符文祝福值 if (data && data.lucky != null) { this.model.setArtifactLucky(data.lucky); gcore.GlobalEvent.fire(HeroEvent.Artifact_Lucky_Event) } }, //领取符文祝福值 sender11038: function () { this.SendProtocal(11038, {}); }, handle11038: function (data) { //领取符文祝福值 message(data.msg) }, sender11040: function () { var protocal = {} this.SendProtocal(11040, protocal); }, handle11040: function (data) { //英雄图鉴信息 this.model.setHadHeroInfo(data.partners); }, sender11060: function (channel, partner_id) { var protocal = {}; protocal.channel = channel; protocal.partner_id = partner_id; this.SendProtocal(11060, protocal); }, handle11060: function (data) { //英雄图鉴信息 message(data.msg); }, sender11075: function (hero_list) { //请求英雄分解材料 var protocal = {}; protocal.list = hero_list; this.SendProtocal(11075, protocal); }, handle11075: function (data) { if (data.code == 1) { gcore.GlobalEvent.fire(HeroEvent.Hero_Reset_Look_Event, data.list); } }, sender11076: function (partner_list) { var protocal = {} protocal.list = partner_list this.SendProtocal(11076, protocal); }, handle11076: function (data) { //英雄遣散 message(data.msg) if (data.code) { this.model.delHeroDataList(data.list); } }, //-天赋相关开始 sender11096(partner_id, pos, skill_id){ let protocal = {} protocal.partner_id = partner_id protocal.pos = pos protocal.skill_id = skill_id this.SendProtocal(11096, protocal) }, handle11096(data){ if(data.result == true){ this.model.updateHeroVoTalent([data], true) data = this.model.getHeroById(data.partner_id) gcore.GlobalEvent.fire(HeroEvent.Hero_Learn_Talent_Event, data) HeroCalculate.getInstance().clearAllHeroRecordByRedPointType(HeroConst.RedPointType.eRPTalent) }else{ message(data.msg) } }, // 英雄(伙伴)背包界面 // @ hero_vo 英雄对应数据对象 openHeroBagWindow: function (status, hero_vo) { if (!status) { if (this.hero_bag_window) { this.hero_bag_window.close() this.hero_bag_window = null } } else { if (!this.hero_bag_window) { var HeroBagWIndow = require("hero_bag_window"); this.hero_bag_window = new HeroBagWIndow(this); } this.hero_bag_window.open(hero_vo); } }, //打开英雄图书馆信息 openHeroLibraryMainWindow: function (status, bid) { if (status == false) { if (this.hero_library_mainWindow != null) { this.hero_library_mainWindow.close() this.hero_library_mainWindow = null } } else { if (this.hero_library_mainWindow == null) { var HeroLibraryMainWindow = require("hero_library_main_window") this.hero_library_mainWindow = new HeroLibraryMainWindow() } this.hero_library_mainWindow.open(bid) } }, //打开英雄图书馆信息 openHeroLibraryInfoWindow: function (status, bid) { if (status == false) { if (this.hero_library_info != null) { this.hero_library_info.close() this.hero_library_info = null } } else { if (this.hero_library_info == null) { var HeroLibraryInfoWindow = require("hero_library_info_window") this.hero_library_info = new HeroLibraryInfoWindow() } this.hero_library_info.open(bid) } }, //打开英雄图书馆传记信息 openHeroLibraryStoryPanel: function (status, name, content) { if (status == false) { if (this.hero_library_story != null) { this.hero_library_story.close() this.hero_library_story = null } } else { if (this.hero_library_story == null) { var HeroLibraryInfoWindow = require("hero_library_story_window") this.hero_library_story = new HeroLibraryInfoWindow() } this.hero_library_story.open({ name: name, content: content }) } }, // -- 英雄(伙伴)主信息 界面 // --@ hero_vo 英雄对应数据对象 // --@ hero_list 英雄对象列表 // --@ setting 结构 // --setting.showType 显示英雄新的页签类型 // --setting.show_model_type 显示模式 1:英雄模式 2:图鉴模式 定义参考 HeroConst.BagTab.eBagHero openHeroMainInfoWindow: function (status, hero_vo, hero_list, setting) { if (status) { if (!this.hero_main_info_window) { var HeroMainInfoWindow = require("hero_main_info_window"); this.hero_main_info_window = new HeroMainInfoWindow(this); } var open_pragma = {} open_pragma.hero_vo = hero_vo; open_pragma.hero_list = hero_list; open_pragma.setting = setting; this.hero_main_info_window.open(open_pragma); } else { if (this.hero_main_info_window) { this.hero_main_info_window.close(); this.hero_main_info_window = null } } }, // 打开立绘界面 openHeroLookDrawWindow: function (status, draw_res_id, name, bid, share_type) { if (status) { if (!this.hero_look_draw_window) { this.hero_look_draw_window = Utils.createClass("hero_look_draw_window") } var data = { draw_res_id: draw_res_id, name: name, bid: bid, share_type: share_type, } this.hero_look_draw_window.open(data) } else { if (this.hero_look_draw_window) { this.hero_look_draw_window.close(); this.hero_look_draw_window = null; } } }, // --打开进阶界面 openHeroBreakPanel: function (status, hero_vo) { if (status) { if (!this.hero_break_panel) { var HeroBreakPanel = require("hero_break_window"); this.hero_break_panel = new HeroBreakPanel(this); } this.hero_break_panel.open(hero_vo); } else { if (this.hero_break_panel) { this.hero_break_panel.close(); this.hero_break_panel = null; } } }, // 打开进阶成功界面 old_vo new_vo 都是heroVo对象 openBreakExhibitionWindow: function (status, old_vo, new_vo) { if (status) { if (!this.break_exhibition_window) { var HeroBreakExhibitionWindow = require("hero_break_exhibition_window"); this.break_exhibition_window = new HeroBreakExhibitionWindow(this); } if (this.break_exhibition_window && !this.break_exhibition_window.isOpen()) { var open_pragma = {}; open_pragma.old_vo = old_vo; open_pragma.new_vo = new_vo; this.break_exhibition_window.open(open_pragma); } } else { if (this.break_exhibition_window) { this.break_exhibition_window.close(); this.break_exhibition_window = null; } if(old_vo && typeof (old_vo) =="number"){ let skill_bid = old_vo this.openSkillUnlockWindow(true,skill_bid) } } }, // 打开升星成功界面 old_vo new_vo 都是heroVo对象 openHeroUpgradeStarExhibitionPanel: function (status, old_vo, new_vo) { if (status) { if (!this.upgrade_star_exhibition_window) { var HeroUpgradeStarExhibitionPanel = require("hero_upgrade_star_exhibition_window"); this.upgrade_star_exhibition_window = new HeroUpgradeStarExhibitionPanel(this); } if (this.upgrade_star_exhibition_window && !this.upgrade_star_exhibition_window.isOpen()) { var open_pragma = {}; open_pragma.old_vo = old_vo; open_pragma.new_vo = new_vo; this.upgrade_star_exhibition_window.open(open_pragma); } } else if (this.upgrade_star_exhibition_window) { this.upgrade_star_exhibition_window.close(); this.upgrade_star_exhibition_window = null; } }, // --打开天赋技能学习面板 // function HeroController:openSkillUnlockWindow(status, skill_bid) // if status == true then // if not this.unlock_window then // this.unlock_window = SkillUnlockWindow.New(skill_bid) // end // if this.unlock_window and this.unlock_window:isOpen() == false then // this.unlock_window:open() // end // else // if this.unlock_window then // this.unlock_window:close() // this.unlock_window = null // end // end // end // --打开英雄过滤 // function HeroController:openFormFilterHeroPanel(status, dic_filter_camp_type, dic_filter_career_type) // if status == true then // if not this.form_filter_hero_panel then // this.form_filter_hero_panel = FormFilterHeroPanel.New() // end // if this.form_filter_hero_panel and this.form_filter_hero_panel:isOpen() == false then // this.form_filter_hero_panel:open(dic_filter_camp_type, dic_filter_career_type) // end // else // if this.form_filter_hero_panel then // this.form_filter_hero_panel:close() // this.form_filter_hero_panel = null // end // end // end // --打开布阵出战界面 // --@fun_form_type 布阵队伍类型 // --@show_type 出战界面显示类型 1 出战 2 保存布阵 openFormGoFightPanel: function (status, fun_form_type, setting, show_type) { if (!status) { if (this.form_go_fight_panel) { this.form_go_fight_panel.close(); this.form_go_fight_panel = null; } } else { if (!this.form_go_fight_panel) { var FormGoFightPanel = require("form_go_fight_window"); this.form_go_fight_panel = new FormGoFightPanel(this); } var open_pragma = {} open_pragma.fun_form_type = fun_form_type; open_pragma.setting = setting; open_pragma.show_type = show_type; this.form_go_fight_panel.open(open_pragma); // this.form_go_fight_panel.(fun_form_type, setting, show_type); } }, // 打开布阵 改成和 布阵出战界面 合二为一 openFormMainWindow: function (status, fun_form_type) { this.openFormGoFightPanel(status, fun_form_type, {}, HeroConst.FormShowType.eFormSave) }, // 打开选择阵法界面 // @formation_type 阵法类型 也是配置表的id openFormationSelectPanel: function (status, formation_type, callback) { if (status) { if (!this.formation_select_panel) { var FormSelectPannel = require("form_select_panel"); this.formation_select_panel = new FormSelectPannel(this); } // if (this.formation_select_panel && !this.formation_select_panel.isOpen()) { var open_pragma = {}; open_pragma.formation_type = formation_type; open_pragma.callback = callback; this.formation_select_panel.open(open_pragma); // } } else { if (this.formation_select_panel) { this.formation_select_panel.close() this.formation_select_panel = null } } }, // 打开选择神器界面 // @hallows_id 神器id openFormHallowsSelectPanel: function (status, hallows_id, callback) { if (status) { if (!this.form_hallows_select_panel) { var FormHallowsSelectPanel = require("form_hallows_select_window"); this.form_hallows_select_panel = new FormHallowsSelectPanel(this); } var open_pragma = {}; open_pragma.hallows_id = hallows_id; open_pragma.callback = callback; this.form_hallows_select_panel.open(open_pragma); // end } else { if (this.form_hallows_select_panel) { this.form_hallows_select_panel.close() this.form_hallows_select_panel = null } } }, // 打开英雄升星界面 4升5 5升6 融合祭坛 openHeroUpgradeStarFuseWindow: function (status, hero_vo) { if (status) { if (!this.upgrade_star_fuse_window || !this.upgrade_star_fuse_window.root_wnd) { var HeroUpgradeStarFuseWindow = require("hero_upgrade_star_fuse_window"); this.upgrade_star_fuse_window = new HeroUpgradeStarFuseWindow(this); } if (this.upgrade_star_fuse_window && !this.upgrade_star_fuse_window.isOpen()) { this.upgrade_star_fuse_window.open(hero_vo); } } else { if (this.upgrade_star_fuse_window) { this.upgrade_star_fuse_window.close(); this.upgrade_star_fuse_window = null; } } }, // @select_data 是模拟hero_vo的数据 // @dic_other_selected 已经其他被选择的数据 [id] = hero_vo模式 // @ form_type --来源位置 1: 表示融合祭坛 2: 表示升星界面的 // @ is_master 是否是主卡(融合祭坛专用) openHeroUpgradeStarSelectPanel: function (status, select_data, dic_other_selected, form_type, is_master, select_cb, cur_hero_vo) { if (status) { if (!this.upgrade_star_select_panel) { var HeroUpgradeStarSelectPanel = require("hero_upgrade_star_select_window"); this.upgrade_star_select_panel = new HeroUpgradeStarSelectPanel(this); } var open_pragma = {}; open_pragma.select_data = select_data; open_pragma.dic_other_selected = dic_other_selected; open_pragma.form_type = form_type; open_pragma.select_cb = select_cb; open_pragma.cur_hero_vo = cur_hero_vo; open_pragma.is_master = is_master; this.upgrade_star_select_panel.open(open_pragma); // if this.upgrade_star_select_panel and this.upgrade_star_select_panel:isOpen() == false then } else { if (this.upgrade_star_select_panel) { this.upgrade_star_select_panel.close(); this.upgrade_star_select_panel = null; } } }, // 打开重生操作界面 openHeroResetWindow: function (status, data) { if (status) { if (!this.hero_reset_window) { var HeroResetWindow = require("hero_reset_window"); this.hero_reset_window = new HeroResetWindow(this); } if (this.hero_reset_window) this.hero_reset_window.open(data); } else { if (this.hero_reset_window) { this.hero_reset_window.close() this.hero_reset_window = null; } } }, openHeroResetReturnPanel: function (bool, item_list) { if (bool) { if (!this.hero_reset_return_panel) { var HeroResetReturnPanel = require("hero_rest_return_window"); this.hero_reset_return_panel = new HeroResetReturnPanel(this); } var open_pragma = {}; open_pragma.item_list = item_list; this.hero_reset_return_panel.open(open_pragma); } else { if (this.hero_reset_return_panel) { this.hero_reset_return_panel.close() this.hero_reset_return_panel = null; } } }, openHeroResetOfferPanel: function (bool, item_list ,is_show_tips, callback ,reset_type ,dec) { if (bool) { if (!this.hero_reset_offer_panel) { var HeroResetOfferPanel = require("hero_reset_offer_window"); this.hero_reset_offer_panel = new HeroResetOfferPanel(this); } var open_pragma = {}; open_pragma.item_list = item_list; open_pragma.callback = callback; open_pragma.is_show_tips = is_show_tips; open_pragma.reset_type = reset_type; open_pragma.dec = dec; this.hero_reset_offer_panel.open(open_pragma); } else { if (this.hero_reset_offer_panel) { this.hero_reset_offer_panel.close() this.hero_reset_offer_panel = null; } } }, // --打开装备穿戴界面 openEquipPanel: function (status, pos, partner_id, data) { if (status) { if (!this.equip_panel) { var EquipClothWindow = require("equip_cloth_window"); this.equip_panel = new EquipClothWindow(this); } var open_pragma = {}; open_pragma.equip_type = pos; open_pragma.partner_id = partner_id; open_pragma.data = data; this.equip_panel.open(open_pragma); } else { if (this.equip_panel) { this.equip_panel.close(); this.equip_panel = null; } } }, // desc:打开装备tips // time:2018-05-24 05:50:42 // @bool:打开与关闭 // @data:装备数据 // @open_type:装备状态,0.其他状态,1: 背包中 3:伙伴身上 具体查看 PartnerConst.EqmTips // @partner_id:穿戴在伙伴身上就有伙伴id,其他可不填或填0 // @return openEquipTips: function (status, data, open_type, partner) { if (status) { var TipsController = require("tips_controller"); TipsController.getInstance().showEquipTips(data, open_type, partner); } // if (status) { // // 引导的时候不弹 // // if GuideController:getInstance():isInGuide() return // 引导的时候不要显示tips了 因为可能会被挡住 // if (!this.equip_tips) { // var EquipTips = require("equip_tips"); // this.equip_tips = new EquipTips(); // } // open_type = open_type || PartnerConst.EqmTips.normal; // this.equip_tips.open(); // } else { // if (this.equip_tips) { // this.equip_tips.close(); // this.equip_tips = null; // } // } }, // ----------------------------------------神器相关------------------------------ // 打开符文重铸界面 openArtifactRecastWindow: function (status, data, partner_id) { if (status == true) { if (!this.artifact_recast_win) { this.artifact_recast_win = Utils.createClass("artifact_recast_window") } this.artifact_recast_win.open({ data: data, partner_id: partner_id }) } else { if (this.artifact_recast_win) { this.artifact_recast_win.close() this.artifact_recast_win = null } } }, //打开神器列表选择界面 // function HeroController:openArtifactListWindow(bool,artifact_type,partner_id,select_vo) // if bool == true then // if not this.artifact_list_panel then // this.artifact_list_panel = ArtifactListWindow.New() // end // artifact_type = artifact_type or 0 // partner_id = partner_id or 0 // if this.artifact_list_panel and this.artifact_list_panel:isOpen() == false then // this.artifact_list_panel:open(artifact_type,partner_id,select_vo) // end // else // if this.artifact_list_panel then // this.artifact_list_panel:close() // this.artifact_list_panel = null // end // end // end openArtifactListWindow: function (bool, artifact_type, partner_id, select_vo) { if (bool == true) { if (!this.artifact_list_window) { this.artifact_list_window = Utils.createClass("artifact_list_window") } artifact_type = artifact_type || 0; partner_id = partner_id || 0; var data = {}; data.artifact_type = artifact_type; data.partner_id = partner_id; data.select_vo = select_vo; this.artifact_list_window.open(data) } else { if (this.artifact_list_window) { this.artifact_list_window.close() this.artifact_list_window = null } } }, // 符文选择界面 openArtifactChoseWindow: function (bool, data) { if (bool == true) { if (!this.artifact_chose_window) { this.artifact_chose_window = Utils.createClass("artifact_chose_window") } this.artifact_chose_window.open(data) } else { if (this.artifact_chose_window) { this.artifact_chose_window.close() this.artifact_chose_window = null } } }, // --==============================-- // --desc:打开符文操作界面 // --time:2018-05-17 05:34:13 // --@bool: // --@data:符文数据,为goods_vo数据 // --@open_type:打开类型,分为 // --@return // --==============================-- openArtifactTipsWindow: function (bool, data, open_type, partner_id, pos) { if (bool == true) { if (data == null || data.config == null) { message(Utils.TI18N("数据异常")) return } if (!this.artifact_tips_window) { this.artifact_tips_window = Utils.createClass("artifact_tips_window") } if (open_type == null) { open_type = PartnerConst.ArtifactTips.backpack; } var param = { data: data, open_type: open_type, partner_id: partner_id, pos: pos } this.artifact_tips_window.open(param) } else { if (this.artifact_tips_window) { this.artifact_tips_window.close() this.artifact_tips_window = null } } }, // 打开符文合成tips界面 openArtifactComTipsWindow: function (status, bid) { if (status == true) { if (!this.artifact_com_win) { this.artifact_com_win = Utils.createClass("artifact_com_tips_window") } this.artifact_com_win.open(bid) } else { if (this.artifact_com_win) { this.artifact_com_win.close() this.artifact_com_win = null } } }, // 打开符文祝福奖励领取界面 openArtifactAwardWindow: function (status) { if (status == true) { if (!this.artifact_award_win) { this.artifact_award_win = Utils.createClass("artifact_award_window") } this.artifact_award_win.open() } else { if (this.artifact_award_win) { this.artifact_award_win.close() this.artifact_award_win = null } } }, // 打开符文技能预览界面 // -@show_type 显示类型 1 是符文技能预览 2 是英雄天赋技能 openArtifactSkillWindow: function (status,show_type) { if (status == true) { if (!this.artifact_skill_win) { this.artifact_skill_win = Utils.createClass("artifact_skill_window",show_type) } this.artifact_skill_win.open() } else { if (this.artifact_skill_win) { this.artifact_skill_win.close() this.artifact_skill_win = null } } }, // ----------------------------------------神器相关结束------------------------------ // -- 打开英雄tips界面 // --is_hide_equip 是否隐藏装备 openHeroTipsPanel(bool, hero_vo, is_hide_equip) { if (bool == true) { if (!this.hero_tips_window) { let HeroTipsWindow = require("hero_tips_window") this.hero_tips_window = new HeroTipsWindow() } if(this.hero_tips_window.isOpen() == false){ this.hero_tips_window.open({ hero_vo: hero_vo, is_hide_equip: is_hide_equip }) } } else { if (this.hero_tips_window) { this.hero_tips_window.close() this.hero_tips_window = null } } }, // -- 打开英雄属性tips界面 openHeroTipsAttrPanel(bool, hero_vo, is_my) { if (bool == true) { if (!this.hero_tips_attr_panel) { let HeroTipsAttrWindow = require("hero_tips_attr_window") this.hero_tips_attr_panel = new HeroTipsAttrWindow() } this.hero_tips_attr_panel.open({ hero_vo: hero_vo, is_my: is_my }) } else { if (this.hero_tips_attr_panel) { this.hero_tips_attr_panel.close() this.hero_tips_attr_panel = null } } }, // -- 打开英雄tips界面根据bid openHeroTipsPanelByBid(bid) { let hero_vo = this.model.getMockHeroVoByBid(bid) if (hero_vo) { this.openHeroTipsPanel(true, hero_vo, true) } }, // 打开英雄图书馆信息根据bid 和星级 openHeroInfoWindowByBidStar: function (bid, star, callback) { if (bid == null || star == null) return var key = Utils.getNorKey(bid, star); var hero_vo = this.model.getHeroPokedexByBid(key); if (hero_vo) { this.openHeroMainInfoWindow(true, hero_vo, [hero_vo], { show_model_type: HeroConst.BagTab.eBagPokedex, callback: callback }) } }, getHeroGoFightRoot: function (finish_cb) { if (finish_cb) { if (this.form_go_fight_panel) { this.form_go_fight_panel.getRootWnd(finish_cb); } else { finish_cb(null); } } else { if (this.form_go_fight_panel) return this.form_go_fight_panel.root_wnd; } }, getHeroBagRoot: function (finish_cb) { if (finish_cb) { if (this.hero_bag_window) { this.hero_bag_window.getRootWnd(finish_cb); } else { finish_cb(null); } } else { if (this.hero_bag_window) return this.hero_bag_window.root_wnd; } }, getHeroMianInfoRoot: function (finish_cb) { if (finish_cb) { if (this.hero_main_info_window) { this.hero_main_info_window.getRootWnd(finish_cb); } else { finish_cb(null); } } else { if (this.hero_main_info_window) return this.hero_main_info_window.root_wnd; } }, // --请求天赋技能信息 sender11099(list){ let protocal = {} protocal.partner_ids = list this.SendProtocal(11099, protocal) }, handle11099(data){ this.model.updateHeroVoTalent(data.partner_ids) gcore.GlobalEvent.fire(HeroEvent.Hero_Get_Talent_Event, data.partner_ids) }, // --天赋技能升级 sender11097(partner_id, pos){ let protocal = {} protocal.partner_id = partner_id protocal.pos = pos this.SendProtocal(11097, protocal) }, handle11097(data){ if(data.result == true){ this.model.updateHeroVoTalent([data], true) data = this.model.getHeroById(data.partner_id) gcore.GlobalEvent.fire(HeroEvent.Hero_Level_Up_Talent_Event, data) HeroCalculate.getInstance().clearAllHeroRecordByRedPointType(HeroConst.RedPointType.eRPTalent) }else{ message(data.msg) } }, // --天赋遗忘 sender11098(partner_id, pos){ let protocal = {} protocal.partner_id = partner_id protocal.pos = pos this.SendProtocal(11098, protocal) }, handle11098(data){ if(data.result == true){ this.model.updateHeroVoTalent([data], true) data = this.model.getHeroById(data.partner_id) gcore.GlobalEvent.fire(HeroEvent.Hero_Forget_Talent_Event, data) HeroCalculate.getInstance().clearAllHeroRecordByRedPointType(HeroConst.RedPointType.eRPTalent) }else{ message(data.msg) } }, // -- 打开英雄学习技能界面 openHeroTalentSkillLearnPanel(bool, hero_vo, pos){ var self = this if(bool == true){ if(!self.hero_talent_skill_panel){ var HeroTalentSkillLearnPanel = require("hero_talent_skill_learn_window") self.hero_talent_skill_panel = new HeroTalentSkillLearnPanel() } self.hero_talent_skill_panel.open({hero_vo:hero_vo, pos:pos}) }else{ if(self.hero_talent_skill_panel){ self.hero_talent_skill_panel.close() self.hero_talent_skill_panel = null } } }, // -- 打开英雄学习技能升级界面 openHeroTalentSkillLevelUpPanel(bool, hero_vo, skill_id, pos){ if(bool == true){ if(!this.hero_talent_levelup_panel){ var HeroTalentSkillLevelUpPanel = require("hero_talent_skill_level_up_window") this.hero_talent_levelup_panel = new HeroTalentSkillLevelUpPanel() } this.hero_talent_levelup_panel.open({hero_vo:hero_vo, skill_id:skill_id, pos:pos}) }else{ if(this.hero_talent_levelup_panel){ this.hero_talent_levelup_panel.close() this.hero_talent_levelup_panel = null } } }, //开启新技能 openSkillUnlockWindow(status, skill_bid){ if(status == true){ if (this.unlock_window == null){ let SkillUnlockWindow = require("skill_unlock_window") this.unlock_window = new SkillUnlockWindow(skill_bid) } if(this.unlock_window && this.unlock_window.isOpen() == false){ this.unlock_window.open() } }else{ if(this.unlock_window){ this.unlock_window.close() this.unlock_window = null } } }, //播放英雄音效 onPlayHeroVoice: function (vocie_res, time) { //默认4秒 time = time || 4; //补充1秒时差 time += 1; if (this.voice_time_ticket == null) { let volume = gcore.SysEnv.get("music_volume"); volume -= 0.6; SoundManager.getInstance().setBackgroundVolume(volume); } else { gcore.Timer.del(this.voice_time_ticket); this.voice_time_ticket = null; } if (this.hero_music != null) { if(this.hero_music == "undef"){ SoundManager.getInstance().removeEffectSound(null); }else{ SoundManager.getInstance().removeEffectSound(this.hero_music); } } this.hero_music = SoundManager.getInstance().playHeroEffectOnce(AUDIO_TYPE.DUBBING, vocie_res); if(this.hero_music == undefined){ this.hero_music = "undef"; } this.voice_time_ticket = gcore.Timer.set(function () { let volume = gcore.SysEnv.get("music_volume"); SoundManager.getInstance().setBackgroundVolume(volume); this.voice_time_ticket = null; }.bind(this), time * 1000, 1) }, /** * 皮肤提示 * @param {*} status 打开与关闭 * @param {*} data 皮肤信息 * @param {*} open_type 装备状态,0.其他状态,1: 背包中 3:伙伴身上 具体查看 PartnerConst.EqmTips * @param {*} partner 穿戴在伙伴身上就有伙伴id,其他可不填或填0 */ openHeroSkinTipsPanel(status, data, open_type, partner){ if(status == true){ if(!this.hero_skin_tips_panel){ var HeroSkinTipsPanel = require("hero_skin_tips_window") this.hero_skin_tips_panel = new HeroSkinTipsPanel(this) } this.hero_skin_tips_panel.open({data:data,open_type:open_type,partner:partner}) }else{ if(this.hero_skin_tips_panel){ this.hero_skin_tips_panel.close() this.hero_skin_tips_panel = null } } }, //---------------------------皮肤协议结束----------------------------------------- //皮肤使用 sender11019: function (partner_id, skin_id) { let protocal = {}; protocal.partner_id = partner_id; protocal.skin_id = skin_id; this.SendProtocal(11019, protocal); }, handle11019: function (data) { message(data.msg); cc.log("11019",data) if (data.result == 1) { message(Utils.TI18N("更换成功")); } }, //皮肤使用 sender11020: function () { let protocal = {}; this.SendProtocal(11020, protocal); }, handle11020: function (data) { cc.log("11020",data) this.model.initHeroSkin(data); }, //---------------------------皮肤协议结束----------------------------------------- //打开皮肤界面 openHeroSkinWindow: function (status, vo) { if (status == true) { if (!this.hero_skin_window) { this.hero_skin_window = Utils.createClass("hero_skin_window"); } this.hero_skin_window.open(vo); } else { if (this.hero_skin_window) { this.hero_skin_window.close(); this.hero_skin_window = null; } } }, }); module.exports = HeroController;