224 lines
8.6 KiB
Lua
224 lines
8.6 KiB
Lua
local XinJiangLaiXi = {}
|
|
local globalActive = ConfigManager.GetConfig(ConfigName.GlobalActivity)
|
|
|
|
function XinJiangLaiXi:New(gameObject)
|
|
local b = {}
|
|
b.gameObject = gameObject
|
|
b.transform = gameObject.transform
|
|
setmetatable(b, { __index = XinJiangLaiXi })
|
|
return b
|
|
end
|
|
|
|
function XinJiangLaiXi:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
self.time = Util.GetGameObject(self.gameObject, "time/times"):GetComponent("Text")
|
|
self.money = Util.GetGameObject(self.gameObject, "money/times"):GetComponent("Text")
|
|
self.fightBtn = Util.GetGameObject(self.gameObject, "layout/fightBtn")
|
|
self.storeBtn = Util.GetGameObject(self.gameObject, "btnGroups/storeBtn")
|
|
self.zhenqibaogeBtn = Util.GetGameObject(self.gameObject, "btnGroups/zqbg")
|
|
self.zhenqibaogeBtn:SetActive(false)
|
|
self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn")
|
|
self.helpPosition = self.helpBtn:GetComponent("RectTransform").localPosition
|
|
self.scrollItem = Util.GetGameObject(self.gameObject, "layout/scroller/grid")
|
|
self.liveRoot = Util.GetGameObject(self.gameObject, "bg/liveRoot")
|
|
self.tip1 = Util.GetGameObject(self.gameObject, "layout/Text1"):GetComponent("Text")
|
|
self.tip2 = Util.GetGameObject(self.gameObject, "layout/Text2"):GetComponent("Text")
|
|
self.addBtn = Util.GetGameObject(self.gameObject, "layout/addBtn")
|
|
self.allData = {}
|
|
self.itemsGrid = {} --item重复利用
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function XinJiangLaiXi:BindEvent()
|
|
Util.AddOnceClick(self.helpBtn, function()
|
|
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.XinJiangLaiXi, self.helpPosition.x, self.helpPosition.y)
|
|
end)
|
|
|
|
Util.AddOnceClick(self.addBtn, function()
|
|
--购买特权
|
|
if self.allData.buyTime > 0 then
|
|
local costId, finalNum, oriCostNum = ShopManager.calculateBuyCost(SHOP_TYPE.FUNCTION_SHOP, 10036, 1)
|
|
local itemName = ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name
|
|
MsgPanel.ShowTwo(string.format(Language[10627], finalNum, GetLanguageStrById(itemName)), nil, function()
|
|
--买东西
|
|
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP, 10036, 1, function()
|
|
PopupTipPanel.ShowTip(Language[10628])
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(2013, 1) --更新特权
|
|
self:Refresh()
|
|
end)
|
|
end)
|
|
else
|
|
PopupTipPanel.ShowTip(Language[10629])
|
|
end
|
|
end)
|
|
|
|
Util.AddOnceClick(self.fightBtn, function()
|
|
--开始战斗
|
|
if self.allData.fightTime > 0 then
|
|
-- TODO: 没有战斗结果校验
|
|
NetManager.NewGeneralAttackRequest(self.allData.activityId, 2012, function(msg)
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(2012, 1) --更新特权
|
|
local fightData = BattleManager.GetBattleServerData(msg, 0)
|
|
UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.XINJIANG, function()
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1)
|
|
end)
|
|
end)
|
|
else
|
|
--购买特权
|
|
if self.allData.buyTime > 0 then
|
|
local costId, finalNum, oriCostNum = ShopManager.calculateBuyCost(SHOP_TYPE.FUNCTION_SHOP, 10036, 1)
|
|
local itemName = ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name
|
|
MsgPanel.ShowTwo(string.format(Language[10627], finalNum, itemName), nil, function()
|
|
--买东西
|
|
ShopManager.RequestBuyShopItem(SHOP_TYPE.FUNCTION_SHOP, 10036, 1, function()
|
|
PopupTipPanel.ShowTip(Language[10628])
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(2013, 1) --更新特权
|
|
self:Refresh()
|
|
end)
|
|
end)
|
|
else
|
|
PopupTipPanel.ShowTip(Language[10630])
|
|
end
|
|
end
|
|
end)
|
|
|
|
Util.AddOnceClick(self.storeBtn, function()
|
|
JumpManager.GoJump(40019)
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function XinJiangLaiXi:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.FiveAMRefresh.ServerNotifyRefresh, self.Refresh, self)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function XinJiangLaiXi:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.FiveAMRefresh.ServerNotifyRefresh, self.Refresh, self)
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function XinJiangLaiXi:OnOpen(_activityConfig, _index, parent)
|
|
self.actConfig = _activityConfig
|
|
self.pageIndex = _index
|
|
self.parent = parent
|
|
end
|
|
|
|
function XinJiangLaiXi:OnSortingOrderChange()
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function XinJiangLaiXi:OnShow(_sortingOrder)
|
|
self.sortingOrder = _sortingOrder
|
|
self.gameObject:SetActive(true)
|
|
self.actId = self.actConfig.ActId
|
|
self.actType = self.actConfig.ActiveType > 0 and self.actConfig.ActiveType or self.actConfig.FunType
|
|
if self.actConfig.IfBack == 1 then
|
|
if self.actConfig.ActiveType > 0 then
|
|
local id = ActivityGiftManager.IsActivityTypeOpen(self.actConfig.ActiveType)
|
|
if id and id > 0 then
|
|
self.actId = id
|
|
local actConfig = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.ActivityGroups, "ActId",
|
|
globalActive[id].ShowArt, "PageType", self.actConfig.PageType, "ActiveType",
|
|
self.actConfig.ActiveType)
|
|
if not actConfig then
|
|
actConfig = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.ActivityGroups, "ActId", id,
|
|
"PageType", self.actConfig.PageType, "ActiveType", self.actConfig.ActiveType)
|
|
end
|
|
if actConfig then
|
|
self.actConfig = actConfig
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
self:Refresh()
|
|
end
|
|
|
|
function XinJiangLaiXi:Refresh()
|
|
CheckRedPointStatus(RedPointType.XinJiangLaiXi)
|
|
self.allData = DynamicActivityManager.XinJiangBuildData()
|
|
self:OnShowData()
|
|
self:SetTime()
|
|
end
|
|
|
|
function XinJiangLaiXi:OnShowData()
|
|
-- self.shop:SetActive(false)
|
|
if not self.itemsGrid then
|
|
self.itemsGrid = {}
|
|
end
|
|
for k, v in ipairs(self.itemsGrid) do
|
|
v.gameObject:SetActive(false)
|
|
end
|
|
|
|
for i = 1, #self.allData.reward do
|
|
if not self.itemsGrid[i] then
|
|
self.itemsGrid[i] = SubUIManager.Open(SubUIConfig.ItemView, self.scrollItem.transform)
|
|
end
|
|
self.itemsGrid[i].gameObject:SetActive(true)
|
|
self.itemsGrid[i]:OnOpen(false, self.allData.reward[i], 1, false, false, false, self.sortingOrder)
|
|
end
|
|
|
|
if self.LiveObj then
|
|
poolManager:UnLoadLive(self.LiveObj.name, self.LiveObj)
|
|
self.LiveObj = nil
|
|
end
|
|
local configData = ConfigManager.GetConfigData(ConfigName.NewHeroConfig, self.allData.activityId)
|
|
local HeroId = configData.HeroId
|
|
local imgName = GetResourcePath(ConfigManager.GetConfigData(ConfigName.HeroConfig, HeroId).Live)
|
|
self.LiveObj = poolManager:LoadLive(imgName, self.liveRoot.transform, Vector3.one * configData.Size[1],
|
|
Vector2.New(configData.Size[2], configData.Size[3]))
|
|
|
|
self.tip1.text = Language[10631] .. "<color=#6BC74D>" .. self.allData.fightTime .. "</color>"
|
|
self.tip2.text = Language[10632] .. "<color=#6BC74D>" .. self.allData.buyTime .. "</color>"
|
|
self.money.text = self.allData.money
|
|
end
|
|
|
|
function XinJiangLaiXi:SetTime()
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
local timeDown = self.allData.endTime - GetTimeStamp()
|
|
self.time.text = Language[10570] .. TimeToFelaxible(timeDown)
|
|
self.timer = Timer.New(function()
|
|
timeDown = timeDown - 1
|
|
if timeDown < 1 then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
self.parent:ClosePanel()
|
|
return
|
|
end
|
|
self.time.text = Language[10570] .. TimeToFelaxible(timeDown)
|
|
end, 1, -1, true)
|
|
self.timer:Start()
|
|
end
|
|
|
|
function XinJiangLaiXi:OnClose()
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
if self.shopView then
|
|
self.shopView = SubUIManager.Close(self.shopView)
|
|
self.shopView = nil
|
|
end
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function XinJiangLaiXi:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
if self.LiveObj then
|
|
poolManager:UnLoadLive(self.LiveObj.name, self.LiveObj)
|
|
self.LiveObj = nil
|
|
end
|
|
self.itemsGrid = {}
|
|
end
|
|
|
|
return XinJiangLaiXi
|