145 lines
3.9 KiB
Plaintext
145 lines
3.9 KiB
Plaintext
autoImport("Table_Question")
|
|
|
|
WeddingQuestionView = class("WeddingQuestionView",ContainerView)
|
|
|
|
WeddingQuestionView.ViewType = UIViewType.NormalLayer
|
|
|
|
local _WeddingProxy = WeddingProxy.Instance
|
|
|
|
function WeddingQuestionView:OnExit()
|
|
self:CameraReset()
|
|
ServiceWeddingCCmdProxy.Instance:CallWeddingSwitchQuestionCCmd(false)
|
|
WeddingQuestionView.super.OnExit(self)
|
|
end
|
|
|
|
function WeddingQuestionView:Init()
|
|
self:FindObj()
|
|
self:AddEvt()
|
|
self:AddViewEvt()
|
|
self:InitShow()
|
|
end
|
|
|
|
function WeddingQuestionView:FindObj()
|
|
self.content = self:FindGO("Content"):GetComponent(UILabel)
|
|
self.contentEffect = self.content.gameObject:GetComponent(TypewriterEffect)
|
|
self.collider = self:FindGO("Dialog"):GetComponent(BoxCollider)
|
|
self.choose = self:FindGO("Choose")
|
|
self.chooseA = self:FindGO("ChooseA", self.choose):GetComponent(UILabel)
|
|
self.chooseB = self:FindGO("ChooseB", self.choose):GetComponent(UILabel)
|
|
end
|
|
|
|
function WeddingQuestionView:AddEvt()
|
|
self:AddClickEvent(self.collider.gameObject, function ()
|
|
if self.canAnswer then
|
|
self.contentEffect:Finish()
|
|
if self.questionid ~= nil then
|
|
ServiceWeddingCCmdProxy.Instance:CallAnswerWeddingCCmd(self.questionid, 1)
|
|
end
|
|
self.collider.enabled = false
|
|
|
|
self.canAnswer = false
|
|
end
|
|
end)
|
|
self:AddClickEvent(self.chooseA.gameObject, function ()
|
|
if self.canAnswer and self.questionid ~= nil then
|
|
ServiceWeddingCCmdProxy.Instance:CallAnswerWeddingCCmd(self.questionid, 1)
|
|
|
|
self.canAnswer = false
|
|
end
|
|
end)
|
|
|
|
self:AddClickEvent(self.chooseB.gameObject, function ()
|
|
if self.canAnswer and self.questionid ~= nil then
|
|
ServiceWeddingCCmdProxy.Instance:CallAnswerWeddingCCmd(self.questionid, 2)
|
|
|
|
self.canAnswer = false
|
|
end
|
|
end)
|
|
EventDelegate.Set(self.contentEffect.onFinished, function ()
|
|
self.canAnswer = true
|
|
end)
|
|
end
|
|
|
|
function WeddingQuestionView:AddViewEvt()
|
|
self:AddListenEvt(ServiceEvent.WeddingCCmdQuestionWeddingCCmd, self.HandleQuestion)
|
|
self:AddListenEvt(ServiceEvent.WeddingCCmdWeddingSwitchQuestionCCmd, self.HandleSwitchQuestion)
|
|
end
|
|
|
|
function WeddingQuestionView:InitShow()
|
|
self.collider.enabled = false
|
|
|
|
self.canAnswer = false
|
|
end
|
|
|
|
function WeddingQuestionView:HandleQuestion(note)
|
|
local data = note.body
|
|
if data ~= nil then
|
|
self.questionid = data.questionid
|
|
helplog("HandleQuestion",self.questionid)
|
|
local staticData = Table_Question[self.questionid]
|
|
if staticData ~= nil then
|
|
local question = staticData.Title
|
|
|
|
if self:CheckCanAnswer(data.charids) then
|
|
if self.questionid == 11 then
|
|
question = string.format(question, Game.Myself.data.name, _WeddingProxy:GetPartnerName())
|
|
end
|
|
|
|
local isShowOption = #staticData.Option > 0
|
|
self.choose:SetActive(isShowOption)
|
|
self.collider.enabled = not isShowOption
|
|
if isShowOption then
|
|
local optionA = staticData.Option[1]
|
|
if optionA ~= nil then
|
|
self.chooseA.text = optionA.content
|
|
end
|
|
|
|
local optionB = staticData.Option[2]
|
|
if optionB ~= nil then
|
|
self.chooseB.text = optionB.content
|
|
end
|
|
end
|
|
else
|
|
if self.questionid == 11 then
|
|
question = string.format(question, _WeddingProxy:GetPartnerName(), Game.Myself.data.name)
|
|
end
|
|
|
|
self.choose:SetActive(false)
|
|
self.collider.enabled = false
|
|
end
|
|
|
|
self.content.text = question
|
|
|
|
self.contentEffect:ResetToBeginning()
|
|
end
|
|
end
|
|
end
|
|
|
|
function WeddingQuestionView:HandleSwitchQuestion(note)
|
|
local data = note.body
|
|
if data ~= nil then
|
|
if data.onoff == true then
|
|
local npcId = data.npcguid
|
|
if npcId ~= nil then
|
|
local npc = NSceneNpcProxy.Instance:Find(npcId)
|
|
if npc ~= nil then
|
|
local viewPort = CameraConfig.WeddingQuestion_ViewPort
|
|
local rotation = CameraConfig.WeddingQuestion_Rotation
|
|
self:CameraFaceTo(npc.assetRole.completeTransform,viewPort,rotation)
|
|
end
|
|
end
|
|
else
|
|
self:CloseSelf()
|
|
end
|
|
end
|
|
end
|
|
|
|
function WeddingQuestionView:CheckCanAnswer(charids)
|
|
for i=1,#charids do
|
|
if charids[i] == Game.Myself.data.id then
|
|
return true
|
|
end
|
|
end
|
|
|
|
return false
|
|
end |