46f967a584
EN: 1.6.0.84 CN: 1.6.0.87 JP: 1.6.0.88 KR: 1.6.0.91
102 lines
3.7 KiB
Lua
102 lines
3.7 KiB
Lua
local ThrowGiftItemSelectCtrl = class("ThrowGiftItemSelectCtrl", BaseCtrl)
|
|
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
|
ThrowGiftItemSelectCtrl._mapNodeConfig = {
|
|
btnItemSelect = {
|
|
nCount = 2,
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Item"
|
|
},
|
|
btnItemSelectCtrl = {
|
|
sNodeName = "btnItemSelect",
|
|
nCount = 2,
|
|
sCtrlName = "Game.UI.Activity.ThrowGifts.ItemSelect.ThrowGiftItemSelectGridCtrl"
|
|
},
|
|
rtPos = {nCount = 2}
|
|
}
|
|
ThrowGiftItemSelectCtrl._mapEventConfig = {
|
|
ThrowGiftItemSelectConfirmClick = "OnEvent_ThrowGiftItemSelectConfirmClick"
|
|
}
|
|
ThrowGiftItemSelectCtrl._mapRedDotConfig = {}
|
|
function ThrowGiftItemSelectCtrl:Awake()
|
|
end
|
|
function ThrowGiftItemSelectCtrl:FadeIn()
|
|
end
|
|
function ThrowGiftItemSelectCtrl:FadeOut()
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OnEnable()
|
|
self.bSelected = false
|
|
self.curIdx = 0
|
|
self.tbOriginPos = {}
|
|
self.tbOriginPos[1] = self._mapNode.btnItemSelectCtrl[1].gameObject.transform.position
|
|
self.tbOriginPos[2] = self._mapNode.btnItemSelectCtrl[2].gameObject.transform.position
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OnDisable()
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OnDestroy()
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OnRelease()
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OpenPanel(tbItem, callback, curIdx)
|
|
self.curPosIdx = curIdx
|
|
self.gameObject:SetActive(true)
|
|
self.callback = callback
|
|
self.bSelected = false
|
|
self.curIdx = 0
|
|
self._mapNode.btnItemSelectCtrl[1]:Refresh(tbItem[1])
|
|
self._mapNode.btnItemSelectCtrl[2]:Refresh(tbItem[2])
|
|
self._mapNode.btnItemSelectCtrl[1]:SetSelect(false)
|
|
self._mapNode.btnItemSelectCtrl[2]:SetSelect(false)
|
|
self._mapNode.btnItemSelectCtrl[1].gameObject.transform.position = self.tbOriginPos[1]
|
|
self._mapNode.btnItemSelectCtrl[2].gameObject.transform.position = self.tbOriginPos[2]
|
|
self._mapNode.btnItemSelectCtrl[1].gameObject.transform.localEulerAngles = Vector3(0, 0, 0)
|
|
self._mapNode.btnItemSelectCtrl[2].gameObject.transform.localEulerAngles = Vector3(0, 0, 0)
|
|
WwiseAudioMgr:PostEvent("Mode_Present_intensify")
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OnBtnClick_Item(btn, nIdx)
|
|
WwiseAudioMgr:PostEvent("Mode_Present_intensify_choose")
|
|
if self.bSelected then
|
|
return
|
|
end
|
|
if self.curIdx == nIdx then
|
|
return
|
|
end
|
|
self._mapNode.btnItemSelectCtrl[1]:SetSelect(nIdx == 1)
|
|
self._mapNode.btnItemSelectCtrl[2]:SetSelect(nIdx == 2)
|
|
self.curIdx = nIdx
|
|
end
|
|
function ThrowGiftItemSelectCtrl:OnEvent_ThrowGiftItemSelectConfirmClick()
|
|
if self.bSelected then
|
|
return
|
|
end
|
|
if self.curIdx == 0 then
|
|
return
|
|
end
|
|
self.bSelected = true
|
|
self._mapNode.btnItemSelectCtrl[self.curIdx]:PlaySelectAnim()
|
|
WwiseAudioMgr:PostEvent("Mode_Present_intensify_ok")
|
|
local endPos = self._mapNode.rtPos[self.curPosIdx].transform.position
|
|
local beginPos = self._mapNode.btnItemSelectCtrl[self.curIdx].gameObject.transform.position
|
|
local controlPos = Vector3(3, 5, 0)
|
|
local wait = function()
|
|
local totalMoveTime = 0.3
|
|
local moveTime = 0
|
|
local normalizedTime = 0
|
|
while normalizedTime < 1 do
|
|
moveTime = moveTime + CS.UnityEngine.Time.unscaledDeltaTime
|
|
normalizedTime = moveTime / totalMoveTime
|
|
normalizedTime = normalizedTime <= 1 and normalizedTime or 1
|
|
local x, y, z = UTILS.GetBezierPointByT(beginPos, controlPos, endPos, normalizedTime)
|
|
local angleZ = 100 * normalizedTime * 2
|
|
self._mapNode.btnItemSelectCtrl[self.curIdx].gameObject.transform.localEulerAngles = Vector3(0, 0, angleZ)
|
|
self._mapNode.btnItemSelectCtrl[self.curIdx].gameObject.transform.position = Vector3(x, y, z)
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
end
|
|
if self.callback ~= nil and type(self.callback) == "function" then
|
|
self.callback(self.curIdx)
|
|
end
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
return ThrowGiftItemSelectCtrl
|