GodWeaponManager = {}; local this = GodWeaponManager local shenBingConfig=ConfigManager.GetConfig(ConfigName.ShenBing) local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig) local allGodWeapons={} local godWeaponTeamInfo={} local handBook={} function this.Initialize() end function this.InitAllGodWeaponData(msg) LogError("#msg.infos============"..#msg.infos) for i = 1, #msg.infos do local GodWeapon={} GodWeapon.Did=msg.infos[i].id local staticId=msg.infos[i].tmpId GodWeapon.id=staticId GodWeapon.staticId=staticId GodWeapon.dynamicId=msg.infos[i].id GodWeapon.lv=msg.infos[i].level GodWeapon.star=msg.infos[i].star local pos=msg.infos[i].point GodWeapon.point=pos GodWeapon.live=shenBingConfig[staticId].Painting GodWeapon.scale=shenBingConfig[staticId].Scale GodWeapon.position=shenBingConfig[staticId].Position GodWeapon.config=shenBingConfig[staticId] allGodWeapons[GodWeapon.Did]=GodWeapon if pos~=0 then LogError("pos============================="..pos) godWeaponTeamInfo[pos]=GodWeapon end LogError("static=="..staticId) end for i = 1, #msg.book do LogError("msg.book[i]====="..msg.book[i]) handBook[msg.book[i]]=msg.book[i] end end function this.GetAllWeapon() return allGodWeapons end function this.GetAllTeamWeapon() return godWeaponTeamInfo end function this.GetAllTeamWeaponId() local list={} for key, value in pairs(godWeaponTeamInfo) do table.insert(list,value.staticId) end return list end function this.InitSingleGodWeaponData(data) local GodWeapon={} local GodWeapon={} GodWeapon.Did=data.id local staticId=data.tmpId GodWeapon.id=staticId GodWeapon.staticId=staticId GodWeapon.dynamicId=data.id GodWeapon.lv=data.level GodWeapon.star=data.star local pos=data.point GodWeapon.point=pos GodWeapon.live=shenBingConfig[staticId].Painting GodWeapon.scale=shenBingConfig[staticId].Scale GodWeapon.position=shenBingConfig[staticId].Position GodWeapon.config=shenBingConfig[staticId] allGodWeapons[GodWeapon.Did]=GodWeapon handBook[staticId]=staticId LogError("single static=="..staticId) end function this.GetSingleWeaponData(_id) if allGodWeapons[_id] then return allGodWeapons[_id] end return nil end --获取当前可上阵的所有灵兽数据 curUpZhenPokemonData 如果不为空就时替换上阵操作 function this.GetCanUpZhenWeapons() local upZhenSidList = this.GetAllTeamWeaponId() local curAllPokemonList = {} for key, value in pairs(allGodWeapons) do if not CheckListIsContainValue1(upZhenSidList,value.staticId) then table.insert(curAllPokemonList,value) end end return curAllPokemonList end --碎片可以合成红点 function this.WeaponChipCompoundRedPoint() local isOpen = ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.POKEMON) if not isOpen then return false end local pokemonChipList = BagManager.GetDataByItemType(ItemType.GodWeaponChip) if #pokemonChipList > 0 then for i = 1, #pokemonChipList do if BagManager.GetItemCountById(pokemonChipList[i].id) >= itemConfig[pokemonChipList[i].id].UsePerCount then -- LogPink("碎片可以合成红点true") return true end end end -- LogPink("碎片可以合成红点false") return false end --设置神兵上阵下阵 function this.SetWeaponUpZhen(id,pos) if allGodWeapons[id] then if pos~=0 then local point1=allGodWeapons[id].point if point1~=0 then godWeaponTeamInfo[point1]=nil end allGodWeapons[id].point=pos godWeaponTeamInfo[pos]=allGodWeapons[id] else allGodWeapons[id].point=pos godWeaponTeamInfo[pos]=nil end end end --改变神兵位置 function this.ChangeWeaponPos(id1,id2) if allGodWeapons[id1] and allGodWeapons[id2] then local pos1=allGodWeapons[id1].point local pos2=allGodWeapons[id2].point allGodWeapons[id1].point=pos2 allGodWeapons[id2].point=pos1 godWeaponTeamInfo[pos1]=allGodWeapons[id2] godWeaponTeamInfo[pos2]=allGodWeapons[id1] end end --获取灵兽编队属性 function this.GetPokemonFormationAddPro() local allPro = {} for key, value in pairs(godWeaponTeamInfo) do if key and allGodWeapons[value.Did] then local curPokemonAddPro = this.GetSinglePokemonAddProData(value.Did) HeroManager.DoubleTableCompound(allPro, curPokemonAddPro) end end return allPro end --获取单个神兵属性 (灵兽属性/编队人数 神兵属性会平分给上阵的所有神将) function this.GetSinglePokemonAddProData(_did,_star)--_star 传值的话就用此星级计算属性 -- LogPink("_did 1 ".._did) if not allGodWeapons[_did] then return end -- LogPink("_did 2 ".._did) local addAllProVal = {} local curPokeonData = allGodWeapons[_did] local curPokemonConFig = ConfigManager.GetConfigData(ConfigName.ShenBing,curPokeonData.id) local curPokemonLvConFig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.ShenBingLevel,"Quality",curPokemonConFig.Quality,"Level",curPokeonData.lv) local curPokemonStarConFig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.ShenbingStar,"Quality",curPokemonConFig.Quality,"Star",_star and _star or curPokeonData.star) --基础 addAllProVal[HeroProType.Hp] = curPokemonConFig.Hp addAllProVal[HeroProType.Attack] = curPokemonConFig.Attack addAllProVal[HeroProType.PhysicalDefence] = curPokemonConFig.PhysicalDefence addAllProVal[HeroProType.MagicDefence] = curPokemonConFig.MagicDefence --升级 for i = 1, #curPokemonLvConFig.CharacterLevelPara do local curPro = curPokemonLvConFig.CharacterLevelPara[i] if curPro[2] > 0 then if addAllProVal[curPro[1]] then addAllProVal[curPro[1]]=addAllProVal[curPro[1]]+curPro[2] else addAllProVal[curPro[1]]=curPro[2] end end end --升星 属性=(基础属性+等级属性)*(1+星级倍率) local StarPara = curPokemonStarConFig.StarPara/10000 local addEndAllProVal = {} for key, value in pairs(addAllProVal) do addEndAllProVal[key] = math.floor(value * (1 + StarPara)) end return addEndAllProVal end return this