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

194 lines
7.4 KiB
Lua

SmallSoldierManager = {}
local this = SmallSoldierManager
local ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local settingConfig=ConfigManager.GetConfig(ConfigName.SoldiersSetting)
this.level=1
this.changeSolider=nil
this.upEndTime=0
function this.Initialize()
this.soldierList={}
--界面boss信息
this.bossInfo=nil
end
function this.InitData(msg)
--LogError("初始化============================================小兵管理器")
this.soldierList={}
this.level=msg.level
this.upEndTime=msg.upLvEndTime
if msg.soldiers then
for i=1,#msg.soldiers do
local v= msg.soldiers[i]
if v.position==-1 then
this.changeSolider=v
else
if v.position then
this.soldierList[v.position] = v
end
end
end
end
--LogError("服务器发过来的小兵 this.soldierList=================len=="..#this.soldierList.." msg.soldiers===="..#msg.soldiers)
HeroPropManager.SetFuncPropDirty(Func_Prop_Type.Solider)
local cd=60
Timer.New(function()
cd=cd-1
--LogError("cd============================"..cd)
if cd<=0 then
if UIManager.GetOpenPanel(UIName.FightPointPassMainPanel)==nil then
--LogError("发送小兵挂机战斗请求======================================================")
NetManager.SoldierFightCheckRequest(0,function (msg)
local lvConfig=ConfigManager.GetConfigData(ConfigName.SoldierStageConfig,FightPointPassManager.soldierLayerId)
if msg.result==1 then
if lvConfig and lvConfig.NextId and lvConfig.NextId~=0 then
FightPointPassManager.soldierLayerId = lvConfig.NextId
local curConfig=ConfigManager.GetConfigData(ConfigName.SoldierStageConfig,FightPointPassManager.soldierLayerId)
if curConfig then
cd=curConfig.Time
end
end
if cd==0 then
cd=lvConfig.Time
end
else
cd=lvConfig.Time
end
end)
end
end
end, 1, -1, true):Start()
end
--获取所有的加成属性
function this.GetAllAddPro()
local allAddPro={}
local list=FormationManager.GetAllMainFormationHeroId()
-- LogError("获取所有加成属性============================= list len=="..#list)
for key, value in pairs(list) do
local id=key
--LogError("id======================================"..id)
local heroData=HeroManager.GetSingleHeroData(id)
--便利队伍里每个英雄
if heroData then
--便利队伍里所有小兵给这个英雄加的属性
local proList={}
for k, v in pairs(this.soldierList) do
local addPro=0
--便利阵营
for j=1, #settingConfig[v.id].PropertyName do
local aaa=settingConfig[v.id].PropertyName[j]
if aaa then
if aaa[1]==0 then
addPro=addPro+aaa[2]
--LogError("111111111111111111111111111111")
elseif heroData.heroConfig.PropertyName==aaa[1] then
addPro=addPro+aaa[2]
end
end
end
for j=1, #settingConfig[v.id].Profession do
local aaa=settingConfig[v.id].Profession[j]
if aaa then
if aaa[1]==0 then
addPro=addPro+aaa[2]
elseif heroData.heroConfig.Profession==aaa[1] then
addPro=addPro+aaa[2]
end
end
end
-- for prok, prov in pairs(v.attributes) do
-- end
--LogError("addpro============================"..addPro)
for j=1,#v.attributes do
local prov=v.attributes[j]
if proList[prov.id] then
proList[prov.id]=proList[prov.id]+math.floor(prov.value*addPro/10000+0.5)
else
proList[prov.id]=math.floor(prov.value*addPro/10000+0.5)
end
end
end
allAddPro[heroData.dynamicId]=proList
-- for k, v in pairs(proList) do
-- LogError("k============"..k.." value======="..v.." herodata.name=="..heroData.heroConfig.ReadingName)
-- end
end
end
return allAddPro
end
--获取所有的加成属性
function this.GetAllHeroAddPro()
local allAddPro={}
local list=HeroManager.GetAllHeroList() --FormationManager.GetAllMainFormationHeroId()
-- LogError("获取所有加成属性============================= list len=="..#list)
for key, hero in pairs(list) do
local id=key
--LogError("id======================================"..id)
local heroData=HeroManager.GetSingleHeroData(id)
--便利队伍里每个英雄
if heroData and allAddPro[heroData.id]==nil then
--便利队伍里所有小兵给这个英雄加的属性
local proList={}
for k, v in pairs(this.soldierList) do
local addPro=0
--便利阵营
for j=1, #settingConfig[v.id].PropertyName do
local aaa=settingConfig[v.id].PropertyName[j]
if aaa then
if aaa[1]==0 then
addPro=addPro+aaa[2]
--LogError("111111111111111111111111111111")
elseif heroData.heroConfig.PropertyName==aaa[1] then
addPro=addPro+aaa[2]
end
end
end
for j=1, #settingConfig[v.id].Profession do
local aaa=settingConfig[v.id].Profession[j]
if aaa then
if aaa[1]==0 then
addPro=addPro+aaa[2]
elseif heroData.heroConfig.Profession==aaa[1] then
addPro=addPro+aaa[2]
end
end
end
-- for prok, prov in pairs(v.attributes) do
-- end
--LogError("addpro============================"..addPro)
for j=1,#v.attributes do
local prov=v.attributes[j]
if proList[prov.id] then
proList[prov.id]=proList[prov.id]+math.floor(prov.value*addPro/10000+0.5)
else
proList[prov.id]=math.floor(prov.value*addPro/10000+0.5)
end
end
end
allAddPro[heroData.id]=proList
-- for k, v in pairs(proList) do
-- LogError("k============"..k.." value======="..v.." herodata.name=="..heroData.heroConfig.ReadingName)
-- end
end
end
return allAddPro
end
return this