【牛气冲天】提交

dev_chengFeng
ZhangBiao 2021-03-22 20:08:18 +08:00
parent 3d665074a2
commit 207d85e2a2
6 changed files with 267 additions and 2460 deletions

View File

@ -474,6 +474,7 @@ PanelType = {
HongMengTower = {100,16,14,3},-- 鸿蒙碑 HongMengTower = {100,16,14,3},-- 鸿蒙碑
XinJiangLaiXi = {14,16,1210},--新将来袭 XinJiangLaiXi = {14,16,1210},--新将来袭
XiangYaoDuoBao = {14,16,1220},--降妖夺宝 XiangYaoDuoBao = {14,16,1220},--降妖夺宝
NiuQiChongTian = {14,16,1006},--牛气冲天
} }

View File

@ -179,6 +179,8 @@ local ManagerNames = {
--主题活动管理器 --主题活动管理器
"DynamicActivity/DynamicActivityManager", "DynamicActivity/DynamicActivityManager",
"Hero/HeroSkinManager", "Hero/HeroSkinManager",
--牛气冲天管理器
"NiuQiChongTian/NiuQiChongTianManager",
--!!!!红点管理(尽量放在最后)!!!!-- --!!!!红点管理(尽量放在最后)!!!!--
"Player/RedpotManager", "Player/RedpotManager",
} }

View File

