|
|
- EmpowerModel = EmpowerModel or BaseClass(BaseVo, true)
- local EmpowerModel = EmpowerModel
-
- function EmpowerModel:__init()
- self.Instance = self
- self:Reset()
-
- -- self.Config_Marble_reward = DeepCopy(Config.Marblereward)
- self.Config_Marble_kv = Config.Latticekv
- -- self.Config_Marble_Count_Reward = {}
- -- for k,v in pairs(DeepCopy(Config.Marblecountreward)) do -- 下标是100 · 200 · 没法老实再存一个
- -- table.insert(self.Config_Marble_Count_Reward,v)
- -- end
- -- local function sort_func(a, b)
- -- return a.count < b.count
- -- end
- -- table.sort(self.Config_Marble_Count_Reward, sort_func)
-
- self.Config_Equip_Shop = Config.Equipshop
- self.showEquipShopList = {}
- self.equipShopResetNum = 0
- self.empowerRedDotList = {}
- self.vo41400 = {} -- 存储41400
- self.isAutoBuy41401 = false
- self.isOnceBuy41401 = false
- self.isAutoReset41404 = false
-
- self.isAutoBuyGridWalk = false
- self.gridWalkRandomNum = math.random(1, #EmpowerConst.GridWalkDicePos)
- self.coupon_id = self:GetConfigMarbleKvVal("coupon_id") or 270012--代金券ID
- self.coupon_exchange_data = self:GetConfigMarbleKvVal("voucher_for_gold")--代金券抵扣数量
- self.reset_num = self:GetConfigMarbleKvVal("coupon_id") or 270012--抽奖进度重置次数
- self.reset_limit_data = stringtotable(self:GetConfigMarbleKvVal("reset_lattice_cost"))--重置VIP限制
- self.reset_limit_walk_data = stringtotable(Config.Latticekv["lattice_vip_point"].val)--重置VIP限制升品之路
-
-
- end
-
- function EmpowerModel:Reset()
-
- self.ran_red_dot_info = {}
- end
-
- function EmpowerModel:GetInstance()
- if self.Instance == nil then
- self.Instance = EmpowerModel.New()
- end
- return self.Instance
-
- end
-
- -- function EmpowerModel:GetFreshTreasureQualitys()
-
- -- local addAllVal = 0
- -- for k,v in pairs(self.Config_Marble_reward) do
- -- print(k,v)
- -- addAllVal = addAllVal + v.val
- -- end
- -- local randomNum = math.random(1,addAllVal)
- -- for k,v in pairs(self.Config_Marble_reward) do
- -- print("============>>> YiRan:EmpowerModel [start:35] randomNum :",randomNum)
- -- if randomNum - v.val <= 0 then
- -- return ErlangParser:GetInstance():Parse(v.qualitys)[1]
- -- else
- -- randomNum = randomNum - v.val
- -- end
- -- end
- -- end
-
- function EmpowerModel:GetVo41400( )
- return self.vo41400
- end
- function EmpowerModel:SetVo41400(vo)
- self.vo41400 = vo
- end
- function EmpowerModel:GetConfigMarbleKvVal(keyName)
- for k,v in pairs(self.Config_Marble_kv) do
- -- print("============>>> YiRan:EmpowerModel [start:54] Trim(v.key) :",Trim(v.key))
- if Trim(v.key) == keyName then
- return v.val
- end
- end
- end
-
- function EmpowerModel:GetEquipShopList()
- return self.showEquipShopList
- end
- function EmpowerModel:GetEquipShopResetNum()
- return self.equipShopResetNum
- end
- function EmpowerModel:GetEquipShopResetTime()
- return self.equipShopResetTime
- end
- function EmpowerModel:SetEquipShopList(vo)
- local newList = {}
- for k,v in pairs(self.Config_Equip_Shop) do
- for sk,sv in pairs(vo.shop_list) do
- if v.index == sv.index then
- local list = {}
- list.state = sv.state
- list.shopList = v
- table.insert(newList,list)
- end
- end
- end
- local sort_func = function ( a, b )
- if a.shopList.is_pay == 0 and b.shopList.is_pay ~= 0 then
- return true
- end
- if a.shopList.discount ~= b.shopList.discount then
- return a.shopList.discount < b.shopList.discount
- end
- return a.shopList.price < b.shopList.price
- end
- table.sort(newList, sort_func)
-
- self.showEquipShopList = newList
- self.equipShopResetNum = vo.reset_count
- self.equipShopResetTime = vo.time
- end
-
- -- function EmpowerModel:GetConfigMarbleCountReward( )
- -- local function sort_func(a, b)
- -- return a.count < b.count
- -- end
- -- table.sort(self.Config_Marble_Count_Reward, sort_func)
- -- end
-
- function EmpowerModel:IsRedDotEmpowerShop( )
- local shopList = self:GetEquipShopList()
- if not shopList then return end
- --print("=============>>> YiRan:EmpowerModel [start:131] shopList------------------------------------------")
- --PrintTable(shopList)
- --print("=============>>> YiRan:EmpowerModel [end] ------------------------------------------")
- for k,v in pairs(shopList) do
- if v.state == 0 and v.shopList.is_pay == 0 then -- 拥有免费道具未领
- return true
- end
- end
- return false
- end
-
- function EmpowerModel:IsRedDotEmpowerTreasure( )
- --[[ 旧弹珠台红点
- local vo41400 = self:GetVo41400( )
- if not vo41400 or not vo41400.reward then return end
- -- print("=============>>> YiRan:EmpowerModel [start:113] vo41400.reward ------------------------------------------")
- -- PrintTable(vo41400.reward)
- -- print("=============>>> YiRan:EmpowerModel [end] ------------------------------------------")
- for k,v in pairs(vo41400.reward) do
- if (v.state == 1) then
- return true
- end
- end
-
- local count = vo41400.count + 1 -- 告知下一次,当前次数得加1
- if count and count <= self:GetConfigMarbleKvVal("free_count") then
- return true
- end
- return false]]
-
- ----新
- self.is_red_for_game = false
- if self.grid_game_info and self.grid_game_info.free_count > 0 then
- self.is_red_for_game = true
- end
- return self.is_red_for_game
- end
- function EmpowerModel:IsNeedRed(id)
-
- local redEmpowerTreasureBool = self:GetEmpowerRedDotList()[EmpowerConst.EmpowerViewType.EmpowerTreasure]
- local redEmpowerShopBool = self:GetEmpowerRedDotList()[EmpowerConst.EmpowerViewType.EmpowerShop]
- if id == EmpowerConst.EmpowerViewType.EmpowerTreasure then
- redEmpowerTreasureBool = self:IsRedDotEmpowerTreasure()
- self.empowerRedDotList[id] = redEmpowerTreasureBool
- self:Fire(EmpowerConst.UPDATA_TREASURE_RED_IFNO)
- elseif id == EmpowerConst.EmpowerViewType.EmpowerShop then
- redEmpowerShopBool = self:IsRedDotEmpowerShop()
- self.empowerRedDotList[id] = redEmpowerShopBool
- self:Fire(EmpowerConst.EMPOWER_SHOP_RED_DOT)
- else
- end
- local bool = redEmpowerTreasureBool or redEmpowerShopBool
- EquipModel:getInstance():IsNeedRed(EquipModel.MainTab.RedEquip)
- GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 414, bool)
- end
-
- function EmpowerModel:GetEmpowerRedDotList()
- return self.empowerRedDotList
- end
-
- function EmpowerModel:GetEmpowerCoinGoodId( )
- local exchange_cost = Config.Latticekv["exchange_cost"].val -- 升品寻宝和弹珠寻宝区分开self:GetConfigMarbleKvVal("exchange_cost")
- local exchange_cost_list = stringtotable(exchange_cost)[1]
- local exchangePropId = exchange_cost_list[2]
- return exchangePropId
- end
-
- --获得代金券ID
- function EmpowerModel:GetCouponId( )
- return self.coupon_id
- end
-
- --获得代金券兑换钻石数量
- function EmpowerModel:GetCouponExchangeNum( )
- return self.coupon_exchange_data
- end
-
- --获得当前条件下重置次数
- function EmpowerModel:GetResetLimitNum( )
- local vip_flag = RoleManager.Instance.mainRoleInfo.vip_flag
- local reset_limit = 0--当前充值次数
- local reset_next_vip = nil--下一次重置次数增加的VIP等级
- local reset_next_limit = nil--下一次的重置次数
- for k,v in ipairs(self.reset_limit_data) do
- if vip_flag >= v[1] then
- reset_limit = v[2]
- end
- end
- for i,v in ipairs(self.reset_limit_data) do
- if reset_limit < v[2] then
- reset_next_vip = v[1]
- reset_next_limit = v[2]
- break
- end
- end
- return reset_limit,reset_next_vip,reset_next_limit
- end
-
- --获得当前条件下重置次数 升品之路
- function EmpowerModel:GetResetLimitNumWalk( )
- local vip_flag = RoleManager.Instance.mainRoleInfo.vip_flag
- local reset_limit = 0--当前充值次数
- local reset_next_vip = nil--下一次重置次数增加的VIP等级
- local reset_next_limit = nil--下一次的重置次数
- for k,v in ipairs(self.reset_limit_walk_data) do
- if vip_flag >= v[1] then
- reset_limit = v[2]
- end
- end
- for i,v in ipairs(self.reset_limit_walk_data) do
- if reset_limit < v[2] then
- reset_next_vip = v[1]
- reset_next_limit = v[2]
- break
- end
- end
- return reset_limit,reset_next_vip,reset_next_limit
- end
-
- ------------新挪过来的升品之路走格子
-
- function EmpowerModel:GetGridGameInfo( )
-
- --print("=============>>> YiRan:EmpowerModel [start:213] self.grid_game_info ------------------------------------------")
- --PrintTable(self.grid_game_info)
- --print("=============>>> YiRan:EmpowerModel [end] ------------------------------------------")
- --[[测试数据用 local debug_scmd = self.grid_game_info or {
- turn = 1,
- step = 0,
- reset_count = 0,
- free_count = 3,
- show_reward = {}
- }
- for i=1,24 do
- table.insert(debug_scmd.show_reward, {step_id=i, step_reward={{good_id=230001, good_num=12}}})
- end
- ]]
- return self.grid_game_info --debug_scmd--
- end
-
- function EmpowerModel:SetGridGameInfo( value )
- --print("=============>>> YiRan:EmpowerModel [start:25] value ------------------------------------------")
- --PrintTable(value)
- --print("=============>>> YiRan:EmpowerModel [end] ------------------------------------------")
- self:ChangeVar("grid_game_info", value, true, true)
- self:Fire(EmpowerConst.EMPOWER_RED_DOT,EmpowerConst.EmpowerViewType.EmpowerTreasure)
- end
-
-
- function EmpowerModel:SetIsDoubleTime(value)
- if value == 2 then
- self.is_double_time = true
- else
- self.is_double_time = false
- end
-
- end
-
- --更新主界面图标状态
- function EmpowerModel:UpdateMainIconState( )
- local item = ActivityIconManager:getInstance():GetViewIcon(414)
- if item then
- item:SetSpecialImg()
- end
- end
-
- function EmpowerModel:GetIsDoubleTime( )
- return self.is_double_time or false
- end
-
- function EmpowerModel:GetIsShowingGameView( )
- return self.is_showing_game_view
- end
-
- function EmpowerModel:SetIsShowingGameView( value )
- self.is_showing_game_view = value
- end
-
- function EmpowerModel:GetIsShowingShopView( )
- return self.is_showing_shop_view
- end
-
- function EmpowerModel:SetIsShowingShopView( value )
- self.is_showing_shop_view = value
- end
-
- function EmpowerModel:GetGameSumRewardList( )
- if not self.grid_game_info or not self.grid_game_info.show_reward then return end
- local list = {}
- for k,v in pairs(self.grid_game_info.show_reward) do
- for _,award_info in pairs(v.step_reward or {}) do
- local has_find = false
- if not (v.is_double == 2) then -- 非双倍的奖励 可以叠加
- for kk,vv in pairs(list) do
- if vv[2] == award_info.good_id then
- vv[3] = vv[3] + award_info.good_num
- has_find = true
- break
- end
- end
- end
-
- if not has_find then
- table.insert(list, {[1] = 100, [2] = award_info.good_id, [3] = award_info.good_num})
- end
- end
- end
-
- if self:GetIsDoubleTime( ) then
- local temp_list = DeepCopy(list)
- for i,v in ipairs(temp_list) do
- list[i][3] = v[3] / 2
- table.insert(list, {[1] = v[1], [2] = v[2], [3] = v[3] / 2, is_mul = true})
- end
- end
-
- local sort_func = function ( a, b )
- if a.is_mul and (not b.is_mul) then
- return true
- end
- return false
- end
- table.sort(list, sort_func)
-
- local data = {}
- data.award = list
- --data.not_show_anim = true
-
- return data
- end
|