"use strict"; cc._RF.push(module, '5404dkqo/9HCK53yJeJbyxU', 'partnersummon_model'); // Scripts/mod/partnersummon/partnersummon_model.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: {DATE} // -------------------------------------------------------------------- var PartnersummonEvent = require("partnersummon_event"); var PartnersummonConst = require("partnersummon_const"); var PartnersummonModel = cc.Class({ "extends": BaseClass, ctor: function ctor() {}, properties: { recruit_list: null, // 卡库的数据 recruit_data: null, // 召唤结果 had_open_view: false }, initConfig: function initConfig() {}, setSummonData: function setSummonData(summon_data) { if (!summon_data) return; this.recruit_list = summon_data.recruit_list; this.setShareData(summon_data); this.updateRecruitData(); this.updateRedPoint(); }, // 更新免费召唤次数、下次免费时间 updateSummonData: function updateSummonData(update_data) { if (!update_data) return; if (!this.recruit_list) return; for (var recruit_i in this.recruit_list) { var recruit_info = this.recruit_list[recruit_i]; if (recruit_info.group_id === update_data.group_id && recruit_info.draw_list) { for (var draw_i in recruit_info.draw_list) { var draw_info = recruit_info.draw_list[draw_i]; if (draw_info.times === 1 && draw_info.kv_list) { for (var kv_i in draw_info.kv_list) { var kv_info = draw_info.kv_list[kv_i]; if (kv_info.key == PartnersummonConst.Recruit_Key.Free_Count) kv_info.val = update_data.free_times; if (kv_info.key == PartnersummonConst.Recruit_Key.Free_Time) kv_info.val = update_data.free_cd_end; } } } } } this.updateRedPoint(); gcore.GlobalEvent.fire(PartnersummonEvent.UpdateSummonDataEvent, update_data); }, setRecruitData: function setRecruitData(recruit_data) { this.recruit_data = recruit_data; }, getRecruitData: function getRecruitData() { return this.recruit_data; }, setShareData: function setShareData(data) {}, updateRecruitData: function updateRecruitData(data_list) {}, // 更新某个卡库的CD时间、次数等数据 updateExtendData: function updateExtendData() {}, // 获取卡库数据 getSummonGroupData: function getSummonGroupData() { var group_data = []; var recruit_config = Config.recruit_data.data_partnersummon_data; var group_item = null; var recruit_config_info = null; var group_id = null; for (var recruit_i in recruit_config) { recruit_config_info = recruit_config[recruit_i]; if (recruit_config_info.is_show === 0) { group_id = recruit_config_info.group_id; var recruit_data = this.getSummonProtoDataByGroupID(group_id); group_item = {}; group_item.config_data = recruit_config[recruit_i]; group_item.recruit_data = recruit_data; group_item.group_id = recruit_config_info.group_id; group_data.push(group_item); } } // 排序 function sortById(pro) { return function (obj1, obj2) { var c_val1 = obj1.config_data[pro]; var c_val2 = obj2.config_data[pro]; if (c_val1 < c_val2) { return -1; } else { return 1; } return 0; }; } var summon_group_data = group_data.sort(sortById("sort_id")); return summon_group_data; }, getSummonProtoDataByGroupID: function getSummonProtoDataByGroupID(group_id) { if (!group_id || !this.recruit_list) return; var recruit_data = null; for (var recruit_i in this.recruit_list) { recruit_data = this.recruit_list[recruit_i]; if (recruit_data.group_id === group_id) { return recruit_data; } } return null; }, getScoreSummonNeedCount: function getScoreSummonNeedCount() { var count = 0; var score_recruit_info = Config.recruit_data.data_partnersummon_data[PartnersummonConst.Summon_Type.Score]; if (score_recruit_info.exchange_once && score_recruit_info.exchange_once[0]) { count = score_recruit_info.exchange_once[0][1]; } return count; }, // 更新红点状态 updateMainSceneRedPoint: function updateMainSceneRedPoint() { var MainSceneController = require("mainscene_controller"); var SceneConst = require("scene_const"); // 是否有免费 var is_show_red = false; for (var recruit_i in this.recruit_list) { var group_data = this.recruit_list[recruit_i]; if (group_data.draw_list) { for (var draw_i in group_data.draw_list) { var draw_data = group_data.draw_list[draw_i]; if (draw_data.kv_list) { for (var time_i in draw_data.kv_list) { var time_info = draw_data.kv_list[time_i]; if (time_info.key == PartnersummonConst.Recruit_Key.Free_Count && time_info.val > 0) { is_show_red = true; } } } } } } // 如果没有免费切没有从打开过界面企鹅道具数量充足则提示红点 if (!is_show_red && !this.had_open_view) { var BackpackController = require("backpack_controller"); var normal_item_num = BackpackController.getInstance().getModel().getItemNumByBid(PartnersummonConst.Normal_Id); var advanced_item_num = BackpackController.getInstance().getModel().getItemNumByBid(PartnersummonConst.Normal_Id); if (normal_item_num > 0 || advanced_item_num > 0) is_show_red = true; } MainSceneController.getInstance().setBuildRedStatus(SceneConst.CenterSceneBuild.summon, is_show_red); }, setOpenPartnerSummonFlag: function setOpenPartnerSummonFlag(status) { this.had_open_view = status; this.updateRedPoint(); }, updateRedPoint: function updateRedPoint() { RedMgr.getInstance().addCalHandler(this.updateMainSceneRedPoint.bind(this), RedIds.PartnerSummon); }, //快速点击间隔 clickIntervalStatus: function clickIntervalStatus(status) { this.updateTime = status; }, getClickStatus: function getClickStatus() { return this.updateTime; } }); cc._RF.pop();