From 7798c1a9091794d62d4c1ea6375f8911634dff51 Mon Sep 17 00:00:00 2001 From: MinhHai Date: Fri, 14 Nov 2025 18:08:46 +0700 Subject: [PATCH 1/4] show npc name on UI --- .../Prefab/Task/UI/TaskWindow.prefab | 2234 ++++++++++++++--- .../PerfectWorld/Scripts/Task/TaskProcess.cs | 27 +- .../Scripts/Task/TaskTempl.Method.cs | 2 +- .../Scripts/Task/UI/TaskTreeView.cs | 44 +- .../Scripts/Task/UI/TaskTreeViewItem.cs | 5 +- .../Scripts/Task/UI/TaskWindow.cs | 166 +- 6 files changed, 2112 insertions(+), 366 deletions(-) diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab index 115c91f7c6..25b9333ddb 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab @@ -31,9 +31,9 @@ RectTransform: - {fileID: 7068400949313321131} m_Father: {fileID: 1982628982857606432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 119.34445, y: -50.05} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 238.6889, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &567730479829113918 @@ -290,6 +290,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &698871360886413445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8327749287882462558} + - component: {fileID: 8974871714868791650} + - component: {fileID: 8564453263675810493} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8327749287882462558 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698871360886413445} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6735530030377307178} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 5.3} + m_SizeDelta: {x: 208, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8974871714868791650 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698871360886413445} + m_CullTransparentMesh: 1 +--- !u!114 &8564453263675810493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698871360886413445} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "H\u1EE7y" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.8 + m_fontSizeBase: 34.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &861232368374139747 GameObject: m_ObjectHideFlags: 0 @@ -606,7 +742,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -655,9 +791,9 @@ RectTransform: - {fileID: 1673093633596208253} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 744.2305, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5696506275770781555 @@ -941,10 +1077,9 @@ RectTransform: - {fileID: 3801703182986381720} - {fileID: 4165163362729218154} - {fileID: 3694279846687502875} - - {fileID: 9130314028910978054} + - {fileID: 2214759022841903186} - {fileID: 8952699645153410030} - - {fileID: 1494500244566224968} - - {fileID: 3851902390751443006} + - {fileID: 8611061134879146475} - {fileID: 1178256645132026648} - {fileID: 7543803299643391714} - {fileID: 1982628982857606432} @@ -1239,9 +1374,9 @@ RectTransform: - {fileID: 3173262022725656255} m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.7858, y: -474.2503} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1067.5717, y: 53.7328} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4979397800331147640 @@ -1288,9 +1423,9 @@ RectTransform: - {fileID: 288221944375296325} m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 552.95, y: -697.3211} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1105.9, y: 100.1} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &3682686733385602497 @@ -1464,6 +1599,263 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2002072750063558840 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1622112018287698320} + - component: {fileID: 1634532682960402013} + - component: {fileID: 2607579827522743229} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1622112018287698320 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002072750063558840} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8075141810378714200} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 5.3} + m_SizeDelta: {x: 208, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1634532682960402013 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002072750063558840} + m_CullTransparentMesh: 1 +--- !u!114 &2607579827522743229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002072750063558840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "H\u1EE7y" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.8 + m_fontSizeBase: 34.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2016954233818573453 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8758881669436379662} + - component: {fileID: 4516290302443859648} + - component: {fileID: 2039230967218426791} + - component: {fileID: 9136710161848467276} + m_Layer: 5 + m_Name: ShowTraceBtn ??? (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8758881669436379662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016954233818573453} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3368862900967200766} + m_Father: {fileID: 5599513424133385699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 461.7603, y: -413.73734} + m_SizeDelta: {x: 207, y: 77} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4516290302443859648 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016954233818573453} + m_CullTransparentMesh: 1 +--- !u!114 &2039230967218426791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016954233818573453} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 01b79c3dc401e4fdfb17b72d677f9fbd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9136710161848467276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2016954233818573453} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2039230967218426791} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &2058782457540070773 GameObject: m_ObjectHideFlags: 0 @@ -1540,6 +1932,235 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2151482873065428770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8075141810378714200} + - component: {fileID: 1103248200409780072} + - component: {fileID: 7616707834446737385} + - component: {fileID: 7903297208011070717} + m_Layer: 5 + m_Name: TreasureBtn ??? (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8075141810378714200 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2151482873065428770} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1622112018287698320} + m_Father: {fileID: 5599513424133385699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 461.7603, y: -413.73734} + m_SizeDelta: {x: 207, y: 77} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1103248200409780072 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2151482873065428770} + m_CullTransparentMesh: 1 +--- !u!114 &7616707834446737385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2151482873065428770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 01b79c3dc401e4fdfb17b72d677f9fbd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7903297208011070717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2151482873065428770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7616707834446737385} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &2280157017975833707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2214759022841903186} + - component: {fileID: 7637574953150164924} + - component: {fileID: 3932348356004636886} + - component: {fileID: 6176648444201081421} + m_Layer: 5 + m_Name: DecriptionScroll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2214759022841903186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2280157017975833707} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2113894404869369687} + - {fileID: 6888331463719618182} + m_Father: {fileID: 1802319080125745111} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1067.6, y: 147.0112} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7637574953150164924 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2280157017975833707} + m_CullTransparentMesh: 1 +--- !u!114 &3932348356004636886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2280157017975833707} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6176648444201081421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2280157017975833707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 9130314028910978054} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 2113894404869369687} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 4379094072969864586} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &2331454386239783677 GameObject: m_ObjectHideFlags: 0 @@ -1645,9 +2266,9 @@ RectTransform: - {fileID: 466166190548844919} m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.7858, y: -286.3929} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1067.5717, y: 64.6396} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5725159945352370057 @@ -1688,12 +2309,12 @@ RectTransform: m_Children: [] m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 50, y: -17.98135} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 35.9627} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2668998496744589788 +--- !u!1 &2640258873449426733 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1701,134 +2322,36 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1494500244566224968} - - component: {fileID: 1592900090687940743} - - component: {fileID: 2027035373280821970} + - component: {fileID: 5599513424133385699} m_Layer: 5 - m_Name: GoToNPC_Text + m_Name: Unknow_Element m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1494500244566224968 + m_IsActive: 0 +--- !u!224 &5599513424133385699 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2668998496744589788} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 2640258873449426733} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1802319080125745111} + m_Children: + - {fileID: 6735530030377307178} + - {fileID: 8075141810378714200} + - {fileID: 8758881669436379662} + m_Father: {fileID: 5506476487848131018} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.8, y: -345.19696} - m_SizeDelta: {x: 1067.6, y: 52.9685} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1592900090687940743 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2668998496744589788} - m_CullTransparentMesh: 1 ---- !u!114 &2027035373280821970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2668998496744589788} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: NPC giao nhiem vu - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 35 - m_fontSizeBase: 35 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: -4.5 - m_wordSpacing: 0 - m_lineSpacing: 20 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 30.78534, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &2734572028647330442 GameObject: m_ObjectHideFlags: 0 @@ -2040,6 +2563,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2807180480774504020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3368862900967200766} + - component: {fileID: 1369451316227703645} + - component: {fileID: 4813410689436131204} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3368862900967200766 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2807180480774504020} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8758881669436379662} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 5.3} + m_SizeDelta: {x: 208, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1369451316227703645 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2807180480774504020} + m_CullTransparentMesh: 1 +--- !u!114 &4813410689436131204 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2807180480774504020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "H\u1EE7y" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.8 + m_fontSizeBase: 34.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &2961637354773680571 GameObject: m_ObjectHideFlags: 0 @@ -2055,7 +2714,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &9127077926286418868 RectTransform: m_ObjectHideFlags: 0 @@ -2109,9 +2768,9 @@ RectTransform: - {fileID: 1664656494516247222} m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.7858, y: -97.82885} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1067.5717, y: 20.3405} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5366537333355115835 @@ -2225,6 +2884,42 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &3498753939463456086 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2825219564319673376} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2825219564319673376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3498753939463456086} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6422833849823054163} + m_Father: {fileID: 6888331463719618182} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &3642989890484902710 GameObject: m_ObjectHideFlags: 0 @@ -2361,6 +3056,81 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3666677525119737439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5528775826838870228} + - component: {fileID: 5045280441641158701} + - component: {fileID: 4132646671995132487} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5528775826838870228 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3666677525119737439} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7958847946112668032} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5045280441641158701 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3666677525119737439} + m_CullTransparentMesh: 1 +--- !u!114 &4132646671995132487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3666677525119737439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &3771887035506872677 GameObject: m_ObjectHideFlags: 0 @@ -2436,6 +3206,157 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4170722390248499571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7220775748014409106} + - component: {fileID: 2700849901710192960} + - component: {fileID: 5306471789948586057} + - component: {fileID: 2109314671855069149} + m_Layer: 5 + m_Name: QuestItemText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7220775748014409106 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4170722390248499571} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5766655682288970218} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 533.8, y: -73.50502} + m_SizeDelta: {x: 1067.6, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2700849901710192960 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4170722390248499571} + m_CullTransparentMesh: 1 +--- !u!114 &5306471789948586057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4170722390248499571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 35 + m_fontSizeBase: 35 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: -4.5 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 34.955017, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2109314671855069149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4170722390248499571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &4318549406462874830 GameObject: m_ObjectHideFlags: 0 @@ -2469,9 +3390,9 @@ RectTransform: - {fileID: 6664836867558571240} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 632.0412, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1719403314563710437 @@ -2545,9 +3466,9 @@ RectTransform: - {fileID: 3123454216176481580} m_Father: {fileID: 1982628982857606432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 390.45966, y: -50.05} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 103.5415, y: 42.7938} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &6244284104014817409 @@ -2590,7 +3511,7 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 0} + m_TargetGraphic: {fileID: 2073914007811294008} toggleTransition: 1 graphic: {fileID: 6758959852572783852} m_Group: {fileID: 0} @@ -2709,9 +3630,9 @@ RectTransform: - {fileID: 2490029976799717816} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 295.47327, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7650172129678423862 @@ -2752,6 +3673,96 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4732415285508887451 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2113894404869369687} + - component: {fileID: 4662246788448476486} + - component: {fileID: 984175667178237563} + - component: {fileID: 6041010229692910237} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2113894404869369687 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4732415285508887451} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9130314028910978054} + m_Father: {fileID: 2214759022841903186} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &4662246788448476486 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4732415285508887451} + m_CullTransparentMesh: 1 +--- !u!114 &984175667178237563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4732415285508887451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6041010229692910237 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4732415285508887451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 --- !u!1 &4775292171949715757 GameObject: m_ObjectHideFlags: 0 @@ -2763,6 +3774,7 @@ GameObject: - component: {fileID: 9130314028910978054} - component: {fileID: 8527806716735377849} - component: {fileID: 392616940935835323} + - component: {fileID: 3379192707911186957} m_Layer: 5 m_Name: DescriptionText m_TagString: Untagged @@ -2782,12 +3794,12 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1802319080125745111} + m_Father: {fileID: 2113894404869369687} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.8, y: -181.0361} - m_SizeDelta: {x: 1067.6, y: 146.074} + m_AnchoredPosition: {x: 533.8, y: -73.50508} + m_SizeDelta: {x: 1067.6, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8527806716735377849 CanvasRenderer: @@ -2817,10 +3829,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "Ti\xEAu \u0111i\u1EC7t H\u1ED5 V\u1EA1n Qu\xE2n Sau \u0111\xF3 b\xE1o - c\xF3a cho quan ph\xE1t th\u01B0\u1EDFng \u0111\u1EC3 nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng - \nH\u1ED3 V\u1EA1n Qu\xE2n hi\u1EC7n \u0111ang \u1EDF trong Ph\xFAc S\u01B0\u01A1ng - B\xED C\u1EA3nh" + m_text: Task decription m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} @@ -2859,7 +3868,7 @@ MonoBehaviour: m_textAlignment: 65535 m_characterSpacing: -4.5 m_wordSpacing: 0 - m_lineSpacing: 20 + m_lineSpacing: 0 m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 @@ -2891,6 +3900,20 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3379192707911186957 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4775292171949715757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &5087525444877170506 GameObject: m_ObjectHideFlags: 0 @@ -2924,9 +3947,9 @@ RectTransform: - {fileID: 7337732696262196210} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 183.28395, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &665161835172153120 @@ -2999,9 +4022,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 1982628982857606432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 288.6889, y: -50.05} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1142619112158729952 @@ -3136,9 +4159,9 @@ RectTransform: - {fileID: 464210832437986234} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 71.09465, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6131836957139812833 @@ -3179,6 +4202,42 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5255272428788310561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7958847946112668032} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7958847946112668032 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5255272428788310561} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5528775826838870228} + m_Father: {fileID: 3450901294667678815} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &5416550039680901224 GameObject: m_ObjectHideFlags: 0 @@ -3211,9 +4270,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 150, y: -61.81065} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 300, y: 51.6959} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4239296098804493253 @@ -3348,9 +4407,9 @@ RectTransform: - {fileID: 9160025208612689927} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 856.41986, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4153770864616565637 @@ -3423,9 +4482,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 7068400949313321131} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 76, y: -31.75005} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2800332942966355020 @@ -4010,6 +5069,222 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6529812165440442340 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5766655682288970218} + - component: {fileID: 1301146549737279854} + - component: {fileID: 4831205202503225146} + - component: {fileID: 765096131044229500} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5766655682288970218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6529812165440442340} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7220775748014409106} + m_Father: {fileID: 8611061134879146475} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &1301146549737279854 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6529812165440442340} + m_CullTransparentMesh: 1 +--- !u!114 &4831205202503225146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6529812165440442340} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &765096131044229500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6529812165440442340} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &6647354035207075975 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3450901294667678815} + - component: {fileID: 4768512660054795005} + - component: {fileID: 7380274044703672330} + - component: {fileID: 61000178429406906} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3450901294667678815 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6647354035207075975} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7958847946112668032} + m_Father: {fileID: 8611061134879146475} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 0} +--- !u!222 &4768512660054795005 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6647354035207075975} + m_CullTransparentMesh: 1 +--- !u!114 &7380274044703672330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6647354035207075975} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &61000178429406906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6647354035207075975} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4132646671995132487} + m_HandleRect: {fileID: 5528775826838870228} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &6781255208091426723 GameObject: m_ObjectHideFlags: 0 @@ -4044,9 +5319,9 @@ RectTransform: - {fileID: 3960419512253178154} m_Father: {fileID: 1982628982857606432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 752.7304, y: -50.05} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 207, y: 77} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5922293013674383484 @@ -4131,6 +5406,81 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &6853716367817320825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6422833849823054163} + - component: {fileID: 7202110854671021903} + - component: {fileID: 4586005846856619763} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6422833849823054163 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6853716367817320825} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2825219564319673376} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7202110854671021903 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6853716367817320825} + m_CullTransparentMesh: 1 +--- !u!114 &4586005846856619763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6853716367817320825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &6906092060762732394 GameObject: m_ObjectHideFlags: 0 @@ -4267,6 +5617,127 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6936782693588868010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6735530030377307178} + - component: {fileID: 1270654864504496136} + - component: {fileID: 6936080390981665955} + - component: {fileID: 6741042101550509130} + m_Layer: 5 + m_Name: FinishBtn ??? + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6735530030377307178 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6936782693588868010} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8327749287882462558} + m_Father: {fileID: 5599513424133385699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 461.7603, y: -413.73734} + m_SizeDelta: {x: 207, y: 77} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1270654864504496136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6936782693588868010} + m_CullTransparentMesh: 1 +--- !u!114 &6936080390981665955 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6936782693588868010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 01b79c3dc401e4fdfb17b72d677f9fbd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6741042101550509130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6936782693588868010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6936080390981665955} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &6999114045547682248 GameObject: m_ObjectHideFlags: 0 @@ -4297,6 +5768,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 9127077926286418868} + - {fileID: 5599513424133385699} - {fileID: 2548327049343163514} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -4320,16 +5792,16 @@ MonoBehaviour: m_pTxt_QuestNO: {fileID: 0} m_pTv_Quest: {fileID: 6916443525973237579} m_pTxt_Content: {fileID: 392616940935835323} - m_pTxt_QuestItem: {fileID: 22415525919988914} + m_pTxt_QuestItem: {fileID: 5306471789948586057} m_pBtn_Abandon: {fileID: 4479989268223349189} m_pBtn_MainQuest: {fileID: 0} m_pBtn_NormalQuest: {fileID: 0} m_pBtn_SearchQuest: {fileID: 2584474721424558190} m_pBtn_HaveQuest: {fileID: 601347568680326690} - m_pBtn_bShowTrace: {fileID: 0} - m_pBtn_FinishTask: {fileID: 0} + m_pBtn_bShowTrace: {fileID: 9136710161848467276} + m_pBtn_FinishTask: {fileID: 6741042101550509130} m_pTxt_BaseAward: {fileID: 6764788513594170349} - Btn_TreasureMap: {fileID: 0} + Btn_TreasureMap: {fileID: 7903297208011070717} m_pImg_Item: - {fileID: 1878888636723388585} - {fileID: 8083879840584476094} @@ -4374,147 +5846,11 @@ RectTransform: - {fileID: 8526229293534627480} m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 552.95, y: -574.1939} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1105.9, y: 146.1544} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7289756614495389558 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3851902390751443006} - - component: {fileID: 6409639006888089128} - - component: {fileID: 22415525919988914} - m_Layer: 5 - m_Name: QuestItemText - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3851902390751443006 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7289756614495389558} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1802319080125745111} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.8, y: -409.53256} - m_SizeDelta: {x: 1067.6, y: 75.7027} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6409639006888089128 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7289756614495389558} - m_CullTransparentMesh: 1 ---- !u!114 &22415525919988914 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7289756614495389558} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "Qu\xE1i c\u1EA7n ti\xEAu di\u1EC7t" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 35 - m_fontSizeBase: 35 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: -4.5 - m_wordSpacing: 0 - m_lineSpacing: 20 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_ActiveFontFeatures: 6e72656b - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 30.78534, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &7362516739390317868 GameObject: m_ObjectHideFlags: 0 @@ -4549,9 +5885,9 @@ RectTransform: - {fileID: 8359974748112151041} m_Father: {fileID: 1982628982857606432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 545.7304, y: -50.05} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 207, y: 77} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &175839448811631403 @@ -4711,6 +6047,132 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7743147435464753426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6888331463719618182} + - component: {fileID: 2660541561546503146} + - component: {fileID: 2559820653856288274} + - component: {fileID: 4379094072969864586} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6888331463719618182 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7743147435464753426} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2825219564319673376} + m_Father: {fileID: 2214759022841903186} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 0} +--- !u!222 &2660541561546503146 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7743147435464753426} + m_CullTransparentMesh: 1 +--- !u!114 &2559820653856288274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7743147435464753426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4379094072969864586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7743147435464753426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4586005846856619763} + m_HandleRect: {fileID: 6422833849823054163} + m_Direction: 2 + m_Value: 0 + m_Size: 0.9961751 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &8246828560325121554 GameObject: m_ObjectHideFlags: 0 @@ -4744,9 +6206,9 @@ RectTransform: - {fileID: 3546830409645517734} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 519.85187, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7535806629134762549 @@ -4787,6 +6249,114 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8414187317232292133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8611061134879146475} + - component: {fileID: 5632580526749397436} + - component: {fileID: 851144600794037386} + - component: {fileID: 2842785867005193260} + m_Layer: 5 + m_Name: QuestItemScroll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8611061134879146475 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8414187317232292133} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5766655682288970218} + - {fileID: 3450901294667678815} + m_Father: {fileID: 1802319080125745111} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1067.6, y: 147.0112} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5632580526749397436 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8414187317232292133} + m_CullTransparentMesh: 1 +--- !u!114 &851144600794037386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8414187317232292133} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2842785867005193260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8414187317232292133} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 7220775748014409106} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 5766655682288970218} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 61000178429406906} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &8430695516441159845 GameObject: m_ObjectHideFlags: 0 @@ -4820,9 +6390,9 @@ RectTransform: - {fileID: 6076870470824675401} m_Father: {fileID: 6556814518920652147} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 407.66254, y: -49.72705} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 72.1893, y: 73.4541} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5385847170717247365 @@ -4988,6 +6558,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_pTreeViewItemPrefab: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3} + _currentSelectedItem: {fileID: 0} + m_aTreeViewItems: [] --- !u!114 &3763656904659419767 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs b/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs index eae4b53fc4..3f36271765 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs @@ -49,7 +49,7 @@ namespace PerfectWorld.Scripts.Task // nsigned short m_wMonsterNum[MAX_MONSTER_WANTED]; public ushort[] m_wMonsterNum = new ushort[TaskInterfaceConstants.MAX_MONSTER_WANTED]; // Monster numbers public int m_iUsefulData1; - public char m_iUsefulData2; + public byte m_iUsefulData2; // char in C++, but using byte here for simplicity public void ReadFromBuffer(byte[] buffer, ref int offset) { @@ -69,24 +69,25 @@ namespace PerfectWorld.Scripts.Task m_ulCapTemplAddr = BitConverter.ToUInt32(buffer, offset); offset += 4; + int localOffset = offset; // store current offset for reading additional fields from union + // Read remaining buffer data Array.Copy(buffer, offset, m_BufData, 0, m_BufData.Length); - // offset += bufDataLength; // in C++ have union, so we dont plus offset here + offset += m_BufData.Length; // in C++ have union, so we dont plus offset here // Additional fields can be read here as needed m_wMonsterNum = new ushort[TaskInterfaceConstants.MAX_MONSTER_WANTED]; for (int i = 0; i < TaskInterfaceConstants.MAX_MONSTER_WANTED; i++) { - m_wMonsterNum[i] = BitConverter.ToUInt16(buffer, offset); - // offset += 2; // in C++ have union, so we dont plus offset here + m_wMonsterNum[i] = BitConverter.ToUInt16(buffer, localOffset); + localOffset += 2; // in C++ have union, so we dont plus offset here } - m_iUsefulData1 = BitConverter.ToInt32(buffer, offset); - // offset += 4; // in C++ have union, so we dont plus offset here + m_iUsefulData1 = BitConverter.ToInt32(buffer, localOffset); + localOffset += 4; // in C++ have union, so we dont plus offset here + + m_iUsefulData2 = buffer[localOffset++]; // in C++ have union, so we dont plus offset here - m_iUsefulData2 = (char)buffer[offset]; // in C++ have union, so we dont plus offset here - - offset += m_BufData.Length; } @@ -216,13 +217,13 @@ namespace PerfectWorld.Scripts.Task // --- Methods --- public void ReadFromBuffer(byte[] buffer) { - // header use same data slot with m_uTaskCount etc. cause C++ use union here - // so, we dont plus into offset after copy header + // NOTE: union + // cause C++ use union here, header use same data slot with the rest of properties like m_uTaskCount etc. + // so, we dont need to read other properties again, just copy the header part int offset = 0; Array.Copy(buffer, offset, header, 0, header.Length); // offset += header.Length; - m_uTaskCount = buffer[offset++]; m_uUsedCount = buffer[offset++]; m_Version = BitConverter.ToUInt16(buffer, offset); @@ -231,7 +232,7 @@ namespace PerfectWorld.Scripts.Task m_uListState = buffer[offset++]; m_uTopHideTaskCount = buffer[offset++]; _flags = buffer[offset++]; - + for (int i = 0; i < m_uTaskCount; i++) { ActiveTaskEntry entry = new ActiveTaskEntry(); diff --git a/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs b/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs index 35d6f9544f..ed260ece41 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs @@ -150,7 +150,7 @@ namespace BrewMonster.Scripts.Task // const talk_proc* GetUnfinishedTalk() const { return &m_ExeTalk; } // const talk_proc* GetAwardTalk() const { return &m_AwardTalk; } // - // unsigned long GetDeliverNPC() const { return m_ulDelvNPC; } + public uint GetDeliverNPC() { return m_FixedData.m_ulDelvNPC; } public uint GetAwardNPC() { return m_FixedData.m_ulAwardNPC; } // // void SaveToTextFile(FILE* fp); diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs index 115a235e87..b6a8f00f7b 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs @@ -8,9 +8,17 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI { [SerializeField] private TaskTreeViewItem m_pTreeViewItemPrefab; - private TaskTreeViewItem[] m_aTreeViewItems; - - + [Header("DEBUG")] + [SerializeField] private TaskTreeViewItem _currentSelectedItem = null; + [SerializeField] private TaskTreeViewItem[] m_aTreeViewItems; + + private void Start() + { + EventBus.Subscribe(evt => + { + SetSelectedItem(evt.Data); + }); + } public void SetItemData(TaskTreeViewItem item, uint taskType) { @@ -46,6 +54,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // Create a new item GameObject and component TaskTreeViewItem pItem = Instantiate(m_pTreeViewItemPrefab); GameObject go = pItem.gameObject; + // go.name = $"Task_{}"; if (pItem == null) return null; // Parent: root (this) if null; otherwise under given parent item @@ -73,5 +82,34 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI return pItem; } + + public TaskTreeViewItem GetItemByData(uint taskType) + { + if (m_aTreeViewItems == null) + { + m_aTreeViewItems = GetComponentsInChildren(); + } + + foreach (var item in m_aTreeViewItems) + { + if (item.GetItemData() == taskType) + { + return item; + } + } + + return null; + } + + public TaskTreeViewItem GetSelectedItem() + { + return _currentSelectedItem; + } + + void SetSelectedItem(uint idItem) + { + _currentSelectedItem = GetItemByData(idItem); + } + } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs index f10364d2c2..52bb325a1f 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs @@ -20,6 +20,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI public void SetItemData(uint uItemData) { m_uItemData = uItemData; + gameObject.name = $"Task_{uItemData}"; } public uint GetItemData() @@ -47,8 +48,8 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI public void OnPointerClick(PointerEventData eventData) { OnClick.Invoke(m_uItemData); - // EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData }); - TaskWindow.Instance.OnEventLButtonDown_Tv_Quest(m_uItemData); + EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData }); + // TaskWindow.Instance.OnEventLButtonDown_Tv_Quest(m_uItemData); } } diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs index 4828f5b933..a9a31edac7 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs @@ -16,7 +16,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI /// /// This is DlgTask.cpp /// - public class TaskWindow : MonoSingleton + public class TaskWindow : MonoBehaviour { #if UNITY_EDITOR [ContextMenu("Generate Tasks")] @@ -125,18 +125,28 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // [中文] 任务跟踪计时器 // [English] Task trace counter - private CECCounter m_TaskTraceCounter; // CECCounter -> object placeholder + private CECCounter m_TaskTraceCounter = new (); // CECCounter -> object placeholder #region Unity METHODS + private void OnEnable() + { + OnShowDialog(); + } + private void Start() { - OnInitDialog(); + EventBus.Subscribe(evt => + { + OnEventLButtonDown_Tv_Quest(evt.Data); + }); - // EventBus.Subscribe(evt => - // { - // OnEventLButtonDown_Tv_Quest(evt.Data); - // }); + OnInitDialog(); + } + + private void Update() + { + Tick(); } #endregion @@ -155,7 +165,36 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI public void OnEventLButtonDown_Tv_Quest(uint itemData) { - UpdateTask((int)itemData); + // UpdateTask((int)itemData); + + // POINT ptPos = pObj->GetPos(); + // A3DVIEWPORTPARAM *p = m_pA3DEngine->GetActiveViewport()->GetParam(); + // int x = GET_X_LPARAM(lParam) - ptPos.x - p->X; + // int y = GET_Y_LPARAM(lParam) - ptPos.y - p->Y; + // PAUITREEVIEW pTree = (PAUITREEVIEW)pObj; + // + // if( AUI_PRESS(VK_SHIFT) && m_iType == 0) + // { + // P_AUITREEVIEW_ITEM pItem = pTree->HitTest(x, y); + // + // if( pItem ) OnCommand_focus("focus"); + // } + // P_AUITREEVIEW_ITEM pItem = pTree->GetSelectedItem(); + var pItem = m_pTv_Quest.GetItemByData(itemData); + int idTask = (int)itemData; + // int idTask(0); + // if( pItem && pTree->GetParentItem(pItem) != pTree->GetRootItem()) + // idTask = pTree->GetItemData(pItem); + // + if (idTask == 0) return; + // + // if (m_szName == "Win_Quest" && CDlgAutoHelp::IsAutoHelp()) + // { + // if(pTree->GetHitArea(x,y) == AUITREEVIEW_RECT_FRAME) + // CDlgWikiShortcut::PopQuestWiki(GetGameUIMan(),idTask); + // } + + m_idSelTask = idTask; } // void OnEventMouseMove_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj); // void OnEventLButtonDown_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj); @@ -221,7 +260,51 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI return string.Empty; } // - // void TickTaskTrace(); + private bool Tick() + { + // if( m_szName == "Win_Quest" && IsShow() ) + { + var pTree = m_pTv_Quest; + var pItem = pTree.GetSelectedItem(); + + if( pItem ) + { + for( int i = 0; i < m_ImgCount; i++ ) + m_pImg_Item[i].gameObject.SetActive(false); + m_pTxt_BaseAward.gameObject.SetActive(false); + + // if( pTree->GetParentItem(pItem) != pTree->GetRootItem() ) + if( pTree.transform != pItem.transform.parent ) + { + if (m_iType == 0) + { + UpdateTask((int)pTree.GetItemData(pItem)); + } + else if (m_iType == 1) + { + // TODO + // SearchForTask(pTree->GetItemData(pItem)); + } + } + else + { + m_idLastTask = -2; + m_pTxt_Content.SetText(""); + m_pTxt_QuestItem.SetText(""); + m_pBtn_Abandon.interactable = false; + UpdateTaskConfirm(0, false); + Btn_TreasureMap.interactable = false; + } + } + + // TODO + // UpdateGotoNPC(); + } + + // return CDlgBase::Tick(); + + return true; + } // // void RefreshTaskTrace(); public bool UpdateTask(int idTask = -1) @@ -270,7 +353,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI bLastTaskChanged = true; } - m_pBtn_Abandon.gameObject.SetActive(pMan.CanGiveUpTask((uint)idTask)); + m_pBtn_Abandon.interactable = pMan.CanGiveUpTask((uint)idTask); // Get info Task_State_info tsi = new Task_State_info(); @@ -282,6 +365,9 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // Base desc UpdateTaskBaseDesc(strNewTextItem, tsi); + // Deliver NPC + UpdateDeliverNPC(strNewTextItem, (int)pTemp.GetDeliverNPC()); + // Award NPC int nANPC = (int)pTemp.GetAwardNPC(); UpdateAwardNPC(strNewTextItem, nANPC); @@ -334,7 +420,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } // GetGameUIMan()->ReplaceColor(&strNewTextItem, A3DCOLORRGB(255, 255, 255), pTextItem->GetColor()); - SetTextItemText(strNewTextItem, pMan.GetTaskTemplByID((uint)idTask) != null && !bLastTaskChanged, strNewHintItem); + // SetTextItemText(strNewTextItem, pMan.GetTaskTemplByID((uint)idTask) != null && !bLastTaskChanged, strNewHintItem); return true; } @@ -421,7 +507,11 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } // // virtual bool OnInitDialog(); - // virtual void OnShowDialog(); + void OnShowDialog() + { + // if (!m_idSelTask) + UpdateTask(); + } // virtual void OnHideDialog(); // virtual bool OnChangeLayout(PAUIOBJECT pMine, PAUIOBJECT pTheir); // virtual void OnChangeLayoutEnd(bool bAllDone); @@ -656,19 +746,62 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI private static string GetStringFromTable(int id) { - return BrewMonster.Network.EC_Game.GetFixedMsgs()?.GetWideString(id) ?? string.Empty; + // return AUIManager.GetStringFromTable(id); + return ""; + } private static string GetStringFromTable(uint id) { - return BrewMonster.Network.EC_Game.GetFixedMsgs()?.GetWideString((int)id) ?? string.Empty; + // return AUIManager.GetStringFromTable(id); + return ""; } private static string GetFixedMsg(uint id) { return BrewMonster.Network.EC_Game.GetFixedMsgs()?.GetWideString((int)id) ?? string.Empty; } - // void UpdateDeliverNPC(ACString& strText, int nDNPC); + + + private void UpdateDeliverNPC(string strText, int nDNPC) + { + // [中文] 交付NPC + // [English] Deliver NPC + if (nDNPC == 0) + { + return; + } + + // [中文] 从元素数据中查找NPC + // [English] Lookup NPC from element data + string npcName = string.Empty; + var edm = BrewMonster.ElementDataManProvider.GetElementDataMan(); + if (edm != null) + { + if (edm.essence_id_data_type_map.TryGetValue((uint)nDNPC, out var dtype) + && dtype == DATA_TYPE.DT_NPC_ESSENCE + && edm.essence_id_data_map.TryGetValue((uint)nDNPC, out var obj) + && obj is NPC_ESSENCE npc) + { + npcName = npc.Name; + } + } + if (string.IsNullOrEmpty(npcName)) npcName = nDNPC.ToString(); + + // [中文] 追加到内容文本 + // [English] Append to content text + var sb = new System.Text.StringBuilder(); + sb.Append(GetStringFromTable(7620)); + sb.Append(npcName); + sb.Append("\r"); + if (m_pTxt_QuestItem != null) + { + Debug.Log($"UpdateDeliverNPC: {sb.ToString()}"); + m_pTxt_QuestItem.text += sb.ToString(); + } + + } + private A3DVECTOR3 UpdateAwardNPC(string strText, int nANPC) { A3DVECTOR3 ret = new A3DVECTOR3(0f); @@ -700,7 +833,8 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI sb.Append("\r"); if (m_pTxt_Content != null) { - m_pTxt_Content.text += sb.ToString(); + Debug.Log($"Award NPC: {sb.ToString()}"); + m_pTxt_QuestItem.text += sb.ToString(); } return ret; From 75e897d31560527e32f76c57a76939c908e51551 Mon Sep 17 00:00:00 2001 From: MinhHai Date: Sun, 16 Nov 2025 16:45:34 +0700 Subject: [PATCH 2/4] update visual for prefab UI --- .../Prefab/Task/UI/TaskWindow.prefab | 1805 ++++++++++++++++- .../Prefab/Task/UI/TreeViewItem.prefab | 91 +- 2 files changed, 1864 insertions(+), 32 deletions(-) diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab index 25b9333ddb..fc3370239b 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab @@ -426,6 +426,142 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &753337168607287950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3906960815437350628} + - component: {fileID: 5368277086771493818} + - component: {fileID: 1778806506756806208} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3906960815437350628 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753337168607287950} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9038859519033147586} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 5.3} + m_SizeDelta: {x: 208, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5368277086771493818 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753337168607287950} + m_CullTransparentMesh: 1 +--- !u!114 &1778806506756806208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753337168607287950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "T\xECm NV m\u1EDBi" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &861232368374139747 GameObject: m_ObjectHideFlags: 0 @@ -758,6 +894,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1193783980364776163 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 96635968030628870} + - component: {fileID: 4293255224286793642} + - component: {fileID: 493128335640367275} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &96635968030628870 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193783980364776163} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4624338179966789973} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 5.3} + m_SizeDelta: {x: 208, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4293255224286793642 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193783980364776163} + m_CullTransparentMesh: 1 +--- !u!114 &493128335640367275 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193783980364776163} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "H\u1EE7y" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.8 + m_fontSizeBase: 34.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &1252435752054707328 GameObject: m_ObjectHideFlags: 0 @@ -1191,6 +1463,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1493640251377307153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1805980451046698619} + - component: {fileID: 1171516657910199662} + - component: {fileID: 1996688648910724932} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1805980451046698619 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493640251377307153} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1684669606777537764} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 5.3} + m_SizeDelta: {x: 208, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1171516657910199662 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493640251377307153} + m_CullTransparentMesh: 1 +--- !u!114 &1996688648910724932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493640251377307153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u0110\xE3 nh\u1EADn" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.8 + m_fontSizeBase: 34.8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &1599812567600945454 GameObject: m_ObjectHideFlags: 0 @@ -1421,6 +1829,7 @@ RectTransform: - {fileID: 9186753556377915254} - {fileID: 5187125771165140952} - {fileID: 288221944375296325} + - {fileID: 5159105777246515782} m_Father: {fileID: 1802319080125745111} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1599,6 +2008,127 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1956018054878819292 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4624338179966789973} + - component: {fileID: 6360610174742967814} + - component: {fileID: 2583344343835761681} + - component: {fileID: 2955519617984623694} + m_Layer: 5 + m_Name: FocusBtn??? (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4624338179966789973 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956018054878819292} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 96635968030628870} + m_Father: {fileID: 5599513424133385699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 461.7603, y: -413.73734} + m_SizeDelta: {x: 207, y: 77} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6360610174742967814 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956018054878819292} + m_CullTransparentMesh: 1 +--- !u!114 &2583344343835761681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956018054878819292} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 01b79c3dc401e4fdfb17b72d677f9fbd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2955519617984623694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956018054878819292} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2583344343835761681} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &2002072750063558840 GameObject: m_ObjectHideFlags: 0 @@ -2053,6 +2583,174 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &2237531661294520867 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8174585228173147249} + - component: {fileID: 3633225552368495711} + m_Layer: 5 + m_Name: TabGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8174585228173147249 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2237531661294520867} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1684669606777537764} + - {fileID: 9038859519033147586} + m_Father: {fileID: 3413131598704007284} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 320, y: 55.4744} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3633225552368495711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2237531661294520867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: -5 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: -10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &2252995261431685807 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5935924508566653103} + - component: {fileID: 4370190952344197093} + - component: {fileID: 338581281483252264} + - component: {fileID: 4467913644929690323} + m_Layer: 5 + m_Name: BG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5935924508566653103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2252995261431685807} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1511781194495929730} + - {fileID: 5478060068765950545} + m_Father: {fileID: 5159105777246515782} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -12.6553, y: 6.0639} + m_SizeDelta: {x: 198.6054, y: 62.0343} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4370190952344197093 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2252995261431685807} + m_CullTransparentMesh: 1 +--- !u!114 &338581281483252264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2252995261431685807} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ef3296c82b3934a24b288ac6309eb7a7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4467913644929690323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2252995261431685807} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &2280157017975833707 GameObject: m_ObjectHideFlags: 0 @@ -2170,6 +2868,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3413131598704007284} + - component: {fileID: 793750723513655809} m_Layer: 5 m_Name: Left_Area m_TagString: Untagged @@ -2189,7 +2888,8 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1755208944688500795} + - {fileID: 8174585228173147249} + - {fileID: 3760164886363293420} m_Father: {fileID: 945666739613519770} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} @@ -2197,6 +2897,32 @@ RectTransform: m_AnchoredPosition: {x: 186.14093, y: -11.2517} m_SizeDelta: {x: 319.5822, y: 730.9716} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &793750723513655809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2331454386239783677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &2419533862746711451 GameObject: m_ObjectHideFlags: 0 @@ -2343,6 +3069,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6735530030377307178} + - {fileID: 4624338179966789973} - {fileID: 8075141810378714200} - {fileID: 8758881669436379662} m_Father: {fileID: 5506476487848131018} @@ -2781,6 +3508,178 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3241921746764756543} m_CullTransparentMesh: 1 +--- !u!1 &3353468129818847268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1511781194495929730} + - component: {fileID: 8442116720262994404} + - component: {fileID: 357984363630627392} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1511781194495929730 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353468129818847268} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5935924508566653103} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 119.9634, y: 62.034} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8442116720262994404 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353468129818847268} + m_CullTransparentMesh: 1 +--- !u!114 &357984363630627392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353468129818847268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "Nhi\u1EC7m v\u1EE5" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28.36 + m_fontSizeBase: 28.36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 31.641602, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3394019089264214037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5233116975597807035} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5233116975597807035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3394019089264214037} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2343337405992641122} + m_Father: {fileID: 4269318562826283412} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &3400309995061149671 GameObject: m_ObjectHideFlags: 0 @@ -3241,9 +4140,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.8, y: -73.50502} + m_AnchoredPosition: {x: 0, y: 0.0000014305115} m_SizeDelta: {x: 1067.6, y: 0} - m_Pivot: {x: 0.5, y: 0.5} + m_Pivot: {x: 0, y: 1} --- !u!222 &2700849901710192960 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3357,6 +4256,82 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &4208730212235768509 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5159105777246515782} + - component: {fileID: 3615902548841175383} + - component: {fileID: 6311973999660091870} + m_Layer: 5 + m_Name: Lab_Quest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5159105777246515782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4208730212235768509} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5935924508566653103} + m_Father: {fileID: 1982628982857606432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 249.67, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3615902548841175383 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4208730212235768509} + m_CullTransparentMesh: 1 +--- !u!114 &6311973999660091870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4208730212235768509} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &4318549406462874830 GameObject: m_ObjectHideFlags: 0 @@ -3519,6 +4494,114 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_IsOn: 1 +--- !u!1 &4529600407288641986 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3760164886363293420} + - component: {fileID: 6982899544592245397} + - component: {fileID: 5410115286163364632} + - component: {fileID: 8076552994560394869} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3760164886363293420 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4529600407288641986} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3841808193842114691} + - {fileID: 4269318562826283412} + m_Father: {fileID: 3413131598704007284} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 320, y: 673.86} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6982899544592245397 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4529600407288641986} + m_CullTransparentMesh: 1 +--- !u!114 &5410115286163364632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4529600407288641986} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8076552994560394869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4529600407288641986} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1755208944688500795} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 3841808193842114691} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 8166044353254338} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &4608993024421101070 GameObject: m_ObjectHideFlags: 0 @@ -3798,9 +4881,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 533.8, y: -73.50508} + m_AnchoredPosition: {x: 0, y: 0.000024855137} m_SizeDelta: {x: 1067.6, y: 0} - m_Pivot: {x: 0.5, y: 0.5} + m_Pivot: {x: 0, y: 1} --- !u!222 &8527806716735377849 CanvasRenderer: m_ObjectHideFlags: 0 @@ -4450,6 +5533,127 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5594470473699088990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9038859519033147586} + - component: {fileID: 7438076119085514817} + - component: {fileID: 2643875874514492509} + - component: {fileID: 3993402114383519284} + m_Layer: 5 + m_Name: SearchQuestBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9038859519033147586 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5594470473699088990} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3906960815437350628} + m_Father: {fileID: 8174585228173147249} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 170.7912, y: 62.3761} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7438076119085514817 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5594470473699088990} + m_CullTransparentMesh: 1 +--- !u!114 &2643875874514492509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5594470473699088990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8f24853d9cfea43389e8fb3101ffaae1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3993402114383519284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5594470473699088990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2643875874514492509} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &5636346429788542712 GameObject: m_ObjectHideFlags: 0 @@ -4967,9 +6171,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 533.8, y: 29.3391} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1067.6, y: 58.6782} - m_Pivot: {x: 0.5, y: 0.5} + m_Pivot: {x: 0, y: 0} --- !u!222 &3871988270294154378 CanvasRenderer: m_ObjectHideFlags: 0 @@ -5069,6 +6273,222 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6134319540133777401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3841808193842114691} + - component: {fileID: 5693552902337398956} + - component: {fileID: 6779549528510144457} + - component: {fileID: 4310526465423019333} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3841808193842114691 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6134319540133777401} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1755208944688500795} + m_Father: {fileID: 3760164886363293420} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5693552902337398956 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6134319540133777401} + m_CullTransparentMesh: 1 +--- !u!114 &6779549528510144457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6134319540133777401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4310526465423019333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6134319540133777401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &6215509840863176641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4269318562826283412} + - component: {fileID: 3156760942193843661} + - component: {fileID: 5649692143959903235} + - component: {fileID: 8166044353254338} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4269318562826283412 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6215509840863176641} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5233116975597807035} + m_Father: {fileID: 3760164886363293420} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 1} +--- !u!222 &3156760942193843661 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6215509840863176641} + m_CullTransparentMesh: 1 +--- !u!114 &5649692143959903235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6215509840863176641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8166044353254338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6215509840863176641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7392889747821849613} + m_HandleRect: {fileID: 2343337405992641122} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &6529812165440442340 GameObject: m_ObjectHideFlags: 0 @@ -5298,7 +6718,7 @@ GameObject: - component: {fileID: 4258071580695541700} - component: {fileID: 601347568680326690} m_Layer: 5 - m_Name: HaveQuestBtn ?? + m_Name: LookQuestBtn ?? m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -5406,6 +6826,81 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &6825428412888061072 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2343337405992641122} + - component: {fileID: 1253204253337680264} + - component: {fileID: 7392889747821849613} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2343337405992641122 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6825428412888061072} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5233116975597807035} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1253204253337680264 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6825428412888061072} + m_CullTransparentMesh: 1 +--- !u!114 &7392889747821849613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6825428412888061072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &6853716367817320825 GameObject: m_ObjectHideFlags: 0 @@ -5789,19 +7284,21 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 101488732bfd4d2fab4ea07f7ac6731f, type: 3} m_Name: m_EditorClassIdentifier: - m_pTxt_QuestNO: {fileID: 0} + m_pTxt_QuestNO: {fileID: 9151364455187038631} m_pTv_Quest: {fileID: 6916443525973237579} m_pTxt_Content: {fileID: 392616940935835323} m_pTxt_QuestItem: {fileID: 5306471789948586057} m_pBtn_Abandon: {fileID: 4479989268223349189} m_pBtn_MainQuest: {fileID: 0} m_pBtn_NormalQuest: {fileID: 0} - m_pBtn_SearchQuest: {fileID: 2584474721424558190} - m_pBtn_HaveQuest: {fileID: 601347568680326690} + m_pBtn_SearchQuest: {fileID: 3993402114383519284} + m_pBtn_HaveQuest: {fileID: 8416675113205287645} m_pBtn_bShowTrace: {fileID: 9136710161848467276} m_pBtn_FinishTask: {fileID: 6741042101550509130} m_pTxt_BaseAward: {fileID: 6764788513594170349} Btn_TreasureMap: {fileID: 7903297208011070717} + Btn_Focus: {fileID: 2955519617984623694} + Lab_QuestNO: {fileID: 4208730212235768509} m_pImg_Item: - {fileID: 1878888636723388585} - {fileID: 8083879840584476094} @@ -6168,7 +7665,7 @@ MonoBehaviour: m_HandleRect: {fileID: 6422833849823054163} m_Direction: 2 m_Value: 0 - m_Size: 0.9961751 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -6287,7 +7784,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 1067.6, y: 147.0112} + m_SizeDelta: {x: 1067.6, y: 128.3793} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5632580526749397436 CanvasRenderer: @@ -6519,6 +8016,7 @@ GameObject: - component: {fileID: 1755208944688500795} - component: {fileID: 6916443525973237579} - component: {fileID: 3763656904659419767} + - component: {fileID: 3867069994250714290} m_Layer: 5 m_Name: TreeView m_TagString: Untagged @@ -6533,18 +8031,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8588325617128089111} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3413131598704007284} + m_Father: {fileID: 3841808193842114691} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.00005722, y: -28.314285} - m_SizeDelta: {x: 319.58, y: 674.3414} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -151.28992, y: 336.93002} + m_SizeDelta: {x: 319.58, y: 0} + m_Pivot: {x: 0, y: 1} --- !u!114 &6916443525973237579 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6586,6 +8084,141 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!114 &3867069994250714290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8588325617128089111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &8632430288773790960 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1684669606777537764} + - component: {fileID: 8101014133290532655} + - component: {fileID: 8754070082404825076} + - component: {fileID: 8416675113205287645} + m_Layer: 5 + m_Name: GotQuestBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1684669606777537764 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8632430288773790960} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1805980451046698619} + m_Father: {fileID: 8174585228173147249} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 170.7912, y: 62.3761} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8101014133290532655 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8632430288773790960} + m_CullTransparentMesh: 1 +--- !u!114 &8754070082404825076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8632430288773790960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8f24853d9cfea43389e8fb3101ffaae1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8416675113205287645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8632430288773790960} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8754070082404825076} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &8778692623211777190 GameObject: m_ObjectHideFlags: 0 @@ -6661,6 +8294,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8873318881235524731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5478060068765950545} + - component: {fileID: 1158119712588225859} + - component: {fileID: 9151364455187038631} + m_Layer: 5 + m_Name: Txt_QuestNo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5478060068765950545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8873318881235524731} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5935924508566653103} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 71.451, y: 62.034} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1158119712588225859 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8873318881235524731} + m_CullTransparentMesh: 1 +--- !u!114 &9151364455187038631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8873318881235524731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100/100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 29.95 + m_fontSizeBase: 28.36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &9151604142617537097 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab index 68453026de..970cca72bb 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab @@ -10,6 +10,8 @@ GameObject: m_Component: - component: {fileID: 5053903421260846465} - component: {fileID: 4314770845850481090} + - component: {fileID: 4762263782091224632} + - component: {fileID: 4986645933044111193} m_Layer: 5 m_Name: TreeViewItem m_TagString: Untagged @@ -30,13 +32,12 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3882154025378162395} - - {fileID: 5827054231092576763} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 250, y: 80} + m_SizeDelta: {x: 312.2704, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &4314770845850481090 MonoBehaviour: @@ -56,6 +57,46 @@ MonoBehaviour: OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &4762263782091224632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700152255263326765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &4986645933044111193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700152255263326765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &2040002976300010419 GameObject: m_ObjectHideFlags: 0 @@ -69,7 +110,7 @@ GameObject: - component: {fileID: 9062463037674165507} - component: {fileID: 1762532130762754577} m_Layer: 5 - m_Name: Image + m_Name: Button m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -86,13 +127,14 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 5827054231092576763} m_Father: {fileID: 5053903421260846465} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 313, y: 91} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2230410216357545400 CanvasRenderer: @@ -122,7 +164,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -187,6 +229,7 @@ GameObject: - component: {fileID: 5827054231092576763} - component: {fileID: 5842649278580849339} - component: {fileID: 1383932928540251694} + - component: {fileID: 3802392566423567257} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -201,17 +244,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2916175606199835458} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 5053903421260846465} + m_Father: {fileID: 3882154025378162395} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 3.5497} + m_SizeDelta: {x: 0, y: -7.0993} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5842649278580849339 CanvasRenderer: @@ -268,10 +311,10 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 61.25 - m_fontSizeBase: 36 + m_fontSize: 40 + m_fontSizeBase: 40 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 m_fontStyle: 0 @@ -312,3 +355,23 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3802392566423567257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2916175606199835458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 From 39092a47d5cb7d41b00428dcea52112c506b8fa5 Mon Sep 17 00:00:00 2001 From: MinhHai Date: Sun, 16 Nov 2025 16:46:39 +0700 Subject: [PATCH 3/4] update logic search task --- .../Scripts/Task/ATaskTemplMan.cs | 54 +- .../Scripts/Task/CECTaskInterface.cs | 185 ++++- .../Scripts/Task/TaskInterface.cs | 37 +- .../Scripts/Task/TaskTempl.Method.cs | 757 ++++++++++++++++++ Assets/PerfectWorld/Scripts/Task/TaskTempl.cs | 52 +- .../Scripts/Task/UI/TaskTreeView.cs | 27 +- .../Scripts/Task/UI/TaskTreeViewItem.cs | 37 +- .../Scripts/Task/UI/TaskWindow.cs | 320 ++++++-- 8 files changed, 1358 insertions(+), 111 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs b/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs index 85211c1766..9c336af594 100644 --- a/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs +++ b/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs @@ -208,8 +208,8 @@ namespace BrewMonster.Scripts.Task m_ExlusiveAwardTaskMap[pTask.m_FixedData.m_ID] = pTask; #if _TASK_CLIENT - if (pTask.m_FixedData.m_ulDelvNPC != 0 && pTask.m_FixedData.m_bCanSeekOut) - m_TasksCanSeekOut.Add(pTask); + if (pTask.m_FixedData.m_ulDelvNPC != 0 && pTask.m_FixedData.m_bCanSeekOut) + m_TasksCanSeekOut.Add(pTask); #endif AddTaskToMap(pTask); @@ -217,7 +217,7 @@ namespace BrewMonster.Scripts.Task private void AddTaskToMap(ATaskTempl pTempl) { - if (pTempl.m_FixedData.m_enumMethod == (ulong)TaskMethod.enumTMProtectNPC && pTempl.m_FixedData.m_ulNPCToProtect > 0) + if (pTempl.m_FixedData.m_enumMethod == (ulong)TaskCompletionMethod.enumTMProtectNPC && pTempl.m_FixedData.m_ulNPCToProtect > 0) m_ProtectNPCMap[pTempl.m_FixedData.m_ulNPCToProtect] = pTempl; m_AllTemplMap[pTempl.m_FixedData.m_ID] = pTempl; @@ -310,6 +310,54 @@ namespace BrewMonster.Scripts.Task // } return false; } + + // 可接任务列表 // Available tasks list + public void GetAvailableTasks(TaskInterface pPlayer, List lst) + { + if (lst == null) return; + if (lst.Capacity < 256) lst.Capacity = 256; // 预留容量 // reserve capacity + + string log = ""; + + int count = m_TasksCanSeekOut.Count; + for (int i = 0; i < count; i++) + { + ATaskTempl pTempl = m_TasksCanSeekOut[i]; + if (pTempl == null) continue; + + // 如果等级条件不满足则跳过 // Skip if level requirements are not met + if (!pTempl.CheckReachLevel(pPlayer)) continue; + + // 玩家可接此任务则加入列表 // If player can accept this task, add to list + + var failCode = pPlayer.CanDeliverTask(pTempl.m_FixedData.m_ID); + if (failCode == 0) + { + lst.Add(pTempl); + } + else + { + log += $"Task ID {pTempl.m_FixedData.m_ID} Fail : {failCode} \n"; + } + + if (i % 1000 == 0) + { + Debug.Log($"--- {i % 1000} Find Available Task --- \n {log}"); + log = ""; + } + } + + + } + + // 占位:可接返回0,不可接返回非0 // Placeholder: return 0 if deliverable, non-zero otherwise + // private int CanDeliverTask(TaskInterface pPlayer, uint templId) + // { + // // 后续可替换为正式逻辑 // Replace with real logic later + // var impl = pPlayer; + // return (impl != null && impl.IsDeliverLegal()) ? 0 : 1; + // } + #endif } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs index 6d0d795ecf..9db97d4859 100644 --- a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs +++ b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs @@ -445,6 +445,8 @@ namespace BrewMonster.Scripts.Task public bool IsDeliverLegal() { // return !m_pHost->IsTrading() && m_pHost->GetBoothState() == 0 && !m_pHost->IsDead(); + return true; + // TODO: implement return m_pHost.IsTrading() && m_pHost.GetBoothState() == 0 && !m_pHost.IsDead(); } @@ -512,7 +514,8 @@ namespace BrewMonster.Scripts.Task // resolve template for top-level entries; children left unresolved in C# if (entry.m_ParentIndex == (char)0xff) { - entry.m_ulTemplAddr = 0u; + // entry.m_ulTemplAddr = 0u; + entry.m_ulTemplAddr = pMan.GetTopTaskByID(entry.m_ID) != null ? 1u : 0u; ATaskTempl topTempl = pMan.GetTopTaskByID(entry.m_ID); if (topTempl != null) @@ -575,6 +578,12 @@ namespace BrewMonster.Scripts.Task { return EC_Game.GetGameRun().GetCommonData(lKey); } + // C++: long CECTaskInterface::GetGlobalValue(long lKey) + public long GetGlobalValue(long key) + { + // NOTE: Engine exposes only int common data; cast to long + return EC_Game.GetGameRun().GetCommonData((int)key); + } public byte GetShapeMask() { @@ -599,13 +608,13 @@ namespace BrewMonster.Scripts.Task ATaskTempl pTempl = GetTaskTemplMan().GetTaskTemplByID(task_id); if (pTempl == null) return false; - if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMSimpleClientTask && pTempl.m_FixedData.m_uiEmotion != 0) + if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTask && pTempl.m_FixedData.m_uiEmotion != 0) { if (m_emotionTask != null && m_emotionTask.TryGetValue(task_id, out bool finished)) return finished; return false; } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMSimpleClientTaskForceNavi) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTaskForceNavi) { return GetForceNavigateFinishFlag(); } @@ -636,6 +645,145 @@ namespace BrewMonster.Scripts.Task return false; } + // ===== Additional TaskInterface methods ported from C++ ===== + public uint GetMaxHistoryLevel() + { + // TODO: Use reincarnation tome when available (GetReincarnationTome().max_level) + return (uint)m_pHost.GetBasicProps().iLevel; + } + + public uint GetReincarnationCount() + { + // TODO: Hook to host reincarnation count when available + return 0u; + } + + public bool IsRealmExpFull() + { + // TODO: Implement via host API when available + return false; + } + + public uint GetReputation() + { + // TODO: Expose reputation on host; return 0 for now + return 0u; + } + + public int GetFactionRole() + { + // TODO: Expose faction role id on host + return 0; + } + + public bool IsInFaction(uint factionId) + { + // TODO: Expose faction id on host; cannot verify now + return false; + } + + public bool IsMale() + { + return m_pHost.m_iGender == GENDER.GENDER_MALE; + } + + public uint GetPlayerOccupation() + { + return (uint)m_pHost.m_iProfession; + } + + public uint GetCurPeriod() + { + // Maps to "second level" in basic props (realm level) + return (uint)m_pHost.GetBasicProps().iLevel2; + } + + public bool IsGM() + { + // TODO: Expose GM flag on host + return false; + } + + public bool IsShieldUser() + { + // TODO: Expose ShieldUser flag on host + return false; + } + + public bool IsMarried() + { + // TODO: Expose spouse id on host + return false; + } + + public bool IsWeddingOwner() + { + // TODO: Expose wedding scene info and compare with host id + return false; + } + + public uint GetInvEmptySlot() + { + return (uint)EC_Inventory.GetEmptySlotNum(EC_Inventory.IVTRTYPE_PACK); + } + + public int GetFactionContrib() + { + return m_pHost.GetContribInfo().cumulate_contrib; + } + + public int GetForce() + { + // TODO: Expose force id on host + return 0; + } + + public int GetForceReputation() + { + // TODO: Expose force reputation on host + return 0; + } + + public int GetForceContribution() + { + // TODO: Expose force contribution on host + return 0; + } + + public int GetExp() + { + return m_pHost.GetBasicProps().iExp; + } + + public int GetSP() + { + return m_pHost.GetBasicProps().iSP; + } + + public int GetForceActivityLevel() + { + // TODO: Expose force activity level on host + return -1; + } + + public bool IsKing() + { + // TODO: Expose king status on host + return false; + } + + public bool IsInTeam() + { + // TODO: Implement team system and check membership + return false; + } + + public uint GetAccountTotalCash() + { + // TODO: Expose account total cash on host/session + return 0u; + } + #if _TASK_CLIENT // Prepare award preview based on task and state public void GetTaskAwardPreview(uint ulTaskId, ref Task_Award_Preview p, bool bActiveTask=true) @@ -807,6 +955,23 @@ namespace BrewMonster.Scripts.Task return 0u; } + + public uint CanDeliverTask(uint ulTaskId) + { + ATaskTempl pTempl = GetTaskTemplMan().GetTopTaskByID(ulTaskId); + if (pTempl == null) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NO_TASK; + + if (!IsDeliverLegal()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_INDETERMINATE; + + // return pTempl->CheckPrerequisite(this, static_cast(GetActiveTaskList()), GetCurTime(), true, true, false); + return pTempl.CheckPrerequisite(this, GetActiveTaskList(), GetCurTime(), true, true, false); + + // if (!pTempl.CheckReachLevel(this)) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_LEVEL; + // uint keyCheck = pTempl.CheckGlobalKeyValue(this, false); + // if (keyCheck != 0u) return keyCheck; + + return 0u; + } #endif @@ -885,7 +1050,7 @@ namespace BrewMonster.Scripts.Task if (pTempl.m_FixedData.m_ulGoldWanted != 0) pInfo.m_ulGoldWanted = pTempl.m_FixedData.m_ulGoldWanted; // 任务类型分支 // Task method branches - if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMCollectNumArticle) + if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMCollectNumArticle) { for (int j = 0; j < pTempl.m_FixedData.m_ulItemsWanted; j++) { @@ -895,7 +1060,7 @@ namespace BrewMonster.Scripts.Task pInfo.m_ItemsWanted[j].m_ulItemsGained = ATaskTempl._get_item_count(this, iw.m_ulItemTemplId, iw.m_bCommonItem); } } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMKillNumMonster) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMKillNumMonster) { int ulItemCount = 0; int ulMonsterCount = 0; @@ -926,7 +1091,7 @@ namespace BrewMonster.Scripts.Task } } } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMKillPlayer) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMKillPlayer) { int ulItemCount = 0; int ulPlayerCount = 0; @@ -957,20 +1122,20 @@ namespace BrewMonster.Scripts.Task } } } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMProtectNPC) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMProtectNPC) { pInfo.m_ulNPCToProtect = pTempl.m_FixedData.m_ulNPCToProtect; pInfo.m_ulProtectTime = pTempl.m_FixedData.m_ulProtectTimeLen; } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMWaitTime) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMWaitTime) { pInfo.m_ulWaitTime = pTempl.m_FixedData.m_ulWaitTime; } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMGlobalValOK) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMGlobalValOK) { pTempl.GetGlobalTaskChar(this, pInfo.m_TaskCharArr); } - else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMReachLevel) + else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMReachLevel) { pInfo.m_ulReachLevel = pTempl.m_FixedData.m_ulReachLevel; pInfo.m_ulReachReincarnation = pTempl.m_FixedData.m_ulReachReincarnationCount; diff --git a/Assets/PerfectWorld/Scripts/Task/TaskInterface.cs b/Assets/PerfectWorld/Scripts/Task/TaskInterface.cs index 7eb9efb4f9..2a31733edf 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskInterface.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskInterface.cs @@ -41,11 +41,44 @@ namespace BrewMonster.Scripts.Task bool HasTask(uint ulTaskId); - #if _TASK_CLIENT +#if _TASK_CLIENT void GetTaskAwardPreview(uint ulTaskId,ref Task_Award_Preview p, bool bActiveTask = true); uint GetTaskCount(); uint GetTaskId(uint ulIndex); - #endif + + uint CanDeliverTask(uint ulTaskId); +#endif + // bool HasTask(uint taskId); + // bool CheckTaskForbid(uint taskId); + long GetGlobalValue(long key); + // uint GetPlayerLevel(); + uint GetMaxHistoryLevel(); + uint GetReincarnationCount(); + bool IsRealmExpFull(); + uint GetReputation(); + // uint GetGoldNum(); + int GetFactionRole(); + bool IsInFaction(uint factionId); + bool IsMale(); + uint GetPlayerOccupation(); + uint GetCurPeriod(); + bool IsGM(); + bool IsShieldUser(); + bool IsMarried(); + // bool IsAtCrossServer(); + bool IsWeddingOwner(); + uint GetInvEmptySlot(); + int GetFactionContrib(); + // byte GetShapeMask(); + int GetForce(); + int GetForceReputation(); + int GetForceContribution(); + int GetExp(); + int GetSP(); + int GetForceActivityLevel(); + bool IsKing(); + bool IsInTeam(); + uint GetAccountTotalCash(); } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs b/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs index ed260ece41..ede8415632 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskTempl.Method.cs @@ -5,6 +5,270 @@ namespace BrewMonster.Scripts.Task { public partial class ATaskTempl { + public uint GetID() + { + return m_FixedData.m_ID; + } + + // Process Part + + public uint CheckPrerequisite( + TaskInterface pTask, + ActiveTaskList pList, + uint ulCurTime, + bool bCheckPrevTask = true, + bool bCheckTeam = true, + bool bCheckBudge = true, + bool bCheckLevel = true) + { + uint ulRet = 0u; + + // �����Ǹ��ڵ� // English: Not the root node + if (m_pParent != null) + { + ulRet = (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NOT_ROOT; + goto ret_here; + } + + if (bCheckBudge) + { + ulRet = CheckBudget(pList); + if (ulRet != 0u) goto ret_here; + } + // else if (pList->GetEntry(m_ID)) // English: Already has the same task + else if (pTask.HasTask(m_FixedData.m_ID)) + { + ulRet = (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_SAME_TASK; + goto ret_here; + } + + // �Ƿ����� // English: Is task forbidden + if (pTask.CheckTaskForbid(m_FixedData.m_ID)) + { + ulRet = (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_TASK_FORBID; + goto ret_here; + } + + // ��ΪPQ�����ж������Ƿ��Ѿ���PQ���� // English: If current is PQ task, ensure no existing PQ task + if (m_FixedData.m_bPQTask) + { + for (byte i = 0; i < pList.m_uTaskCount; i++) + { + var CurEntry = pList.m_TaskEntries[i]; + if (CurEntry == null) continue; + ATaskTempl pTempl = CurEntry.GetTempl(); + + if (pTempl != null && pTempl.m_FixedData.m_bPQTask) + { + ulRet = (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_ALREADY_HAS_PQ; + goto ret_here; + } + } + } + + ulRet = CheckGivenItems(pTask); + if (ulRet != 0u) goto ret_here; + + // �Ƿ����㷢��ʱ�� // English: Check if within delivery timetable + ulRet = CheckTimetable(ulCurTime); + if (ulRet != 0u) goto ret_here; + + // ����ʱ���� // English: Check deliver time + ulRet = CheckDeliverTime(pTask, ulCurTime); + if (ulRet != 0u) goto ret_here; + + ulRet = CheckFnshLst(pTask, ulCurTime); + if (ulRet != 0u) goto ret_here; + + // �Ƿ�ﵽ�˺�������ɴ��� // English: Check daily deliver count limit + ulRet = CheckDeliverCount(pTask); + if (ulRet != 0u) goto ret_here; + + // �Ƿ�ﵽ��ֵ��� // English: Check RMB/account balance + ulRet = CheckAccountRMB(pTask); + if (ulRet != 0u) goto ret_here; + + // �Ƿ������ɫ������¼ʱ������ // English: Check character time requirements + ulRet = CheckCharTime(pTask); + if (ulRet != 0u) goto ret_here; + + // Check Level // English: Level constraints + if (bCheckLevel) + { + ulRet = CheckLevel(pTask); + if (ulRet != 0u) goto ret_here; + } + + // ת������ // English: Reincarnation constraints + ulRet = CheckReincarnation(pTask); + if (ulRet != 0u) goto ret_here; + + // ����ȼ� // English: Realm level constraints + ulRet = CheckRealmLevel(pTask); + if (ulRet != 0u) goto ret_here; + + // ���羭���Ƿ����� // English: Realm exp full check + ulRet = CheckRealmExpFull(pTask); + if (ulRet != 0u) goto ret_here; + + // ���� // English: Reputation check + ulRet = CheckRepu(pTask); + if (ulRet != 0u) goto ret_here; + + // Ѻ�� // English: Deposit check + ulRet = CheckDeposit(pTask); + if (ulRet != 0u) goto ret_here; + + // ������Ʒ // English: Items check + ulRet = CheckItems(pTask); + if (ulRet != 0u) goto ret_here; + + // ���� // English: Faction check + ulRet = CheckFaction(pTask); + if (ulRet != 0u) goto ret_here; + + // �Ա� // English: Gender check + ulRet = CheckGender(pTask); + if (ulRet != 0u) goto ret_here; + + // ְҵ // English: Occupation check + ulRet = CheckOccupation(pTask); + if (ulRet != 0u) goto ret_here; + + // �����ض�ʱ�� // English: Specific period check + ulRet = CheckPeriod(pTask); + if (ulRet != 0u) goto ret_here; + + // �Ƿ�GM // English: GM check + ulRet = CheckGM(pTask); + if (ulRet != 0u) goto ret_here; + + // �Ƿ���������û� // English: Shielded user check + ulRet = CheckShieldUser(pTask); + if (ulRet != 0u) goto ret_here; + + // �������� // English: Previous task check + if (bCheckPrevTask) + { + ulRet = CheckPreTask(pTask); + if (ulRet != 0u) goto ret_here; + } + + // �������� // English: Mutex task check + ulRet = CheckMutexTask(pTask, ulCurTime); + if (ulRet != 0u) goto ret_here; + + // ���򴥷� // English: In-zone trigger check + ulRet = CheckInZone(pTask); + if (ulRet != 0u) goto ret_here; + + // ������� // English: Team task check + if (bCheckTeam) + { + ulRet = CheckTeamTask(pTask); + if (ulRet != 0u) goto ret_here; + } + + // ���� // English: Spouse check + ulRet = CheckSpouse(pTask); + if (ulRet != 0u) goto ret_here; + + ulRet = CheckWeddingOwner(pTask); + if (ulRet != 0u) goto ret_here; + + // ���� // English: Marriage check + ulRet = CheckMarriage(pTask); + if (ulRet != 0u) goto ret_here; + + // ����������� // English: Living skill check + ulRet = CheckLivingSkill(pTask); + if (ulRet != 0u) goto ret_here; + + // �������� // English: Special award activity check + ulRet = CheckSpecialAward(pTask); + if (ulRet != 0u) goto ret_here; + + // ȫ��key/value // English: Global key/value + ulRet = CheckGlobalKeyValue(pTask, false); + if (ulRet != 0u) goto ret_here; + + if (m_FixedData.m_bCompareItemAndInventory) + { + ulRet = CheckIvtrEmptySlot(pTask); + if (ulRet != 0u) goto ret_here; + } + // ���ɹ��׶� // English: Faction contribution check + ulRet = CheckFactionContrib(pTask); + if (ulRet != 0u) goto ret_here; + + // ��¼��ɽ��������ɸ��� // English: Recorded tasks number check + ulRet = CheckRecordTasksNum(pTask); + if (ulRet != 0u) goto ret_here; + + // ����״̬ // English: Transform mask check + ulRet = CheckTransform(pTask); + if (ulRet != 0u) goto ret_here; + + // ���� // English: Force check + ulRet = CheckForce(pTask); + if (ulRet != 0u) goto ret_here; + + // �������� // English: Force reputation check + ulRet = CheckForceReputation(pTask); + if (ulRet != 0u) goto ret_here; + + // ����ս�� // English: Force contribution check + ulRet = CheckForceContribution(pTask); + if (ulRet != 0u) goto ret_here; + + // ����ֵ // English: EXP check + ulRet = CheckExp(pTask); + if (ulRet != 0u) goto ret_here; + + // Ԫ��ֵ // English: SP check + ulRet = CheckSP(pTask); + if (ulRet != 0u) goto ret_here; + + // ������Ծ�ȼ� // English: Force activity level check + ulRet = CheckForceActivityLevel(pTask); + if (ulRet != 0u) goto ret_here; + + // ���� // English: King check + ulRet = CheckKing(pTask); + if (ulRet != 0u) goto ret_here; + + // ������� // English: Not in team check + ulRet = CheckNotInTeam(pTask); + if (ulRet != 0u) goto ret_here; + // �ƺ� // English: Title check + ulRet = CheckTitle(pTask); + if (ulRet != 0u) goto ret_here; + + // ��ʷ�ƽ��׶� // English: History stage check + ulRet = CheckHistoryStage(pTask); + if (ulRet != 0u) goto ret_here; + + // �ռ����� // English: Card collection count check + ulRet = CheckCardCollection(pTask); + if (ulRet != 0u) goto ret_here; + + // ����ijƷ��ӵ������ // English: Specific card rank count check + ulRet = CheckCardRankCount(pTask); + if (ulRet != 0u) goto ret_here; + + // �����󣬲��ܽ�ȡǿ���ƶ����� // English: No navigate when in transform shape + ulRet = CheckInTransformShape(pTask); + if (ulRet != 0u) goto ret_here; + + ret_here: + + // TODO: pTask.GetPlayerId() not available in managed interface; use 0 + string log = $"CheckPrerequisite: ret = {ulRet}"; + CECTaskInterface.WriteLog(0, (int)m_FixedData.m_ID, 1, log); + + return ulRet; + } + #if _TASK_CLIENT // bool CanShowTask (TaskInterface* pTask) const; // bool HasShowCond() const; @@ -290,5 +554,498 @@ namespace BrewMonster.Scripts.Task return m.m_FixedData.m_bKeyTask; } + + // ===== Missing methods converted from C++ (TaskTempl.inl) ===== + // 保留原中文注释,并在旁加入英文翻译 + + // inline unsigned long _get_item_count(TaskInterface* pTask, unsigned long ulItemId, bool bCommon) + // 获取道具数量(通用/任务) // English: Get item count (common/task) + // public static uint _get_item_count(TaskInterface pTask, uint ulItemId, bool bCommon) + // { + // return bCommon ? pTask.GetCommonItemCount(ulItemId) : pTask.GetTaskItemCount(ulItemId); + // } + + // inline unsigned long ATaskTempl::CheckBudget(ActiveTaskList* pList) const + // 检查任务栏容量与空间 // English: Check task list budget and space + public uint CheckBudget(ActiveTaskList pList) + { + // TODO: Convert full logic with TASK_HIDDEN_COUNT/TASK_TITLE_TASK_COUNT/TASK_ACTIVE_LIST_MAX_LEN and list counters when constants and fields are available + // 占位返回通过 // English: Placeholder pass + return 0u; + } + + // inline unsigned long ATaskTempl::CheckGivenItems(TaskInterface* pTask) const + // 检查交付所需道具容量合法性 // English: Check deliverable item capacity + public uint CheckGivenItems(TaskInterface pTask) + { + // TODO: Use m_FixedData.m_ulGivenItems, m_ulGivenCmnCount, m_ulGivenTskCount and pTask.CanDeliver* API when fields confirmed + return 0u; + } + + // inline unsigned long ATaskTempl::CheckTimetable(unsigned long ulCurTime) const + // 检查任务可接时间表 // English: Check task timetable window + public uint CheckTimetable(uint ulCurTime) + { + // TODO: Implement judge_time_date against m_FixedData.m_tmStart/m_tmEnd/m_tmType + return 0u; + } + + // inline unsigned long ATaskTempl::CheckDeliverTime(TaskInterface* pTask, unsigned long ulCurTime) const + // 检查任务发放频率限制(日/周/月/年) // English: Check deliver frequency limits (day/week/month/year) + public uint CheckDeliverTime(TaskInterface pTask, uint ulCurTime) + { + // TODO: Implement with FinishedTimeList/FinishedCntList and timezone bias when types are available + return 0u; + } + + // inline unsigned long ATaskTempl::CheckFnshLst(TaskInterface* pTask, unsigned long ulCurTime) const + // 检查完成与失败记录是否允许重复领取 // English: Check finished/failed list for redo permissions + public uint CheckFnshLst(TaskInterface pTask, uint ulCurTime) + { + // TODO: Implement using FinishedTaskList and m_FixedData.m_bCanRedo/m_bCanRedoAfterFailure + return 0u; + } + + // inline unsigned long ATaskTempl::CheckDeliverCount(TaskInterface* pTask) const + // 检查周期内角色/账号次数限制 // English: Check period deliver counts for role/account + public uint CheckDeliverCount(TaskInterface pTask) + { + // TODO: Implement with FinishedCountList/FinishedTaskList based on account/role limits + return 0u; + } + + // inline unsigned long ATaskTempl::CheckAccountRMB(TaskInterface* pTask) const + // 检查账号现金(RMB)范围 // English: Check account total cash (RMB) range + public uint CheckAccountRMB(TaskInterface pTask) + { + if (m_FixedData.m_ulPremRMBMin != 0u && m_FixedData.m_ulPremRMBMax != 0u) + { + uint total = pTask.GetAccountTotalCash(); + if (total < m_FixedData.m_ulPremRMBMin || total > m_FixedData.m_ulPremRMBMax) + { + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_RMB_NOT_ENOUGH; + } + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckCharTime(TaskInterface* pTask) const + // 检查角色创建/登录时间窗口 // English: Check character time window + public uint CheckCharTime(TaskInterface pTask) + { + // TODO: Implement using m_FixedData.m_bCharTime, m_iCharStartTime/m_iCharEndTime, m_tmCharEndTime and pTask time APIs + return 0u; + } + + // inline unsigned long ATaskTempl::CheckLevel(TaskInterface* pTask) const + // 等级上下限 // English: Level min/max + public uint CheckLevel(TaskInterface pTask) + { + uint level = m_FixedData.m_bPremCheckMaxHistoryLevel > 0 ? pTask.GetMaxHistoryLevel() : pTask.GetPlayerLevel(); + if (m_FixedData.m_ulPremise_Lev_Min != 0u && level < m_FixedData.m_ulPremise_Lev_Min) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_LEVEL; + if (m_FixedData.m_ulPremise_Lev_Max != 0u && level > m_FixedData.m_ulPremise_Lev_Max) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_ABOVE_LEVEL; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckReincarnation(TaskInterface* pTask) const + // 转生次数上下限 // English: Reincarnation count min/max + public uint CheckReincarnation(TaskInterface pTask) + { + if (m_FixedData.m_bPremCheckReincarnation) + { + uint count = pTask.GetReincarnationCount(); + if (count < m_FixedData.m_ulPremReincarnationMin) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_REINCARNATION; + if (count > m_FixedData.m_ulPremReincarnationMax) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_ABOVE_REINCARNATION; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckRealmLevel(TaskInterface* pTask) const + // 修真境界等级 // English: Realm level + public uint CheckRealmLevel(TaskInterface pTask) + { + if (m_FixedData.m_bPremCheckRealmLevel) + { + uint level = GetRealmLevel(pTask); + if (level < m_FixedData.m_ulPremRealmLevelMin) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_REALMLEVEL; + if (level > m_FixedData.m_ulPremRealmLevelMax) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_ABOVE_REALMLEVEL; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckRealmExpFull(TaskInterface* pTask) const + // 修真经验是否已满 // English: Realm EXP full check + public uint CheckRealmExpFull(TaskInterface pTask) + { + if (m_FixedData.m_bPremCheckRealmExpFull) + { + if (!pTask.IsRealmExpFull()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_REALM_EXP_FULL; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckRepu(TaskInterface* pTask) const + // 声望上下限 // English: Reputation min/max + public uint CheckRepu(TaskInterface pTask) + { + if (m_FixedData.m_lPremise_Reputation != 0 && pTask.GetReputation() < (uint)m_FixedData.m_lPremise_Reputation) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_REPU; + if (m_FixedData.m_lPremise_RepuMax != 0 && pTask.GetReputation() > (uint)m_FixedData.m_lPremise_RepuMax) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_REPU; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckDeposit(TaskInterface* pTask) const + // 寄存金(金币) // English: Deposit (gold) + public uint CheckDeposit(TaskInterface pTask) + { + if (m_FixedData.m_ulPremise_Deposit != 0u && pTask.GetGoldNum() < m_FixedData.m_ulPremise_Deposit) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NO_DEPOSIT; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckItems(TaskInterface* pTask) const + // 前置道具检查(任一/全部) // English: Prerequisite item check (any/ALL) + public uint CheckItems(TaskInterface pTask) + { + // TODO: Implement using m_FixedData.m_ulPremItems, m_bPremItemsAnyOne, m_PremItems[] + return 0u; + } + + // inline unsigned long ATaskTempl::CheckFaction(TaskInterface* pTask) const + // 家族/帮派及职位 // English: Faction/clan and role + public uint CheckFaction(TaskInterface pTask) + { + int role = pTask.GetFactionRole(); + bool roleOk = role <= m_FixedData.m_iPremise_FactionRole; + if (m_FixedData.m_ulPremise_Faction != 0u && !(pTask.IsInFaction(m_FixedData.m_ulPremise_Faction) && roleOk)) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CLAN; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckGender(TaskInterface* pTask) const + // 性别 // English: Gender + public uint CheckGender(TaskInterface pTask) + { + bool isMale = pTask.IsMale(); + if (m_FixedData.m_ulGender == TaskTemplConstants.TASK_GENDER_MALE && !isMale) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WRONG_GENDER; + if (m_FixedData.m_ulGender == TaskTemplConstants.TASK_GENDER_FEMALE && isMale) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WRONG_GENDER; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckOccupation(TaskInterface* pTask) const + // 职业 // English: Occupation + public uint CheckOccupation(TaskInterface pTask) + { + if (m_FixedData.m_ulOccupations == 0u) return 0u; + uint current = pTask.GetPlayerOccupation(); + for (uint i = 0; i < m_FixedData.m_ulOccupations; i++) + { + if (m_FixedData.m_Occupations[i] == current) + return 0u; + } + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NOT_IN_OCCU; + } + + // inline unsigned long ATaskTempl::CheckPeriod(TaskInterface* pTask) const + // 历练阶段(区间) // English: Period check (interval) + public uint CheckPeriod(TaskInterface pTask) + { + uint cur = pTask.GetCurPeriod(); + if (cur < m_FixedData.m_ulPremise_Period) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WRONG_PERIOD; + if (m_FixedData.m_ulPremise_Period < 20u) return 0u; + if (m_FixedData.m_ulPremise_Period < 30u) return cur < 30u ? 0u : (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WRONG_PERIOD; + if (m_FixedData.m_ulPremise_Period < 40u) return cur < 40u ? 0u : (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WRONG_PERIOD; + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WRONG_PERIOD; + } + + // inline unsigned long ATaskTempl::CheckGM(TaskInterface* pTask) const + // GM 限制 // English: GM check + public uint CheckGM(TaskInterface pTask) + { + return m_FixedData.m_bGM ? (pTask.IsGM() ? 0u : (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_GM) : 0u; + } + + // inline unsigned long ATaskTempl::CheckShieldUser(TaskInterface* pTask) const + // 屏蔽用户 // English: Shielded user + public uint CheckShieldUser(TaskInterface pTask) + { + return m_FixedData.m_bShieldUser ? (pTask.IsShieldUser() ? 0u : (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_SHIELD_USER) : 0u; + } + + // inline unsigned long ATaskTempl::CheckPreTask(TaskInterface* pTask) const + // 前置任务 // English: Previous tasks + public uint CheckPreTask(TaskInterface pTask) + { + // TODO: Implement using FinishedTaskList and m_FixedData.m_ulPremise_Tasks[*] + return 0u; + } + + // (No inline in provided snippet) 互斥任务 // English: Mutex task + public uint CheckMutexTask(TaskInterface pTask, uint ulCurTime) + { + // TODO: Implement when mutex task data is available + return 0u; + } + + // inline unsigned long ATaskTempl::CheckInZone(TaskInterface* pTask) const + // 区域检查 // English: In-zone check + public uint CheckInZone(TaskInterface pTask) + { + // TODO: Implement worldId + region bounding box check using m_FixedData.m_ulDelvWorld and m_pDelvRegion + return 0u; + } + + // inline unsigned long ATaskTempl::CheckTeamTask(TaskInterface* pTask) const + // 组队接任务要求 // English: Team-task requirements + public uint CheckTeamTask(TaskInterface pTask) + { + // TODO: Implement full team captain and member checks per HasAllTeamMemsWanted + return 0u; + } + + // inline unsigned long ATaskTempl::CheckSpouse(TaskInterface* pTask) const + // 配偶要求 // English: Spouse requirement + public uint CheckSpouse(TaskInterface pTask) + { + if (m_FixedData.m_bPremise_Spouse && !pTask.IsMarried()) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_INDETERMINATE; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckWeddingOwner(TaskInterface* pTask) const + // 婚礼举办者检查 // English: Wedding owner check + public uint CheckWeddingOwner(TaskInterface pTask) + { + if (m_FixedData.m_bPremiseWeddingOwner) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_MARRIAGE; + if (!pTask.IsWeddingOwner()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_WEDDING_OWNER; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckMarriage(TaskInterface* pTask) const + // 结婚任务条件 // English: Marriage task requirements + public uint CheckMarriage(TaskInterface pTask) + { + // TODO: Implement two-person team with opposite gender per original logic if APIs exist + return 0u; + } + + // inline unsigned long ATaskTempl::CheckLivingSkill(TaskInterface* pTask) const + // 生活技能等级 // English: Living skill level + public uint CheckLivingSkill(TaskInterface pTask) + { + // TODO: Loop m_FixedData.m_lSkillLev[MAX_LIVING_SKILLS] with skill ids and pTask.HasLivingSkill/GetLivingSkillLevel + return 0u; + } + + // inline unsigned long ATaskTempl::CheckIvtrEmptySlot(TaskInterface* pTask) const + // 背包空位检查 // English: Inventory empty slot check + public uint CheckIvtrEmptySlot(TaskInterface pTask) + { + if (!m_FixedData.m_bCompareItemAndInventory) return 0u; + if (pTask.GetInvEmptySlot() < m_FixedData.m_ulInventorySlotNum) + { + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NOT_IVTRSLOTNUM; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckFactionContrib(TaskInterface* pTask) const + // 家族贡献 // English: Faction contribution + public uint CheckFactionContrib(TaskInterface pTask) + { + int contrib = pTask.GetFactionContrib(); + if (m_FixedData.m_iPremiseFactionContrib != 0 && contrib < m_FixedData.m_iPremiseFactionContrib) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_BELOW_FACTION_CONTRIB; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckRecordTasksNum(TaskInterface* pTask) const + // 完成记录任务数量 // English: Finished-record tasks count + public uint CheckRecordTasksNum(TaskInterface pTask) + { + // TODO: Implement using FinishedTaskList scanning for recorded tasks count + return 0u; + } + + // inline unsigned long ATaskTempl::CheckTransform(TaskInterface* pTask) const + // 变身形态 // English: Transform mask + public uint CheckTransform(TaskInterface pTask) + { + byte playerShapeType = pTask.GetShapeMask(); + // 0xFF 不限制 // English: 0xFF = no restriction + if (m_FixedData.m_ucPremiseTransformedForm == 0xFF) return 0u; + // 职业变身 // English: Occupation transform + if (m_FixedData.m_ucPremiseTransformedForm == 0x80) + { + if ((playerShapeType >> 6) != 2) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_TRANSFORM_MASK; + return 0u; + } + // 指定形态 // English: Specific form + if (m_FixedData.m_ucPremiseTransformedForm != playerShapeType) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_TRANSFORM_MASK; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckForce(TaskInterface* pTask) const + // 势力检查 // English: Force check + public uint CheckForce(TaskInterface pTask) + { + if (m_FixedData.m_bPremCheckForce) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_FORCE; + if (m_FixedData.m_iPremForce == -1) + { + if (pTask.GetForce() == 0) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_FORCE; + } + else if (pTask.GetForce() != m_FixedData.m_iPremForce) + { + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_FORCE; + } + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckForceReputation(TaskInterface* pTask) const + // 势力声望 // English: Force reputation + public uint CheckForceReputation(TaskInterface pTask) + { + if (m_FixedData.m_iPremForceReputation != 0) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_FORCE; + if (pTask.GetForceReputation() < m_FixedData.m_iPremForceReputation) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_FORCE_REPUTATION; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckForceContribution(TaskInterface* pTask) const + // 势力贡献 // English: Force contribution + public uint CheckForceContribution(TaskInterface pTask) + { + if (m_FixedData.m_iPremForceContribution != 0) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_FORCE; + if (pTask.GetForceContribution() < m_FixedData.m_iPremForceContribution) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_FORCE_REPUTATION; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckExp(TaskInterface* pTask) const + // 势力经验 // English: Force EXP + public uint CheckExp(TaskInterface pTask) + { + if (m_FixedData.m_iPremForceExp != 0) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_FORCE; + if (pTask.GetExp() < m_FixedData.m_iPremForceExp) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_EXP; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckSP(TaskInterface* pTask) const + // 势力SP // English: Force SP + public uint CheckSP(TaskInterface pTask) + { + if (m_FixedData.m_iPremForceSP != 0) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_FORCE; + if (pTask.GetSP() < m_FixedData.m_iPremForceSP) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_SP; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckForceActivityLevel(TaskInterface* pTask) const + // 势力活跃等级 // English: Force activity level + public uint CheckForceActivityLevel(TaskInterface pTask) + { + if (m_FixedData.m_iPremForceActivityLevel != -1) + { + if (pTask.IsAtCrossServer()) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_CROSSSERVER_NO_FORCE; + if (m_FixedData.m_iPremForceActivityLevel != pTask.GetForceActivityLevel()) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_FORCE_AL; + } + return 0u; + } + + // inline unsigned long ATaskTempl::CheckKing(TaskInterface* pTask) const + // 王检查 // English: King check + public uint CheckKing(TaskInterface pTask) + { + if (m_FixedData.m_bPremIsKing && !pTask.IsKing()) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_KING; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckNotInTeam(TaskInterface* pTask) const + // 不在队伍 // English: Not in team + public uint CheckNotInTeam(TaskInterface pTask) + { + if (m_FixedData.m_bPremNotInTeam && pTask.IsInTeam()) + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_IN_TEAM; + return 0u; + } + + // inline unsigned long ATaskTempl::CheckTitle(TaskInterface* pTask) const + // 称号检查 // English: Title check + public uint CheckTitle(TaskInterface pTask) + { + // TODO: Implement using m_FixedData.m_iPremTitleNumTotal/m_iPremTitleNumRequired and award title arrays + return 0u; + } + + // inline unsigned long ATaskTempl::CheckHistoryStage(TaskInterface* pTask) const + // 历史阶段 // English: History stage + public uint CheckHistoryStage(TaskInterface pTask) + { + // TODO: Implement using pTask.GetCurHistoryStageIndex() and m_FixedData.m_iPremHistoryStageIndex[2] + return 0u; + } + + // inline unsigned long ATaskTempl::CheckCardCollection(TaskInterface* pTask) const + // 将星卡收集数量 // English: General card collection count + public uint CheckCardCollection(TaskInterface pTask) + { + // TODO: Implement using pTask.GetObtainedGeneralCardCount() and m_FixedData.m_ulPremGeneralCardCount + return 0u; + } + + // inline unsigned long ATaskTempl::CheckCardRankCount(TaskInterface* pTask) const + // 指定品级将星卡数量 // English: Specific rank general card count + public uint CheckCardRankCount(TaskInterface pTask) + { + // TODO: Implement using pTask.GetObtainedGeneralCardCountByRank(rank) and m_FixedData fields + return 0u; + } + + // inline unsigned long ATaskTempl::CheckInTransformShape(TaskInterface* pTask) const + // 变身中禁止导航 // English: No navigate while in shaped + public uint CheckInTransformShape(TaskInterface pTask) + { + if (m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTaskForceNavi && pTask.GetShapeMask() != 0) + { + return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NO_NAVIGATE_INSHPAED; + } + return 0u; + } + + // 特殊活动奖励检查 // English: Special award activity check + public uint CheckSpecialAward(TaskInterface pTask) + { + // 非“特殊活动奖励”类型则直接通过 // English: Pass if not a special-award dynamic task + if (m_FixedData.m_DynTaskType != (byte)DynTaskType.enumDTTSpecialAward) return 0u; + // 未配置特殊奖励标识则失败 // English: Fail if special award id not configured + if (m_FixedData.m_ulSpecialAward == 0u) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_SPECIAL_AWARD; + + // TODO: 获取玩家特殊奖励信息并校验 // English: Fetch player's special-award info and validate against required id + // 受限于当前 TaskInterface 未暴露获取接口,暂时视为通过 // English: Interface lacks API; treat as pass for now + return 0u; + } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs b/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs index 482bea78fc..4f509ec9f1 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs @@ -1132,27 +1132,27 @@ namespace BrewMonster.Scripts.Task /// /// Completion Method /// - public enum TaskMethod - { - enumTMNone = 0, // None - enumTMKillNumMonster, // Kill a number of monsters - enumTMCollectNumArticle, // Collect a number of items - enumTMTalkToNPC, // Talk to a specific NPC - enumTMReachSite, // Reach a specific location - enumTMWaitTime, // Wait for a specified time - enumTMAnswerQuestion, // Answer a question - enumTMTinyGame, // Mini-game - enumTMProtectNPC, // Protect a specific NPC - enumTMNPCReachSite, // NPC reaches a specific location - enumTMGlobalValOK, // Global variable condition satisfied - enumTMLeaveSite, // Leave a specific location - enumTMReachTreasureZone, // Reach the treasure area - enumTMKillPlayer, // Kill another player - enumTMTransform, // Transform state - enumTMReachLevel, // Check level: normal level, rebirth count, realm level - enumTMSimpleClientTask, // Simple client task (only client-side validation, currently just checks UI triggers) - enumTMSimpleClientTaskForceNavi // Force navigation - } + // public enum TaskCompletionMethod + // { + // enumTMNone = 0, // None + // enumTMKillNumMonster, // Kill a number of monsters + // enumTMCollectNumArticle, // Collect a number of items + // enumTMTalkToNPC, // Talk to a specific NPC + // enumTMReachSite, // Reach a specific location + // enumTMWaitTime, // Wait for a specified time + // enumTMAnswerQuestion, // Answer a question + // enumTMTinyGame, // Mini-game + // enumTMProtectNPC, // Protect a specific NPC + // enumTMNPCReachSite, // NPC reaches a specific location + // enumTMGlobalValOK, // Global variable condition satisfied + // enumTMLeaveSite, // Leave a specific location + // enumTMReachTreasureZone, // Reach the treasure area + // enumTMKillPlayer, // Kill another player + // enumTMTransform, // Transform state + // enumTMReachLevel, // Check level: normal level, rebirth count, realm level + // enumTMSimpleClientTask, // Simple client task (only client-side validation, currently just checks UI triggers) + // enumTMSimpleClientTaskForceNavi // Force navigation + // } [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct COMPARE_KEY_VALUE @@ -3989,13 +3989,13 @@ namespace BrewMonster.Scripts.Task // 根据完成方式设置掩码 // Set mask according to completion method uint method = m_FixedData.m_enumMethod; - if (method == (uint)TaskMethod.enumTMKillNumMonster) + if (method == (uint)TaskCompletionMethod.enumTMKillNumMonster) m_ulMask = (uint)TaskInterfaceConstants.TASK_MASK_KILL_MONSTER; - else if (method == (uint)TaskMethod.enumTMCollectNumArticle) + else if (method == (uint)TaskCompletionMethod.enumTMCollectNumArticle) m_ulMask = (uint)TaskInterfaceConstants.TASK_MASK_COLLECT_ITEM; - else if (method == (uint)TaskMethod.enumTMTalkToNPC) + else if (method == (uint)TaskCompletionMethod.enumTMTalkToNPC) m_ulMask = (uint)TaskInterfaceConstants.TASK_MASK_TALK_TO_NPC; - else if (method == (uint)TaskMethod.enumTMKillPlayer) + else if (method == (uint)TaskCompletionMethod.enumTMKillPlayer) m_ulMask = (uint)TaskInterfaceConstants.TASK_MASK_KILL_PLAYER; // PQ子任务使用对应掩码 // PQ subtask uses corresponding mask @@ -4031,7 +4031,7 @@ namespace BrewMonster.Scripts.Task m_FixedData.m_ulNextSibling = (m_pNextSibling != null) ? m_pNextSibling.m_FixedData.m_ID : 0u; m_FixedData.m_ulPrevSibling = (m_pPrevSibling != null) ? m_pPrevSibling.m_FixedData.m_ID : 0u; m_FixedData.m_ulFirstChild = (m_pFirstChild != null) ? m_pFirstChild.m_FixedData.m_ID : 0u; - if (m_pFirstChild != null) m_FixedData.m_enumMethod = (uint)TaskMethod.enumTMNone; + if (m_pFirstChild != null) m_FixedData.m_enumMethod = (uint)TaskCompletionMethod.enumTMNone; } // 添加子任务到层级结构 // Add sub task to hierarchy diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs index b6a8f00f7b..8ba28cf49f 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs @@ -1,6 +1,8 @@ using System; +using System.Collections; using UnityEngine; using UnityEngine.Events; +using UnityEngine.UI; namespace BrewMonster.PerfectWorld.Scripts.Task.UI { @@ -19,7 +21,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI SetSelectedItem(evt.Data); }); } - + public void SetItemData(TaskTreeViewItem item, uint taskType) { item.SetItemData(taskType); @@ -60,6 +62,8 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // Parent: root (this) if null; otherwise under given parent item var parentTransform = (pParent != null ? pParent.transform : this.transform); go.transform.SetParent(parentTransform, false); + RefreshLayout(parentTransform.GetComponent()); + RefreshLayout(this.GetComponent()); // Set sibling position: after specific item if provided; otherwise append to end if (pAfter != null && pAfter.transform.parent == parentTransform) @@ -79,10 +83,22 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // Refresh local cache of items m_aTreeViewItems = GetComponentsInChildren(); - + return pItem; } + public void DeleteAllItems() + { + foreach (Transform child in transform) + { + Destroy(child.gameObject); + } + + m_aTreeViewItems = null; + _currentSelectedItem = null; + } + + public TaskTreeViewItem GetItemByData(uint taskType) { if (m_aTreeViewItems == null) @@ -110,6 +126,13 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI { _currentSelectedItem = GetItemByData(idItem); } + + public void RefreshLayout(RectTransform parent) + { + // Force Unity to rebuild layout immediately + parent.ForceUpdateRectTransforms(); + LayoutRebuilder.ForceRebuildLayoutImmediate(parent); + } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs index 52bb325a1f..f466fa6872 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs @@ -1,3 +1,4 @@ +using System; using TMPro; using UnityEngine; using UnityEngine.Events; @@ -6,7 +7,7 @@ using UnityEngine.UI; namespace BrewMonster.PerfectWorld.Scripts.Task.UI { - public class TaskTreeViewItem : MonoBehaviour, IPointerClickHandler + public class TaskTreeViewItem : MonoBehaviour { [SerializeField] private TMP_Text m_text; [SerializeField] private Button m_Button; @@ -16,7 +17,28 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI public UnityEvent OnClick = new UnityEvent(); - + + #region UNITY_METHODS + + private void Awake() + { + m_Button.onClick.AddListener(OnBtnClick); + + + } + + // private void Start() + // { + // RectTransform parent = transform.parent.GetComponent(); + // if (parent != null && parent.GetComponent()) + // { + // // Force Unity to rebuild layout immediately + // parent.ForceUpdateRectTransforms(); + // LayoutRebuilder.ForceRebuildLayoutImmediate(parent); + // } + // } + + #endregion public void SetItemData(uint uItemData) { m_uItemData = uItemData; @@ -45,12 +67,19 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } } - public void OnPointerClick(PointerEventData eventData) + // public void OnPointerClick(PointerEventData eventData) + // { + // OnClick.Invoke(m_uItemData); + // EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData }); + // // TaskWindow.Instance.OnEventLButtonDown_Tv_Quest(m_uItemData); + // } + + void OnBtnClick() { OnClick.Invoke(m_uItemData); EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData }); - // TaskWindow.Instance.OnEventLButtonDown_Tv_Quest(m_uItemData); } + } public struct TaskItemClickEvent diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs index a9a31edac7..d797f6393e 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskWindow.cs @@ -7,6 +7,8 @@ using BrewMonster.Network; using BrewMonster.Scripts.Task; using CSNetwork.GPDataType; using ModelRenderer.Scripts.GameData; +using NUnit.Framework; +using PerfectWorld.Scripts.Task; using UnityEngine; using UnityEngine.UI; using TMPro; @@ -94,9 +96,12 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI [SerializeField] protected Button m_pBtn_bShowTrace; // PAUISTILLIMAGEBUTTON -> Button [SerializeField] protected Button m_pBtn_FinishTask; // PAUISTILLIMAGEBUTTON -> Button [SerializeField] protected TMP_Text m_pTxt_BaseAward; // PAUILABEL -> TMP_Text - + + [Space(10)] - [SerializeField] protected Button Btn_TreasureMap; // PAUILABEL -> TMP_Text + [SerializeField] protected Button Btn_TreasureMap; + [SerializeField] protected Button Btn_Focus; + [SerializeField] protected GameObject Lab_QuestNO; // the title label of m_pTxt_QuestNO // PAUIIMAGEPICTURE m_pImg_Item[CDLGTASK_AWARDITEM_MAX]; // Use fixed-size array semantics via initialization length @@ -141,6 +146,10 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI OnEventLButtonDown_Tv_Quest(evt.Data); }); + m_pBtn_HaveQuest.onClick.AddListener(OnCommand_havequest); + m_pBtn_SearchQuest.onClick.AddListener(OnCommand_searchquest); + + OnInitDialog(); } @@ -153,8 +162,36 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI #region PUBLIC METHODS - public void OnCommand_searchquest(string szCommand) {} - public void OnCommand_havequest(string szCommand) {} + public void OnCommand_searchquest() + { + // if (m_szName != "Win_Quest") return; + m_iType = 1; + // TODO + // PAUIOBJECT pObj = GetDlgItem("Img_New"); + // if (pObj && IsShow()) pObj->Show(false); + // if(GetDlgItem("Lab_Trace")) GetDlgItem("Lab_Trace")->Show(false); + if(m_pBtn_bShowTrace) m_pBtn_bShowTrace.gameObject.SetActive(false); + m_pBtn_Abandon.gameObject.SetActive(false); + Btn_Focus.gameObject.SetActive(false); + Lab_QuestNO.gameObject.SetActive(false); + m_pTxt_QuestNO.gameObject.SetActive(false); + m_pBtn_SearchQuest.interactable = false; + m_pBtn_HaveQuest.interactable = true; + SearchForTask(); + } + public void OnCommand_havequest() + { + m_iType = 0; + // TODO: if(GetDlgItem("Lab_Trace")) GetDlgItem("Lab_Trace")->Show(true); + if(m_pBtn_bShowTrace) m_pBtn_bShowTrace.gameObject.SetActive(true); + m_pBtn_Abandon.gameObject.SetActive(true); + Btn_Focus.gameObject.SetActive(true); + Lab_QuestNO.gameObject.SetActive(true); + m_pTxt_QuestNO.gameObject.SetActive(true); + m_pBtn_SearchQuest.interactable = true; + m_pBtn_HaveQuest.interactable = false; + UpdateTask(); + } public void OnCommand_showtrace(string szCommand) {} public void OnCommand_focus(string szCommand) {} public void OnCommand_abandon(string szCommand) {} @@ -180,7 +217,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // if( pItem ) OnCommand_focus("focus"); // } // P_AUITREEVIEW_ITEM pItem = pTree->GetSelectedItem(); - var pItem = m_pTv_Quest.GetItemByData(itemData); + // var pItem = m_pTv_Quest.GetItemByData(itemData); int idTask = (int)itemData; // int idTask(0); // if( pItem && pTree->GetParentItem(pItem) != pTree->GetRootItem()) @@ -282,8 +319,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } else if (m_iType == 1) { - // TODO - // SearchForTask(pTree->GetItemData(pItem)); + SearchForTask((int)pTree.GetItemData(pItem)); } } else @@ -363,14 +399,11 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI strNewTextItem = ""; // Base desc - UpdateTaskBaseDesc(strNewTextItem, tsi); - - // Deliver NPC - UpdateDeliverNPC(strNewTextItem, (int)pTemp.GetDeliverNPC()); + UpdateTaskBaseDesc(ref strNewTextItem, tsi); // Award NPC int nANPC = (int)pTemp.GetAwardNPC(); - UpdateAwardNPC(strNewTextItem, nANPC); + UpdateAwardNPC(ref strNewTextItem, nANPC); // Complete condition UpdateCompleteCondition(ref strNewTextItem, ref strNewHintItem, tsi); @@ -379,7 +412,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI UpdateItemWanted(ref strNewTextItem, tsi, idTask); // Treasure Map - UpdateTreasureMap(strNewTextItem); + UpdateTreasureMap(ref strNewTextItem); // Task Confirm UpdateTaskConfirm(idTask, pTemp.m_FixedData.m_enumFinishType == (uint)TaskFinishType.enumTFTConfirm); @@ -396,7 +429,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI if (Btn_TreasureMap != null) { Btn_TreasureMap.gameObject. - SetActive(pTemp.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMReachTreasureZone); + SetActive(pTemp.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMReachTreasureZone); } } } @@ -420,12 +453,132 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } // GetGameUIMan()->ReplaceColor(&strNewTextItem, A3DCOLORRGB(255, 255, 255), pTextItem->GetColor()); - // SetTextItemText(strNewTextItem, pMan.GetTaskTemplByID((uint)idTask) != null && !bLastTaskChanged, strNewHintItem); + SetTextItemText(strNewTextItem, pMan.GetTaskTemplByID((uint)idTask) != null && !bLastTaskChanged, strNewHintItem); return true; } // - // bool SearchForTask(int idTask = -1); + // Guard: only handle search list when current UI type is 1 (search) + public bool SearchForTask(int idTask = -1) + { + if (m_iType != 1) + { + return true; + } + + // Setup managers and UI references + ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan(); + CECTaskInterface pTask = GetHostPlayer().GetTaskInterface(); + var pTextDesc = m_pTxt_Content; + var pTextItem = m_pTxt_QuestItem; + + // Track composed text buffers and change flag + string strNewTextItem = ""; + string strNewHintItem = ""; + bool bLastTaskChanged = false; + + // Simplified: assume we are in quest UI context if tree exists + bool bQuestUI = m_pTv_Quest != null; + + // When a concrete task id is provided + if (idTask >= 0) + { + ATaskTempl pTemp = pMan != null ? pMan.GetTaskTemplByID((uint)idTask) : null; + if (pTemp != null) + { + // Update description when the selected task changes + if (idTask != m_idLastTask) + { + if (pTextDesc != null) pTextDesc.SetText(pTemp.GetDescription()); + m_idLastTask = idTask; + bLastTaskChanged = true; + } + + // Optional: update tree item text if needed (skip if API not available) + if (bQuestUI) + { + var pItem = m_pTv_Quest.GetSelectedItem(); + if (pItem != null) + { + uint id = m_pTv_Quest.GetItemData(pItem); + // NOTE: ATaskTemplMan.IsTaskToPush may be conditionally compiled; avoid hard dependency + // If needed, uncomment when method is available: + // if (pMan.IsTaskToPush((int)id)) m_pTv_Quest.SetItemText(pItem, GetTaskNameWithColor(pTemp)); + } + } + + // Get task state info + Task_State_info tsi = default; + if (pTask != null) pTask.GetTaskStateInfo((uint)idTask, ref tsi, false); + + // Reset composed text buffer + strNewTextItem = ""; + + // Append: base description + UpdateTaskBaseDesc(ref strNewTextItem, tsi); + + // Append: deliver NPC + UpdateDeliverNPC(ref strNewTextItem, (int)pTemp.GetDeliverNPC()); + + // Append: award NPC + int nANPC = (int)pTemp.GetAwardNPC(); + UpdateAwardNPC(ref strNewTextItem, nANPC); + + // Append: completion conditions + UpdateCompleteCondition(ref strNewTextItem, ref strNewHintItem, tsi); + + // Append: wanted items + UpdateItemWanted(ref strNewTextItem, tsi, idTask); + + // Preview and show awards + Task_Award_Preview award = default; + if (pTask != null) pTask.GetTaskAwardPreview((uint)idTask, ref award); + UpdateBaseAward(award); + UpdateItemAward(award); + } + else + { + // No template found for id: clear content + m_idLastTask = -2; + if (m_pTxt_Content != null) m_pTxt_Content.SetText(""); + if (m_pTxt_QuestItem != null) m_pTxt_QuestItem.SetText(""); + } + } + else + { + // zhangyitian 20140521 先将可接任务列表清空,再判断是否有可接任务 + // zhangyitian 20140521 First clear the available tasks list, then check if there are available tasks + // 修正了原先没有可接任务时,可接任务列表显示已接任务的问题 + // Fix: prevent accepted tasks from showing when there are no available tasks + ClearContent(false); + + // TaskTemplLst ttl; + List ttl = new List(); // TaskTemplLst -> List + pMan.GetAvailableTasks(pTask, ttl); + if( ttl.Count <= 0 ) return true; + + for(int i = 0; i < ttl.Count; i++ ) + { + int id = (int)ttl[i].GetID(); + AddTaskNode(id); + } + + SortTaskNodeByType(); + + // string strTemp; + // ActiveTaskList pLst = (ActiveTaskList)pTask.GetActiveTaskList(); + // int iMaxTaskCount = pLst->GetMaxSimultaneousCount(); + // strTemp.Format(_AL("%d/%d"), pTask->GetTaskCount(), iMaxTaskCount); + // m_pTxt_QuestNO->SetText(strTemp); + } + + // Apply colors and set composed text into UI + bool hasTempl = idTask >= 0 && pMan != null && pMan.GetTaskTemplByID((uint)idTask) != null; + SetTextItemText(strNewTextItem, hasTempl && !bLastTaskChanged, strNewHintItem); + + // Done + return true; + } // // //�������������б��������ɽ�������ѽ����� zhangyitian // bool UpdateQuestView(); @@ -554,8 +707,8 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI if (pTextItem == null) return; // Preserve scroll position if inside a ScrollRect - UnityEngine.UI.ScrollRect scrollRect = pTextItem.GetComponentInParent(); - float oldNormPos = scrollRect != null ? scrollRect.verticalNormalizedPosition : 0f; + // UnityEngine.UI.ScrollRect scrollRect = pTextItem.GetComponentInParent(); + // float oldNormPos = scrollRect != null ? scrollRect.verticalNormalizedPosition : 0f; if (!string.Equals(strNewTextItem, pTextItem.text)) { @@ -563,11 +716,11 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // TODO: apply hint to a tooltip UI if available (strNewHintItem) } - if (keepScrollPos && scrollRect != null) - { - // Restore previous scroll position - scrollRect.verticalNormalizedPosition = oldNormPos; - } + // if (keepScrollPos && scrollRect != null) + // { + // // Restore previous scroll position + // scrollRect.verticalNormalizedPosition = oldNormPos; + // } } // void SetTaskText(PAUIOBJECT pObj, ACString* pStr); @@ -585,36 +738,43 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI var sb = new System.Text.StringBuilder(); int colCount = 0; const int col = 3; + int cellSpace = 30; if (award.m_ulGold > 0) { - sb.Append(string.Format(GetStringFromTable(3201), award.m_ulGold)); - if ((++colCount) % col == 0) sb.Append("\r"); + var text = $"{GetStringFromTable(3201)} {award.m_ulGold}"; + sb.Append(text); + sb.Append(' ', cellSpace - text.Length); + if ((++colCount) % col == 0) sb.Append("\n"); } if (award.m_ulExp > 0) { - sb.Append(string.Format(GetStringFromTable(3202), award.m_ulExp)); - if ((++colCount) % col == 0) sb.Append("\r"); + var text = $"{GetStringFromTable(3201)} {award.m_ulExp}"; + sb.Append(text); + sb.Append(' ', cellSpace - text.Length); + if ((++colCount) % col == 0) sb.Append("\n"); } if (award.m_ulSP > 0) { - sb.Append(string.Format(GetStringFromTable(3203), award.m_ulSP)); - if ((++colCount) % col == 0) sb.Append("\r"); + var text = $"{GetStringFromTable(3201)} {award.m_ulSP}"; + sb.Append(text); + sb.Append(' ', cellSpace - text.Length); + if ((++colCount) % col == 0) sb.Append("\n"); } if (award.m_ulRealmExp > 0) { - sb.Append(string.Format(GetStringFromTable(3207), award.m_ulRealmExp)); - if ((++colCount) % col == 0) sb.Append("\r"); + sb.Append($"{GetStringFromTable(3207)} {award.m_ulRealmExp}"); + if ((++colCount) % col == 0) sb.Append("\n"); } if (award.m_iForceContrib > 0) { - sb.Append(string.Format(GetStringFromTable(3205), award.m_iForceContrib)); - if ((++colCount) % col == 0) sb.Append("\r"); + sb.Append($"{GetStringFromTable(3205)} {award.m_iForceContrib}"); + if ((++colCount) % col == 0) sb.Append("\n"); } if (award.m_iForceRepu > 0) { - sb.Append(string.Format(GetStringFromTable(3206), award.m_iForceRepu)); - if ((++colCount) % col == 0) sb.Append("\r"); + sb.Append($"{GetStringFromTable(3206)} {award.m_iForceRepu}"); + if ((++colCount) % col == 0) sb.Append("\n"); } if (sb.Length > 0 && m_pTxt_BaseAward != null) @@ -633,7 +793,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI { if (m_pTxt_BaseAward != null && m_pTxt_BaseAward.gameObject.activeSelf) { - string strAward = (GetStringFromTable(3204) ?? string.Empty) + "\r" + (m_pTxt_BaseAward.text ?? string.Empty); + string strAward = (GetStringFromTable(3204) ?? string.Empty) + "\n" + (m_pTxt_BaseAward.text ?? string.Empty); m_pTxt_BaseAward.text = strAward; } else if (m_pTxt_BaseAward != null) @@ -679,7 +839,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI else txtRT.anchoredPosition = pos; } } - private void UpdateTaskBaseDesc(string strText, Task_State_info tsi) + private void UpdateTaskBaseDesc(ref string strText, Task_State_info tsi) { // Build the base description text from task state var sb = new System.Text.StringBuilder(); @@ -731,30 +891,59 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } // Apply to content text - if (m_pTxt_Content != null) - { - m_pTxt_Content.text += sb.ToString(); - } + // if (m_pTxt_Content != null) + // { + // m_pTxt_Content.text += sb.ToString(); + // } + + strText += sb.ToString(); } private static string FormatTime(int nSec, string desc, int timeLimit) { var ts = System.TimeSpan.FromSeconds(System.Math.Max(0, nSec)); string label = string.IsNullOrEmpty(desc) ? string.Empty : desc; - return $"{label}{ts:hh\\:mm\\:ss}\r"; + return $"{label}{ts:hh\\:mm\\:ss}\n"; } private static string GetStringFromTable(int id) { - // return AUIManager.GetStringFromTable(id); - return ""; - + // TODO: return AUIManager.GetStringFromTable(id); + + // HARD CODED STRINGS + switch (id) + { + case 3101: + return "Hàng ngày"; + case 3102: + return "Tu chân"; + case 3103: + return "Chủ tuyến"; + case 3105: + return "Event"; + case 3201: + return "Gold:"; + case 3202: + return "EXP:"; + case 3203: + return "SP:"; + case 3207: + return "Realm EXP:"; + case 3205: + return "Contribution:"; + case 3206: + return "Reputation:"; + case 7621: + return "NPC giao nhiệm vụ: "; + default: + return "UnKnown String"; + } } private static string GetStringFromTable(uint id) { // return AUIManager.GetStringFromTable(id); - return ""; + return GetStringFromTable((int)id); } private static string GetFixedMsg(uint id) @@ -763,7 +952,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } - private void UpdateDeliverNPC(string strText, int nDNPC) + private void UpdateDeliverNPC(ref string strText, int nDNPC) { // [中文] 交付NPC // [English] Deliver NPC @@ -793,16 +982,17 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI var sb = new System.Text.StringBuilder(); sb.Append(GetStringFromTable(7620)); sb.Append(npcName); - sb.Append("\r"); - if (m_pTxt_QuestItem != null) - { - Debug.Log($"UpdateDeliverNPC: {sb.ToString()}"); - m_pTxt_QuestItem.text += sb.ToString(); - } + sb.Append("\n"); + // if (m_pTxt_QuestItem != null) + // { + // Debug.Log($"UpdateDeliverNPC: {sb.ToString()}"); + // m_pTxt_QuestItem.text += sb.ToString(); + // } + strText += sb.ToString(); } - private A3DVECTOR3 UpdateAwardNPC(string strText, int nANPC) + private A3DVECTOR3 UpdateAwardNPC(ref string strText, int nANPC) { A3DVECTOR3 ret = new A3DVECTOR3(0f); // Award NPC @@ -830,12 +1020,14 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI var sb = new System.Text.StringBuilder(); sb.Append(GetStringFromTable(7621)); sb.Append(npcName); - sb.Append("\r"); - if (m_pTxt_Content != null) - { - Debug.Log($"Award NPC: {sb.ToString()}"); - m_pTxt_QuestItem.text += sb.ToString(); - } + sb.Append("\n"); + // if (m_pTxt_Content != null) + // { + // Debug.Log($"Award NPC: {sb.ToString()}"); + // m_pTxt_QuestItem.text += sb.ToString(); + // } + + strText += sb.ToString(); return ret; } @@ -955,7 +1147,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI { uint killed = tsi.m_PlayerWanted[index].m_ulPlayersKilled; uint toKill = tsi.m_PlayerWanted[index].m_ulPlayersToKill; - return $" {killed}/{toKill}\r"; + return $" {killed}/{toKill}\n"; } // Get host reincarnation count (fallback implementation) @@ -1006,14 +1198,14 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // If task is KillPlayer, also add player requirements line // 若为击杀玩家任务,同时追加玩家需求行 - if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMKillPlayer && i < TaskInterfaceConstants.MAX_PLAYER_WANTED) + if (pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMKillPlayer && i < TaskInterfaceConstants.MAX_PLAYER_WANTED) { strText += GetKillPlayerRequirements(tsi, i); } } } - private void UpdateTreasureMap(string strText) + private void UpdateTreasureMap(ref string strText) { // if (IsTreasureMapSelected()) // { @@ -1058,7 +1250,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI } // TODO: Clear Tree quest view - // m_pTv_Quest.DeleteAllItems(); + m_pTv_Quest.DeleteAllItems(); } // // add node to task tree void AddTaskNode(int id) From 884a0274af08accc4f70849bb5eec19ca18e7d5b Mon Sep 17 00:00:00 2001 From: MinhHai Date: Mon, 17 Nov 2025 19:07:15 +0700 Subject: [PATCH 4/4] fix Search Task feature --- .../Prefab/Task/UI/TaskWindow.prefab | 206 ++++++------ .../Prefab/Task/UI/TreeView.prefab | 95 ++++++ .../Prefab/Task/UI/TreeView.prefab.meta | 7 + .../Prefab/Task/UI/TreeViewItem.prefab | 302 +++++++++++++++++- .../Scripts/Task/UI/TaskTreeView.cs | 35 +- .../Scripts/Task/UI/TaskTreeViewItem.cs | 69 +++- .../Scripts/Task/UI/TaskWindow.cs | 34 +- 7 files changed, 631 insertions(+), 117 deletions(-) create mode 100644 Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab create mode 100644 Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab.meta diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab index fc3370239b..6e6d6d4517 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TaskWindow.prefab @@ -8005,99 +8005,6 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8588325617128089111 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1755208944688500795} - - component: {fileID: 6916443525973237579} - - component: {fileID: 3763656904659419767} - - component: {fileID: 3867069994250714290} - m_Layer: 5 - m_Name: TreeView - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1755208944688500795 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8588325617128089111} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3841808193842114691} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -151.28992, y: 336.93002} - m_SizeDelta: {x: 319.58, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!114 &6916443525973237579 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8588325617128089111} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3} - m_Name: - m_EditorClassIdentifier: - m_pTreeViewItemPrefab: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3} - _currentSelectedItem: {fileID: 0} - m_aTreeViewItems: [] ---- !u!114 &3763656904659419767 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8588325617128089111} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &3867069994250714290 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8588325617128089111} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 --- !u!1 &8632430288773790960 GameObject: m_ObjectHideFlags: 0 @@ -8745,3 +8652,116 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1001 &7843571476288588682 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3841808193842114691} + m_Modifications: + - target: {fileID: 2014844157387861405, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_Name + value: TreeView + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_SizeDelta.x + value: 319.58 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_AnchoredPosition.x + value: -151.28992 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_AnchoredPosition.y + value: 336.93002 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9456de25596014039bd4d0d3927b709a, type: 3} +--- !u!224 &1755208944688500795 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + m_PrefabInstance: {fileID: 7843571476288588682} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6916443525973237579 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3685582830533743809, guid: 9456de25596014039bd4d0d3927b709a, type: 3} + m_PrefabInstance: {fileID: 7843571476288588682} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab new file mode 100644 index 0000000000..f2b888aef1 --- /dev/null +++ b/Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2014844157387861405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8395333742829132721} + - component: {fileID: 3685582830533743809} + - component: {fileID: 6404897883559725565} + - component: {fileID: 6445602249794385720} + m_Layer: 5 + m_Name: TreeView + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8395333742829132721 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014844157387861405} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -151.28992, y: 336.93002} + m_SizeDelta: {x: 319.58, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &3685582830533743809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014844157387861405} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3} + m_Name: + m_EditorClassIdentifier: + m_pTreeViewItemPrefab: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3} + _currentSelectedItem: {fileID: 0} + m_aTreeViewItems: [] +--- !u!114 &6404897883559725565 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014844157387861405} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &6445602249794385720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014844157387861405} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab.meta b/Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab.meta new file mode 100644 index 0000000000..d13bbf9a4e --- /dev/null +++ b/Assets/PerfectWorld/Prefab/Task/UI/TreeView.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9456de25596014039bd4d0d3927b709a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab index 970cca72bb..929c2a86d3 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab @@ -53,7 +53,13 @@ MonoBehaviour: m_EditorClassIdentifier: m_text: {fileID: 1383932928540251694} m_Button: {fileID: 1762532130762754577} + _levelSprites: + - {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3} + - {fileID: 21300000, guid: 73873399fec964578b62204f20c40517, type: 3} + _expandButton: {fileID: 1715406348461528812} + _collapseButton: {fileID: 8676942769405651249} m_uItemData: 0 + _treeLevel: 0 OnClick: m_PersistentCalls: m_Calls: [] @@ -110,7 +116,7 @@ GameObject: - component: {fileID: 9062463037674165507} - component: {fileID: 1762532130762754577} m_Layer: 5 - m_Name: Button + m_Name: MainButton m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -129,6 +135,8 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5827054231092576763} + - {fileID: 7277676979067820762} + - {fileID: 2849245307131571463} m_Father: {fileID: 5053903421260846465} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -293,8 +301,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -314,9 +322,9 @@ MonoBehaviour: m_fontSize: 40 m_fontSizeBase: 40 m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 + m_enableAutoSizing: 1 + m_fontSizeMin: 15 + m_fontSizeMax: 40 m_fontStyle: 0 m_HorizontalAlignment: 2 m_VerticalAlignment: 512 @@ -375,3 +383,285 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &4773363917894322918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2849245307131571463} + - component: {fileID: 8656005255261122099} + - component: {fileID: 9103345587361145036} + - component: {fileID: 8676942769405651249} + - component: {fileID: 2374156541160748953} + m_Layer: 5 + m_Name: CollapseBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2849245307131571463 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4773363917894322918} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: -1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3882154025378162395} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 35, y: 5.8} + m_SizeDelta: {x: 31, y: 21} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8656005255261122099 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4773363917894322918} + m_CullTransparentMesh: 1 +--- !u!114 &9103345587361145036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4773363917894322918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8676942769405651249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4773363917894322918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9103345587361145036} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2374156541160748953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4773363917894322918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6863650808120944178 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7277676979067820762} + - component: {fileID: 885853373149276158} + - component: {fileID: 1569122208421759741} + - component: {fileID: 1715406348461528812} + - component: {fileID: 9213068811979301399} + m_Layer: 5 + m_Name: ExpandBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7277676979067820762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863650808120944178} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3882154025378162395} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 35, y: 0} + m_SizeDelta: {x: 31, y: 21} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &885853373149276158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863650808120944178} + m_CullTransparentMesh: 1 +--- !u!114 &1569122208421759741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863650808120944178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1715406348461528812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863650808120944178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1569122208421759741} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &9213068811979301399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6863650808120944178} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs index 8ba28cf49f..d46a59bf9a 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs @@ -1,5 +1,8 @@ using System; using System.Collections; +using System.Collections.Generic; +using Unity.VisualScripting; +using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; @@ -37,7 +40,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI if (m_aTreeViewItems == null) { - m_aTreeViewItems = GetComponentsInChildren(); + m_aTreeViewItems = GetComponentsInChildren(true); } for (int i = 0; i < m_aTreeViewItems.Length - 1; i++) @@ -62,8 +65,6 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // Parent: root (this) if null; otherwise under given parent item var parentTransform = (pParent != null ? pParent.transform : this.transform); go.transform.SetParent(parentTransform, false); - RefreshLayout(parentTransform.GetComponent()); - RefreshLayout(this.GetComponent()); // Set sibling position: after specific item if provided; otherwise append to end if (pAfter != null && pAfter.transform.parent == parentTransform) @@ -80,21 +81,34 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // var label = go.GetComponentInChildren(true); // if (label != null) label.text = text ?? string.Empty; pItem.SetItemText(text); + pItem.SetTreeLevel(pParent != null ? pParent.GetTreeLevel() + 1 : 0); // Refresh local cache of items - m_aTreeViewItems = GetComponentsInChildren(); + m_aTreeViewItems = GetComponentsInChildren(true); + + // pParent.RefreshLayout(); + if(pParent) pParent.SetExpand(false); // Collapse parent to show new item only when expanded return pItem; } public void DeleteAllItems() { + List childrenCopy = new(); foreach (Transform child in transform) { + // Destroy(child.GetComponent()); + childrenCopy.Add(child); + } + + foreach (var child in childrenCopy) + { + child.SetParent(null); Destroy(child.gameObject); } - + m_aTreeViewItems = null; + // m_aTreeViewItems = GetComponentsInChildren(true); _currentSelectedItem = null; } @@ -103,7 +117,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI { if (m_aTreeViewItems == null) { - m_aTreeViewItems = GetComponentsInChildren(); + m_aTreeViewItems = GetComponentsInChildren(true); } foreach (var item in m_aTreeViewItems) @@ -116,6 +130,11 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI return null; } + + public TaskTreeViewItem GetFirstChild() + { + return transform.childCount == 0 ? null : transform.GetChild(0).GetComponent(); + } public TaskTreeViewItem GetSelectedItem() { @@ -127,8 +146,10 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI _currentSelectedItem = GetItemByData(idItem); } - public void RefreshLayout(RectTransform parent) + public void RefreshLayout() { + var parent = GetComponent(); + // Force Unity to rebuild layout immediately parent.ForceUpdateRectTransforms(); LayoutRebuilder.ForceRebuildLayoutImmediate(parent); diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs index f466fa6872..22f4700be3 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs @@ -11,10 +11,14 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI { [SerializeField] private TMP_Text m_text; [SerializeField] private Button m_Button; + [SerializeField] private Sprite[] _levelSprites; + [SerializeField] private Button _expandButton; + [SerializeField] private Button _collapseButton; [Header("DEBUG")] [SerializeField] private uint m_uItemData; - + [SerializeField] private int _treeLevel; + private RectTransform _rectTransform; public UnityEvent OnClick = new UnityEvent(); @@ -23,8 +27,12 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI private void Awake() { m_Button.onClick.AddListener(OnBtnClick); + _expandButton.onClick.AddListener(OnExpandBtnClicked); + _collapseButton.onClick.AddListener(OnCollapseBtnClicked); + _expandButton.gameObject.SetActive(false); + _collapseButton.gameObject.SetActive(false); - + _rectTransform = GetComponent(); } // private void Start() @@ -39,6 +47,9 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // } #endregion + + #region PUBLIC_METHODS + public void SetItemData(uint uItemData) { m_uItemData = uItemData; @@ -66,6 +77,34 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI m_text.text = text; } } + + public void SetTreeLevel(int level) + { + _treeLevel = level; + Image btnImage = m_Button.GetComponent(); + btnImage.sprite = _treeLevel < _levelSprites.Length ? _levelSprites[_treeLevel] : _levelSprites[^1]; + btnImage.SetNativeSize(); + } + + public int GetTreeLevel() => _treeLevel; + + public void SetExpand(bool expand) + { + var children = GetComponentsInChildren(true); + + for (int i=1; i(evt => { @@ -260,9 +260,9 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI private static string GetTaskNameWithColor(ATaskTempl pTempl) { if (pTempl == null) return string.Empty; - var type = (BrewMonster.Scripts.Task.ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType; + var type = (ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType; string rawName = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(pTempl.m_FixedData.m_szName); - if (type == BrewMonster.Scripts.Task.ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^') + if (type == ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^') { // 如果是七杀榜任务且已经加了颜色,则颜色不变 // If QiShaList task already has color, keep it return rawName; @@ -432,6 +432,10 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI SetActive(pTemp.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMReachTreasureZone); } } + else + { + Debug.LogError($"Task {idTask} not found ATaskTempl !!!"); + } } else { @@ -662,7 +666,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // virtual bool OnInitDialog(); void OnShowDialog() { - // if (!m_idSelTask) + if (m_idSelTask != 0) UpdateTask(); } // virtual void OnHideDialog(); @@ -919,8 +923,20 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI return "Tu chân"; case 3103: return "Chủ tuyến"; + case 3104: + return "Phụ tuyến"; case 3105: return "Event"; + case 3106: + return "7 Killer List"; + case 3107: + return "Bang hội"; + case 3108: + return "Management"; + case 3109: + return "Huyền thoại"; + case 3110: + return "Câu hỏi"; case 3201: return "Gold:"; case 3202: @@ -936,7 +952,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI case 7621: return "NPC giao nhiệm vụ: "; default: - return "UnKnown String"; + return $"UnKnown_{id} "; } } @@ -1269,7 +1285,8 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI uint nAfterType = 0; TaskTreeViewItem pAfter = null, pParent = null; // P_AUITREEVIEW_ITEM pItem = pTreeTask->GetFirstChildItem(pTreeTask->GetRootItem()); - var pItem = pTreeTask.transform.parent.GetChild(0).GetComponent(); + // var pItem = pTreeTask.transform.parent.GetChild(0).GetComponent(); + var pItem = pTreeTask.GetFirstChild(); while( pItem ) { uint nType = pItem.GetItemData(); @@ -1284,6 +1301,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI pItem = pTreeTask.GetNextSiblingItem(pItem); } + // add Biggest node if not exist if(pParent ==null) { pParent = pTreeTask.InsertItem(GetStringFromTable(3101 + nTaskType - 100), null, pAfter); @@ -1292,7 +1310,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI pTreeTask.SetItemData(pParent, nTaskType); //if(nTaskType == enumTTLevel2) - //pTreeTask.SetItemTextColor(pParent, GetTaskColor(pTemp)); + // pTreeTask.SetItemTextColor(pParent, GetTaskColor(pTemp)); } CECTaskInterface pTask = GetHostPlayer().GetTaskInterface(); @@ -1326,7 +1344,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI // Collect direct children under the tree root (this component's transform) int childCount = pTreeTask.transform.childCount; - var items = new System.Collections.Generic.List<(uint type, TaskTreeViewItem item)>(childCount); + var items = new List<(uint type, TaskTreeViewItem item)>(childCount); for (int i = 0; i < childCount; i++) { var child = pTreeTask.transform.GetChild(i).GetComponent();