diff --git a/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab b/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab index 4fab5c1a01..f16454c889 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab @@ -3644,42 +3644,6 @@ MonoBehaviour: 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 @@ -4526,7 +4490,6 @@ RectTransform: 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} @@ -4594,9 +4557,9 @@ MonoBehaviour: m_ScrollSensitivity: 1 m_Viewport: {fileID: 3841808193842114691} m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 8166044353254338} + m_VerticalScrollbar: {fileID: 0} m_HorizontalScrollbarVisibility: 2 - m_VerticalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 1 m_HorizontalScrollbarSpacing: -3 m_VerticalScrollbarSpacing: -3 m_OnValueChanged: @@ -6441,9 +6404,9 @@ RectTransform: 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_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} m_Pivot: {x: 0, y: 1} --- !u!222 &5693552902337398956 CanvasRenderer: @@ -6496,132 +6459,6 @@ MonoBehaviour: 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: 1 - m_Size: 0.5000001 - m_NumberOfSteps: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] --- !u!1 &6529812165440442340 GameObject: m_ObjectHideFlags: 0 @@ -6959,81 +6796,6 @@ 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 @@ -8864,7 +8626,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} propertyPath: m_AnchoredPosition.y - value: 191.5136 + value: 336.93 objectReference: {fileID: 0} - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab index c399ff8ffc..bdaed314ee 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab @@ -10,8 +10,8 @@ GameObject: m_Component: - component: {fileID: 5053903421260846465} - component: {fileID: 4314770845850481090} - - component: {fileID: 4762263782091224632} - component: {fileID: 4986645933044111193} + - component: {fileID: 1062363862839909147} m_Layer: 5 m_Name: TreeViewItem m_TagString: Untagged @@ -31,7 +31,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 3882154025378162395} + - {fileID: 2024997316782034639} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -51,19 +51,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3428dd2e9dd644e0b0cb408bd3202f21, type: 3} m_Name: m_EditorClassIdentifier: - m_text: {fileID: 1383932928540251694} + m_text: + legacy: {fileID: 0} + tmp: {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} + _expandToggle: {fileID: 5502308808383608272} + _expandText: + legacy: {fileID: 0} + tmp: {fileID: 8373064842616042426} + _space: {fileID: 5541755240357469011} m_uItemData: 0 _treeLevel: 0 + isLastItem: 0 OnClick: m_PersistentCalls: m_Calls: [] ---- !u!114 &4762263782091224632 +--- !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: 1 +--- !u!114 &1062363862839909147 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -82,27 +99,13 @@ MonoBehaviour: m_Bottom: 0 m_ChildAlignment: 0 m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 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 @@ -115,6 +118,7 @@ GameObject: - component: {fileID: 2230410216357545400} - component: {fileID: 9062463037674165507} - component: {fileID: 1762532130762754577} + - component: {fileID: 4801006375863435037} m_Layer: 5 m_Name: MainButton m_TagString: Untagged @@ -129,20 +133,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2040002976300010419} - 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: - {fileID: 5827054231092576763} - - {fileID: 7277676979067820762} - - {fileID: 2849245307131571463} - m_Father: {fileID: 5053903421260846465} + m_Father: {fileID: 2024997316782034639} 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: 313, y: 91} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2230410216357545400 CanvasRenderer: @@ -165,14 +167,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} 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: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3} + m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -226,6 +228,26 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &4801006375863435037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2040002976300010419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 0 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0.5 + m_FlexibleHeight: -1 + m_LayoutPriority: 2 --- !u!1 &2916175606199835458 GameObject: m_ObjectHideFlags: 0 @@ -261,8 +283,8 @@ RectTransform: 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: 3.5497} - m_SizeDelta: {x: 0, y: -7.0993} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0.00000023841858} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5842649278580849339 CanvasRenderer: @@ -319,14 +341,14 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 40 + m_fontSize: 24 + m_fontSizeBase: 24 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 15 m_fontSizeMax: 40 m_fontStyle: 0 - m_HorizontalAlignment: 2 + m_HorizontalAlignment: 1 m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 @@ -383,7 +405,7 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!1 &4773363917894322918 +--- !u!1 &6587684749681441909 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -391,133 +413,184 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2849245307131571463} - - component: {fileID: 8656005255261122099} - - component: {fileID: 9103345587361145036} - - component: {fileID: 8676942769405651249} - - component: {fileID: 2374156541160748953} + - component: {fileID: 5062486824527634889} + - component: {fileID: 7099288759002186546} + - component: {fileID: 8373064842616042426} m_Layer: 5 - m_Name: CollapseBtn + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2849245307131571463 +--- !u!224 &5062486824527634889 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_GameObject: {fileID: 6587684749681441909} + 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_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3882154025378162395} + m_Father: {fileID: 7277676979067820762} 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: 156.5, y: 3.5497} - m_SizeDelta: {x: 313, y: 83.901} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.00048828125, y: 0} + m_SizeDelta: {x: 40.883, y: 40} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8656005255261122099 +--- !u!222 &7099288759002186546 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} + m_GameObject: {fileID: 6587684749681441909} m_CullTransparentMesh: 1 ---- !u!114 &9103345587361145036 +--- !u!114 &8373064842616042426 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} + m_GameObject: {fileID: 6587684749681441909} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + 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: 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 + m_text: + + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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: 36 + m_fontSizeBase: 36 + 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 &6592915584227539970 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2930138263853700511} + - component: {fileID: 5541755240357469011} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2930138263853700511 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6592915584227539970} + 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: 2024997316782034639} + 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.5, y: 0.5} +--- !u!114 &5541755240357469011 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_GameObject: {fileID: 6592915584227539970} 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_IgnoreLayout: 0 + m_MinWidth: 0 m_MinHeight: -1 m_PreferredWidth: -1 m_PreferredHeight: -1 @@ -535,10 +608,10 @@ GameObject: - component: {fileID: 7277676979067820762} - component: {fileID: 885853373149276158} - component: {fileID: 1569122208421759741} - - component: {fileID: 1715406348461528812} - - component: {fileID: 9213068811979301399} + - component: {fileID: 5502308808383608272} + - component: {fileID: 8681673894369501558} m_Layer: 5 - m_Name: ExpandBtn + m_Name: ExpandToggle m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -555,13 +628,14 @@ RectTransform: 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_Children: + - {fileID: 5062486824527634889} + m_Father: {fileID: 2024997316782034639} 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: 156.5, y: 3.5497} - m_SizeDelta: {x: 313, y: 83.901} + 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.5, y: 0.5} --- !u!222 &885853373149276158 CanvasRenderer: @@ -591,7 +665,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 252815192406529888, guid: a141ce1b94af3cf46aa0695ab5ed6cdd, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -601,7 +675,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &1715406348461528812 +--- !u!114 &5502308808383608272 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -610,11 +684,11 @@ MonoBehaviour: m_GameObject: {fileID: 6863650808120944178} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: - m_Mode: 0 + m_Mode: 3 m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} @@ -642,10 +716,14 @@ MonoBehaviour: m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1569122208421759741} - m_OnClick: + toggleTransition: 1 + graphic: {fileID: 0} + m_Group: {fileID: 0} + onValueChanged: m_PersistentCalls: m_Calls: [] ---- !u!114 &9213068811979301399 + m_IsOn: 0 +--- !u!114 &8681673894369501558 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -657,11 +735,76 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} m_Name: m_EditorClassIdentifier: - m_IgnoreLayout: 1 + m_IgnoreLayout: 0 m_MinWidth: -1 m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 + m_PreferredWidth: 40 + m_PreferredHeight: 40 m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &7973684205123875483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2024997316782034639} + - component: {fileID: 6485915084394087119} + m_Layer: 5 + m_Name: MainContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2024997316782034639 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7973684205123875483} + 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: 2930138263853700511} + - {fileID: 7277676979067820762} + - {fileID: 3882154025378162395} + m_Father: {fileID: 5053903421260846465} + 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: 400, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6485915084394087119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7973684205123875483} + 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: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs index 26c91dfd33..48dc7b3a76 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs @@ -919,6 +919,53 @@ public static class generate_item_temp itemdataman.set_to_classid(DATA_TYPE.DT_FASHION_ESSENCE, data, -1); return 0; } + public static int generate_taskdice(uint id, ID_SPACE idspace, out byte[] data, out uint size, RAND_CLASS cls) + { + DATA_TYPE datatype = DATA_TYPE.DT_INVALID; + data = new byte[0]; + size = 0; + object obj = itemdataman._edm.get_data_ptr(id, idspace, ref datatype); + if(obj == null || datatype != DATA_TYPE.DT_TASKDICE_ESSENCE) + { + return -1; + } + TASKDICE_ESSENCE ess = (TASKDICE_ESSENCE)obj; + size = (uint)(Marshal.SizeOf(typeof(item_data)) + Marshal.SizeOf(typeof(TASKDICE_ESSENCE))); + data = new byte[size]; + int offset = 0; + WriteUInt(data, ref offset, id); + WriteUInt(data, ref offset, 1); + WriteInt(data, ref offset, ess.pile_num_max); + WriteInt(data, ref offset, 0); + WriteUInt(data, ref offset, ess.proc_type); + WriteInt(data, ref offset, (int)DATA_TYPE.DT_TASKDICE_ESSENCE); + if(ess.has_guid == 1) + { + int g1,g2; + itemdataman.get_item_guid(id,out g1,out g2); + WriteInt(data, ref offset, g1); + WriteInt(data, ref offset, g2); + } + else + { + WriteInt(data, ref offset, 0); + WriteInt(data, ref offset, 0); + } + WriteInt(data, ref offset, 0); + WriteInt(data, ref offset, 0); + + int content_length = 0; + int content_length_ptr = offset; + WriteInt(data, ref offset, 0); + int item_content = offset; + WriteInt(data, ref offset, 0); + content_length = (int)(size - offset); + WriteInt(data, ref content_length_ptr, content_length); + WriteInt(data, ref item_content, offset); + + itemdataman.set_to_classid(DATA_TYPE.DT_TASKDICE_ESSENCE, data, -1); + return 0; + } public static int generate_tasknormalmatter(uint id, ID_SPACE idspace, out byte[] data, out uint size, RAND_CLASS cls, GEN_ADDON_MODE normal_addon ,item_tag_t tag,List sa_list = null) { diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs index 6b96ec7f37..f484a59ba7 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs @@ -469,6 +469,9 @@ namespace BrewMonster case DATA_TYPE.DT_FASHION_ESSENCE: ret = generate_item_temp.generate_fashion_item(id, ID_SPACE.ID_SPACE_ESSENCE, out item, out size, SPECIFIC.SPECIFIC_RAND, tag); break; + case DATA_TYPE.DT_TASKDICE_ESSENCE: + ret = generate_item_temp.generate_taskdice(id, ID_SPACE.ID_SPACE_ESSENCE, out item, out size, SPECIFIC.SPECIFIC_RAND); + break; case DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE: ret = generate_item_temp.generate_tasknormalmatter(id,ID_SPACE.ID_SPACE_ESSENCE, out item,out size,SPECIFIC.SPECIFIC_RAND,GEN_ADDON_MODE.ADDON_LIST_SHOP,tag); diff --git a/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs b/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs index 945c631921..4bd4f6926a 100644 --- a/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs +++ b/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs @@ -1508,16 +1508,16 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_model; // Model file path - + public string FileModel => ByteToStringUtils.ByteArrayToCP936String(file_model); [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_model2; // Second model file path [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_matter; // Material file path - + public string FileMatter => ByteToStringUtils.ByteArrayToCP936String(file_matter); [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - + public string FileIcon => ByteToStringUtils.ByteArrayToCP936String(file_icon); public int price; // Price public int shop_price; // Shop price @@ -1785,9 +1785,10 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_matter; // matter file path - + public string FileMatter { get { return ByteToStringUtils.ByteArrayToCP936String(file_matter); } } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path + public string FileIcon { get { return ByteToStringUtils.ByteArrayToCP936String(file_icon); } } [StructLayout(LayoutKind.Sequential)] public struct TaskList diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs index 90a33392f8..007fcd0393 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrEquip.cs @@ -819,7 +819,7 @@ namespace PerfectWorld.Scripts.Managers /// /// Read maker information from binary data /// - private void ReadMakerInfo(CECDataReader dr) + protected void ReadMakerInfo(CECDataReader dr) { // Debug: Log the bytes at current position before reading // We need to check what bytes are actually at the reader position diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs index 5e37a8b04c..ce0fbe94e0 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrFlysword.cs @@ -1,20 +1,228 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.IO; +using BrewMonster; +using ModelRenderer.Scripts.Common; +using ModelRenderer.Scripts.GameData; +using UnityEngine; +using PerfectWorld.Scripts.Managers; +using BrewMonster.Network; using BrewMonster.Scripts.Managers; +using BrewMonster.Scripts; +using CSNetwork.GPDataType; +using System.Runtime.InteropServices; namespace PerfectWorld.Scripts.Managers { - public class EC_IvtrFlysword : EC_IvtrItem + + /// + /// Flysword Item (Phi kiem). + /// + public class EC_IvtrFlysword : EC_IvtrEquip { + + protected int m_iCurTime; // Current time counter in ms + protected IVTR_ESSENCE_FLYSWORD m_Essence; + protected FLYSWORD_ESSENCE m_pDBEssence; /// - /// Not create logic yet (add summary later) + /// Flysword Item (Phi kiem) /// /// Template id /// Expire date public EC_IvtrFlysword(int tid, int expire_date) : base(tid, expire_date) { + m_iCID = (int)InventoryClassId.ICID_FLYSWORD; + + // Get database data + elementdataman pDB = ElementDataManProvider.GetElementDataMan(); + DATA_TYPE DataType = DATA_TYPE.DT_INVALID; + m_pDBEssence = (FLYSWORD_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + m_iPileLimit = m_pDBEssence.pile_num_max; + m_iPrice = m_pDBEssence.price; + m_iShopPrice = m_pDBEssence.shop_price; + m_iProcType = (int)m_pDBEssence.proc_type; + m_i64EquipMask = EC_IvtrType.EQUIP_MASK64_FLYSWORD; + m_bUseable = true; + m_bNeedUpdate = false; } public EC_IvtrFlysword(EC_IvtrFlysword other) : base(other) { + m_iCurTime = other.m_iCurTime; + m_Essence = other.m_Essence; + m_pDBEssence = other.m_pDBEssence; + MadeFrom = other.MadeFrom; + Maker = other.Maker; } + + public override bool SetItemInfo(byte[] pInfoData, int iDataLen) + { + // Note: because fly sword isn't an absolute equipment, so skip + // CECIvtrEquip::SetItemInfo(). + + if (pInfoData == null || iDataLen == 0) + { + m_bNeedUpdate = false; + return true; + } + + try + { + CECDataReader dr = new CECDataReader(pInfoData, iDataLen); + + m_Essence = new IVTR_ESSENCE_FLYSWORD(dr.ReadData(Marshal.SizeOf())); + base.ReadMakerInfo(dr); + } + catch (Exception e) + { + Debug.LogError("CECIvtrFlySword::SetItemInfo, data read error (" + e.GetType() + ")"); + return false; + } + + LevelReq = m_Essence.require_level; + m_bNeedUpdate = false; + m_iCurTime = m_Essence.cur_time * 1000; + + return true; + } + + public override string GetIconFile() + { + return m_pDBEssence.FileIcon; + } + protected override string GetNormalDesc(bool bRepair) + { + if (m_bNeedUpdate) + return string.Empty; + + m_strDesc = ""; + + // Try to build item description + CECStringTab pDescTab = EC_Game.GetItemDesc(); + CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer(); + int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE; + int red = (int)DescriptipionMsg.ITEMDESC_COL_RED; + int namecol = DecideNameCol(); + + if (m_iCount > 1) + AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMENUMBER), GetName(), m_iCount); + else + AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), GetName()); + + AddIDDescText(); + + AddBindDescText(); + + // Is destroying? + AddDestroyingDesc((int)m_pDBEssence.id_drop_after_damaged, m_pDBEssence.num_drop_after_damaged); + + AddExpireTimeDesc(); + + // level + AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVEL), m_Essence.level); + + // whether can be improved + if (IsImprovable()) + AddDescText((int)DescriptipionMsg.ITEMDESC_COL_GREEN,true,pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_FLYSWORD_IMPROVE),m_Essence.improve_level,GetMaxImproveLevel()); + else + AddDescText(white,true,pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_FLYSWORD_NOIMPROVED)); + + // Normal fly speed bonus + if (m_Essence.speed_increase > 0) + AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ADDFLYSPEED), m_Essence.speed_increase); + + // Quick fly speed bonus + if (m_Essence.speed_increase2 > 0) + AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ADDFLYSPEED2), m_Essence.speed_increase2); + + // Remain time + if (GetMaxTime() > 0) + AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_REMAINTIME), GetCurTime(), GetMaxTime()); + + // Profession requirement + AddProfReqDesc((uint)m_Essence.profession); + + // Level requirement + if (LevelReq > 0) + { + int col = pHost.GetMaxLevelSofar() >= LevelReq ? white : red; + AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVELREQ), LevelReq); + } + + // Element consume + // AddDescText(white, true, pDescTab->GetWideString(ITEMDESC_ELEMENTTIME), m_Essence.time_per_element); + + // Price + AddPriceDesc(white, bRepair); + + AddMakerDesc(); + + // Suite description + AddSuiteDesc(); + + // Extend description + AddExtDescText(); + + return m_strDesc; + } + // Get max time + protected int GetMaxTime() + { + return (int)m_Essence.max_time; + } + + // Get max element number + protected int GetMaxElement() + { + return (int)((float)m_Essence.max_time / m_Essence.time_per_element + 0.5f); + } + + // Get time each element equal to + protected int GetElementTime() + { + return m_Essence.time_per_element; + } + // Get number of element if time is filled to full. This is just the number + // of element which has been used + protected int GetUsedElementNum() + { + return (int)((m_Essence.max_time - GetCurTime()) / (float)m_Essence.time_per_element); + } + + // Get drop model for shown + protected string GetDropModel() + { + return m_pDBEssence.FileMatter; + } + public override bool IsRare() + { + return base.IsRare() || m_Essence.level >= 6; + } + protected bool IsImprovable() + { + return m_pDBEssence.max_improve_level > 0 && m_pDBEssence.improve_config[0].require_item_num > 0; + } + protected bool CanBeImproved() + { + if(m_pDBEssence.max_improve_level <=0) return false; + + if(m_Essence.improve_level>= GetMaxImproveLevel()) return false; + + return m_pDBEssence.improve_config[m_Essence.improve_level].require_item_num > 0; + } + protected int GetMaxImproveLevel() + { + int maxL = m_pDBEssence.improve_config.Length; + int i = 0; + for (i = 0; i < maxL; i++) + { + if(m_pDBEssence.improve_config[i].require_item_num == 0) + break; + } + return Mathf.Min(m_pDBEssence.max_improve_level, i); + } + + protected int GetCurTime() { return m_Essence.cur_time; } } } diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs index 4b1c0917e4..38dacf7996 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrPetEgg.cs @@ -194,8 +194,82 @@ namespace PerfectWorld.Scripts.Managers } private string GetRidingPetDesc(bool bRepair) { - Debug.Log("GetRidingPetDesc. This is not implemented yet."); - return ""; + if (m_bNeedUpdate) + return ""; + + m_strDesc = string.Empty; + + // Try to build item description + CECStringTab pDescTab = EC_Game.GetItemDesc(); + CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer(); + + int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE; + int red = (int)DescriptipionMsg.ITEMDESC_COL_RED; + int namecol = DecideNameCol(); + + // Item name: always use the name in template + if (m_iCount > 1) + AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMENUMBER), m_pDBEssence.name/* GetName() */, m_iCount); + else + AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), m_pDBEssence.name/* GetName() */); + + AddIDDescText(); + + AddBindDescText(); + + AddExpireTimeDesc(); + + // ������ɫ��Ϣ + if (m_pPetEssence.id != 0 && m_pPetEssence.require_dye_count > 0) + { + if (m_iScaleType == (int)ScaleType.SCALE_BUY) + { + AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_COLOR)); + AddDescText(white, true, " ???"); + } + else + { + Color clr = new Color(255, 255, 255); + if (RIDINGPET.GetColor(m_Essence.color, clr)) + clr = RIDINGPET.GetDefaultColor(); + string strColor = string.Format("^{0:X2}{1:X2}{2:X2}", clr.r, clr.g, clr.b); + AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_COLOR)); + m_strDesc += " "; + AddDescText(-1, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_COLORRECT), strColor); + } + } + + // Food type requirement + AddFoodTypeDesc(); + + if (m_pPetEssence.id != 0) + { + // Pet level + AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_PETLEVEL), m_Essence.level); + + // Move speed + float fSpeed = m_pPetEssence.speed_a + (m_Essence.level - 1) * m_pPetEssence.speed_b; + AddDescText(-1, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_MOVESPEED), fSpeed); + + // Profession requirement + AddProfReqDesc(m_pPetEssence.character_combo_id); + } + + // Level requirement + int iLevelReq = Mathf.Max((int)m_Essence.level, m_Essence.req_level); + if (iLevelReq > 0) + { + int col = pHost.GetMaxLevelSofar() >= iLevelReq ? white : red; + AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVELREQ), iLevelReq); + } + + // Price + AddPriceDesc(white, bRepair); + + // Extend description + AddExtDescText(); + + return m_strDesc; } private string GetCombatPetDesc(bool bRepair) { diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs index ea1a6c2c09..934066e194 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrTaskDice.cs @@ -1,19 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.IO; +using BrewMonster; +using ModelRenderer.Scripts.Common; +using ModelRenderer.Scripts.GameData; +using UnityEngine; +using PerfectWorld.Scripts.Managers; +using BrewMonster.Network; using BrewMonster.Scripts.Managers; +using BrewMonster.Scripts; +using CSNetwork.GPDataType; +using System.Runtime.InteropServices; namespace PerfectWorld.Scripts.Managers { + /// + /// Task Dice Item (Tui qua random). + /// This is a part of IvtrTaskItem(C++) + /// public class EC_IvtrTaskDice : EC_IvtrItem { + protected TASKDICE_ESSENCE m_pDBEssence; + /// - /// Not create logic yet (add summary later) + /// Task Dice Item /// - /// Template id - /// Expire date - public EC_IvtrTaskDice(int tid, int expire_date) : base(tid, expire_date) + /// + /// + public EC_IvtrTaskDice(int tid, int expire_date) : base(tid, expire_date) { - } + m_iCID = (int)InventoryClassId.ICID_TASKDICE; + elementdataman pDB = ElementDataManProvider.GetElementDataMan(); + DATA_TYPE DataType = DATA_TYPE.DT_INVALID; + m_pDBEssence = (TASKDICE_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); + m_iPileLimit = m_pDBEssence.pile_num_max; + m_iPrice = 0; + m_iShopPrice = 0; + m_iProcType = (int)m_pDBEssence.proc_type; + m_bUseable = true; + m_bNeedUpdate = false; + } public EC_IvtrTaskDice(EC_IvtrTaskDice other) : base(other) { + m_pDBEssence = other.m_pDBEssence; + } + public override bool SetItemInfo(byte[] pInfoData, int iDataLen) + { + base.SetItemInfo(pInfoData, iDataLen); + return true; + } + public override string GetIconFile() + { + return m_pDBEssence.FileIcon; + } + protected override string GetNormalDesc(bool bRepair) + { + m_strDesc = ""; + // Try to build item description + CECStringTab pDescTab = EC_Game.GetItemDesc(); + int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE; + int namecol = DecideNameCol(); + + if (m_iCount > 1) + AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMENUMBER), GetName(), m_iCount); + else + AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), GetName()); + AddIDDescText(); + AddExpireTimeDesc(); + + AddPriceDesc(white, bRepair); + + // Extend description + AddExtDescText(); + + return m_strDesc; + } + public override string GetDropModel() + { + return m_pDBEssence.FileMatter; } } } diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs index 81d67669b0..07e9ab0e01 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem/EC_IvtrType.cs @@ -160,16 +160,28 @@ namespace BrewMonster.Scripts.Managers }; public struct IVTR_ESSENCE_FLYSWORD { - // TODO : implement data later - // int cur_time; - // int max_time; - // short require_level; - // char level; - // char improve_level; - // int profession; - // size_t time_per_element; - // float speed_increase; - // float speed_increase2; + public int cur_time; + public int max_time; + public short require_level; + public char level; + public char improve_level; + public int profession; + public int time_per_element; + public float speed_increase; + public float speed_increase2; + public IVTR_ESSENCE_FLYSWORD(byte[] data) + { + CECDataReader dr = new (data, data.Length); + cur_time = dr.ReadInt(); + max_time = dr.ReadInt(); + require_level = dr.ReadShort(); + level = (char)dr.ReadByte(); + improve_level = (char)dr.ReadByte(); + profession = dr.ReadInt(); + time_per_element = dr.ReadInt(); + speed_increase = dr.ReadFloat(); + speed_increase2 = dr.ReadFloat(); + } }; public struct IVTR_ESSENCE_WING { diff --git a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs index 37e7fe578a..7fa718f687 100644 --- a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs +++ b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs @@ -81,6 +81,7 @@ namespace BrewMonster protected int m_iBoothState = 0; // Booth state. 0, none; 1, prepare; 2, open booth; 3, visite other's booth public int m_idFRole = GNETRoles._R_UNMEMBER; // ID of player's faction role + protected int m_idCountry = 0; // ¹úÕ½ÕóÓª id public static int MAX_REINCARNATION = 2; protected List m_aCurEffects = new List(); // Current effects @@ -1905,4 +1906,42 @@ namespace BrewMonster enumSkinShowArmet, enumSkinShowHand, }; + /// + /// Place holder for riding pet. Not test logic yet. + /// + public struct RIDINGPET + { + public int id; + public ushort color; + + public RIDINGPET(bool isReset = true) + { + id = 0; + color = 0; + } + + public bool GetColor(Color clr) + { + // ��ȡ��ǰ����Ⱦɫ��ɫ + return id>0 && GetColor(color, clr); + } + + public static bool GetColor(ushort c, Color clr) + { + // ��ѯ��ǰ����Ƿ�Ⱦ��ɫ�����Ⱦ��ɫ�����ر�Ⱦ֮�����ɫ + bool bRet = false; + if ((c & (1<<(8-1))) != 0) + { + // unsigned short ��λΪ1ʱ����ʾȾ��ɫ����ʱ�ɻ�ȡ��ɫ + clr = new Color(((c) & (0x1f << 10)) >> 7, ((c) & (0x1f << 5)) >> 2, ((c) & 0x1f) << 3); + bRet = true; + } + return bRet; + } + + public static Color GetDefaultColor() + { + return new Color(255, 255, 255); + } + }; } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs b/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs index 8802f06b2e..4c5e2eb46a 100644 --- a/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs +++ b/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs @@ -68,53 +68,6 @@ public class CECNPC : CECObject m_pNPCModelPolicy = new CECNPCModelDefaultPolicy(this); } - // Add this field to CECNPC class - private bool m_bHasRelatedTask = false; - - private float _timerCheckTask = 0; - public void UpdateTaskIcon() - { - // Check if npcUI is assigned - if (m_npcUI == null) - { - m_npcUI = GetComponentInChildren(); - if (m_npcUI == null) return; - } - - // 2. Get Host Player & Interface - var host = CECGameRun.Instance.GetHostPlayer(); - if (host == null) return; - - var taskInterface = host.GetTaskInterface(); - if (taskInterface == null) - { - if (m_bHasRelatedTask) // only update if state changed - { - m_npcUI.SetTaskIconMain(false); - m_bHasRelatedTask = false; - } - return; - } - - // Get NPC Template ID - int npcTemplateID = m_NPCInfo.tid; - - // Check if there are tasks related to this NPC - bool hasTask = taskInterface.HasTaskRelatedToNPC(npcTemplateID); - - // Update icon only if state changed - if (m_bHasRelatedTask != hasTask) - { - m_bHasRelatedTask = hasTask; - m_npcUI.SetTaskIconMain(hasTask); - - if (hasTask) - { - Debug.Log($"[Icon] NPC {m_strName} (TID: {npcTemplateID})"); - } - } - } - public string GetName() { @@ -226,8 +179,6 @@ public class CECNPC : CECObject new Vector2(m_vServerPos.x, m_vServerPos.z), new Vector2(pHost.transform.position.x, pHost.transform.position.z)); } - - UpdateTaskIcon(); return true; } @@ -561,13 +512,6 @@ public class CECNPC : CECObject { StartAdjustTransparency(-1.0f, GetTransparentLimit(), 500); } - - _timerCheckTask += Time.deltaTime; - if (_timerCheckTask > 1.0f) - { - _timerCheckTask = 0; - UpdateTaskIcon(); - } } private void TickWork_Dead(float deltaTime) diff --git a/Assets/PerfectWorld/Scripts/NPC/CECNPCServer.cs b/Assets/PerfectWorld/Scripts/NPC/CECNPCServer.cs index 83d88af57c..396a07045f 100644 --- a/Assets/PerfectWorld/Scripts/NPC/CECNPCServer.cs +++ b/Assets/PerfectWorld/Scripts/NPC/CECNPCServer.cs @@ -1,4 +1,7 @@ using BrewMonster; +using BrewMonster.Network; +using BrewMonster.Scripts; +using BrewMonster.Scripts.Task; using CSNetwork.GPDataType; using System; using System.Runtime.InteropServices; @@ -10,12 +13,17 @@ public class CECNPCServer : CECNPC { NPC_ESSENCE? m_pDBEssence; MONSTER_ESSENCE? m_pMonEssence; - float m_fTaxRate = 0.05f; // Tax rate + float m_fTaxRate = 0.05f; // Tax rate + + private IconTaskType m_TaskIcon = IconTaskType.QI_NONE; + private CECCounter m_TaskCounter = new CECCounter(); + public override void SetUpCECNPC(CECNPCMan pNPCMan) { base.SetUpCECNPC(pNPCMan); m_iCID = (int)Class_ID.OCID_SERVER; m_pDBEssence = null; + m_TaskCounter.SetPeriod(1000); } public override bool Init(int tid, in info_npc info, ReadOnlySpan packet, int infoOffset) { @@ -57,11 +65,20 @@ public class CECNPCServer : CECNPC transform.position = EC_Utility.ToVector3(info.pos); StartWork((int)WorkType.WT_NOTHING, (int)WorkID.WORK_STAND); - - UpdateTaskIcon(); return true; } + protected override void Update() + { + base.Update(); + + if (m_TaskCounter.IncCounter(Time.deltaTime * 1000)) + { + m_TaskCounter.Reset(); + UpdateCurTaskIcon(); + } + } + // Get way point ID bound with this NPC public uint? GetWayPointID() { @@ -83,4 +100,222 @@ public class CECNPCServer : CECNPC { return 1.0f + m_pDBEssence.Value.tax_rate; } + + private void UpdateCurTaskIcon() + { + var pHost = CECGameRun.Instance.GetHostPlayer(); + if (pHost == null || pHost.GetTaskInterface() == null) + { + return; + } + + if (m_pDBEssence == null) + { + return; + } + + var pTaskMan = EC_Game.GetTaskTemplateMan(); + var pDataMan = ElementDataManProvider.GetElementDataMan(); + var pTask = pHost.GetTaskInterface(); + + const uint TASK_HAVE_COMPLETE = 0x10000000; + const uint TASK_COMPLETE = 0x01; + const uint TASK_INCOMPLETE = 0x02; + const uint TASK_CANGET = 0x04; + const uint TASK_CANNOTGET = 0x08; + const uint TASK_COMPLETE_TYPE1 = 0x10; + const uint TASK_CANGET_TYPE1 = 0x20; + const uint TASK_COMPLETE_TYPE2 = 0x40; + const uint TASK_CANGET_TYPE2 = 0x80; + const uint TASK_COMPLETE_TYPE3 = 0x100; + const uint TASK_CANGET_TYPE3 = 0x200; + const uint TASK_COMPLETE_TYPE4 = 0x400; + const uint TASK_CANGET_TYPE4 = 0x800; + + m_TaskIcon = IconTaskType.QI_NONE; + uint taskFlag = 0; + + BMLogger.Log($"[UpdateCurTaskIcon] NPC {m_NPCInfo.nid}, id_task_in_service={m_pDBEssence.Value.id_task_in_service}, id_task_out_service={m_pDBEssence.Value.id_task_out_service}"); + if (m_pDBEssence.Value.id_task_in_service != 0) + { + DATA_TYPE dt = DATA_TYPE.DT_INVALID; + var serviceData = pDataMan.get_data_ptr(m_pDBEssence.Value.id_task_in_service, ID_SPACE.ID_SPACE_ESSENCE, ref dt); + + if (serviceData != null && dt == DATA_TYPE.DT_NPC_TASK_IN_SERVICE) + { + var inService = (NPC_TASK_IN_SERVICE)serviceData; + + for (int i = 0; i < inService.id_tasks.Length; i++) + { + uint idTask = inService.id_tasks[i]; + if (idTask <= 0 || !pTask.HasTask(idTask)) + continue; + + BMLogger.Log($"[UpdateCurTaskIcon] Check IN task {idTask}, HasTask={pTask.HasTask(idTask)}, CanFinish={pTask.CanFinishTask((idTask))}"); + + var pTaskTemp = pTaskMan.GetTaskTemplByID(idTask); + if (pTaskTemp == null) + continue; + + if (pTask.CanFinishTask(idTask)) + { + taskFlag |= TASK_HAVE_COMPLETE; + + if (pTaskTemp.IsKeyTask()) + { + m_TaskIcon = IconTaskType.QI_IN_K; + BMLogger.Log($"[UpdateCurTaskIcon] Set icon QI_IN_K for task {idTask}"); + UpdateTaskIconUI(); + return; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTEvent || pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTDaily) + { + taskFlag |= TASK_COMPLETE_TYPE3; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTQiShaList) + { + taskFlag |= TASK_COMPLETE_TYPE2; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTFaction || pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTFunction) + { + taskFlag |= TASK_COMPLETE_TYPE1; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTMajor) + { + taskFlag |= TASK_COMPLETE_TYPE4; + } + else + { + taskFlag |= TASK_COMPLETE; + } + } + else + { + taskFlag |= TASK_INCOMPLETE; + } + } + } + } + + if ((taskFlag & TASK_HAVE_COMPLETE) != 0) + { + if ((taskFlag & TASK_COMPLETE_TYPE4) != 0) + m_TaskIcon = IconTaskType.QI_IN_TYPE4; + else if ((taskFlag & TASK_COMPLETE_TYPE3) != 0) + m_TaskIcon = IconTaskType.QI_IN_TYPE3; + else if ((taskFlag & TASK_COMPLETE_TYPE2) != 0) + m_TaskIcon = IconTaskType.QI_IN_TYPE2; + else if ((taskFlag & TASK_COMPLETE) != 0) + m_TaskIcon = IconTaskType.QI_IN; + else if ((taskFlag & TASK_COMPLETE_TYPE1) != 0) + m_TaskIcon = IconTaskType.QI_IN_TYPE1; + + BMLogger.Log($"[UpdateCurTaskIcon] Set complete icon {m_TaskIcon}"); + UpdateTaskIconUI(); + return; + } + + if (m_pDBEssence.Value.id_task_out_service != 0) + { + DATA_TYPE dt = DATA_TYPE.DT_INVALID; + var serviceData = pDataMan.get_data_ptr( + m_pDBEssence.Value.id_task_out_service, + ID_SPACE.ID_SPACE_ESSENCE, + ref dt + ); + + if (serviceData != null && dt == DATA_TYPE.DT_NPC_TASK_OUT_SERVICE) + { + var outService = (NPC_TASK_OUT_SERVICE)serviceData; + + if (outService.storage_id != 0 && outService.storage_open_item != 0) + { + var pack = pHost.GetInventory(InventoryConst.IVTRTYPE_PACK); + if (pack != null && pack.GetItemTotalNum((int)outService.storage_open_item) > 0) + { + taskFlag |= TASK_CANGET_TYPE2; + } + } + + // Check normal tasks + for (int i = 0; i < outService.id_tasks.Length; i++) + { + uint idTask = outService.id_tasks[i]; + if (idTask <= 0) + continue; + + BMLogger.Log($"[UpdateCurTaskIcon] Check OUT task {idTask}, CanShow={pTask.CanShowTask(idTask)}, CanDeliver={pTask.CanDeliverTask(idTask)}"); + + if (!pTask.CanShowTask(idTask)) + continue; + + var pTaskTemp = pTaskMan.GetTaskTemplByID(idTask); + if (pTaskTemp == null) + continue; + + if (pTask.CanDeliverTask(idTask) == 0) + { + if (pTaskTemp.IsKeyTask()) + { + m_TaskIcon = IconTaskType.QI_OUT_K; + BMLogger.Log($"[UpdateCurTaskIcon] Set icon QI_OUT_K for task {idTask}"); + UpdateTaskIconUI(); + return; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTEvent || pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTDaily) + { + taskFlag |= TASK_CANGET_TYPE3; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTQiShaList) + { + taskFlag |= TASK_CANGET_TYPE2; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTFaction || pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTFunction) + { + taskFlag |= TASK_CANGET_TYPE1; + } + else if (pTaskTemp.GetType() == (uint)ENUM_TASK_TYPE.enumTTMajor) + { + taskFlag |= TASK_CANGET_TYPE4; + } + else + { + taskFlag |= TASK_CANGET; + } + } + else + { + taskFlag |= TASK_CANNOTGET; + } + } + } + } + + // Set icon by available task priority + if ((taskFlag & TASK_CANGET_TYPE4) != 0) + m_TaskIcon = IconTaskType.QI_OUT_TYPE4; + else if ((taskFlag & TASK_CANGET_TYPE3) != 0) + m_TaskIcon = IconTaskType.QI_OUT_TYPE3; + else if ((taskFlag & TASK_CANGET_TYPE2) != 0) + m_TaskIcon = IconTaskType.QI_OUT_TYPE2; + else if ((taskFlag & TASK_CANGET) != 0) + m_TaskIcon = IconTaskType.QI_OUT; + else if ((taskFlag & TASK_CANGET_TYPE1) != 0) + m_TaskIcon = IconTaskType.QI_OUT_TYPE1; + else if ((taskFlag & TASK_INCOMPLETE) != 0) + m_TaskIcon = IconTaskType.QI_IN_N; + else if ((taskFlag & TASK_CANNOTGET) != 0) + m_TaskIcon = IconTaskType.QI_OUT_N; + + BMLogger.Log($"[UpdateCurTaskIcon] Final icon {m_TaskIcon}, taskFlag={taskFlag}"); + UpdateTaskIconUI(); + } + + private void UpdateTaskIconUI() + { + if(m_npcUI != null) + { + m_npcUI.SetTaskIcon(m_TaskIcon); + } + } } diff --git a/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs b/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs index b3a1af2b43..efae8f7f98 100644 --- a/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs +++ b/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs @@ -300,96 +300,28 @@ namespace BrewMonster.Scripts.Task return tasks; } - // Add this method to ATaskTemplMan class if not exists - public List GetAllTopTasks() + public int GetStorageRefreshPerDay(uint storageId) { - List topTasks = new List(); + if (storageId == 0 || storageId > TaskInterfaceConstants.TASK_STORAGE_COUNT) + return 0; - // Iterate through all task templates and collect top-level tasks - // Assuming you have a dictionary or collection of all tasks - foreach (var kvp in m_TaskTemplMap) // Replace with your actual collection name + if (!m_StorageEssenseMap.TryGetValue(storageId, out uint essenceId)) + return 0; + + DATA_TYPE dt = DATA_TYPE.DT_INVALID; + var serviceData = m_pEleDataMan.get_data_ptr( + essenceId, + ID_SPACE.ID_SPACE_ESSENCE, + ref dt + ); + + if (serviceData != null && dt == DATA_TYPE.DT_NPC_TASK_OUT_SERVICE) { - var templ = kvp.Value; - if (templ != null && templ.m_pParent == null) // Top-level task has no parent - { - topTasks.Add(templ); - } + var outService = (NPC_TASK_OUT_SERVICE)serviceData; + return (int)outService.storage_refresh_per_day; } - return topTasks; - } - - // Alternative method if you want to check by NPC ID directly - public List GetAvailableTasksForNPC(int npcID) - { - List availableTasks = new List(); - - foreach (var kvp in m_TaskTemplMap) // Replace with your actual collection name - { - var templ = kvp.Value; - if (templ != null && - templ.m_pParent == null && - templ.m_FixedData.m_ulDelvNPC == npcID) - { - availableTasks.Add(templ); - } - } - - return availableTasks; - } - - // Add this method to ATaskTemplMan class - - /// - /// Get all task templates (for iterating to find available tasks) - /// Lấy tất cả task templates (để duyệt tìm nhiệm vụ có thể nhận) - /// - public List GetAllTaskTemplates() - { - List allTasks = new List(); - - // Assuming you have a collection storing all task templates - // Replace m_TaskMap with your actual collection name - if (m_TaskTemplMap != null) - { - foreach (var kvp in m_TaskTemplMap) - { - if (kvp.Value != null) - { - allTasks.Add(kvp.Value); - } - } - } - - return allTasks; - } - - /// - /// Get list of tasks delivered by a specific NPC - /// - public List GetTasksFromNPC(int npcID) - { - var result = new List(); - - // Check if NPC info map is available - if (m_NPCInfoMap != null && m_NPCInfoMap.TryGetValue((uint)npcID, out var npcInfo)) - { - return new List(); - } - else - { - // Fallback - foreach (var kvp in m_TaskTemplMap) - { - var templ = kvp.Value; - if (templ != null && templ.m_FixedData.m_ulDelvNPC == npcID) - { - result.Add(templ); - } - } - } - - return result; + return 0; } // General method to read a struct from a FileStream diff --git a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs index 2a6ca41983..86a961fd34 100644 --- a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs +++ b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs @@ -531,85 +531,6 @@ namespace BrewMonster.Scripts.Task return m_pActiveListBuf; } - // Trong file CECTaskInterface.cs - - public bool HasTaskRelatedToNPC(int npcID) - { - // Check tasks is active - ActiveTaskList activeList = GetActiveTaskList(); - if (activeList != null && activeList.m_TaskEntries != null) - { - for (int i = 0; i < activeList.m_uTaskCount; i++) - { - var entry = activeList.m_TaskEntries[i]; - if (entry == null) continue; - - ATaskTempl templ = entry.GetTempl(); - if (templ == null) continue; - - // Check if this NPC is the target of the task - if (IsNPCTargetOfTask(templ, entry, npcID)) - { - return true; - } - } - } - - // Check tasks new - ATaskTemplMan taskMan = GetTaskTemplMan(); - if (taskMan != null) - { - List npcTasks = taskMan.GetTasksFromNPC(npcID); - if (npcTasks != null) - { - uint ulCurTime = GetCurTime(); - foreach (var templ in npcTasks) - { - // Check prerequisite - if (templ.CheckPrerequisite(this, activeList, ulCurTime) == 0) - { - return true; - } - } - } - } - - return false; - } - - // Check NPC is target of the task - private bool IsNPCTargetOfTask(ATaskTempl templ, ActiveTaskEntry entry, int npcID) - { - var data = templ.m_FixedData; - - // Task completed case - if (entry.IsFinished()) - { - if (data.m_ulAwardNPC == npcID) return true; - } - else - { - // NPC target - if (data.m_ulNPCMoving == npcID) return true; - - // Pos target - if (data.m_ulNPCDestSite == npcID) return true; - - // Security target - if (data.m_ulNPCToProtect == npcID) return true; - - if (data.m_enumMethod == (ulong)TaskCompletionMethod.enumTMTalkToNPC) - { - if (data.m_ulNPCMoving == 0 && data.m_ulAwardNPC == npcID) - { - return true; - } - } - } - return false; - } - - // private void InitActiveTaskList() // { // ActiveTaskList pLst = GetActiveTaskList(); diff --git a/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs b/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs index 9a64ab3266..4452bbd2b6 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs @@ -193,8 +193,7 @@ namespace BrewMonster.Scripts.Task.UI }); trigger.triggers.Add(entry); - UnityEngine.Debug.Log($"[DlgTask] Awake: Added EventTrigger for PointerClick to m_pTxt_QuestItem (like C++ WM_LBUTTONDOWN)"); - } + } OnInitDialog(); } @@ -484,6 +483,7 @@ namespace BrewMonster.Scripts.Task.UI if (pTempl == null) return string.Empty; var type = (ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType; string rawName = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(pTempl.m_FixedData.m_szName); + if (type == ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^') { // 如果是七杀榜任务且已经加了颜色,则颜色不变 // If QiShaList task already has color, keep it @@ -493,6 +493,25 @@ namespace BrewMonster.Scripts.Task.UI string strColorPreFix = A3DColorToString(GetTaskColor(pTempl)); return strColorPreFix + strTaskName; } + private string GetTaskNameWithColor(ATaskTempl pTempl, out Color color) + { + if (pTempl == null) { + color = Color.white; + return string.Empty; + } + var type = (ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType; + string rawName = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(pTempl.m_FixedData.m_szName); + + if (type == ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^') + { + // 如果是七杀榜任务且已经加了颜色,则颜色不变 // If QiShaList task already has color, keep it + color = GetTaskColor(pTempl); + return rawName; + } + string strTaskName = GetTaskNameWithOutColor(pTempl); + color = GetTaskColor(pTempl); + return strTaskName; + } // static ACString GetTaskNameWithOutColor(const ATaskTempl* pTempl); private static string GetTaskNameWithOutColor(ATaskTempl pTempl) { @@ -520,6 +539,7 @@ namespace BrewMonster.Scripts.Task.UI } Color result; EC_Utility.STRING_TO_A3DCOLOR(GetStringFromTable(idType - (int)ENUM_TASK_TYPE.enumTTDaily + 3121), out result); + Debug.Log("[DlgTask] GetTaskColor result : " + result); return result; // return UnityEngine.Color.white; } @@ -684,7 +704,6 @@ namespace BrewMonster.Scripts.Task.UI if( idTask != m_idLastTask ) { _nameTaskText.SetText(EC_Utility.FormatForTextMeshPro(GetTaskNameWithColor(pTemp))); - //pTextDesc->SetText(FormatTaskText(pTemp->GetDescription(), pTextDesc->GetColor())); pTextDesc.SetText(EC_Utility.FormatForTextMeshPro(pTemp.GetDescription())); m_idLastTask = idTask; @@ -800,7 +819,7 @@ namespace BrewMonster.Scripts.Task.UI if (idTask != m_idLastTask) { _nameTaskText.SetText(EC_Utility.FormatForTextMeshPro(GetTaskNameWithColor(pTemp))); - + Debug.Log("[DlgTask] SearchForTask name task: " + _nameTaskText.text); if (pTextDesc != null) pTextDesc.SetText(EC_Utility.FormatForTextMeshPro(pTemp.GetDescription())); m_idLastTask = idTask; bLastTaskChanged = true; @@ -1049,8 +1068,10 @@ namespace BrewMonster.Scripts.Task.UI while (child != null) { uint id = child.m_FixedData.m_ID; - string text = GetTaskNameWithColor(child); + Color disPlayColor=Color.white; + string text = GetTaskNameWithColor(child,out disPlayColor); var pItem = pTreeTask.InsertItem(text, pRoot, null); + pItem.SetItemTextColor(disPlayColor); if (pItem != null) { pTreeTask.SetItemData(pItem, id); @@ -1065,6 +1086,7 @@ namespace BrewMonster.Scripts.Task.UI InsertTaskChildren(pItem, id, bExpand, bKey); child = child.m_pNextSibling; } + } // [中文] 仅插入“已接任务(Active)”中的子任务(基于 ActiveTaskList 的 Child/NextSbl 索引) @@ -1093,9 +1115,11 @@ namespace BrewMonster.Scripts.Task.UI uint childId = childEntry.m_ID; ATaskTempl childTempl = pMan.GetTaskTemplByID(childId); - string text = childTempl != null ? GetTaskNameWithColor(childTempl) : $"Task {childId}"; - + Color disPlayColor=Color.white; + string text = childTempl != null ? GetTaskNameWithColor(childTempl,out disPlayColor) : $"Task {childId}"; + Debug.Log("[DlgTask] InsertActiveTaskChildren text: " + text); var pItem = pTreeTask.InsertItem(text, pRoot, null); + pItem.SetItemTextColor(disPlayColor); if (pItem != null) { pTreeTask.SetItemData(pItem, childId); @@ -1742,10 +1766,12 @@ namespace BrewMonster.Scripts.Task.UI } // add Biggest node if not exist + string strItem = GetTaskNameWithColor(pTemp, out Color color); if(pParent ==null) { pParent = pTreeTask.InsertItem(GetStringFromTable(3101 + nTaskType - 100), null, pAfter); - // TODO: Expand tree node + pParent.SetItemTextColor(color); + // TODO: Expand tree node // pTreeTask.Expand(pParent, AUITREEVIEW_EXPAND_EXPAND); pTreeTask.SetItemData(pParent, nTaskType); @@ -1755,17 +1781,16 @@ namespace BrewMonster.Scripts.Task.UI CECTaskInterface pTask = GetHostPlayer()?.GetTaskInterface(); if (pTask == null) return; - string strItem = GetTaskNameWithColor(pTemp); bool bTaskPushed = pMan.IsTaskToPush(id) && !pTask.HasTask((uint)id); if (bTaskPushed) { strItem += GetStringFromTable(3100); } pItem = pTreeTask.InsertItem(strItem, pParent, null); - - if( pTemp.IsKeyTask() ) - // pTreeTask.SetItemTextColor(pItem, GetTaskColor((int)ENUM_TASK_TYPE.enumTTLevel2)); + pItem.SetItemTextColor(color); + if( pTemp.IsKeyTask() ) + { pItem.SetItemTextColor(GetTaskColor((int)ENUM_TASK_TYPE.enumTTLevel2)); - // pTreeTask.SetItemHint(pItem, pTemp->GetSignature()); // TODO + } pTreeTask.SetItemData(pItem, (uint)id); // HaveQuest view: children should reflect ActiveTaskList, not template tree (otherwise they never disappear on completion) if (m_iType == 0) diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs index e502b0d71e..fca186c3c6 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs @@ -53,6 +53,11 @@ namespace BrewMonster.Scripts.Task.UI { // Create a new item GameObject and component TaskTreeViewItem pItem = Instantiate(m_pTreeViewItemPrefab); + if(pParent != null) + { + pParent.SetLastItem(false); + } + pItem.SetLastItem(true); GameObject go = pItem.gameObject; // go.name = $"Task_{}"; if (pItem == null) return null; diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs index 57caf2cb56..e34184a6ee 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs @@ -4,22 +4,22 @@ using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; - +using BrewMonster.Scripts.UI; namespace BrewMonster.Scripts.Task.UI { public class TaskTreeViewItem : MonoBehaviour, IRefreshLayout { - [SerializeField] private TMP_Text m_text; + [SerializeField] private TextOutlet m_text; [SerializeField] private Button m_Button; - [SerializeField] private Sprite[] _levelSprites; - [SerializeField] private Button _expandButton; - [SerializeField] private Button _collapseButton; + [SerializeField] private Toggle _expandToggle; + [SerializeField] private TextOutlet _expandText; + [SerializeField] private LayoutElement _space; [Header("DEBUG")] [SerializeField] private uint m_uItemData; [SerializeField] private int _treeLevel; private RectTransform _rectTransform; - + public bool isLastItem = true; public UnityEvent OnClick = new UnityEvent(); #region UNITY_METHODS @@ -27,10 +27,10 @@ namespace BrewMonster.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); + //_expandButton.onClick.AddListener(OnExpandBtnClicked); + //_collapseButton.onClick.AddListener(OnCollapseBtnClicked); + // _expandButton.gameObject.SetActive(false); + // _collapseButton.gameObject.SetActive(false); _rectTransform = GetComponent(); } @@ -66,24 +66,36 @@ namespace BrewMonster.Scripts.Task.UI if (m_text != null) { - m_text.color = color; + m_text.SetColor(color); + _expandText.SetColor(color); + } + } + public void SetLastItem(bool isLastItem) + { + this.isLastItem = isLastItem; + if(isLastItem) + { + _expandText.Set("●"); // thís not show in tmp text + _expandToggle.onValueChanged.RemoveAllListeners(); + } + else + { + _expandText.Set("+"); + _expandToggle.onValueChanged.AddListener(OnExpandToggleValueChanged); } } - public void SetItemText(string text) { if (m_text != null) { - m_text.text = text; + m_text.Set(text); } } public void SetTreeLevel(int level) { _treeLevel = level; - Image btnImage = m_Button.GetComponent(); - btnImage.sprite = _treeLevel < _levelSprites.Length ? _levelSprites[_treeLevel] : _levelSprites[^1]; - btnImage.SetNativeSize(); + _space.preferredWidth = level * 40; } public int GetTreeLevel() => _treeLevel; @@ -98,8 +110,8 @@ namespace BrewMonster.Scripts.Task.UI children[i].gameObject.SetActive(expand); } - _expandButton.gameObject.SetActive(!expand); - _collapseButton.gameObject.SetActive(expand); + //_expandButton.gameObject.SetActive(!expand); + //_collapseButton.gameObject.SetActive(expand); RefreshLayout(); } @@ -147,6 +159,19 @@ namespace BrewMonster.Scripts.Task.UI { SetExpand(false); } + + void OnExpandToggleValueChanged(bool isOn) + { + SetExpand(isOn); + if(isOn) + { + _expandText.Set("-"); + } + else + { + _expandText.Set("+"); + } + } } public struct TaskItemClickEvent diff --git a/Assets/PerfectWorld/Scripts/UI/GamePlay/UINPC.cs b/Assets/PerfectWorld/Scripts/UI/GamePlay/UINPC.cs index dac452d005..e025511e22 100644 --- a/Assets/PerfectWorld/Scripts/UI/GamePlay/UINPC.cs +++ b/Assets/PerfectWorld/Scripts/UI/GamePlay/UINPC.cs @@ -5,6 +5,27 @@ using UnityEngine.UI; namespace BrewMonster { + + public enum IconTaskType + { + QI_NONE = -1, + QI_OUT = 2, // task tu chan (nhan) + QI_IN = 2, // task tu chan (hoan thanh) + QI_OUT_N = 3, // chua du dieu kien nhan task + QI_IN_N = 3, // task nhan nhung chua lam (chua xong) + QI_OUT_K = 0, // chua biet + QI_IN_K = 5, // chua biet + + QI_OUT_TYPE1 = 5, // task bang hoi (nhan) + QI_IN_TYPE1 = 5, // task bang hoi (hoan thanh) + QI_OUT_TYPE2 = 1, // chua biet + QI_IN_TYPE2 = 1, // chua biet + QI_OUT_TYPE3 = -1, // task daily (nhan) + QI_IN_TYPE3 = -1, // task daily (hoan thanh) + QI_OUT_TYPE4 = 0, // task chinh (nhan) + QI_IN_TYPE4 = 4, // task chinh (hoan thanh) + } + public class UINPC : MonoBehaviour { [SerializeField] private TextMeshProUGUI _nameText; @@ -13,6 +34,21 @@ namespace BrewMonster [Header("List Icon Task")] [SerializeField] private GameObject _iconTaskMain; + [SerializeField] private List _listIconTask; + + private Image _cachedIconImage; + + private void Awake() + { + if (_iconTaskMain != null) + { + _cachedIconImage = _iconTaskMain.GetComponent(); + if (_cachedIconImage == null) + { + BMLogger.LogError($"[UINPC] _iconTaskMain doesn't have Image component!"); + } + } + } // Start is called once before the first execution of Update after the MonoBehaviour is created public void SetName(string name) @@ -30,10 +66,30 @@ namespace BrewMonster _healthText.text = healthText; } + public void SetTaskIcon(IconTaskType iconType) + { + if (_iconTaskMain == null || _cachedIconImage == null) + { + return; + } + int iconIndex = (int)iconType; + + if (iconIndex >= 0 && _listIconTask != null && iconIndex < _listIconTask.Count) + { + _cachedIconImage.sprite = _listIconTask[iconIndex]; + _iconTaskMain.SetActive(true); + } + else + { + _iconTaskMain.SetActive(false); + } + } + public void SetTaskIconMain(bool isShow) { - if(_iconTaskMain != null) + if (_iconTaskMain != null) _iconTaskMain.SetActive(isShow); } } } + diff --git a/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs index e68e976e1a..bb4d2ce16b 100644 --- a/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs +++ b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs @@ -46,6 +46,19 @@ namespace BrewMonster.Scripts.UI tmp.text = formattedText; } } + + public void SetColor(Color color) + { + if (legacy != null) + { + legacy.color = color; + } + + if (tmp != null) + { + tmp.color = color; + } + } } } diff --git a/Assets/PerfectWorld/UI/TaskIcon/ChuTuyen.png b/Assets/PerfectWorld/UI/TaskIcon/iconTask1.png similarity index 100% rename from Assets/PerfectWorld/UI/TaskIcon/ChuTuyen.png rename to Assets/PerfectWorld/UI/TaskIcon/iconTask1.png diff --git a/Assets/PerfectWorld/UI/TaskIcon/ChuTuyen.png.meta b/Assets/PerfectWorld/UI/TaskIcon/iconTask1.png.meta similarity index 93% rename from Assets/PerfectWorld/UI/TaskIcon/ChuTuyen.png.meta rename to Assets/PerfectWorld/UI/TaskIcon/iconTask1.png.meta index 205d22fd18..5d9e0cd89c 100644 --- a/Assets/PerfectWorld/UI/TaskIcon/ChuTuyen.png.meta +++ b/Assets/PerfectWorld/UI/TaskIcon/iconTask1.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d2ab8e4bde76db4478aff9994361b46a +guid: 4276d7122cfaf624f8aa32336fc90f1c TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -110,7 +110,7 @@ TextureImporter: serializedVersion: 2 sprites: - serializedVersion: 2 - name: ChuTuyen_0 + name: iconTask1_0 rect: serializedVersion: 2 x: 201 @@ -125,8 +125,8 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: 42af0f91f2269ff47b862dbb765d32f2 - internalID: -338310257 + spriteID: 3577b54168afc5242a9c02dce91f1260 + internalID: 1049366989 vertices: [] indices: edges: [] @@ -135,7 +135,7 @@ TextureImporter: customData: physicsShape: [] bones: [] - spriteID: f1f78b52002efcf4da3264912e38dddb + spriteID: 16fc5ffd47ee2f1429eb79e647db644d internalID: 0 vertices: [] indices: @@ -145,7 +145,7 @@ TextureImporter: spriteCustomMetadata: entries: [] nameFileIdTable: - ChuTuyen_0: -338310257 + iconTask1_0: 1049366989 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/PerfectWorld/UI/TaskIcon/TuChan.png b/Assets/PerfectWorld/UI/TaskIcon/iconTask2.png similarity index 100% rename from Assets/PerfectWorld/UI/TaskIcon/TuChan.png rename to Assets/PerfectWorld/UI/TaskIcon/iconTask2.png diff --git a/Assets/PerfectWorld/UI/TaskIcon/TuChan.png.meta b/Assets/PerfectWorld/UI/TaskIcon/iconTask2.png.meta similarity index 78% rename from Assets/PerfectWorld/UI/TaskIcon/TuChan.png.meta rename to Assets/PerfectWorld/UI/TaskIcon/iconTask2.png.meta index 7bc9174a94..9761116bfd 100644 --- a/Assets/PerfectWorld/UI/TaskIcon/TuChan.png.meta +++ b/Assets/PerfectWorld/UI/TaskIcon/iconTask2.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: cd36f0d3de378e94caea2807302f7a18 +guid: 454cf3e89d0aaa54b9c60ca081ff5f46 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -37,13 +37,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 2 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -108,12 +108,34 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 - sprites: [] + sprites: + - serializedVersion: 2 + name: iconTask2_0 + rect: + serializedVersion: 2 + x: 178 + y: 221 + width: 616 + height: 628 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 88c7b386a6be7bd4dbb002f3a93895a1 + internalID: -61588767 + vertices: [] + indices: + edges: [] + weights: [] outline: [] customData: physicsShape: [] bones: [] - spriteID: + spriteID: a16d633ba72e5c04487f3be78b1735bc internalID: 0 vertices: [] indices: @@ -122,7 +144,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + iconTask2_0: -61588767 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/PerfectWorld/UI/TaskIcon/MoRong.png b/Assets/PerfectWorld/UI/TaskIcon/iconTask3.png similarity index 100% rename from Assets/PerfectWorld/UI/TaskIcon/MoRong.png rename to Assets/PerfectWorld/UI/TaskIcon/iconTask3.png diff --git a/Assets/PerfectWorld/UI/TaskIcon/iconTask3.png.meta b/Assets/PerfectWorld/UI/TaskIcon/iconTask3.png.meta new file mode 100644 index 0000000000..21628b1b33 --- /dev/null +++ b/Assets/PerfectWorld/UI/TaskIcon/iconTask3.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 13278f4394269834cb244620cd66c803 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: iconTask3_0 + rect: + serializedVersion: 2 + x: 154 + y: 231 + width: 632 + height: 655 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 252520bbad7c9374e90d1c950b8482d6 + internalID: 1481922406 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: fdab89333c5e8344e98af4bef992c422 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + iconTask3_0: 1481922406 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/UI/TaskIcon/iconTask4.png b/Assets/PerfectWorld/UI/TaskIcon/iconTask4.png new file mode 100644 index 0000000000..480fc4bb02 Binary files /dev/null and b/Assets/PerfectWorld/UI/TaskIcon/iconTask4.png differ diff --git a/Assets/PerfectWorld/UI/TaskIcon/MoRong.png.meta b/Assets/PerfectWorld/UI/TaskIcon/iconTask4.png.meta similarity index 78% rename from Assets/PerfectWorld/UI/TaskIcon/MoRong.png.meta rename to Assets/PerfectWorld/UI/TaskIcon/iconTask4.png.meta index 1e0d1b93ab..5422378e51 100644 --- a/Assets/PerfectWorld/UI/TaskIcon/MoRong.png.meta +++ b/Assets/PerfectWorld/UI/TaskIcon/iconTask4.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 7c5f76c428f533d4ca3a449e2bc02ff5 +guid: f666d782d2b84fa48912bb3166f214aa TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -37,13 +37,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 2 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -108,12 +108,34 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 - sprites: [] + sprites: + - serializedVersion: 2 + name: iconTask4_0 + rect: + serializedVersion: 2 + x: 67 + y: 108 + width: 330 + height: 312 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 591aabfa2f20afb4ea7673f8c6f3b77b + internalID: 799372409 + vertices: [] + indices: + edges: [] + weights: [] outline: [] customData: physicsShape: [] bones: [] - spriteID: + spriteID: c8e66269510e1524eb24b5af756fb09f internalID: 0 vertices: [] indices: @@ -122,7 +144,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + iconTask4_0: 799372409 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/PerfectWorld/UI/TaskIcon/iconTask5.png b/Assets/PerfectWorld/UI/TaskIcon/iconTask5.png new file mode 100644 index 0000000000..e44343f1c9 Binary files /dev/null and b/Assets/PerfectWorld/UI/TaskIcon/iconTask5.png differ diff --git a/Assets/PerfectWorld/UI/TaskIcon/iconTask5.png.meta b/Assets/PerfectWorld/UI/TaskIcon/iconTask5.png.meta new file mode 100644 index 0000000000..3b7c056b7d --- /dev/null +++ b/Assets/PerfectWorld/UI/TaskIcon/iconTask5.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: c27a0fab8aef4d74787fe56595601d9f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: iconTask5_0 + rect: + serializedVersion: 2 + x: 169 + y: 91 + width: 247 + height: 246 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 81a887702ec996041a55a92f080c99e2 + internalID: 1342343447 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: ee5d2861e27ff8f43bb7b8face30c7bb + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + iconTask5_0: 1342343447 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/UI/TaskIcon/iconTask6.png b/Assets/PerfectWorld/UI/TaskIcon/iconTask6.png new file mode 100644 index 0000000000..d48c823f4b Binary files /dev/null and b/Assets/PerfectWorld/UI/TaskIcon/iconTask6.png differ diff --git a/Assets/PerfectWorld/UI/TaskIcon/iconTask6.png.meta b/Assets/PerfectWorld/UI/TaskIcon/iconTask6.png.meta new file mode 100644 index 0000000000..97a2fc5987 --- /dev/null +++ b/Assets/PerfectWorld/UI/TaskIcon/iconTask6.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 6deb3d497e3c2a44cb875be0f13bbf36 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: iconTask6_0 + rect: + serializedVersion: 2 + x: 93 + y: 79 + width: 313 + height: 343 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 18be220273ab7564389626093c9fa09a + internalID: 1458661374 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 33b9f9e65720df144a10109ca92117d7 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + iconTask6_0: 1458661374 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/NPC/NPCServer.prefab b/Assets/Resources/NPC/NPCServer.prefab index b4a8d93276..598d8a71ce 100644 --- a/Assets/Resources/NPC/NPCServer.prefab +++ b/Assets/Resources/NPC/NPCServer.prefab @@ -147,7 +147,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3297168817873124018} - m_LocalRotation: {x: -0.08684798, y: 0.24095127, z: 0.02165367, w: 0.9664011} + m_LocalRotation: {x: -3.7702125e-16, y: 0.97228837, z: 0.23378475, w: 1.5679955e-15} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -255,7 +255,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &7509779512108699303 RectTransform: m_ObjectHideFlags: 0 @@ -303,7 +303,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: -338310257, guid: d2ab8e4bde76db4478aff9994361b46a, type: 3} + m_Sprite: {fileID: 1049366989, guid: 4276d7122cfaf624f8aa32336fc90f1c, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -362,6 +362,13 @@ MonoBehaviour: _healthText: {fileID: 0} _healthImage: {fileID: 0} _iconTaskMain: {fileID: 5100466107490290627} + _listIconTask: + - {fileID: 1049366989, guid: 4276d7122cfaf624f8aa32336fc90f1c, type: 3} + - {fileID: -61588767, guid: 454cf3e89d0aaa54b9c60ca081ff5f46, type: 3} + - {fileID: 1481922406, guid: 13278f4394269834cb244620cd66c803, type: 3} + - {fileID: 799372409, guid: f666d782d2b84fa48912bb3166f214aa, type: 3} + - {fileID: 1342343447, guid: c27a0fab8aef4d74787fe56595601d9f, type: 3} + - {fileID: 1458661374, guid: 6deb3d497e3c2a44cb875be0f13bbf36, type: 3} --- !u!1 &6510845919681767284 GameObject: m_ObjectHideFlags: 0 @@ -388,7 +395,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6510845919681767284} - m_LocalRotation: {x: 0.028356783, y: 0.9830809, z: 0.02226828, w: 0.17958853} + m_LocalRotation: {x: 0.15080568, y: -0.8027092, z: -0.16719593, w: 0.5522329} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 0248b4b9e0..014b6da8c1 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -6948,7 +6948,7 @@ namespace BrewMonster for(i = 0; i < m_pEquipPack.GetSize(); i++) { var pItem = m_pEquipPack.GetItem(i); - if(pItem == null || (pItem is not EC_IvtrWeapon && pItem is not EC_IvtrArmor)) + if(pItem == null) { continue; }