248 lines
8.5 KiB
Plaintext
248 lines
8.5 KiB
Plaintext
-- 超值首充
|
|
require("MarketingActBase")
|
|
require("LuaUtil")
|
|
|
|
--超值首冲活动
|
|
--注意:本活动特殊,需要显示两个模型,所以将协议中的 “序列帧ID” 当做第二个模型ID
|
|
SuperBenefitFirstRecharge = MarketingActBase:new()
|
|
|
|
local UIName = "SuperBenefitFirstRecharge"
|
|
local ActId = 205
|
|
local _SelecNodeId = 0 --默认0
|
|
|
|
function SuperBenefitFirstRecharge.Awake( ... )
|
|
|
|
if CS.MarketingActsRoot.Instance() ~= nil then
|
|
local allComponents = CS.MarketingActsRoot.Instance()._ActContainer_L:GetComponentsInChildren(typeof(CS.MarketingMainMenu))
|
|
if allComponents[0].MyActState.actID == 15 then
|
|
ActId = 205
|
|
else
|
|
ActId = 2000
|
|
end
|
|
|
|
end
|
|
|
|
_LeftStuff = _LeftStuff:GetComponent("Image")
|
|
_RightStuff = _RightStuff:GetComponent("Image")
|
|
|
|
_CloseBtn = _CloseBtn:GetComponent("Button")
|
|
_CloseBtn.onClick:RemoveAllListeners()
|
|
_CloseBtn.onClick:AddListener(SuperBenefitFirstRecharge.OnCloseBtn)
|
|
|
|
_ChargeBtn = _ChargeBtn:GetComponent("Button")
|
|
_ChargeBtn.onClick:RemoveAllListeners()
|
|
_ChargeBtn.onClick:AddListener(SuperBenefitFirstRecharge.OnChargeBtn)
|
|
|
|
_GetBtn = _GetBtn:GetComponent("Button")
|
|
_GetBtn.onClick:RemoveAllListeners()
|
|
_GetBtn.onClick:AddListener(SuperBenefitFirstRecharge.OnGetBtn)
|
|
_WeaponModelCamera = _WeaponModelCamera:GetComponent(typeof(CS.UICameraTexture))
|
|
_RideModelCamera = _RideModelCamera:GetComponent(typeof(CS.UICameraTexture))
|
|
|
|
_RewContainer = _RewContainer:GetComponent(typeof(CS.UIContainerBase))
|
|
_MenuItemContainer = _MenuItemContainer:GetComponent(typeof(CS.UIContainerBase))
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.OnEnable()
|
|
SuperBenefitFirstRecharge.AskForInfo()
|
|
end
|
|
|
|
--请求当前页面信息及状态
|
|
function SuperBenefitFirstRecharge.AskForInfo()
|
|
print("--------------------------req AskForInfo--------------------------")
|
|
require("LuaDistributesMarketingActAwardPageReq")
|
|
local req = {actID = ActId, updateOrInit = 2}
|
|
LuaDistributesMarketingActAwardPageReq.SendPacket(req)
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.OnMenuItemClick(nodeId)
|
|
print("OnMenuItem click node id : " .. nodeId)
|
|
_SelecNodeId = nodeId
|
|
_MenuItemContainer:ForeachActiveBaseItemL2L(SuperBenefitFirstRecharge.RefreshMenuItemState)
|
|
SuperBenefitFirstRecharge.InitPage()
|
|
end
|
|
|
|
local weaponModeId = -1
|
|
local rideModelId = -1
|
|
function SuperBenefitFirstRecharge.InitPage()
|
|
if PacketData == nil then
|
|
print("PacketData is nil")
|
|
return
|
|
end
|
|
|
|
local nodePacket = SuperBenefitFirstRecharge.GetNodeSubPacket()
|
|
|
|
--初始化奖励Item
|
|
local rewDataIdList = {}
|
|
for rewIndex = 1, #nodePacket.awardItems do
|
|
rewDataIdList[rewIndex] = nodePacket.awardItems[rewIndex]
|
|
end
|
|
_RewContainer:InitContentItemL2L(rewDataIdList)
|
|
|
|
--设置描述Icon
|
|
CS.LoadAssetBundle.Instance:SetImageSprite(_LeftStuff,nodePacket.iconPath[1])
|
|
CS.LoadAssetBundle.Instance:SetImageSprite(_RightStuff,nodePacket.iconPath[2])
|
|
|
|
|
|
--刷新模型
|
|
weaponModeId = nodePacket.modleID
|
|
local weaponModel = CS.GCGame.Table.TableManager.GetCharModelByID(nodePacket.modleID, 0)
|
|
if weaponModel then
|
|
_WeaponModelCamera.gameObject:SetActive(true)
|
|
_WeaponModelCamera:InitModelPath(weaponModel.ResPath, weaponModel, CS.LoadAssetBundle.BUNDLE_PATH_MODEL, true)
|
|
else
|
|
_WeaponModelCamera.gameObject:SetActive(false)
|
|
end
|
|
|
|
rideModelId = nodePacket.SequenceID
|
|
local rideModel = CS.GCGame.Table.TableManager.GetCharModelByID(nodePacket.SequenceID, 0)
|
|
if rideModel then
|
|
_RideModelCamera.gameObject:SetActive(true)
|
|
_RideModelCamera:InitModelPath(rideModel.ResPath, rideModel, CS.LoadAssetBundle.BUNDLE_PATH_MODEL, true)
|
|
else
|
|
_RideModelCamera.gameObject:SetActive(false)
|
|
end
|
|
|
|
--刷新充值 领取按钮状态
|
|
SuperBenefitFirstRecharge.RefreshOperationBtnState()
|
|
end
|
|
|
|
local _CurPageRewState = 1
|
|
function SuperBenefitFirstRecharge.RefreshOperationBtnState()
|
|
local firstPageRewState = PacketData.awardTags[1].state
|
|
local nodePacket = SuperBenefitFirstRecharge.GetNodeSubPacket()
|
|
_CurPageRewState = nodePacket.state
|
|
-- _Geted.gameObject:SetActive(_CurPageRewState == 2)
|
|
-- _GetBtn.gameObject:SetActive(_CurPageRewState == 1)
|
|
-- _ChargeBtn.gameObject:SetActive(_CurPageRewState == 0)
|
|
if _SelecNodeId == 0 then
|
|
_Geted.gameObject:SetActive(firstPageRewState == 2)
|
|
_GetBtn.gameObject:SetActive(firstPageRewState == 1)
|
|
_ChargeBtn.gameObject:SetActive(firstPageRewState == 0)
|
|
else
|
|
if firstPageRewState == 1 or firstPageRewState == 2 then
|
|
if _CurPageRewState ~= 2 then
|
|
_Geted.gameObject:SetActive(false)
|
|
_GetBtn.gameObject:SetActive(true)
|
|
_ChargeBtn.gameObject:SetActive(false)
|
|
else
|
|
_Geted.gameObject:SetActive(true)
|
|
_GetBtn.gameObject:SetActive(false)
|
|
_ChargeBtn.gameObject:SetActive(false)
|
|
end
|
|
else
|
|
_Geted.gameObject:SetActive(false)
|
|
_GetBtn.gameObject:SetActive(false)
|
|
_ChargeBtn.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.GetNodeSubPacket()
|
|
for index = 1, #PacketData.awardTags do
|
|
if PacketData.awardTags[index].tagID == _SelecNodeId then
|
|
return PacketData.awardTags[index]
|
|
end
|
|
end
|
|
|
|
print("Can't find node id : " .. _SelecNodeId)
|
|
return nil
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.RefreshMenuItemState(luaMenuItemBase)
|
|
local nodeId = luaMenuItemBase:GetValue("menuNodeId")
|
|
luaMenuItemBase:CallScriptFuncAtPath("ShowMark", nodeId == _SelecNodeId)
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.OnCloseBtn()
|
|
isFirstOpen = true
|
|
LuaUIMan:CloseUI(UIName)
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.OnChargeBtn()
|
|
SuperBenefitFirstRecharge.OnCloseBtn()
|
|
CS.YuanBaoShopLogic.OpenChargePage()
|
|
end
|
|
|
|
function SuperBenefitFirstRecharge.OnGetBtn()
|
|
|
|
if _CurPageRewState == 0 then
|
|
CS.GUIData.AddNotifyData(CS.GCGame.Table.StrDictionary.GetClientDictionaryString("#{62938}", _SelecNodeId + 1))
|
|
return
|
|
end
|
|
|
|
require ("LuaDistributesMarketingActAwardPageGetAward")
|
|
local req = {actID = ActId, tagID = _SelecNodeId}
|
|
LuaDistributesMarketingActAwardPageGetAward.SendPacket(req)
|
|
end
|
|
|
|
PacketData = nil
|
|
local isFirstOpen = true
|
|
function SuperBenefitFirstRecharge.MarketingActPageAwardRetDel(packet)
|
|
print("---------------------Receive paket---------------------")
|
|
PacketData = packet
|
|
|
|
if packet.actID ~= ActId then
|
|
print("actID != ActID")
|
|
return
|
|
end
|
|
|
|
local NodeIdList = {}
|
|
local hasFindCanSelect = false
|
|
local needSelectNodeId
|
|
for index = 1, #packet.awardTags do
|
|
NodeIdList[index] = packet.awardTags[index].tagID
|
|
if not hasFindCanSelect and packet.awardTags[index].state == 1 then
|
|
hasFindCanSelect = true
|
|
needSelectNodeId = packet.awardTags[index].tagID
|
|
end
|
|
end
|
|
if not hasFindCanSelect then
|
|
needSelectNodeId = NodeIdList[1]
|
|
end
|
|
|
|
--刷新MenuItemContainer
|
|
_MenuItemContainer:InitContentItemL2L(NodeIdList)
|
|
if isFirstOpen then
|
|
isFirstOpen = false
|
|
|
|
SuperBenefitFirstRecharge.OnMenuItemClick(needSelectNodeId)
|
|
end
|
|
end
|
|
|
|
|
|
function SuperBenefitFirstRecharge.OnDisable()
|
|
isFirstOpen = true
|
|
if CS.MarketingActsRoot.Instance() then
|
|
CS.MarketingActsRoot.Instance():ClearShowingWin(ActID)
|
|
end
|
|
end
|
|
|
|
--LuaDistributesMarketingActAwardPageGetAwardRet
|
|
--,,onpay,648,8
|
|
function SuperBenefitFirstRecharge.MarketingActPageGetAwardRet(packet)
|
|
if packet.tagID == 0 and _SelecNodeId == 0 then
|
|
_Geted.gameObject:SetActive(packet.btnState == 2)
|
|
_GetBtn.gameObject:SetActive(packet.btnState == 1)
|
|
_ChargeBtn.gameObject:SetActive(packet.btnState == 0)
|
|
else
|
|
if packet.btnState == 2 then
|
|
_Geted.gameObject:SetActive(packet.btnState == 2)
|
|
_GetBtn.gameObject:SetActive(packet.btnState == 1)
|
|
_ChargeBtn.gameObject:SetActive(packet.btnState == 0)
|
|
else
|
|
local firstPageRewState = PacketData.awardTags[1].state
|
|
if firstPageRewState ~= 0 then
|
|
_Geted.gameObject:SetActive(true)
|
|
_GetBtn.gameObject:SetActive(false)
|
|
_ChargeBtn.gameObject:SetActive(false)
|
|
else
|
|
_Geted.gameObject:SetActive(false)
|
|
_GetBtn.gameObject:SetActive(false)
|
|
_ChargeBtn.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|