67 lines
2.3 KiB
Lua
67 lines
2.3 KiB
Lua
local SNSContentBase = require_ex('UI/Widgets/SNSContentBase')
|
|
|
|
local MissionState = CS.Beyond.Gameplay.MissionSystem.MissionState
|
|
local MissionType = CS.Beyond.Gameplay.MissionSystem.MissionType
|
|
|
|
|
|
|
|
|
|
|
|
SNSContentTask = HL.Class('SNSContentTask', SNSContentBase)
|
|
|
|
|
|
|
|
SNSContentTask._OnSNSContentInit = HL.Override() << function(self)
|
|
local missionId = self.m_contentCfg.contentParam[0]
|
|
|
|
local missionRuntimeAsset = GameInstance.player.mission:GetMissionInfo(missionId)
|
|
|
|
local levelTableData = Tables.levelDescTable[missionRuntimeAsset.levelId]
|
|
local icon = UIConst.MISSION_VIEW_TYPE_CONFIG[missionRuntimeAsset.viewType].missionIcon
|
|
self.view.mainTxt.text = missionRuntimeAsset.missionName:GetText()
|
|
self.view.subTxt.text = levelTableData.showName
|
|
self.view.taskIcon:LoadSprite(UIConst.UI_SPRITE_MISSION_TYPE_ICON, icon)
|
|
|
|
local importanceValue = missionRuntimeAsset.missionImportance:GetHashCode()
|
|
self.view.taskAll:SetState(string.format("Importance%s", tostring(importanceValue)))
|
|
local isComplete = GameInstance.player.mission:IsMissionCompleted(missionId)
|
|
self.view.taskAll:SetState(isComplete and "CompleteNode" or "GotoNode")
|
|
|
|
self.view.verticalLayoutGroup.padding.left = self.m_contentInfo.taskHorPadding
|
|
self.view.verticalLayoutGroup.padding.right = self.m_contentInfo.taskHorPadding
|
|
|
|
self.view.btnClick.onClick:RemoveAllListeners()
|
|
self.view.btnClick.onClick:AddListener(function()
|
|
|
|
local missionState = GameInstance.player.mission:GetMissionState(missionId)
|
|
local otherCaseHintText = missionRuntimeAsset.missionType == MissionType.Misc and
|
|
Language["ui_sns_toast_mission_misc_failed"] or Language["ui_mis_empty_default"]
|
|
if missionState == MissionState.Processing then
|
|
PhaseManager:OpenPhase(PhaseId.Mission, { autoSelect = missionId, useBlackMask = true })
|
|
elseif isComplete then
|
|
Notify(MessageConst.SHOW_TOAST, Language["ui_sns_toast_mission_completed"])
|
|
else
|
|
Notify(MessageConst.SHOW_TOAST, otherCaseHintText)
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
SNSContentTask.CanSetTarget = HL.Override().Return(HL.Boolean) << function(self)
|
|
return true
|
|
end
|
|
|
|
|
|
|
|
SNSContentTask.GetNaviTarget = HL.Override().Return(HL.Any) << function(self)
|
|
return self.view.btnClick
|
|
end
|
|
|
|
|
|
|
|
HL.Commit(SNSContentTask)
|
|
return SNSContentTask
|