Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,550 @@
|
||||
local Avg_7_ChoiceCtrl = class("Avg_7_ChoiceCtrl", BaseCtrl)
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
||||
Avg_7_ChoiceCtrl._mapNodeConfig = {
|
||||
imgMask = {sComponentName = "Image"},
|
||||
canvasGroup = {
|
||||
sNodeName = "----root----",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
anim = {
|
||||
sNodeName = "----main_role_choice----",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
trMainRole = {sNodeName = "goMainRole", sComponentName = "Transform"},
|
||||
rubyTmp_Choice_OS = {
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
goM = {sNodeName = "--M--"},
|
||||
tbTMPLayout_M = {
|
||||
nCount = 4,
|
||||
sNodeName = "rubyTmp_Layout_M_",
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
tbRT_M = {
|
||||
nCount = 4,
|
||||
sNodeName = "anim_root_M_",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
tbCG_M = {
|
||||
nCount = 4,
|
||||
sNodeName = "anim_root_M_",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
tbBtn_M = {
|
||||
nCount = 4,
|
||||
sNodeName = "btn_M_",
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Choice"
|
||||
},
|
||||
tbTMP_M = {
|
||||
nCount = 4,
|
||||
sNodeName = "rubyTmp_M_",
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
goSelect_M = {
|
||||
nCount = 4,
|
||||
sNodeName = "goSelect_M_"
|
||||
},
|
||||
goR = {sNodeName = "--R--"},
|
||||
tbTMPLayout_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "rubyTmp_Layout_R_",
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
tbRT_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "anim_root_R_",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
tbCG_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "anim_root_R_",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
tbBtn_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "btn_R_",
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Choice"
|
||||
},
|
||||
tbGoSelected_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "goSelected_R_"
|
||||
},
|
||||
tbGoUnselected_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "goUnselected_R_"
|
||||
},
|
||||
tbTMP_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "rubyTmp_R_",
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
goSelect_R = {
|
||||
nCount = 4,
|
||||
sNodeName = "goSelect_R_"
|
||||
},
|
||||
goL = {sNodeName = "--L--"},
|
||||
tbTMPLayout_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "rubyTmp_Layout_L_",
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
tbRT_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "anim_root_L_",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
tbCG_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "anim_root_L_",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
tbBtn_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "btn_L_",
|
||||
sComponentName = "NaviButton",
|
||||
callback = "OnBtnClick_Choice"
|
||||
},
|
||||
tbGoSelected_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "goSelected_L_"
|
||||
},
|
||||
tbGoUnselected_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "goUnselected_L_"
|
||||
},
|
||||
tbTMP_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "rubyTmp_L_",
|
||||
sComponentName = "RubyTextMeshProUGUI"
|
||||
},
|
||||
goSelect_L = {
|
||||
nCount = 4,
|
||||
sNodeName = "goSelect_L_"
|
||||
}
|
||||
}
|
||||
Avg_7_ChoiceCtrl._mapEventConfig = {
|
||||
GamepadUIChange = "OnEvent_GamepadUIChange",
|
||||
[EventId.AvgSpeedUp] = "OnEvent_AvgSpeedUp"
|
||||
}
|
||||
function Avg_7_ChoiceCtrl:Awake()
|
||||
self.tbChoiceData = {}
|
||||
self.tbTotalChoiceCount = {}
|
||||
self.sCurChoiceGroupId = nil
|
||||
self.nType = nil
|
||||
NovaAPI.SetImageColor(self._mapNode.imgMask, Color(0, 0, 0, 0))
|
||||
NovaAPI.SetCanvasGroupInteractable(self._mapNode.canvasGroup, false)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.canvasGroup, false)
|
||||
self._mapNode.canvasGroup.gameObject:SetActive(false)
|
||||
for i = 1, 4 do
|
||||
self._mapNode.tbTMPLayout_M[i].gameObject:SetActive(false)
|
||||
self._mapNode.tbTMPLayout_R[i].gameObject:SetActive(false)
|
||||
self._mapNode.tbTMPLayout_L[i].gameObject:SetActive(false)
|
||||
end
|
||||
self._mapNode.goM:SetActive(false)
|
||||
self._mapNode.goR:SetActive(false)
|
||||
self._mapNode.goL:SetActive(false)
|
||||
self.tbLogData = {}
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:OnEnable()
|
||||
self:AddGamepadUINode()
|
||||
self:BindSelect()
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:OnDisable()
|
||||
self:UnbindSelect()
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:_SetMask(bVisible)
|
||||
NovaAPI.ImageDoFade(self._mapNode.imgMask, bVisible == true and 0.5 or 0, 0.2, true)
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:_Set(nIndex, bVisible, bSelected, sContent, nExtraDelay)
|
||||
local tbTxtLayout, tbRT, tbCG, tbTxt
|
||||
if self.nType == 0 then
|
||||
tbTxtLayout = self._mapNode.tbTMPLayout_M
|
||||
tbRT = self._mapNode.tbRT_M
|
||||
tbCG = self._mapNode.tbCG_M
|
||||
tbTxt = self._mapNode.tbTMP_M
|
||||
elseif self.nType == 1 then
|
||||
tbTxtLayout = self._mapNode.tbTMPLayout_R
|
||||
tbRT = self._mapNode.tbRT_R
|
||||
tbCG = self._mapNode.tbCG_R
|
||||
tbTxt = self._mapNode.tbTMP_R
|
||||
elseif self.nType == 2 then
|
||||
tbTxtLayout = self._mapNode.tbTMPLayout_L
|
||||
tbRT = self._mapNode.tbRT_L
|
||||
tbCG = self._mapNode.tbCG_L
|
||||
tbTxt = self._mapNode.tbTMP_L
|
||||
end
|
||||
local txtLayout = tbTxtLayout[nIndex]
|
||||
local rt = tbRT[nIndex]
|
||||
local canvasGroup = tbCG[nIndex]
|
||||
local txt = tbTxt[nIndex]
|
||||
local goChoice = txtLayout.gameObject
|
||||
goChoice:SetActive(bVisible)
|
||||
self:SetSelectBtnObj(nIndex, bVisible, bSelected)
|
||||
if bVisible == false then
|
||||
return
|
||||
end
|
||||
NovaAPI.SetCanvasGroupAlpha(canvasGroup, 0)
|
||||
local nOffsetX = 0
|
||||
if self.nType == 2 then
|
||||
nOffsetX = -72 * (nIndex - 1)
|
||||
end
|
||||
rt.anchoredPosition = Vector2(500 + nOffsetX, 0)
|
||||
rt.localScale = Vector3(0.5, 0.5, 1)
|
||||
if self.nType == 1 then
|
||||
self._mapNode.tbGoSelected_R[nIndex]:SetActive(bSelected == true)
|
||||
self._mapNode.tbGoUnselected_R[nIndex]:SetActive(bSelected == false)
|
||||
elseif self.nType == 2 then
|
||||
self._mapNode.tbGoSelected_L[nIndex]:SetActive(bSelected == true)
|
||||
self._mapNode.tbGoUnselected_L[nIndex]:SetActive(bSelected == false)
|
||||
end
|
||||
local sColor = "#264278"
|
||||
if bSelected == true then
|
||||
sColor = "#6E8297"
|
||||
end
|
||||
NovaAPI.SetTextColor_RubyTMP(txt, sColor)
|
||||
sContent = ProcAvgTextContent(sContent, self._panel.nCurLanguageIdx)
|
||||
NovaAPI.SetText_RubyTMP(txtLayout, sContent)
|
||||
NovaAPI.SetText_RubyTMP(txt, sContent)
|
||||
local nDelay = nIndex * 0.03
|
||||
if nExtraDelay ~= nil then
|
||||
nDelay = nDelay + nExtraDelay
|
||||
end
|
||||
canvasGroup:DOFade(1, 0.2):SetUpdate(true):SetDelay(nDelay)
|
||||
rt:DOAnchorPosX(0 + nOffsetX, 0.2):SetUpdate(true):SetDelay(nDelay)
|
||||
local sequence = DOTween.Sequence()
|
||||
sequence:AppendInterval(nDelay)
|
||||
sequence:Append(rt:DOScale(1.03, 0.2):SetUpdate(true):SetEase(Ease.OutQuint))
|
||||
sequence:Append(rt:DOScale(0.99, 0.1):SetUpdate(true):SetEase(Ease.InCubic))
|
||||
sequence:Append(rt:DOScale(1, 0.1):SetUpdate(true))
|
||||
sequence:SetUpdate(true)
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:OnBtnClick_Choice(uiBtn)
|
||||
self:ClearSelect()
|
||||
local nIndex
|
||||
if self.nType == 0 then
|
||||
nIndex = table.indexof(self._mapNode.tbBtn_M, uiBtn)
|
||||
elseif self.nType == 1 then
|
||||
nIndex = table.indexof(self._mapNode.tbBtn_R, uiBtn)
|
||||
elseif self.nType == 2 then
|
||||
nIndex = table.indexof(self._mapNode.tbBtn_L, uiBtn)
|
||||
end
|
||||
if nIndex == nil then
|
||||
return
|
||||
end
|
||||
if 0 >= table.indexof(self.tbChoiceData[self.sCurChoiceGroupId], nIndex) then
|
||||
table.insert(self.tbChoiceData[self.sCurChoiceGroupId], nIndex)
|
||||
end
|
||||
local tbTxtLayout, tbRT, tbCG, tbTxt
|
||||
if self.nType == 0 then
|
||||
tbTxtLayout = self._mapNode.tbTMPLayout_M
|
||||
tbRT = self._mapNode.tbRT_M
|
||||
tbCG = self._mapNode.tbCG_M
|
||||
tbTxt = self._mapNode.tbTMP_M
|
||||
elseif self.nType == 1 then
|
||||
tbTxtLayout = self._mapNode.tbTMPLayout_R
|
||||
tbRT = self._mapNode.tbRT_R
|
||||
tbCG = self._mapNode.tbCG_R
|
||||
tbTxt = self._mapNode.tbTMP_R
|
||||
elseif self.nType == 2 then
|
||||
tbTxtLayout = self._mapNode.tbTMPLayout_L
|
||||
tbRT = self._mapNode.tbRT_L
|
||||
tbCG = self._mapNode.tbCG_L
|
||||
tbTxt = self._mapNode.tbTMP_L
|
||||
end
|
||||
for i = 1, 4 do
|
||||
local goChoice = tbTxtLayout[i].gameObject
|
||||
local rt = tbRT[i]
|
||||
local canvasGroup = tbCG[i]
|
||||
if goChoice.activeSelf == true then
|
||||
if i == nIndex then
|
||||
canvasGroup:DOFade(0, 0.2):SetUpdate(true):SetDelay(0.2)
|
||||
rt:DOScale(1.1, 0.2):SetUpdate(true):SetDelay(0.1):SetEase(Ease.OutQuart)
|
||||
else
|
||||
canvasGroup:DOFade(0, 0.2):SetUpdate(true):SetDelay(0.1)
|
||||
rt:DOScale(0.3, 0.2):SetUpdate(true):SetDelay(0.1):SetEase(Ease.InQuart)
|
||||
end
|
||||
end
|
||||
end
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
NovaAPI.SetCanvasGroupInteractable(self._mapNode.canvasGroup, false)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.canvasGroup, false)
|
||||
self:AddTimer(1, 0.4, "_RunNextCmd", true, true, true, nIndex)
|
||||
self:_SetMask(false)
|
||||
local sReplyContent = NovaAPI.GetText_RubyTMP(tbTxt[nIndex])
|
||||
if self.nType == 1 then
|
||||
EventManager.Hit(EventId.AvgChoiceToReplyPhoneMessage, sReplyContent)
|
||||
end
|
||||
if self.bShowMainRole == true then
|
||||
self._mapNode.anim:SetTrigger("tOut")
|
||||
end
|
||||
WwiseAudioMgr:PlaySound("ui_choice_click")
|
||||
self.tbLogData.nType = AllEnum.AvgLogType.Choice
|
||||
self.tbLogData.sAvgId = nil
|
||||
self.tbLogData.sContent = sReplyContent
|
||||
self.tbLogData.sVoice = nil
|
||||
EventManager.Hit(EventId.AvgMarkLog, self.tbLogData)
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:_RunNextCmd(timer, nIndex)
|
||||
if self:GetPanelId() == PanelId.AvgST then
|
||||
if self.bShowMainRole == true then
|
||||
EventManager.Hit(EventId.AvgChoiceMainRoleOS_Out)
|
||||
end
|
||||
self.bShowMainRole = nil
|
||||
self._mapNode.canvasGroup.gameObject:SetActive(false)
|
||||
self._panel:SetChoiceJumpTo(self.sCurChoiceGroupId, nIndex)
|
||||
end
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:OnEvent_AvgSpeedUp(nRate)
|
||||
if self:GetPanelId() ~= PanelId.AvgST then
|
||||
return
|
||||
end
|
||||
self:OnEvent_AvgSpeedUp_Timer(nRate)
|
||||
NovaAPI.SetAnimatorSpeed(self._mapNode.anim, nRate)
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SetChoiceBegin(tbParam)
|
||||
EventManager.Hit(EventId.AvgAllMenuBtnEnable, false)
|
||||
local sChoiceGroupId = tbParam[1]
|
||||
local bMaskVisible = tbParam[2] == 0
|
||||
local tbVisibleType = tbParam[3]
|
||||
local tbContent_CN_F = tbParam[4]
|
||||
local tbContent_CN_M = tbParam[11]
|
||||
local tbContent_JP_F = tbParam[13] or {}
|
||||
local tbContent_JP_M = tbParam[14] or {}
|
||||
local tbContent = {}
|
||||
local _sContent
|
||||
for i = 1, 4 do
|
||||
if self._panel.sTxtLan == AllEnum.Language.CN then
|
||||
_sContent = tbContent_CN_F[i]
|
||||
if self._panel.sVoLan == AllEnum.Language.JP and type(tbContent_JP_F[i]) == "string" and tbContent_JP_F[i] ~= "" then
|
||||
_sContent = tbContent_JP_F[i]
|
||||
end
|
||||
table.insert(tbContent, _sContent)
|
||||
else
|
||||
_sContent = tbContent_JP_F[i]
|
||||
if self._panel.bIsPlayerMale == true and type(tbContent_JP_M[i]) == "string" and tbContent_JP_M[i] ~= "" then
|
||||
_sContent = tbContent_JP_M[i]
|
||||
end
|
||||
if self._panel.sVoLan == AllEnum.Language.CN then
|
||||
if type(tbContent_CN_F[i]) == "string" and tbContent_CN_F[i] ~= "" then
|
||||
_sContent = tbContent_CN_F[i]
|
||||
end
|
||||
if self._panel.bIsPlayerMale == true and type(tbContent_CN_M[i]) == "string" and tbContent_CN_M[i] ~= "" then
|
||||
_sContent = tbContent_CN_M[i]
|
||||
end
|
||||
end
|
||||
table.insert(tbContent, _sContent)
|
||||
end
|
||||
end
|
||||
local nType = tbParam[5]
|
||||
self.bShowMainRole = tbParam[6] == 1
|
||||
local sBody = tbParam[7]
|
||||
local sFace = tbParam[8]
|
||||
local sEmoji = tbParam[9]
|
||||
local sContentOS = tbParam[10]
|
||||
self.sCurChoiceGroupId = sChoiceGroupId
|
||||
self.nType = nType
|
||||
self._mapNode.goM:SetActive(self.nType == 0)
|
||||
self._mapNode.goR:SetActive(self.nType == 1)
|
||||
self._mapNode.goL:SetActive(self.nType == 2)
|
||||
self:_SetMask(bMaskVisible)
|
||||
self._mapNode.canvasGroup.gameObject:SetActive(true)
|
||||
NovaAPI.SetCanvasGroupInteractable(self._mapNode.canvasGroup, true)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.canvasGroup, true)
|
||||
self:ResetGamepadUI()
|
||||
if self.tbChoiceData[sChoiceGroupId] == nil then
|
||||
self.tbChoiceData[sChoiceGroupId] = {}
|
||||
end
|
||||
local tbData = self.tbChoiceData[sChoiceGroupId]
|
||||
local nBlockTime = 0.4
|
||||
local nChoiceCount = 0
|
||||
local nExtraDelay
|
||||
if self.bShowMainRole == true then
|
||||
nExtraDelay = 0.2
|
||||
end
|
||||
for i = 1, 4 do
|
||||
local bVisible = true
|
||||
local sContent = tbContent[i]
|
||||
if sContent == "" then
|
||||
bVisible = false
|
||||
else
|
||||
nChoiceCount = nChoiceCount + 1
|
||||
local _type = tbVisibleType[i]
|
||||
if _type == 0 then
|
||||
bVisible = true
|
||||
elseif _type == 1 then
|
||||
bVisible = 0 < table.indexof(tbData, i - 1)
|
||||
elseif _type == 2 then
|
||||
for j = 1, 4 do
|
||||
if j ~= i and 0 >= table.indexof(tbData, j) then
|
||||
bVisible = false
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
self:_Set(i, bVisible, 0 < table.indexof(tbData, i), sContent, nExtraDelay)
|
||||
if bVisible == true then
|
||||
nBlockTime = nBlockTime + 0.03
|
||||
end
|
||||
end
|
||||
GamepadUIManager.SetNavigation(self.tbSelectBtnObj, false)
|
||||
self:SelectChoiceBtn()
|
||||
self.tbTotalChoiceCount[sChoiceGroupId] = nChoiceCount
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, nBlockTime)
|
||||
if self.bShowMainRole == true then
|
||||
sContentOS = ProcAvgTextContent(sContentOS, self._panel.nCurLanguageIdx)
|
||||
NovaAPI.SetText_RubyTMP(self._mapNode.rubyTmp_Choice_OS, sContentOS)
|
||||
EventManager.Hit(EventId.AvgChoiceMainRoleOS_In, self._mapNode.trMainRole, sBody, sFace, sEmoji)
|
||||
self._mapNode.anim:SetTrigger("tIn")
|
||||
end
|
||||
NovaAPI.SetScreenSleepTimeout(false)
|
||||
return -1
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SetChoiceJumpTo(tbParam)
|
||||
EventManager.Hit(EventId.AvgAllMenuBtnEnable, true)
|
||||
EventManager.Hit("AvgCheckAutoOnOff")
|
||||
return 0
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SetChoiceRollback(tbParam)
|
||||
local sGroupId = tbParam[1]
|
||||
local nRollBackType = tbParam[2]
|
||||
if nRollBackType == 1 then
|
||||
local tbData = self.tbChoiceData[sGroupId]
|
||||
if #tbData >= self.tbTotalChoiceCount[sGroupId] then
|
||||
self._panel:SetChoiceRollover(sGroupId)
|
||||
else
|
||||
self._panel:SetChoiceRollback(sGroupId)
|
||||
end
|
||||
else
|
||||
self._panel:SetChoiceRollback(sGroupId)
|
||||
end
|
||||
return 0
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SetChoiceRollover(tbParam)
|
||||
self._panel:SetChoiceRollover(tbParam[1])
|
||||
return 0
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SetChoiceEnd(tbParam)
|
||||
return 0
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:RestoreAll(bActive)
|
||||
self.gameObject:SetActive(bActive)
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:AddGamepadUINode()
|
||||
GamepadUIManager.AddGamepadUINode("AVG", self:GetGamepadUINode())
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:BindSelect()
|
||||
self.handlerBtn_M, self.handlerBtn_R, self.handlerBtn_L = {}, {}, {}
|
||||
for k, v in ipairs(self._mapNode.tbBtn_M) do
|
||||
self.handlerBtn_M[k] = ui_handler(self, self.OnBtnSelect_Choice, v, k)
|
||||
v.onSelect:AddListener(self.handlerBtn_M[k])
|
||||
end
|
||||
for k, v in ipairs(self._mapNode.tbBtn_R) do
|
||||
self.handlerBtn_R[k] = ui_handler(self, self.OnBtnSelect_Choice, v, k)
|
||||
v.onSelect:AddListener(self.handlerBtn_R[k])
|
||||
end
|
||||
for k, v in ipairs(self._mapNode.tbBtn_L) do
|
||||
self.handlerBtn_L[k] = ui_handler(self, self.OnBtnSelect_Choice, v, k)
|
||||
v.onSelect:AddListener(self.handlerBtn_L[k])
|
||||
end
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:UnbindSelect()
|
||||
for k, v in ipairs(self._mapNode.tbBtn_M) do
|
||||
v.onSelect:RemoveListener(self.handlerBtn_M[k])
|
||||
end
|
||||
for k, v in ipairs(self._mapNode.tbBtn_R) do
|
||||
v.onSelect:RemoveListener(self.handlerBtn_R[k])
|
||||
end
|
||||
for k, v in ipairs(self._mapNode.tbBtn_L) do
|
||||
v.onSelect:RemoveListener(self.handlerBtn_L[k])
|
||||
end
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:GetSelectList()
|
||||
local tbSelect
|
||||
if self.nType == 0 then
|
||||
tbSelect = self._mapNode.goSelect_M
|
||||
elseif self.nType == 1 then
|
||||
tbSelect = self._mapNode.goSelect_R
|
||||
elseif self.nType == 2 then
|
||||
tbSelect = self._mapNode.goSelect_L
|
||||
end
|
||||
return tbSelect
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:GetBtnList()
|
||||
local tbBtn
|
||||
if self.nType == 0 then
|
||||
tbBtn = self._mapNode.tbBtn_M
|
||||
elseif self.nType == 1 then
|
||||
tbBtn = self._mapNode.tbBtn_R
|
||||
elseif self.nType == 2 then
|
||||
tbBtn = self._mapNode.tbBtn_L
|
||||
end
|
||||
return tbBtn
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:OnBtnSelect_Choice(btn, nIndex)
|
||||
if self.nSelectIndex == nIndex then
|
||||
return
|
||||
end
|
||||
local tbSelect = self:GetSelectList()
|
||||
for k, v in ipairs(tbSelect) do
|
||||
if k == nIndex then
|
||||
if GamepadUIManager.GetCurUIType() ~= AllEnum.GamepadUIType.Other and GamepadUIManager.GetCurUIType() ~= AllEnum.GamepadUIType.Mouse then
|
||||
v:SetActive(true)
|
||||
else
|
||||
v:SetActive(false)
|
||||
end
|
||||
elseif k == self.nSelectIndex then
|
||||
v:SetActive(false)
|
||||
end
|
||||
end
|
||||
self.nSelectIndex = nIndex
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SetSelectBtnObj(nIndex, bVisible, bSelected)
|
||||
if bVisible then
|
||||
if next(self.tbSelectBtnObj) == nil then
|
||||
self.nSelectIndex = nIndex
|
||||
end
|
||||
local tbBtn = self:GetBtnList()
|
||||
table.insert(self.tbSelectBtnObj, tbBtn[nIndex])
|
||||
end
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:SelectChoiceBtn()
|
||||
local tbSelect = self:GetSelectList()
|
||||
local tbBtn = self:GetBtnList()
|
||||
local nUIType = GamepadUIManager.GetCurUIType()
|
||||
if nUIType ~= AllEnum.GamepadUIType.Other and nUIType ~= AllEnum.GamepadUIType.Mouse then
|
||||
if self.nSelectIndex and self.nSelectIndex ~= 0 then
|
||||
tbSelect[self.nSelectIndex]:SetActive(true)
|
||||
GamepadUIManager.SetSelectedUI(tbBtn[self.nSelectIndex].gameObject)
|
||||
end
|
||||
else
|
||||
for k, _ in ipairs(tbBtn) do
|
||||
tbSelect[k]:SetActive(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:ResetGamepadUI()
|
||||
self._panel.sCurGamepadUI = "Choice"
|
||||
GamepadUIManager.ClearSelectedUI()
|
||||
self.tbSelectBtnObj = {}
|
||||
self.nSelectIndex = 0
|
||||
local tbSelect = self:GetSelectList()
|
||||
for _, v in ipairs(tbSelect) do
|
||||
v:SetActive(false)
|
||||
end
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:ClearSelect()
|
||||
GamepadUIManager.ClearSelectedUI()
|
||||
self.nSelectIndex = 0
|
||||
self._panel.sCurGamepadUI = nil
|
||||
end
|
||||
function Avg_7_ChoiceCtrl:OnEvent_GamepadUIChange(sName, nBeforeType, nAfterType)
|
||||
if sName ~= "AVG" or self._panel.sCurGamepadUI ~= "Choice" then
|
||||
return
|
||||
end
|
||||
self:SelectChoiceBtn()
|
||||
end
|
||||
return Avg_7_ChoiceCtrl
|
||||
Reference in New Issue
Block a user