eafd8f4088
EN: 1.9.0.107 CN: 1.9.0.108 JP: 1.9.0.112 KR: 1.9.0.112
116 lines
4.2 KiB
Lua
116 lines
4.2 KiB
Lua
local DatingLandmarkCtrl = class("DatingLandmarkCtrl", BaseCtrl)
|
|
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
|
local LocalSettingData = require("GameCore.Data.LocalSettingData")
|
|
DatingLandmarkCtrl._mapNodeConfig = {
|
|
goBlur = {},
|
|
canvasBlur = {sNodeName = "goBlur", sComponentName = "Canvas"},
|
|
trRoot = {
|
|
sNodeName = "----Actor2D_L2DInUI----",
|
|
sComponentName = "Transform"
|
|
},
|
|
trActor2D_PNG = {
|
|
sNodeName = "----Actor2D_PNG----",
|
|
sComponentName = "Transform"
|
|
},
|
|
SlipInOutAnim = {sComponentName = "Animator"},
|
|
goContent = {
|
|
sNodeName = "----SafeAreaRoot----"
|
|
},
|
|
txtTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Dating_Select_Landmark_Title"
|
|
},
|
|
goLandMarkItem = {nCount = 3},
|
|
btnGoto = {
|
|
nCount = 3,
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Goto"
|
|
},
|
|
txtBtnGoto = {
|
|
nCount = 3,
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Dating_Select_Landmark_Btn"
|
|
},
|
|
btnBack = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Back"
|
|
}
|
|
}
|
|
DatingLandmarkCtrl._mapEventConfig = {
|
|
[EventId.TransAnimInClear] = "OnEvent_TransAnimInClear"
|
|
}
|
|
function DatingLandmarkCtrl:SetLandmarkList()
|
|
self.tbLandmark = PlayerData.Dating:GetRandomLandmark()
|
|
for k, v in ipairs(self._mapNode.goLandMarkItem) do
|
|
v.gameObject:SetActive(self.tbLandmark[k] ~= nil)
|
|
if self.tbLandmark[k] ~= nil then
|
|
self:SetLandmarkItem(self.tbLandmark[k], v)
|
|
end
|
|
end
|
|
end
|
|
function DatingLandmarkCtrl:SetLandmarkItem(mapCfg, objItem)
|
|
local imgLandmark = objItem.transform:Find("mask/imgLandmark"):GetComponent("Image")
|
|
local txtName = objItem.transform:Find("txtName"):GetComponent("TMP_Text")
|
|
local txtDesc = objItem.transform:Find("txtDesc"):GetComponent("TMP_Text")
|
|
local imgTag = objItem.transform:Find("imgTag")
|
|
local txtTag = objItem.transform:Find("imgTag/txtTag"):GetComponent("TMP_Text")
|
|
NovaAPI.SetTMPText(txtTag, ConfigTable.GetUIText("Phone_Dating_Special_Event_Title"))
|
|
NovaAPI.SetTMPText(txtName, mapCfg.Name)
|
|
NovaAPI.SetTMPText(txtDesc, mapCfg.Desc)
|
|
self:SetPngSprite(imgLandmark, mapCfg.Icon)
|
|
local bHasNew = PlayerData.Dating:CheckHasNewEvent(self.nCharId, mapCfg.Id)
|
|
imgTag.gameObject:SetActive(bHasNew)
|
|
end
|
|
function DatingLandmarkCtrl:Awake()
|
|
end
|
|
function DatingLandmarkCtrl:OnEnable()
|
|
local tbParam = self:GetPanelParam()
|
|
if type(tbParam) == "table" then
|
|
self.nCharId = tbParam[1]
|
|
end
|
|
self._mapNode.goContent.gameObject:SetActive(false)
|
|
self._mapNode.goBlur.gameObject:SetActive(true)
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self._mapNode.goContent.gameObject:SetActive(true)
|
|
local bL2d = LocalSettingData.mapData.UseLive2D
|
|
self._mapNode.trRoot.gameObject:SetActive(bL2d)
|
|
self._mapNode.trActor2D_PNG.gameObject:SetActive(not bL2d)
|
|
if bL2d then
|
|
Actor2DManager.SetActor2DInUI(self:GetPanelId(), self._mapNode.trRoot, self.nCharId, nil, true)
|
|
else
|
|
Actor2DManager.SetActor2D_PNG(self._mapNode.trActor2D_PNG, self:GetPanelId(), self.nCharId, nil)
|
|
end
|
|
self:SetLandmarkList()
|
|
EventManager.Hit("RefreshSortingOrder", -100)
|
|
NovaAPI.SetCanvasSortingName(self._mapNode.canvasBlur, self._panel._sSortingLayerName)
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
function DatingLandmarkCtrl:OnDisable()
|
|
end
|
|
function DatingLandmarkCtrl:OnDestroy()
|
|
end
|
|
function DatingLandmarkCtrl:OnBtnClick_Goto(btn, nIndex)
|
|
self.curAffinityInfo = PlayerData.Char:GetCharAffinityData(self.nCharId)
|
|
local callback = function(msgData)
|
|
self.datingData = msgData
|
|
EventManager.Hit(EventId.SetTransition, 11)
|
|
end
|
|
self.nLandmarkId = self.tbLandmark[nIndex].Id
|
|
PlayerData.Dating:SendDatingLandmarkSelectMsg(self.nCharId, self.nLandmarkId, callback)
|
|
for k, v in pairs(self._mapNode.btnGoto) do
|
|
v.interactable = false
|
|
end
|
|
end
|
|
function DatingLandmarkCtrl:OnBtnClick_Back()
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.DatingLandmark)
|
|
EventManager.Hit("RefreshSortingOrder")
|
|
end
|
|
function DatingLandmarkCtrl:OnEvent_TransAnimInClear()
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.DatingLandmark)
|
|
EventManager.Hit("RefreshSortingOrder")
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.Dating, self.nLandmarkId, self.nCharId, self.datingData.BeforeBranchId, self.curAffinityInfo, self.datingData.BranchAOptionIds, self.datingData.Change)
|
|
end
|
|
return DatingLandmarkCtrl
|