miduo_client/Assets/ManagedResources/~Lua/Modules/Gem/GiftManager.lua

269 lines
6.9 KiB
Lua
Raw Normal View History

2023-09-13 14:57:48 +08:00
--新的命格管理
GiftManager = {}
local this = GiftManager
local giftConfig=ConfigManager.GetConfig(ConfigName.GiftConfig)
local equipConfig=ConfigManager.GetConfig(ConfigName.EquipConfig)
function this.Initialize()
this.allHeroGifts={}
this.playerGifts={}
end
--初始化命石
function this.InitGemsInfo(msg)
end
--初始化英雄礼物
function this.InitHeroGift(id,list)
this.allHeroGifts[id]=list
end
--初始化主角礼物
function this.InitPlayerGift(list)
this.playerGifts=list
end
--获取收取等级和最大数量
function this.GetCollectLvAndNum()
local lv=0
local maxNum=0
local collect=0
local curNum=0
for i=1,#this.playerGifts do
local id=this.playerGifts[i]
if equipConfig[id] then
collect=collect+equipConfig[id].Gift
end
end
for k, v in ConfigPairs(giftConfig) do
if collect>=v.Gift then
lv=v.Id
curNum=v.Box
else
maxNum=v.Box
break
end
end
2023-09-21 15:18:13 +08:00
if maxNum==0 then
maxNum=curNum
end
2023-09-13 14:57:48 +08:00
return lv,curNum,maxNum
end
--设置英雄礼物 type 1穿 2
function this.SetHeroGift(id,list,type)
if this.allHeroGifts[id]==nil then
this.allHeroGifts[id]={}
end
for i=1,#list do
if type==1 then
table.insert(this.allHeroGifts[id],list[i])
elseif type==2 then
table.removebyvalue(this.allHeroGifts[id],list[i])
end
end
2023-09-20 11:52:31 +08:00
HeroManager.ChangeHeroGift(id,this.allHeroGifts[id])
2023-09-13 14:57:48 +08:00
end
--设置主角礼物
function this.SetPlayerGift(list)
for i=1,#list do
table.insert(this.playerGifts,list[i])
end
end
function this.GetHeroGifts(_id)
if this.allHeroGifts[_id] then
return this.allHeroGifts[_id]
end
return {}
end
function this.GetPlayerGifts()
return this.playerGifts
end
function this.changeGiftsByType(_type,_list)
end
2023-09-15 14:11:14 +08:00
--获取英雄礼物增加的属性
function this.GetHeroGiftAddPro(_id)
local data={}
if not this.allHeroGifts[_id] then
LogError("英雄gift======================nil")
2023-09-15 14:11:14 +08:00
return data
end
2023-11-13 15:34:29 +08:00
local addPro=0
if this.playerGifts and #this.playerGifts>0 then
for i=1,#this.playerGifts do
local id=this.playerGifts[i]
if equipConfig[id] and equipConfig[id].HeroGitUp and equipConfig[id].HeroGitUp>0 then
addPro=addPro + equipConfig[id].HeroGitUp
end
end
end
--HeroGitUp
local list=this.allHeroGifts[_id]
for i=1,#list do
local id=list[i]
2023-09-15 14:11:14 +08:00
local pro = equipConfig[id].Property
if pro and #pro>0 then
for k = 1, #pro do
local key=pro[k][1]
local value=pro[k][2]
if tonumber(key)~=0 and tonumber(key)~=nil then
if not data[key] then
data[key] = 0
end
data[key] = data[key] + value
end
end
end
--英雄礼物不会加成主角属性
-- local pro2 = equipConfig[id].PlayerProperty
-- if pro2 and #pro2>0 then
-- for k = 1, #pro2 do
-- if not data[pro2[k][1]] then
-- data[pro2[k][1]] = 0
-- end
-- data[pro2[k][1]] = data[pro2[k][1]] + pro2[k][2]
-- end
-- end
end
2023-11-24 16:32:35 +08:00
if addPro>0 then
for k, v in pairs(data) do
data[k]=math.floor(v*(1+addPro/10000)+0.5)
end
end
2023-09-15 14:11:14 +08:00
return data
end
2023-09-20 11:28:57 +08:00
--检测英雄红点
function this.CheckRoleRedPointById(_id)
local isOpen=CheckFunctionOpen(FUNCTION_OPEN_TYPE.Gift)
if isOpen==false then
return false
end
local lv,cur,max=this.GetCollectLvAndNum()
if this.allHeroGifts[_id] then
local list=this.allHeroGifts[_id]
if #list>=cur then
return false
end
local allEquip = BagManager.GetBagItemDataByItemType(ItemBaseType.HeroGift)
for i=1,#allEquip do
if CheckListIsContainValue1(list,allEquip[i].id)==false then
return true
end
end
else
return false
end
return false
end
--检测主角红点
function this.CheckPlayerRedPoint()
local isOpen=CheckFunctionOpen(FUNCTION_OPEN_TYPE.Gift)
if isOpen==false then
return false
end
local allEquip = BagManager.GetBagItemDataByItemType(ItemBaseType.PlayerGift)
for i=1,#allEquip do
if CheckListIsContainValue1(this.playerGifts,allEquip[i].id)==false then
return true
end
end
return false
end
2023-10-16 15:12:47 +08:00
--获取英雄潜能等级
function this.GetHeroPotencyLvById(did)
local lv=0
if this.playerGifts and #this.playerGifts>0 then
for i=1,#this.playerGifts do
local id=this.playerGifts[i]
if equipConfig[id] and equipConfig[id].PotentialNew and #equipConfig[id].PotentialNew>0 then
lv=lv+equipConfig[id].PotentialNew[2]
end
end
end
if this.allHeroGifts and this.allHeroGifts[did] then
local list=this.allHeroGifts[did]
for i=1,#list do
local id=list[i]
if equipConfig[id] and equipConfig[id].PotentialNew and #equipConfig[id].PotentialNew>0 then
lv=lv+equipConfig[id].PotentialNew[2]
end
end
end
--LogError("礼物增加 潜能 lv====================================="..lv)
return lv
end
2023-09-13 14:57:48 +08:00
2023-09-15 14:11:14 +08:00
--获取主角礼物增加的属性
function this.GetPlayerGiftAddPro()
local data={}
for i=1,#this.playerGifts do
local id=this.playerGifts[i]
local pro = equipConfig[id].PlayerProperty
if pro and #pro>0 then
for k = 1, #pro do
local key=pro[k][1]
local value= pro[k][2]
if tonumber(key) ~=nil and tonumber(key)~=0 then
if key~=0 and key~=nil then
if not data[key] then
data[key] = 0
end
data[key] = data[key] + value
end
end
end
end
2023-09-15 14:11:14 +08:00
local pro2 = equipConfig[id].Property
if pro2 and #pro2>0 and pro2[1][1]~=0 and pro2[1][1]~=nil then
for k = 1, #pro2 do
local key=pro2[k][1]
local value=pro2[k][2]
if tonumber(key) ~=nil and tonumber(key)~=0 then
if not data[key] then
data[key] = 0
end
if value and value~=0 then
LogError("pro2[k][1]==="..key.." value=="..value)
data[key] = data[key] + value
end
end
2023-09-15 14:11:14 +08:00
end
end
2023-09-15 14:11:14 +08:00
end
2023-09-15 14:11:14 +08:00
return data
end
2023-09-13 14:57:48 +08:00
function this.CheckGemRed()
return false
end
function this.CheckSuperGemRed()
return false
end
return this