源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

361 rindas
11 KiB

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