@ -188,6 +188,7 @@ ConfigName = {
NewHeroConfig = "NewHeroConfig", NewHeroConfig = "NewHeroConfig",
MainLevelBossConfig = "MainLevelBoss", MainLevelBossConfig = "MainLevelBoss",
ActivityGroups = "ActivityGroups", ActivityGroups = "ActivityGroups",
ArroGantFly = "ArroGantFly",
} }
require "Framework/GameDataBase" require "Framework/GameDataBase"
@ -299,6 +300,17 @@ function ConfigManager.GetAllConfigsDataByDoubleKey(cfgType, key1, value1, key2,
assert(#expectList > 0, string.format("%s not find key1:%s,value1:%s,key2:%s, value2:%s", cfgType, key1, value1, key2, value2)) assert(#expectList > 0, string.format("%s not find key1:%s,value1:%s,key2:%s, value2:%s", cfgType, key1, value1, key2, value2))
return expectList return expectList
end end
---获取三重Key锁定下所有的表格条目
function ConfigManager.GetAllConfigsDataByThreeKey(cfgType, key1, value1, key2, value2, key3, value3)
local expectList = {}
for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do
if configInfo[key1] == value1 and configInfo[key2] == value2 and configInfo[key3] == value3 then
table.insert(expectList, configInfo)
end
end
assert(#expectList > 0, string.format("%s not find key1:%s,value1:%s,key2:%s, value2:%s,key3:%s, value3:%s", cfgType, key1, value1, key2, value2, key3, value3))
return expectList
end
---配置表遍历按照id的大小升序遍历 ---配置表遍历按照id的大小升序遍历

View File

@ -4,4 +4,83 @@ local this = NiuQiChongTianManager
function this.Initialize() function this.Initialize()
end end
--服务器发来的活动进度条数据
function this.GetActData()
return ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.NiuQi)
end
--组装后的进度条数据
function this.GetProgressData()
local ActData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.NiuQi)
local configData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",ActData.activityId)
local curScore = this.GetScore()
local rewardData = {}
for i = 1, #configData do
local v = configData[i]
for index, value in ipairs(ActData.mission) do
if v.Id == value.missionId then
local data = {}
data.missionId = value.missionId
data.reward = v.Reward
data.value = v.Values
if curScore >= data.value then
if value.state == 0 then
data.state = 1--可领的
else
data.state = 2--领完的
end
else
data.state = 0--不可领的
end
table.insert(rewardData,data)
end
end
end
return rewardData
end
--牛气值
function this.GetScore()
local configData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",this.GetActData().activityId)
local itemId = configData[1].Values[1][1]
return BagManager.GetTotalItemNum()
end
--所有的任务信息数据
function this.GetAllRewardData()
local rewardData = {}
local ArroGantFly = ConfigManager.GetAllConfigsDataByKey(ConfigName.ArroGantFly,"ActivityId",this.GetActData().activityId)
for i = 1, 3 do
rewardData[i] = {}
for j = 1, 2 do
rewardData[i][j] = {}
local data = ConfigManager.GetAllConfigsDataByThreeKey(ConfigName.ArroGantFly,"ActivityId",this.GetActData().activityId,"Sort",i,"Type",j)
rewardData[i][j] = data
end
end
return rewardData
end
--需要显示的任务数据
function this.GetNeedRewardData()
local allData = this.GetAllRewardData()
local needData = {}
for i = 1, 3 do
needData[i] = {}
for j = 1, 2 do
for k = 1, 2 do
if allData[i][j][k] then
local data = {}
data.Text = allData[i][j][k].Text
data.Reward = allData[i][j][k].Reward
data.state = 1
table.insert(needData[i],data)
end
end
end
end
return needData
end
return this return this

View File

@ -1,8 +1,14 @@
require("Base/BasePanel") require("Base/BasePanel")
local NiuQiChongTian = Inherit(BasePanel) local NiuQiChongTian = Inherit(BasePanel)
local artConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local this = NiuQiChongTian local this = NiuQiChongTian
local _sortingOrder = 0 local sortingOrder = 0
local activityId = 0 local activityId = 0
local progressData = {}
local rewardData = {}
local curScore = 0
local itemsGrid = {}--item重复利用
local TabBox = require("Modules/Common/TabBox") local TabBox = require("Modules/Common/TabBox")
local _TabData={ [1] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "诸神" }, local _TabData={ [1] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "诸神" },
@ -27,7 +33,7 @@ function NiuQiChongTian:InitComponent()
self.scrollItem = Util.GetGameObject(self.gameObject, "mid/rewardArena") self.scrollItem = Util.GetGameObject(self.gameObject, "mid/rewardArena")
local rootHight = self.scrollItem.transform.rect.height local rootHight = self.scrollItem.transform.rect.height
local width = self.scrollItem.transform.rect.width local width = self.scrollItem.transform.rect.width
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollItem.transform,self.itemPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 35)) self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollItem.transform,self.itemPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0,0))
self.ScrollView.moveTween.MomentumAmount = 1 self.ScrollView.moveTween.MomentumAmount = 1
self.ScrollView.moveTween.Strength = 2 self.ScrollView.moveTween.Strength = 2
end end
@ -48,18 +54,23 @@ end
function NiuQiChongTian:OnSortingOrderChange() function NiuQiChongTian:OnSortingOrderChange()
-- Util.AddParticleSortLayer(self.effect, self.sortingOrder - _sortingOrder) -- Util.AddParticleSortLayer(self.effect, self.sortingOrder - _sortingOrder)
_sortingOrder = self.sortingOrder sortingOrder = self.sortingOrder
end end
--界面打开时调用(用于子类重写) --界面打开时调用(用于子类重写)
function NiuQiChongTian:OnOpen() function NiuQiChongTian:OnOpen()
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft})
end end
-- 打开,重新打开时回调 -- 打开,重新打开时回调
function NiuQiChongTian:OnShow() function NiuQiChongTian:OnShow(_sortingOrder,_parent)
-- activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.NiuQi)
-- if not activityId or activityId <= 0 then return end local actId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.NiuQi)
if not actId or actId <= 0 then return end
sortingOrder = _sortingOrder
self.gameObject:SetActive(true)
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.NiuQiChongTian })
self.TabCtrl = TabBox.New() self.TabCtrl = TabBox.New()
self.TabCtrl:SetTabAdapter(this.TabAdapter) self.TabCtrl:SetTabAdapter(this.TabAdapter)
self.TabCtrl:SetChangeTabCallBack(this.SwitchView) self.TabCtrl:SetChangeTabCallBack(this.SwitchView)
@ -76,36 +87,85 @@ end
--切换 --切换
function this.SwitchView(index) function this.SwitchView(index)
LogBlue("index:"..index) progressData = NiuQiChongTianManager.GetProgressData()
NiuQiChongTian:SetSlider() curScore = NiuQiChongTianManager.GetScore()
rewardData = NiuQiChongTianManager.GetNeedRewardData()
-- NiuQiChongTian:SetProgress()
NiuQiChongTian:SetReward(index) NiuQiChongTian:SetReward(index)
end end
function NiuQiChongTian:SetSlider() function NiuQiChongTian:SetProgress()
-- self.progress.fillAmount = curScore/LSrewardData[#LSrewardData].Values[1][1] self.progress.fillAmount = curScore/progressData[#progressData].Values[1][2]
-- for i = 1, self.reward.transform.childCount do for i = 1, self.reward.transform.childCount do
-- local item = self.reward.transform:GetChild(i-1) local item = self.reward.transform:GetChild(i-1)
-- Util.GetGameObject(item, "num/Text"):GetComponent("Text").text = LSrewardData[i].Reward[1][2] Util.GetGameObject(item, "num/Text"):GetComponent("Text").text = progressData[i].Reward[1][2]
-- Util.GetGameObject(item, "Text"):GetComponent("Text").text = LSrewardData[i].Values[1][1] Util.GetGameObject(item, "Text"):GetComponent("Text").text = progressData[i].Values[1][2]
-- Util.GetGameObject(item, "icon"):GetComponent("Image").sprite = Util.LoadSprite(artConfig[SpiritAnimalConfig[showData.monsterId].Icon].Name) Util.GetGameObject(item, "icon"):GetComponent("Image").sprite = Util.LoadSprite(artConfig[itemConfig[progressData[i].Reward[1][1]].Icon].Name)
-- Util.GetGameObject(item, "red"):SetActive(rewardData[i].state == 1) Util.GetGameObject(item, "red"):SetActive(progressData[i].state == 1)
-- local btn = Util.GetGameObject(item, "icon") local btn = Util.GetGameObject(item, "icon")
-- Util.AddOnceClick(btn,function () Util.AddOnceClick(btn,function ()
-- if rewardData[i].state == 1 then if progressData[i].state == 1 then
-- NetManager.GetActivityRewardRequest(rewardData[i].missionId,activityId,function (drop) NetManager.GetActivityRewardRequest(progressData[i].missionId,activityId,function (drop)
-- UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1,function () UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1,function ()
-- --次数一系列的动画 NiuQiChongTian:SwitchView()
-- end) end)
-- end) end)
-- else else
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,LSrewardData[i].Reward[1][1],nil) UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,progressData[i].Reward[1][1],nil)
-- end end
-- end) end)
-- end end
end end
function NiuQiChongTian:SetReward(index) function NiuQiChongTian:SetReward(index)
-- body local data = {}
local needData = rewardData[index]
self.ScrollView:SetData(needData, function (index, go)
NiuQiChongTian:SingleDataShow(go,index,needData[index])
end,false,false)
end
function NiuQiChongTian:SingleDataShow(go, index,data)
local title = Util.GetGameObject(go, "title/titleText"):GetComponent("Text")
local btn = Util.GetGameObject(go, "btn")
local btnText = Util.GetGameObject(go, "btn/Text"):GetComponent("Text")
local redPoint = Util.GetGameObject(go, "btn/redPoint")
local rewardList = Util.GetGameObject(go, "rewardList")
local grid = Util.GetGameObject(go, "rewardList")
local shadow = Util.GetGameObject(go, "shadow")
title.text = data.Text
local shows = data.Reward
redPoint:SetActive(data.state == 1)
--滚动条复用重设itemview
if itemsGrid[go] then
for i = 1, 4 do
itemsGrid[go][i].gameObject:SetActive(false)
end
for i = 1, #shows do
if itemsGrid[go][i] then
itemsGrid[go][i]:OnOpen(false, {shows[i][1],shows[i][2]}, 0.9,false,false,false,sortingOrder)
itemsGrid[go][i].gameObject:SetActive(true)
end
end
else
itemsGrid[go]={}
for i = 1, 4 do
itemsGrid[go][i] = SubUIManager.Open(SubUIConfig.ItemView, grid.transform)
itemsGrid[go][i].gameObject:SetActive(false)
local obj = newObjToParent(shadow,itemsGrid[go][i].transform)
obj.transform:SetAsFirstSibling()
obj.transform:DOAnchorPos(Vector3(0,-3,0),0)
obj:GetComponent("RectTransform").transform.localScale = Vector3.one*1.1
obj.gameObject:SetActive(true)
end
for i = 1, #shows do
itemsGrid[go][i]:OnOpen(false, {shows[i][1],shows[i][2]}, 0.9,false,false,false,sortingOrder)
itemsGrid[go][i].gameObject:SetActive(true)
end
end
end end
--界面关闭时调用(用于子类重写) --界面关闭时调用(用于子类重写)
@ -114,6 +174,8 @@ end
--界面销毁时调用(用于子类重写) --界面销毁时调用(用于子类重写)
function NiuQiChongTian:OnDestroy() function NiuQiChongTian:OnDestroy()
_sortingOrder = 0 SubUIManager.Close(this.UpView)
sortingOrder = 0
end end
return NiuQiChongTian return NiuQiChongTian