|
|
- LightModel = LightModel or BaseClass(BaseVo, true)
- local LightModel = LightModel
-
- LightModel.REQUEST_CCMD_EVENT = "LightModel.REQUEST_CCMD_EVENT"
- LightModel.ANS_LIGHT_BASE = "LightModel.ANS_LIGHT_BASE"--幻光基础信息返回
- LightModel.ANS_LIGHT_UPGRADE = "LightModel.ANS_LIGHT_UPGRADE"--幻光升级返回
- LightModel.OPEN_LIGHT_ACTIVE_VIEW = "LightModel.OPEN_LIGHT_ACTIVE_VIEW"--幻光激活展示界面
- LightModel.OPEN_SUCCESS_VIEW = "LightModel.OPEN_SUCCESS_VIEW"
-
- -- 幻光品质色,从1到3,低级到高级
- LightModel.text_color = {
- [1] = ColorUtil.BLUE_DARK,
- [2] = ColorUtil.PURPLE_DARK,
- [3] = ColorUtil.ORANGE_DARK
- }
-
- function LightModel:__init()
- LightModel.Instance = self
- self:ResetData()
- end
-
- function LightModel:ResetData()
- self.light_info = {}--幻光信息
- self.red_light_active = {}--幻光红点
- self.red_light_upgrade = {}--幻光红点
- end
-
- function LightModel:GetInstance()
- if LightModel.Instance == nil then
- LightModel.Instance = LightModel.New()
- end
- return LightModel.Instance
- end
-
- function LightModel:getInstance()
- if LightModel.Instance == nil then
- LightModel.Instance = LightModel.New()
- end
- return LightModel.Instance
- end
-
- --登陆天数,幻光要用自己的登陆天数计算
- function LightModel:GetLoginDay( )
- return self.login_day or 0
- end
- function LightModel:SetLoginDay( value )
- self.login_day = value
- end
-
- function LightModel:GetLightInfo( )
- return self.light_info or {}
- end
- function LightModel:SetLightInfo( value )
- self.light_info = value
- end
- function LightModel:GetLightInfoOne( id )
- if not id then return end
- local base_info = self:GetLightInfo()
- for k,v in pairs(base_info) do
- if v.id == id then
- return v
- end
- end
- end
- function LightModel:GetLightUsingSkin( )
- local info = self:GetLightInfo( )
- if info then
- for k,v in pairs(info) do
- if v.display == 1 then
- return v.id
- end
- end
- end
- return 0
- end
- --获取单条基础配置
- function LightModel:GetLightConfOne( id )
- if not id then return false end
- return Config.Visus[id]
- end
- --获取单条等级配置
- function LightModel:GetLightLvConfOne( id,grade,lv )
- if not id then return false end
- grade = grade or 0
- lv = lv or 0
- return Config.Visuslv[id.. "@" .. grade .. "@" .. lv]
- end
- --判断幻光是否满级
- function LightModel:GetLightIsMax( id )
- local data = self:GetLightInfoOne(id)
- if not data then return end
- local conf_cur = self:GetLightLvConfOne( id,data.grade,data.lv )
- if not conf_cur then return true end--找不到配置跳出
- if tonumber(conf_cur.next_grade) == 0 and tonumber(conf_cur.next_lv) == 0 then
- return true
- else
- return false
- end
- end
-
- --幻光是否已激活
- function LightModel:GetLightIsActive( id )
- local data = self:GetLightInfoOne(id)
- if data and data.state == 1 then
- return true
- else
- return false
- end
- end
-
- function LightModel:GetLightShowTabInfo( )
- if not self.light_show_tab_conf_list then
- self.light_show_tab_conf_list = {}
- for k,v in pairs(Config.Visus) do
- table.insert( self.light_show_tab_conf_list, v )
- end
- local function sort_call( a,b )
- return a.id < b.id
- end
- table.sort( self.light_show_tab_conf_list, sort_call )
- end
- return self.light_show_tab_conf_list
- end
-
- --获取幻光列表
- function LightModel:GetLightSubTabInfo( main_type )
- local data = {}
- for k,v in pairs(Config.Visus) do
- -- if v.type == main_type then--现在不需要做分类了
- table.insert( data, v )
- -- end
- end
- -- 特殊排序规则
- -- 由低品质到高品质从上到下,同品质内按类型字数字大小排序
- local function sort_call( a,b )
- return a.color < b.color or (a.color == b.color and a.type < b.type)
- end
- table.sort( data, sort_call )
- return data
- end
-
- --幻光激活判断
- function LightModel:CanLightActive( check_new,id )
- if not id then return false end
- if check_new then
- self.red_light_active[id] = false
- local data = self:GetLightInfoOne( id )
- if data and data.state == 1 then
- --有数据说明已经激活
- elseif data and data.state == 0 then
- self.red_light_active[id] = true
- else
- local conf = self:GetLightConfOne( id )
- if conf and conf.item then
- local cost = stringtotable(conf.item)
- if TableSize(cost) > 0 then
- self.red_light_active[id] = GoodsModel:GetEnough( conf.item )
- end
- end
- end
- end
- return self.red_light_active[id]
- end
-
- --幻光升级判断
- function LightModel:CanLightUpGrade( check_new,id )
- if not id then return false end
- if check_new then
- self.red_light_upgrade[id] = false
- local data = self:GetLightInfoOne( id )
- if data then
- if self:CanLightActive(check_new,id) or self:GetLightIsMax(id) then
- else
- --判断材料
- local conf = self:GetLightLvConfOne( id,data.grade,data.lv )
- if conf then
- self.red_light_upgrade[id] = GoodsModel:GetEnough( conf.cost )
- end
- end
- end
- end
- return self.red_light_upgrade[id]
- end
-
- function LightModel:GetLightOneRed( check_new,id )
- if not id then return false end
- if check_new then
- self.red_light_active[id] = self:CanLightActive(check_new,id)
- self.red_light_upgrade[id] = self:CanLightUpGrade(check_new,id)
- end
- return self.red_light_active[id] or self.red_light_upgrade[id]
- end
-
- function LightModel:GetLightAllRed( check_new )
- if GetModuleIsOpen(147,nil,true) then
- -------------------------
- local base = self:GetLightShowTabInfo()
- if check_new then
- self.red_light_active = {}
- self.red_light_upgrade = {}
- for k,v in pairs(base) do
- self:GetLightOneRed(check_new,v.id)
- end
- end
- -------------------------
- for k,v in pairs(base) do
- if self:GetLightOneRed(false,v.id) then
- return true
- end
- end
- end
- return false
- end
-
- function LightModel:GetLightAllActive(check_new)
- local base = self:GetLightShowTabInfo()
- if check_new then
- self.red_light_active = {}
- for k,v in pairs(base) do
- self:CanLightActive(check_new,v.id)
- end
- end
- -------------------------
- for k,v in pairs(base) do
- if self:CanLightActive(false,v.id) then
- return true
- end
- end
- return false
- end
-
- function LightModel:GetLightAllUpGrade(check_new)
- local base = self:GetLightShowTabInfo()
- if check_new then
- self.red_light_upgrade = {}
- for k,v in pairs(base) do
- self:CanLightUpGrade(check_new,v.id)
- end
- end
- -------------------------
- for k,v in pairs(base) do
- if self:CanLightUpGrade(false,v.id) then
- return true
- end
- end
- return false
- end
-
- function LightModel:GetLightResById( id )
- local conf = self:GetLightConfOne( id )
- if conf and conf.figure then
- return "effect_role_glow" .. conf.figure
- else
- return ""
- end
- end
-
|